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.
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.
| Source | How it is checked |
|---|---|
| 27 Stock Tokens, USDG, WETH | Every 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 memes | The 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 spenders | Uniswap's router and position manager, Permit2 and the 0x allowance holder are named, so you know what you are looking at. |
| Any token you paste | Add 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.
| Risk | When |
|---|---|
| HIGH | An unlimited approval to a plain wallet, or to a contract nobody has named. A wallet as spender can take the tokens whenever it wants. |
| MEDIUM | An unlimited approval to a known router. Normal after a swap, still worth revoking if you no longer trade there. |
| LOW | A 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.
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.
