Agent payments

What is EIP-3009 (transferWithAuthorization)?

Definition: EIP-3009 is an Ethereum token standard that lets a holder authorize a one-time, recipient-specific stablecoin transfer with an off-chain signature (transferWithAuthorization), which anyone can then submit on-chain. It's how x402 payments work on EVM chains: the paying agent signs; a facilitator submits and pays the gas.

Instead of sending a transaction, the payer signs an EIP-712 message authorizing a specific transfer — amount, recipient, a one-time nonce and a validity window. A relayer (in x402, the facilitator) submits transferWithAuthorization on-chain and covers gas. The payer never needs ETH.

USDC implements EIP-3009 natively, which is why x402's "exact" payment scheme uses it on EVM networks like Base — an agent holding only USDC can pay for an API call with a single signature. On Solana, the equivalent role is played by SPL-token TransferChecked instructions.

Why does x402 use EIP-3009 instead of a normal transfer?

Because it makes payment a signature, not a transaction: the agent authorizes exactly one transfer and the facilitator handles gas and submission. That removes the need for the payer to hold native gas tokens and fits a single request-response cycle.

Put it into practice

Pay a real API with USDC on Base →

Related terms