ETH/USD$2,393.29LIVE
BTC/USD$81,227.02LIVE
SOL/USD$103.55LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.20LIVE
ETH/USD$2,393.29LIVE
BTC/USD$81,227.02LIVE
SOL/USD$103.55LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.20LIVE
ETH/USD$2,393.29LIVE
BTC/USD$81,227.02LIVE
SOL/USD$103.55LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.20LIVE
ETH/USD$2,393.29LIVE
BTC/USD$81,227.02LIVE
SOL/USD$103.55LIVE
XRP/USD$1.31LIVE
ADA/USD$0.21LIVE
DOT/USD$1.11LIVE
BNB/USD$740.20LIVE
Skip to content
Free tool · Read-only · No wallet connection

Token Approval Checker: Find Unlimited ERC-20 Approvals and Revoke Them

Short answer · Updated October 18, 2026

Paste a wallet address to see, live from Ethereum mainnet, which of 12 major tokens (USDC, USDT, DAI, WETH, stETH and more) it has approved to 16 widely used spender contracts such as Uniswap Permit2, 1inch, 0x, CoW Swap, Aave and OpenSea, including unlimited approvals and Permit2 sub-approvals. To revoke one, or to see every approval including unknown and drainer contracts, use Etherscan’s Token Approval Checker or revoke.cash.

Privacy: No wallet connection and nothing to sign. Your address goes from your browser to public Ethereum nodes (PublicNode, with dRPC and 1RPC as fallbacks) in a read-only call. We do not receive or store it. This page never asks for a seed phrase or private key, and neither does any legitimate revoke tool.

A wallet card connected by golden permission threads to swap, vault and marketplace icons, with scissors cutting the thread marked with an infinity symbol

Step 1 · Read-only approval scan (Ethereum mainnet)

Paste a wallet address

Your browser asks public Ethereum nodes for allowance(owner, spender) on 12 major tokens against 16 well-known spender contracts, plus Uniswap Permit2 sub-approvals, in one batched Multicall3 read. No wallet connection, no signature.

Try an example: ·

Step 2 · Any token, any spender

Check one specific approval

Found a suspicious address in a transaction, or use a token that isn’t in our list? Enter the token contract and the spender. Uses the wallet address from Step 1. Reads allowance, symbol, decimals and your balance.

Step 3 · NFTs

Check an NFT “approve all” (setApprovalForAll)

One setApprovalForAll signature lets an operator move every NFT you own in that collection. Enter the collection contract (ERC-721 or ERC-1155) and an operator. Uses the wallet address from Step 1.

We never ask you to sign anything. To revoke, use revoke.cash or Etherscan’s checker (NFT tab) from the wallet that gave the approval.

How to revoke token approvals, step by step

  1. Run the check above and decide what to keep. Approvals for apps you use every week are a convenience; unlimited approvals to apps you tried once, or to older router versions, are exposure with no benefit.
  2. Open Etherscan’s Token Approval Checker or revoke.cash by typing the address yourself, and connect the wallet that gave the approval. Both show approvals this page can’t, including NFTs and unknown spenders.
  3. Click Revoke next to each approval. In your wallet (or on your hardware wallet’s screen), check that the transaction is an approval of 0 to the spender you meant, then pay the gas fee. Check current fees on our gas tracker.
  4. Run this checker again: revoked approvals disappear from the table.

The full background, including how approve, allowance and transferFrom work and how to approve exact amounts instead of unlimited ones, is in our guide Ethereum token approvals: how to review and revoke allowances.

Why approvals are the drainer’s favorite tool

A wallet drainer doesn’t need your seed phrase if you approve its contract or sign a permit for it. Scam Sniffer’s 2025 report counted $83.85 million stolen by wallet-drainer phishing from 106,106 victims on EVM chains, down from $494 million in 2024. The largest single theft, $6.5 million in September 2025, used a malicious Permit signature, and Permit/Permit2 signatures were behind $8.72 million of the 11 cases above $1 million.

The approval request usually arrives through a lure: a fake support agent (see fake crypto exchange support scams and Coinbase support scam calls), an airdrop “claim” page, a hyped new token (check it with our rug pull checker) or a poisoned address in your history (compare it with our Ethereum address checker). Our Scam Watch hub collects the patterns.

How the checker works

For each token it calls allowance(owner, spender) (EIP-20) for every spender below, plus balanceOf and totalSupply, and asks Permit2 for allowance(owner, token, spender) (amount and expiry) for three Uniswap routers. All reads are bundled into Multicall3 aggregate3 calls at 0xcA11bde05977b3631167028862bE2a173976CA11, so a full scan takes one to three requests. An allowance of 2^255 or more is shown as Unlimited (apps usually request 2^256 − 1); an allowance at or above the token’s total supply is flagged as effectively unlimited. Every address in the tables below was checked against the official source listed and confirmed on-chain on October 18, 2026.

Spender contracts we check (16)

SpenderUsed byAddressVerified against
Uniswap Permit2Uniswap and other apps that use Permit20x000000…C78BA3Uniswap docs (deployments)
Uniswap Universal Router (v2)Uniswap0x66a989…dBA8AfUniswap docs + universal-router GitHub
Uniswap Universal Router (v1.2)older versionUniswap0x3fC91A…2b7FADuniversal-router GitHub (deploy-addresses)
Uniswap Universal Router (v1)older versionUniswap0xEf1c6E…54BF6Buniversal-router GitHub (deploy-addresses)
Uniswap SwapRouter02older versionUniswap0x68b346…65Fc45Uniswap docs (v3 deployments)
Uniswap V3 SwapRouterolder versionUniswap0xE59242…861564Uniswap docs (v3 deployments)
Uniswap V2 Router02older versionUniswap (and many v2-era wallets/bots)0x7a250d…F2488DUniswap docs (v2 deployments)
1inch Aggregation Router v61inch0x111111…842A651inch limit-order-protocol GitHub
0x Exchange Proxyolder version0x API (older integrations: Matcha, many wallets)0xDef1C0…b25EfF0x contract-addresses package
0x AllowanceHolder0x Swap API v2 (Matcha, wallets)0x000000…C227340x Settler GitHub README
CoW Protocol Vault RelayerCoW Swap0xC92E8b…FE0110CoW Protocol docs
Aave V3 PoolAave (deposits and repayments)0x87870B…4fA4E2Aave address book (bgd-labs)
Balancer V2 VaultBalancer (and apps routing through it)0xBA1222…6BF2C8balancer-deployments GitHub
OpenSea ConduitOpenSea (WETH offers; NFT listings)0x1E0049…003c71OpenSea seaport-js constants
Lido Withdrawal Queuechecked for stETH, wstETH onlyLido (unstaking requests)0x889edC…12F9B1Lido docs (deployed contracts)
wstETH contract (wrapping)checked for stETH onlyLido (wrapping stETH into wstETH)0x7f39C5…5E2Ca0Lido docs (deployed contracts)

Tokens we check (12)

TokenContractDecimalsVerified against
USDC USD Coin0xA0b869…06eB486Circle
USDT Tether USD0xdAC17F…831ec76Uniswap Labs token list
DAI Dai Stablecoin0x6B1754…271d0F18Sky chainlog (MCD_DAI)
WETH Wrapped Ether0xC02aaA…756Cc218Uniswap docs
WBTC Wrapped BTC0x2260FA…c2C5998Uniswap Labs token list
stETH Lido staked ETH0xae7ab9…D7fE8418Lido docs
wstETH Wrapped stETH0x7f39C5…5E2Ca018Lido docs
LINK Chainlink0x514910…F986CA18Chainlink docs
UNI Uniswap0x1f9840…01F98418Uniswap Labs token list
AAVE Aave0x7Fc665…2DDaE918Uniswap Labs token list
PEPE Pepe0x698250…31193318Uniswap Labs token list
SHIB Shiba Inu0x95aD61…64C4cE18Uniswap Labs token list

NFT operator presets: OpenSea Conduit (OpenSea seaport-js constants); Seaport 1.6 (OpenSea) (Seaport GitHub README).

Token approval checker FAQ

How do I check my token approvals?

Paste your public wallet address into the checker on this page. It reads allowance(owner, spender) live from Ethereum mainnet for 12 major tokens (USDC, USDT, DAI, WETH, WBTC, stETH, wstETH, LINK, UNI, AAVE, PEPE, SHIB) against 16 well-known spender contracts, plus Uniswap Permit2 sub-approvals, and lists every non-zero approval. For a complete list across every token, NFT and spender, use Etherscan’s Token Approval Checker or revoke.cash, which index approval history.

How do I revoke token approvals?

Revoking means sending a transaction from the wallet that gave the approval which sets the allowance back to zero. The simplest ways are Etherscan’s Token Approval Checker (etherscan.io/tokenapprovalchecker) or revoke.cash: connect the wallet, find the approval and click Revoke, then confirm the spender address in your wallet. It costs a small gas fee because it is an on-chain transaction. Type those web addresses yourself; fake “revoke” sites are a common drainer trick.

What is an unlimited token approval, and is it dangerous?

Many apps request the maximum possible allowance (2^256 − 1) so you don’t have to approve again before every swap. It lets that contract move all of that token you hold, now and later. With a widely used, audited contract the main risk is a future bug or exploit; with a malicious contract it means immediate theft. Approve exact amounts for apps you use rarely, and revoke approvals you no longer need.

Does disconnecting my wallet from a site revoke its approvals?

No. Disconnecting only stops the site from seeing your address. The approval lives in the token contract on-chain and stays until you revoke it or it is used up. MetaMask’s help center makes the same distinction between allowances and connected sites.

How can I tell if my wallet is approved to a drainer?

This checker covers well-known spenders only, so a drainer contract will not show up here; use the custom check if you already know the suspicious address. For everything else, open your address on revoke.cash or Etherscan’s checker and look for spenders you don’t recognize or approvals you don’t remember, then revoke them. Revoking stops future transfers but cannot reverse past ones, and if you ever typed your seed phrase into a site, revoking is not enough: move what is left to a new wallet.

What is Permit2, and why does my USDC show an unlimited approval to it?

Permit2 is a Uniswap contract that many apps share. You approve Permit2 once per token, usually for an unlimited amount; each app then gets its own sub-approval inside Permit2 with an amount and an expiry date, normally granted by signing a message. This checker shows both layers. An unlimited approval to Permit2 is normal for Uniswap users, but a signed Permit2 message can move tokens, so only sign those messages on sites you trust.

Do I need to connect my wallet? Is my address stored?

No wallet connection, signature or account is needed. Your address goes from your browser straight to public Ethereum RPC nodes (PublicNode, with dRPC and 1RPC as fallbacks) as part of a read-only eth_call; GrowYourEthereum does not receive or store it. Never paste a seed phrase or private key into any website.

Does it check Base, Arbitrum or other networks?

No, Ethereum mainnet only. Approvals are per network: the same token on Base, Arbitrum or Optimism has separate allowances that this page does not read. revoke.cash and the Etherscan family of explorers cover other networks.

Sources checked October 18, 2026

Sources, standards and official address lists

Related

Educational security tool only, not financial or legal advice. Results come from public Ethereum data at the moment you check and cover only the listed tokens and spenders. GrowYourEthereum is not affiliated with Etherscan, revoke.cash or any protocol named here, and we never ask you to connect a wallet or sign a transaction.