Skip to main content

Flows

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)​

FlowOne line
Verifying a credentialLook up an id, link or QR code, read the checks, and check a document or package the holder gave you
Verifiable credentials and Open BadgesCheck a VC 2.0 or Open Badges 3.0 file against the chain
Selective disclosureIssue a challenge and check a holder's disclosure file
Status listsRead revocation and suspension bits as standard VC tooling does
Phone wallet and in-person checksScan a holder's phone at /present, online or offline

Holder (student)​

FlowOne line
Enrolment and wallet linkingAccept an issuer's invitation so delivered credentials reach the wallet
Holder inboxSee every credential issued to the wallet, rebuilt from contract events
Document storageOpen the encrypted document with the credential package
Sharing documentsGive one wallet a sealed file, or anyone a link; apply a key update
Selective disclosureShow chosen fields to one verifier in a challenge-bound file
Verifiable credentials and Open BadgesExport the credential in standard formats
Private access proofs (ZK)Admit requesters to a credential's group; requesters prove access anonymously
Phone wallet and in-person checksCarry credentials on a phone and present them as QR codes

Issuer (institution)​

FlowOne line
Issuing a credentialFill the four-part form, encrypt the document, sign, anchor, and hand on the package
Document storageHow documents are encrypted, uploaded behind sign-in, and reopened
Credential lifecycleSuspend, reinstate, revoke and supersede, from the dashboard or the verify page
Enrolment and wallet linkingInvite a student's wallet, unlink it, cancel invitations
Record typesRegister, switch off and use the institution's own record types
Bulk importIssue a cohort from an export, repeat-safe, with a result file and package archive
Sharing documentsReplace a document's key and remove old copies
Selective disclosureAdd the disclosure attestation to a credential
Issuer key retirementHand an issuer's authority to a successor key

Guardian and admin​

FlowOne line
GovernanceThe Safe, the timelock, the guardian's pause, admitting and removing issuers
Issuer key retirementRetire a compromised or rotated issuer key through the admin
Credential lifecycleAdmin holds on one credential and issuer-wide suspension
Contract set upgradeDeploy a new contract set beside the old one and make it active

Operator​

FlowOne line
Monitoring and service reportsThe read-only monitor, its checks, alerts and monthly report
Status listsConfigure and serve signed status lists

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.