DID Specification Registries

The interoperability registry for Decentralized Identifiers

W3C Group Note

More details about this document
This version:
https://www.w3.org/TR/2023/NOTE-did-spec-registries-20230514/
Latest published version:
https://www.w3.org/TR/did-spec-registries/
Latest editor's draft:
https://w3c.github.io/did-spec-registries/
History:
https://www.w3.org/standards/history/did-spec-registries
Commit history
Editors:
Orie Steele (Transmute)
Manu Sporny (Digital Bazaar)
Michael Prorock (mesur.io)
Former editor:
Kyle Den Hartog (MATTR)
Authors:
Orie Steele (Transmute)
Manu Sporny (Digital Bazaar)
Feedback:
GitHub w3c/did-spec-registries (pull requests, new issue, open issues)
public-did-wg@w3.org with subject line [did-spec-registries] … message topic … (archives)
Related Documents
DID Core
DID Core Implementation Report
DID Use Cases and Requirements

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. 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 Group Note using the Note track.

This Group Note is endorsed by the Decentralized Identifier Working Group, but is not endorsed by W3C itself nor its Members.

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.

The W3C Patent Policy does not carry any licensing requirements or commitments on this document.

This document is governed by the 2 November 2021 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 pull request on the repository where this registry is hosted, where the modification request adheres to the following policies:

  1. Any addition to the DID Core Registries MUST specify a human readable description of the addition.
  2. Any name or value of a property or parameter MUST be indicative of its function. Avoid generic terms such as "myProperty" or "foo".
  3. Any method name SHOULD avoid generic terms such as "mymethod" or "registry".
  4. If there are copyright, trademark, or any intellectual property rights concerns, the addition and use MUST be authorized in writing by the intellectual property rights holder under a F/RAND license. Examples include DID Methods that use trademarked brand names, property names that utilize the titles of copyrighted works, and patented technology that would cause the use of the extension to require licensing a patent.
  5. Any addition MUST NOT create unreasonable legal, security, moral, or privacy issues that will result in direct harm to others. Examples of unacceptable additions include any containing racist language, technologies used to persecute minority populations, and unconsented pervasive tracking.
  6. 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.
  7. 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.
  8. Properties in the DID Core Registries MUST NOT be removed, only deprecated.

The Editors of the DID Specification Registries MUST consider all of the policies above when reviewing additions to the registry and MUST reject registry entries if they violate any of the policies in this section. Entities registering additions can challenge rejections first with the W3C DID Working Group and then, if they are not satisfied with the outcome, with the W3C Staff. W3C Staff need not be consulted on changes to the DID Specification Registries, but do have the final authority on registry contents. This is to ensure that W3C can adequately respond to time sensitive legal, privacy, security, moral, or other pressing concerns without putting an undue operational burden on W3C Staff.

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. The Labeling Process

This section describes labels that are used to categorize registry entries.

Deprecated
This label is applied to registry entries that should not be relied on.
No Contact Info
This label is applied to registry entries for which no point of contact has been provided.

5. Property Names

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

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).

5.1 DID document properties

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

5.1.1 id

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

5.1.2 alsoKnownAs

Normative Definition JSON-LD
DID Core DID Core
Example 2: Example of alsoKnownAs property
{
  "alsoKnownAs": "https://example.com/",
  ...
}

5.1.3 controller

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

5.1.4 verificationMethod

Normative Definition JSON-LD
DID Core Terminology DID Core
Example 4: Example of verificationMethod property
{
  "id": "did:example:123",
  "verificationMethod": [
    {
      "id": "did:example:123#key-1",
      "type": "Ed25519VerificationKey2018",
      "controller": "did:example:123",
      "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
    },
    {
      "id": "did:example:123#key-2",
      "type": "JsonWebKey2020",
      "controller": "did:example:123",
      "publicKeyJwk": {
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "r7V8qmdFbwqSlj26eupPew1Lb22vVG5vnjhn3vwEA1Y"
      },
    }
  ]
}

5.1.5 publicKey

Deprecated

This property has been deprecated, use verificationMethod instead.

Normative Definition JSON-LD
security-vocab security-vocab context
Example 5: 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"
      }
    }
  ]
}

5.1.6 service

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

5.1.7 linkedResource

Normative Definition JSON-LD
DID Cosmos Linked Resources Cosmos JSON-LD Context
Example 7: Example of linked resource properties
{  
    ...
    "linkedResource" : [{
      "id": "did:cosmos:1:impacthub:nft:abc123#resourceHashgraph",
      "path": "did:cosmos:1:impacthub:nft:abc123/resourceHashgraph",
      "type": "hashgraph",
      "proof": "afybeiemxf5abjwjbikoz4mcb3a3dla6ual3jsgpdr4cjr3oz",
      "endpoint" : "did:cosmos:1:impacthub:nft:abc123?service=mediator"
  }]
}

5.2 Verification relationships

These are properties that express the relationship between the DID subject and a verification method using a verification relationship.

5.2.1 assertionMethod

Normative Definition JSON-LD
DID Core DID Core
Example 8: Example of assertionMethod property
{
  ...
  "verificationMethod": [{
    "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"
  ]
}

5.2.2 authentication

Normative Definition JSON-LD
DID Core DID Core
Example 9: Example of authentication property
{
  ...
  "verificationMethod": [{
    "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"
  ]
}

5.2.3 capabilityDelegation

Normative Definition JSON-LD
DID Core DID Core
Example 10: Example of capabilityDelegation property
{
  ...
  "verificationMethod": [{
    "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": "Ed25519VerificationKey2020",
    "controller": "did:example:123",
    "publicKeyMultibase": "z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4"
  },
  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  ]
}

5.2.4 capabilityInvocation

Normative Definition JSON-LD
DID Core DID Core
Example 11: Example of capabilityInvocation property
{
  ...
  "verificationMethod": [{
    "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": "Ed25519VerificationKey2020",
    "controller": "did:example:123",
    "publicKeyMultibase": "z6MkpzW2izkFjNwMBwwvKqmELaQcH8t54QL5xmBdJg9Xh1y4"
  },
  "did:example:123#WjKgJV7VRw3hmgU6--4v15c0Aewbcvat1BsRFTIqa5Q"
  ]
}

5.2.5 keyAgreement

Normative Definition JSON-LD
DID Core DID Core
Example 12: Example of keyAgreement property
{
  ...
  "keyAgreement": [
    {
      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
      "type": "X25519KeyAgreementKey2019",
      "controller": "did:example:123",
      "publicKeyMultibase": "zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS"
    }
  ]
}

5.3 Verification method properties

Note

These properties are for use on a verification method object, in the value of verificationMethod. An implementer is expected to not be relying directly on the linked contexts registered below in nearly every case and instead should be including the context definitions registered by the verificationMethod.

5.3.1 publicKeyJwk

Normative Definition JSON-LD
security-vocab https://w3id.org/security/suites/jws-2020/v1
Example 13: 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"
  }
},

5.3.2 publicKeyBase58

Deprecated

This property is deprecated in favor of publicKeyMultibase or publicKeyJwk. It's generally expected that this term will still be used in older suites and therefore needs be supported for legacy compatibility, but is expected to not be used for newly defined suites.

Normative Definition JSON-LD
security-vocab https://w3id.org/security/v2

5.3.3 publicKeyHex

Deprecated

This property is deprecated in favor of publicKeyMultibase or publicKeyJwk. It's generally expected that this term will still be used in older suites and therefore needs be supported for legacy compatibility, but is expected to not be used for newly defined suites.

Normative Definition JSON-LD
security-vocab https://w3id.org/security/v3-unstable
Example 14: Example of publicKeyHex property
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
  ],
  "id":"did:example:123",
  "verificationMethod":[{
    "id": "did:example:123#vm-2",
    "controller": "did:example:123",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "publicKeyHex": "027560af3387d375e3342a6968179ef3c6d04f5d33b2b611cf326d4708badd7770"
  }]
}

5.3.4 publicKeyMultibase

Normative Definition JSON-LD
security-vocab https://w3id.org/security/v3-unstable

5.3.5 blockchainAccountId

Normative Definition JSON-LD
security-vocab https://w3id.org/security/v3-unstable
Example 15: Example of blockchainAccountId property
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
  ],
  "id":"did:example:123",
  "verificationMethod":[{
    "id": "did:example:123#vm-3",
    "controller": "did:example:123",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "blockchainAccountId":"eip155:1:0xab16a96d359ec26a11e2c2b3d8f8b8942d5bfcdb"
  }]
}

5.3.6 ethereumAddress

Deprecated

This property is deprecated in favor of blockchainAccountId. It's generally expected that this term will still be used in older suites and therefore needs be supported for legacy compatibility, but is expected to not be used for newly defined suites.

Normative Definition JSON-LD
security-vocab https://w3id.org/security/v3-unstable
Example 16: Example of ethereumAddress property
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
  ],
  "id":"did:example:123",
  "verificationMethod":[{
    "id": "did:example:123#vm-3",
    "controller": "did:example:123",
    "type": "EcdsaSecp256k1RecoveryMethod2020",
    "ethereumAddress": "0xF3beAC30C498D9E26865F34fCAa57dBB935b0D74"
  }]
}

5.4 Service properties

These properties are for use on a service object, in the value of service.

5.4.1 serviceEndpoint

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

6. Property Values

6.1 Verification method types

These are values to be used for the type in a verification method object.

6.1.1 JsonWebKey2020

Do not include private or extraneous information in verification methods. The class of private information related to JWKs is defined here. Please review the DID Core specification for additional details on this topic.

Normative Definition JSON-LD
JSON Web Signature 2020 https://w3id.org/security/suite/jws-2020/v1
Example 18: 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"
  }
}

6.1.2 EcdsaSecp256k1VerificationKey2019

Normative Definition JSON-LD
Ecdsa Secp256k1 Signature 2019 https://w3id.org/security/suites/secp256k1-2019
Example 19: 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"
  }
}

6.1.3 Ed25519VerificationKey2018

Normative Definition JSON-LD
Ed25519 Signature 2018 https://w3id.org/security/suites/ed25519-2018/v1
Example 20: Example of Ed25519VerificationKey2018 class
{
  "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
  "type": "Ed25519VerificationKey2018",
  "controller": "did:example:123",
  "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}

6.1.4 Bls12381G1Key2020

Normative Definition JSON-LD
BBS+ Signatures 2020 https://w3id.org/security/suites/bls12381-2020/v1
Example 21: Example of Bls12381G1Key2020 class
{
  "id": "did:example:123#z3tEGVtEKzdhJB2rT5hLVjwQPis8k7bTM16t7vDZrQaoddk6wZ7or6xPPs1P8H9U16Xe75",
  "type": "Bls12381G1Key2020",
  "controller": "did:example:123",
  "publicKeyBase58": "7bXhTVonHPizXP72AE92PPmRiaXipC519yU7F6NxUFExWpyQo57LuKKBoTyuZ3uWm9",
}

6.1.5 Bls12381G2Key2020

Normative Definition JSON-LD
BBS+ Signatures 2020 https://w3id.org/security/suites/bls12381-2020/v1
Example 22: Example of Bls12382G2Key2020 class
{
  "id": "did:example:123#zUC7K51WYEsj8y6KPVa1XfwdW5ZJrW5kSbMV619j128T6atCLLXJjjovMZsJ3Ay4STdngRkvM4ygT4qm1mk6HR8FvipSY435nLgYS1TTcaqJAzDWzM1iB9vh3hTL1DEKitwn56i",
  "type": "Bls12381G2Key2020",
  "controller": "did:example:123",
  "publicKeyBase58": "25ETdUZDVnME6yYuAMjFRCnCPcDmYQcoZDcZuXAfeMhXPvjZg35QmZ7uctBcovA69YDM3Jf7s5BHo4u1y89nY6mHiji8yphZ4AMm4iNCRh35edSg76Dkasu3MY2VS9LnuaVQ",

}

6.1.6 PgpVerificationKey2021

Normative Definition JSON-LD Additional Details
Linked Data Signatures for PGP https://w3id.org/security/suites/pgp-2021/v1 Use of this verification key should be in line with the OpenPGP Message Format as defined in RFC 4880
{
  "@context":[
    "https://www.w3.org/ns/did/v1",
    "https://gpg.jsld.org/contexts/lds-gpg2020-v0.0.jsonld"
  ],
  "id":"did:example:123",
  "verificationMethod":[{
    "id": "did:example:123#989ed1057a294c8a3665add842e784c4d08de1e2",
    "type": "PgpVerificationKey2021",
    "controller": "did:example:123",
    "publicKeyPgp": "-----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"
  }]
}

6.1.7 RsaVerificationKey2018

Issue

DID Specification Registries Issue 370 This property should be moved into a separate suite and linked to here rather than relying on the Verifiable Credentials vocabulary. There are known issues with the first version of the Security vocabulary JSON-LD context and the first version of the Verifiable Credentials JSON-LD context which will prevent these contexts from being listed in the same document. For now it's suggested that implementers rely upon the first version of the Verifiable Credentials JSON-LD context and not rely on the Security vocabulary JSON-LD context in the same document.

Normative Definition JSON-LD
RSA Signature Suite 2018 https://www.w3.org/2018/credentials/v1
{
  "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"
  }
}

6.1.8 X25519KeyAgreementKey2019

Issue 164: X25519KeyAgreementKey2019 has no normative definition

Normative definition in a suite is required for registration, this entry should be updated or removed.

Normative Definition JSON-LD
Normative definition pending http://w3id.org/security/suites/x25519-2019/v1
Example 25: Example of X25519KeyAgreementKey2019
{
  ...
  "keyAgreement": [
    {
      "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
      "type": "X25519KeyAgreementKey2019",
      "controller": "did:example:123",
      "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
    }
  ]
}

6.1.9 EcdsaSecp256k1RecoveryMethod2020

Normative Definition JSON-LD
ECDSA Secp256k1 Recovery Signature 2020 https://w3id.org/security/suites/secp256k1recovery-2020
{
  "@context": [
    "https://www.w3.org/ns/did/v1",
    "https://identity.foundation/EcdsaSecp256k1RecoverySignature2020#"
  ],
  "id":"did:example:123",
  "verificationMethod": [
    {
      "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"
    }
  ]
}

6.1.10 VerifiableCondition2021

Normative Definition JSON-LD
Verifiable Conditions Verification Method Suite 2021 https://w3c-ccg.github.io/verifiable-conditions/contexts/verifiable-conditions-2021-v1.json
{
    "id": "did:example:123#1",
    "controller": "did:example:123",
    "type": "VerifiableCondition2021",
    "conditionAnd": [{
        "id": "did:example:123#1-1",
        "controller": "did:example:123",
        "type": "VerifiableCondition2021",
        "conditionOr": [{
            "id": "did:example:123#1-1-1",
            "controller": "did:example:123",
            "type": "EcdsaSecp256k1VerificationKey2019",
            "publicKeyBase58": "5JBxKqYKzzoHrzeqwp6zXk8wZU3Ah94ChWAinSj1fYmyJvJS5rT"
        }, {
            "id": "did:example:123#1-1-2",
            "controller": "did:example:123",
            "type": "Ed25519VerificationKey2018",
            "publicKeyBase58": "PZ8Tyr4Nx8MHsRAGMpZmZ6TWY63dXWSCzamP7YTHkZc78MJgqWsAy"
        }]
    }, {
        "id": "did:example:123#1-2",
        "controller": "did:example:123",
        "type": "Ed25519VerificationKey2018",
        "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
    }]
}

6.2 Service types

These are values to be used for the type property in a service object.

6.2.1 LinkedDomains

Issue 167: LinkedDomains IRI is not stable

https://identity.foundation/.well-known/resources/did-configuration/#LinkedDomains

^ if this link changes the term defintion registered in did core will need to change, we should be sure we like this URL as is... forever.

Normative Definition JSON-LD
Well Known DID Configuration Well Known DID Configuration
Example 28: Example of service and serviceEndpoint properties
{
  "@context": ["https://www.w3.org/ns/did/v1","https://identity.foundation/.well-known/did-configuration/v1"],
  "id": "did:example:123",
  "verificationMethod": [{
    "id": "did:example:123#456",
    "type": "JsonWebKey2020",
    "controller": "did:example:123",
    "publicKeyJwk": {
      "kty": "OKP",
      "crv": "Ed25519",
      "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ"
    }
  }],
  "service": [
    {
      "id":"did:example:123#foo",
      "type": "LinkedDomains",
      "serviceEndpoint": {
        "origins": ["https://foo.example.com", "https://identity.foundation"]
      }
    },
    {
      "id":"did:example:123#bar",
      "type": "LinkedDomains",
      "serviceEndpoint": "https://bar.example.com"
    }
  ]
}

6.2.2 DIDCommMessaging

Normative Definition JSON-LD
DIDComm Messaging A valid JSON-LD context needs to be published. DIDComm Messaging
Example 29: Example of service and serviceEndpoint properties
{
  "@context":[
      "https://www.w3.org/ns/did/v1",
      "https://didcomm.org/messaging/contexts/v2"
  ],
  ...
  "type":"DIDCommMessaging",
  "serviceEndpoint":"http://example.com/path",
  "accept":[
      "didcomm/v2",
      "didcomm/aip2;env=rfc587"
  ],
  "routingKeys":[
      "did:example:somemediator#somekey"
  ]
  ...
}

6.2.3 CredentialRegistry

The CredentialRegistry endpoint allows publication of a dedicated service endpoint in a DID document, through which verifiable credentials can be queried. Each registry endpoint is a REST endpoint. When a GET request is sent to the URI formed by appending the credentialSubject.id as a URL-encoded string to the given endpoint URI, the registry MUST return an array of verifiable credentials associated with the subject ID. A sample registry endpoint can be found here.

Note

Verifiable credential registries are supposed to hold credentials that are publicly accessible by default, e.g., for product passports on a product type level. An additional authentication for limiting access to certain credentials is currently under development.

Normative Definition JSON-LD
Verifiable Credential Registry Verifiable Credential Registry
Example 30: Example of service and serviceEndpoint properties
{
  ...
  "service": [
    {
      "id": "did:example:123#vcregistry-1",
      "type": "CredentialRegistry",
      "serviceEndpoint": {
        "registries": ["https://registry.example.com/{credentialSubject.id}", "https://identity.foundation/vcs/{credentialSubject.id}"]
      }
    },
    {
      "id": "did:example:123#vcregistry-2",
      "type": "CredentialRegistry",
      "serviceEndpoint": "https://ssi.eecc.de/api/registry/vcs/{credentialSubject.id}"
    }
  ]
}
Example 31: Example of a concrete call to the specified serviceEndpoint and example answer
$ curl 'https://ssi.eecc.de/api/registry/vcs/https%3A%2F%2Ftest.de%2Ftest1' -H 'accept: application/ld+json, application/json'

[
  {
    "@context": ["https://www.w3.org/2018/credentials/v1",... ],
    "type": ["VerifiableCredential",...],
    "credentialSubject": {...},
    "proof": {...},
    ...
  },
  ...
]

7. Representations

This table provides a reference for media types and the associated specifications for producing and consuming those representations.

Media Type Specification
application/did+json DID Core
application/did+ld+json DID Core
application/did+cbor The Plain CBOR Representation

8. Representation-Specific Entries

8.1 JSON

These are entries in DID documents that are specific to the JSON representation.

(No entries yet)

8.2 JSON-LD

These are entries in DID documents that are specific to the JSON-LD representation.

8.2.1 @context

Normative Definition
DID Core

The following values are acceptable values for the @context entry as a JSON String or first item of a JSON Array, represented as a JSON String.

@context Values Specification Version
https://www.w3.org/ns/did/v1 DID Core 1.0 Working draft
Example 32: Example of @context in the JSON-LD representation
{
  "@context": [
    "https://www.w3.org/ns/did/v1",
    "https://example.com/blockchain-identity/v1"
  ],
  ...
}

8.3 CBOR

These are entries in DID documents that are specific to the CBOR representation.

(No entries yet)

9. DID Resolution Options

These properties contain information pertaining to the DID resolution request.

9.1 accept

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

10. DID Resolution Metadata

These properties contain information pertaining to the DID resolution response.

10.1 contentType

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

10.2 error

Normative Definition
DID Core
Example 35: Example of error metadata property
{
  "error": "notFound"
}

10.2.1 invalidDid

Normative Definition
DID Core
Example 36: Example of invalidDid error value
{
  "error": "invalidDid"
}

10.2.2 notFound

Normative Definition
DID Core
Example 37: Example of notFound error value
{
  "error": "notFound"
}

10.2.3 representationNotSupported

Normative Definition
DID Core
Example 38: Example of representationNotSupported error value
{
  "error": "representationNotSupported"
}

10.2.4 methodNotSupported

Normative Definition
DID Resolution
Example 39: Example of methodNotSupported error value
{
  "error": "methodNotSupported"
}

10.2.5 internalError

Normative Definition
DID Resolution
Example 40: Example of internalError error value
{
  "error": "internalError"
}

10.2.6 invalidPublicKey

Normative Definition
DID Resolution
Example 41: Example of invalidPublicKey error value
{
  "error": "invalidPublicKey"
}

10.2.7 invalidPublicKeyLength

Normative Definition
DID Resolution
Example 42: Example of invalidPublicKeyLength error value
{
  "error": "invalidPublicKeyLength"
}

10.2.8 invalidPublicKeyType

Normative Definition
DID Resolution
Example 43: Example of invalidPublicKeyType error value
{
  "error": "invalidPublicKeyType"
}

10.2.9 unsupportedPublicKeyType

Normative Definition
DID Resolution
Example 44: Example of unsupportedPublicKeyType error value
{
  "error": "unsupportedPublicKeyType"
}

10.2.10 notAllowedVerificationMethodType

Normative Definition
DID Spec Extension: notAllowedVerificationMethodType
Example 45: Example of notAllowedVerificationMethodType error value
{
  "error": "notAllowedVerificationMethodType"
}

10.2.11 notAllowedKeyType

Normative Definition
DID Spec Extension: notAllowedKeyType
Example 46: Example of notAllowedKeyType error value
{
  "error": "notAllowedKeyType"
}

10.2.12 notAllowedMethod

Normative Definition
DID Spec Extension: notAllowedMethod
Example 47: Example of notAllowedMethod error value
{
  "error": "notAllowedMethod"
}

10.2.13 notAllowedCertificate

Normative Definition
DID Spec Extension: notAllowedCertificate
Example 48: Example of notAllowedCertificate error value
{
  "error": "notAllowedCertificate"
}

10.2.14 notAllowedLocalDuplicateKey

Normative Definition
DID Spec Extension: notAllowedLocalDuplicateKey
Example 49: Example of notAllowedLocalDuplicateKey error value
{
  "error": "notAllowedLocalDuplicateKey"
}

10.2.15 notAllowedLocalDerivedKey

Normative Definition
DID Spec Extension: notAllowedLocalDerivedKey
Example 50: Example of notAllowedLocalDerivedKey error value
{
  "error": "notAllowedLocalDerivedKey"
}

10.2.16 notAllowedGlobalDuplicateKey

Normative Definition
DID Spec Extension: notAllowedGlobalDuplicateKey
Example 51: Example of notAllowedGlobalDuplicateKey error value
{
  "error": "notAllowedGlobalDuplicateKey"
}

11. DID Dereferencing Metadata

These properties contain information pertaining to the DID dereferencing response.

11.1 error

Normative Definition
DID Core
Example 52: Example of error metadata property
{
  "error": "notFound"
}

11.1.1 invalidDidUrl

Normative Definition
DID Core
Example 53: Example of invalidDidUrl error value
{
  "error": "invalidDidUrl"
}

11.1.2 notFound

Normative Definition
DID Core
Example 54: Example of notFound error value
{
  "error": "notFound"
}

12. DID Document Metadata

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

12.1 created

Issue

See DID Core #203.

Normative Definition JSON-LD
DID Core DID Core
Example 55: Example of created property
{
  "created": "2019-03-23T06:35:22Z"
}

12.2 updated

Issue

See DID Core #203.

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

12.3 deactivated

Normative Definition JSON-LD
DID Core DID Core
Example 57: Example of deactivated property
{
  "deactivated": true
}

12.4 nextUpdate

Normative Definition JSON-LD
DID Core DID Core
Example 58: Example of nextUpdate property
{
  "nextUpdate": "2023-08-10T13:40:06Z"
}

12.5 versionId

Normative Definition JSON-LD
DID Core DID Core
Example 59: Example of versionId property
{
  "versionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
}

12.6 nextVersionId

Normative Definition JSON-LD
DID Core DID Core
Example 60: Example of nextVersionId property
{
  "nextVersionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
}

12.7 equivalentId

Normative Definition JSON-LD
DID Core DID Core
Example 61: Example of equivalentId property
{
  "equivalentId": ["did:example:ABC", "did:example:Abc"]
}

12.8 canonicalId

Normative Definition JSON-LD
DID Core DID Core
Example 62: Example of canonicalId property
{
  "canonicalId": "did:example:ABC"
}

13. Parameters

13.1 hl

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

13.2 service

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

13.3 versionId

Normative Definition
DID Core
Example 65: Example of versionId parameter
did:example:123?versionId=4

13.4 versionTime

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

13.5 relativeRef

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

13.6 initialState

Normative Definition
DID Spec Extensions by DIF
Example 68: Example of initialState parameter
did:example:123?initialState=eyJkZWx0YV9oYXNoIjoiRWlDUlRKZ2Q0U0V2YUZDLW9fNUZjQnZJUkRtWF94Z3RLX3g...

13.7 transformKeys

Normative Definition
DID Spec Extensions by DIF
Example 69: Example of transformKeys parameter
did:example:123?transformKeys=jwk

13.8 signedIetfJsonPatch

Normative Definition
DID Spec Extensions by DIF
Example 70: Example of signedIetfJsonPatch parameter
did:example:123?signedIetfJsonPatch=eyJraWQiOiJkaWQ6ZXhhbXBsZTo0NTYjX1FxMFVMMkZxNjUxUTBGamQ2VH...

13.9 resource

Normative Definition
DID URL Resource Parameter Specification
Example 71: A DID URL with a 'resource' DID parameter
did:foo:21tDAKCERh95uGgKbJNHYp?resource=true

14. 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. We encourage DID method authors to provide an email address in the Author Links column, as this helps with maintenance. If an email address is omitted, a label noting that there is no contact information for the author will be applied to the registry entry.

DID MethodRegistryContact
3Ceramic NetworkJoel Thorstensson (email)
abtABT NetworkArcBlock
aergoAergoBlocko (website)
alaAlastriaAlastria National Blockchain Ecosystem
amoAMO blockchain mainnetAMO Labs (website)
antelopeAntelopeTonomy Foundation (website)
artArtwork ID MethodMing-lam Ng (RealMatter) (email) (website)
assetLedger-independent generative DID method based on CAIP-19 identifiersBOTLabs GmbH (email) (website)
bbaArdorAttila Aldemir (email)
beeLedger agnosticmesur.io (email) (website)
bidbifteleinfo caict
bluetoqueagentTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bluetoquedeedTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bluetoquenfeTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bluetoqueprocTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
bnbBinance Smart ChainOntology Foundation
brykbrykMarcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa
btcrBitcoinChristopher Allen, Ryan Grant, Kim Hamilton Duffy
ccfConfidential Consortium Framework (CCF)Microsoft (email) (website)
ccpQuorumBaidu, Inc.
celoCeloOntology Foundation
cheqdcheqdCHEQD FOUNDATION LIMITED (email) (website)
comcommercio.networkCommercio Consortium
cordaCordaNitesh Solanki,Moritz Platt,Pranav Kirtani
cosmosCosmos application chainsShaun Conway (email) (website)
cotCoTChainCoTNetwork, Inc. (website)
crHyperledger Fabric (email)
didDecentralized IdentifiersSpruce Systems, Inc. (website)
dnsDomain Name System (DNS)Danube Tech (email) (website)
dockDockDock.io (website)
domEthereumDominode
dsrvdsrv (email) (website)
dualEthereumSmart ID Card Alliance
dxdfabric.data-alliace.comData Alliance Co., Ltd. (email) (website)
dyneDyne.org FoundationAndrea D'Intino (email) (website)
echoEchoEcho Technological Solutions LLC
elastosElastos ID SidechainElastos Foundation
elemElement DIDTransmute
emtrustHyperledger FabricHalialabs Pte Ltd.
ensEthereumConsenSys MESH (email) (website)
eosioEOSIOGimly Blockchain (website)
erc725EthereumMarkus Sabadello, Fabian Vogelsteller, Peter Kolarov (email)
ethoEthereumOntology Foundation
ethrEthereumuPort
evAny Ethereum or EVM-compatible ledgerDavid Ammouial (NTT DATA) (email) (website)
evanevan.networkevan GmbH
everscaleEverscale blockchainDmitry V. Samorodkin (email) (website)
exampleDID SpecificationW3C DID Working Group
factomFactomSphereon, Factomatic, Factom Inc
fairxFairX NodeMichael Dowling (email) (website)
futureNetease ChainNetease Blockchain Team
gatcEthereum, Hyperledger Fabric, Hyperledger Besu, AlastriaGataca (website)
gnsGNU Name SystemGNUnet (email) (website)
grgGrgChainGRGBanking Blockchain Express Co. Ltd.
grnAny CosmWasm-compatible ledgerEG-easy
healthDID Healthsupport (email) (website)
hederaHedera HashgraphHedera Hashgraph, Swisscom Blockchain AG
holoHolochainHolo.Host
hpassHyperledger FabricIBM
hskPlatONHashKey DID (email)
iamxundefinedIAMX AG, 6300 Zug, Switzerland (email) (website)
ibmdcHyperledger FabricIBM Digital Credentials (email) (website)
iconICONICONLOOP
idID ServiceMastercard (website)
iidInspur Chainzoe Yian (email)
indyAny Hyperledger Indy LedgerStephen Curran (email)
infraInfraBlockchainBlockchain Labs
ioIoTeXIoTeX Foundation
ionBitcoinVarious DIF contributors
iotaIOTAIOTA Foundation (website)
ipidIPFSTranSendX
isBlockcoreBlockcore
isccPublic BlockchainsISCC Foundation (email) (website)
iwtInfoWalletRaonsecure
jlincJLINC ProtocolVictor Grey
jnctnJnctn NetworkJnctn Limited
joloEthereumJolocom
jwkLedger agnosticJeremie Miller (email)
keriLedger agnosticDr. Sam Smith, Charles Cunningham, Phil Feairheller (email)
keyLedger-independent DID method based on public/private key pairsRick Astley (thank you for your inspiration), Manu Sporny, Dmitri Zagidulin, Dave Longley, Orie Steele
kiltKILT BlockchainBOTLabs GmbH (email) (website)
klayKlaytnOntology Foundation
krKorea Mobile Identity SystemMinistry of the Interior and Safety, korea (website)
kscircKSChain BlockchainK4-Security (website)
lacLACChain NetworkLACChain Alliance
lifeRChainlifeID Foundation
litLEDGISIBCT (website)
memeIPFS & DNS & HTTPDID Meme Maintainers (email) (website)
meshTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
metaMetadiumMetadium Foundation
moacMOACMOAC Blockchain Tech, Inc.
monidEthereumMin Ju
morpheusHydraInternet of People (website)
mydataiGrant.ioiGrant.io (website)
nearNEAROntology Foundation
nextNextme DIDs NetworkNext Labs (email) (website)
nftCeramic NetworkJoel Thorstensson (email)
nuggetsNuggets NetworkNuggets Ltd (email) (website)
nutsNuts networkNuts community (email) (website)
objectTrusted Digital WebHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
ockamOckamOckam
omnOmniOneOmniOne
onionLedger agnosticBlockchain Commons (website)
ontOntologyOntology Foundation
opOcean ProtocolOcean Protocol
orbLedger agnosticAvast (email) (website)
oydLedger agnosticOwnYourData.eu (email) (website)
panaceaPanaceaMediBloc
peaqpeaq BlockchainPeaq Technology GmbH (email) (website)
peerpeerDaniel Hardman (email)
pidProofID BlockchainAlvin Reyes (email) (website)
pistisEthereumAndrea Taglia, Matteo Sinico
pkhLedger-independent generative DID method based on CAIP-10 keypair expressionsWayne Chang, Charles Lehner, Juan Caballero, Joel Thorstensson
pmlPML ChainPurple Mountain Laboratories
polygonPolygon (Previously MATIC)AyanWorks, MATIC
polygonidEVM compatible chains. Primary on Polygon0xPolygonID (website)
prismThe Cardano blockchainInput Output Global Inc (IOG) (email) (website)
psiLEDGISPolice Science Institution (website)
psqrPublic SquareChristian Gribneau (email) (website)
ptnPalletOnePalletOne
qesQESIDnow GmbH (email) (website)
quiQuiHyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website)
rayEthereumRay Peng (email)
realEthereumReal Items (email) (website)
rmReal-world Asset Tokenization DID MethodMing-lam Ng (RealMatter) (email) (website)
safeGnosis SafeGnosis Ltd. (email)
sanSAN CloudchainYLZ Inc.
schemaMultiple storage networks, currently public IPFS and evan.network IPFS51nodes GmbH
scidStraitsChainLorna (email) (website)
selfLedger agnosticNikos Fotiou (email) (website)
selfkeyEthereumSelfKey
sideosLedger agnosticsideos GmbH (website)
signorEthereum, Hedera Hashgraph, Quorum, Hyperledger BesuCryptonics (website)
siriusProximaX Sirius ChainProximaX Singapore Pte. Ltd. (website)
snailPenpal networkAmy Guy, Dmitri Zagidulin (email)
snplabSNPLab MyD NetworkSNPLab Inc. (email) (website)
solSolanaIdentity.com (email) (website)
sovSovrinMike Lodder
ssbSecure ScuttlebuttCharles E. Lehner
sswInitial NetworkSK telecom (website)
stackBitcoinJude Nelson
tangleIOTA TangleBiiLabs Co., Ltd.
tdidFISCO BCOSTencent Technology (Shenzhen) Co.Ltd (email) (website)
tiTiChainHunan tianhe Guoyun Technology Co.Ltd (email) (website)
tlsEthereumUlrich Gallersdörfer, Kilian Käslin
trustTrustChainTrustCerts GmbH
trustblocHyperledger FabricSecureKey
trxTRONOntology Foundation
ttmTMChainToken.TM
twitTwitDID Twit GitHub (website)
tyronZilliqaJulio Cabrapan Duarte
tysDID SpecificationChainyard
tzTezosSpruce Systems, Inc. (website)
unikuns.networkSpace Elephant SAS (website)
unisotBitcoin SVUNISOT AS (website)
unsuns.networkSpace Elephant SAS (website)
uportEthereumuPort
v1Veres One DLTVeres One Maintainer (Digital Bazaar) (email) (website)
vaabifChina Academy of Information and Communications Technology (CAICT)
vaultieEthereumVaultie Inc.
vertuVERTUV2 (email)
vidVPVP Inc.
vividNEO2, NEO3, ZilliqaVivid (website)
vtidJianKong (email)
vvoVivvoVivvo Application Studios
webWebOliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy
wlkWeelink NetworkWeelink
workHyperledger FabricWorkday, Inc.
zkArweavezCloak Network Research (email) (website)

A. References

A.1 Normative references

[DID-CORE]
Decentralized Identifiers (DIDs) v1.0. Manu Sporny; Amy Guy; Markus Sabadello; Drummond Reed. W3C. 19 July 2022. W3C Recommendation. 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://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174