Wallet
Set Wallet Policy
Set the agent wallet’s spend policy
POST
Replaces the wallet’s spend policy.
With a rolling daily cap:
policy.perTxMax is required.
Why there is no approval queue
Unlike cards and trading, no wallet or payments endpoint is approval-gated. That is deliberate. The spend control is structural:- Balance is the budget — an agent can never spend what isn’t in the wallet.
perTxMaxis enforced twice — once at runtime, and again as a static account policy inside the custody plane at signing time. The second check holds even if the agent runtime is fully compromised, which an approval prompt would not.dailyBudget(optional) is a rolling per-UTC-day runtime counter.
perTxMax.
When
perTxMax changes, this endpoint re-issues the static custody-plane policy as
well as updating the stored one, so point 2 holds at the value you set here rather
than the wallet’s create-time cap.The re-issue runs before the new policy is persisted, and fails closed: if the
custody plane rejects it you get a 500 internal_error
(WalletPolicyAttachFailed) and nothing is stored. A stored cap the custody
plane isn’t holding would make perTxMax “enforced twice” at two different
numbers, so the endpoint refuses rather than half-apply. Retry once custody is
reachable.