Deep dive

Anatomy of the .vrfy sidecar.

Your document’s cryptographic companion — lightweight, tamper-evident, and quantum-safe.

What Is a Sidecar?

When you sign a document with TrustDID, it produces a .vrfy file—a verification manifest that travels alongside your document. Like a sidecar on a motorcycle, it rides alongside without ever modifying the original.

📄
invoice.pdf
Your original document
Completely untouched
+
📎
invoice.pdf.vrfy
Cryptographic companion
Seal + identity + hash
Vintage motorcycle with sidecar — the document rides the bike, its seal rides the sidecar

The document rides the bike. The seal rides the sidecar.

Key principle: the sidecar never modifies the original document. It’s a detached signature that can be verified independently. The original file stays byte-for-byte identical.

Manifest Anatomy

Here’s what a real .vrfy manifest looks like. This example uses the TrustDID identity at trustdid.ca/.well-known/did.json—you can open that link right now to see a live DID document in the wild.

{
  "version": "3.0",
  "type": "VerifiableDocumentSignature",
  "did": "did:web:trustdid.ca",
  "payload": {
    "did": "did:web:trustdid.ca",
    "documentHash": "447de134b08fca5437616682...",
    "hashAlgorithm": "SHA-256",
    "timestamp": "2026-03-06T19:12:21.004129Z",
    "fileName": "invoice-2026-0042.pdf",
    "fileSize": 184320,
    "mimeType": "application/pdf"
  },
  "proof": {
    "type": "Ed25519Signature2020",
    "verificationMethod": "did:web:trustdid.ca#support",
    "proofPurpose": "assertionMethod",
    "proofValue": "OTtDcAfrnoVM7VaHKN7gdxv5..."
  },
  "manifestProof": {
    "type": "Ed25519Signature2020",
    "verificationMethod": "did:web:trustdid.ca#support",
    "proofPurpose": "authentication",
    "proofValue": "sVdHbihSLaO8QG+Jits8Kkx..."
  },
  "pqManifestProof": {
    "type": "MLDSASignature2024",
    "verificationMethod": "did:web:trustdid.ca#support-pq",
    "proofPurpose": "authentication",
    "proofValue": "L5R9Uy3Qtt7U1R/jYLMgDG3..."
  }
}
FieldWhat it does
version Manifest format version. Ensures backward compatibility as the format evolves.
did The signer’s Decentralized Identifier—points to their public keys on the web.
documentHash SHA-256 hash of the original document. If even one byte changes, this hash won’t match.
timestamp When the document was signed. Used for key history resolution and audit trails.
fileName / fileSize Original file metadata. Helps the verifier confirm they have the right document.
proof Ed25519 signature over the document hash. This is the primary proof that the signer authorized this document.
manifestProof Ed25519 signature over the entire manifest. Prevents tampering with the .vrfy file itself.
pqManifestProof ML-DSA-44 post-quantum signature. Protects against future quantum computing attacks.
timestampProofs Optional array of trusted-timestamp proofs over the signature—each one a Time-Stamp Authority’s signed attestation of when the signature existed. When present, the verified TSA time—not the signer’s clock—is the authoritative signing time.
Optional metadata fields:

The payload can also include reason (why the document was signed), location (where), and email metadata like sourceEmail, subject, and recipient lists. These are recorded in the sidecar for audit trails but don’t affect the cryptographic verification.

Three Layers of Proof

Every .vrfy sidecar carries three independent cryptographic proofs. Each protects against a different type of attack.

Layer 1

Document Proof

Ed25519 signature over the document hash. Proves who signed it and that the document hasn’t been modified.

proof.type: "Ed25519Signature2020"
Layer 2

Manifest Proof

Ed25519 signature over the entire manifest. Protects the .vrfy file itself—attackers cannot forge valid manifests.

manifestProof.type: "Ed25519Signature2020"
Layer 3

Post-Quantum Proof

ML-DSA-44 signature that keeps the proof quantum-safe. Enabled by default on every signature—zero configuration required.

pqManifestProof.type: "MLDSASignature2024"

Cryptographic Foundations

TrustDID uses battle-tested algorithms trusted by the modern internet, plus next-generation quantum-safe cryptography.

Ed25519 Signing

The same elliptic curve algorithm used by SSH, Signal, and age encryption. Fast, compact signatures with strong security guarantees.

X25519 Encryption

Diffie-Hellman key exchange used by WireGuard, Signal, and TLS 1.3. Enables end-to-end encryption for anyone with a DID.

ML-DSA-44 Post-Quantum

NIST FIPS 204 standard (formerly Dilithium). Resistant to attacks from quantum computers. Enabled by default on every TrustDID signature.

Key History & Rotation

Keys can be rotated at any time. Every rotation is recorded in the keyHistory field of your did.json and appended to a tamper-evident log, did.json.vrfy.log. But what about documents signed with an old key?

Old signatures remain valid.
  • Every .vrfy sidecar records the key ID used at signing time (e.g., #finance)
  • The signature is timestamped—and when a trusted timestamp proof is present, the TSA’s independent time is the authoritative one
  • Using keyHistory—backed by the append-only did.json.vrfy.log—the verifier resolves the key that was active at signing time
  • Just like rotating passwords—old logins still happened, new ones use the new credentials

Longevity: Documents That Stay Verifiable

A sidecar signed today should be verifiable in 10 years. TrustDID is designed for long-term trust.

Why sidecars age well:
  • Self-contained proof: the sidecar carries everything needed—hash, signature, DID reference, timestamp
  • Dual signatures: even if Ed25519 is someday weakened, the ML-DSA-44 post-quantum signature stands as a second, independent proof
  • No central dependency: verification doesn’t depend on a certificate authority that might shut down or revoke certificates
  • Archival-friendly: both the document and its sidecar are plain files. No database, no service, no subscription required to verify

Distribution: Travels Anywhere

The sidecar is just a file. It can travel alongside your document through any channel.

Email

Attach alongside the document.

Web / CDN

Host at the same URL + .vrfy.

Filesystem

Same folder, same name + .vrfy.

Cloud Storage

S3, Azure Blob, Google Cloud.

Cross-domain hosting is fully supported. The sidecar carries proof of original authorship regardless of where the document is stored. A file on a CDN can be verified against a DID hosted on the signer’s own domain.

The .vrfy File Format

A .vrfy file is plain text—you can open it in any text editor. It starts with a human-readable comment header explaining what the file is and how to verify it, followed by the JSON manifest.

// ════════════════════════════════════════════════
// TrustDID™ — Digital Document Verification Manifest
// Copyright © 2026 TrustDID Solutions Inc.
//
// This file is a cryptographic sidecar for:
//   invoice-2026-0042.pdf
//
// To verify, right-click the original document
// and select "Verify with TrustDID"
// ════════════════════════════════════════════════

{
  "version": "3.0",
  "type": "VerifiableDocumentSignature",
  ...
}

The comment header is for humans. The verification engine reads only the JSON body. This means anyone who receives a .vrfy file knows exactly what it is, even without TrustDID installed.

Now see how one gets made.