Loading…
Demo · Authorization Boundary
Two block paths: spend over delegation, and a hard-deny. Both return a signed v2.2 receipt with `kind: 'blocked'`. The audit chain is the proof of the block — not the absence of one.
The flagship interactive version is at /demos/sandbox — see executed and blocked side-by-side.
The agent tries to transfer $99,999 with a delegation that caps spend at $100. The Authorization Boundary halts the action; the receipt records the block in its `entries[]` audit chain.
curl https://executionprotocol.dev/api/sandbox/execute \
-H "Content-Type: application/json" \
-H "EP-Mode: sandbox" \
-d '{
"archetype": "PAYMENT_TRANSFER",
"constraints": {
"recipient": "vendor/acme_corp",
"amount_usd": "99999.00",
"max_total_usd": "100.00"
}
}'curl https://executionprotocol.dev/api/sandbox/execute \
-H "Content-Type: application/json" \
-H "EP-Mode: sandbox" \
-d '{
"archetype": "PAYMENT_TRANSFER",
"constraints": {
"recipient": "vendor/acme_corp",
"amount_usd": "99999.00",
"max_total_usd": "100.00"
}
}'{
"sandbox": true,
"kind": "blocked",
"transaction_id": "txn_…",
"receipt_id": "…",
"receipt_url": "https://executionprotocol.dev/r/<sig>",
"receipt_url_short": "https://executionprotocol.dev/r/<short>",
"message": "This action could not be completed. The gateway logged the cause for review.",
"correlation_id": "req_…",
"details": {
"archetype": "PAYMENT_TRANSFER",
"payment_status": "not_charged",
"event_type": "ORIGINAL"
},
"receipt": {
/* full v2.2 receipt — entries[] records the boundary stage's
error: "EP_DELEGATION_BLOCK", paymentStatus: "not_charged" */
}
}{
"sandbox": true,
"kind": "blocked",
"transaction_id": "txn_…",
"receipt_id": "…",
"receipt_url": "https://executionprotocol.dev/r/<sig>",
"receipt_url_short": "https://executionprotocol.dev/r/<short>",
"message": "This action could not be completed. The gateway logged the cause for review.",
"correlation_id": "req_…",
"details": {
"archetype": "PAYMENT_TRANSFER",
"payment_status": "not_charged",
"event_type": "ORIGINAL"
},
"receipt": {
/* full v2.2 receipt — entries[] records the boundary stage's
error: "EP_DELEGATION_BLOCK", paymentStatus: "not_charged" */
}
}Some actions are never allowed regardless of delegation. The hard-deny list covers PII export, audit-log mutation, and boundary self-modification.
curl https://executionprotocol.dev/api/sandbox/execute \
-H "Content-Type: application/json" \
-H "EP-Mode: sandbox" \
-d '{
"archetype": "DATA_EXPORT",
"constraints": {
"dataset": "customers/all-pii",
"destination": "public-bucket://exports"
}
}'curl https://executionprotocol.dev/api/sandbox/execute \
-H "Content-Type: application/json" \
-H "EP-Mode: sandbox" \
-d '{
"archetype": "DATA_EXPORT",
"constraints": {
"dataset": "customers/all-pii",
"destination": "public-bucket://exports"
}
}'{
"sandbox": true,
"kind": "blocked",
"transaction_id": "txn_…",
"message": "This action could not be completed. The gateway logged the cause for review.",
"details": {
"archetype": "DATA_EXPORT",
"payment_status": "not_charged",
"event_type": "ORIGINAL"
},
"receipt": {
/* entries[].boundary records error: "EP_BOUNDARY_BLOCK"
— the dataset matched the protocol's hard-deny list */
}
}{
"sandbox": true,
"kind": "blocked",
"transaction_id": "txn_…",
"message": "This action could not be completed. The gateway logged the cause for review.",
"details": {
"archetype": "DATA_EXPORT",
"payment_status": "not_charged",
"event_type": "ORIGINAL"
},
"receipt": {
/* entries[].boundary records error: "EP_BOUNDARY_BLOCK"
— the dataset matched the protocol's hard-deny list */
}
}