API reference Mandates
Proof that a registered user signed a mandate
GET/v1/anonymous-mandates/{mandateHash}
The C3 anonymous_mandate zero-knowledge proof of the mandate whose passkey challenge is mandateHash, the mandateHash of its countersigns: a passkey in Keelson's registered-user tree signed it, and the mandate's commitment names that passkey. It shows neither the user nor the key, so it needs no authentication. Verify it with bb.js against the C3 key or with eth_call on verifier, and check that user_set_root is published in the RegisteredUserSet contract, as verifyAnonymousMandate in @keelson/alibi/verify does.
Path parameters
mandateHashstringRequired
Responses
- 200The proof
- 404No proof for this mandate yet
200 response
mandate_hashstringRequired- The passkey challenge
Mthe user signed. mandate_commitmentstringRequiredC_m, the commitment the mandate names.user_set_rootstringRequired- The registered-user tree the signer is a leaf of when the proof was made.
proofstringRequired- The UltraHonk proof bytes, standard base64.
public_inputsarray of stringRequiredC_m, M mod r, user_set_root, SHA-256("keelson.finance"): the calldata ofverify(bytes,bytes32[]).verifierobject- The deployed verifier that accepts the proof in an
eth_call. It checks the proof only:public_inputsmust also be the countersign'sC_mandM, Keelson's RP ID hash, and a root published inRegisteredUserSet, whoseverifychecks all of it.