How to review and revoke token approvals
What a token approval lets a contract do with your tokens, how to find the approvals you have already signed, and when withdrawing an old permission makes sense.
A token approval is a permission that you sign in your wallet. It allows a smart contract to move one kind of token out of your address. Approvals exist because a contract cannot reach into a wallet on its own. When you use an exchange tool, a lending tool or a marketplace built on a blockchain, the contract often has to pull tokens from you as part of the action. The token standard therefore includes an approval step that names who may spend and how much. The approval is separate from the action itself. That split matters for everyday wallet users, because the request looks routine, takes a second to confirm, and creates a permission that can outlast the task it was meant for.
Here is how it works in order. The token contract keeps a small table that lists each owner address, each spender address and the amount the spender may use. When you sign an approval, your wallet sends a transaction that writes a new row in that table. Later, the spender calls a transfer function on the token contract, and the contract checks the table before moving anything. Some apps ask for an unlimited amount so you do not have to sign again for each use. An unlimited row stays in the table until someone changes it. Setting the allowed amount back to zero cancels the permission, and that change is a new transaction, so it needs a little of the network's native coin for gas.
Picture a made-up user named Dana. Months ago she connected her wallet to a swap tool and approved an unlimited amount of one token, because that was the default choice on the screen. She finished the swap and forgot about it. Later, the tool's developers made a coding mistake, and an attacker found a way to call the contract in a manner nobody planned. Dana had not opened the tool for weeks and saw nothing on her screen. The old row in the token table was still there, so the attacker's call could draw on her balance. Had she canceled the approval after her swap, the same flaw would have found nothing to take.
Several things tend to go wrong. The first is the unlimited amount, which keeps exposure open long after the original task. The second is signing without reading. Scam sites often use phrases such as a free mint or a wallet verification to get an approval signed, and the signature then hands a stranger's contract access to your tokens. The third is a compromised contract that was once honest, since an approval given to a trusted app stays valid if the app is later hacked. The fourth is a fake revoke page. An attacker can copy a clean-looking review tool and ask for a new approval, so the tool itself needs the same checking as any other site.
A few checks can be done alone, with public sources. Before you sign, read the request on the signing screen. Does it name the contract you expect? Does it describe an approval, a transfer or a login message? Is the amount limited to what this one action needs? If a request asks for more, reject it and try again with a smaller amount where the app allows that. Then, every so often, open an approval review tool that you have verified through the wallet maker's own documentation or a block explorer's official site. List the permissions your address has granted, sort out the ones you no longer use, and revoke those. Keep a second address with few tokens for experiments.
For further reading, the security pages and token standard documentation at ethereum.org explain approvals in more detail, including why a spender can keep access after a transaction ends. Revoking an approval closes a door for the future. It does not return tokens that have already left your address, and it does not judge whether a given contract is trustworthy. Wallet screens, token standards and network names differ from one blockchain to another, so the steps above describe the general pattern rather than every interface. Rules for how long an approval lasts also depend on the token contract, and a few contracts ask for a fresh signature each time. This page is general education, not financial, legal or security advice for your own accounts.
- An approval stays active until it is changed, so an old unlimited one can be used long after the task ended
- Read the contract name, the action and the amount on the signing screen before confirming
- Review granted approvals now and then with a tool you verified, and revoke the ones you no longer use
Articles on the parts of crypto that cause confusion
Definitions
- Token approval
- A recorded permission that lets a chosen contract spend up to a set amount of one token from your address. It is created by a transaction you sign and stays until changed.
- Unlimited approval
- An approval with no practical cap on the amount. It saves repeat signing, but it leaves the whole balance of that token open to the approved contract.
Direct answers
- What does a token approval allow?
- It lets a named contract move a set amount of one token from your address, without a new signature each time. The permission remains until it is changed or canceled.
- How do I cancel an approval I no longer need?
- Find the approval in a review tool you have verified, then revoke it by signing a transaction that sets the allowed amount back to zero. The transaction needs a small amount of the network's native coin for gas.
- Does revoking an approval bring back stolen tokens?
- No. Revoking only stops later use of that permission. Tokens already moved by a contract stay where they went.