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 cheqd iden3
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-test-suite/did-resolution-test-suite/tests/10-bindings.js:62:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103: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-test-suite/did-resolution-test-suite/tests/10-bindings.js:73:27)
✓
If function is successful and returns a didDocument, HTTP response status code MUST be 200
✓
❌
expected 406 to equal 200
AssertionError: expected 406 to equal 200
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/10-bindings.js:85:28)
✓
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-test-suite/did-resolution-test-suite/tests/10-bindings.js:97:27)
✓
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-test-suite/did-resolution-test-suite/tests/10-bindings.js:117:27)
✓
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-test-suite/did-resolution-test-suite/tests/10-bindings.js:159:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
INVALID_DID error MUST map to HTTP status 400 (input: "not-a-did")
✓
❌
expected 406 to equal 400
AssertionError: expected 406 to equal 400
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/10-bindings.js:175:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
INVALID_DID error MUST map to HTTP status 400 (input: "did:example")
✓
❌
expected 406 to equal 400
AssertionError: expected 406 to equal 400
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/10-bindings.js:175:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
METHOD_NOT_SUPPORTED error MUST map to HTTP status 501
✓
❌
expected 406 to equal 501
AssertionError: expected 406 to equal 501
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/10-bindings.js:187:26)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
NOT_FOUND error MUST map to HTTP status 404
🚫
Test skipped.
❌
expected 406 to equal 404
AssertionError: expected 406 to equal 404
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/10-bindings.js:201:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
If deactivated metadata property is true, HTTP response status MUST be 410
🚫
Test skipped.
❌
expected 406 to equal 410
AssertionError: expected 406 to equal 410
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/10-bindings.js:222:28)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
🚫
Test skipped.

DID Resolution

Implementer ⇒
⇓Test Name
DIF cheqd iden3
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-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:41:27)
✓
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-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:55:29)
✓
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-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:64:27)
✓
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-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:74:27)
✓
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-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:84:27)
✓
The did input MUST be a conformant DID; otherwise produces an INVALID_DID error and conformant resolution result
❌
didResolutionMetadata.error.type: expected 'INVALID_DID' to equal 'https://www.w3.org/ns/did#INVALID_DID'
AssertionError: didResolutionMetadata.error.type: expected 'INVALID_DID' to equal 'https://www.w3.org/ns/did#INVALID_DID'
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/assertions.js:32:11)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:103:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
❌
didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
AssertionError: didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/assertions.js:29:12)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:103:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
The error property in DID Resolution 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
✓
❌
expected { didResolutionMetadata: { …(4) } } to have property 'didDocumentMetadata'
AssertionError: expected { didResolutionMetadata: { …(4) } } to have property 'didDocumentMetadata'
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:126:40)
✓
If the DID method is not supported, produces a METHOD_NOT_SUPPORTED error and conformant resolution result
❌
didResolutionMetadata.error.type: expected 'METHOD_NOT_SUPPORTED' to equal 'https://www.w3.org/ns/did#METHOD_NOT_…'
AssertionError: didResolutionMetadata.error.type: expected 'METHOD_NOT_SUPPORTED' to equal 'https://www.w3.org/ns/did#METHOD_NOT_…'
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/assertions.js:32:11)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:141:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
❌
didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
AssertionError: didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/assertions.js:29:12)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:141:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
If the resolution options are invalid, produces an INVALID_OPTIONS (or FEATURE_NOT_SUPPORTED) error and conformant resolution result
❌
Unexpected token 'N', "Not accept"... is not valid JSON
SyntaxError: Unexpected token 'N', "Not accept"... is not valid JSON
                        at JSON.parse (<anonymous>)
                        at parseJSONFromBytes (node:internal/deps/undici/undici:5895:19)
                        at successSteps (node:internal/deps/undici/undici:5876:27)
                        at fullyReadBody (node:internal/deps/undici/undici:4768:9)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
                        at async consumeBody (node:internal/deps/undici/undici:5885:7)
                        at async Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:159:36)
❌
didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
AssertionError: didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/assertions.js:29:12)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:160:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
❌
expected true to be false
AssertionError: expected true to be false
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:158:27)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
If the DID does not exist, produces a NOT_FOUND error and conformant resolution result
🚫
Test skipped.
❌
didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
AssertionError: didResolutionMetadata.error must be an object with a `type` property (e.g. {type: "https://www.w3.org/ns/did#NOT_FOUND"}): expected 'representationNotSupported' to be an object
                        at checkErrorResolutionResult (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/assertions.js:29:12)
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:179:11)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
✓
If a DID has been deactivated, DID document metadata MUST include the deactivated property with the boolean value true
🚫
Test skipped.
❌
expected { didResolutionMetadata: { …(4) } } to have property 'didDocumentMetadata'
AssertionError: expected { didResolutionMetadata: { …(4) } } to have property 'didDocumentMetadata'
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:193:40)
                        at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
🚫
Test skipped.
If the DID has been deactivated, the didDocument is null
🚫
Test skipped.
❌
expected { didResolutionMetadata: { …(4) } } to have property 'didDocument'
AssertionError: expected { didResolutionMetadata: { …(4) } } to have property 'didDocument'
                        at Context.<anonymous> (file:///home/runner/work/did-resolution-test-suite/did-resolution-test-suite/tests/4-did-resolution.js:202:42)
🚫
Test skipped.

At Risk