Skip to content
Start with Identity
Standard · recommendation

Decentralized Identifiers (DID)

W3C DID Core 1.0 (DID 1.1 in Candidate Recommendation)W3CDID Core 1.0 Recommendation (19 July 2022); DID 1.1 Candidate Recommendation Snapshot (5 March 2026); DID Resolution v1 Candidate Recommendation Draft (3 November 2026)Official spec ↗

What it is

A Decentralized Identifier (DID) is a globally unique identifier that its subject controls directly, without a central registration authority. It is the addressing layer of decentralized identity: where a URL points to a web page, a DID points to a DID document holding the public keys and service endpoints needed to interact with the subject, whether a person, an organization or a device.

A DID looks like did:method:identifier, for example did:web:example.com or did:key:z6Mk.... It is standardized by W3C DID Core 1.0. In practice, DIDs matter most as issuer identifiers: they let a verifier find the key that signed a verifiable credential without a central directory.

Status (November 2026)

Document Status Date
DIDs v1.0 W3C Recommendation 19 July 2022
DIDs v1.1 Candidate Recommendation Snapshot 5 March 2026
DID Resolution v1 Candidate Recommendation Draft 3 November 2026
Controlled Identifiers v1.0 W3C Recommendation (DID 1.1 builds on it) 15 May 2025
DID Extensions registry Working Group registry, not a standard Updated continuously

The DID Working Group is chartered until 31 January 2027. DID 1.1 states it cannot exit Candidate Recommendation until DID Resolution meets its own exit criteria, so the two are coupled. Per its revision history, DID 1.1 refactors the spec onto Controlled Identifiers, moves resolution out, consolidates media types into application/did, and adds a v1.1 JSON-LD context. For implementers, 1.0 DID documents remain the baseline; 1.1 mainly changes how the spec is layered.

How it works

A verifier receives a credential signed by did:web:university.example:

  1. Parse. The method is web, so the identifier maps to https://university.example/.well-known/did.json.
  2. Resolve. A resolver applies the method's rules and returns the DID document plus resolution metadata. DID Resolution standardizes that interface.
  3. Select a key. The credential's proof names a verification method such as did:web:university.example#key-1. Fragment dereferencing finds it in the document.
  4. Check the relationship. The key must be listed under the right verification relationship (for credentials, assertionMethod), not just present.
  5. Verify. The verifier checks the signature, then decides whether it trusts that DID as an issuer, typically through a trust registry or allowlist.

Step 5 is the one teams skip. A valid signature from a DID only proves control of a key, not that the controller is a real university.

DID methods

The method determines how a DID is created, updated and resolved. The W3C DID Extensions registry listed 275 methods on 5 November 2026 (272 registered, 3 deprecated). New entries are a JSON file in a pull request that passes automated validation, an AI-based preliminary spec review, and at least two maintainer reviews. That is a listing process, not a security audit. Our DID methods compared guide covers the trade-offs in depth.

Method Anchored in Good for Watch out for
did:web A domain over HTTPS (CCG spec) Enterprise issuers and verifiers DNS spoofing, hosting compromise, no history
did:webvh Web plus a verifiable history log (DIF spec) did:web with an audit trail Newer, fewer resolvers
did:key, did:jwk The key itself Holder keys, tests, short-lived use No rotation: new key, new DID
did:peer Shared only between parties Pairwise connections Not publicly resolvable by design
did:ion, did:ethr, did:indy, did:cheqd Bitcoin, Ethereum, Indy ledgers, cheqd network Ecosystems already on that ledger Ledger governance, fees, resolver dependency

See also the DID method glossary entry.

Who implements it

Compare platforms in best decentralized identity platforms.

Security and privacy pitfalls

DID 1.1 and the did:web spec spell out the risks:

  • Key loss and compromise. DID 1.1 says cryptography alone cannot show whether a key is compromised, so relying systems should periodically confirm the controller still has control. Plan rotation and recovery before launch, and never reuse recovery keys for other purposes.
  • did:web inherits the web's weaknesses. Without DNSSEC or DNS over HTTPS, an attacker can serve a fake DID document. A compromised web server can rewrite did.json. There is no built-in history, so keep the document in version control.
  • Resolution leaks. The DNS provider and web host can see who resolves a did:web, which tells them who is verifying whose credentials. Cache documents or use a trusted resolver.
  • Correlation. A long-lived public DID for a person is a global tracking identifier. DID 1.1 warns against correlatable identifiers and data in DID documents. Use pairwise or ephemeral identifiers for holders.
  • Method sprawl. Supporting many methods means trusting many resolvers. Pick two or three.
  • Mistaking identifiers for trust. A DID is not an identity claim. Trust still comes from the credentials issued and the trust registries that vouch for issuers.

How it fits with the other standards

VC Data Model 2.0 credentials commonly name a DID as issuer, and Data Integrity proofs reference DID verification methods. OpenID4VP defines a decentralized_identifier client identifier prefix and OpenID4VCI's proofs can bind a credential to a holder key. The two largest government deployments use certificates instead: mDL chains to IACA roots, and HAIP and the EUDI Wallet use X.509 chains and trusted lists. If you need EU interoperability, plan for X.509 alongside DIDs.

Guides: what is decentralized identity, what is self-sovereign identity, DID methods compared, decentralized identity vs federated identity. Standards: Verifiable Credentials, OpenID4VC, eIDAS 2 / EUDI Wallet, mDL. Glossary: DID, DID document, DID method, self-sovereign identity. Vendors: decentralized identity. Directory: digital IDs by country.

Who wrote it

The DID 1.0 specification was co-edited by Drummond Reed, Manu Sporny, and Christopher Allen, who also co-authored TLS 1.0 and named self-sovereign identity. Samuel M. Smith argues the ledger-less case with KERI. More in the experts directory.

Decentralized Identifiers (DID): frequently asked questions

What is the current status of the DID specification?
Decentralized Identifiers (DIDs) v1.0 has been a W3C Recommendation since 19 July 2022. DIDs v1.1 was published as a Candidate Recommendation Snapshot on 5 March 2026, and the W3C DID Working Group, chartered until 31 January 2027, is also taking DID Resolution v1 through Candidate Recommendation (latest draft 3 November 2026). DID 1.1 cannot leave Candidate Recommendation until DID Resolution meets its own exit criteria.
What changed in DID 1.1?
According to its revision history, DID 1.1 is refactored to build on the W3C Controlled Identifiers v1.0 Recommendation, moves resolution into the separate DID Resolution specification, consolidates media types into application/did, adds a v1.1 JSON-LD context, clarifies fragment resolution, and updates HTTP references to RFC 9110. Most of the rest is editorial.
How many DID methods are there?
The W3C DID Extensions registry on GitHub held 275 method entries when we checked on 5 November 2026: 272 with status registered and 3 deprecated. Registration means a method passed the registry's checklist and maintainer review, not that it is secure, widely supported or suitable for production.
Which DID method should an enterprise use?
For most organizations starting out, did:web. It is anchored to a domain you already control over HTTPS, needs no ledger, and is the only entity identifier method Microsoft Entra Verified ID supports. Its trade-off is that it inherits DNS and web hosting risk and has no built-in history. did:key and did:jwk suit short-lived or holder keys with no lookup.
Does the EU Digital Identity Wallet use DIDs?
Not as its trust backbone. The ARF names ISO mdoc and SD-JWT VC as formats, and HAIP requires issuers to carry X.509 certificate chains in the x5c header. OpenID4VP does define a decentralized_identifier client identifier prefix, so DIDs remain usable in other OpenID4VC ecosystems.
Last reviewed By SWI Community TeamSuggest a correctionHow we research
Independent, community-driven reference. Always confirm details against the official specification linked above.