DID Specification Registries

The interoperability registry for Decentralized Identifiers

W3C Working Group Note

This version:
https://www.w3.org/TR/2020/NOTE-did-spec-registries-20201130/
Latest published version:
https://www.w3.org/TR/did-spec-registries/
Latest editor's draft:
https://w3c.github.io/did-spec-registries/
Previous version:
https://www.w3.org/TR/2020/NOTE-did-spec-registries-20201119/
Editors:
Orie Steele (Transmute)
Manu Sporny (Digital Bazaar)
Authors:
Orie Steele (Transmute)
Manu Sporny (Digital Bazaar)
Participate:
GitHub w3c/did-spec-registries
File a bug
Commit history
Pull requests

Abstract

This document serves as an official registry for all known global parameters, properties, and values used by the Decentralized Identifier ecosystem.

Status of This Document

This section describes the status of this document at the time of its publication. Other documents may supersede this document. A list of current W3C publications and the latest revision of this technical report can be found in the W3C technical reports index at https://www.w3.org/TR/.

This registry is under active development and implementers are advised against using the registry unless they are directly involved with the W3C DID Working Group.

Comments regarding this document are welcome. Please file issues directly on GitHub, or send them to public-did-wg@w3.org ( subscribe, archives).

Portions of the work on this specification have been funded by the United States Department of Homeland Security's Science and Technology Directorate under contracts HSHQDC-16-R00012-H-SB2016-1-002, 70RSAT20T00000010, and HSHQDC-17-C-00019. The content of this specification does not necessarily reflect the position or the policy of the U.S. Government and no official endorsement should be inferred.

Work on this registry has also been supported by the Rebooting the Web of Trust community facilitated by Christopher Allen, Shannon Appelcline, Kiara Robles, Brian Weller, Betty Dhamers, Kaliya Young, Kim Hamilton Duffy, Manu Sporny, Drummond Reed, Joe Andrieu, and Heather Vescent, Dmitri Zagidulin, and Dan Burnett.

This document was published by the Decentralized Identifier Working Group as a Working Group Note.

GitHub Issues are preferred for discussion of this specification. Alternatively, you can send comments to our mailing list. Please send them to public-did-wg@w3.org (archives).

Publication as a Working Group Note does not imply endorsement by the W3C Membership.

This is a draft document and may be updated, replaced or obsoleted by other documents at any time. It is inappropriate to cite this document as other than work in progress.

This document was produced by a group operating under the 1 August 2017 W3C Patent Policy.

This document is governed by the 15 September 2020 W3C Process Document.

1. Conformance

As well as sections marked as non-normative, all authoring guidelines, diagrams, examples, and notes in this specification are non-normative. Everything else in this specification is normative.

The key words MAY, MUST, MUST NOT, and SHOULD in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

2. Introduction

This section is non-normative.

This document serves as an official registry for all known global parameters, properties, and values used by the Decentralized Identifier ecosystem.

3. The Registration Process

Software implementers might find that the existing Decentralized Identifier Core specification [DID-CORE] is not entirely capable of addressing their use case and might need to add a new parameters, properties, or values to this registry in order to achieve their use case in a globally interoperable fashion. In order to add a new parameter, property, or value to this registry, an implementer MUST submit a modification request for this registry, as a GitHub Pull Request, where the modification request adheres to the following rules:

  1. Any addition to the DID Core Registries MUST specify a human readable description of the addition.
  2. Any addition to the DID Core Registries MUST link, via at least a URL, preferably a content-integrity protected one, to the defining specification so that implementers can implement the property.
  3. Any addition to the DID Core Registries that is a property or value, MUST specify a machine readable JSON-LD Context for the addition.
    • The JSON-LD Context MUST be included in full as part of the submission.
    • A namespace URI MUST be provided for the JSON-LD Context so that consumer implementations can consistently map a URI to the full context.
    • The URI provided MUST be persistent, and link all terms to their associated human readable descriptions.
    • The URI provided SHOULD resolve or link to the full context contents.
    • JSON-LD Contexts MUST be versioned and MUST NOT be date stamped.
    • JSON-LD Contexts SHOULD use scoped terms and MUST use the @protected feature to eliminate the possibility of term conflicts.
  4. Properties in the DID Core Registries MUST NOT be removed, only deprecated.

Additions that do not meet these criteria MUST NOT be accepted. Entries that are identified to cause interoperability problems MAY be marked as such at the discretion of the maintainers of this registry, and if possible, after consultation with the entry maintainer.

Any submission to the registries that meet all the criteria listed above will be accepted for inclusion. These registries enumerate all known mechanisms that meet a minimum bar, without choosing between them.

4. Properties

The following section defines the properties available for use in a DID document. Note that some of these properties are defined in the DID Core Specification, and others are defined elsewhere and may be method- or domain-specific. Please read the associated specifications to ensure that the properties you use are appropriate for your implementation. The properties are arranged here according to the purpose they serve.

Issue 1

This registry is a work in progress and some properties are missing normative definitions. We are working on this! This does NOT mean that in future it will be possible to submit items to the registry without normative definitions (see § 3. The Registration Process).

4.1 Base properties

These properties are foundational to DID documents, and are expected to be useful to all DID methods.

4.1.1 @context

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 1: Example of @context property
{
  "@context": [
    "https://www.w3.org/ns/did/v1",
    "https://example.com/blockchain-identity/v1"
  ],
  ...
}

4.1.2 id

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 2: Example of id property
{
  "id": "did:example:123",
  ...
}

4.1.3 controller

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 3: Example of controller property
{
  "controller": "did:example:123",
  ...
}

4.1.4 verificationMethod

Normative Definition JSON-LD CBOR
DID Core Terminology (property definition pending) DID Core context

4.1.5 publicKey

Issue 2

This property may be replaced entirely by verificationMethod in DID Core. See issue #283.

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 4: Example of publicKey property
{
  "id": "did:example:123",
  "publicKey": [
    {
      "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
      "type": "Ed25519VerificationKey2018",
      "controller": "did:example:123",
      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
    },
    {
      "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
      "type": "EcdsaSecp256k1VerificationKey2019",
      "controller": "did:example:123",
      "publicKeyJwk": {
        "crv": "secp256k1",
        "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
        "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
        "kty": "EC",
        "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
      }
    }
  ]
}

4.1.6 service

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 5: Example of service and serviceEndpoint properties
{
  ...
  "service": [{
    "id": "did:example:123#edv",
    "type": "EncryptedDataVault",
    "serviceEndpoint": "https://edv.example.com/"
  }]
}

4.2 Services

These terms are properties or types belonging to objects in the value of § 4.1.6 service.

4.2.1 serviceEndpoint

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 6: Example of service and serviceEndpoint properties
{
  ...
  "service": [{
    "id": "did:example:123#edv",
    "type": "EncryptedDataVault",
    "serviceEndpoint": "https://edv.example.com/"
  }]
}

4.3 Verification relationships

A DID document expresses the relationship between the DID subject and a verification method using a verification relationship.

4.3.1 assertionMethod

Normative Definition JSON-LD CBOR
security-vocab DID Core context
Example 7: Example of assertionMethod property
{
  ...
  "publicKey": [{
    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
    "type": "EcdsaSecp256k1VerificationKey2019",
    "controller": "did:example:123",
    "publicKeyJwk": {
      "crv": "secp256k1",
      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
      "kty": "EC",
      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
    }
  }],
  "assertionMethod": [{
    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
    "type": "Ed25519VerificationKey2018",
    "controller": "did:example:123",
    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
  },
  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  ]
}

4.3.2 authentication

Normative Definition JSON-LD CBOR
DID Core DID Core context
Example 8: Example of authentication property
{
  ...
  "publicKey": [{
    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
    "type": "EcdsaSecp256k1VerificationKey2019",
    "controller": "did:example:123",
    "publicKeyJwk": {
      "crv": "secp256k1",
      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
      "kty": "EC",
      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
    }
  }],
  "authentication": [{
    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
    "type": "Ed25519VerificationKey2018",
    "controller": "did:example:123",
    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
  },
  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  ]
}

4.3.3 capabilityDelegation

Normative Definition JSON-LD CBOR
security-vocab DID Core context
Example 9: Example of capabilityDelegation property
{
  ...
  "publicKey": [{
    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
    "type": "EcdsaSecp256k1VerificationKey2019",
    "controller": "did:example:123",
    "publicKeyJwk": {
      "crv": "secp256k1",
      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
      "kty": "EC",
      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
    }
  }],
  "capabilityDelegation": [{
    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
    "type": "Ed25519VerificationKey2018",
    "controller": "did:example:123",
    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
  },
  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  ]
}

4.3.4 capabilityInvocation

Normative Definition JSON-LD CBOR
security-vocab DID Core context
Example 10: Example of capabilityInvocation property
{
  ...
  "publicKey": [{
    "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
    "type": "EcdsaSecp256k1VerificationKey2019",
    "controller": "did:example:123",
    "publicKeyJwk": {
      "crv": "secp256k1",
      "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
      "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
      "kty": "EC",
      "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
    }
  }],
  "capabilityInvocation": [{
    "id": "did:example:123#z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4",
    "type": "Ed25519VerificationKey2018",
    "controller": "did:example:123",
    "publicKeyBase58": "BYEz8kVpPqSt5T7DeGoPVUrcTZcDeX5jGkGhUQBWmoBg"
  },
  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  ]
}

4.3.5 keyAgreement

Normative Definition JSON-LD CBOR
security-vocab DID Core context
Example 11: Example of keyAgreement property
{
  ...
  "keyAgreement": [
    {
      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
      "type": "X25519KeyAgreementKey2019",
      "controller": "did:example:123",
      "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
    }
  ]
}

4.4 Verification method properties

These properties are for use on a verification method object, not on the DID document itself.

4.4.1 ethereumAddress

Normative Definition JSON-LD CBOR
ESRS2020 esrs2020
Example 12: Example of ethereumAddress property
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
  ],
  "id":"did:example:123",
  "publicKey":[{
    "id": "did:example:123#vm-3",
    "controller": "did:example:123",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
  }]
}

4.4.2 publicKeyHex

Normative Definition JSON-LD CBOR
ESRS2020 esrs2020
Example 13: Example of publicKeyHex property
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
  ],
  "id":"did:example:123",
  "publicKey":[{
    "id": "did:example:123#vm-2",
    "controller": "did:example:123",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
  }]
}

4.4.3 publicKeyJwk

Normative Definition JSON-LD CBOR
Normative definition pending DID Core context
Example 14: Example of publicKeyJwk property
{
  "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
  "type": "JsonWebKey2020",
  "controller": "did:example:123",
  "publicKeyJwk": {
    "crv": "Ed25519",
    "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ",
    "kty": "OKP",
    "kid": "_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A"
  }
},

4.4.4 publicKeyBase58

Normative Definition JSON-LD CBOR
security-vocab DID Core context

4.4.5 Verification method types

These are classes not a properties - in other words, use them for the value of type in a verification method object.

4.4.5.1 JsonWebKey2020
Issue 3

ISSUE 240 on DID Core: The duplication and/or possible interaction of properties held in a JWK and a verification method are an active topic of discussion in the Working Group. Implementers are cautioned that the behavior of values associated with this property are not stable and might change in the future.

Normative Definition JSON-LD CBOR
Normative definition pending DID Core context
Example 15: Example of JsonWebKey2020 class
{
  "id": "did:example:123#_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw",
  "type": "JsonWebKey2020",
  "controller": "did:example:123",
  "publicKeyJwk": {
    "crv": "P-256",
    "x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
    "y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4",
    "kty": "EC",
    "kid": "_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw"
  }
}
4.4.5.2 EcdsaSecp256k1VerificationKey2019
Normative Definition JSON-LD CBOR
Ecdsa Secp256k1 Signature 2019 DID Core context
Example 16: Example of EcdsaSecp256k1VerificationKey2019 class
{
  "id": "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q",
  "type": "EcdsaSecp256k1VerificationKey2019",
  "controller": "did:example:123",
  "publicKeyJwk": {
    "crv": "secp256k1",
    "x": "NtngWpJUr-rlNNbs0u-Aa8e16OwSJu6UiFf0Rdo1oJ4",
    "y": "qN1jKupJlFsPFc1UkWinqljv4YE0mq_Ickwnjgasvmo",
    "kty": "EC",
    "kid": "WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  }
}
4.4.5.3 Ed25519VerificationKey2018
Normative Definition JSON-LD CBOR
Ed25519 Signature 2018 DID Core context
Example 17: Example of Ed25519VerificationKey2018 class
{
  "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
  "type": "Ed25519VerificationKey2018",
  "controller": "did:example:123",
  "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
4.4.5.4 GpgVerificationKey2020
Warning

No support for "Pure JSON" or "CBOR" is currently provided.

Normative Definition JSON-LD CBOR
Linked Data Signatures for GPG gpg.jsld.org Not supported
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://gpg.jsld.org/contexts/lds-gpg2020-v0.0.jsonld"
  ],
  "id":"did:example:123",
  "publicKey":[{
    "id": "did:example:123#989ed1057a294c8a3665add842e784c4d08de1e2",
    "type": "GpgVerificationKey2020",
    "controller": "did:example:123",
    "publicKeyGpg": "-----BEGIN PGP PUBLIC KEY BLOCK-----\r\nVersion: OpenPGP.js v4.9.0\r\nComment: https://openpgpjs.org\r\n\r\nxjMEXkm5LRYJKwYBBAHaRw8BAQdASmfrjYr7vrjwHNiBsdcImK397Vc3t4BL\r\nE8rnN......v6\r\nDw==\r\n=wSoi\r\n-----END PGP PUBLIC KEY BLOCK-----\r\n"
  }]
}
4.4.5.5 RsaVerificationKey2018
Normative Definition JSON-LD CBOR
RSA Signature Suite 2018 DID Core context
{
  "id": "did:example:123#key-0",
  "type": "RsaVerificationKey2018",
  "controller": "did:example:123",
  "publicKeyJwk": {
    "kty":"RSA",
    "e":"AQAB",
    "use":"sig",
    "kid":"tNksV42EUs3Xct9AkgZyFWglItRGMxVZ1A1XM68SNq0
    "n":"kO2d_qQTEBjYFGcoY_da7ziFY4L2QX14K7snCee09n-cY2eP-oJXk8T2_lL20YnpYhf4i
    jhkWHGU8kY8-FWPRrzSeu3JUMVSZoqTgoAiKWdnSLNvPVxvGuD2CiA3T6AkwUC03D2AkOLCcJV
    8h_hxUEPeDawF7ArpuJW5DXzEJjE7gOjN4r6d7VB6sd5y-3la54H2ADz2amHLdBWs30fL4BRBH
    lVdx0YmF37V4u5yvnnb5Iyr3kBXJes8t0MUMPkjqEEXRmukpKUzZYNpWDXY0tVcXeK5sRx0DAn
    lNgNNf14-vsyjGkj2Rz0oGW73jjWa8dw-yVlDEHyIkQU9-UY4dFXbVjdIO8j_5ghh62o1T7Y4w
    5CWMc-FxPE3LHe-_teW97X__NN-ToYgfi42IvV2mYOdQMCbvnvY2oMdK3b9wmeVi0marToauL5
    LMg5xHDKopmIR7E3VyRtNYwDFAZ89kadcbSrZ8zTR5APaB7Tmp2L2ZfXKxqKQuxlFTTCcZtg4e
    5AN8QuYdI18DEDQn2umUU_Twj7k4CXvuIKVL8p4yRHC4CHAGIm9cH_t11dF3wXygaENVOGRXQu
    0g1iKq0mO2rWpOqkGJ5uXMFb5lx54i8uOjCdZ9y2el28xA55Ve95KCxeTHp997Bn3TIgbeQ-B_
    -3PBVTuuAAH8y9fFNKtu5E"
  }
}
4.4.5.6 X25519KeyAgreementKey2019
Normative Definition JSON-LD CBOR
Normative definition pending
Example 20: Example of X25519KeyAgreementKey2019
{
  ...
  "keyAgreement": [
    {
      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
      "type": "X25519KeyAgreementKey2019",
      "controller": "did:example:123",
      "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
    }
  ]
}
4.4.5.7 SchnorrSecp256k1VerificationKey2019
Normative Definition JSON-LD CBOR
security-vocab Link is to a placeholder! Definition pending DID Core context
4.4.5.8 EcdsaSecp256k1RecoveryMethod2020
Normative Definition JSON-LD CBOR
ESRS2020 esrs2020
{
"@context":[
  "https://www.w3.org/ns/did/v1",
  "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
],
"id":"did:example:123",
"publicKey":[{
  "id": "did:example:123#vm-1",
  "controller": "did:example:123",
  "type": "EcdsaSecp256k1RecoveryMethod2020",
  "publicKeyJwk": {
    "crv": "secp256k1",
    "kid": "JUvpllMEYUZ2joO59UNui_XYDqxVqiFLLAJ8klWuPBw",
    "kty": "EC",
    "x": "dWCvM4fTdeM0KmloF57zxtBPXTOythHPMm1HCLrdd3A",
    "y": "36uMVGM7hnw-N6GnjFcihWE3SkrhMLzzLCdPMXPEXlA"
  }
},
{
  "id": "did:example:123#vm-2",
  "controller": "did:example:123",
  "type": "EcdsaSecp256k1RecoveryMethod2020",
  "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
},
{
  "id": "did:example:123#vm-3",
    "controller": "did:example:123",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
  }]
}

4.5 DID Resolution Input Metadata

These properties contain information pertaining to the DID resolution request.

4.5.1 accept

Normative Definition
DID Core
Example 22: Example of accept metadata property
{
  "accept": "application/did+ld+json"
}

5. DID Resolution Metadata

These properties contain information pertaining to the DID resolution response.

5.1 content-type

Normative Definition
DID Core
Example 23: Example of content-type metadata property
{
  "content-type": "application/did+ld+json"
}

5.2 error

Normative Definition
DID Core
Example 24: Example of error metadata property
{
  "error": "not-found"
}

5.2.1 invalid-did

Normative Definition
DID Core
Example 25: Example of invalid-did error value
{
  "error": "invalid-did"
}

5.2.2 invalid-did-url

Normative Definition
DID Core
Example 26: Example of invalid-did-url error value
{
  "error": "invalid-did-url"
}

5.2.3 not-found

Normative Definition
DID Core
Example 27: Example of not-found error value
{
  "error": "not-found"
}

5.2.4 deactivated

Normative Definition
DID Core
Example 28: Example of deactivated error value
{
  "error": "deactivated"
}

6. DID Document Metadata

These properties contain information pertaining to the DID document itself, rather than the DID subject.

6.1 created

Issue 4

See DID Core #203.

Normative Definition JSON-LD CBOR
DID Core DID Core context CBOR
{
  "created": "2019-03-23T06:35:22Z"
}

6.2 updated

Issue 5

See DID Core #203.

Normative Definition JSON-LD CBOR
DID Core DID Core context CBOR
Example 30: Example of updated property
{
  "updated": "2023-08-10T13:40:06Z"
}

7. Parameters

7.1 hl

Normative Definition
DID Core
Example 31: Example of hl parameter
did:example:123?hl=zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e

7.2 service

Normative Definition
DID Core
Example 32: Example of service parameter
did:example:123?service=agent

7.3 version-id

Normative Definition
DID Core
Example 33: Example of version-id parameter
did:example:123?version-id=4

7.4 version-time

Normative Definition
DID Core
Example 34: Example of version-time parameter
did:example:123?version-time=2016-10-17T02:41:00Z

7.5 relative-ref

Normative Definition
DID Core
Example 35: Example of relative-ref parameter
did:example:123?service=files&relative-ref=%2Fmyresume%2Fdoc%3Fversion%3Dlatest%23intro

7.6 initial-state

Normative Definition
DID Spec Extensions by DIF
Example 36: Example of initial-state parameter
did:example:123?initial-state=eyJkZWx0YV9oYXNoIjoiRWlDUlRKZ2Q0U0V2YUZDLW9fNUZjQnZJUkRtWF94Z3RLX3g...

7.7 transform-keys

Normative Definition
DID Spec Extensions by DIF
Example 37: Example of transform-keys parameter
did:example:123?transform-keys=jwk

8. DID Methods

This table summarizes the DID method specifications currently in development. The links will be updated as subsequent Implementer’s Drafts are produced.

The normative requirements for DID method specifications can be found in Decentralized Identifiers v1.0: Methods [DID-CORE]. DID methods that do not meet these requirements will not be accepted.

Method Name Status DLT or Network Authors Link
did:abt: PROVISIONAL ABT Network ArcBlock ABT DID Method
did:btcr: PROVISIONAL Bitcoin Christopher Allen, Ryan Grant, Kim Hamilton Duffy BTCR DID Method
did:stack: PROVISIONAL Bitcoin Jude Nelson Blockstack DID Method
did:erc725: PROVISIONAL Ethereum Markus Sabadello, Fabian Vogelsteller, Peter Kolarov erc725 DID Method
did:example: PROVISIONAL DID Specification W3C Credentials Community Group DID Specification
did:ipid: PROVISIONAL IPFS TranSendX IPID DID method
did:life: PROVISIONAL RChain lifeID Foundation lifeID DID Method
did:sov: PROVISIONAL Sovrin Mike Lodder Sovrin DID Method
did:uport: DEPRECATED Ethereum uPort
did:ethr: PROVISIONAL Ethereum uPort ETHR DID Method
did:v1: PROVISIONAL Veres One Digital Bazaar Veres One DID Method
did:com: PROVISIONAL commercio.network Commercio Consortium Commercio.network DID Method
did:dom: PROVISIONAL Ethereum Dominode
did:ont: PROVISIONAL Ontology Ontology Foundation Ontology DID Method
did:vvo: PROVISIONAL Vivvo Vivvo Application Studios Vivvo DID Method
did:aergo: PROVISIONAL Aergo Blocko Aergo DID Method
did:icon: PROVISIONAL ICON ICONLOOP ICON DID Method
did:is: PROVISIONAL Blockcore Blockcore Blockcore DID Method
did:iwt: PROVISIONAL InfoWallet Raonsecure InfoWallet DID Method
did:ockam: PROVISIONAL Ockam Ockam Ockam DID Method
did:ala: PROVISIONAL Alastria Alastria National Blockchain Ecosystem Alastria DID Method
did:op: PROVISIONAL Ocean Protocol Ocean Protocol Ocean Protocol DID Method
did:jlinc: PROVISIONAL JLINC Protocol Victor Grey JLINC Protocol DID Method
did:ion: PROVISIONAL Bitcoin Various DIF contributors ION DID Method
did:jolo: PROVISIONAL Ethereum Jolocom Jolocom DID Method
did:bryk: PROVISIONAL bryk Marcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa bryk DID Method
did:peer: PROVISIONAL peer Daniel Hardman peer DID Method
did:selfkey: PROVISIONAL Ethereum SelfKey SelfKey DID Method
did:meta: PROVISIONAL Metadium Metadium Foundation Metadium DID Method
did:tys: PROVISIONAL DID Specification Chainyard TYS DID Method
did:git: PROVISIONAL DID Specification Internet Identity Workshop Git DID Method
did:tangle: PROVISIONAL IOTA Tangle BiiLabs Co., Ltd. TangleID DID Method
did:emtrust: PROVISIONAL Hyperledger Fabric Halialabs Pte Ltd. Emtrust DID Method
did:ttm: PROVISIONAL TMChain Token.TM TM DID Method
did:wlk: PROVISIONAL Weelink Network Weelink Weelink DID Method
did:pistis: PROVISIONAL Ethereum Andrea Taglia, Matteo Sinico Pistis DID Method
did:holo: PROVISIONAL Holochain Holo.Host Holochain DID Method
did:web: PROVISIONAL Web Oliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy Web DID Method
did:io: PROVISIONAL IoTeX IoTeX Foundation IoTeX DID Method
did:vaultie: PROVISIONAL Ethereum Vaultie Inc. Vaultie DID Method
did:moac: PROVISIONAL MOAC MOAC Blockchain Tech, Inc. MOAC DID Method
did:omn: PROVISIONAL OmniOne OmniOne OmniOne DID Method
did:work: PROVISIONAL Hyperledger Fabric Workday, Inc. Workday DID Method
did:vid: PROVISIONAL VP VP Inc. VP DID Method
did:ccp: PROVISIONAL Quorum Baidu, Inc. Cloud DID Method
did:jnctn: PROVISIONAL Jnctn Network Jnctn Limited JNCTN DID Method
did:evan: PROVISIONAL evan.network evan GmbH evan.network DID Method
did:elastos: PROVISIONAL Elastos ID Sidechain Elastos Foundation Elastos DID Method
did:kilt: PROVISIONAL KILT Blockchain BOTLabs GmbH KILT DID Method
did:elem: PROVISIONAL Element DID Transmute ELEM DID Method
did:github: PROVISIONAL Github Transmute GitHub DID Method
did:bid: PROVISIONAL bif teleinfo caict BIF DID Method
did:ptn: PROVISIONAL PalletOne PalletOne PalletOne DID Method
did:echo: PROVISIONAL Echo Echo Technological Solutions LLC Echo DID Method
did:trustbloc: PROVISIONAL Hyperledger Fabric SecureKey TrustBloc DID Method
did:san: PROVISIONAL SAN Cloudchain YLZ Inc. SAN DID Method
did:gatc: PROVISIONAL Ethereum, Hyperledger Fabric, Hyperledger Besu, Alastria Gataca Gataca DID Method
did:factom: PROVISIONAL Factom Sphereon, Factomatic, Factom Inc Factom DID Method
did:signor: PROVISIONAL Ethereum, Hedera Hashgraph, Quorum, Hyperledger Besu Cryptonics Signor DID Method
did:hedera: PROVISIONAL Hedera Hashgraph Hedera Hashgraph, Swisscom Blockchain AG Hedera Hashgraph DID Method
did:sirius: PROVISIONAL ProximaX Sirius Chain ProximaX Enterprise, Proximax Inc. ProximaX SiriusID DID Method
did:dock: PROVISIONAL Dock Dock.io Dock DID Method
did:twit: PROVISIONAL Twit DID Twit GitHub Twit DID Method
did:near: PROVISIONAL NEAR Ontology Foundation NEAR DID Method
did:vaa: PROVISIONAL bif China Academy of Information and Communications Technology (CAICT) VAA Method
did:bba: PROVISIONAL Ardor Attila Aldemir BBA DID Method
did:morpheus: PROVISIONAL Hydra Internet of People Morpheus DID Method
did:etho: PROVISIONAL Ethereum Ontology Foundation ETHO DID Method
did:bnb: PROVISIONAL Binance Smart Chain Ontology Foundation Binance DID Method
did:celo: PROVISIONAL Celo Ontology Foundation Celo DID Method
did:klay: PROVISIONAL Klaytn Ontology Foundation Klaytn DID Method
did:trx: PROVISIONAL TRON Ontology Foundation TRON DID Method
did:grg: PROVISIONAL GrgChain GRGBanking Blockchain Express Co. Ltd. GrgChain DID Method
did:schema: PROVISIONAL Multiple storage networks, currently public IPFS and evan.network IPFS 51nodes GmbH Schema Registry DID Method
did:key: PROVISIONAL Ledger independent DID method based on public/private key pairs Rick Astley (thank you for your inspiration), Manu Sporny, Dmitri Zagidulin, Dave Longley, Orie Steele DID key method
did:tyron: PROVISIONAL Zilliqa Julio Cabrapan Duarte tyronZIL DID-Method
did:corda: PROVISIONAL Corda Nitesh Solanki,Moritz Platt,Pranav Kirtani Corda DID method
did:uns: PROVISIONAL uns.network Space Elephant SAS UNS DID Method
did:panacea: PROVISIONAL Panacea MediBloc Panacea DID Method

A. References

A.1 Normative references

[DID-CORE]
Decentralized Identifiers (DIDs) v1.0. Drummond Reed; Manu Sporny; Markus Sabadello; Dave Longley; Christopher Allen; Jonathan Holt. W3C. 8 November 2020. W3C Working Draft. URL: https://www.w3.org/TR/did-core/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://tools.ietf.org/html/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://tools.ietf.org/html/rfc8174