Token Approval Checker & Revoker

Find every token approval a wallet has granted, spot the risky ones, and revoke them — checking never requires a wallet connection.

Only needed to revoke — never to check

Scan for approvals

Reads every approval this address has ever granted, then confirms which are still active on-chain.

Check a specific approval

Already know the token and spender? Read the live allowance directly — works on every chain.

Why old approvals are dangerous

Every time you use a DEX, a bridge, or an NFT marketplace, you typically approve a smart contract to move a token on your behalf. That approval doesn’t expire when you’re done with the app — it sits there indefinitely, often for an unlimited amount, until you explicitly revoke it. If that contract is ever compromised, upgraded maliciously, or was a scam from the start, every wallet that approved it is exposed — sometimes years after the original transaction.

How this tool finds them

An approval is a permission, not a transfer, so it doesn’t show up in a normal balance check. This tool reads the historical Approval events an address has emitted, then checks each one’s current allowance live on-chain — many old approvals have already been reduced to zero through normal use, so only what’s still active is shown.

Checking vs. revoking

Checking is entirely read-only and works for any address, including ones you don’t control — useful for auditing a multisig or double-checking before you trust a new wallet. Revoking requires connecting the wallet that owns the address, since it sends a real transaction that only that wallet’s owner can authorize.

Frequently asked questions

No — checking any address is completely read-only and needs no connection. A wallet is only required for the Revoke button, since sending the revoke transaction needs your signature.

It sends a standard approve(spender, 0) transaction, setting that spender's allowance for the token back to zero. It costs a normal network gas fee and doesn't touch your existing token balance.

Finding every historical approval requires an indexing service, and the free tier we use for that only covers Ethereum, Polygon, and Arbitrum. Use 'Check a specific approval' below instead — it reads live allowance data directly from the chain and works everywhere, including BNB Chain and Base.

Four signals, three computed by us and one from a real third party. Ours: whether the approval is effectively unlimited, whether the spender's contract source code is published (live data from the block explorer), and whether the spender address has no contract code at all. The fourth is an actual threat-intel lookup against GoPlus Security's independently maintained database — if a spender shows up there, we say so and name the exact category (phishing, sanctioned, honeypot, etc.), clearly attributed as their finding, not ours. An unlimited approval to a verified, named contract stays low-concern on its own, since that's routine for many DeFi apps — it only escalates when combined with an unverified or non-contract spender, or a real threat-intel hit. The 'High risk' / 'Worth a review' badge (outside of a GoPlus hit) is our own heuristic verdict, not a claim that Etherscan or Arbiscan has flagged the contract. We still don't maintain our own 'trusted address' list, since a wrong entry in a security tool is worse than no list — use the explorer link on each row to research an unfamiliar spender yourself.

No — unlike Etherscan and Groq, GoPlus Security's API is free, keyless, and open to direct browser requests, so there's no key to generate and nothing to configure. Every spender is checked against it automatically, for both a full scan and a single manual check. If a row shows "GoPlus check unavailable" instead of a result, that just means that one lookup didn't get a response back (rate limit or network hiccup) — it's not something you need to set up, and it's not treated as a clean result.

Wallet addresses are public on-chain information by design — anyone can already see them on a block explorer. This tool never asks for a seed phrase or private key, and the revoke transaction itself is signed entirely inside your own wallet. The one address we do send to a third party is a spender's — checked against GoPlus Security's public threat database so we can show you real findings — your own address is never sent there.

Yes — it's a normal on-chain transaction, so it costs whatever the current network gas fee is on that chain. Check the Gas Tracker if you want to time it for a cheaper moment.