curl --request PATCH \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/aliases/river.stone" \
--header "Content-Type: application/json" \
--data '{
"did": "did:openpayload:1111111111111111111111",
"action": "update_alias",
"old_alias": "river.stone",
"new_alias": "river.rock",
"nonce": "<nonce>",
"valid_until": "<future-epoch-milliseconds>",
"signer_key_id": "root",
"canonical_payload": "<payload>",
"signature": "<signature>"
}'
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"action": "update_alias",
"old_alias": "river.stone",
"new_alias": "river.rock",
"tx_hash": "<transaction-hash>",
"message": "Alias update submitted"
}
Aliases
Update an alias
Replace an existing public alias.
curl --request PATCH \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/aliases/river.stone" \
--header "Content-Type: application/json" \
--data '{
"did": "did:openpayload:1111111111111111111111",
"action": "update_alias",
"old_alias": "river.stone",
"new_alias": "river.rock",
"nonce": "<nonce>",
"valid_until": "<future-epoch-milliseconds>",
"signer_key_id": "root",
"canonical_payload": "<payload>",
"signature": "<signature>"
}'
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"action": "update_alias",
"old_alias": "river.stone",
"new_alias": "river.rock",
"tx_hash": "<transaction-hash>",
"message": "Alias update submitted"
}
Replace an existing public alias.
This operation atomically replaces
old_alias with new_alias; it is not two independent requests.
Path parameters
string
required
The DID that owns the alias.
string
required
The existing alias.
Request body
string
required
The DID that owns the alias. It must match the path.
string
required
The operation name. Use
update_alias.string
required
The existing alias. It must match the path.
string
required
The lowercase replacement alias. It cannot contain
@ or #; those characters are reserved for delivery-target and DID-document syntax.string
required
The request nonce.
string
required
The authorization expiration as an ISO-8601 timestamp or unsigned Unix-millisecond string. The canonical payload encodes it as
u64 milliseconds.string
The public signing-key identifier. Defaults to
root.string
required
The canonical SCALE
AliasAuthorizationPayload, encoded as 0x-prefixed hex or Base64.string
required
The authorization signature.
curl --request PATCH \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/aliases/river.stone" \
--header "Content-Type: application/json" \
--data '{
"did": "did:openpayload:1111111111111111111111",
"action": "update_alias",
"old_alias": "river.stone",
"new_alias": "river.rock",
"nonce": "<nonce>",
"valid_until": "<future-epoch-milliseconds>",
"signer_key_id": "root",
"canonical_payload": "<payload>",
"signature": "<signature>"
}'
Response
string
required
The submission status.
string
required
The affected DID.
string
required
The alias operation.
string
required
The transaction hash.
string
required
A human-readable submission result.
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"action": "update_alias",
"old_alias": "river.stone",
"new_alias": "river.rock",
"tx_hash": "<transaction-hash>",
"message": "Alias update submitted"
}
202 Accepted means the Directory accepted the request for processing. It does not confirm final settlement.Straight to the point
- Method:
PATCH - Action:
update_alias - Path alias must equal
old_alias - New alias cannot contain
@or# - Signed payload: canonical SCALE alias authorization bytes

