Wallet hygiene

Token approvals: how to check them and revoke what you no longer need

Every swap, claim and mint you approved may still be able to touch your tokens. A seven-step review closes those doors and takes about ten minutes per chain.

By airdrop.promo Editorial Team · Updated 19 Oct 2026 · 10 min read

Quick triage: which approvals matter most

If you only have five minutes, look for these in order. This ranking is editorial judgement based on how much damage each can do.

  1. NFT operator approvals to addresses you do not recognise. They cover a whole collection with no amount cap.
  2. Unlimited ERC-20 allowances to unknown spenders, especially on stablecoins or large holdings.
  3. Permit2 approval on tokens you no longer swap, since one approval underlies many sub-permissions.
  4. Old allowances to small or defunct apps. A contract that was safe when you used it can be upgraded or compromised later.

What an approval actually is

Tokens on EVM chains do not move because a contract asks nicely. A contract can only pull tokens from your address if you earlier told the token contract it may. That permission is the approval, stored on-chain as a number or a flag.

ERC-20 allowance

EIP-20 defines approve, which lets a spender withdraw tokens from your account up to a set amount, multiple times. allowance reads what remains, and transferFrom does the spending. Calling approve again overwrites the old value, which is also how you revoke: set it to zero (EIP-20).

NFT setApprovalForAll

EIP-721 lets you approve one address for one token, or enable an operator for every token you own in the collection. The operator can transfer the covered NFTs, and multiple operators per owner are allowed. Switching it off sets the flag to false (EIP-721).

Permit2

Uniswap’s Permit2 stores a standing allowance inside its own contract, with an amount and an expiration, after you give Permit2 a one-time ERC-20 approval per token. It also supports single-use signature transfers that leave no standing allowance (Uniswap docs).

Two separate things can therefore be live at once for the same token: an approval to the app directly, and an approval to Permit2 plus sub-approvals inside Permit2. A good review looks at both. Revoke.cash recommends revoking the approval to the Permit2 contract itself when you no longer use Permit2, given phishing risk, and letting near-expiry sub-approvals lapse while revoking or updating far-off ones manually (Revoke.cash).

Why approvals persist

Ethereum.org states that granted permissions remain usable indefinitely and that disconnecting your wallet from a project does not remove them (source). The reason is architectural. The wallet connection is a browser session; the approval is data inside the token contract. Closing the tab changes the first and not the second.

This produces the typical failure mode: an unlimited approval you gave a legitimate app two years ago, then that app’s contract is exploited or you later receive a lookalike request that you never notice. Ethereum.org adds that once an unlimited allowance is granted, the platform can spend those tokens even after you move funds back into your wallet.

The seven steps

These steps follow the Revoke.cash and Etherscan flows described in Revoke.cash’s guide and the ethereum.org walkthrough, with our safety additions.

  1. Use a clean device or profile and the right address

    Open the checker in a browser profile with no unknown extensions. Enter or connect the wallet address that signed the approvals. Searching an address is read-only; connecting is only needed to revoke.

  2. Select the network

    Approvals are stored per chain, so the same wallet needs a separate review on each network it has used. Revoke.cash lists 80+ networks; on others, use that chain’s block explorer.

  3. Sort approvals from newest to oldest

    Revoke.cash suggests this order when hunting for a suspicious approval. Unknown spender addresses signed recently deserve attention first.

  4. Triage each approval

    For each row note the token, the spender, the allowance and the last-updated date. Unlimited allowances to spenders you cannot name are the priority.

  5. Revoke, or lower the amount

    Click Revoke on the approval, or use the edit option to set a lower allowance if you still use the app. Both require a transaction and a network fee.

  6. Confirm in your wallet and wait

    Check the wallet popup shows an approval call setting the allowance to zero, then wait for the transaction to finish. Processing time varies by network.

  7. Refresh and verify

    Reload the checker after a few minutes. The approval should be gone or show zero. Repeat for each chain and each token standard.

Revoke.cash vs block explorer checkers

CriterionRevoke.cashBlock explorer checker
Coverage80+ networks per its own guideOne per explorer, such as Etherscan for Ethereum
Lookup without connectingYes, search by address, ENS or aliasThe Etherscan checker page we opened showed a connect-wallet prompt
Token typesToken and NFT approvalsERC-20, ERC-721 and ERC-1155 tables on Etherscan
Lower the amount instead of revokingYes, via the edit optionNot described on the page we read
Extra signalSort by newest to find suspicious itemsShows value at risk for ERC-20 and NFTs
Trust modelThird-party site, so verify the URLExplorer you may already trust, same URL caution applies

Our practical advice: use whichever you can reach through a bookmark you made yourself. Fake revoke sites exist, and a revoke tool that asks you to sign anything other than an allowance reset or approval-flag change is a red flag. Etherscan’s own page warns that the service is provided as is and that it is not responsible for losses from using it, so read each wallet prompt rather than assuming the tool is correct. Some explorers block automated readers; we only describe the pages we could open.

What revoking costs

Revoking is a normal on-chain transaction, so you pay the network fee. Ethereum.org says processing time varies from about a minute to several minutes depending on network. We do not quote a dollar figure because fees change with congestion and chain. Two practical points.

  • Budget by chain. A review across five networks means up to five rounds of fees, and you need a little of each network’s native token in the wallet.
  • Prioritise by risk, not by completeness. If fees are high, revoke the NFT operator and unlimited stablecoin approvals first, and leave tiny dust allowances for later.

Revoking does not end staking, pooling or lending positions or stop rewards, according to ethereum.org. You will simply need to approve again next time you use that contract.

The Solana equivalent

Solana has no setApprovalForAll or ERC-20 allowance table. Instead each token account stores one current delegate and one delegated amount at a time. Approving a new delegate replaces the earlier one. The token account owner signs the approval through the Approve or ApproveChecked instruction (Solana docs).

To remove it, the Revoke instruction clears the delegate and sets the delegated amount to zero. Under the Token Program the token account owner signs it; under the Token Extension Program the current delegate can also revoke (Solana docs). We did not open the spl-token command-line documentation, so we do not give command syntax here.

The risk profile differs. A delegate is capped at a stated amount and there is only one per token account, so exposure is bounded per token. But a single malicious delegate approval for a full balance still lets the attacker move it. Another common Solana loss comes from signing a transaction that transfers assets or changes account ownership, which is not an approval at all and cannot be revoked afterwards. See our Solana ecosystem page for the airdrop context and the scam guide for patterns.

Limits: what revoking cannot do

It does not return stolen funds.
Blockchain transfers cannot be reversed. Revoking prevents the next theft only.
It does not help if the private key leaked.
If someone has your seed phrase or key, they can simply sign new transactions. Migrate to a new wallet.
It does not cancel a signed but unused permit unless you act.
EIP-2612 says a signed permit can be submitted by anyone until its deadline, and the owner can invalidate it by changing the nonce, for example by submitting a permit or using the nonce themselves. A short deadline limits exposure; a deadline set to the maximum value effectively removes expiry. A revoke tool may not show such an off-chain signature, so treat any suspicious permit as a reason to move funds.
It is per chain and per token standard.
Ethereum, Base, Arbitrum and others each hold their own approvals. See Ethereum, Base and Arbitrum for where you may be active.
Why not just approve exact amounts every time?

You can, and ethereum.org recommends limiting approvals to the amount a transaction needs. The cost is another approval transaction and its fee on each future use. Many people accept unlimited approvals to trusted, long-lived protocols and revoke on a schedule instead. That is a trade-off between convenience and exposure; our judgement is to use exact amounts for new or small apps and keep unlimited approvals to a short list you have reviewed.

Should I revoke the Permit2 approval itself?

If you no longer swap on apps that use it, Revoke.cash suggests yes. If you still do, leaving it in place means each later swap needs only a signature rather than a fresh approval, and the sub-approvals have expirations. Review sub-approvals regularly either way.

Recurring hygiene checklist

Monthly approval review

0/8

Pair the checklist with the habits in the burner wallet guide, and use our legitimacy scorer before signing the next claim. If you are building an activity history across many apps, airdrop farming generates approvals faster than almost any other habit, so review more often.

Primary sources

Sources last checked 19 Oct 2026. Links open the project's own pages, not summaries from other sites.

Frequently asked questions

How do I check which token approvals my wallet has given?

Enter your address in a tool such as Revoke.cash or open the token approval checker on the block explorer for your chain. It lists the tokens you approved, the contracts that can spend them and the allowances. Do this per network, because approvals are stored separately on each chain.

Does disconnecting my wallet from a site revoke its access?

No. Ethereum.org notes that disconnecting a wallet from a project does not remove its token permissions. The approval is recorded on the blockchain and stays active until you change it with a transaction that sets the allowance to zero or revokes the operator.

Does it cost gas to revoke an approval?

Yes. Revoking is a transaction, so you pay the network fee on that chain. The amount depends on the network and current congestion. Signature-based approvals are different: a permit signature itself costs nothing, but cancelling it still needs an on-chain action.

Can revoking approvals get my stolen crypto back?

No. Revoking only removes the permission, so the spender cannot take anything further. Tokens already moved stay where they are, and blockchain transfers cannot be reversed. If you were drained, move remaining assets, revoke and report the incident.

What is the difference between ERC-20 approve and setApprovalForAll?

ERC-20 approve gives a spender an allowance of one fungible token up to an amount. For NFTs, setApprovalForAll gives an operator control over every token you own in that collection. The NFT version has no amount cap, which makes it more dangerous to leave open.

How do I revoke on Solana?

Solana token accounts have a delegate that can move up to a set amount. The Revoke instruction clears the delegate and resets the delegated amount to zero. Under the standard Token Program the token account owner signs it. Use a wallet or tool that exposes this, and confirm the delegate is cleared.

Written and fact-checked by the airdrop.promo Editorial Team. Method: how we verify. Spotted an error? contacts@airdrop.promo. Educational content only, not financial or tax advice.