Written by Pablo Gómez
Founder & CEO at Metlabs · Reviewed on October 11, 2026
ERC-3009 defines key functions to move tokens with a signature. transferWithAuthorization executes an off-chain signed transfer, while receiveWithAuthorization requires that the sender of the transaction be the recipient, which mitigates relayer front-running. cancelAuthorization lets an unused authorization be voided. It uses random 32-byte nonces, not sequential ones, which allows parallel and out-of-order payments, unlike the sequential nonce of ERC-2612. A time window with validAfter and validBefore bounds when it is valid, and the EIP-712 signature with the token's domain separator prevents replays across contracts and chains.
It enables gasless payments and meta-transactions: the user signs, a third party executes and covers the gas, which is key for onboarding users who do not yet hold the chain's native asset to pay fees. It also supports scheduled payments, pre-signed transfers and relayer architectures. Compared with ERC-2612, which signs an approval and then needs a transferFrom, ERC-3009 signs the transfer directly and uses random nonces, a meaningful design difference.
The standard, titled Transfer With Authorization, is labeled Draft at the EIP level, despite its established production adoption. Its best-known reference case is USDC, by Circle, which implements transferWithAuthorization and receiveWithAuthorization. Other stablecoins, such as Paxos's USDP, also implement it. Payment infrastructures and relayers use it to move stablecoins without the user needing the chain's native asset to cover gas. Signature verification for contract wallets relies on ERC-1271, and it is a natural payment piece for agents and modular accounts.
Also known as
- ERC3009
- Transfer With Authorization





