Token Approvals: The Permission You Forgot You Gave
Every swap asks for permission to move a token, and most of those permissions are unlimited and permanent. They stay live long after the trade is done.
The short answer
Before a contract can move a token out of your wallet it needs an approval, and the default request is usually for an unlimited amount with no expiry. That permission survives the trade: months later the contract can still move that token, and if it is ever compromised or was malicious from the start, it does not need you to be present. Revoking is done from a tool such as Revoke.cash or from the wallet itself, costs a small amount of gas per approval, and is worth doing as a pass after any session that touched unfamiliar contracts.
An ERC-20 token does not live in your wallet in the way a coin lives in a pocket. The token contract keeps a ledger, and your wallet is an entry in it. For any other contract to move your balance, you have to write permission into that ledger. That is an approval.
What you are actually agreeing to
Three things at once, and the confirmation screen usually emphasises none of them. Which contract may spend. Which token it may spend. And how much – which by convention is the largest number the standard allows, because asking once is cheaper than asking on every trade.
There is no expiry in the standard. Approve a contract to spend your USDC in March and, unless you revoke it, that permission is live in December.
How this turns into a loss
- You trade on a new site, granting it unlimited approval for a token you hold.
- The trade completes. You move on and the approval remains.
- Later, that contract is exploited, upgraded by a malicious owner, or was designed for this from the beginning.
- It calls the token contract and moves your balance. You are not prompted, because you already agreed.
- The first you know is the balance being gone.
Nothing in that sequence requires you to have made a mistake at any point after step one. That is what makes it worth a periodic clear-out rather than more care in the moment.
How to check and revoke
- Open Revoke.cash, connect the address in read-only mode and let it list every live approval.
- Sort by what the approval covers. Anything unlimited on a token you hold in size comes first.
- Revoke what you no longer use. Each one is a transaction and costs a little gas.
- Repeat for every address you trade from. Approvals are per wallet, not per person.
- Some wallets, Rabby among them, show the same list without a separate site.
How often is enough
After any session in which you interacted with contracts you had not used before, which for an active memecoin trader is most sessions. A monthly pass is a reasonable floor for everyone else. The cost is a few cents of gas per approval on an L2, which is one of the better security trades available.
What revoking does not fix
- It does not undo a transfer that already happened. Revoking is prevention, not recovery.
- It does not help if your seed phrase is compromised – at that point permissions are irrelevant.
- It does not cover signatures such as Permit, which authorise spending without an onchain approval. Those are worth reading carefully at signing time.
- It does not make a malicious token safe. Some tokens are hostile in their own transfer logic, whoever is approved.
The habit that prevents most of it
Trade from a wallet that does not hold anything you would miss. An unlimited approval on an empty wallet is an unlimited claim on nothing, and no amount of approval hygiene beats simply not having the balance exposed in the first place.
Tools mentioned
FAQ
What is a token approval?
Permission written into a token's contract allowing another contract to move your balance of that token. It is required before any swap, and by default it is granted for an unlimited amount with no expiry, so it remains live long after the trade that prompted it.
How do you revoke token approvals?
Connect your address to a tool such as Revoke.cash, which lists every live approval, and revoke the ones you no longer use. Each revocation is an onchain transaction and costs a small amount of gas. Some wallets, including Rabby, show and manage the same list directly.
How often should you revoke approvals?
After any session that involved contracts you had not used before, which for active onchain trading is most of them. Monthly is a reasonable minimum otherwise. On an L2 the gas cost is negligible against what an unlimited approval on a held token represents.
More from the blog
Is Crypto Arbitrage Profitable? Yes, and Not for You
The opportunity is real and it is measured in milliseconds. By the time a price difference is visible on a screen, it has been taken.
What a DEX Aggregator Does, and When It Costs You
It searches every pool for the best route and splits your trade across them. That is worth real money on a large order and worth nothing on a small one.
Rabby vs MetaMask: One Shows You What You Are Signing
Both connect to the same chains and hold keys the same way. The difference is a single screen, and it is the screen where money is lost.