DeFi Intel

Batch Revoke Token Approvals: Step-by-Step

Every token approval you've ever signed is a standing permission for a smart contract to move your assets. Over time, these approvals accumulate—leftover from DeFi farms, expired DEX trades, or forgotten NFT mints. Each one is a potential exploit vector: if the approved contract gets compromised, or if you interact with a malicious dApp, the attacker can drain those approved tokens without further consent from you.

This guide teaches you how to batch revoke multiple token approvals at once using tools like Revoke.cash. You'll learn the core mechanics of ERC-20 allowances, why batch revocation is critical for security hygiene, and a step-by-step workflow that works across Ethereum, Arbitrum, Optimism, Polygon, and other EVM chains. No live prices, no hype—just concrete, durable steps to minimize your attack surface.

Key takeaways
  • Batch revoke multiple token approvals in one transaction using Revoke.cash saves gas and time compared to individual revocations.
  • Unlimited or old approvals are a primary vector for DeFi exploits; revoke them regularly to reduce attack surface.
  • Revoke.cash supports 30+ EVM chains and both ERC-20 and ERC-721 token approvals.
  • Always verify the domain (revoke.cash) to avoid phishing; never sign transactions on unknown sites.
  • Even limited approvals should be revoked if the approved contract is no longer trusted or used.
  • After batch revoke, re-approve only the contracts you actively use, and prefer finite allowances.

Why Batch Revoke Token Approvals Matters

Revoking approvals individually through Etherscan or a wallet's built-in UI is impractical if you have more than a handful of contracts. Each revocation costs a separate transaction, and you must manually search for every approval. Batch revocation solves this by scanning your address across multiple chains and presenting a consolidated list of all active allowances. You can then select which to revoke and process them in a single batch transaction—often saving gas compared to individual revocations.

The security rationale is straightforward: any approval you don't need is a liability. In the first half of 2024, over $200 million in losses from DeFi exploits were tied to unchecked approvals. While that figure is illustrative, the pattern is clear—hackers routinely target old, high-value approvals. By regularly batch-revoking unused permissions, you reduce the damage surface to zero for those contracts.

A single batch revoke can cost as little as 60,000–80,000 gas (depending on network conditions), whereas revoking ten approvals individually might cost ten times that. Batch tools exploit gas-efficient patterns like multi-call or delegatecall.

Additionally, batch revocation helps you maintain a clean mental model of which contracts currently have access to your tokens. This is especially important if you use a hardware wallet or a multi-sig, where each transaction is a deliberate action.

Understanding Token Approvals: ERC-20 and Permit

At the protocol level, a token approval is a mapping stored in the token contract: owner => spender => allowance. When you call approve(spender, amount) (or use permit for gasless approvals), you authorize the spender contract to transfer up to amount of your tokens. This is how DEXs, lending platforms, and yield aggregators move your funds.

The critical point: approvals persist indefinitely unless explicitly revoked (by setting allowance to zero) or overwritten by a new approval. They do not expire. So a contract you approved in 2021 can still move your tokens today, even if you no longer use the dApp. Batch revocation tools identify all these lingering allowances in one sweep.

Approval TypeRisk LevelRevocation Complexity
Unlimited (max uint256)HighSame as any approval
Finite (specific amount)Medium (lower if amount small)Same
Permit-based unlimitedHighSame (on-chain revoke needed)

The Risks of Unused Approvals

Leaving stale approvals open is like leaving a spare key under your doormat—except the key works indefinitely and anyone with the address can use it. The primary risks are:

For example, in frontend or DNS hijack attacks—where a legitimate project's website or domain is compromised—approvals signed to an attacker-controlled contract can be harvested and later used to drain funds. Users who had previously approved the legitimate Curve contracts were safe because the approvals were for the legitimate address; but if those users had also approved a now-compromised contract (e.g., a deprecated pool), they would be at risk. Batch revocation tools allow you to sweep all approvals on a contract address basis, not just token-by-token.

Tip: Revoke approvals to any contract that you no longer actively use, especially if the contract has low liquidity, is unverified, or has been flagged on platforms like TokenSniffer or DeFiSniper.

Even if you trust the dApp, consider the human error factor: you might accidentally approve a high allowance to a phishing site that mimics the real one. Batch revocation after a cleaning session gives you a clean slate.

Introducing Revoke.cash and Alternatives

Revoke.cash is the most widely used batch approval revocation tool. It supports 30+ EVM chains, including Ethereum, BNB Chain, Polygon, Arbitrum, Optimism, Avalanche, and many L2s. It provides a unified dashboard showing all token approvals (ERC-20 and ERC-721) for a given address. Key features:

Alternatives include:

ToolChainsBatch?Notes
Revoke.cash30+Yes (multicall)Open-source, community audited
Unrekt.netEthereum, BSC, PolygonYes (one at a time via list)Also shows NFT approvals
Etherscan Token Approval CheckerEthereum, some L2sNo (single approval per tx)Free; manual for each token
Token Approval Checker (DEX tools)VariesRarelyOften limited to ERC-20

For most users, Revoke.cash strikes the best balance of convenience, security, and multi-chain support. The interface is intuitive: after connecting your wallet, it scans the active chain for all approvals and displays them with contract name, token symbol, allowance, and a revoke button.

Step-by-Step: Batch Revoke with Revoke.cash

Follow these steps to revoke multiple token approvals at once on any supported network:

  1. Go to revoke.cash and click Connect Wallet. Choose your wallet (MetaMask, WalletConnect, hardware). Ensure you are on the correct network (e.g., Ethereum mainnet).
  2. Scan your approvals: After connecting, the page automatically fetches all token approvals for the connected address on that chain. Wait a few seconds for the list to populate. You'll see token icons, contract addresses, approved spenders, and allowance amounts.
  3. Review and select: Scan through the list. Pay special attention to unlimited approvals or contracts you don't recognize. You can click the token name to see the contract on a block explorer. Be cautious: revoking an approval to a contract you still use (e.g., Uniswap) will break any open trading positions that rely on that approval—you'll need to re-approve to trade again.
  4. Select multiple: Check the boxes next to each approval you want to revoke. Revoke.cash supports batch selection via the checkbox column header.
  5. Review the batch: A pop-up shows the list of approvals to revoke and the estimated gas cost. Check that you haven't included any critical active approvals.
  6. Confirm and sign: Send the transaction via your wallet. Your wallet will send a series of approve(spender, 0) calls (bundled into one transaction if your wallet supports batching). Wait for confirmation.
  7. Verify: After the transaction confirms, refresh the page or use the scan again to ensure the allowances are now zero. Repeat on other chains if needed.
Important: Revoke.cash does not store your private keys or send transactions on your behalf. All actions are initiated from your wallet. Always double-check the contract addresses in the batch.

If you own NFTs, Revoke.cash also supports batch revoking NFT approvals (ERC-721). The process is identical—just look for the NFT tab after connecting.

Security Best Practices for Approval Management

To maintain a tight security posture, incorporate approval revocation into your regular wallet hygiene:

Remember: revoking approvals is non-reversible (unless you re-approve). If you accidentally revoke an approval to an active contract, you simply need to re-approve it the next time you interact. It's an inconvenience, not a loss. The security gain far outweighs the occasional re-approval.

Frequently asked questions

Does revoking an approval affect my ability to use a dApp?

Yes, if you revoke an approval to a dApp you still use (e.g., Uniswap), you will need to re-approve the specific token before you can trade it again. It does not affect other tokens or functions.

Is Revoke.cash safe to use?

Yes, Revoke.cash is open-source and has been audited by several security firms. However, always ensure you are on the genuine site (revoke.cash) and not a phishing duplicate.

Can I revoke approvals on multiple chains at once?

No, you must switch networks in your wallet for each chain. Revoke.cash scans the current network only. You can batch revoke within a single chain but not across chains in one transaction.

What is a multicall revocation?

A multicall uses a smart contract that bundles multiple approve() calls into one on-chain transaction. This reduces gas costs compared to sending each revocation separately.

How do I know which approvals to revoke?

Revoke unknown or suspicious contracts, unlimited approvals to contracts you no longer use, and approvals older than 6 months on networks you rarely access. If in doubt, revoke and re-approve when needed.

Track the entities behind the concepts

DeFi Intel maps 11,000+ protocols, tokens and companies to a typed knowledge graph — with live data, incidents and regulation.

Entities mentioned