#1 BTC $80,499.54 -0.17% #2 ETH $2,341.99 -1.24% #3 USDT $0.9991 +0.01% #4 BNB $735.15 -0.20% #5 XRP $1.29 +0.38% #6 USDC $1.00 +0.02% #7 SOL $101.54 -0.58% #8 TRX $0.3290 -0.20% #9 STETH $2,330.79 -1.86% #10 ZEC $1,197.59 +2.37%

Blog / Market & On-Chain Guides

Token Approvals, Permit2 and Revoking: A Practical Guide

A clear, data-driven guide to token approvals, permit2 and revoking.

Approve and transferFrom

ERC-20 requires users to approve a spender before a contract can move tokens with transferFrom. Many apps request unlimited approvals (2^256 − 1) for convenience.

Why approvals are risky

If a spender contract is exploited or malicious, it can drain approved tokens at any time. Incidents such as the 2023 Multichain and many drainer kits relied on old approvals.

Permit and Permit2

EIP-2612 lets users approve via signatures. Uniswap's Permit2, launched in November 2022, centralizes approvals with expirations and per-app allowances signed off-chain.

Revoking

Tools like Revoke.cash and Etherscan's token approval checker set allowance to zero. Each revoke costs about 46,000 gas; at 15 gwei and $3,000 ETH that is about $2.

Selectors

approve(address,uint256) has selector 0x095ea7b3, the first four bytes of its keccak256 hash. Verifying the selector in a wallet prompt helps detect unexpected calls.

By the numbers

For Token Approvals, Permit2 and Revoking, the reference figures are topic of Token Approvals, Permit2 and Revoking, level of Intermediate, updated of 2026. The comparison table below lines up action, gas (approx.) — approve: ~46,000; revoke (approve 0): ~46,000; Permit2 signature: 0 (off-chain).

Modeling Token Approvals, Permit2 and Revoking with the ERC20 Token Approval Revoke Gas Estimator

The ERC20 Token Approval Revoke Gas Estimator takes three inputs — Approvals, Gas price (gwei), ETH price ($). Cost = approvals × ~46k gas × gwei × price. With its default inputs (Approvals = 10; Gas price (gwei) = 15; ETH price ($) = 3000) it returns 20.7 $; swap in the figures from Token Approvals, Permit2 and Revoking above to reproduce the scenario yourself.

Modeling Token Approvals, Permit2 and Revoking with the Keccak256 Selector Calldata Size Estimator

The Keccak256 Selector Calldata Size Estimator takes three inputs — Args (32-byte), Zero bytes, Gas price (gwei). Calldata gas = 16/non-zero byte + 4/zero byte; selector = 4 bytes. With its default inputs (Args (32-byte) = 3; Zero bytes = 40; Gas price (gwei) = 20) it returns 1,120 gas; swap in the figures from Token Approvals, Permit2 and Revoking above to reproduce the scenario yourself.

Data Table

ActionGas (approx.)
approve~46,000
revoke (approve 0)~46,000
Permit2 signature0 (off-chain)

Frequently Asked Questions

Should I avoid unlimited approvals?

Use limited amounts or Permit2 with expiry.

Does revoking cost gas?

Yes, one transaction per approval.

What is the approve selector?

0x095ea7b3.

Related Calculators

Related Tokens

Related Articles