Home

Token Approvals & Blind Signing

How to Revoke Token Approvals

Spot the edge. Swoop in.

Every token approval you've ever granted keeps working until you deliberately turn it off, and turning it off requires paying for another on-chain transaction, which is exactly why most wallets are carrying old, forgotten approvals right now. This is the practical, tool-agnostic guide to finding every approval you've granted, deciding which ones still deserve to exist, and submitting the revoke transaction for the rest, plus a worked example, a recommended review cadence, and the gas-cost tradeoffs that shape when it's actually worth doing.

By Swoopr Editorial Team

Published · Updated

AI-assisted content · Swoopr is responsible for the final published article.

Scope: The Cleanup Step, Not the Full Approvals Picture

Swoopr's Token Approvals & Blind Signing hub covers what an approval is, why granting one is unavoidable in DeFi and NFT trading, and how attackers exploit them through phishing and malicious contracts. This page is narrower and entirely practical: it's about the maintenance step most people skip, going back through the approvals you've already granted and turning off the ones you no longer need. If you're still figuring out what an approval actually is or want the unlimited-versus-limited tradeoff explained first, start with the hub and its companion pages, Unlimited vs. Limited Approvals and Token Allowance Checker Tools. This page assumes you already understand the concept and want the process for cleaning up what's already out there.

Key Takeaways

Direct answer: Revoking a token approval means submitting a new on-chain approve transaction that resets the allowance for a specific token-and-spender pair to zero. It costs gas because it's a real transaction, which is why unused approvals pile up for years. The fix is a recurring habit: connect a wallet read-only to an approval-checking tool, review every approval you've ever granted, and revoke the ones tied to protocols you no longer use, don't recognize, or no longer trust, on a cadence of roughly every two to three months rather than as a single one-time cleanup.

What "Revoking" Actually Means On-Chain

An approval is a value stored inside a token's smart contract, mapping a token owner's address, a spender's address, and an allowance amount together. When you approve a decentralized exchange, a staking contract, or an NFT marketplace to spend a token on your behalf, you're calling that token contract's approve function and setting a number for exactly that owner-spender pair. The contract remembers this number indefinitely; there's no expiration, no automatic timeout, and no built-in cleanup. It stays exactly as you set it until you call approve again for that same pair with a different number.

Revoking is not a special, separate blockchain operation. It's the same approve function, called again, with the allowance argument set to zero. Once that transaction confirms, the spender contract's stored allowance for your address drops to zero, and any future attempt by that contract to move your tokens using the approval mechanism fails, because there's no longer any allowance left to spend against. Nothing about the original approval transaction is deleted or hidden; it remains permanently visible in the blockchain's transaction history, exactly like every other transaction you've ever sent. What changes is the current state the contract checks before allowing a transfer, not the historical record of what happened.

This distinction matters because it explains the cost. Reading the blockchain's current state, checking what approvals exist and what their values are, is free; it's just a query against public data that any wallet, block explorer, or approval-checking tool can run at no cost to you. Changing that state, which is what revoking does, requires the network to process a new transaction and update the contract's stored data, and that work is exactly what gas fees pay for. There's no way to revoke an approval without paying whatever the network's current gas price is, which on congested networks can run from a couple of dollars to considerably more. This is the unglamorous reason unused approvals accumulate: checking your list costs nothing, but doing anything about what you find costs real money, and that asymmetry is exactly why so few people ever get around to it.

The General Process

Specific approval-checking tools change their interfaces, add features, and occasionally shut down or rebrand, so this walkthrough describes the process at the level that stays true across all of them rather than pointing at one specific product's buttons.

Step one: connect read-only

Reputable approval-checking services let you view your wallet's approval list by entering or connecting your public wallet address, which is read-only and requires no signature, transaction, or permission grant of any kind. You're only looking at public blockchain data; nothing at this stage can move funds or grant a new approval. If a tool asks you to sign anything just to view your list, that's a red flag, and it's worth using a different tool instead.

Step two: review every approval across every token and network

A good checker lists every approval currently associated with your address: spender contract, token, and current allowance amount, often shown as either a specific number or "unlimited." Because approvals are per-network, a wallet active on Ethereum mainnet, a layer 2, and a separate chain like Solana will have entirely separate lists to review; there's no single global view spanning every chain with most tools. Take the time to look at the full list rather than skimming, since the point of this review is catching what's easy to forget.

Step three: identify which approvals to remove

For each entry, ask three questions: do I still actively use this protocol, do I recognize this spender contract at all, and if I do, do I still trust its current security track record. An approval tied to a protocol you use weekly and still trust can reasonably stay. An approval to a spender address you don't recognize, a protocol you tried once years ago and never returned to, or a protocol whose contracts have since had a publicized exploit or been abandoned by its team, is a strong candidate for revocation. When in doubt, most checking tools link out to a block explorer or the protocol's own documentation so you can confirm what the contract actually is before deciding.

Step four: submit the revoke transaction for each one you're removing

Selecting an approval to revoke in most tools prepares a transaction that calls approve with a zero allowance for that specific token-and-spender pair, which you then sign and submit through your connected wallet like any other on-chain transaction. Review what the transaction actually does before signing, confirming it's setting an allowance to zero rather than requesting a new approval. Once it confirms on-chain, that approval is closed; repeat for each one you've decided to remove, using batching where the tool supports it, covered below.

Why This Matters Even for Legitimate Protocols You Trust

The most common reason people skip revoking is a reasonable-sounding one: "I used this protocol, it was fine, nothing bad happened, so there's no problem." That reasoning conflates two different questions. Whether a protocol treated you well in the past is a question about historical outcome. Whether an active approval to that protocol's contract is currently a risk is a question about the contract's ongoing existence, and those two questions have almost nothing to do with each other.

An approval doesn't care about your relationship with a protocol. It's a standing grant of spending rights, sitting in a smart contract's storage, that remains fully functional for as long as it exists, regardless of whether you've opened that protocol's app once since. If the contract holding that approval is ever exploited, through a bug in its code, a compromised admin key, or a malicious upgrade, every wallet with an active, sufficiently large allowance to that contract is exposed to whatever the exploit lets the attacker do, which in the worst documented cases has meant draining approved tokens directly from thousands of wallets with no other interaction with the exploit at all. This has happened to protocols that operated safely for years before the exploit occurred; a long clean track record reduces the odds of a future problem but does not reduce it to zero, and an approval left active has no expiration tied to how much time has passed since your last use.

This is the core argument for treating approval review as ongoing maintenance rather than a reaction to something going wrong. You're not trying to identify protocols that are currently unsafe, which is often impossible to know in advance; you're trying to minimize the number of standing liabilities attached to your wallet at any given time, so the blast radius stays small if any one of them turns out to be a problem. An approval you're not actively using provides zero ongoing benefit while it exists, and it does the same thing whether it's been active for three days or three years: nothing, until the one day it's exploited.

Recommended Cadence

Treating approval cleanup as a single one-time project misses the point, because every new protocol interaction adds another entry to the list the moment it happens. A more durable habit is two overlapping practices working together.

The first is a recurring full review, roughly every two to three months for an active DeFi or NFT user, less often for someone who interacts with new protocols rarely. This doesn't need to be exhaustive every time; the goal is catching approvals that have gone stale since the last pass. A recurring calendar reminder works well here precisely because approval cleanup has no natural trigger of its own; nothing about your wallet visibly changes when an old approval sits there unused, so it's easy to forget without a scheduled prompt.

The second is a spot review immediately after using any new or unfamiliar protocol for the first time, especially one you tried once to claim a single airdrop or mint and don't expect to return to. Rather than letting that one-off approval sit indefinitely, revoking it right after the interaction that needed it closes the window while it's still fresh in mind. It's also the cheapest time to revoke it: you're already paying attention to that protocol, rather than trying to reconstruct months later why an unfamiliar spender address is in your approval list at all.

Worked Example: The Forgotten Unlimited Approval

Illustrative walkthrough — for education only.

To make the decision process concrete, here's how a realistic approval review typically plays out.

The setup. Two years ago, a trader connected their wallet to a mid-sized yield farming protocol to try a single liquidity pool during a promotional rewards period. Depositing required an approval, and the wallet's default transaction, unmodified before signing, requested unlimited spending rights for the deposited token rather than a limited amount matching the deposit. The trader signed it without adjusting the amount, withdrew from the pool a few weeks later once the promotional rewards ended, and never used the protocol again. The approval itself, however, was never revoked; withdrawing funds from a pool doesn't automatically clear the approval that let you deposit into it in the first place.

The discovery. During a scheduled quarterly review, the trader connects their wallet read-only to an approval checker and finds the entry: an unlimited allowance, granted two years earlier, to a spender contract they don't immediately recognize by address alone. Clicking through to the linked block explorer confirms it's the yield farming protocol's deposit contract, and a quick search shows the protocol is still operating, hasn't had a publicized exploit, but also hasn't seen a security audit update or meaningful development activity in over a year.

The decision process. The trader isn't actively using this protocol and has no plan to return to it. The approval is unlimited, meaning if this specific contract were ever compromised, whatever balance of that token the wallet holds on the day of any future exploit would be exposed, not just a small deposit-sized amount. Weighed against this is a one-time gas cost, in this case a few dollars on the network the protocol runs on, to submit a revoke transaction. The math is straightforward once framed this way: a few dollars paid once, against an unlimited, indefinite exposure to a contract with no ongoing benefit to the trader whatsoever. There's no scenario where leaving the approval active serves any purpose for someone who isn't using the protocol.

The action. The trader selects the entry in the approval checker, confirms the prepared transaction is setting the allowance to zero for that specific token and spender, and signs it. The gas cost is paid once; the exposure closes permanently, unless the trader chooses to approve that same contract again in the future. This is precisely the scenario the recommended cadence exists to catch, an approval that outlived its purpose by roughly two years before anyone looked at it, not because the trader was careless, but because nothing about the wallet's normal use ever surfaced it.

Practical Considerations

Batch revoking

Reviewing and revoking approvals one at a time means paying a full transaction's gas cost for every single revocation, which adds up quickly for a wallet with a dozen or more stale approvals. Several approval-management tools support batching multiple revocations into a single multicall transaction, bundling several approve-to-zero calls into one that pays only one base transaction cost instead of many. Where a tool offers this, selecting several approvals for removal at once and submitting them together is meaningfully cheaper in total gas than repeating the single-revoke process individually. This isn't universal, not every tool or network handles large batched calls the same way, and an extremely large batch can in rare cases approach a block's gas limit, but for a typical cleanup of five to fifteen approvals it's worth checking for a batch option before revoking one by one.

Weighing gas cost against ongoing risk

Every revocation decision is, at bottom, a comparison between a one-time, known cost and an ongoing, unknown risk. The gas cost is concrete: you can see exactly what it will cost before signing. The risk from leaving an approval active is diffuse and impossible to price precisely, since it depends on whether that specific contract is ever exploited, which nobody can predict with certainty. This asymmetry, a certain small cost versus an uncertain but potentially total loss, is why the reasonable default leans toward revoking anything you're not actively using: the downside of revoking something you didn't need to is a few dollars in gas and the minor inconvenience of re-approving later, while the downside of leaving an unnecessary approval active is open-ended for as long as it exists.

Misconceptions Versus Reality

MisconceptionReality
Revoking a token approval is freeRevoking requires submitting a real on-chain transaction and paying network gas, exactly like the original approval did, which is a major reason so many approvals are never cleaned up
Using a hardware wallet means I don't need to worry about approvalsA hardware wallet protects your private key from theft and remote extraction, but it doesn't undo the consequences of an approval you deliberately or mistakenly signed, including one signed on the device's own screen
Withdrawing funds from a protocol automatically clears the approval you granted itWithdrawing or unstaking only moves the tokens you deposited; the underlying approval allowing that contract to spend the token remains active until you separately revoke it
Checking your approval list is risky or could accidentally trigger a transactionViewing your approval list is a read-only query against public blockchain data and requires no signature or transaction; only choosing to revoke something requires signing
An approval to a protocol I used safely for years is obviously fine to leave alonePast safe use says nothing about whether the contract remains a reasonable risk today; an approval is exposed to whatever happens to that contract for as long as it stays active, regardless of your own history with it

Common Mistakes

Risks, Limitations, and Exceptions

Practical Implementation Checklist

  1. Connect your wallet address read-only to a reputable approval-checking tool; never sign anything just to view your list.
  2. Review the full approval list for each network your wallet is active on, not just the one you check most often.
  3. For each approval, confirm whether you still actively use the protocol and whether you still recognize and trust the spender contract.
  4. Flag approvals tied to protocols you no longer use, don't recognize, or have lost confidence in for revocation.
  5. Use a batch-revoke option where the tool offers one, to reduce total gas cost across multiple revocations.
  6. Confirm each prepared transaction is setting the allowance to zero before signing, not requesting a new approval.
  7. Set a recurring reminder, roughly every two to three months, for a full review rather than treating this as a one-time task.
  8. Do a spot review and revoke immediately after any one-off interaction with a new or unfamiliar protocol.

Sources

Frequently Asked Questions

What does it actually mean to "revoke" a token approval?

Revoking means submitting a new on-chain transaction that calls the same approve function you originally used, but sets the allowance for that specific token-and-spender pair back to zero. It doesn't delete or undo the original approval transaction, which stays on the blockchain permanently; it simply overwrites the current allowance value, so the spender contract can no longer move any of that token from your wallet.

Does revoking a token approval cost gas?

Yes. A revocation is an on-chain transaction like any other approve call, so it requires paying network gas fees, and on networks with high gas costs this can run from a couple of dollars to considerably more depending on network congestion. This cost, not laziness, is the main reason so many wallets accumulate years of unused approvals that were never cleaned up.

Why should I revoke an approval to a protocol I used safely for years?

An approval is a standing liability for as long as it exists on-chain, independent of how safely you used the protocol in the past or how long ago you stopped. If that protocol's contract is ever exploited in the future, even years after your last interaction, any wallet with an active, sufficiently large approval to its contract is exposed to that exploit, regardless of current activity level.

How often should I review and revoke unused token approvals?

A practical cadence is a full review every two to three months, plus a spot review immediately after using any new or unfamiliar protocol for the first time. Treating approval cleanup as a recurring habit rather than a one-time task matters because every new interaction adds another entry to the list, and the list only gets riskier and harder to review the longer it's ignored.

Can I revoke multiple approvals in a single transaction?

Some approval-management tools support batching several revocations into one multicall transaction, which pays a single base transaction cost instead of a separate one for every approval. This meaningfully reduces the total gas spent when cleaning up a long list, though not every tool or every network supports it, and very large batches can still hit block gas limits.

Does using a hardware wallet mean I don't need to worry about token approvals?

No. A hardware wallet protects your private key from theft, malware, and remote extraction, which is a genuinely different problem from token approvals. It does nothing to undo the consequences of an approval transaction you deliberately or mistakenly signed, including signing it on the hardware device's own screen, so approval hygiene is a separate, additional practice, not something a hardware wallet substitutes for.

Is it safe to assume an approval to a protocol I no longer use is "probably fine" to leave alone?

No. That assumption skips the actual question, which is whether the protocol's contracts remain a reasonable security risk today, not whether it seemed fine when you used it. A protocol can be abandoned, under-maintained, or later found to contain a vulnerability well after your last interaction, and an unused approval provides no benefit in exchange for that ongoing exposure, which is exactly why leaving it unreviewed is a common mistake rather than a neutral default.

Conclusion

Revoking a token approval is a straightforward transaction, an approve call with the allowance set to zero, but the gas cost attached to that transaction is exactly why so many wallets are carrying old, forgotten approvals that provide no benefit and no shortage of ongoing risk. The fix isn't a one-time cleanup; it's a recurring habit of connecting read-only to a checking tool, reviewing the full list across every network you use, and weighing a small, known gas cost against an open-ended, unknown risk for anything you're not actively using. Pair this with Unlimited vs. Limited Approvals to understand why the amount you approve in the first place matters just as much as whether you eventually revoke it, and the Approval Best Practices Checklist for the full set of habits beyond just cleanup.

Related Reading