Home / Wallet security / Token approvals

Token Approvals and Revoke: Allowance vs Permit

Leaving a dApp does not remove its token allowance. Check the chain, token and spender before deciding what to revoke. Disconnecting a site changes no on-chain allowance, and a Permit signature you already shared needs a separate check of its expiry and nonce.

Published 2026-07-10Updated 2026-09-12
SECURITY · APPROVE / REVOKE Your wallet 0xA1b2…9F3d allowance: ∞ allowance Contract / dApp spender One Approve = handing a contract the right to move a token for you vxccex.com · ChainStudy Editorial
An approval hands the right to spend some amount of one token to a contract address (the spender). How much, and to whom, is exactly how much risk you carry.
An approval is an allowance, not a transfer receipt. ERC-20 approve sets a token spending limit. A later valid transferFrom moves tokens; signing alone does not prove that assets have left.

What a token approval actually grants

Read the owner, spender and allowance on the correct token contract and chain. A spender may be a contract or an ordinary address. Standard ERC-20 allowances can persist until consumed or changed and have no universal expiry.

One token's allowance does not cover every asset or the native coin. NFT permissions can cover a single token ID or an operator for an entire collection, depending on the call.

What unlimited approval exposes

Some apps request large allowances to reduce repeat approvals. That exposes more of the token, including later deposits, if the spender can abuse it. Limiting the amount does not make a malicious spender safe. A contract's ability to use an allowance also depends on its code and call conditions.

How an approval becomes a theft

  • A phishing page substitutes the attacker's spender in an approval request.
  • An exploitable contract provides a path to use previously granted allowances.
  • A standing allowance is used again, including against later token deposits.

Inspect the permission rather than trusting a button labelled “claim” or “login.” The phishing guide explains those lures.

How to see what your wallet has approved

  1. Open the verified Revoke.cash site or chain explorer. Entering a public address permits read-only inspection without sharing a key.
  2. Select each chain you used. Check tokens, spenders, allowances and NFT operators. Coverage varies; an empty list is not a security certificate.
  3. Compare addresses with official protocol documentation and transaction history. An unfamiliar label needs investigation and does not by itself prove phishing.
Public Revoke.cash homepage showing address search and demonstration approvals with no wallet connected
Public Revoke.cash homepage, September 2026. The list is the site's demonstration, not a ChainStudy test account.

How to revoke an approval

ERC-20 revocation normally sets the spender's allowance to zero; revoking a collection operator normally sets approval to false. Inspect the chain, contract and call in your wallet, confirm it is a revocation, then wait for a successful receipt and query the permission again.

Budget from the current wallet fee estimate. Quiet hours and batching do not guarantee savings, and different chains cannot necessarily share one transaction. A genuine tool URL reduces impersonation risk but does not replace checking the request. Read-only inspection needs no seed phrase; revocation is signed inside your own wallet.

Approve vs Permit: off-chain signatures have limits too

EIP-2612 Permit lets an owner sign fields including spender, value, nonce and deadline before someone pays gas to submit the permission. Signing itself does not transfer tokens. An unused signature may be absent from ordinary allowance lists.

A signature is constrained by its deadline, nonce, chain and contract domain, rather than usable at literally any time. Clearing the current allowance may leave an unused Permit valid; nonce handling depends on the implementation. Permit2 distinguishes standing allowances from single-use signature transfers. Underlying token approval, Permit2 permissions and signature nonces are separate controls.

After a suspicious signature, preserve its fields and check permission state. Revocation, nonce invalidation and moving affected assets have different costs and timing. If a key leaked, allowance cleanup cannot restore exclusive control; use an independent new key in a trusted environment.

Approval self-audit checklist

  • [ ] Check every used chain, token, spender and allowance
  • [ ] Remove unused permissions, wait for success and query again
  • [ ] Check suspicious off-chain signatures separately: deadline, nonce and implementation
  • [ ] Separate long-term and routine assets with key and device risks in mind
  • [ ] Cancel requests you cannot interpret, including gas-free signatures

FAQ · five approval questions

Does revoking an approval cost money?

Yes. Use the current wallet fee estimate, not a fixed cents-per-revoke claim or a promise that batching saves money.

Is it safe to revoke approvals with a block explorer or revoke.cash?

Verify the site and coverage, then inspect the chain, contract and revocation call. A genuine site is not a reason to sign blindly. Read-only address searches need no seed phrase.

Why do dApps keep asking for unlimited approval?

Large allowances can reduce repeat approvals but expose more of that token. Limiting the amount still requires checking the spender.

If I revoke, can I get back funds that were already stolen?

No. Revocation affects future permissions, not completed transfers. A leaked key also requires protecting remaining assets and retiring the compromised key.

What is the difference between Approve and a Permit signature, and does revoking work on both?

Approve sets an allowance on-chain. Permit can be signed before submission and is constrained by nonce, deadline and contract domain. Clearing an allowance may not invalidate an unused signature; follow the implementation.

Sources cited

  1. ERC-20 approve/allowance standard · eips.ethereum.org/EIPS/eip-20
  2. EIP-2612 Permit standard · eips.ethereum.org/EIPS/eip-2612
  3. revoke.cash open-source code and docs · github.com/RevokeCash/revoke.cash
  4. SlowMist security incident archive · slowmist.com
  5. Etherscan Token Approvals checker · etherscan.io/tokenapprovalchecker