Staying in control
Is it safe to approve a token allowance for an AI agent?
What an ERC-20 allowance does and doesn't limit when it powers an agent's unattended payments, and how to size and constrain one.
An ERC-20 allowance lets one spender move up to a set amount of a token from your wallet, enforced by the token contract. It caps how much, not where to, so treat the cap as money you could lose and pair it with something that constrains the recipient.
Why is this harder than it sounds?
Unattended agent payments need something to sign without you, and an allowance is the standard, well-understood way to do that without giving up your key. EIP-20 defines approve as letting the spender withdraw from your account multiple times, up to the amount. That's a real limit, enforced by code nobody can override. But nothing in the standard says who the spender may send to. Whoever controls the spender decides the destination within the cap, so you're trusting both the cap and the spender's controls.
How do you do it?
- Know who the spender is. Check which address you're approving and who controls it. That party can move tokens up to the cap.
- Size the cap as a float. Approve what you'd accept losing, not your whole balance. You can raise it later.
- Constrain the destination separately. Use a recipient allowlist on the policy that decides payments, so unattended payments can only go to payees you chose.
- Change an allowance via zero. EIP-20 suggests user interfaces set an allowance to 0 before setting a new non-zero value for the same spender, to avoid a known race.
- Revoke when you stop. Approve zero when you no longer need unattended payments.
What it does not mean
- An allowance isn't a transfer. Nothing moves when you approve; the spender moves tokens later, up to the cap.
- An 'unlimited' allowance is not a convenience setting. It removes the one limit the contract enforces.
- An allowance doesn't expire on its own under ERC-20. It stays until it's used up or changed.
Common questions
Who pays gas for an allowance?
Granting or revoking it is a transaction from your wallet, so you pay that gas. In Veyra's auto-pay, the relayer submits the payments themselves.
Can I see my current allowance?
Yes, the token contract's allowance(owner, spender) returns it; Veyra shows the cap it's tracking on the source.
Where does Veyra fit?
This is how Veyra's auto-pay works on the Pro and Team plans. You grant a capped USDC allowance on Base to a relayer Veyra operates. Within your auto-approve limit, the relayer pays directly from your wallet to the recipient, never through a Veyra balance, up to the cap the token contract enforces. Veyra's docs are blunt that the allowance doesn't decide the destination; Veyra's policy does, so auto-pay requires a recipient allowlist. Plans cap real executions at 500 a month on Pro and 2,000 on Team. On the Free plan there is no allowance and you sign every payment.
Sources
Terms on this page
- Token allowance (ERC-20 approve)A token allowance is the amount of an ERC-20 token that an owner has authorised a specific spender address to transfer from the owner's account, set with approve and spent with transferFrom.
- Stablecoin (USDC)A stablecoin is a blockchain token designed to keep a stable value relative to a reference asset, usually a currency such as the US dollar; USDC is a dollar stablecoin issued by Circle.
- Auto-approve limitAn auto-approve limit is the largest single payment an agent may make without a person approving it, within any other caps that apply.
This page explains how agent payments and the related technology work. It is not financial, investment, legal or tax advice. Protocols and provider features change; check the linked official sources before relying on a detail.