How to cap an AI agent's spending
Step by step: approve USDC, set caps and expiry, watch receipts, and stop the agent at any time.
Set a budget
1. Sign in with your wallet
Open the SingIt app and connect the wallet you want to use. Sign in with that wallet. A sign-in message establishes the account; it does not itself grant USDC spending permission. Check the network before setting up your budget. Base and Solana use different approval mechanisms, so review the section for the network you choose.
2. Set daily, per-purchase and lifetime limits
Choose the daily cap, the per-purchase cap and how many days the budget lasts. Use a per-purchase cap that fits one intended purchase and a daily cap that fits the total activity you expect. On Base, the day is a UTC calendar day. The daily limit resets at 00:00 UTC. It is not measured from the time you sign in or the time of the first purchase.
On Base, SingIt deploys a limiter for you and pays its deployment gas. The caps and expiry are fixed in that contract. Review them before approval. Nothing in the limiter can raise them later: changing the policy means a new limiter and a new approval. The limiter itself holds no tokens.
3. Approve USDC once
Approve USDC from your wallet to your Base limiter. The approval gives it permission to transfer within the approved total. Each spend uses transferFrom from the owner's wallet to the payee. Only the configured agent can call the spending function. The contract rejects a purchase above either cap, after expiry or while paused.
The approval amount and the caps serve different purposes. The approval is a total permission on the token. The daily cap limits a calendar day's spending, while the per-purchase cap limits each purchase. Review all of them together. An approval alone is not a purchase receipt.
4. Let SingIt's agent buy and review receipts
After approval, SingIt's own agent buys inside the limits in the SingIt app. Watch purchases and receipts in the app. A receipt helps you review what was purchased; it does not change the policy you approved. AgentAllowance does not impose these limits on a wallet that signs x402 payments by itself. For direct API calls, also read the per-call offer before signing.
5. Pause or revoke
Pause from the app or wallet when you want to stop a Base limiter. Pause is a permanent emergency stop. To change limits, revoke and set up a new allowance. The guardian watcher can also pause, but cannot move funds or raise limits. To remove token permission, approve zero from your wallet. You can use revoke.cash without relying on SingIt.
Solana setup and stopping
Solana uses a delegate approval. Your wallet approves the agent as SPL delegate on your USDC account for a total. The chain enforces that total; one Revoke ends it. The daily limit, the per-purchase limit and the expiry are enforced by SingIt's server, not on-chain. The stop button records a pause and refuses new purchases. It leaves the delegate approval in place. Only a new approval signed by your wallet lifts the pause. A purchase reserved before the pause may still settle; use Revoke to remove the approval.
FAQ
When does the Base daily cap reset?
- At 00:00 UTC. The contract counts calendar days, not a rolling 24 hours.
Does signing in approve spending?
- No. Sign-in and the USDC approval are separate steps.
Where do I review purchases?
- The SingIt app shows purchases and receipts.
How do I revoke on Base?
- Approve zero from your wallet, including through revoke.cash without SingIt.
Can I resume a paused Base limiter?
- No. Create a new limiter and make a new approval.