Quick Start

A quick start guide to help you connect to any private user data onchain or offchain using Jomo Connect

Initiate Connection

Initiate the connection by redirecting your users to the according Jomo Connect page.

https://jomo.id/prove?flowid=<flow_id>&publicaccountid=<public_account_id>

Request parameters:

  • flowid: The uuid of the Jomo verification flow.

  • publicaccountid: The unique identifier to attach verification result with. Specified by the caller and agnostic to Jomo.

APIs

Handle Verification Result

For clients that choose to have Jomo Backend validate the zk proofs for them, Jomo would send the validated results via the following 2 channels.

Verification API Callback

When the verification is done on Jomo Connect, Jomo sends the result back via the callback URL

POST <callback_url> {parameters}

Request parameters

  • public_account_id: The unique identifier to attach verification result with

  • type: The type of the verification

  • id: The unique identifier for this type of verification

  • timestamp: The timestamp verification is generated

  • attester: Person or entity who attested for the verification

  • signature: The cryptographic signature from the attester on the verification

  • [additional_fields]: Additional fileds containing additional information apart from whether user passed flow or not. Example: the boundry of the range proof (the user is proving that they earned more than $90K last year vs proving they earned more than $50K last year)

Query Verifications API

You can also query past verifications via Jomo API

POST https://jomo.id/api/verify/verifications

Request parameters

  • api_key: The api key for your project

  • public_account_id: The account that we are querying results for

  • flow_id: [optional] The uuid of the Jomo verification flow. Specified when only results from one flow is requested (The flow must be associated to your project)

  • with_eas_link: [optional] Boolean to indicate whether the reponse should contain an EAS link to the source private VC used to generate the proof

Response parameters

A list of public VCs with each public VC includes:

  • public_account_id: The unique identifier to attach verification result with

  • type: The type of the verification

  • id: The unique identifier for this type of verification

  • timestamp: The timestamp verification is generated

  • attester: Person or entity who attested for the verification

  • signature: The cryptographic signature from the attester on the verification

  • [private_vc_eas_link]: present if with_eas_link is set to true in request, contains a link to EAS page where the original private VC content can be seen.

  • [additional_fields]: Additional fileds containing additional information apart from whether user passed flow or not. Example: the boundry of the range proof (the user is proving that they earned more than $90K last year vs proving they earned more than $50K last year)

Handle ZK Proofs

For clients that choose to handle the ZK proofs yourself, Jomo also provides 2 approaches to pass back the proofs.

Proof API Callback

When the verification is done on Jomo Connect, Jomo sends the generated proof back via the callback URL

POST <callback_url> {parameters}

Request parameters

  • public_account_id: The unique identifier to attach verification result with

  • type: The type of the verification

  • proof: The zk proof generated via the frontend

  • public_result: The selectively disclosed public data associated to the proof. Example: the boundry of the range proof (the user is proving that they earned more than $90K last year vs proving they earned more than $50K last year)

  • attestation: The EAS attestation issued by Jomo which attests to the validity of original data which the zk proof is proving out of.

Proof Verifications API

You can also query past proofs via Jomo API

POST https://jomo.id/api/verify/proofs

Request parameters

  • api_key: The api key for your project

  • public_account_id: The account that we are querying results for

  • flow_id: [optional] The uuid of the Jomo verification flow. Specified when only results from one flow is requested (The flow must be associated to your project)

Response parameters

A list of zk proofs:

  • public_account_id: The unique identifier to attach verification result with

  • type: The type of the verification

  • proof: The zk proof generated via the frontend

  • public_result: The selectively disclosed public data associated to the proof. Example: the boundry of the range proof (the user is proving that they earned more than $90K last year vs proving they earned more than $50K last year)

  • attestation: The EAS attestation issued by Jomo which attests to the validity of original data which the zk proof is proving out of.

Verify ZK Proofs and Attestations

Whether the client chooses to handle the zk proofs yourself or wants to perform additional validation. Jomo provides following tools for you or your users to validate whether a ZK proof or an attestation is valid. (Coming soon)

  • A public smart contract with a read only function that everyone can use

  • A public backend API

  • A dedicated frontend UI so users can easily copy paste a blob of attestation and zk proofs to validate them

Last updated