One order on a tokenized-equity venue, followed end to end. Hover any black bar to see what stays hidden at that step.
Requirement: jurisdiction ∈ permitted_set and age ≥ 18. Accepted issuers: five KYC providers. Max TTL: 90 days. Scope: self. This is on-chain and public.
Before you touch anything, the wallet checks it holds a matching credential from an accepted issuer and pre-warms the prover. If nothing matches, it tells you which issuers would work.
The wallet shows exactly what the venue will learn — two booleans and an expiry — and what stays under the bar: name issuer jurisdiction code date of birth. You confirm.
Credential decrypted in memory, circuit run, proof produced, credential re-sealed. No server is involved. The output is a few hundred bytes that reveal nothing.
The proof goes to a relayer, which pays gas and calls the receipt registry on Robinhood Chain. Your address is not the sender.
On-chain: claim id, true, scope = the venue, expires in 30 days, nullifier. Nothing else. The venue's contract can now read check() and fill your order.
The receipt is live. The venue calls check() again; it passes. No proof, no prompt.
It becomes inert. Next time you trade, the wallet proves again — under a second — and a fresh receipt replaces it. Nothing persisted past the window you set.
| party | holds | never holds |
|---|---|---|
| you | the credential, the proof, the receipt id | — |
| the venue | a receipt: two booleans, expiry, a scope-bound nullifier | your name, issuer, field values, other venues' receipts |
| the issuer | the fact that it signed a credential once | where or when you used it |
| the relayer | a proof (opaque) and a request IP | the credential, the link between nullifier and IP if it follows policy |
| Robinhood Chain | the receipt | who you are |
The claim is false. The proof still computes, with result false. You can choose not to settle it. Nothing about why it was false leaves the device.
The credential was revoked. The proof fails against the issuer's latest revocation root. The wallet explains and points you back to the issuer. Existing receipts remain valid until they expire.
The relayer is down. The wallet falls back to another relayer, or, if you allow it, submits directly from your address with a warning about linkability.