EntryCrypto

Token approvals explained: how to review and revoke them

6 min read · Updated

What ERC-20 approvals, setApprovalForAll and Permit signatures do, why unlimited approvals are dangerous, and how to revoke them on Ethereum, L2s, BNB Chain and Solana.

When you swap on a DEX or deposit into a lending protocol, you first grant the contract permission to move your tokens. That permission is an approval, and it persists after the transaction. Old approvals to buggy or malicious contracts are one of the most common ways DeFi users lose funds months later.

The three permission types

PromptStandardWhat it grants
approve(spender, amount)ERC-20Spender can move up to amount of one token. Many dApps request unlimited.
setApprovalForAll(operator, true)ERC-721 / ERC-1155Operator can move every NFT in that collection.
Permit / Permit2 signatureEIP-2612 / Uniswap Permit2Off-chain signature that authorises an approval later, with no gas and no obvious on-chain trace until used.

Drainer sites abuse all three. A “Claim airdrop” button that opens a Sign typed data prompt is very likely a Permit for your USDC or a setApprovalForAll for your NFTs.

Reading the wallet prompt

Before confirming, check:

  • Which contract is the spender. It should be the protocol’s verified router or vault, not a fresh address with no name.
  • Which token and how much. Prefer setting an exact amount over unlimited; most wallets let you edit the limit.
  • Signature requests: if you clicked Connect or Claim and receive a typed-data signature listing a spender and value, close it.
  • On a hardware wallet, compare the on-screen spender with the site. Mismatch means a compromised front-end.

How to review and revoke

Ethereum and EVM chains (Arbitrum, Base, Optimism, BNB Chain, Polygon):

  1. Open revoke.cash or the Token Approvals tool on the block explorer (Etherscan, Arbiscan, BscScan).
  2. Connect your wallet (read-only view works with just the address).
  3. Sort by Value at risk. Revoke anything you do not actively use, anything unlimited to a protocol you rarely touch, and anything to an unverified contract.
  4. Confirm the revoke transaction. It sets the allowance to zero.

Permit2: revoke.cash lists Permit2 allowances under a separate tab. Revoking there covers signatures you may have signed without noticing.

Solana: Solana has token delegates rather than allowances. Use the Revoke feature in Phantom or a tool such as Solana Revoke to clear delegates and close empty token accounts (which also refunds rent).

Preventive habits

  • Never grant unlimited approvals on your main wallet. Edit the amount to what the transaction needs.
  • Separate wallets: a vault wallet that only ever receives, and a hot wallet for DeFi. Approvals on the hot wallet cannot touch the vault.
  • Revoke after use for one-off interactions such as a mint or a bridge.
  • Use wallet extensions that simulate transactions and flag approvals (Rabby, Phantom, Trust) so you see the consequence before signing.
  • Check the incident timeline: many bridge and DeFi exploits drained users who had open approvals to a compromised contract, not just the protocol treasury.

Quarterly approval review is item 12 on the security checklist.

Questions

Does disconnecting my wallet from a site revoke approvals?

No. Disconnecting only removes the site's ability to see your address. Approvals live on-chain and remain until you send a revoke transaction (or the approved contract is drained of that permission by setting the allowance to zero).

Does revoking cost gas?

Yes, each revoke is an on-chain transaction, typically a few cents on layer 2s and a few dollars on Ethereum mainnet. Permit-style signatures can be invalidated by increasing the token's nonce, which also costs gas.

How often should I review approvals?

After every interaction with a new protocol, and at least quarterly. Set a recurring reminder; the security checklist tracks this.

More guides