BenchmarksStack Ranking
APIsPricingDocsWhite PaperTokenBlogAboutSecurity Demo
Log InGet API Key
Blockchain · 5 min read

Verifiable Credentials on Blockchain:
W3C Standards Implementation

Implementing W3C Verifiable Credentials with blockchain anchoring.

On-chain
Verified
SBT
Minting
PQ
Signatures
<1ms
Verify

Digital credentials have historically depended on centralized issuers and opaque verification chains. A university degree, a professional license, a government-issued ID—each requires the verifier to trust not just the holder but the entire infrastructure behind the issuer. W3C Verifiable Credentials (VCs) break this pattern by establishing a standardized, cryptographically verifiable data model that decouples issuance from verification. When combined with blockchain anchoring, the result is a credential system where proof of issuance is immutable, revocation is transparent, and the holder retains full sovereignty over their data.

The W3C Verifiable Credential Data Model

At its core, a Verifiable Credential is a JSON-LD document containing three elements: the credential metadata (issuer DID, issuance date, expiration), the claims about the subject (the actual assertions being made), and a cryptographic proof. The W3C specification (VC Data Model 2.0) deliberately separates the data format from the proof mechanism, allowing implementors to choose signature schemes appropriate to their threat model.

{
  "@context": ["https://www.w3.org/ns/credentials/v2"],
  "type": ["VerifiableCredential", "IdentityCredential"],
  "issuer": "did:h33:zQ3shKael7x...4fWm",
  "validFrom": "2026-02-24T00:00:00Z",
  "credentialSubject": {
    "id": "did:h33:zQ3shUser9k...2nRj",
    "biometricVerified": true,
    "authLevel": "post-quantum"
  },
  "proof": {
    "type": "DilithiumSignature2026",
    "verificationMethod": "did:h33:zQ3shKael7x...4fWm#key-1",
    "proofValue": "z3FXhq9Bv7..."
  }
}

This structure is critical because the proof travels with the credential. A verifier does not need to contact the issuer to check validity. They resolve the issuer's DID, retrieve the public key, and verify the signature locally. The entire round trip happens without a phone-home request, which eliminates both a privacy leak and a single point of failure.

Why Blockchain Anchoring Matters

Standalone VCs solve the verification problem but leave open questions about issuance timing and revocation. How does a verifier know the credential was actually issued on the date it claims? How do they discover that a credential has been revoked without querying the issuer's proprietary revocation list? Blockchain anchoring addresses both.

The approach is straightforward: when a credential is issued, a hash of the credential (or a Merkle root covering a batch of credentials) is written to an on-chain transaction. This creates an immutable timestamp. Revocation is handled similarly—a revocation registry stored as a smart contract or on-chain bitmap allows verifiers to check status without contacting the issuer. The credential holder is not identified on-chain; only the hash is anchored, preserving privacy.

Privacy by design: The blockchain never stores the credential itself. Only a SHA3-256 hash is anchored on-chain. The credential content remains under the holder's sole control, shared only with verifiers they explicitly choose.

Architecture: From Issuance to Verification

A production-grade VC-on-blockchain system involves four components: the issuer service, the holder wallet, the blockchain layer, and the verification engine. The flow proceeds in three phases.

Phase 1: Credential Issuance

The issuer authenticates the subject (via biometrics, document verification, or existing credentials), constructs the VC payload, signs it with their private key, and anchors the credential hash to the blockchain. At H33, the authentication step itself runs through a fully post-quantum pipeline: biometric templates are encrypted under BFV FHE, inner products are computed on encrypted data, and the result is attested with a Dilithium signature—all in approximately 42 microseconds per authentication at production scale.

Phase 2: Holder Storage and Presentation

The holder receives the signed VC and stores it in a local wallet (mobile app, browser extension, or hardware device). When a verifier requests proof of a claim, the holder generates a Verifiable Presentation (VP)—a wrapper that proves the holder controls the credential without revealing unnecessary fields. Selective disclosure and zero-knowledge proof techniques allow the holder to prove, for example, that they are over 21 without revealing their exact date of birth.

Phase 3: Verification

The verifier receives the VP, extracts the embedded VC, resolves the issuer's DID to retrieve their public key, verifies the cryptographic signature, and checks the blockchain anchor to confirm issuance timing and revocation status. The entire sequence completes in under a millisecond with modern infrastructure.

StepOperationLatency
DID ResolutionResolve issuer DID to public key~50 ms (cached: <1 ms)
Signature VerifyDilithium-5 signature check~120 µs
ZKP LookupRevocation registry check (DashMap)~0.085 µs
Chain AnchorConfirm hash on-chain (indexed)~2 ms (cached: <0.5 ms)
TotalFull verification<3 ms (warm cache: <1 ms)

Post-Quantum Signatures for Credential Longevity

Most VC implementations today rely on Ed25519 or ECDSA signatures. These are fast and well-understood, but they share a fatal vulnerability: a sufficiently powerful quantum computer running Shor's algorithm can forge signatures in polynomial time. For credentials with long validity periods—university degrees, professional certifications, identity documents—this is not a theoretical concern. A credential issued today with a 10-year validity window must survive quantum threats that may materialize within that window.

Credentials are not session tokens. A diploma issued in 2026 must still be verifiable—and unforgeable—in 2036. Post-quantum signatures are not optional for long-lived credentials; they are a structural requirement.

CRYSTALS-Dilithium (ML-DSA), standardized by NIST as FIPS 204, provides the post-quantum foundation. Dilithium signatures are based on the Module Learning With Errors (MLWE) lattice problem, which remains hard for both classical and quantum adversaries. H33's production stack uses Dilithium for all attestation signatures, achieving a combined sign-and-verify cycle of approximately 244 microseconds. At batch scale (32 credentials per batch), the amortized cost drops further because a single Dilithium signature covers the entire batch attestation.

Soulbound Tokens: Non-Transferable On-Chain Credentials

A natural extension of blockchain-anchored VCs is the Soulbound Token (SBT)—a non-transferable NFT that represents a credential directly on-chain. Unlike standard NFTs, SBTs cannot be sold or transferred. They are permanently bound to the holder's wallet address, making them suitable for representing achievements, certifications, and identity attestations that should not change hands.

The SBT model is particularly powerful when combined with the VC data model. The on-chain SBT serves as the publicly visible anchor (proving the credential exists and has not been revoked), while the off-chain VC contains the full claim details that the holder selectively discloses. This hybrid approach avoids putting sensitive data on a public ledger while still providing the composability benefits of on-chain tokens—smart contracts can gate access based on SBT ownership without needing to parse credential payloads.

// Soulbound Token issuance (simplified)
function issueCredential(address holder, bytes32 vcHash) external onlyIssuer {
    require(balanceOf(holder) == 0, "SBT already issued");
    _mint(holder, nextTokenId);
    _vcAnchors[nextTokenId] = vcHash;
    emit CredentialIssued(holder, nextTokenId, vcHash);
}

// Transfer override: SBTs are non-transferable
function _beforeTokenTransfer(address from, address to, uint256) internal pure override {
    require(from == address(0) || to == address(0), "Soulbound: non-transferable");
}

Scaling Credential Verification

Individual credential verification is fast. The challenge is scale: an enterprise identity provider may need to verify millions of credentials per second during peak authentication flows. This is where the architecture of the verification engine becomes critical.

H33's approach uses three layers in a single API call. First, biometric or credential data is encrypted under BFV fully homomorphic encryption with SIMD batching—32 users packed into a single ciphertext via CRT slot encoding. The encrypted inner product runs in approximately 1,109 microseconds for the full 32-user batch. Second, a zero-knowledge proof lookup confirms the credential against a cached registry; using an in-process DashMap, this lookup completes in 0.085 microseconds with zero network overhead. Third, a Dilithium signature attests the result with post-quantum security. The combined pipeline delivers 1.595 million authentications per second on production hardware (Graviton4, 96 workers), with a per-authentication latency of approximately 42 microseconds.

Production numbers: H33's full-stack VC verification pipeline—FHE batch encryption, ZKP registry lookup, and Dilithium attestation—sustains 2,172,518 authentications per second on a single Graviton4 instance. Per-auth latency: ~42 µs. Every stage is post-quantum secure.

Revocation Without Centralization

Credential revocation is the hardest problem in any VC system. Traditional approaches use Certificate Revocation Lists (CRLs) or Online Certificate Status Protocol (OCSP), both of which require the verifier to contact the issuer—reintroducing the centralization that VCs were designed to eliminate. Blockchain-native revocation avoids this entirely.

Two patterns dominate. The first is a revocation registry smart contract: a bitmap or accumulator stored on-chain where each bit corresponds to a credential index. Revoking a credential flips a bit; verifiers read the bitmap directly from the chain. The second is a status list approach aligned with the W3C Bitstring Status List specification, where a compressed bitstring is published at a known URL (or anchored on-chain) and updated by the issuer. Both patterns allow verifiers to check revocation status without contacting the issuer and without revealing which specific credential they are checking.

Looking Forward

The convergence of W3C Verifiable Credentials, blockchain anchoring, post-quantum cryptography, and fully homomorphic encryption creates a credential infrastructure that is simultaneously decentralized, privacy-preserving, and quantum-resistant. The pieces are no longer theoretical—they are running in production, at scale, today. As regulatory frameworks like eIDAS 2.0 in Europe begin mandating interoperable digital identity wallets, the systems built on these foundations will define how trust operates in the next decade of the internet.

Ready to Go Quantum-Secure?

Start protecting your users with post-quantum authentication today. 1,000 free auths, no credit card required.

Get Free API Key →

Build With Post-Quantum Security

Enterprise-grade FHE, ZKP, and post-quantum cryptography. One API call. Sub-millisecond latency.

Get Free API Key → Read the Docs
Free tier · 10,000 API calls/month · No credit card required
Verify It Yourself