This is the interoperability report for the implementers of the DID Resolution specification.

Conformance Testing Results

These tests were run on

Key

🚫
Pending
Passed
Failed
Access Denied
Timeout
Not Implemented

The results of the tests are shown below:

10.1 HTTP(S) Binding

Implementer ⇒
Test Name
DIF Digital Bazaar, Inc.
All HTTPS bindings MUST use TLS
All conforming DID resolvers MUST implement the GET version of the HTTPS binding
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:74:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If Accept is application/did-resolution, HTTP body MUST contain a DID resolution result
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:87:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If function is successful and returns a didDocument, HTTP response status code MUST be 200
expected 500 to equal 200
AssertionError: expected 500 to equal 200
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:101:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
HTTP response MUST contain a Content-Type header whose value MUST equal contentType in didResolutionMetadata
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:115:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
HTTP response body MUST contain the didDocument result of the DID resolution function
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:137:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If Accept is set to a DID representation media type, response body MUST contain only the didDocument (not the full resolution result)
GET binding: resolver MUST accept URL-encoded DIDs (required because clients MUST URL-encode when resolution options other than accept are provided)
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:190:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
INVALID_DID error MUST map to HTTP status 400 (input: "not-a-did")
expected 500 to equal 400
AssertionError: expected 500 to equal 400
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:208:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
INVALID_DID error MUST map to HTTP status 400 (input: "did:example")
expected 500 to equal 400
AssertionError: expected 500 to equal 400
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:208:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
METHOD_NOT_SUPPORTED error MUST map to HTTP status 501
expected 500 to equal 501
AssertionError: expected 500 to equal 501
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:222:26)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
NOT_FOUND error MUST map to HTTP status 404
expected 400 to equal 404
AssertionError: expected 400 to equal 404
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:235:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
expected { …(3) } to have property 'didResolutionMetadata'
AssertionError: expected { …(3) } to have property 'didResolutionMetadata'
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/assertions.js:24:32)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:237:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
REPRESENTATION_NOT_SUPPORTED error MUST map to HTTP status 406
expected 500 to equal 406
AssertionError: expected 500 to equal 406
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:259:32)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If deactivated metadata property is true, HTTP response status MUST be 410
expected 400 to equal 410
AssertionError: expected 400 to equal 410
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:277:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
expected 404 to equal 410
AssertionError: expected 404 to equal 410
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/10-bindings.js:277:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

DID Resolution

Implementer ⇒
Test Name
DIF Digital Bazaar, Inc.
Implementation has at least one valid DID to test
All conformant DID resolvers MUST implement the DID resolution function for at least one DID method
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:38:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
The resolutionOptions input is REQUIRED, but the structure MAY be empty.
The didResolutionMetadata structure is REQUIRED.
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:57:29)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If resolution is successful, the didDocument MUST be a conformant DID document
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:67:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
The value of id in the resolved DID document MUST match the DID that was resolved
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:77:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
If the resolution is successful, the `didDocumentMetadata` MUST be a metadata structure
expected false to be true
AssertionError: expected false to be true
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:88:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
The did input to the resolve function is REQUIRED
The did input value MUST be a conformant DID as defined in Decentralized Identifiers (DIDs) v1.0.
Produces a INVALID_DID error and conformant resolution result
expected 'INVALID_DID' to equal 'https://www.w3.org/ns/did#INVALID_DID'
AssertionError: expected 'INVALID_DID' to equal 'https://www.w3.org/ns/did#INVALID_DID'
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/assertions.js:31:8)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:124:13)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Unexpected token 'I', "Internal S"... is not valid JSON
SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
                        at JSON.parse (<anonymous>)
                        at parseJSONFromBytes (node:internal/deps/undici/undici:5852:19)
                        at successSteps (node:internal/deps/undici/undici:5833:27)
                        at fullyReadBody (node:internal/deps/undici/undici:4725:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async consumeBody (node:internal/deps/undici/undici:5842:7)
                        at async Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:123:38)
The error property in DID Document Metadata is REQUIRED when there is an error in the resolution process.
Unexpected token 'I', "Internal S"... is not valid JSON
SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
                        at JSON.parse (<anonymous>)
                        at parseJSONFromBytes (node:internal/deps/undici/undici:5852:19)
                        at successSteps (node:internal/deps/undici/undici:5833:27)
                        at fullyReadBody (node:internal/deps/undici/undici:4725:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async consumeBody (node:internal/deps/undici/undici:5842:7)
                        at async Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:133:36)
If the resolution is unsuccessful, the `didDocumentMetadata` output MUST be an empty metadata structure
Unexpected token 'I', "Internal S"... is not valid JSON
SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
                        at JSON.parse (<anonymous>)
                        at parseJSONFromBytes (node:internal/deps/undici/undici:5852:19)
                        at successSteps (node:internal/deps/undici/undici:5833:27)
                        at fullyReadBody (node:internal/deps/undici/undici:4725:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async consumeBody (node:internal/deps/undici/undici:5842:7)
                        at async Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:146:36)
If the DID method is not supported, produces a METHOD_NOT_SUPPORTED error and conformant resolution result
expected 'METHOD_NOT_SUPPORTED' to equal 'https://www.w3.org/ns/did#METHOD_NOT_…'
AssertionError: expected 'METHOD_NOT_SUPPORTED' to equal 'https://www.w3.org/ns/did#METHOD_NOT_…'
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/assertions.js:31:8)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:162:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Unexpected token 'I', "Internal S"... is not valid JSON
SyntaxError: Unexpected token 'I', "Internal S"... is not valid JSON
                        at JSON.parse (<anonymous>)
                        at parseJSONFromBytes (node:internal/deps/undici/undici:5852:19)
                        at successSteps (node:internal/deps/undici/undici:5833:27)
                        at fullyReadBody (node:internal/deps/undici/undici:4725:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
                        at async consumeBody (node:internal/deps/undici/undici:5842:7)
                        at async Context.<anonymous> (file:///home/runner/work/did-resolution-mocha-test-suite/did-resolution-mocha-test-suite/tests/4-did-resolution.js:161:34)

At Risk

Reason ⇒
Statement
At least 2 passing implementations
All conforming DID resolvers MUST implement the GET version of the HTTPS binding
If Accept is application/did-resolution, HTTP body MUST contain a DID resolution result
If function is successful and returns a didDocument, HTTP response status code MUST be 200
HTTP response MUST contain a Content-Type header whose value MUST equal contentType in didResolutionMetadata
HTTP response body MUST contain the didDocument result of the DID resolution function
GET binding: resolver MUST accept URL-encoded DIDs (required because clients MUST URL-encode when resolution options other than accept are provided)
INVALID_DID error MUST map to HTTP status 400 (input: "not-a-did")
INVALID_DID error MUST map to HTTP status 400 (input: "did:example")
METHOD_NOT_SUPPORTED error MUST map to HTTP status 501
NOT_FOUND error MUST map to HTTP status 404
REPRESENTATION_NOT_SUPPORTED error MUST map to HTTP status 406
If deactivated metadata property is true, HTTP response status MUST be 410
All conformant DID resolvers MUST implement the DID resolution function for at least one DID method
The didResolutionMetadata structure is REQUIRED.
If resolution is successful, the didDocument MUST be a conformant DID document
The value of id in the resolved DID document MUST match the DID that was resolved
If the resolution is successful, the `didDocumentMetadata` MUST be a metadata structure
Produces a INVALID_DID error and conformant resolution result
The error property in DID Document Metadata is REQUIRED when there is an error in the resolution process.
If the resolution is unsuccessful, the `didDocumentMetadata` output MUST be an empty metadata structure
If the DID method is not supported, produces a METHOD_NOT_SUPPORTED error and conformant resolution result