Update or Deactivate DID

Update or deactivate a DID

Users are able to update DID Documents for various reasons, such as to include a new section or to rotate the Verification Method keys within the DID Document.

With the /did/update API, users are able to input either:

  1. The section of the DID Document they would like to update; or

  2. The full updated DID Document body.

Update a DID Document.

This endpoint updates a DID Document. As an input, it can take JUST the sections/parameters that need to be updated in the DID Document (in this scenario, it fetches the current DID Document and applies the updated section). Alternatively, it take the fully-assembled DID Document with updated sections as well as unchanged sections.

POST/did/update
Body
didstring

DID identifier to be updated.

Example: "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
servicearray of Service (object)

Service section of the DID Document.

verificationMethodarray of VerificationMethod (object)

Verification Method section of the DID Document.

authenticationarray of string

Authentication section of the DID Document.

publicKeyHexsarray of string

List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.

didDocumentDidDocument (object)

This input field contains either a complete DID document, or an incremental change (diff) to a DID document. See Universal DID Registrar specification.

Response

The request was successful.

Body
didstring
controllerKeyIdstring

The default key id of which is the key associated with the first verificationMethod

keysarray of object

The list of keys associated with the list of verificationMethod's of DIDDocument

servicesarray of Service (object)
controllerKeyRefsarray of string

The list of keyRefs which were used for signing the transaction

controllerKeysarray of string

The list of all possible keys, inlcuding all controller's keys

Request
const response = await fetch('/did/update', {
    method: 'POST',
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "did": "text",
  "controllerKeyId": "text",
  "keys": [],
  "services": [
    {
      "id": "did:cheqd:mainnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
      "type": "LinkedDomains",
      "serviceEndpoint": [
        "https://example.com"
      ]
    }
  ],
  "controllerKeyRefs": [
    "text"
  ],
  "controllerKeys": [
    "text"
  ]
}

Users are also able to deactivate DID Documents to prevent further updates and to provide client applications the relevant information that the DID Document is no longer actively used.

A /did/deactivate request must be signed by all of the Verification Method keys listed in the DID Document.

Deactivate a DID Document.

This endpoint deactivates a DID Document by taking the DID identifier as input. Must be called and signed by the DID owner.

POST/did/deactivate/{did}
Path parameters
did*string

DID identifier to deactivate.

Body
publicKeyHexsarray of string

List of key references (publicKeys) which will be used for signing the message. The should be in hexadecimal format and placed in the wallet of current user.

Response

The request was successful.

Body
@contextstring
Example: "https://w3id.org/did-resolution/v1"
didDidResolutionMetadataDidResolutionMetadata (object)
didDocumentDidDocument (object)

This input field contains either a complete DID document, or an incremental change (diff) to a DID document. See Universal DID Registrar specification.

didDocumentMetadataDeactivatedDidDocumentMetadata (object)
Request
const response = await fetch('/did/deactivate/{did}', {
    method: 'POST',
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    body: JSON.stringify({}),
});
const data = await response.json();
Response
{
  "@context": "https://w3id.org/did-resolution/v1",
  "didDidResolutionMetadata": {
    "contentType": "application/did+ld+json",
    "retrieved": "2021-09-01T12:00:00Z",
    "did": {
      "didString": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
      "method": "cheqd",
      "methodSpecificId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47"
    }
  },
  "didDocument": {
    "@context": [
      "https://www.w3.org/ns/did/v1"
    ],
    "id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
    "controller": [
      "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0"
    ],
    "verificationMethod": [
      {
        "id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1",
        "type": "Ed25519VerificationKey2018",
        "controller": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0",
        "publicKeyBase58": "z6MkkVbyHJLLjdjU5B62DaJ4mkdMdUkttf9UqySSkA9bVTeZ"
      }
    ],
    "authentication": [
      "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#key-1"
    ],
    "service": [
      {
        "id": "did:cheqd:testnet:7bf81a20-633c-4cc7-bc4a-5a45801005e0#service-1",
        "type": "LinkedDomains",
        "serviceEndpoint": [
          "https://example.com"
        ]
      }
    ]
  },
  "didDocumentMetadata": {
    "created": "2021-09-01T12:00:00Z",
    "deactivated": true,
    "updated": "2021-09-10T12:00:00Z",
    "versionId": "3ccde6ba-6ba5-56f2-9f4f-8825561a9860",
    "linkedResourceMetadata": [
      {
        "resourceURI": "did:cheqd:testnet:55dbc8bf-fba3-4117-855c-1e0dc1d3bb47/resources/398cee0a-efac-4643-9f4c-74c48c72a14b",
        "resourceCollectionId": "55dbc8bf-fba3-4117-855c-1e0dc1d3bb47",
        "resourceId": "398cee0a-efac-4643-9f4c-74c48c72a14b",
        "resourceName": "cheqd-issuer-logo",
        "resourceType": "CredentialArtwork",
        "mediaType": "image/png",
        "resourceVersion": "1.0",
        "checksum": "a95380f460e63ad939541a57aecbfd795fcd37c6d78ee86c885340e33a91b559",
        "created": "2021-09-01T12:00:00Z",
        "nextVersionId": "d4829ac7-4566-478c-a408-b44767eddadc",
        "previousVersionId": "ad7a8442-3531-46eb-a024-53953ec6e4ff"
      }
    ]
  }
}

Last updated