Independent DeFi security desk · Status: operationalMethodology & corrections · Submit an incident
DeFi Safety · Fact checked

How to Review and Revoke Old Token Allowances

A cautious process for reviewing old ERC-20 spending permissions and understanding what a revocation transaction does and does not do.

This article may contain affiliate links. Commercial relationships are disclosed in the affiliate policy.

DeFi Safety — illustration keyed to this article's identifier. Source documents are listed under Sources and are not reproduced here.

An ERC-20 allowance is a standing permission. Once you approve a contract to spend a token, that permission keeps working until you revoke it, regardless of whether you still use the application that received it.

This is the part that surprises people. An allowance is not a record of a past action. It is an open door that a contract you approved two years ago can still walk through, if that contract has been upgraded or if its owners have changed.

What an allowance actually says

Read the approval screen as a sentence with three parts: “contract X is allowed to move up to Y of token Z from your address.”

Each part matters:

  • The contract address. Approving a named application and approving its current proxy contract are different approvals. A proxy can be pointed at new logic.
  • The amount. Unlimited approvals are common and are not by themselves a warning sign, but they remove the ceiling that would otherwise limit damage.
  • The token. Approvals are per token, so the same application can hold several separate permissions.

The three reasons to revoke

Revoking is worth doing when a position is closed, when an application has been inactive for months, or when you cannot identify what a given contract does.

That last reason is the most common. Approvals accumulate quietly, and a wallet with thirty live allowances is not unusual for someone who has been using DeFi for two years.

How to review without guessing

Start from a record rather than from memory. Export the list of current allowances from a block explorer or from your wallet’s own permission view, then sort by contract.

For each entry, answer two questions:

  • Do I still use this application?
  • Can I name what it does with the token?

An allowance you cannot answer the second question for is the one to revoke. An allowance for an application you actively use can usually stay, as long as you understand what it controls.

What revocation does and does not do

Revoking removes the permission going forward. It does not reverse a transfer that already happened, it does not recover tokens that already moved, and it does not notify anyone.

Two practical consequences follow. Revocation costs gas, so doing it for thirty allowances at once is more expensive than doing it for the two that matter. And a revocation can occasionally break a legitimate application that was relying on the old approval, which is why the position should be closed first rather than after.

Record what you changed

Write down the contract, the token, the date, and why. The next time you interact with that application you will not remember which approvals you removed, and re-approving without checking is how old permissions come back.

This guide is informational and does not replace the documentation of the protocol or application involved.

Sources