Guide · Token safety

ERC-20 token approval risk
what you're really signing

A token approval is not the same as a swap. It is a standing permission you grant to a smart contract - and unless you revoke it, it stays active forever. Here is what that means and how to manage it.

Check a contract before approving

Free · No sign-up · EVM · Solana · Tron

Every scan is powered by the XemaS Semantic Intelligence Platform · answers carry their evidence and coverage state

The mechanics

How ERC-20 approvals work

The ERC-20 standard has a function called approve(spender, amount). When you call it, you are telling the token contract: "I authorise this address to transfer up to this amount of my tokens." The DEX or DeFi protocol is the spender, and once approved, it can move your tokens without a second confirmation from you.

The amount you approve is not consumed by the swap. After a 100 USDC swap, a wallet with an unlimited approval still has an unlimited approval. The permission does not shrink unless you explicitly set it to a lower value.

This creates a persistent, open-ended exposure. The three scenarios below illustrate the risk gradient.

Risk levels

Approval amount and what it means

Exact amountLow risk

The contract is approved for exactly the amount needed for this transaction. If the contract is later exploited, attackers can drain only the approved amount.

Large fixed amountMedium risk

Approved for more than needed "for convenience". Exposes your wallet to any amount up to the approved figure for as long as the approval exists.

Unlimited (uint256 max)High risk

The contract can transfer your entire token balance at any time. A single exploit or ownership transfer on the approved contract drains your wallet completely.

Attack vectors

How approvals are exploited

Contract exploit after approval

If a DeFi contract is exploited after you have given it unlimited approval, the attacker can drain your full balance of the approved token - long after you stopped using the protocol.

Ownership transfer to a malicious wallet

A contract you approved can be transferred to a new owner who then drains all wallets with outstanding approvals. This has happened with real DeFi protocols; always check that ownership is renounced or behind a timelock.

Upgradeable proxy attack

If the approved contract is an upgradeable proxy, a malicious upgrade can introduce a drain function. Your approval, granted when the original code was clean, now authorises the new malicious implementation.

Approval phishing

A fake website mimics a legitimate DeFi interface and prompts you to sign an approval transaction. The approval looks like a normal swap but grants the attacker's contract unlimited access to your tokens.

Stale approvals accumulate

Every DeFi interaction adds to a list of active approvals. Wallets with years of DeFi history often have hundreds of outstanding approvals to protocols that may no longer be maintained or have been deprecated.

Token approval ≠ swap approval

An approval transaction is not the swap itself. It is a separate permission step that persists indefinitely. Many users sign approvals without understanding that they remain active until explicitly revoked.

Practical steps

How to manage approval risk

01

Before approving: check the contract

Before signing any approval, verify the contract you are approving: is it audited? Is ownership renounced or time-locked? Is it an upgradeable proxy? A scanner resolves all three in seconds.

02

Approve only the exact amount needed

Most DEX interfaces offer a custom amount option. Set the approval to exactly the swap amount. Yes, it means an extra approval transaction next time - that is a worthwhile trade-off against unlimited exposure.

03

Audit your existing approvals

Use a token approval checker (specific to your chain) to view every active approval granted by your wallet. Sort by amount: unlimited approvals to unknown or deprecated contracts are the priority.

04

Revoke dormant approvals

Revoking an approval is a standard ERC-20 transaction (approve with amount = 0). Each revocation costs a small gas fee. Prioritise unlimited approvals and contracts you no longer use.

05

Check the approved contract for risk

An approval scanner shows you what you have approved, but not the risk level of what you approved. Cross-check the approved contract address for proxy status, ownership, and known exploits.

Check a contract before approving

Check ownership, proxy status, and audit history in one scan.

Common questions

Frequently asked questions