diff --git a/.github/workflows/lint-did-method-registry.yml b/.github/workflows/lint-did-method-registry.yml
index d853205e..4139ad48 100644
--- a/.github/workflows/lint-did-method-registry.yml
+++ b/.github/workflows/lint-did-method-registry.yml
@@ -1,9 +1,9 @@
-name: Lint DID Method Registry
+name: Lint DID Methods
on:
pull_request: {}
jobs:
- lint-did-spec-registries:
+ lint-did-extensions:
runs-on: ubuntu-latest
steps:
- name: Checkout source code...
@@ -12,12 +12,12 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 16.x
- - name: Install did-spec-registries tooling...
+ - name: Install did-extensions tooling...
working-directory: tooling
run: npm i
- - name: Validate did-spec-registries DID method entries
+ - name: Validate did-extensions DID method entries
working-directory: tooling
run: npm run registry:validate
- - name: Generate did-spec-registries registry index
+ - name: Generate did-extensions registry index
working-directory: tooling
run: npm run registry:generate:index
diff --git a/.github/workflows/publish-did-spec-registries.yml b/.github/workflows/publish-did-extensions.yml
similarity index 80%
rename from .github/workflows/publish-did-spec-registries.yml
rename to .github/workflows/publish-did-extensions.yml
index a6fac833..77e0c6f7 100644
--- a/.github/workflows/publish-did-spec-registries.yml
+++ b/.github/workflows/publish-did-extensions.yml
@@ -5,7 +5,7 @@ on:
- main
jobs:
- publish-did-spec-registries:
+ publish-did-extensions:
runs-on: ubuntu-latest
steps:
- name: Checkout source code...
@@ -14,13 +14,13 @@ jobs:
uses: actions/setup-node@v2
with:
node-version: 16.x
- - name: Install did-spec-registries tooling...
+ - name: Install did-extensions tooling...
working-directory: tooling
run: npm i
- - name: Validate did-spec-registries DID method entries
+ - name: Validate did-extensions DID method entries
working-directory: tooling
run: npm run registry:validate
- - name: Generate did-spec-registries registry index
+ - name: Generate did-extensions registry index
working-directory: tooling
run: npm run registry:generate:index
- name: Deploy to Github Pages
diff --git a/README.md b/README.md
index b4799edf..30af476b 100644
--- a/README.md
+++ b/README.md
@@ -1,24 +1,27 @@
![W3C Logo](https://www.w3.org/Icons/w3c_home)
-[![Echidna Auto-publish](https://github.com/w3c/did-spec-registries/actions/workflows/auto-publish.yml/badge.svg)](https://github.com/w3c/did-spec-registries/actions/workflows/auto-publish.yml)
+[![Echidna Auto-publish](https://github.com/w3c/did-extensions/actions/workflows/auto-publish.yml/badge.svg)](https://github.com/w3c/did-extensions/actions/workflows/auto-publish.yml)
-# Decentralized Identifier Core Registries v1.0
+# Decentralized Identifier Extensions
-This repository contains a registry created by the
+This repository contains a list of known DID Extensions that are tracked
+by the
[W3C Decentralized Identifier Working Group](https://www.w3.org/2019/did-wg/)
-(DID WG) for the purpose of enhancing DID ecosystem interoperability.
+(DID WG) for the purpose of enhancing DID ecosystem interoperability. There
+might be extensions to DIDs other than the ones listed here; this is not
+meant to be an exhaustive or centralized list of extensions.
An Editor's Draft of this repository is available at
-https://w3c.github.io/did-spec-registries/.
+https://w3c.github.io/did-extensions/.
-## Adding a DID Method to this Registry
+## Adding a DID Method
-In order to register a new DID method, you must add a JSON file
-to the [./methods](./methods) directory and
-[open a pull request](https://github.com/w3c/did-spec-registries/pulls)
+In order to register a new DID method, you must add a JSON file
+to the [./methods](./methods) directory and
+[open a pull request](https://github.com/w3c/did-extensions/pulls)
to add the file to this repository.
-Here is an [example registration entry](https://w3c.github.io/did-spec-registries/methods/example.json):
+Here is an [example registration entry](https://w3c.github.io/did-extensions/methods/example.json):
```jsonc
{
@@ -34,19 +37,19 @@ Here is an [example registration entry](https://w3c.github.io/did-spec-registrie
}
```
-Your Pull Request will be automatically validated, please ensure
-that all of the automated tests pass (no errors reported) or
-your submission will not be reviewed. Common reasons for failed
-validation includes invalidly formatted JSON files and missing
-mandatory fields. There will be a checklist that you are expected
-to complete and attest to its accuracy. Once you submit your request,
-your pull request will be reviewed by the registry editors. Changes
-regarding the required criteria may be requested. If there are at
-least two reviews by registry maintainers listed in the CODEOWNERS file, and no objections or
-changes requested, your DID method will be registered after a
+Your Pull Request will be automatically validated, please ensure
+that all of the automated tests pass (no errors reported) or
+your submission will not be reviewed. Common reasons for failed
+validation includes invalidly formatted JSON files and missing
+mandatory fields. There will be a checklist that you are expected
+to complete and attest to its accuracy. Once you submit your request,
+your pull request will be reviewed by the registry editors. Changes
+regarding the required criteria may be requested. If there are at
+least two reviews by registry maintainers listed in the CODEOWNERS file, and no objections or
+changes requested, your DID method will be registered after a
minimum of 7 days and a maximum of 30 days.
-## Adding Anything Else to this Registry
+## Adding Anything Else
Use the standard fork, branch, and pull request workflow to propose changes to
the registry. Please make branch names informative—by including the issue or
@@ -56,7 +59,7 @@ Editorial changes that improve the readability of the registry or correct
spelling or grammatical mistakes are welcome.
Non-editorial changes MUST go through a review and approval process that is
-[detailed in the registry](https://w3c.github.io/did-spec-registries/#the-registration-process).
+[detailed in the registry](https://w3c.github.io/did-extensions/#the-registration-process).
Please read [CONTRIBUTING.md](CONTRIBUTING.md), about licensing contributions.
diff --git a/common.js b/common.js
deleted file mode 100644
index 087a939a..00000000
--- a/common.js
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Build DID Method table using JSON data */
-async function buildDidMethodTables(config) {
- const {document} = window;
- const response = await fetch('methods/index.json');
- if(response.status !== 200) {
- throw new Error('Failed retrieve DID Method index.json file.');
- }
- const allMethods = await response.json();
-
- // set up the API summary table headers
- const table = document.getElementById('did-method-table');
- const tableHeader = document.createElement('thead');
- tableHeader.innerHTML = '
DID Method | Registry | ' +
- 'Contact | ';
- table.appendChild(tableHeader);
-
- // summarize each API endpoint
- const tableBody = document.createElement('tbody');
- for(const method of allMethods) {
- const tableRow = document.createElement('tr');
- const {name, verifiableDataRegistry, contactEmail, contactName,
- contactWebsite, specification} = method;
- let contactInfo = contactName;
- if(contactEmail) {
- contactInfo += ` (email)`;
- }
- if(contactWebsite) {
- contactInfo += ` (website)`;
- }
- tableRow.innerHTML =
- `${name} | ` +
- `${verifiableDataRegistry} | ` +
- `${contactInfo} | `;
- tableBody.appendChild(tableRow);
- }
- table.appendChild(tableBody);
-
-}
-
-window.buildDidMethodTables = buildDidMethodTables;
diff --git a/index.html b/index.html
index 4ea27e9d..e19fb9c2 100644
--- a/index.html
+++ b/index.html
@@ -2,7 +2,7 @@
-DID Specification Registries
+Decentralized Identifier Extensions
+
+
+
+
+
+
+
+
+
+This document serves as a collection of known DID Methods.
+
+
+
+
+
+
+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.
+
+
+
+
+
+
+ DID Methods
+
+
+This table summarizes the DID method specifications currently in development.
+The links will be updated as subsequent Implementer’s Drafts are produced.
+This registry does not act as an endorsement of any particular DID method or its
+underlying technologies by the W3C, the W3C Decentralized Identifier Working Group,
+or any affiliated members of the W3C. It exists as a mechanism for developers to
+discover various DID methods that they might wish to implement.
+
+
+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.
+
+
+
+
+
+
+
+
diff --git a/properties/index.html b/properties/index.html
new file mode 100644
index 00000000..345f9c74
--- /dev/null
+++ b/properties/index.html
@@ -0,0 +1,1877 @@
+
+
+
+
+DID Document Property Extensions
+
+
+
+
+
+
+
+
+
+
+This document serves as a collection of known DID Document properties and
+property values.
+
+
+
+
+
+
+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.
+
+
+
+
+
+
+ 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.
+
+
+
+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 ).
+
+
+
+ DID document properties
+
+These properties are foundational to DID documents, and are expected to be
+useful to all DID methods.
+
+
+ id
+
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "id": "did:example:123",
+ ...
+}
+
+
+
+
+ alsoKnownAs
+
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "alsoKnownAs": "https://example.com/",
+ ...
+}
+
+
+
+
+ controller
+
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "controller": "did:example:123",
+ ...
+}
+
+
+
+
+
+ verificationMethod
+
+
+
+{
+ "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"
+ },
+ }
+ ]
+}
+
+
+
+
+ publicKey
+
+Deprecated
+
+
+This property has been deprecated, use verificationMethod instead.
+
+
+
+
+
+{
+ "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"
+ }
+ }
+ ]
+}
+
+
+
+
+ service
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ ...
+ "service": [{
+ "id": "did:example:123#edv",
+ "type": "EncryptedDataVault",
+ "serviceEndpoint": "https://edv.example.com/"
+ }]
+}
+
+
+
+
+ linkedResource
+
+
+
+ {
+ ...
+ "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"
+ }]
+ }
+
+
+
+
+ dnsValidationDomain
+
+
+
+{
+ "dnsValidationDomain": "mydomain.example"
+ ...
+}
+
+
+
+
+ Verification relationships
+
+These are properties that express the relationship between the DID subject and a
+verification method using a
+
+verification relationship.
+
+
+ assertionMethod
+
+
+
+
+ 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"
+ ]
+}
+
+
+
+
+ authentication
+
+
+
+
+ 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"
+ ]
+}
+
+
+
+
+ capabilityDelegation
+
+
+
+
+ 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"
+ ]
+}
+
+
+
+
+ capabilityInvocation
+
+
+
+ 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"
+ ]
+}
+
+
+
+
+ keyAgreement
+
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ ...
+ "keyAgreement": [
+ {
+ "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+ "type": "X25519KeyAgreementKey2019",
+ "controller": "did:example:123",
+ "publicKeyMultibase": "zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS"
+ }
+ ]
+}
+
+
+
+
+
+ Verification method properties
+
+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
.
+
+
+
+ publicKeyJwk
+
+
+
+{
+ "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"
+ }
+},
+
+
+
+
+ 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.
+
+
+
+
+
+ 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.
+
+
+
+ {
+ "@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"
+ }]
+ }
+
+
+
+
+
+
+ blockchainAccountId
+
+
+ {
+ "@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"
+ }]
+ }
+
+
+
+
+ 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.
+
+
+
+ {
+ "@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"
+ }]
+ }
+
+
+
+
+
+ Service properties
+
+These properties are for use on a service object, in the value of
+service
.
+
+
+ serviceEndpoint
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ ...
+ "service": [{
+ "id": "did:example:123#edv",
+ "type": "EncryptedDataVault",
+ "serviceEndpoint": "https://edv.example.com/"
+ }]
+}
+
+
+
+
+
+
+
+
+
+ Property Values
+
+
+ Verification method types
+
+These are values to be used for the type
in a verification method object.
+
+
+
+ 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.
+
+
+
+
+
+ {
+ "id": "did:example:123#_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw",
+ "type": "JsonWebKey2020",
+ "controller": "did:example:123",
+ "publicKeyJwk": {
+ "crv": "P-256",
+ "x": "38M1FDts7Oea7urmseiugGW7tWc3mLpJh6rKe7xINZ8",
+ "y": "nDQW6XZ7b_u2Sy9slofYLlG03sOEoug3I0aAPQ0exs4",
+ "kty": "EC",
+ "kid": "_TKzHv2jFIyvdTGF1Dsgwngfdg3SH6TpDv0Ta1aOEkw"
+ }
+ }
+
+
+
+ EcdsaSecp256k1VerificationKey2019
+
+
+
+
+{
+ "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"
+ }
+}
+
+
+
+
+ Ed25519VerificationKey2018
+
+
+
+
+ {
+ "id": "did:example:123#ZC2jXTO6t4R501bfCXv3RxarZyUbdP2w_psLwMuY6ec",
+ "type": "Ed25519VerificationKey2018",
+ "controller": "did:example:123",
+ "publicKeyBase58": "H3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
+ }
+
+
+
+
+ Bls12381G1Key2020
+
+
+
+
+ {
+ "id": "did:example:123#z3tEGVtEKzdhJB2rT5hLVjwQPis8k7bTM16t7vDZrQaoddk6wZ7or6xPPs1P8H9U16Xe75",
+ "type": "Bls12381G1Key2020",
+ "controller": "did:example:123",
+ "publicKeyBase58": "7bXhTVonHPizXP72AE92PPmRiaXipC519yU7F6NxUFExWpyQo57LuKKBoTyuZ3uWm9",
+ }
+
+
+
+
+ Bls12381G2Key2020
+
+
+
+
+ {
+ "id": "did:example:123#zUC7K51WYEsj8y6KPVa1XfwdW5ZJrW5kSbMV619j128T6atCLLXJjjovMZsJ3Ay4STdngRkvM4ygT4qm1mk6HR8FvipSY435nLgYS1TTcaqJAzDWzM1iB9vh3hTL1DEKitwn56i",
+ "type": "Bls12381G2Key2020",
+ "controller": "did:example:123",
+ "publicKeyBase58": "25ETdUZDVnME6yYuAMjFRCnCPcDmYQcoZDcZuXAfeMhXPvjZg35QmZ7uctBcovA69YDM3Jf7s5BHo4u1y89nY6mHiji8yphZ4AMm4iNCRh35edSg76Dkasu3MY2VS9LnuaVQ",
+
+ }
+
+
+
+
+ PgpVerificationKey2021
+
+
+
+{
+ "@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"
+ }]
+}
+
+
+
+
+ RsaVerificationKey2018
+
+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.
+
+
+
+ {
+ "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"
+ }
+ }
+
+
+
+
+ X25519KeyAgreementKey2019
+
+
+
+
+ {
+ ...
+ "keyAgreement": [
+ {
+ "id": "did:example:123#zC9ByQ8aJs8vrNXyDhPHHNNMSHPcaSgNpjjsBYpMMjsTdS",
+ "type": "X25519KeyAgreementKey2019",
+ "controller": "did:example:123",
+ "publicKeyBase58": "9hFgmPVfmBZwRvFEyniQDBkz9LmV7gDEqytWyGZLmDXE"
+ }
+ ]
+ }
+
+
+
+
+
+ EcdsaSecp256k1RecoveryMethod2020
+
+
+
+{
+ "@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"
+ }
+ ]
+}
+
+
+
+
+ VerifiableCondition2021
+
+
+
+ {
+ "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"
+ }]
+ }
+
+
+
+
+
+
+ Service types
+
+These are values to be used for the type
property
+in a service object.
+
+
+
+ LinkedDomains
+
+
+
+
+{
+ "@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"
+ }
+ ]
+}
+
+
+
+
+
+ LinkedVerifiablePresentation
+
+
+
+{
+ "@context": [
+ "https://www.w3.org/ns/did/v1",
+ "https://identity.foundation/linked-vp/contexts/v1"
+ ],
+ "id": "did:example:123",
+ "verificationMethod": [{
+ "id": "did:example:123#_Qq0UL2Fq651Q0Fjd6TvnYE-faHiOpRlPVQcY_-tA4A",
+ "type": "JsonWebKey2020",
+ "controller": "did:example:123",
+ "publicKeyJwk": {
+ "kty": "OKP",
+ "crv": "Ed25519",
+ "x": "VCpo2LMLhn6iWku8MKvSLg2ZAoC-nlOyPVQaO3FxVeQ"
+ }
+ }],
+ "service": [
+ {
+ "id": "did:example:123#foo",
+ "type": "LinkedVerifiablePresentation",
+ "serviceEndpoint": ["https://bar.example.com/verifiable-presentation.jsonld"]
+ },
+ {
+ "id": "did:example:123#baz",
+ "type": "LinkedVerifiablePresentation",
+ "serviceEndpoint": "ipfs://bafybeihkoviema7g3gxyt6la7vd5ho32ictqbilu3wnlo3rs7ewhnp7lly/verifiable-presentation.jwt"
+ }
+ ]
+}
+
+
+
+
+
+ DIDCommMessaging
+
+
+
+{
+ "@context":[
+ "https://www.w3.org/ns/did/v1",
+ "https://didcomm.org/messaging/contexts/v2"
+ ],
+ "type":"DIDCommMessaging",
+ "serviceEndpoint": {
+ "uri": "http://example.com/path",
+ "accept":[ "didcomm/v2", "didcomm/aip2;env=rfc587" ],
+ "routingKeys":[ "did:example:somemediator#somekey" ]
+ }
+}
+
+
+
+
+
+ Web of Things (WoT) Discovery
+ The WotThing
and WotDirectory
endpoints allow publication of service endpoints in a DID document
+ that can be used to fetch Web of Things (WoT) Thing Descriptions (TDs).
+ The WotThing
endpoint is a REST service that returns a TD
+ when the GET
method is used.
+ This can be used for self-describing devices or services, or be a service
+ separate from the actual device or service described by the TD.
+ The WotDirectory
is also a REST service that returns a TD, but this service is always
+ a Web of Things (WoT) Thing Description Directory (TDD),
+ and the TD returned by a GET
always describes the TDD's interface.
+ Details (including normative statements covering the above) are in the
+ WoT Discovery specification.
+
+
+
+
+{
+ "@context":[
+ "https://www.w3.org/ns/did/v1",
+ "https://www.w3.org/2022/wot/discovery-did"
+ ],
+ ...
+ "service": [{
+ "id": "did:example:wotdiscoveryexample#td",
+ "type": "WotThing",
+ "serviceEndpoint":
+ "https://wot.example.com/.well-known/wot"
+ }]
+ ...
+}
+
+
+
+{
+ "@context":[
+ "https://www.w3.org/ns/did/v1",
+ "https://www.w3.org/2022/wot/discovery-did"
+ ],
+ ...
+ "service": [{
+ "id": "did:example:wotdiscoveryexample#tdd",
+ "type": "WotDirectory",
+ "serviceEndpoint":
+ "https://wot.example.com/tdd"
+ }]
+ ...
+}
+
+
+
+
+
+ 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.
+
+ 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.
+
+
+
+
+{
+ ...
+ "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}"
+ }
+ ]
+}
+
+
+$ 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": {...},
+ ...
+ },
+ ...
+]
+
+
+
+
+ OpenID4 Verifiable Credential Issuance
+ The OID4VCI
service allows publication of a credential issuer that conforms to the OpenID for Verifiable Credential Issuance (OID4VCI) specification.
+
The service endpoint `id` MUST be the Credential Issuer Identifier to get the Credential Issuer Metadata as described in Section Credential Issuer Metadata of OpenIDVCI.
+
+
+{
+ ...
+ "service": [
+ {
+ "id": "did:example:123#oid4vci",
+ "type": "OID4VCI",
+ "serviceEndpoint": "https://issuer.example.com/"
+ }
+ ]
+}
+
+
+
+
+ OpenID4 Verifiable Presentation
+ The OID4VP
service allows publication of how to interact with a credential wallet that conforms with the OpenID for Verifiable Presentation (OID4VP) specification.
+ The service endpoint `id` MUST be the Wallet (OAuth2) Issuer Identifier to obtain Wallet Metadata to invoke the wallet as described in section Wallet Invocation.
+
+
+
+{
+ ...
+ "service": [
+ {
+ "id": "did:example:123#oid4vp",
+ "type": "OID4VP",
+ "serviceEndpoint": "https://wallet.example.com"
+ }
+ ]
+}
+
+
+
+
+
+
+
+
+
diff --git a/resolution/index.html b/resolution/index.html
new file mode 100644
index 00000000..c7d78e11
--- /dev/null
+++ b/resolution/index.html
@@ -0,0 +1,1370 @@
+
+
+
+
+DID Resolution Extensions
+
+
+
+
+
+
+
+
+
+
+This document serves as a collection of known DID Resolution and Dereferencing
+extensions.
+
+
+
+
+
+
+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.
+
+
+
+
+
+
+ Representations
+ This table provides a reference for media types and the associated specifications for producing and consuming those representations.
+
+
+
+
+
+ Representation-Specific Entries
+
+
+ JSON
+
+
+These are entries in DID documents that are specific to the
+JSON representation.
+
+
+(No entries yet)
+
+
+
+
+ JSON-LD
+
+
+These are entries in DID documents that are specific to the
+JSON-LD representation.
+
+
+
+ @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": [
+ "https://www.w3.org/ns/did/v1",
+ "https://example.com/blockchain-identity/v1"
+ ],
+ ...
+}
+
+
+
+
+
+
+ CBOR
+
+
+These are entries in DID documents that are specific to the
+CBOR representation.
+
+
+(No entries yet)
+
+
+
+
+
+ DID Resolution Options
+
+These properties contain information pertaining to the DID resolution request.
+
+
+
+ accept
+
+
+
+ Normative Definition |
+ |
+
+
+
+
+
+ DID Core
+ |
+ |
+
+
+
+
+
+{
+ "accept": "application/did+ld+json"
+}
+
+
+
+
+
+ DID Resolution Metadata
+
+These properties contain information pertaining to the DID resolution response.
+
+
+ contentType
+
+
+
+ Normative Definition |
+ |
+
+
+
+
+
+ DID Core
+ |
+ |
+
+
+
+
+
+{
+ "contentType": "application/did+ld+json"
+}
+
+
+
+
+ error
+
+
+
+ Normative Definition |
+ |
+
+
+
+
+
+ DID Core
+ |
+
+ |
+
+
+
+
+
+{
+ "error": "notFound"
+}
+
+
+
+ invalidDid
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "error": "invalidDid"
+}
+
+
+
+
+ notFound
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "error": "notFound"
+}
+
+
+
+
+ representationNotSupported
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "error": "representationNotSupported"
+}
+
+
+
+
+ methodNotSupported
+
+
+
+{
+ "error": "methodNotSupported"
+}
+
+
+
+
+ internalError
+
+
+
+{
+ "error": "internalError"
+}
+
+
+
+ invalidPublicKey
+
+
+
+{
+ "error": "invalidPublicKey"
+}
+
+
+
+ invalidPublicKeyLength
+
+
+
+{
+ "error": "invalidPublicKeyLength"
+}
+
+
+
+ invalidPublicKeyType
+
+
+
+{
+ "error": "invalidPublicKeyType"
+}
+
+
+
+
+ unsupportedPublicKeyType
+
+
+
+{
+ "error": "unsupportedPublicKeyType"
+}
+
+
+
+
+ notAllowedVerificationMethodType
+
+
+
+{
+ "error": "notAllowedVerificationMethodType"
+}
+
+
+
+
+ notAllowedKeyType
+
+
+
+{
+ "error": "notAllowedKeyType"
+}
+
+
+
+
+ notAllowedMethod
+
+
+
+{
+ "error": "notAllowedMethod"
+}
+
+
+
+
+ notAllowedCertificate
+
+
+
+{
+ "error": "notAllowedCertificate"
+}
+
+
+
+
+ notAllowedLocalDuplicateKey
+
+
+
+{
+ "error": "notAllowedLocalDuplicateKey"
+}
+
+
+
+
+ notAllowedLocalDerivedKey
+
+
+
+{
+ "error": "notAllowedLocalDerivedKey"
+}
+
+
+
+
+ notAllowedGlobalDuplicateKey
+
+
+
+{
+ "error": "notAllowedGlobalDuplicateKey"
+}
+
+
+
+
+
+ DID Dereferencing Metadata
+
+These properties contain information pertaining to the DID dereferencing response.
+
+
+ error
+
+
+
+ Normative Definition |
+ |
+
+
+
+
+
+ DID Core
+ |
+
+ |
+
+
+
+
+
+{
+ "error": "notFound"
+}
+
+
+ invalidDidUrl
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "error": "invalidDidUrl"
+}
+
+
+
+ notFound
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "error": "notFound"
+}
+
+
+
+
+
+ DID Document Metadata
+
+These properties contain information pertaining to the DID document itself,
+rather than the DID subject.
+
+
+ created
+
+ See DID Core #203.
+
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "created": "2019-03-23T06:35:22Z"
+}
+
+
+
+
+ updated
+
+ See DID Core #203.
+
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "updated": "2023-08-10T13:40:06Z"
+}
+
+
+
+
+
+ deactivated
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "deactivated": true
+}
+
+
+
+
+
+ nextUpdate
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "nextUpdate": "2023-08-10T13:40:06Z"
+}
+
+
+
+
+
+ versionId
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "versionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
+}
+
+
+
+
+
+ nextVersionId
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "nextVersionId": "bafyreifederejlobaec6kwpl2mc3tw7qk3j3ey4uytkbiw2qw7dzylud6i"
+}
+
+
+
+
+
+ equivalentId
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "equivalentId": ["did:example:ABC", "did:example:Abc"]
+}
+
+
+
+
+
+ canonicalId
+
+
+
+ Normative Definition |
+ JSON-LD |
+
+
+
+
+
+ DID Core
+ |
+
+
+ DID Core
+ |
+
+
+
+
+
+{
+ "canonicalId": "did:example:ABC"
+}
+
+
+
+
+
+
+
+ Parameters
+
+
+ hl
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+did:example:123?hl=zQmWvQxTqbG2Z9HPJgG57jjwR154cKhbtJenbyYTWkjgF3e
+
+
+
+
+ service
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+did:example:123?service=agent
+
+
+
+
+ versionId
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+did:example:123?versionId=4
+
+
+
+
+ versionTime
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+did:example:123?versionTime=2016-10-17T02:41:00Z
+
+
+
+
+ relativeRef
+
+
+
+ Normative Definition |
+
+
+
+
+
+ DID Core
+ |
+
+
+
+
+
+did:example:123?service=files&relativeRef=%2Fmyresume%2Fdoc%3Fversion%3Dlatest%23intro
+
+
+
+
+ initialState
+
+
+
+did:example:123?initialState=eyJkZWx0YV9oYXNoIjoiRWlDUlRKZ2Q0U0V2YUZDLW9fNUZjQnZJUkRtWF94Z3RLX3g...
+
+
+
+
+
+
+
+
+did:example:123?transformKeys=jwk
+
+
+
+
+ signedIetfJsonPatch
+
+
+
+did:example:123?signedIetfJsonPatch=eyJraWQiOiJkaWQ6ZXhhbXBsZTo0NTYjX1FxMFVMMkZxNjUxUTBGamQ2VH...
+
+
+
+
+ resource
+
+
+
+did:foo:21tDAKCERh95uGgKbJNHYp?resource=true
+
+
+
+
+
+
+
diff --git a/tooling/README.md b/tooling/README.md
index b2386bce..519080c3 100644
--- a/tooling/README.md
+++ b/tooling/README.md
@@ -1,6 +1,7 @@
## Registry Tooling
-This directory contains command line tooling and support scripts for the did spec registries.
+This directory contains command line tooling and support scripts for the DID
+Extensions.
### Setup Tooling
@@ -16,11 +17,9 @@ npm run registry:validate
### Generate DID Methods Registry Index
-This command is run in CI, the index file produced is git ignored.
-
-This file is used by the Respec build plugin to build the registry
-
-in client side javascript at page load time.
+This command is run in CI, the index file produced is git ignored. This file is
+used by the Respec build plugin to build the registry in client side javascript
+at page load time.
```
npm run registry:generate:index
diff --git a/tooling/generate-index.js b/tooling/generate-index.js
index cfb25943..4bf166bb 100644
--- a/tooling/generate-index.js
+++ b/tooling/generate-index.js
@@ -13,7 +13,7 @@ const indexFile = path.join(methodsDir, 'index.json');
process.stdout.write('Processing:');
fs.readdirSync(methodsDir).forEach(filename => {
// skip index file
- if(filename === 'index.json') {
+ if(['index.html', 'index.json'].includes(filename)) {
return;
}
diff --git a/tooling/validate-registry.js b/tooling/validate-registry.js
index 7ff57320..3d7f650e 100644
--- a/tooling/validate-registry.js
+++ b/tooling/validate-registry.js
@@ -14,7 +14,7 @@ const getAllRegistryEntries = () =>{
const files = fs.readdirSync(didMethodRegistryDirectory);
const entries = files.filter((file)=>{
// ignore the index file.
- return file !== 'index.json';
+ return !(['index.html', 'index.json'].includes(file));
}).map((file) => {
const fileContent = fs.readFileSync(path.join(didMethodRegistryDirectory, file)).toString();
let didMethod = {
diff --git a/w3c.json b/w3c.json
index da28d899..f6bd40b1 100644
--- a/w3c.json
+++ b/w3c.json
@@ -1,6 +1,6 @@
{
"group": [117488],
- "contacts": ["iherman"],
+ "contacts": ["pchampin"],
"repo-type": "note",
- "shortName": "did-spec-registries"
+ "shortName": "did-extensions"
}