- Asked for
- refund £50,000.00 to cust_123
- Gateway checked
- customer cust_123, verified true observed
- Policy
- refunds to £1,000 for a verified customer sha256 ba4e4461ffc4…
- Decision
- deny · no permit policy matched
- Agent
- support-agent attested
- Authorized by
- user_456 a grant they signed
- Log
- leaf 2 of 2 · root 0735e94bba4c…
The refund demo
bun run demo runs a support agent against a test Stripe server. Each call writes a signed receipt to your disk. Then the demo verifies the receipts and edits one.
> refund £500 to a verified customer EXECUTED {"refund_id":"re_b5db9a9e","customer_id":"cust_123","amount":50000,"status":"succeeded"} receipt a8094805-e7d0-48da-bf05-9dcfdfe7a1dd --- a8094805-e7d0-48da-bf05-9dcfdfe7a1dd PASS receipt signature (issuer key) (keyid 13221dd037cb) PASS delegation signature (principal key) (signed by 0b715318f782) PASS policy decision consistent with execution (allow -> executed) PASS log inclusion proof (leaf 0 of 1, root 4901cb4cdc68) … 15 more checks RESULT: VERIFIED ISSUER: gateway, enforced outside the agent's process; the agent could neither skip nor forge this receipt field provenance value principal attested user_456 agent attested support-agent model claimed claude-fable-5-1 tool observed stripe.refund args claimed {"amount":50000,"customer_id":"cust_123"} fact.customer observed {"email":"alex@example.com","id":"cust_123","verified":true} policy observed allow [policy1] policy ba4e4461ffc4 consumed observed (no facts shown before this call) execution observed executed (carries an upstream signature; pass --upstream-key to check it)
Source: packages/receipts/scripts/demo.ts. Receipt ids change on every run.