A flow page follows one feature end to end: who takes part, where it starts in the UI, each step with a sequence diagram, what goes on chain, to the server and stays in the browser, every wallet prompt, the real error messages, the variants and the code that implements it. This page lists them all, grouped by the role that starts them. The roles themselves are described in Roles.
By role
Verifier (no wallet)
Holder (student)
Issuer (institution)
| Flow | One line |
|---|
| Issuing a credential | Fill the four-part form, encrypt the document, sign, anchor, and hand on the package |
| Document storage | How documents are encrypted, uploaded behind sign-in, and reopened |
| Credential lifecycle | Suspend, reinstate, revoke and supersede, from the dashboard or the verify page |
| Enrolment and wallet linking | Invite a student's wallet, unlink it, cancel invitations |
| Record types | Register, switch off and use the institution's own record types |
| Bulk import | Issue a cohort from an export, repeat-safe, with a result file and package archive |
| Sharing documents | Replace a document's key and remove old copies |
| Selective disclosure | Add the disclosure attestation to a credential |
| Issuer key retirement | Hand an issuer's authority to a successor key |
Guardian and admin
Operator
A credential's life
How the flows connect, from an institution joining to a verifier's check.
Conventions on flow pages
- UI labels are in bold exactly as the app shows them; routes are in backticks.
- "The issuer" means the issuer key in charge, which follows key retirements on sets that have them.
- "Signature" means a wallet signature that sends nothing; "transaction" means an on-chain write that costs gas.
- Unless a page says otherwise, a flow describes v0.3 with
NEXT_PUBLIC_CONTRACT_VERSION=v03. Differences for the legacy v0.2 contract and for older contract sets are under each page's Variants heading.
- Time-sensitive facts (what is deployed or active on Sepolia) are as of 2026-10-24.