curl --request POST \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/aliases" \
--header "Content-Type: application/json" \
--data '{
"did": "did:openpayload:1111111111111111111111",
"action": "add_alias",
"alias": "river.stone",
"nonce": "<nonce>",
"valid_until": "<future-epoch-milliseconds>",
"signer_key_id": "root",
"canonical_payload": "<payload>",
"signature": "<signature>"
}'
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"action": "add_alias",
"alias": "river.stone",
"tx_hash": "<transaction-hash>",
"message": "Alias update submitted"
}
Aliases
Add an alias
Add a public alias to a DID.
curl --request POST \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/aliases" \
--header "Content-Type: application/json" \
--data '{
"did": "did:openpayload:1111111111111111111111",
"action": "add_alias",
"alias": "river.stone",
"nonce": "<nonce>",
"valid_until": "<future-epoch-milliseconds>",
"signer_key_id": "root",
"canonical_payload": "<payload>",
"signature": "<signature>"
}'
{
"status": "accepted",
"did": "did:openpayload:1111111111111111111111",
"action": "add_alias",
"alias": "river.stone",
"tx_hash": "<transaction-hash>",
"message": "Alias update submitted"
}
Add a public alias to a DID.
An alias is a human-friendly public name. It does not replace the DID and must not be used as the cryptographic identity without resolving it first.
Path parameters
string
required
The DID that owns the alias.
Request body
string
required
The DID that owns the alias. It must match the path.
string
required
The operation name. Use
add_alias.string
required
The lowercase alias to add. 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 POST \
--url "https://directory.example.com/dids/did%3Aopenpayload%3A1111111111111111111111/aliases" \
--header "Content-Type: application/json" \
--data '{
"did": "did:openpayload:1111111111111111111111",
"action": "add_alias",
"alias": "river.stone",
"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": "add_alias",
"alias": "river.stone",
"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:
POST - Action:
add_alias - Alias normalization: lowercase, maximum 64 characters
- Reserved characters:
@and#are prohibited - Signed payload: canonical SCALE alias authorization bytes

