SEED·KNOT

Clean up

Checking and revoking the approvals you already gave

You may have granted dozens of approvals, and you have forgotten most of them. They do not expire and nothing reminds you — until the day one of those contracts has a problem.

Illustration: check, revoke, allowance and cadence arranged on a seed-card grid

01Why this is worth doing at all

Because approvals are sign-once, live-indefinitely. The permission you granted two years ago for a single swap can still be used to move your tokens today, and the only requirement is that the contract turns out to have a problem.

Losses of this kind have a disorienting shape: your seed phrase never leaked, the device is clean, you may not have touched the wallet in months — and part of the balance is gone. The cause is usually an ancient approval being exercised.

How approvals arise and what unlimited allowance means are in signatures and approvals. This piece is only about dealing with the ones already out there.

02Where to look

Two routes: a dedicated approval management site, where entering an address lists what it has authorised; or the token approval page on that chain's block explorer. The first is easier to read, and neither requires connecting a wallet just to look.

Screenshot of the Revoke.cash documentation page explaining what token approvals are
The public documentation page of a widely used approval manager (captured 2026-08), explaining what token approvals are. The site's own navigation renders in whatever language your browser requests, so the menu here appears in Chinese while the article text is English — the substance is unaffected.

Points worth observing:

  • Do not connect a wallet just to look. Paste the address and query it; you see the same information. Connecting is only needed to actually execute a revocation.
  • Check the domain. Tools like this get cloned heavily, because their visitors are by definition people who hold assets and are currently thinking about security.
  • Check each chain separately. Approvals are recorded per chain. Clearing one leaves the others untouched.

03Reading the list

Each row is roughly: which token, which contract holds the permission, how large the allowance, and when it was last used. Deal first with anything combining an unlimited allowance and a contract you do not recognise.

What to revoke, in priority order
What you seeRiskDo
Unlimited allowance, unknown contractHighestRevoke now
Unlimited allowance, an app you have not used in agesHighRevoke; re-approve if ever needed
An approval on a token you hold a lot ofHighRevoke, or cap the allowance
Capped allowance, small figureLowLeave it
A mature app you use frequentlyMediumKeep, but add to the review list

One category is easy to miss: entries you never deliberately approved. Those usually trace back to a signature you believed was only a verification. Revoke on sight, and consider moving the assets at that address elsewhere.

NFT approvals are not the same as token approvals

Two shapes appear in these lists, and people commonly handle only the first:

  • Token approvals are granted by quantity, which is why they have an allowance you can reduce.
  • NFT approvals are typically granted per collection, with no amount to adjust — only on or off. Once on, every item you hold in that collection can be moved, including ones you acquire afterwards.

The risk profile of the second is closer to "unlimited", and because there is no alarming number on screen, people are less alert to it. If you have ever touched an NFT marketplace or campaign, review that category too; most approval managers separate them into tabs.

04The act of revoking

Revoking sets the allowance to zero. It is an on-chain transaction, so it needs your signature and a network fee. It does not touch the assets you hold; it withdraws a permission.

  1. Select the entry in the tool and choose revoke.
  2. Your wallet raises a confirmation. Check that it shows an allowance of zero, or the word revoke.
  3. Pay the fee and wait for inclusion.
  4. Refresh the list and confirm the entry is gone or zeroed.

On cost, plainly: dozens of entries on an expensive chain adds up. You can work down the priority order above and handle only the high-risk ones, or batch them when the network is quiet. Why fees move is in gas fees.

When revoking fails or hangs

It gets stuck like any other transaction, with two wrinkles specific to this situation:

  • You need native tokens to pay for it. If the address holds only the approved tokens and no native token, you cannot even revoke. Send a little native token in first.
  • If you suspect assets are actively being taken, do not fixate on revoking. Revocation has to queue and confirm, and so does the attacker's withdrawal. Moving the remaining assets to a fresh address is the better use of your one chance to act first — the two are parallel transactions, and saving the funds is worth more than closing the door.

A stuck revocation can be replaced the usual way, by re-sending at a higher fee with the same sequence number.

A blunter option

If one address's approvals are messy enough that you do not want to work through them, create a new wallet, move the assets across and abandon the old address. That is cleaner than revoking one by one, at the cost of a few transfer fees. Provided the new wallet's seed phrase is properly backed up — do not solve one problem by creating another.

05How often to do this

There is no correct interval. A workable rhythm is: clean up after each round of on-chain activity, and glance at it every few months otherwise. The frequency matters less than it actually happening.

Rather than setting a schedule you will not keep, attach it to something you already do:

  • After finishing with a new application, revoke that approval straight away.
  • Before moving a significant amount into the wallet, review the list.
  • When you hear an application has been exploited, check whether you ever granted it anything.

What a review session actually looks like

The word "review" makes this sound larger than it is. Done properly it takes about ten minutes, and the steps are the same every time:

  1. List the chains you have used with this address. Not the ones you use now — the ones you have ever used. Approvals sit where you left them, including on chains you moved away from a year ago.
  2. Query the address on each of them, without connecting a wallet. Paste it in and read. If a tool insists on a wallet connection before it will show you anything, use a different tool.
  3. Sort by allowance, largest first. Unlimited entries rise to the top, which is exactly the order you want to work in.
  4. Take the first pass on recognition alone. Anything you cannot place at all goes on the revoke list immediately; you do not owe an unknown contract the benefit of the doubt.
  5. Take the second pass on usage. Applications you recognise but have not touched in months also go on the list — re-approving later costs one fee, and leaving it costs an open permission.
  6. Revoke, highest risk first. If fees make clearing everything unattractive, stop partway. A partial clean-up is worth considerably more than a postponed complete one.
  7. Note where you stopped. Which chains you covered and which you did not, so next time starts from a known point rather than from scratch.

Two things worth knowing before your first pass. The list will probably be longer than you expect — people who have used a handful of applications routinely find dozens of entries, because a single session with an application can generate several. And you will not recognise a fair number of them, which is normal rather than a sign that something is wrong: contract addresses are not memorable, and interfaces rarely tell you what they are about to request permission for.

Neither of those is a reason to stop. Not recognising an entry is itself sufficient grounds to revoke it — a permission you cannot account for has no upside for you, whatever its origin.

For a checklist version, use the approval risk self-check.

06What revoking does not cover

It withdraws token permissions and nothing else. It does not help with an exposed seed phrase, it does not recover assets already moved, and it cannot undo a completed transfer.

  • If the seed phrase leaked, revoking is pointless. The holder can simply transfer; they need no permission. The only useful action is moving everything to a new, properly backed-up wallet.
  • Assets already taken do not come back. Revocation only affects the future.
  • Approve again and the permission returns. So the real defence remains reading prompts before confirming.

The routes that do not involve approvals are in how wallets actually get drained.

07Common questions

How do I see which approvals I have granted

Use a dedicated approval management site and paste your address in — no wallet connection needed — or use the token approval page on that chain's block explorer. Approvals are recorded per chain, so check each chain separately.

Does revoking cost money

Yes. Revocation is an on-chain transaction and requires a network fee. With many entries, work down by risk priority or batch them when the network is quiet to reduce the total.

How often should I clean approvals up

There is no standard interval. Attach it to habits you already have: revoke after finishing with a new application, review before moving a large amount in, and check immediately whenever you hear an application has been exploited.

Can revoking recover coins that were already taken

No. Revocation only affects future use of the permission and does nothing about a completed on-chain transfer, which is irreversible once confirmed.

My seed phrase may have leaked. Does revoking help

No. Someone holding the seed phrase can transfer directly and needs no approval. The only effective response is moving all assets immediately to a brand new wallet address that has been backed up properly.