Unhook

Find every contract that can still spend your tokens.

Each swap, sell or deposit leaves an approval behind, and most of them are unlimited. Unhook lists every one your wallet has given on Robinhood Chain and revokes the ones you no longer use.

Read only. Scanning needs no wallet and no signature.

An approval outlives the trade.

To swap a token, a wallet first calls approve(spender, amount). Most apps ask for the maximum so you only approve once. The trade ends in seconds, but the permission stays on chain until you set it back to zero.

If that contract is ever exploited, or the spender was never honest, it can move the approved tokens out of your wallet without asking you again. That is how most wallet drains happen.

Your wallet 1,240 USDG Spender 0x5555…3e9e allowance: unlimited approve(spender, 0) The permission stays until you set it to zero.

What Unhook reads.

Everything comes from Robinhood Chain itself, straight from your browser. There is no backend that stores your address or what it owns.

SourceHow it is checked
27 Stock Tokens, USDG, WETHEvery well-known spender is checked on all of them. For each one you hold, Unhook also reads the full history of Approval events your wallet ever emitted, so spenders you have forgotten show up too, then the live allowance of each.
Pons memesThe newest 5,000 launches from the pons factory and every pons meme with a live market on GeckoTerminal, checked against the pons router and each token's own curve in a few multicall reads.
Common spendersUniswap's router and position manager, Permit2 and the 0x allowance holder are named, so you know what you are looking at.
Any token you pasteAdd a token address and Unhook reads its whole approval history for your wallet the same way.

Ranked by what can go wrong.

An approval is only as safe as the spender. Unhook checks whether the spender is a contract or a plain wallet, and whether it is one of the well-known routers.

RiskWhen
HIGHAn unlimited approval to a plain wallet, or to a contract nobody has named. A wallet as spender can take the tokens whenever it wants.
MEDIUMAn unlimited approval to a known router. Normal after a swap, still worth revoking if you no longer trade there.
LOWA limited amount. The spender can never take more than that number.

Revoking is one transaction.

Unhook has no contract of its own. A revoke is the token's own approve(spender, 0), sent from your wallet, and costs a fraction of a cent in gas.

Paste or connect

Any address can be scanned. To revoke you connect the wallet that gave the approvals.

Pick what to drop

Filter to unlimited or high risk, or revoke everything the wallet no longer uses.

Confirm in your wallet

Each revoke is checked again after it lands. The row turns grey once the allowance reads zero.

token.approve(spender, 0)

Questions

Does Unhook ever hold my tokens?

No. There is no Unhook contract. Scans are read only, and a revoke is a call to the token contract itself that only lowers an allowance to zero.

Why does the full scan take a minute?

The public Robinhood Chain RPC limits how many blocks one request can cover, so the history of each token you hold is read in ten slices, gently enough not to be rate limited. Pons memes and known spenders are checked by multicall in seconds.

Will revoking break apps I still use?

The next time you trade there, the app asks for approval again. Nothing else changes.

What about NFTs and Permit2 signatures?

This version covers ERC-20 approvals, which hold the money. Permit2 itself is listed as a spender when you have approved it; its own sub-allowances are on the list for a later version.

Is it audited?

There is no contract to audit. The site's code runs in your browser and only calls standard token functions.

Check a wallet now.

Takes about a minute, needs no signature.