The Minister's journey

Five needs, five builds: verifiable institutions, the Citizen ID, Business IDs, legal representation, and passwordless authentication.

Section 3

The Minister's journey

One checklist, five builds. The picture below opens on the civic world you met in Section 1 - the gray institutions, Aria with her passwords, the fake refund portal - and each step transforms it. Watch the Minister's team work, and take part with your own wallet.

3.1

Verifiable institutions

First things first: the Republic itself must become provable - starting with the institution that knows every company.

The Business Registry becomes a Verifiable Service

The National Business Registry deploys a vs-agent, an open source Business Wallet natively integrated with the public Verana infrastructure. A DID is generated for the register; Helvetia Trust Services (demo), an accredited ECS-Organization issuer, runs the KYB - trivially, for a national institution - and issues the register's Organization credential. The register self-issues its Service credential: the Republic's first green check.

The DID of the National Business Registry
did:webvh:QmUA...rEP4:business-registry.verandia.playground.testnet.verana.network

The live DID of the deployed register on the Verana testnet - resolve it yourself at resolver.testnet.verana.network.

issues ECS-OrgaccreditsNational Business Registrydid:webvh:QmUA...rEP4:business-registry…Verana ECS Ecosystemidentity credentials - the green checkHelvetia Trust Services(demo) · accredited ECS-Org issuerECS-Org✓ TRUSTED

Click a participant to see the credentials it presents.

New in this step:Verana ECS EcosystemHelvetia Trust Servicesissues ECS-Orgaccreditsthe Republic's first green check

Reproduce it

  1. 1Deploy a vs-agent on a public domain (Docker image + compose examples in the vs-agent repo).
  2. 2Open https://<your-host>/.well-known/did.json - that document is your Business Wallet's DID.
  3. 3Resolve it: https://resolver.testnet.verana.network/v1/trust/resolve?did=<your-did> → UNTRUSTED. That's the starting line.
Under the hood
  • The vs-agent generates the DID (did:webvh recommended) and publishes its DID Document with a DIDComm endpoint at https://<host>/.well-known/did.json.
  • Helvetia's ECS-Org issuance and the self-issued ECS-Service follow the exact flow of the Vesta story (3.1/3.2) - the pattern replicates across sectors; that is the point.

The register becomes an accredited Business ID issuer

The Verana ECS Ecosystem accredits the National Business Registry as an ECS-Organization ISSUER. This is the keystone decision of the whole build: Business IDs are plain ECS-Organization credentials - issued by the institution that already IS the source of truth about Verandian companies. KYB stops being paperwork and becomes a lookup.

  • Verandia deliberately joins the shared ECS ecosystem instead of building a national silo: a Verandian company's Business ID is recognized by every Verana-aware wallet and service worldwide.
  • From now on, the state's own register issues - and every issuance is anchored in the public registry, checkable by anyone.
issues ECS-Orgaccreditsaccredits ECS-Org issuerNational Business Registrydid:webvh:QmUA...rEP4:business-registry…Verana ECS Ecosystemidentity credentials - the green checkHelvetia Trust Services(demo) · accredited ECS-Org issuerECS-Org✓ TRUSTEDECS-Org ISSUER

Click a participant to see the credentials it presents.

New in this step:accredits ECS-Org issuerthe national register becomes an accredited ECS-Org issuer

Reproduce it

  1. 1In the Verana app: Discover & Join → ECS Ecosystem → Organization credential schema → Participants - the accreditation tree is public.
  2. 2Trust-resolve any credential the register issues: the chain ends at the ECS Ecosystem root.
Under the hood
  • An ISSUER permission on the ECS-Organization schema, granted in the ECS Ecosystem's permission tree - the same accreditation Helvetia holds.
  • Governed issuance, public accountability: the register's permission entry, its trust deposit, and every issuance are on-chain.
3.2

A Citizen ID citizens actually hold

The national ID card becomes a verifiable credential - issued by the Civil Registry, held in any compatible wallet, eIDAS 2 compatible.

The Citizen ID ecosystem - both directions governed

The Civil Registry becomes verifiable the Verandian way: its Organization credential is issued by the National Business Registry - the Republic dogfoods its own register. Then it creates the Verandia Citizen ID trust ecosystem with a single schema, and two governance decisions that define the whole story: issuance is governed (only the Civil Registry issues), and verification is governed too - a service must register as a relying party before any wallet will share a Citizen ID.

  • The schema carries eIDAS-2-PID-inspired claims: names, birth date, personal identifier, nationality, portrait.
  • Governed verification is the eIDAS 2 relying-party registration, made structural: over-asking is not policed after the fact - it is impossible by default.
issues ECS-Orgaccreditsaccredits ECS-Org issuerissues ECS-Orgcreates & governsNational Business Registrydid:webvh:QmUA...rEP4:business-registry…National Civil Registryissues the Verandia Citizen IDVerana ECS Ecosystemidentity credentials - the green checkHelvetia Trust Services(demo) · accredited ECS-Org issuerVerandia Citizen IDissuance & verification governedECS-Org✓ TRUSTEDECS-Org ISSUER✓ TRUSTED

Click a participant to see the credentials it presents.

New in this step:Verandia Citizen IDissues ECS-Orgcreates & governsthe Citizen ID ecosystem is born - issuance and verification both governed

Reproduce it

  1. 1In the Verana app: My Ecosystems → create a trust registry (name + governance-framework document).
  2. 2Add the Citizen ID schema with issuance mode ECOSYSTEM and verification mode ECOSYSTEM. Create the root permission.
Under the hood
  • Create New Trust Registry (+ EGF document) → Create New Credential Schema (issuer mode ECOSYSTEM, verifier mode ECOSYSTEM) → Create Root Permission.
  • birthDate is a dateint (YYYYMMDD), so AnonCreds predicate proofs (age over 18) work without revealing the date.
  • The Citizen ID is a personal credential: AnonCreds/DIDComm and OpenID4VC SD-JWT rails, never published as a Linked VP.

Citizens receive their IDs - in the wallet of their choice

Aria walks into a registry office (or uses her existing eID) and receives her Verandia Citizen ID - straight into the Personal Wallet she already uses. Verandia does not build a wallet monopoly: any of the integrated open source wallets can be customized for the Republic, the way the EUDI reference app and its forks already are. The SD-JWT rail is the eIDAS-2-compatible one.

  • One credential, every wallet: Hologram over AnonCreds/DIDComm, the EUDI-reference fork and the other OpenID4VC wallets over SD-JWT.
  • Selective disclosure by default: a service that needs your age never sees your birth date.
issues ECS-Orgcreates & governsissues Citizen IDissues Citizen IDNational Business Registrydid:webvh:QmUA...rEP4:business-registry…National Civil Registryissues the Verandia Citizen IDAria SolanoCitizen ID in the wallet she choseCitizenCitizenIDs land in their Personal WalletsCitizenVerandia Citizen IDissuance & verification governed?ECS-Org✓ TRUSTEDECS-Org ISSUER✓ TRUSTEDCitizen ID

Click a participant to see the credentials it presents.

New in this step:CitizenCitizenCitizenissues Citizen IDissues Citizen IDcitizens receive their Citizen IDs, in the wallet of their choice

Reproduce it

  1. 1Get your own (demo) Citizen ID in Run the demos: pick a wallet, reveal the Civil Registry offer, and watch the wallet check the issuer first.
Under the hood
  • Issuance runs over the personal-credential rails (AnonCreds/DIDComm first, OID4VC SD-JWT alongside) - the ECS-Badge dual-rail precedent from the Vesta cast.
  • How the citizen is identified at first issuance (counter visit, existing eID bootstrap) is Verandia's civic process - the credential mechanics are identical either way.
3.3

Verifiable Business IDs

The PDF extract dies: companies prove who they are with a credential issued by the register itself.

Meridian Bank gets its Business ID - and turns green

Meridian Bank (demo) applies for its Business ID. The Business Registry looks itself up - the company exists, its directors are known - and issues the bank's ECS-Organization credential on the spot. The bank self-issues its Service credential and publishes its online-banking service under its DID. The anti-phishing payoff: your bank can finally prove it is your bank, before you type anything.

  • KYB in seconds: the issuer IS the source of truth, so there is nothing to collect.
  • Every Verandian company follows the same path - Solaris Bakery included.
  • Banks are the most-phished brand category: a provable bank is the single highest-value green check in the Republic.
issues ECS-Orgcreates & governsissues ECS-Org (KYB = a lookup)National Business Registrydid:webvh:QmUA...rEP4:business-registry…National Civil Registryissues the Verandia Citizen IDVerandia Citizen IDissuance & verification governedMeridian Bank (demo)a verifiable bankECS-Org✓ TRUSTEDECS-Org ISSUER✓ TRUSTED✓ TRUSTED

Click a participant to see the credentials it presents.

New in this step:Meridian Bank (demo)issues ECS-Org (KYB = a lookup)your bank can finally prove it is your bank

Reproduce it

  1. 1Once the Verandia cast is live: resolve the bank's DID and see the Proof-of-Trust with the register-issued Organization credential.
Under the hood
  • ECS-Org issued by the Business Registry (accredited issuer) + self-issued ECS-Service, published as Linked VPs - the standard Verifiable Service pattern.
  • Customers' wallets trust-resolve the bank's DID before any connection: Q1 on every session.
3.4

Proof of legal representation

“Who may sign for this company?” - answered by a credential, not a fax.

Tomás proves he runs Solaris Bakery

The Business Registry creates its second trust ecosystem: Legal Representation. Tomás Ferreira, managing director of Solaris Bakery (demo), connects to the register's service and identifies with his Verandia Citizen ID - reusable identity, the moment the whole architecture pays off. The register matches him against the company record and issues his Legal Representative credential: company, registry id, role, powers, validity.

  • Issuance governed: only the Business Registry issues. Verification open: checking who represents a company is the register's public function - anyone may ask.
  • The credential is revoked the day Tomás leaves the bakery - and every verifier knows within a scan.
issues ECS-Orgcreates & governsissues Legal RepresentativeNational Business Registrydid:webvh:QmUA...rEP4:business-registry…National Civil Registryissues the Verandia Citizen IDTomás Ferreiramanaging director, Solaris Bakery (demo)Legal Representationissuance governed · anyone verifiesECS-Org✓ TRUSTEDECS-Org ISSUER✓ TRUSTEDLegal Representative

Click a participant to see the credentials it presents.

New in this step:Tomás FerreiraLegal Representationcreates & governsissues Legal Representativelegal representation becomes a revocable credential

Reproduce it

  1. 1Get the demo credential in Run the demos: the Business Registry offer mints Tomás' claims.
Under the hood
  • Second trust registry + Legal Representative schema (issuer mode ECOSYSTEM, verifier mode OPEN) + root permission.
  • Identification by Citizen ID presentation over the session: the ID layer is the KYC other ecosystems build on - exactly like the ECS layer in the Vesta story.
3.5

Passwordless, fail-closed authentication

The credentials exist. Now the Republic - and its companies - authenticate people with them, and only authorized verifiers ever see the data.

The Tax Buro and Meridian Bank register as relying parties

The Tax Buro becomes verifiable (Organization credential from the Business Registry, of course) and registers as a VERIFIER of the Verandia Citizen ID. Meridian Bank does the same. From that day: Aria signs in to her tax space by presenting her Citizen ID - no password. Tomás opens the bakery's tax space and its bank account with his Legal Representative credential. Opening a personal account at Meridian is KYC in one scan.

  • One credential, public and private sector: the same Citizen ID signs Aria in at the Tax Buro and opens her account at the bank.
  • The wallet checks the verifier before sharing (Q3): who is asking, and are they authorized to ask for this?
  • The portal decides from the issuer chain: Citizen ID from the Civil Registry, Legal Representative from the Business Registry. Two rules cover the whole Republic.
the Republic's institutionsissues ECS-Orgcreates & governsissues ECS-Org (KYB = a lookup)creates & governsissues Legal Representativeauthorizes VERIFIERpresents Citizen ID → signs inCitizen ID → KYC in one scanLegal Rep → company tax spaceLegal Rep → corporate accountNational Business Registrydid:webvh:QmUA...rEP4:business-registry…National Civil Registryissues the Verandia Citizen IDTax Buroauthorized Citizen ID verifierAria SolanoCitizen ID in the wallet she choseTomás Ferreiramanaging director, Solaris Bakery (demo)Verandia Citizen IDissuance & verification governedLegal Representationissuance governed · anyone verifiesMeridian Bank (demo)a verifiable bankECS-Org✓ TRUSTEDECS-Org ISSUER✓ TRUSTEDCitizen ID✓ TRUSTEDLegal RepresentativeVERIFIER · Citizen IDVERIFIER · Citizen ID

Click a participant to see the credentials it presents.

New in this step:authorizes VERIFIERpresents Citizen ID → signs inCitizen ID → KYC in one scanLegal Rep → company tax spaceLegal Rep → corporate accountrelying parties registered: passwordless sign-in at the Tax Buro and the bank

Reproduce it

  1. 1Run both demos below: the Tax Buro login and the Meridian Bank window - citizen path and company path each.
Under the hood
  • VERIFIER permissions on the Citizen ID schema, granted by the Civil Registry's ecosystem - the relying-party register, on-chain and public.
  • Legal Representative verification is OPEN, so the Tax Buro and the bank check it with no extra permission - the register meant it to be checked.

The refusals: unauthorized verifiers and fake portals

QuickCash Loans (demo) is a perfectly verifiable Verandian company - registered, green check, real Business ID. It would love to see your Citizen ID before selling you a loan. But it never registered as a relying party, and Citizen ID verification is governed: every compliant wallet answers its presentation request with a refusal. Trust is not authorization. And the fake refund portal from chapter 1? It fails at Q1 - it cannot even prove who it is.

  • Trusted, but not authorized to request this credential: the wallet blocks the share, and Aria's data never leaves her phone.
  • Fail-closed by construction: over-collection is not a policy promise, it is a protocol property.
asks for Citizen ID: refusedno VERIFIER permission: redfails Q1: nothing provable, refusedAria SolanoCitizen ID in the wallet she choseFake refund portalclaims: “official tax refunds”QuickCash Loans (demo)verifiable - but not an authorized verifierVerandia Citizen IDissuance & verification governedCitizen ID✗ not authorized

Click a participant to see the credentials it presents.

New in this step:QuickCash Loans (demo)asks for Citizen ID: refusedno VERIFIER permission: redfails Q1: nothing provable, refusedthe fail-closed payoff: unauthorized verifiers are refused by every wallet

Reproduce it

  1. 1Run the QuickCash demo below: reveal its very real presentation request, and watch your wallet refuse it.
Under the hood
  • QuickCash holds ECS-Org + ECS-Service (Q1 passes) but no VERIFIER permission on the Citizen ID schema (Q3 fails) - the exact mirror of Vesta's Umbra, on the verifier side.
  • The wallet-side check is [PRT-3] of the Verifiable Trust spec: verify the verifier's authorization before presenting.

Every box on the Minister's list, checked: verifiable institutions · a Citizen ID in every wallet · Business IDs from the register · legal representation as proof · passwordless, fail-closed authentication. The Republic consumed nothing it does not also provide.