Revoking a Token Approval After a Swap
A swap can leave its router with a live token allowance. Check the token, spender and chain, submit an on-chain approval for zero, then verify the result.
Tokenbearing Editorial5 min read#c9151e

To revoke a token approval after a swap, submit a new approval setting that token’s allowance for the spender to zero on the same network. A swap can consume only part of an allowance, or leave it unchanged if the approval was effectively unlimited. Revocation changes what the spender can transfer in future transactions; it cannot reverse a transfer that already happened.
For a typical ERC-20 swap, the approval is recorded by the token contract. It identifies an owner, a spender contract and an allowance amount. The spender is often a router that calls transferFrom to move the input token into a swap. A route may involve other contracts too, so identify the approved spender rather than assuming it is the exchange’s website or app. For context on route choice and cross-chain movement, see this fuller account of Biswap routes and moving crypto across chains.
Why can an approval remain after a swap?
An ERC-20 approval sets a spending limit; it does not expire automatically when a swap completes. The token contract stores the allowance for the owner and spender. When the spender later calls transferFrom, the token contract checks that allowance before transferring tokens.
If the swap used an exact allowance, a standard token implementation may reduce it as the spender uses it. If the approval was larger than the amount spent, some allowance can remain. An approval set to the maximum integer is commonly treated as unlimited. Some implementations leave that value unchanged when tokens are transferred, so a completed swap does not necessarily reduce it. Token implementations can differ; check the current allowance rather than inferring it from the swap amount.
The allowance belongs to a specific token contract and spender address on a specific chain. Approval for one token does not grant access to every token in the wallet, and approval on one network does not change allowance state on another. A cross-chain swap can involve separate approvals on the source and destination networks. Review each relevant network and token separately.
How do I check which approval to revoke?
Use a wallet or network explorer that can display token approvals, and connect the wallet address whose allowance you want to inspect. Select the correct network, then locate the token and spender. Confirm the spender address against the swap details or the protocol’s verified interface; a familiar name alone is not enough to identify a contract.
- Check the chain and wallet address shown by the approval viewer.
- Identify the token contract and spender address, not only their display names.
- Read the remaining allowance, where the interface provides it.
- Check for additional approvals if the route used a separate permission system.
A wallet connection and a token allowance are different permissions. Disconnecting a site does not set an on-chain allowance to zero. Conversely, revoking an allowance does not necessarily disconnect the site from the wallet. The allowance is the permission that lets the spender move the approved token amount through the token contract.
What transaction revokes an ERC-20 allowance?
For a standard ERC-20 allowance, revocation is an approve(spender, 0) call to the token contract. Approval is itself an on-chain transaction, so the wallet must sign it and the network must include it. The call overwrites the allowance for that owner and spender with zero when it succeeds.
Use the approval viewer’s revoke control or a verified interface that builds this transaction. Before signing, check the chain, token, spender and proposed new allowance. The transaction should set the intended allowance to zero. It requires the network’s transaction fee, even if the token balance is empty. Wait for confirmation, then refresh the allowance view or inspect the token contract’s allowance for the same owner and spender.
Some tokens require an allowance to be set to zero before it can be changed to another nonzero value. That behavior matters when updating an allowance for another swap; it does not change the goal of revocation. If the transaction fails, the old allowance may still be active. Check the transaction status and current allowance before treating it as revoked.
Does zeroing the allowance cover every approval?
No. Zeroing an ERC-20 allowance revokes that token contract’s permission for the named spender. It does not automatically cancel a separate permission recorded by another contract or revoke a signed authorization that has not been submitted on-chain.
Some swap flows use signed permits or a shared allowance contract. In those cases, there may be a token approval to the shared contract as well as a separate permission held within that system. Check the mechanism shown in the transaction details and use its own revocation or nonce controls where applicable. An unsubmitted signature may also remain usable until it expires or is invalidated, depending on its format. A zero ERC-20 allowance alone does not prove that every such authorization has been cancelled.
For most users, the useful check after a swap is the remaining allowance for the exact token, spender and chain. Revoke any allowance that no longer needs to remain, then verify the updated state on-chain. That removes the spender’s future ability to draw against that allowance; it does not recover tokens already transferred.