[{"data":1,"prerenderedAt":38},["ShallowReactive",2],{"blog-content-en-how-to-revoke-token-approvals":3},{"slug":4,"title":5,"excerpt":6,"description":7,"bodyHtml":8,"faqItems":9,"howToSteps":22},"how-to-revoke-token-approvals","How to Revoke Token Approvals (and When You Should)","Every swap and deposit you approve leaves a standing permission on-chain, and it stays live until you revoke it. A revocation is an ordinary transaction you sign yourself, in WATS or any non-custodial wallet holding that address. Here is how to find your old approvals, revoke the risky ones, and keep the list short.","How to revoke token approvals: find every spender your address has approved, cancel the risky ones, and sign each revocation from WATS. The five triggers that mean revoke now, what it costs, and what revoking cannot undo.","\u003Cblockquote>\u003Cp>To revoke a token approval, send a transaction that sets that spender's allowance to zero: look your address up in a reputable allowance dashboard or block explorer, sort the spenders by allowance size and by how much of the token you actually hold, confirm one small revoke transaction for each spender you want to cut off, then check the list shows zero afterward. Do this per chain, because an approval on Ethereum is a completely separate record from one on Arbitrum, Base or Polygon. Revoke straight away if a protocol you approved was hacked or abandoned, if you granted an unlimited allowance for a one-off swap, or if you no longer trust the site that asked for it. Revoking only stops future spending: it cannot recover tokens already taken, it does nothing about a leaked seed phrase, and it does not cancel an EIP-2612 Permit you already signed, which stays valid until its deadline passes or its nonce is consumed. The revocation itself is signed from your own wallet, and WATS is fully non-custodial across Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana and TON, so only you can sign it, and on EVM chains the fee for it can be paid in ATS instead of that network's native gas token.\u003C\u002Fp>\u003C\u002Fblockquote>\u003Ch2>What a token approval actually leaves behind\u003C\u002Fh2>\u003Cp>When you swap on a DEX or deposit into a lending protocol, the app usually asks you to \u003Cem>approve\u003C\u002Fem> its contract to spend a token from your address. That approval is not part of the trade itself. It is a separate record written into the token's contract that says a specific spender may move up to a specific amount of that token on your behalf. The trade finishes, but the record does not. Unless you set a tight limit, it sits there indefinitely, and many apps still request an effectively unlimited allowance for convenience. If the mechanics are new to you, the deeper walkthrough in \u003Ca href=\"\u002Fblog\u002Ftoken-approvals-and-permit-explained\">our guide to approvals and Permit signatures\u003C\u002Fa> explains how allowances and gasless Permit messages differ.\u003C\u002Fp>\u003Ch2>Why old approvals are a real risk, not just clutter\u003C\u002Fh2>\u003Cp>An allowance is only as trustworthy as the contract holding it. If a protocol you approved years ago is later exploited, upgraded maliciously, or has an admin key stolen, the attacker can call \u003Cem>transferFrom\u003C\u002Fem> against every address that still has a live allowance, without needing your signature or your keys. This is exactly how several well-known incidents drained users who had not touched the affected app in months. The risk is asymmetric: the approval cost you one click long ago, but it keeps granting spending power for as long as it exists. Signature-based permissions add a second layer: a Permit you signed can be submitted later, and until it is, there is no on-chain allowance to revoke yet. Revoking closes the door on allowances that already exist on-chain; an unused Permit signature needs the different handling covered below.\u003C\u002Fp>\u003Ch2>When you should revoke: five clear triggers\u003C\u002Fh2>\u003Cp>You do not need to purge everything weekly. Revoke when one of these happens. \u003Cstrong>One:\u003C\u002Fstrong> the protocol was hacked, exploited, or paused under suspicious circumstances, even if your funds were not hit yet. \u003Cstrong>Two:\u003C\u002Fstrong> you approved an unlimited amount for a one-off action, such as a single swap on an app you will not use again. \u003Cstrong>Three:\u003C\u002Fstrong> you interacted with something you no longer trust, like a mint site or airdrop claim page that later looked suspicious. \u003Cstrong>Four:\u003C\u002Fstrong> the project is abandoned, since unmaintained contracts with admin keys are soft targets. \u003Cstrong>Five:\u003C\u002Fstrong> the approval is for a large balance you now hold long term, where even a small chance of compromise is not worth the standing exposure.\u003C\u002Fp>\u003Ch2>Step by step: how to find and revoke approvals\u003C\u002Fh2>\u003Cp>First, list what is out there. Reputable allowance dashboards and several block explorers can show every spender your address has approved, per token and per chain, once you enter or connect your address. Read-only lookups by address are safest; if you do connect, treat it with the same care described in \u003Ca href=\"\u002Fblog\u002Fhow-to-connect-wallet-to-dapp\">our guide to connecting a wallet to a dapp\u003C\u002Fa>. Second, sort the list by allowance size and by how much of the token you actually hold, since an unlimited allowance on a token you own a lot of is your top priority. Third, revoke: a revocation is simply a new approval transaction that sets the allowance for that spender to zero, so you confirm one small transaction per approval you cancel. Fourth, verify the dashboard shows the allowance at zero afterward. Repeat per chain, because approvals on Ethereum, an L2, and other networks are entirely separate records.\u003C\u002Fp>\u003Ch2>What revoking costs and what it cannot undo\u003C\u002Fh2>\u003Cp>Each revocation is an on-chain transaction, so it costs a normal fee on that network, typically small on L2s and larger on Ethereum mainnet during busy periods. Batch tools exist, but each allowance still requires its own state change. Be clear about the limits: revoking stops \u003Cem>future\u003C\u002Fem> spending, it cannot recover tokens that were already taken. It also does nothing about a compromised seed phrase, since an attacker with your key does not need an allowance at all. A signed but unused Permit is trickier. For a standard EIP-2612 permit, whoever holds the signature can submit it any time before its deadline, and it sets the allowance to the signed value no matter what you zeroed beforehand, often draining the tokens in the same transaction. Pre-emptive zeroing does nothing there: the signature dies only when its deadline passes or its nonce is consumed or invalidated, which you can sometimes force by signing and submitting a fresh permit that burns the same nonce; moving the tokens to another address does not kill the signature, it just leaves nothing for it to take. Permit2-style flows are the exception, since revoking the token allowance you granted to the Permit2 contract does cut off its outstanding signatures.\u003C\u002Fp>\u003Ch2>Habits that keep your approval list short\u003C\u002Fh2>\u003Cp>Prevention is cheaper than cleanup. When an app lets you edit the approval amount, set it to roughly what the transaction needs instead of unlimited. Prefer apps that use tight, time-boxed, or per-trade permissions. Do a quick allowance review whenever you finish using a protocol for good, while the context is fresh. Keep long-term holdings on an address that rarely signs anything, and do your experimenting from a separate hot address, a pattern covered in \u003Ca href=\"\u002Fblog\u002Fcrypto-wallet-security-best-practices\">our wallet security best practices\u003C\u002Fa>. As of 2026, newer standards are pushing toward expiring, granular permissions, but the old-style infinite allowance is still everywhere, so the habit still matters.\u003C\u002Fp>\u003Ch2>Where WATS fits in approval hygiene\u003C\u002Fh2>\u003Cp>Approval cleanup is a stack of small transactions, and the friction is almost always gas: to zero an allowance on a chain, you normally need that chain's native coin sitting in the wallet, which is exactly why people leave old approvals live on the three or four networks they used once. Be clear about the split of work here. WATS does not have an approval-revocation tool of its own: the finding is done in an allowance dashboard or explorer, and the signing is done in whichever wallet holds the address. WATS covers that second half. It is fully non-custodial across Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana and TON, so you hold the keys, WATS never holds a key, and a revocation stays something only you can sign, from the \u003Ca href=\"\u002Fchrome-extension\">Chrome extension\u003C\u002Fa>, the mobile app or the \u003Ca href=\"\u002Fhot-wallet\">Hot Wallet\u003C\u002Fa>. Network fees for those transactions can be paid in ATS rather than each chain's native gas token, using ERC-4337 account abstraction on EVM chains, with ATS moving omnichain as a LayerZero OFT. That is not a discount, since the fee still tracks the live network cost and only the paying token changes, but it does mean one balance to keep topped up instead of one per chain, which removes the most common excuse for postponing a revoke. Collected ATS is burned, taking supply from 100M toward a 30M floor.\u003C\u002Fp>\u003Ch2>Bottom line\u003C\u002Fh2>\u003Cp>A token approval is a standing permission that long outlives the trade it was created for, and cancelling one is a single transaction: list the spenders on your address, prioritize unlimited allowances on tokens you hold in size and anything approved to a hacked or abandoned protocol, set those allowances to zero, then confirm the dashboard agrees. Keep the limits in view too, because revoking will not claw back tokens that already moved, will not save a leaked seed phrase, and will not cancel an EIP-2612 Permit you have already signed. The concrete step is to run the review this week: pull your address up in a reputable allowance checker, then sign the revocations from WATS, where you hold the keys across all eight supported chains and can pay the fee in ATS instead of hunting down a separate native gas token for every EVM network on your list.\u003C\u002Fp>",[10,13,16,19],{"q":11,"a":12},"Does revoking a token approval return my tokens?","No. Revoking sets a spender's allowance to zero so it cannot move your tokens in the future. Anything already transferred out is gone, and revocation cannot reverse past transactions.",{"q":14,"a":15},"How much does it cost to revoke an approval?","A revocation is a normal on-chain transaction, so you pay the network's standard fee once per approval you cancel. On most L2s this is small; on Ethereum mainnet it costs more during congestion.",{"q":17,"a":18},"Do I need to revoke approvals on every chain separately?","Yes. Allowances are records inside each token contract on each network, so an approval on Ethereum is completely separate from one on an L2 or another chain. Check and revoke per chain. If you use WATS, that means walking the list separately on each EVM chain you have connected to a dapp from: Ethereum, Arbitrum, Optimism, Base, Polygon and BNB Chain. Solana works differently, with a delegate set on a token account that you clear with a revoke instruction, and TON jettons have no standing spender allowance to clean up at all.",{"q":20,"a":21},"Can I revoke token approvals from a WATS wallet?","Yes, because a revocation is just an ordinary transaction you sign with the keys for that address, and WATS is a fully non-custodial wallet across Ethereum, Arbitrum, Optimism, Base, Polygon, BNB Chain, Solana and TON. To be precise about the division of labour: WATS does not include an approval dashboard of its own, so you find the live allowances in a reputable allowance checker or block explorer, then sign the zero-allowance transaction in the WATS Chrome extension, mobile app or Hot Wallet. You hold the keys and WATS never holds a key, so nobody else can revoke on your behalf. On EVM chains the fee for each revocation can be paid in ATS instead of that chain's native gas token, so one ATS balance covers the cleanup rather than a separate native-gas balance on every network you have to visit.",[23,26,29,32,35],{"title":24,"body":25},"List your existing approvals","Use a reputable allowance dashboard or block explorer to look up your address and see every spender you have approved, per token and per chain. A read-only lookup by address is the safest way to do this.",{"title":27,"body":28},"Prioritize the risky ones","Sort by allowance size and by how much of each token you hold. Unlimited allowances on tokens with large balances, and approvals to hacked or abandoned protocols, go first.",{"title":30,"body":31},"Send the revocation transaction","For each spender you want to cut off, confirm the revoke action, which submits a transaction setting that allowance to zero. Each revocation costs one normal network fee.",{"title":33,"body":34},"Verify the allowance is zero","Refresh the dashboard and confirm the spender's allowance now reads zero. If an unused signed Permit is involved, zeroing does not help: let its deadline pass, consume or invalidate its nonce where supported, or move the tokens out so there is nothing left for it to take. For Permit2, revoke the token allowance you granted to the Permit2 contract, which does cut off its outstanding signatures.",{"title":36,"body":37},"Repeat on every chain you use","Approvals are separate records per network. Run the same check on Ethereum, each L2, and any other chain where you have interacted with dapps.",1786059318710]