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
| Action | Gas (approx.) |
|---|---|
| approve | ~46,000 |
| revoke (approve 0) | ~46,000 |
| Permit2 signature | 0 (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
For educational and informational purposes only. Not financial, investment, tax or legal advice. Figures are approximate and historical; crypto assets are volatile and you may lose capital. Do your own research.