7. Resolution
All conformant DID resolvers MUST implement the DID resolution functions for at least one DID method and MUST be able to return a DID document in at least one conformant representation.
7.1 DID Resolution
did - This is the DID to resolve. This input is REQUIRED and the value MUST be a conformant DID as defined in § 3.1 DID Syntax.
resolutionOptions - A metadata structure containing properties defined in § 7.1.1 DID Resolution Options. This input is REQUIRED, but the structure MAY be empty.
didResolutionMetadata - A metadata structure consisting of values relating to the results of the DID resolution process which typically changes between invocations of the resolve
and resolveRepresentation
functions, as it represents data about the resolution process itself. This structure is REQUIRED, and in the case of an error in the resolution process, this MUST NOT be empty.
If resolveRepresentation
was called, this structure MUST contain a contentType
property containing the Media Type of the representation found in the didDocumentStream
.
If the resolution is not successful, this structure MUST contain an error
property describing the error.
didDocument - If the resolution is successful, and if the resolve
function was called, this MUST be a DID document abstract data model (a map) as described in § 4. Data Model that is capable of being transformed into a conforming DID Document (representation), using the production rules specified by the representation.
The value of id
in the resolved DID document MUST match the DID that was resolved.
If the resolution is unsuccessful, this value MUST be empty.
didDocumentStream - If the resolution is successful, and if the resolveRepresentation
function was called, this MUST be a byte stream of the resolved DID document in one of the conformant representations.
If the resolution is unsuccessful, this value MUST be an empty stream.
didDocumentMetadata - If the resolution is successful, this MUST be a metadata structure.
If the resolution is unsuccessful, this output MUST be an empty metadata structure.
7.1.1 DID Resolution Options
accept - The Media Type MUST be expressed as an ASCII string.
This property is OPTIONAL for the resolveRepresentation
function and MUST NOT be used with the resolve
function.
7.1.2 DID Resolution Metadata
contentType - The Media Type of the returned didDocumentStream
. This property is REQUIRED if resolution is successful and if the resolveRepresentation
function was called.
This property MUST NOT be present if the resolve
function was called.
The value of this property MUST be an ASCII string that is the Media Type of the conformant representations.
The caller of the resolveRepresentation
function MUST use this value when determining how to parse and process the didDocumentStream
returned by this function into the data model.
error - The error code from the resolution process. This property is REQUIRED when there is an error in the resolution process.
The value of this property MUST be a single keyword ASCII string.
**invalidDid
**The DID supplied to the DID resolution function does not conform to valid syntax. (See § 3.1 DID Syntax.)
**notFound
**The DID resolver was unable to find the DID document resulting from this resolution request.
**representationNotSupported
**This error code is returned if the representation requested via the accept
input metadata property is not supported by the DID method and/or DID resolver implementation. \
7.1.3 DID Document Metadata
The possible properties within this structure and their possible values SHOULD be registered in the DID Specification Registries [DID-SPEC-REGISTRIES]. This specification defines the following common properties.
7.1.3 DID Document Metadata
created - The value of the property MUST be a string formatted as an XML Datetime normalized to UTC 00:00:00 and without sub-second decimal precision. For example: 2020-12-20T19:17:47Z
.
updated - The value of the property MUST follow the same formatting rules as the created
property.
deactivated - If a DID has been deactivated, DID document metadata MUST include this property with the boolean value true
. If a DID has not been deactivated, this property is OPTIONAL, but if included, MUST have the boolean value false
.
nextUpdate - The value of the property MUST follow the same formatting rules as the created
property.
versionId - The value of the property MUST be an ASCII string.
nextVersionId - The value of the property MUST be an ASCII string.
The value of equivalentId
MUST be a set where each item in the list is a string that conforms to the rules in Section § 3.1 DID Syntax. Each equivalentId DID value MUST be produced by, and a form of, the same DID Method as the id property value.
A conforming DID Method specification MUST guarantee that each equivalentId
value is logically equivalent to the id
property value.
equivalentId
is a much stronger form of equivalence than alsoKnownAs
because the equivalence MUST be guaranteed by the governing DID method.
The value of canonicalId
MUST be a string that conforms to the rules in Section § 3.1 DID Syntax. A canonicalId
value MUST be produced by, and a form of, the same DID Method as the id
property value.
A conforming DID Method specification MUST guarantee that the canonicalId
value is logically equivalent to the id
property value.