generate_proof
Generate zero-knowledge proofs for identity verification like Coinbase KYC, country checks, and OIDC authentication while keeping personal data private.
Instructions
All-in-one ZK proof generation. Handles: prepare inputs, request challenge, and submit proof in a single call. Use this when you want the simplest path to a proof. For fine-grained control over each step, use prepare_inputs, request_challenge, and submit_proof individually.
CIRCUITS:
"coinbase_kyc": Proves the user passed Coinbase KYC verification.
"coinbase_country": Proves the user's country of residence is (or is not) in a given list. Requires country_list and is_included.
"oidc_domain": Proves the user authenticated via OIDC and their email belongs to a specific domain. Requires jwt and scope.
RETURNS: Full ProofResult with proof bytes, public inputs, and timing information. Use verify_proof separately to verify on-chain.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| circuit | Yes | Which circuit to use | |
| scope | No | Scope string for nullifier derivation. Defaults to "proofport" if omitted. For oidc_domain circuit, this is the domain scope string. | |
| country_list | No | ISO 3166-1 alpha-2 country codes. Required for coinbase_country circuit. | |
| is_included | No | true = prove country IS in list, false = prove NOT in list. Required for coinbase_country circuit. | |
| jwt | No | OIDC JWT token (id_token) for oidc_domain circuit | |
| provider | No | OIDC provider. "google" (default) for Google Workspace, "microsoft" for Microsoft 365. |