Copyright © 2023 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
This document serves as an official registry for all known global parameters, properties, and values used by the Decentralized Identifier ecosystem.
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.
Group Notes are not endorsed by W3C 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.
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.
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.
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:
@protected
feature to eliminate the possibility of term conflicts.
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.
This section describes labels that are used to categorize registry entries.
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.
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).
These properties are foundational to DID documents, and are expected to be useful to all DID methods.
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"id": "did:example:123",
...
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"alsoKnownAs": "https://example.com/",
...
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"controller": "did:example:123",
...
}
Normative Definition | JSON-LD |
---|---|
DID Core Terminology | DID Core |
{
"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"
},
}
]
}
This property has been deprecated, use verificationMethod instead.
Normative Definition | JSON-LD |
---|---|
security-vocab | security-vocab context |
{
"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"
}
}
]
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"service": [{
"id": "did:example:123#edv",
"type": "EncryptedDataVault",
"serviceEndpoint": "https://edv.example.com/"
}]
}
These are properties that express the relationship between the DID subject and a verification method using a verification relationship.
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"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"
]
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"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"
]
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"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"
]
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"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"
]
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"keyAgreement": [
{
"id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
"type": "X25519KeyAgreementKey2019",
"controller": "did:example:123",
"publicKeyMultibase": "zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS"
}
]
}
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
.
Normative Definition | JSON-LD |
---|---|
security-vocab | https://w3id.org/security/suites/jws-2020/v1 |
{
"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"
}
},
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 |
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 |
{
"@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"
}]
}
Normative Definition | JSON-LD |
---|---|
security-vocab | https://w3id.org/security/v3-unstable |
Normative Definition | JSON-LD |
---|---|
security-vocab | https://w3id.org/security/v3-unstable |
{
"@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"
}]
}
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 |
{
"@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"
}]
}
These properties are for use on a service object, in the value of
service
.
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
...
"service": [{
"id": "did:example:123#edv",
"type": "EncryptedDataVault",
"serviceEndpoint": "https://edv.example.com/"
}]
}
These are values to be used for the type
in a verification method object.
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 |
{
"id": "did:example:123#_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw",
"type": "JsonWebKey2020",
"controller": "did:example:123",
"publicKeyJwk": {
"crv": "P-256",
"x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
"y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4",
"kty": "EC",
"kid": "_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw"
}
}
Normative Definition | JSON-LD |
---|---|
Ecdsa Secp256k1 Signature 2019 | https://w3id.org/security/suites/secp256k1-2019 |
{
"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"
}
}
Normative Definition | JSON-LD |
---|---|
Ed25519 Signature 2018 | https://w3id.org/security/suites/ed25519-2018/v1 |
{
"id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
"type": "Ed25519VerificationKey2018",
"controller": "did:example:123",
"publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
Normative Definition | JSON-LD |
---|---|
BBS+ Signatures 2020 | https://w3id.org/security/suites/bls12381-2020/v1 |
{
"id": "did:example:123#z3tEGVtEKzdhJB2rT5hLVjwQPis8k7bTM16t7vDZrQaoddk6wZ7or6xPPs1P8H9U16Xe75",
"type": "Bls12381G1Key2020",
"controller": "did:example:123",
"publicKeyBase58": "7bXhTVonHPizXP72AE92PPmRiaXipC519yU7F6NxUFExWpyQo57LuKKBoTyuZ3uWm9",
}
Normative Definition | JSON-LD |
---|---|
BBS+ Signatures 2020 | https://w3id.org/security/suites/bls12381-2020/v1 |
{
"id": "did:example:123#zUC7K51WYEsj8y6KPVa1XfwdW5ZJrW5kSbMV619j128T6atCLLXJjjovMZsJ3Ay4STdngRkvM4ygT4qm1mk6HR8FvipSY435nLgYS1TTcaqJAzDWzM1iB9vh3hTL1DEKitwn56i",
"type": "Bls12381G2Key2020",
"controller": "did:example:123",
"publicKeyBase58": "25ETdUZDVnME6yYuAMjFRCnCPcDmYQcoZDcZuXAfeMhXPvjZg35QmZ7uctBcovA69YDM3Jf7s5BHo4u1y89nY6mHiji8yphZ4AMm4iNCRh35edSg76Dkasu3MY2VS9LnuaVQ",
}
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"
}]
}
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"
}
}
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 |
{
...
"keyAgreement": [
{
"id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
"type": "X25519KeyAgreementKey2019",
"controller": "did:example:123",
"publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
}
]
}
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"
}
]
}
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"
}]
}
These are values to be used for the type
property
in a service object.
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 |
{
"@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"
}
]
}
Normative Definition | JSON-LD |
---|---|
DIDComm Messaging | A valid JSON-LD context needs to be published. DIDComm Messaging |
{
"@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"
]
...
}
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 |
These are entries in DID documents that are specific to the JSON representation.
(No entries yet)
These are entries in DID documents that are specific to the JSON-LD representation.
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 |
{
"@context": [
"https://www.w3.org/ns/did/v1",
"https://example.com/blockchain-identity/v1"
],
...
}
These are entries in DID documents that are specific to the CBOR representation.
(No entries yet)
These properties contain information pertaining to the DID resolution request.
Normative Definition | |
---|---|
DID Core |
{
"accept": "application/did+ld+json"
}
These properties contain information pertaining to the DID resolution response.
Normative Definition | |
---|---|
DID Core |
{
"contentType": "application/did+ld+json"
}
Normative Definition | |
---|---|
DID Core |
{
"error": "notFound"
}
Normative Definition |
---|
DID Core |
{
"error": "invalidDid"
}
Normative Definition |
---|
DID Core |
{
"error": "notFound"
}
Normative Definition |
---|
DID Core |
{
"error": "representationNotSupported"
}
Normative Definition |
---|
DID Resolution |
{
"error": "methodNotSupported"
}
Normative Definition |
---|
DID Resolution |
{
"error": "internalError"
}
Normative Definition |
---|
DID Resolution |
{
"error": "invalidPublicKey"
}
Normative Definition |
---|
DID Resolution |
{
"error": "invalidPublicKeyLength"
}
Normative Definition |
---|
DID Resolution |
{
"error": "invalidPublicKeyType"
}
Normative Definition |
---|
DID Resolution |
{
"error": "unsupportedPublicKeyType"
}
Normative Definition |
---|
DID Spec Extension: notAllowedVerificationMethodType |
{
"error": "notAllowedVerificationMethodType"
}
Normative Definition |
---|
DID Spec Extension: notAllowedKeyType |
{
"error": "notAllowedKeyType"
}
Normative Definition |
---|
DID Spec Extension: notAllowedMethod |
{
"error": "notAllowedMethod"
}
Normative Definition |
---|
DID Spec Extension: notAllowedCertificate |
{
"error": "notAllowedCertificate"
}
Normative Definition |
---|
DID Spec Extension: notAllowedLocalDuplicateKey |
{
"error": "notAllowedLocalDuplicateKey"
}
Normative Definition |
---|
DID Spec Extension: notAllowedLocalDerivedKey |
{
"error": "notAllowedLocalDerivedKey"
}
Normative Definition |
---|
DID Spec Extension: notAllowedGlobalDuplicateKey |
{
"error": "notAllowedGlobalDuplicateKey"
}
These properties contain information pertaining to the DID dereferencing response.
Normative Definition | |
---|---|
DID Core |
{
"error": "notFound"
}
Normative Definition |
---|
DID Core |
{
"error": "invalidDidUrl"
}
Normative Definition |
---|
DID Core |
{
"error": "notFound"
}
These properties contain information pertaining to the DID document itself, rather than the DID subject.
See DID Core #203.
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"created": "2019-03-23T06:35:22Z"
}
See DID Core #203.
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"updated": "2023-08-10T13:40:06Z"
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"deactivated": true
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"nextUpdate": "2023-08-10T13:40:06Z"
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"versionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"nextVersionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"equivalentId": ["did:example:ABC", "did:example:Abc"]
}
Normative Definition | JSON-LD |
---|---|
DID Core | DID Core |
{
"canonicalId": "did:example:ABC"
}
Normative Definition |
---|
DID Core |
did:example:123?hl=zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e
Normative Definition |
---|
DID Core |
did:example:123?service=agent
Normative Definition |
---|
DID Core |
did:example:123?versionId=4
Normative Definition |
---|
DID Core |
did:example:123?versionTime=2016-10-17T02:41:00Z
Normative Definition |
---|
DID Core |
did:example:123?service=files&relativeRef=%2Fmyresume%2Fdoc%3Fversion%3Dlatest%23intro
Normative Definition |
---|
DID Spec Extensions by DIF |
did:example:123?initialState=eyJkZWx0YV9oYXNoIjoiRWlDUlRKZ2Q0U0V2YUZDLW9fNUZjQnZJUkRtWF94Z3RLX3g...
Normative Definition |
---|
DID Spec Extensions by DIF |
did:example:123?transformKeys=jwk
Normative Definition |
---|
DID Spec Extensions by DIF |
did:example:123?signedIetfJsonPatch=eyJraWQiOiJkaWQ6ZXhhbXBsZTo0NTYjX1FxMFVMMkZxNjUxUTBGamQ2VH...
Normative Definition |
---|
DID URL Resource Parameter Specification |
did:foo:21tDAKCERh95uGgKbJNHYp?resource=true
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 Method | Registry | Contact |
---|---|---|
3 | Ceramic Network | Joel Thorstensson (email) |
abt | ABT Network | ArcBlock |
aergo | Aergo | Blocko (website) |
ala | Alastria | Alastria National Blockchain Ecosystem |
amo | AMO blockchain mainnet | AMO Labs (website) |
art | Artwork ID Method | Ming-lam Ng (RealMatter) (email) (website) |
asset | Ledger-independent generative DID method based on CAIP-19 identifiers | BOTLabs GmbH (email) (website) |
bba | Ardor | Attila Aldemir (email) |
bee | Ledger agnostic | mesur.io (email) (website) |
bid | bif | teleinfo caict |
bluetoqueagent | Trusted Digital Web | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
bluetoquedeed | Trusted Digital Web | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
bluetoquenfe | Trusted Digital Web | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
bluetoqueproc | Trusted Digital Web | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
bnb | Binance Smart Chain | Ontology Foundation |
bryk | bryk | Marcos Allende, Sandra Murcia, Flavia Munhoso, Ruben Cessa |
btcr | Bitcoin | Christopher Allen, Ryan Grant, Kim Hamilton Duffy |
ccf | Confidential Consortium Framework (CCF) | Microsoft (email) (website) |
ccp | Quorum | Baidu, Inc. |
celo | Celo | Ontology Foundation |
cheqd | cheqd | CHEQD FOUNDATION LIMITED (email) (website) |
com | commercio.network | Commercio Consortium |
corda | Corda | Nitesh Solanki,Moritz Platt,Pranav Kirtani |
cosmos | Cosmos application chains | Shaun Conway (email) (website) |
cr | Hyperledger Fabric | (email) |
did | Decentralized Identifiers | Spruce Systems, Inc. (website) |
dns | Domain Name System (DNS) | Danube Tech (email) (website) |
dock | Dock | Dock.io (website) |
dom | Ethereum | Dominode |
dsrv | dsrv (email) (website) | |
dual | Ethereum | Smart ID Card Alliance |
dxd | fabric.data-alliace.com | Data Alliance Co., Ltd. (email) (website) |
dyne | Dyne.org Foundation | Andrea D'Intino (email) (website) |
echo | Echo | Echo Technological Solutions LLC |
elastos | Elastos ID Sidechain | Elastos Foundation |
elem | Element DID | Transmute |
emtrust | Hyperledger Fabric | Halialabs Pte Ltd. |
ens | Ethereum | ConsenSys MESH (email) (website) |
eosio | EOSIO | Gimly Blockchain (website) |
erc725 | Ethereum | Markus Sabadello, Fabian Vogelsteller, Peter Kolarov (email) |
etho | Ethereum | Ontology Foundation |
ethr | Ethereum | uPort |
ev | Any Ethereum or EVM-compatible ledger | David Ammouial (NTT DATA) (email) (website) |
evan | evan.network | evan GmbH |
everscale | Everscale blockchain | Dmitry V. Samorodkin (email) (website) |
example | DID Specification | W3C DID Working Group |
factom | Factom | Sphereon, Factomatic, Factom Inc |
fairx | FairX Node | Michael Dowling (email) (website) |
future | Netease Chain | Netease Blockchain Team |
gatc | Ethereum, Hyperledger Fabric, Hyperledger Besu, Alastria | Gataca (website) |
gns | GNU Name System | GNUnet (email) (website) |
grg | GrgChain | GRGBanking Blockchain Express Co. Ltd. |
grn | Any CosmWasm-compatible ledger | EG-easy |
health | DID Health | support (email) (website) |
hedera | Hedera Hashgraph | Hedera Hashgraph, Swisscom Blockchain AG |
holo | Holochain | Holo.Host |
hpass | Hyperledger Fabric | IBM |
hsk | PlatON | HashKey DID (email) |
iamx | undefined | IAMX AG, 6300 Zug, Switzerland (email) (website) |
ibmdc | Hyperledger Fabric | IBM Digital Credentials (email) (website) |
icon | ICON | ICONLOOP |
id | ID Service | Mastercard (website) |
iid | Inspur Chain | zoe Yian (email) |
indy | Any Hyperledger Indy Ledger | Stephen Curran (email) |
infra | InfraBlockchain | Blockchain Labs |
io | IoTeX | IoTeX Foundation |
ion | Bitcoin | Various DIF contributors |
iota | IOTA | IOTA Foundation (website) |
ipid | IPFS | TranSendX |
is | Blockcore | Blockcore |
iscc | Public Blockchains | ISCC Foundation (email) (website) |
iwt | InfoWallet | Raonsecure |
jlinc | JLINC Protocol | Victor Grey |
jnctn | Jnctn Network | Jnctn Limited |
jolo | Ethereum | Jolocom |
jwk | Ledger agnostic | Jeremie Miller (email) |
keri | Ledger agnostic | Dr. Sam Smith, Charles Cunningham, Phil Feairheller (email) |
key | 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 |
kilt | KILT Blockchain | BOTLabs GmbH (email) (website) |
klay | Klaytn | Ontology Foundation |
kr | Korea Mobile Identity System | Ministry of the Interior and Safety, korea (website) |
kscirc | KSChain Blockchain | K4-Security (website) |
lac | LACChain Network | LACChain Alliance |
life | RChain | lifeID Foundation |
lit | LEDGIS | IBCT (website) |
meme | IPFS & DNS & HTTP | DID Meme Maintainers (email) (website) |
mesh | Trusted Digital Web | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
meta | Metadium | Metadium Foundation |
moac | MOAC | MOAC Blockchain Tech, Inc. |
monid | Ethereum | Min Ju |
morpheus | Hydra | Internet of People (website) |
mydata | iGrant.io | iGrant.io (website) |
near | NEAR | Ontology Foundation |
next | Nextme DIDs Network | Next Labs (email) (website) |
nft | Ceramic Network | Joel Thorstensson (email) |
nuggets | Nuggets Network | Nuggets Ltd (email) (website) |
nuts | Nuts network | Nuts community (email) (website) |
object | Trusted Digital Web | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
ockam | Ockam | Ockam |
omn | OmniOne | OmniOne |
onion | Ledger agnostic | Blockchain Commons (website) |
ont | Ontology | Ontology Foundation |
op | Ocean Protocol | Ocean Protocol |
orb | Ledger agnostic | Avast (email) (website) |
oyd | Ledger agnostic | OwnYourData.eu (email) (website) |
panacea | Panacea | MediBloc |
peaq | peaq Blockchain | Peaq Technology GmbH (email) (website) |
peer | peer | Daniel Hardman (email) |
pid | ProofID Blockchain | Alvin Reyes (email) (website) |
pistis | Ethereum | Andrea Taglia, Matteo Sinico |
pkh | Ledger-independent generative DID method based on CAIP-10 keypair expressions | Wayne Chang, Charles Lehner, Juan Caballero, Joel Thorstensson |
pml | PML Chain | Purple Mountain Laboratories |
polygon | Polygon (Previously MATIC) | AyanWorks, MATIC |
psi | LEDGIS | Police Science Institution (website) |
psqr | Public Square | Christian Gribneau (email) (website) |
ptn | PalletOne | PalletOne |
qes | QES | IDnow GmbH (email) (website) |
qui | Qui | Hyperonomy Digital Identity Lab, Parallelspace Corporation (email) (website) |
ray | Ethereum | Ray Peng (email) |
real | Ethereum | Real Items (email) (website) |
rm | Real-world Asset Tokenization DID Method | Ming-lam Ng (RealMatter) (email) (website) |
safe | Gnosis Safe | Gnosis Ltd. (email) |
san | SAN Cloudchain | YLZ Inc. |
schema | Multiple storage networks, currently public IPFS and evan.network IPFS | 51nodes GmbH |
scid | StraitsChain | Lorna (email) (website) |
self | Ledger agnostic | Nikos Fotiou (email) (website) |
selfkey | Ethereum | SelfKey |
sideos | Ledger agnostic | sideos GmbH (website) |
signor | Ethereum, Hedera Hashgraph, Quorum, Hyperledger Besu | Cryptonics (website) |
sirius | ProximaX Sirius Chain | ProximaX Singapore Pte. Ltd. (website) |
snail | Penpal network | Amy Guy, Dmitri Zagidulin (email) |
snplab | SNPLab MyD Network | SNPLab Inc. (email) (website) |
sol | Solana | Identity.com (email) (website) |
sov | Sovrin | Mike Lodder |
ssb | Secure Scuttlebutt | Charles E. Lehner |
ssw | Initial Network | SK telecom (website) |
stack | Bitcoin | Jude Nelson |
tangle | IOTA Tangle | BiiLabs Co., Ltd. |
tdid | FISCO BCOS | Tencent Technology (Shenzhen) Co.Ltd (email) (website) |
tls | Ethereum | Ulrich Gallersdörfer, Kilian Käslin |
trust | TrustChain | TrustCerts GmbH |
trustbloc | Hyperledger Fabric | SecureKey |
trx | TRON | Ontology Foundation |
ttm | TMChain | Token.TM |
twit | Twit | DID Twit GitHub (website) |
tyron | Zilliqa | Julio Cabrapan Duarte |
tys | DID Specification | Chainyard |
tz | Tezos | Spruce Systems, Inc. (website) |
unik | uns.network | Space Elephant SAS (website) |
unisot | Bitcoin SV | UNISOT AS (website) |
uns | uns.network | Space Elephant SAS (website) |
uport | Ethereum | uPort |
v1 | Veres One DLT | Veres One Maintainer (Digital Bazaar) (email) (website) |
vaa | bif | China Academy of Information and Communications Technology (CAICT) |
vaultie | Ethereum | Vaultie Inc. |
vertu | VERTU | V2 (email) |
vid | VP | VP Inc. |
vivid | NEO2, NEO3, Zilliqa | Vivid (website) |
vtid | JianKong (email) | |
vvo | Vivvo | Vivvo Application Studios |
web | Web | Oliver Terbu, Mike Xu, Dmitri Zagidulin, Amy Guy |
wlk | Weelink Network | Weelink |
work | Hyperledger Fabric | Workday, Inc. |
zk | Arweave | zCloak Network Research (email) (website) |