Decentralized Identifier (DID)
A new type of digital identifier (like an email address) that is globally unique, highly available, and cryptographically verifiable, but created and owned entirely by the user rather than a central authority.
By combining DIDs with Verifiable Credentials (VCs), users can prove claims about themselves (e.g., 'I am over 18' or 'I have a university degree') to third parties in a privacy-preserving manner, using zero-knowledge proofs, without the third party needing to contact the issuer of the credential.
graph LR
Center["Decentralized Identifier (DID)"]:::main
Pre_cryptography["cryptography"]:::pre --> Center
click Pre_cryptography "/terms/cryptography"
Pre_public_key["public-key"]:::pre --> Center
click Pre_public_key "/terms/public-key"
Rel_verifiable_credentials["verifiable-credentials"]:::related -.-> Center
click Rel_verifiable_credentials "/terms/verifiable-credentials"
Rel_soulbound_token_sbt["soulbound-token-sbt"]:::related -.-> Center
click Rel_soulbound_token_sbt "/terms/soulbound-token-sbt"
Rel_non_fungible_token_nft["non-fungible-token-nft"]:::related -.-> Center
click Rel_non_fungible_token_nft "/terms/non-fungible-token-nft"
classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
linkStyle default stroke:#4b5563,stroke-width:2px;
🧠 Knowledge Check
🧒 Explain Like I'm 5
Think of a traditional username or email like a rented apartment: if the landlord (the company) decides to kick you out or goes out of business, you lose your address and everything inside. A DID is like building your own house on your own land. You have the only key, you own the address permanently, and no company can ever take it away or lock you out of it.
🤓 Expert Deep Dive
DID Architecture
The W3C DID Core specification defines a strict URI format: did::.
For example: did:ethr:0x123... (Ethereum method) or did:ion:EiA... (Sidetree/Bitcoin method).
The DID Document
When a DID is 'resolved', it returns a JSON-LD object called the DID Document. This document contains:
1. Verification Methods: Public keys (e.g., Ed25519 or Secp256k1) used to verify digital signatures made by the DID subject.
2. Authentication: Proof that the entity interacting with the system actually controls the DID.
3. Service Endpoints: URLs indicating where you can communicate with the DID subject (e.g., to send them a Verifiable Credential).
Method Agnosticism
Crucially, DIDs do not inherently require a blockchain. While blockchains provide excellent decentralized registries, DIDs can be anchored to IPFS, peer-to-peer networks (like BitTorrent), or even traditional web servers (did:web).
❓ Frequently Asked Questions
Why can't I just use 'Log in with Google'?
When you use centralized logins, that company tracks everywhere you go online, and they can revoke your access at any time. A DID gives you a login that you cryptographically own and control forever.
Does a DID have to be stored on a blockchain?
No. While many DID methods use blockchains to prevent censorship, the W3C standard is method-agnostic. You can use 'did:web' to host a DID on a standard web server.
What is inside a DID Document?
It's a small text file (JSON) that contains the public cryptographic keys associated with the DID, allowing anyone to verify digital signatures made by the owner.