curl --request PUT \
--url "https://directory.example.com/personas/example.com/delivery-constraints" \
--header "Content-Type: application/json" \
--data '{
"persona": "example.com",
"action": "set_persona_delivery_constraints",
"delivery_constraints": {
"requested_cache_seconds": 43200,
"max_http_envelope_bytes": 12582912,
"max_unchunked_message_bytes": 8388608,
"max_chunk_bytes": 1048576,
"max_replicas": 2
},
"nonce": "<policy-nonce>",
"valid_until": "<epoch-milliseconds>",
"signer_key_id": "did:openpayload:1111111111111111111111#keys-1",
"canonical_payload": "<encoded-scale-payload>",
"signature": "<base64-ed25519-signature>"
}'
Personas
Set Persona delivery constraints
Change message, chunk, replica, and clock-time limits for a Persona
curl --request PUT \
--url "https://directory.example.com/personas/example.com/delivery-constraints" \
--header "Content-Type: application/json" \
--data '{
"persona": "example.com",
"action": "set_persona_delivery_constraints",
"delivery_constraints": {
"requested_cache_seconds": 43200,
"max_http_envelope_bytes": 12582912,
"max_unchunked_message_bytes": 8388608,
"max_chunk_bytes": 1048576,
"max_replicas": 2
},
"nonce": "<policy-nonce>",
"valid_until": "<epoch-milliseconds>",
"signer_key_id": "did:openpayload:1111111111111111111111#keys-1",
"canonical_payload": "<encoded-scale-payload>",
"signature": "<base64-ed25519-signature>"
}'
Update the delivery constraints owned by a Persona. A Persona policy rule may further narrow these limits for a matching tag or recipient.
This request requires the current Persona
Send every active constraint and omit the read-only
policy_nonce and one active Persona-controller signature. Persona v1 uses a threshold of 1.
Request
string
required
The registered active Persona.
object
required
Positive values governed by the network ceilings. A requested TTL may exceed 48 hours, but the derived effective TTL cannot.
effective_ttl_seconds field. Also omit the deprecated max_message_bytes and max_chunks compatibility fields; the Directory supplies their unbounded SCALE sentinels.
curl --request PUT \
--url "https://directory.example.com/personas/example.com/delivery-constraints" \
--header "Content-Type: application/json" \
--data '{
"persona": "example.com",
"action": "set_persona_delivery_constraints",
"delivery_constraints": {
"requested_cache_seconds": 43200,
"max_http_envelope_bytes": 12582912,
"max_unchunked_message_bytes": 8388608,
"max_chunk_bytes": 1048576,
"max_replicas": 2
},
"nonce": "<policy-nonce>",
"valid_until": "<epoch-milliseconds>",
"signer_key_id": "did:openpayload:1111111111111111111111#keys-1",
"canonical_payload": "<encoded-scale-payload>",
"signature": "<base64-ed25519-signature>"
}'
Response
202 Response
{
"status": "accepted",
"persona": "example.com",
"extrinsic": "set_persona_delivery_constraints",
"tx_hash": "<transaction-hash>"
}
Straight to the point
PUT /personas/{persona}/delivery-constraints
- Action:
set_persona_delivery_constraints - Authorization: one active Persona controller
- Above-network active byte or replica values:
400 invalid_delivery_constraints - TTL above 48 hours: accepted as requested, effective value clamped to 48 hours
- Accepted submission:
202

