Overview
Every operation that generates a Groth16 ZK proof requires a prover passed throughdeps. There is no hard-coded default - you must always supply one. All provers follow the same prove(inputs) → { proofA, proofB, proofC } contract.
For instantiation, Web Worker setup, and remote proving backends, see ZK Provers.
IZkProverForUserRegistration
getUserRegistrationFunction deps (zkProver).
IZkProverForSelfClaimableUtxo
getCreateSelfClaimableUtxoFromEncryptedBalanceFunction deps (zkProver). For public-balance UTXO creation, see ZkProverForSelfClaimableUtxoFromPublicBalance below.
IZkProverForReceiverClaimableUtxo
getCreateReceiverClaimableUtxoFromEncryptedBalanceFunction deps (zkProver). For public-balance UTXO creation, see ZkProverForReceiverClaimableUtxoFromPublicBalance below.
IZkProverForClaimSelfClaimableUtxoIntoEncryptedBalance
getClaimSelfClaimableUtxoIntoEncryptedBalanceFunction deps (zkProver).
IZkProverForClaimReceiverClaimableUtxoIntoEncryptedBalance
getClaimReceiverClaimableUtxoIntoEncryptedBalanceFunction deps (zkProver). This prover accepts a batch size nLeaves (1–16) because there are 16 distinct circuits, one per batch size.
IZkProverForClaimSelfClaimableUtxoIntoPublicBalance
getClaimSelfClaimableUtxoIntoPublicBalanceFunction deps (zkProver).
ZkProverForSelfClaimableUtxoFromPublicBalance
getCreateSelfClaimableUtxoFromPublicBalanceFunction deps (zkProver).
ZkProverForReceiverClaimableUtxoFromPublicBalance
getCreateReceiverClaimableUtxoFromPublicBalanceFunction deps (zkProver).
Unified Prover Suite
All six provers can be combined into a single object and passed wherever individual provers are expected:Quick Setup with @umbra-privacy/web-zk-prover
The @umbra-privacy/web-zk-prover package provides ready-made factory functions for each prover interface. It uses snarkjs Groth16 under the hood and fetches proving keys from a CDN.
IZkAssetProvider parameter - a simple interface with one method: getAssetUrls(type, variant?). When no provider is passed, the factories default to the CDN provider (equivalent to calling getCdnZkAssetProvider() from @umbra-privacy/web-zk-prover/cdn), which fetches proving keys from Umbra’s CDN. You can supply your own provider to customise asset resolution.
See ZK Provers for Web Worker setup, custom asset providers, and remote proving backends.