Found the Association, onboard exchanges and a bank, run one full KYC, reuse it in sixty seconds across the corridor, verify a Travel Rule counterparty for free, and watch the impostor and the revoked credential both fail.
One checklist, four builds. The picture below opens on the financial world you met in chapter 1 - two gray exchanges and a gray bank paying for the same checks, Alice in the queue, DarkPool trading outside every shared rulebook - and each step transforms it.
Before it can vouch for anyone, the Association itself must be provable - and its trust registry must exist.
Founding the Association on Verana
The Association deploys a vs-agent, an open source Business Wallet natively integrated with the public Verana infrastructure. Helvetia Trust Services (demo), an accredited ECS-Organization issuer, verifies the legal entity and issues its Organization credential; the Association self-issues its Service credential - the first green check. Then it creates its trust registry: the CEXA-Kyc schema, governed on BOTH sides (only accredited members issue, only accredited members verify), the CEXA-VerifiedCounterparty schema for Travel Rule identities, the EGF document anchored by digest, and the fee schedule.
Governed verification is the unusual choice, and the point: asking a wallet for a KYC credential is a privileged, paid act - so the relying side is permissioned too.
The Association issues exactly what it governs: CEXA-VerifiedCounterparty identities and CEXA-Kyc accreditations. ECS-Organization credentials stay where they belong - with the accredited issuers of the Verana ECS Ecosystem, like Helvetia.
A word on the schemas themselves: they are highly simplified for the demo. A production framework would version them, carry far richer claim sets and jurisdictional variants, and evolve them through EGF amendments - the registry, governance, fees and permissions work identically either way.
Click a participant to see the credentials it presents.
New in this step:Crypto Exchange Association (demo)Under the hood
▸Create New Trust Registry (+ EGF document, digest-anchored) → Create New Credential Schema (issuer mode ECOSYSTEM, verifier mode ECOSYSTEM) → root permission.
▸The schema prices its fees in a USD stablecoin (pricing_asset_type COIN): fees settle on-chain in USDC, deposit-bound amounts always settle in the native denom.
3.2
Members, onboarded with teeth
Joining the Association is an on-chain onboarding process: vetted off-chain, paid and receipted on-chain, renewable yearly.
Aurum joins as an ISSUER member
Aurum Exchange (demo) starts the onboarding process for an ISSUER permission on the CEXA-Kyc schema. Its dues - 5,000 USDC for the year - go to escrow. Over DIDComm, the Association's service collects what the EGF demands: licenses, the IdentiSure contract, evidence-retention undertakings. Satisfied, the Association validates: the dues release, Aurum receives its CEXA-VerifiedCounterparty credential (published on its DID for anyone to check), and both parties' trust deposits grow - trust units worth 250 minted to each side, 5% of the dues. One thing the Association does NOT issue: Aurum's ECS-Organization credential. Being a Verifiable Service already - Organization credential from an accredited issuer of the Verana ECS Ecosystem, self-issued Service credential - is an entry requirement of the EGF, not a membership perk.
No upfront stake anywhere: the trust deposit is built by usage - every fee paid or earned mints trust units worth 5% of it to the payer and to the payee.
While the process is pending, everything sits in escrow: cancel and it refunds as-is. Validated, it never comes back out.
ISSUER member · dues 5,000/yrCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)accredited ISSUER memberCEXA-Kyc · governed both sidestrust units minted
Click a participant to see the credentials it presents.
New in this step:ISSUER member · dues 5,000/yr
Reproduce it
1Open the Association's ecosystem in the Verana app and read the participant trees - membership is a public record.
▸Start Participant OP (fees + deposit-bound amount to escrow) → off-chain validation over DIDComm → Set Participant OP to Validated (payout, permission active for 365 days).
▸The member's verification fee (0.90 per reuse) is agreed at validation and frozen across renewals - the fee schedule is a contract, not a dial.
Borealis joins as a VERIFIER member
Borealis Markets (demo) - already a Verifiable Service, like every applicant - runs the same process for a VERIFIER permission: 2,000 USDC yearly dues, the EGF's re-binding undertaking (passport NFC plus face match on every reuse), and its CEXA-VerifiedCounterparty credential on validation. From this moment Borealis may ask wallets for the CEXA-Kyc credential - and only from this moment: an exchange outside the Association can be perfectly legitimate and still get refused, because verification of this schema is governed.
Both sides of the market are memberships: issuers pay to be trusted with issuance, verifiers pay to be trusted with data.
Renewal is yearly, at frozen prices - dues fund the Association's audits, provider vetting and EGF upkeep.
ISSUER member · dues 5,000/yrVERIFIER member · dues 2,000/yrCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)accredited ISSUER memberBorealis Markets (demo)accredited VERIFIER memberCEXA-Kyc · governed both sidestrust units minted
Click a participant to see the credentials it presents.
New in this step:VERIFIER member · dues 2,000/yrUnder the hood
▸Same onboarding messages, role VERIFIER. The wallet-side rule that makes it bite is the VT spec's verifier check: before presenting, the wallet verifies the requester holds a VERIFIER permission in the schema's ecosystem.
3.3
KYC once, reuse everywhere
The credential at work: one full check at the first exchange, sixty seconds at every exchange after that.
Alice's first and last full KYC
Alice Moreau opens an account at Aurum. No credential yet, so Aurum runs the full check through IdentiSure (demo): documents, liveness, AML screening - about 1.85, invoiced off-chain. Then Aurum does what makes the spend recoverable: it seals every piece of evidence into a bundle, computes its digest, and issues Alice her CEXA-Kyc credential with the sealed bundle riding alongside it - straight into the wallet she chose. The digest inside the signed credential binds the bundle; the evidence travels with Alice from now on. Issuing is free by design: the Association puts no toll on the on-ramp.
The claims carry the KYC level, screening date, provider, expiry, the evidence digest - and a hashed document number, so a later re-binding can match her passport chip without disclosing the number itself.
The issuance session anchors the credential's digest on-chain: a timestamped receipt that this exact credential was issued by this member.
Alice's wallet checks the session exists before accepting - the protocol's fee enforcement, even when the fee is zero.
ISSUER member · dues 5,000/yrfull KYC · 1.85 off-chainCEXA-Kyc · free issuanceCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)did:webvh:QmRu...WNfc:aurum…IdentiSure (demo)EGF-authorized IDV providerAlice MoreauCEXA-Kyc in the wallet she choseCEXA-Kyc · governed both sidesevidence digest anchored
Click a participant to see the credentials it presents.
New in this step:full KYC · 1.85 off-chainCEXA-Kyc · free issuanceAlice Moreau - one full KYC at Aurum, then never again.
Reproduce it
1Get the demo credential in Run the demos once the cast is live: the Aurum offer mints Alice's claims.
Under the hood
▸Create Participant Session (issuance leg, zero fees) + on-chain digest storage; the sealed bundle lives in Alice's wallet, digest-bound to the credential - no copy waits at Aurum for anyone to request.
▸Dual rail like every playground credential: AnonCreds/DIDComm and OpenID4VC SD-JWT.
Sixty seconds at Borealis
Alice signs up at Borealis. Her wallet trust-resolves Borealis (a verified member, authorized to ask - Q1 and Q3 pass) and presents the credential. Borealis re-binds her to it - passport NFC proof of possession, face match, its own sanctions ping - and receives, in the same presentation, the sealed evidence bundle - Borealis stores it and owns its complete CDD file from second zero, no call to Aurum, ever. Then it pays the reuse fee: 1.00 USDC (example values), split by the protocol - 0.90 to Aurum, the exchange that paid for the original check, 0.10 to the Association. All-in, about 1.15 - against the full cost of a fresh onboarding, and with a funded account in minutes instead of days. Account opened.
The issuer is a beneficiary of every verification session: reuse revenue is protocol behavior, not an invoice between competitors.
No phone home: Aurum is paid through the session but never learns where Alice signed up - competitive neutrality between rivals, by construction.
Aurum breaks even on Alice's vendor fee after 2 to 3 reuses - then her credential is margin.
Alice's wallet provider earns a reward on the paid session too: wallets are paid to carry Association credentials.
ISSUER member · dues 5,000/yrVERIFIER member · dues 2,000/yrCEXA-Kyc · free issuancepresents + re-binding0.90 USDC per reuse0.10 USDCCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)did:webvh:QmRu...WNfc:aurum…Borealis Markets (demo)accredited VERIFIER memberAlice MoreauCEXA-Kyc in the wallet she choseCEXA-Kyc · governed both sidesevidence digest anchoredNFC + face match
Click a participant to see the credentials it presents.
New in this step:presents + re-binding0.90 USDC per reuse0.10 USDCBorealis pays per reuse - 0.90 to Aurum, 0.10 to the Association (example values) - receives the sealed evidence bundle in the same presentation, and Alice never re-uploads a document.
Reproduce it
1Run the Borealis sign-in demo below once the cast is live - the whole flow, on your own phone.
Under the hood
▸Find Beneficiaries walks the permission tree from the verifier AND from the issuer of the presented credential - that is where the 0.90 comes from.
▸The wallet refuses any presentation request without a valid paid session: a member cannot dodge the fee and still get the data.
Novara Bank joins - and the corridor opens
Novara Bank (demo) runs the same onboarding as the exchanges - the EGF admits licensed exchanges and credit institutions alike - and takes both roles: ISSUER and VERIFIER. Two things happen at once. Alice walks into Novara with her Aurum-issued credential and opens a bank account in the same sixty seconds she opened Borealis - with Novara paying Aurum the same 0.90, and receiving the same sealed evidence bundle for its own records. And Novara starts issuing: every one of its existing, fully-KYC'd customers can be credentialed at zero on-chain cost, because issuance is free - turning the bank's compliance archive into the largest issuer-side asset in the Association.
The corridor runs both ways: exchange-verified customers open bank accounts, bank-verified customers open exchange accounts - and the original checker earns either way.
For Novara, reliance stays defensible: the issuer is vetted at onboarding, bonded by its trust score, named in the credential - and the complete evidence file lands in Novara's own records at presentation, automatically.
De-risking becomes a risk decision instead of a blanket policy: the bank can finally see how a customer was verified, by whom, with what at stake.
ISSUER member · dues 5,000/yrCEXA-Kyc · free issuanceISSUER + VERIFIER memberpresents + re-binding0.90 USDC to the issuerCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)did:webvh:QmRu...WNfc:aurum…Novara Bank (demo)ISSUER + VERIFIER memberAlice MoreauCEXA-Kyc in the wallet she choseCEXA-Kyc · governed both sidesevidence digest anchoredexisting customers credentialed free
Click a participant to see the credentials it presents.
New in this step:ISSUER + VERIFIER memberpresents + re-binding0.90 USDC to the issuerThe corridor opens both ways: Alice's exchange-issued credential opens her bank account, and every credential Novara issues earns it fees at the exchanges.Under the hood
▸Two onboarding processes, one per role - same messages, same dues mechanics as the exchanges. Find Beneficiaries is sector-blind: a bank verifying an exchange-issued credential pays the same split.
▸Credentialing the existing base is issuance sessions at zero fees: digest anchored, receipt for the wallet, nothing else moves.
3.4
Counterparty proof for the Travel Rule
The institutions verify each other too - and that obligation recurs on every transfer, by regulation.
Before the transfer: verify the counterparty
Alice withdraws 1,200 USDC from Aurum to her Novara account. Under the EU Travel Rule there is no de minimis: originator and beneficiary data travel with every transfer, whatever the amount - so Aurum must know exactly who the receiving institution is, on this transfer and on every other one. No directory subscription, no form, no queue: Aurum's system trust-resolves Novara's DID and reads its CEXA-VerifiedCounterparty credential - legal name, LEI, licensing authority and license identifier, category, compliance contact - issued by the Association, valid, free. The transfer clears. The same check runs in the other direction when funds flow back.
In the EU (Regulation (EU) 2023/1113, since 30 December 2024) the obligation has no minimum threshold - counterparty identification is a per-transfer fact of life, not an occasional large-transfer check. The 1,000 EUR line survives only for self-hosted wallet ownership verification.
The Association carries no transaction data and replaces no travel rule messaging protocol - it supplies the one thing every network rebuilds: a neutral, verifiable answer to who the counterparty is.
One membership replaces N directory subscriptions and N re-submissions of the same license - and the proof is checkable by anyone, not just fellow subscribers.
Counterparty checks are free by design: the credential is published on the member's DID as a Linked VP, and reading it costs nothing. Dues fund the registry.
ISSUER member · dues 5,000/yrISSUER + VERIFIER member0.90 USDC to the issuer1,200 transfer · counterparty verified, freeCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)did:webvh:QmRu...WNfc:aurum…Novara Bank (demo)ISSUER + VERIFIER memberCEXA-Kyc · governed both sidesevidence digest anchoredCEXA-VerifiedCounterparty read from its DID
Click a participant to see the credentials it presents.
New in this step:1,200 transfer · counterparty verified, freeBefore releasing a Travel Rule transfer, Aurum reads Novara's CEXA-VerifiedCounterparty credential straight from its DID - no directory, no subscription, no fee.Under the hood
▸CEXA-VerifiedCounterparty is an org-level credential published as a Linked VP - the standard Verifiable Service pattern, so the check is ordinary trust resolution.
▸Renewal rides the yearly membership renewal; license loss means revocation, and the credential dies in every member's transfer flow the same day.
3.5
Fail-closed defenses
What makes the whole thing safe to rely on: the failures fail closed.
DarkPool is real - and still refused
DarkPool Exchange (demo) is not a fake. It is a genuine, verifiable exchange: Organization credential from Helvetia, Service credential, green check. It just never joined the Association - and that is exactly the lesson. When it asks Alice's wallet for her CEXA-Kyc credential, the wallet trust-resolves it (TRUSTED), then checks its authorization and refuses: verification of this schema is governed, and DarkPool holds no VERIFIER accreditation. And when a member's Travel Rule desk checks DarkPool as a counterparty, the check stops in red at the first line: no CEXA-VerifiedCounterparty on its DID.
Trust is not membership, and membership is not authorization: a perfectly legitimate exchange still cannot ask for the credential or pass the counterparty check.
This fails politely and legibly: the wallet can SAY why it refused (not an accredited verifier), and the counterparty card can SHOW what is missing - far more instructive than a silent UNTRUSTED.
presents + re-bindingrefused at Q3 - not a memberBorealis Markets (demo)accredited VERIFIER memberAlice MoreauCEXA-Kyc in the wallet she choseDarkPool Exchange (demo)verifiable - and still not a memberNFC + face match
Click a participant to see the credentials it presents.
New in this step:refused at Q3 - not a memberDarkPool verifies green - a real company - and is refused anyway: no membership, no CEXA-VerifiedCounterparty, no VERIFIER accreditation. Trust is not membership.
Reproduce it
1Run the DarkPool demo below: reveal its very real presentation request and watch your wallet refuse it - then read the two red lines of its counterparty proof, right under its green Proof-of-Trust.
Under the hood
▸The wallet-side check is [PRT-3] of the Verifiable Trust spec: verify the verifier's authorization before presenting. The counterparty check is the absence of the cexa-verified-counterparty linked VP on the DID.
▸DarkPool appearing in either CEXA participant tree, or publishing a CEXA-VerifiedCounterparty VP, would be a provisioning incident.
Fraud discovered: one revocation, network-wide
Months later, Aurum discovers one of its KYC files was built on a forged document. It revokes that credential. The next time the holder tries to present it - at any member, exchange or bank - the check shows it dead. And because the Association can slash a misbehaving member's trust deposit, an issuer that faked evidence or skipped the provider list does not just lose face: it loses its bonded trust score, its permissions freeze, and the slash is a permanent public record. The same blade cuts on the institutional side: a member that loses its license has its CEXA-VerifiedCounterparty credential revoked - and disappears from every other member's transfer flow the same day.
Revocation is the shared fraud signal without a shared database: no pooled PII, and still every member benefits from every discovery.
Slash obligations are recorded at what was originally paid, in fiat terms - a score that decayed does not discount the liability.
ISSUER member · dues 5,000/yrVERIFIER member · dues 2,000/yrfull KYC · 1.85 off-chainCEXA-Kyc · free issuancepresents + re-binding0.90 USDC per reuse0.10 USDCISSUER + VERIFIER memberpresents + re-binding0.90 USDC to the issuer1,200 transfer · counterparty verified, freerefused at Q3 - not a memberCrypto Exchange Association (demo)trust registry · EGF · fee scheduleAurum Exchange (demo)did:webvh:QmRu...WNfc:aurum…Borealis Markets (demo)accredited VERIFIER memberNovara Bank (demo)ISSUER + VERIFIER memberIdentiSure (demo)EGF-authorized IDV providerAlice MoreauCEXA-Kyc in the wallet she choseDarkPool Exchange (demo)verifiable - and still not a memberCEXA-Kyc · governed both sidesevidence digest anchoredNFC + face matchcredential revoked by Aurum
Click a participant to see the credentials it presents.
New in this step:Aurum discovers fraud and revokes. The next check at any member - exchange or bank - shows the credential dead.Under the hood
▸Credential status rides the standard credential-state-change flow; the holder's participant entry carries it.
▸Ecosystem slash burns the trust units and freezes every permission of the member until the obligation is repaid - repayment restores the score only at its decayed value.
Every box checked: verifiable members · one governed credential · membership with teeth · reuse that pays the issuer, across the bank-exchange corridor · counterparty proof for the Travel Rule - and the outsider and the revoked credential both fail closed.