---
title: "Execute a DID operation"
method: POST
path: "/execute"
tags: ["Universal Registrar"]
---

# Execute a DID operation

`POST /execute`

This endpoint executes an operation that uses the DID but is not related to the standard create/update/deactivate operations. As input it takes the existing DID, an operation, operation data, plus optional DID registration [options](https://identity.foundation/did-registration/#options) and [secrets](https://identity.foundation/did-registration/#secret) needed to execute the operation. The output is a state object that represents the current state of the execution process, and an operation result.

See the [DID Registration](https://identity.foundation/did-registration/#execute) specification for additional details.

## Request body

- ExecuteRequest — Input fields for a DID operation.
  - `jobId` union — This input field is used to keep track of an ongoing DID operation process. See <a href="https://identity.foundation/did-registration/#jobid">https://identity.foundation/did-registration/#jobid</a>.
    - unknown
    - string
    - object
  - `options` RequestOptions — This input field contains an object with various options for the DID operation, such as the network where the DID operation should be executed. See <a href="https://identity.foundation/did-registration/#options">https://identity.foundation/did-registration/#options</a>.
    - `clientSecretMode` boolean
    - `storeSecrets` boolean
    - `returnSecrets` boolean
    - `requestVerificationMethod` VerificationMethodTemplate[]
      - `id` string
      - `type` string
      - `controller` string
      - `purpose` string[]
      - `publicKeyJwk` union
        - object
        - unknown
  - `secret` RequestSecret — This input field contains an object with DID controller keys and other secrets needed for performing the DID operation. See https://identity.foundation/did-registration/#secret.
    - `verificationMethod` union[]
      - union
        - VerificationMethodPublicData — A verification method public data object, see https://identity.foundation/did-registration/#verification-method-public-data
          - `id` string
          - `type` string, required
          - `controller` string
          - `purpose` string[]
          - `publicKeyJwk` object
          - `publicKeyMultibase` string
        - VerificationMethodPrivateData — A verification method private data object, see https://identity.foundation/did-registration/#verification-method-private-data
          - `id` string
          - `type` string, required
          - `controller` string
          - `purpose` string[]
          - `privateKeyJwk` object
          - `privateKeyMultibase` string
    - `signingResponse` union
      - object
      - unknown
    - `decryptionResponse` union
      - object
      - unknown
  - `did` string, required — This input field indicates the DID that is the target of the DID execute operation.
  - `operation` string[] — This input field indicates which operation should be executed. See <a href="https://identity.foundation/did-registration/#operation">https://identity.foundation/did-registration/#operation</a>.
  - `operationData` object[] — This input field contains additional data. See <a href="https://identity.foundation/did-registration/#operationdata">https://identity.foundation/did-registration/#operationdata</a>.

## Response `200`

The request was successful, and the operation may or may not be fully executed yet, as indicated by the "didState.state" and "jobId" output fields. Additional state information plus metadata are available in the response body.

- ExecuteState — The state after a DID operation.
  - `jobId` union
    - unknown
    - string
    - object
  - `didState` DidState, required — The current state of a DID.
    - `state` string, required
    - `did` string
    - `secret` DidStateSecret — This output field contains an object with DID controller keys and other secrets. See https://identity.foundation/did-registration/#didstatesecret.
      - `verificationMethod` union[]
        - union
          - VerificationMethodPublicData — A verification method public data object, see https://identity.foundation/did-registration/#verification-method-public-data
            - `id` string
            - `type` string, required
            - `controller` string
            - `purpose` string[]
            - `publicKeyJwk` object
            - `publicKeyMultibase` string
          - VerificationMethodPrivateData — A verification method private data object, see https://identity.foundation/did-registration/#verification-method-private-data
            - `id` string
            - `type` string, required
            - `controller` string
            - `purpose` string[]
            - `privateKeyJwk` object
            - `privateKeyMultibase` string
          - VerificationMethodTemplate[]
            - `id` string
            - `type` string
            - `controller` string
            - `purpose` string[]
            - `publicKeyJwk` union
              - …
    - `didDocument` DidDocument
      - `id` string
      - `controller` union
        - unknown
        - string
        - string[]
      - `verificationMethod` object[]
      - `service` object[]
  - `didRegistrationMetadata` object
  - `didDocumentMetadata` object
  - `operationResult` object[] — This output field contains the result of the operation. See <a href="https://identity.foundation/did-registration/#operationdata">https://identity.foundation/did-registration/#operationdata</a>.

## Other responses

- `400` — A problem with the input fields has occurred. Additional state information plus metadata may be available in the response body.
- `500` — An internal error has occurred. Additional state information plus metadata may be available in the response body.

---

[API](https://skmtc.net/decentralized-identity/apis/universal-registrar.md) · [All operations](https://skmtc.net/decentralized-identity/apis/universal-registrar/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/decentralized-identity/universal-registrar/versions/bf85477559de/schema)
