Revoke Token Approvals
Find the contracts your wallet has given permission to spend its tokens, and revoke the ones you no longer use.
Not available on Solana
Token Approvals does not run on Solana yet. It works on 18 other chains.
Common questions
What is a token approval?
Permission for another contract to move your tokens without asking again. Every swap, bridge and marketplace needs one before it can trade on your behalf, and almost all of them ask for an unlimited amount because it saves you approving again next time. The permission does not expire, it survives the site being abandoned, and it stays valid if the contract behind it is later replaced.
Why can it not just show me all of my approvals?
Because no such question exists on an EVM chain. There is no call that asks what a wallet has approved: you can ask what one named spender is allowed, but the chain will not list them. The only way to find candidates is to read historical approval events, and the public endpoints that serve those cap how many blocks one query may cover. That is why this scans a window, tells you the date it reached, and lets you keep going.
Is revoking dangerous? Can it take my tokens?
No. A revoke sets a spender's allowance to zero. It moves nothing, transfers nothing and cannot take anything from you. The only cost is the gas for one transaction. If a site later needs permission again it will simply ask again.
Why does an approval on a wallet holding nothing still show as high risk?
Because an unlimited allowance covers every token that ever arrives at that address, not just what is there today. That is exactly how a forgotten approval on an empty wallet turns into a loss a year later, when tokens are sent to it and taken the same day.
What is the difference between the two kinds shown?
An allowance is an amount of one token a spender may take. An operator approval, which comes from setApprovalForAll, is permission over every NFT you hold in one collection, now and in the future, with no amount limiting it. The second is always shown as high risk because there is no mild version of it.
I revoked something and it still appears. Why?
It should not. The list is rebuilt from the chain after every revoke rather than removed on our say-so, so a row that survives means the transaction did not do what was expected. Check the hash on the explorer before revoking again.
Does this work on Solana?
Not yet. Solana has the same idea under a different name: a delegate on a token account can move tokens on your behalf. Reading them is actually easier there, because the delegate is a field on the account rather than something reconstructed from history. It is a separate tool and it is not built, so this one does not claim it.
Why the date matters more than the count
Almost every contract that trades for you asks for an unlimited approval, and that permission never expires: a wallet a few years old is usually carrying dozens of live ones, most to front ends that no longer exist. There is no way to ask a chain what a wallet has approved, so this reads approval events in ranges and reports the date it reached, then checks each candidate against the chain so the list is what you could revoke today. A revoke only sets an allowance to zero, moves nothing, and costs one transaction's gas.
Related: before you approve a new contract, Rug Check reads what it can do; before you send to an address, try Address Check; and to give up your own token's powers, use Revoke Authorities.
