> ## Documentation Index
> Fetch the complete documentation index at: https://docs.openpayload.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Delete a DID

> Submit a signed identity deletion request

This endpoint submits the `delete_did` control operation for an OpenPayload DID. Use it only when the identity is meant to be removed from the registry. For a device retirement, use [Tombstone a device](/api-reference/directory/dids/tombstone-device) instead.

## Request

<ParamField path="did" type="string" required>
  The complete DID to delete, URL-encoded in the path.
</ParamField>

The JSON body must include the same DID-key proof fields as [Deactivate a DID](/api-reference/directory/dids/deactivate), with `action: "delete_did"`: `did`, current `control_nonce` as `nonce`, future `valid_until`, authorized `signer_key_id`, `canonical_payload`, and `signature`. Sign the locally constructed canonical payload bytes. The Directory rejects a path and body DID mismatch, stale nonce, expired request, or mismatched payload.

The `202 Accepted` response contains the DID, `status: "accepted"`, `extrinsic: "apply_control_with_proof"`, and `tx_hash`. It confirms submission only. Verify the resulting registry state after chain finalization. A deleted DID may no longer resolve; clients must not assume a `202` response has already removed it.

## Straight to the point

```text theme={null}
DELETE /dids/{did}
Action: delete_did
Accepted submission: 202; verify after finalization
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.