Scenarios

Government tax statement, bank-verified.

A bank employee verifies a customer's income using a government-issued annual tax statement. Only sealed documents are accepted. Fakes are rejected instantly.

Everything on this page is fictional. The taxpayer, the amounts, the document number and the bank are invented for the demonstration. The Canada Revenue Agency did not issue this statement, has no involvement with TrustDID, and does not use did:web:revenue.gc.ca — that identifier is a placeholder showing what a government DID would look like. This is an illustration of how verification works, not a real tax document.
Scenario: Sophie Martin applies for a mortgage at Maple Leaf Bank. The loan officer requests proof of income. Sophie submits her 2025 Annual Tax Statement issued by the Canada Revenue Agency — digitally sealed with TrustDID and encrypted for the bank's eyes only.

The document — annual tax statement

A government-issued tax statement (left) and its corresponding .vrfy file (right). The .vrfy file is what makes the document verifiable.

🇨🇦

Canada Revenue Agency

Agence du revenu du Canada
Annual Tax Statement
Tax Year 2025
SPECIMEN — fictional document, not issued by any government
Statement of Income and Deductions
For the year ending December 31, 2025
Sophie A. Martin
***-***-847
142 Rue Laurier, Gatineau, QC
February 28, 2026
Description Amount (CAD)
Employment Income $92,450.00
Other Income (Interest, Dividends) $1,280.00
RRSP Deductions ($8,500.00)
Federal Tax Deducted ($14,720.00)
Provincial Tax Deducted ($9,180.00)
Net Income (Line 23600) $85,230.00
📎 annual-tax-statement-2025-MARTIN-S.pdf.vrfy
{
  "version": "3.0",
  "type": "VerifiableDocumentSignature",
  "did": "did:web:revenue.gc.ca",
  "payload": {
    "documentHash": "e4a7c1...b93f28",
    "hashAlgorithm": "SHA-256",
    "fileName": "annual-tax-statement-2025-MARTIN-S.pdf",
    "fileSize": 191488,
    "mimeType": "application/pdf",
    "reason": "Official Annual Tax Statement",
    "location": "Ottawa, ON",
    "timestamp": "2026-02-28T06:00:00Z"
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "verificationMethod":
      "did:web:revenue.gc.ca#tax-services",
    "proofValue": "Rf7nK...xQ4mA=="
  },
  "manifestProof": {
    "type": "Ed25519Signature2020",
    "verificationMethod":
      "did:web:revenue.gc.ca#tax-services",
    "proofValue": "Yt4pL...Hv7wQ=="
  },
  "pqManifestProof": {
    "type": "MLDSASignature2024",
    "verificationMethod":
      "did:web:revenue.gc.ca#tax-services-pq",
    "proofValue": "Mq9xR...wK2bA=="
  }
}

This JSON file travels alongside the PDF. It contains the document's SHA-256 hash, the signer's DID, and three cryptographic proofs — including a post-quantum ML-DSA-44 signature. PQ-Ready

Verification result

Reminder: this result is staged. did:web:revenue.gc.ca is a placeholder, not an identifier the Canada Revenue Agency publishes or controls.

The bank's system automatically verifies the .vrfy file accompanying the tax statement:

🛡 VERIFIED ✓ Authentic · Trusted
Document: annual-tax-statement-2025-MARTIN-S.pdf
Size: 187 KB • application/pdf
Signer: did:web:revenue.gc.ca#tax-services
Reason: Official Annual Tax Statement - Tax Year 2025
Location: Ottawa, ON
Timestamp: 2026-02-28T06:00:00Z
Document IntegritySHA-256 hash verified — document unmodified
Manifest IntegrityDual-proof envelope seal valid
DID Resolutiondid:web:revenue.gc.ca resolved
Signature ValidEd25519 signature verified
DNS URI Record_did.revenue.gc.ca URI found
DNS TLSA RecordPublic key fingerprint matches
Trust RegistryCanada Revenue Agency — Government of Canada
Post-Quantum ProofML-DSA-44 signature verified
Accepted. The bank's system confirms this document was issued by the Canada Revenue Agency (did:web:revenue.gc.ca), is unmodified, and the signer is vouched for by the Government of Canada's trust registry. The loan officer can proceed with confidence.

What happens with a fake?

A fraudulent applicant submits a doctored tax statement with inflated income figures:

✓ Sophie's Real Statement
Income: $92,450.00
Signer: did:web:revenue.gc.ca
.vrfy: Present & valid
Result: VERIFIED · TRUSTED SIGNER: YES
✗ Doctored Statement
Income: $185,000.00 (altered)
Signer: None
.vrfy: Missing or hash mismatch
Result: REJECTED
No .vrfy file — The doctored PDF has no accompanying seal
Hash mismatch — Even if the original .vrfy is reused, the SHA-256 hash won't match the altered PDF
Policy enforcement — The bank's system only accepts government tax statements with valid .vrfy seals
Altering a single byte in the PDF breaks the hash. Changing $92,450 to $185,000 invalidates the signature immediately. There is no way to forge the government's Ed25519 key.

Privacy — encrypted document submission

Sophie doesn't email her tax statement in the clear. She encrypts it for the bank using TrustDID's end-to-end encryption:

📄

Sophie's Document

Tax statement + .vrfy

🔐

Encrypt

Using the bank's public DID encryption key

📧

Send .enc File

Only the bank can decrypt

🔓

Bank Decrypts

Using its private key

How it works: Sophie looks up the bank's DID (did:web:mapleleafbank.ca) and encrypts her tax statement using the bank's X25519 public encryption key. The encrypted .enc file can only be decrypted by the bank's private key. Even if the email is intercepted, the document is unreadable. More on the encryption page.
Seal + encrypt = complete trust. The tax statement is sealed by the government (proving authenticity) and encrypted by Sophie for the bank (ensuring privacy). The bank decrypts, verifies the .vrfy file, and has cryptographic proof of income — all without Sophie ever sharing her SIN or mailing a paper copy.

The bank's verification process

  1. Receive encrypted document. Sophie uploads or emails the .enc file through the bank's secure portal.
  2. Decrypt with the bank's private key. The bank's system decrypts using its X25519 private key, revealing the PDF and .vrfy file.
  3. Verify document integrity. The SHA-256 hash of the PDF is checked against the hash in the .vrfy file. Any tampering is detected.
  4. Verify the government signature. The Ed25519 signature is verified against the CRA's public key in did:web:revenue.gc.ca.
  5. Check DNS & trust registry. The DNSSEC TLSA record confirms the signing key. The trust registry confirms CRA is a registered government issuer.
  6. Accept or reject. The bank accepts only documents that verify as authentic AND whose signer is vouched for by the Government of Canada’s trust registry.

Why this matters

Eliminates income fraud. Banks currently rely on paper statements, PDF uploads, or manual verification calls to CRA. With TrustDID, the bank has cryptographic proof that the tax statement was issued by the government and hasn't been altered.
Faster mortgage approvals. No waiting for fax-backs from CRA, no manual document review for tampering. Verification is instant, automated, and definitive. The loan officer sees a green checkmark and proceeds.
Privacy preserved. Sophie's tax statement is encrypted end-to-end. It never travels in the clear over email. The bank's system decrypts it only when needed. No third-party service ever sees her financial data.
Quantum-resistant for the long term. Tax records and mortgage documents are retained for years. The ML-DSA-44 post-quantum proof ensures these documents remain verifiable even after quantum computers arrive. PQ-Ready

Government-sealed. Customer-encrypted. Bank-verified. Three parties, zero trust assumptions. Cryptographic proof replaces phone calls, fax machines, and guesswork.

Once more, because it matters: nothing above is a real document, a real identifier or a real endorsement. TrustDID has no relationship with the Canada Revenue Agency.

See a verification run for real.