Sources checked

How we checked this

We reviewed the linked sources and keep this page updated when the record changes. Use the source list below to verify the details.

Source links attached Safety context included Corrections open

Key points

When you interact with a decentralized application (dApp) for the first time, many platforms ask you to “approve” a token. This grants the smart contract permission to spend a specific amount of that token. While approvals are a standard part of token standards like ERC-20 and BEP-20, they create a persistent risk: if the smart contract is malicious or compromised, attackers can drain the approved tokens from your wallet at any time.

Token approval abuse is one of the most common vectors in wallet drainer scams, phishing attacks, and DeFi exploits. In 2024 alone, automated approval-checking services like Scam Sniffer flagged millions of dollars in unauthorized allowance transactions. The risk is not theoretical – any address with open approvals on a vulnerable contract can lose funds without signing another transaction.

What Is a Token Approval?

A token approval is a permission you give to a smart contract to move a certain number of tokens from your wallet. The approval is recorded on-chain via a transaction that calls the `approve()` function of the token contract. The amount can be set precisely (e.g., 100 USDC) or unlimited (maximum value, often `uint256(-1)`).

Approval TypeRisk LevelUse Case
Fixed amount (exact)Low – attacker can only spend that amountOne-time swap, mint
Unlimited (max uint)High – entire balance at riskFrequent trading, liquidity pools
Multiple approvals on same tokenCumulative – each approved contract could drainSwap, lending, yield farming

Most dApps request unlimited approvals to avoid prompting you to approve every time you trade. That convenience comes at a cost: if the contract is compromised, the attacker can drain your entire token balance.

How Attackers Exploit Open Approvals

Source-tracked CryptoRescue article.

Attackers use several methods to steal tokens through existing approvals:

  • Phishing approvals: A fake dApp or wallet interface tricks you into signing an approval transaction for a malicious contract. Once approved, the contract immediately transfers tokens.
  • Compromised contracts: A legitimate DeFi protocol gets hacked, and the attacker uses the protocol’s contract to call `transferFrom()` on all approved addresses.
  • Drainer scripts: Malicious websites inject JavaScript that prompts you to approve a specific token. These scripts are often distributed via Twitter ads, Telegram groups, or fake airdrop links.
  • Reused approvals on different chains: If you approve a contract on Ethereum and later interact with the same contract address on a sidechain (e.g., BNB Chain), the approval may be valid on both chains if the token is bridged.

How to Check Your Token Approvals

You can review your open approvals using block explorers or dedicated tools. The method is similar across chains.

Using Etherscan (Ethereum)

Go to Etherscan and enter your wallet address.
2. Click the “Token Approvals” tab (under the “More” dropdown).
3. Review the list of approved contracts, token symbols, and allowance amounts.
4. Click “Revoke” to generate a transaction that sets the allowance to zero.

Using Revoke.cash (multi-chain)

Open Revoke.cash and connect your wallet.
2. The tool scans supported chains (Ethereum, BNB Chain, Polygon, Arbitrum, etc.) for approvals.
3. For each approval, you can revoke individually or batch-revoke.
4. Confirm the revocation transaction in your wallet.

Using a wallet’s built-in approval manager

Some wallets (e.g., MetaMask, Rabby) now include a “Permissions” or “Approvals” section that shows and lets you revoke allowances.

Steps to Revoke a Token Approval

Revoking an approval sends a new transaction that sets the allowance to zero. This is a safe, read-only action that does not involve any funds moving.

Identify the token and contract you want to revoke using one of the tools above.

Initiate the revoke transaction. This calls the `approve()` function with a value of 0.
3. Confirm the transaction in your wallet and pay the gas fee.
4. Wait for the transaction to be confirmed on-chain. The approval is now removed.
5. (Optional) Double-check on Etherscan or Revoke.cash that the allowance is now zero.

Best Practices for Token Approvals

  • Never approve unlimited allowances on unfamiliar or unaudited contracts. Use a fixed amount if possible.
  • Audit your approvals regularly. Set a monthly reminder to check and revoke unused permissions.
  • Use a hardware wallet for high-value assets. Hardware wallets add an extra layer of security, but they do not prevent malicious approvals from being signed.
  • Be cautious of “approve all” prompts. Legitimate dApps usually ask for approval of a specific token, not your entire wallet.
  • Consider using a burner wallet for experimental dApps and a separate cold wallet for long-term holdings.

What to Do If You Already Signed a Malicious Approval

If you suspect you have approved a malicious contract to spend your tokens, act immediately:

Do not approve any more transactions from that wallet.

Revoke the approval using the methods above as soon as possible.
3. Transfer remaining tokens to a fresh wallet that has never interacted with the malicious contract.
4. Report the contract address to scam reporting platforms like Scam Sniffer or Etherscan’s token approval database.

Limitations of Revocation

Revocation is not a cure-all. If the attacker already has permission to spend tokens, they can drain them the moment you revoke if they are monitoring the mempool. In practice, most attackers rely on the victim not noticing or not acting quickly. Revoking is still the safest first step, but if you know the contract is compromised, moving your tokens to a new wallet is the most reliable protection.

Source Caveats

The information in this guide is based on public blockchain data, audits by security firms such as SlowMist and CertiK, and documentation from token approval tools like Revoke.cash and Etherscan. Always verify contract addresses and tool domains before connecting your wallet. No tool or guide can guarantee complete protection against novel attacks, and you should never rely solely on a single source for security decisions.

Update log

  1. 26 Jul 2026Published with source tracking and reader-safety context.
  2. CorrectionsIf a source changes or a claim needs clarification, this page can be updated from the editorial desk.