Decentralized ID (DID) - Terminal 3 Documentation

What is a Decentralized Identifier (DID)?

DIDs are identifiers that enable verifiable, decentralized digital identities. A DID refers to any subject (e.g. a person, group, organization, abstract entity, etc.) as determined by the controller of the DID. Specifically, DIDs are URIs (unique digital addresses) that associate a DID subject with a DID document allowing trustable interactions associated with that subject. Similar to a URL, when you resolve a DID, you receive a DID document in JSON, JSON-LD, or similar format.

A simple DID example

A DID is a simple unique text string consisting of three parts:

  1. the did URI scheme identifier;
  2. the identifier for the DID method; and
  3. the DID method-specific identifier.

The example DID above resolves to a DID document.

Multiple DIDs

A subject may have as many DIDs as they want for different use cases, such as:

What is a DID Document?

A DID document contains information associated with the DID, such as ways to cryptographically authenticate a DID controller.

{
  "@context": [
    "https://www.w3.org/ns/did/v1",
    "https://w3id.org/security/suites/ed25519-2020/v1"
  ],
  "id": "did:example:123456789abcdefghi",
  "authentication": [{
    "id": "did:example:123456789abcdefghi#keys-1",
    "type": "Ed25519VerificationKey2020",
    "controller": "did:example:123456789abcdefghi",
    "publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
  }]
}

DID Methods

A DID method (and its spec) defines the precise operations by which DIDs and DID documents are created, resolved, updated, and deactivated. There are currently more than 150 DID methods out there, which can be categorized into 4 main types based on their storage method:

Terminal 3 currently provides a custom did:t3n DID.

Centralized Blockchain-based Hybrid Static
Privacy low high high medium
Self-Sovereign? no yes yes yes
Data Registry Required? yes yes yes no
(web2 server) yes
(Blockchain) yes yes
(L2 storage) yes
Decentralized? no yes yes yes
Complexity simple complex medium simple
Transaction Fee Required? no yes yes no
(when updating) yes
Mutable? yes no no no
Supported Operations create
read
update
delete
create
read
update
delete
create
read
update
delete
create
read
Example did:web did:ethr
did:btcr
did:dock
did:3
did:ion
did:elem
did:key
did:pkh

DID System Architecture

Generic DID Architecture