ComparisonDecentralised Identity (DID)

Choosing a credential format: W3C Verifiable Credentials, SD-JWT VC or ISO mdoc

The credential format decides which wallets can hold a claim, which verifiers can read it and how much a presentation reveals about the holder. Three families matter today: the W3C Verifiable Credentials Data Model, IETF SD-JWT VC and ISO mdoc. Here is how each works, where each is strong, and how to choose by scenario, including when issuing the same claim in more than one format is the sensible answer.

Reviewed 8 min read

On this page
  1. Why the format decides who can take part
  2. Terms that separate the three formats
  3. W3C VC Data Model 2.0: one data model, two ways to secure it
  4. SD-JWT VC: salted digests and familiar tooling
  5. ISO mdoc: built for the counter as well as the web
  6. The three credential formats side by side
  7. Identifiers, keys and where a ledger-based DID adds value
  8. Revocation checks that do not report back to the issuer
  9. Picking a credential format by scenario
  10. Issuing the same claim in more than one format
  11. Questions and answers
  12. Sources

Why the format decides who can take part

A verifiable credential is a signed set of claims about a subject that a holder keeps and presents. The format fixes the encoding, the signature scheme, how individual claims can be disclosed and which protocols carry it. A verifier that cannot parse a format cannot accept the credential, however trustworthy the issuer, so the choice decides which wallets and verifiers can take part in an ecosystem.

Format debates often turn into arguments about taste, JSON-LD against plain JSON or CBOR against text. The better questions are practical. Who must verify the claim, and on what devices? Is it presented online, at a counter or offline? Must two verifiers be unable to tell they saw the same holder? Does a regulation or scheme name a format?

Terms that separate the three formats

Selective disclosure
The holder reveals only some claims from a credential, for example a date of birth without the address on the same document.
Unlinkability
Two presentations of the same credential cannot be correlated by the verifiers who receive them, even if they compare notes.
Holder binding
Proof that the person presenting a credential controls the key it was issued to, usually by signing the presentation with a device key.
Status list
A published list, often a compressed bitstring, that a verifier checks to learn whether a credential has been revoked or suspended.

W3C VC Data Model 2.0: one data model, two ways to secure it

The W3C Verifiable Credentials Data Model 2.0 became a W3C Recommendation on 15 May 20251. It defines a JSON-LD data model, so claims can reference shared vocabularies, and two families of securing mechanisms: embedded proofs based on Verifiable Credential Data Integrity, and enveloping proofs based on the companion JOSE and COSE specification1.

Data Integrity cryptosuites differ in what they allow. EdDSA and ECDSA suites sign the whole credential; selective-disclosure suites let a holder derive a proof over chosen claims. The BBS cryptosuite goes further, offering selective disclosure and unlinkable derived proofs, so each presentation looks different to verifiers2. It is still a Candidate Recommendation Draft2, and BBS relies on pairing-friendly curves that common phone secure hardware does not currently support, which complicates device-bound keys.

The model suits ecosystems that value shared semantics across many credential types, such as supply-chain certificates, education records and organisational credentials, and can absorb the extra work of JSON-LD processing.

SD-JWT VC: salted digests and familiar tooling

Selective Disclosure for JWTs was published as RFC 9901 in November 20253. The issuer replaces each disclosable claim with a salted hash, signs the resulting JWT and gives the holder the matching disclosures. To present, the holder sends the JWT, only the disclosures it chooses to reveal and, usually, a key-binding JWT that proves possession of the holder key. SD-JWT VC, the profile that adds credential typing and verification rules, was still an Internet-Draft submitted to the IESG when this page was reviewed4.

Its strengths are simplicity and reach: plain JSON, standard JOSE libraries and an OAuth-style issuance protocol. Its weakness is linkability. The issuer signature and digests are identical in every presentation, so colluding verifiers can recognise the same credential. The usual mitigation is batch issuance of single-use copies, each with fresh salts and keys.

ISO mdoc: built for the counter as well as the web

The mdoc format comes from ISO/IEC 18013-5, the mobile driving licence standard, and is generalised in ISO/IEC 23220-25. Data elements are encoded in CBOR; the issuer signs a mobile security object containing salted digests of each element, and the device authenticates each presentation with a key held in the phone. That makes mdoc the only one of the three designed for proximity presentation, where ISO/IEC 18013-5 is used, while remote presentations can run over OpenID4VP or ISO/IEC 18013-75.

Like SD-JWT VC, mdoc hides undisclosed elements but reuses one issuer signature across presentations, so batches of short-lived credentials address linkability. Its data model is defined per document type, which helps identity documents interoperate and fits open-ended business credentials less naturally.

The three credential formats side by side

CriterionW3C VC Data Model 2.0SD-JWT VCISO mdoc
EncodingJSON-LDJSON in a JWTCBOR, signed with COSE
Selective disclosureYes, with selective-disclosure cryptosuites or BBSYes, salted-hash disclosuresYes, salted digests per data element
Unlinkable presentationsYes with BBS; otherwise needs batch issuanceNeeds batch issuanceNeeds batch issuance
Proximity and offline useNot used for proximity in the EU wallet frameworkRemote presentation only in the EU wallet frameworkCore design goal
Standards statusW3C Recommendation; BBS suite still in Candidate RecommendationSD-JWT is RFC 9901; the VC profile is an Internet-DraftPublished ISO/IEC standard and technical specifications
Role in EU walletsOptional, non-qualified attestations onlyMandatory for walletsMandatory for wallets
Best fitRich, linked business and organisational credentialsOnline identity and attribute checksIdentity documents, in-person and remote checks

Status reflects the specifications as checked on this page's review date. EU wallet roles follow the Architecture and Reference Framework5.

Identifiers, keys and where a ledger-based DID adds value

Verifiers also need to know which key belongs to the issuer. W3C Decentralized Identifiers, a W3C Recommendation since July 2022, resolve an identifier to a document listing keys and services6. did:web publishes that document on the issuer's domain, so trust follows DNS and web hosting. did:key encodes the key in the identifier itself, which suits short-lived or device keys but cannot rotate. Ledger-based methods such as did:hedera record DID document changes on a public network7, giving every party the same key history without depending on one organisation's web server. The EU wallet framework, by contrast, relies on certificate authorities and trusted lists.

A ledger-based DID earns its place when issuers span many organisations with no shared certificate authority, when key history must be auditable years later, or when devices and AI agents need identifiers nobody can quietly reassign. It adds nothing where one authority already runs a trusted list, and personal data never belongs on the ledger.

Revocation checks that do not report back to the issuer

Picking a credential format by scenario

Hypothetical scenarios; most real ecosystems settle on one primary format and add others only where a verifier group requires them.

  • If

    An online service must check that a user is over a minimum age, and many users hold an EU wallet.

    Then

    Accept an age attribute in SD-JWT VC and mdoc over OpenID4VP.

    Those are the formats EU wallets support, and the verifier needs one attribute, not the whole document.

  • If

    A professional body issues licences that hospitals and regulators verify in several countries.

    Then

    Issue SD-JWT VC for online checks, add mdoc if in-person checks at site entrances matter, and publish a status list.

    Verifiers are many and varied, so formats with broad wallet support reduce integration work.

  • If

    A manufacturer issues supplier certificates and test results that buyers and auditors verify across a supply chain.

    Then

    Use W3C Verifiable Credentials with Data Integrity proofs, web or ledger-based DIDs for issuers, and shared vocabularies for certificate types.

    Rich, linked business data benefits from JSON-LD semantics, and no wallet regulation constrains the format.

  • If

    Machines or AI agents must prove who operates them and what they may do before a counterparty accepts a request.

    Then

    Issue short-lived W3C VCs or SD-JWT VCs bound to keys the agent's runtime controls, with issuers identified by DIDs.

    Short lifetimes limit the damage from a compromised agent, and verifiable issuer keys let counterparties check delegation.

Issuing the same claim in more than one format

Signatures do not survive translation: an SD-JWT VC cannot be converted into an mdoc by the holder, because the issuer's signature covers one encoding only. A multi-format strategy therefore keeps one canonical claim model in the issuer's systems and issues each format separately, usually as different credential configurations of the same OpenID4VCI issuer9. Keep revocation in step across formats, and test with the verifiers that will actually read each one.

Questions and answers

Do verifiable credentials need a blockchain?

No. A verifiable credential is checked with the issuer's public key, which can come from a certificate, a web domain or a DID document. A ledger helps when many independent issuers need a shared, tamper-evident record of keys and status, or when no single party should control identifier resolution. The EU wallet framework works without one, while ledger-based DID methods suit open multi-party ecosystems.

Which credential formats do EU Digital Identity Wallets support?

The Architecture and Reference Framework requires wallets to support two formats: the ISO/IEC 18013-5 format, known as mdoc, and SD-JWT VC. W3C VC Data Model support is optional and limited to non-qualified attestations. Issuance runs over OpenID4VCI and remote presentation over OpenID4VP, while proximity presentation uses ISO/IEC 18013-5 and therefore mdoc only.

Can AI agents hold and present verifiable credentials?

Yes, technically. An agent's runtime can hold a key, receive a credential describing who operates it and what it may do, and sign presentations when a counterparty asks. The hard parts are governance rather than format: who issues agent credentials, how short their lifetime is, how delegation from a person or organisation is expressed, and how a compromised agent's credentials are revoked quickly.

Sources

  1. Verifiable Credentials Data Model v2.0 — W3C · checked 10 October 2026
  2. Data Integrity BBS Cryptosuites — W3C · checked 10 October 2026
  3. RFC 9901: Selective Disclosure for JSON Web Tokens (SD-JWT) — IETF · checked 10 October 2026
  4. SD-JWT-based Verifiable Credentials (SD-JWT VC), Internet-Draft — IETF · checked 10 October 2026
  5. EUDI Wallet Architecture and Reference Framework: data model and data exchange protocols — European Commission · checked 10 October 2026
  6. Decentralized Identifiers (DIDs) v1.0 — W3C · checked 10 October 2026
  7. Hedera DID method specification — Hashgraph · checked 10 October 2026
  8. Bitstring Status List v1.0 — W3C · checked 10 October 2026
  9. OpenID for Verifiable Credential Issuance 1.0 — OpenID Foundation · checked 10 October 2026

More in Decentralised Identity (DID)

Back to Decentralised Identity (DID)

Next step

Describe the claim, its issuers and who must verify it

Send us the claim you want to make verifiable, who issues it and where it will be checked. We will reply with a recommended format, the open questions on privacy and status, and what a first issuance pilot would cover.

Discuss a credential design