curl --request DELETE \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/devices/mobile-01" \
--header "Content-Type: application/json" \
--data '{"did":"did:openpayload:1111111111111111111111","action":"remove_device","nonce":"<control_nonce>","valid_until":"<epoch-millis>","signer_key_id":"<authorized-key-id>","canonical_payload":"<payload>","signature":"<signature>"}'
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"extrinsic": "apply_control_with_proof",
"tx_hash": "<transaction-hash>",
"message": "Chain extrinsic submitted"
}
DIDs
Remove a device
Permanently remove a device entry from a public OpenPayload DID record
curl --request DELETE \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/devices/mobile-01" \
--header "Content-Type: application/json" \
--data '{"did":"did:openpayload:1111111111111111111111","action":"remove_device","nonce":"<control_nonce>","valid_until":"<epoch-millis>","signer_key_id":"<authorized-key-id>","canonical_payload":"<payload>","signature":"<signature>"}'
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"extrinsic": "apply_control_with_proof",
"tx_hash": "<transaction-hash>",
"message": "Chain extrinsic submitted"
}
Removing and tombstoning are different operations.
The request body is required and carries a DID-key proof with action
- Remove deletes the device entry from the active device list.
- Tombstone preserves a public record that the device was retired.
remove_device operation. If other clients need to recognize a retired or compromised device, use Tombstone a device instead.
Request
string
required
The DID that owns the device.
string
required
The device identifier to remove.
remove_device, the current
control_nonce, valid_until, signer_key_id, canonical_payload, and signature. See
Authorize a Directory update.
curl --request DELETE \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/devices/mobile-01" \
--header "Content-Type: application/json" \
--data '{"did":"did:openpayload:1111111111111111111111","action":"remove_device","nonce":"<control_nonce>","valid_until":"<epoch-millis>","signer_key_id":"<authorized-key-id>","canonical_payload":"<payload>","signature":"<signature>"}'
Response
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"extrinsic": "apply_control_with_proof",
"tx_hash": "<transaction-hash>",
"message": "Chain extrinsic submitted"
}
202 confirms submission, not final chain settlement.Straight to the point
DELETE /dids/{did}/devices/{deviceId}
- DID-key proof body required
- Operation:
remove_device - Accepted:
202

