Test in the sandbox
The sandbox lets you make each payment outcome happen once, on test money (test USDC on Base Sepolia), so you can check that your agent reads each one correctly before it handles real money.
The sandbox Default Policy lets an agent send test funds to the Catena counterparty with no spending rules, which means every funded payment to Catena will complete. To produce the other outcomes, an admin adds rules to that policy. Changes to sandbox policies do not impact your production account's policies.
Tests
Below are the tests you can run in the sandbox, and what your agent will see for each one. To change your agent's policy, open Policies in the console, open the policy, and choose Edit. Spending rules are under Payments, and the counterparties an agent can pay are under Counterparties. When you're done, choose Save policy.
| Test | Agent sees (status / resolution) |
Outcome |
|---|---|---|
| Ask your agent to send $1.00 to Catena under the Default Policy. | processing, then completed / completed |
Completed |
| Set your agent's policy to require approval at $2.00, then ask your agent to send $2.50. | pending / null, and reasons names the rule |
Waiting for approval |
| While a payment waits for approval, approve it under Approvals in the console. | processing, then completed / completed |
Approved |
| While a payment waits for approval, deny it under Approvals in the console. | blocked / denied |
Denied |
| Set your agent's policy to block payments over $3.00, then ask your agent to send $4.00. | blocked / blocked, and reasons names the rule and the amount |
Blocked by a rule |
| Ask your agent to note Catena's rail ID. Then remove Catena from Who agents can pay in your agent's policy, and ask your agent to send $1.00 to that rail. | blocked / blocked, and reasons says the counterparty is not approved |
Counterparty not allowed |
| Ask your agent to send more than the account's available balance. | No intent. The CLI exits 1 with movement_insufficient_funds. |
Not enough funds |
| While a payment waits for approval, ask your agent to cancel it. | blocked / cancelled |
Cancelled |
| Leave a payment waiting for approval for 24 hours. | failed / expired |
Expired |
| Set Temporary grant requests to Require approval in your agent's policy. After a send is blocked, ask your agent to request a higher limit for all accounts, approve the request under Approvals, and ask your agent to send again. | The request is pending, then completed, and the second send goes through |
Temporary grant |
| Set New counterparties to Require approval in your agent's policy. Ask your agent to add a wallet counterparty on Base Sepolia with an address you control, then approve it under Approvals. | pending, then completed. The agent can pay the counterparty once you add it under Who agents can pay. |
New counterparty |
| Ask your agent to send $1.00 twice with the same idempotency key. | The same intent both times, with replayed: true, and no second payment |
Retry with the same key |
We cover what each status means, and how to poll, in Intents and retries.