Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
The standard adds three elements to an ERC-20 contract. The permit function verifies an EIP-712 signature and, if it is valid and not expired (deadline), directly updates the allowance mapping. DOMAIN_SEPARATOR ties the signature to a specific contract and chain, which prevents reuse on another network. And nonces assigns an incremental number per holder, so each signature is used only once. The practical effect is that two transactions, approve and act, collapse into one, and the user pays no gas for the approval because a relayer can submit the off-chain signature.
It markedly improves the experience: gasless onboarding and a single readable signature thanks to EIP-712, which displays structured typed data. It is a pillar of meta-transactions, gasless decentralized exchange aggregators and account abstraction wallets. ERC-2612 is in Final status, created on 13 April 2020 by Martin Lundfall, Ansgar Dietrichs, Alex Forshtat, Ronan Sandford and Sebastian Siemssen. It is implemented natively by USDC (Circle) and DAI (MakerDAO/Sky, with its own permit variant predating the standard).
USDC supports permit; the Uniswap Permit2 contract (2022) generalized the pattern to any ERC-20, even those that do not implement it natively. For tokenization it solves, without the ERC-777 hooks, part of what that standard aimed for (approve and act in one step) and cuts signing friction for investors. It connects directly with account abstraction (ERC-4337): both pursue a gas-frictionless experience.
Also known as
- ERC2612
- Permit Extension for EIP-20 Signed Approvals





