Skip to main content

Shepley Capital

WALLETS & SECURITY
Wallets and Security - Cryptopedia by Shepley Capital

How to Revoke Smart Contract Approvals

Every time you interact with a DeFi protocol on Ethereum or another EVM-compatible chain, you are typically asked to sign a token approval: a transaction granting a smart contract permission to spend your tokens. This permission persists indefinitely unless you explicitly revoke it. Over time, active DeFi users accumulate dozens or hundreds of these approvals from protocols they may have used only once. Each active approval is a potential attack surface: if any of those protocols is exploited, hacked, or turns malicious, the attacker can use the existing approval to drain the specific tokens you approved from your wallet. Revoking unnecessary approvals is one of the most important, and most overlooked, security practices in DeFi.

 

What a Token Approval Actually Does

A token approval is a transaction that modifies a permission record in the token contract, specifically an ERC-20 allowance. It records how many tokens a specific smart contract address is authorised to spend on your behalf. When you approve “unlimited” tokens (which is the default in many DeFi interfaces), you give that contract permission to move any amount of that token from your wallet at any time. When you approve an exact amount, the permission is limited to that specific quantity. Understanding the full mechanics of what token approvals are and why they matter is the foundation of managing them correctly.

 

Why Old Approvals Are Dangerous

The danger of old approvals lies in persistence and forgotten exposure. You might have connected your wallet to a small protocol during a market frenzy, approved tokens, made a few transactions, and then moved on. Months later, that protocol’s smart contract is exploited. The attacker queries the blockchain for all wallets with active token approvals to the compromised contract and drains all approved tokens from those wallets. Because approvals are on-chain and public, attackers can scan for them systematically. Several of the largest DeFi exploits in history have included wallet draining using existing approvals as a secondary attack vector. The risks of DeFi investing include not just protocol-level vulnerabilities but the approval trail left behind from previous interactions.

 

How to Check Your Active Approvals

Several free tools allow you to view all active token approvals for any Ethereum address. Revoke.cash is the most widely used: visit revoke.cash, connect your wallet, and it displays a complete list of all active approvals organised by token and spender contract. Etherscan provides a “Token Approvals” tab on any address page (navigate to etherscan.io, enter your address, and find the Token Approvals tab). DeBank and Zerion also display active approvals as part of their portfolio dashboards. For Solana users, the Phantom Wallet interface has begun including approval management features, and dedicated tools like Sol Incinerator handle Solana token account closures. Always use reputable, well-established tools when checking approvals: fake approval checkers exist and are designed to steal your seed phrase or trick you into signing malicious transactions.

 

Step-by-Step: Revoking an Approval on Revoke.cash

Visit revoke.cash. Connect your MetaMask or other EVM wallet using the “Connect Wallet” button. Select the network you want to check (Ethereum mainnet, Polygon, Arbitrum, etc. – check each chain separately). The tool displays all active approvals for that address and chain. For each approval you want to revoke, click the “Revoke” button. This triggers a transaction in your wallet that sets the allowance to zero. You must pay a gas fee for each revocation transaction (as each revocation is an on-chain transaction). Confirm each revocation in your wallet. After the transaction confirms, the approval is removed.

 

Gas Fees and Batch Revoking

Each revocation requires a separate on-chain transaction, incurring Ethereum gas fees. During periods of network congestion, this can make revoking dozens of approvals expensive. To minimise costs, consider revoking approvals in batches during low-congestion periods (typically late night UTC on weekdays). Some tools like Revoke.cash offer a batch revoke feature that bundles multiple revocations into fewer transactions, reducing the overall gas cost. Layer 2 networks like Arbitrum and Optimism have much lower gas fees, making revocations there significantly cheaper. On Polygon, the fees are minimal. The investment in revoking unnecessary approvals is almost always worthwhile given the potential cost of a wallet exploit.

 

Best Practices for Managing Approvals

Rather than accumulating approvals and periodically revoking them, adopt these habits to minimise your ongoing approval exposure. Approve exact amounts rather than unlimited amounts whenever possible: some DeFi interfaces allow you to edit the approval amount before signing. If an interface only allows unlimited approval, be especially vigilant about using audited, established protocols. After completing your intended interaction with a protocol (for example, adding liquidity to a pool and later removing it), revoke the approval immediately. Set a calendar reminder to review your approvals monthly using Revoke.cash. For any protocol that is new, unaudited, or where you have concerns, consider using a separate “hot” wallet with minimal holdings specifically for experimental DeFi interactions, isolating risk from your main holdings.

 

Approvals After a Phishing or Exploit Incident

If you suspect your wallet has been compromised, whether through a phishing attack, interacting with a malicious contract, or a rug pull, revoke all approvals immediately and then transfer all remaining funds to a completely new wallet with a new seed phrase. Revoking approvals is only effective while the attacker has not yet used them: if an approval-based drain is actively occurring, acting within minutes can make the difference between losing some funds and losing everything. The broader guidance on recovering from a crypto scam and what to do after a compromise is covered in our dedicated security guides.

 

Multi-Chain Approval Management

EVM chains including Ethereum, Polygon, Arbitrum, Optimism, Avalanche, and BNB Smart Chain all use the same approval mechanism and can all be checked using tools like Revoke.cash by switching networks. If you have been active across multiple chains, check each one separately. A compromised approval on one chain does not automatically affect others, since approvals are chain-specific. Non-EVM chains like Solana use a different token account model, but Solana also has its own category of token account approvals that should be managed using Solana-specific tools.

 

Key Takeaways

Token approvals grant smart contracts permission to spend your tokens indefinitely. Accumulated old approvals from past DeFi interactions represent ongoing security exposure. Use Revoke.cash, Etherscan’s Token Approvals tab, or DeBank to view and revoke unnecessary approvals regularly. Revoke approvals as part of your post-interaction cleanup, especially for protocols you no longer use. During a security incident, revoke all approvals and transfer funds to a fresh wallet immediately. Understanding approvals is inseparable from understanding how DeFi token permissions work, and both are core to responsible DeFi security practice.

Frequently Asked Questions

What is a smart contract approval?

A smart contract approval is a permission you grant to a decentralised application (dApp) allowing it to access and move specific tokens from your wallet. When you interact with DeFi protocols, NFT marketplaces, or token swaps, you are often asked to approve a contract to spend your tokens on your behalf. These approvals remain active indefinitely unless you manually revoke them.

Why should I revoke smart contract approvals?

Unlimited approvals give a smart contract permanent permission to move your tokens. If that contract is later exploited, hacked, or turns malicious, attackers can drain any wallet that still holds an active approval. Revoking approvals for contracts you no longer use eliminates this ongoing exposure and is one of the most important security hygiene steps for anyone active in DeFi.

How do I revoke a smart contract approval?

The easiest way to revoke approvals is through a tool like Revoke.cash or the built-in approval manager in some wallets. Connect your wallet, and the tool will display all active approvals. Select any you want to remove and confirm the revocation transaction. Each revocation is a small on-chain transaction, so you will need a small amount of the network's native token to cover gas fees.

What tools can I use to revoke smart contract approvals?

Revoke.cash is the most widely used tool for managing and revoking approvals across multiple EVM networks. Etherscan's token approval checker works for Ethereum specifically. Metamask's built-in approval management is available in newer versions of the extension. For Solana, tools like Phantom wallet's built-in revoke function or Step.finance can be used to manage SPL token approvals.

Does revoking an approval cost money?

Yes. Revoking an approval is an on-chain transaction that requires a gas fee. On Ethereum, gas costs vary and can be significant during high-traffic periods. On Layer 2 networks like Polygon, Arbitrum, or Base, revocation costs are typically a few cents. It is worth periodically reviewing and revoking unused approvals, particularly after using new DeFi protocols.

How often should I review my wallet approvals?

A good practice is to review your approvals after every new DeFi interaction and at a minimum on a monthly basis. After any significant security incident affecting a protocol you have used, check immediately whether you have an active approval and revoke it if so. Setting a calendar reminder to audit approvals quarterly is a simple way to maintain ongoing security hygiene.

Can I set a limited approval instead of unlimited?

Yes. When prompted to approve a token, some wallets and dApps allow you to enter a custom approval amount rather than approving unlimited tokens. Setting the approval to exactly the amount needed for the transaction means the contract's permission expires once that amount is spent. This is more secure than unlimited approvals but requires more attention during each interaction.

What is the difference between a token approval and a wallet signature?

A token approval is an on-chain transaction that grants a smart contract permission to move specific tokens from your wallet. A wallet signature is an off-chain message that does not directly move funds but can be used by certain protocols to authorise actions. Some signature schemes like Permit2 can grant spending permissions without a traditional approval transaction, so it is important to understand what you are signing even when no gas fee is prompted.

WRITTEN & REVIEWED BY Chris Shepley

UPDATED: AUGUST 2026

Choose your next topic from our Cryptopedia​

Grow your crypto portfolio with the latest insights, straight to your inbox!

Join 10,150+ CEOs, Business Owners, Parents, Students, & more receiving actionable crypto insights to grow their portfolios.