For the complete documentation index, see llms.txt. This page is also available as Markdown.

Supported Assets

Ivorypay x402 supports stablecoins across multiple EVM mainnets. The server automatically selects the on-chain transfer mechanism — either EIP-3009 or Permit2 — based on the chain and token combination.

Chain and Token Matrix

Chain
Network value
Chain ID
USDC
USDT

Base

BASE_MAINNET

8453

EIP-3009

Permit2

Polygon

POLYGON

137

EIP-3009

Permit2

Lisk

LISK_MAINNET

1135

EIP-3009

Permit2

Ethereum

ETHEREUM

1

Permit2

Permit2

BNB Smart Chain

BSC_MAINNET

56

Permit2

Permit2

Strategy Reference

EIP-3009 — No Prior Approval Required

EIP-3009 (transferWithAuthorization) is Circle's native gasless transfer mechanism built into their USDC contracts. The user signs a typed authorization; the server submits the on-chain call.

Applies to: USDC on Base, Polygon, or Lisk.

No ERC-20 approve() call is needed — the transfer is self-contained in the signed authorization.

Permit2 — One-Time Approval Required

Permit2 is Uniswap's universal signature-based transfer standard, deployed at the same address on every EVM chain:

0x000000000022D473030F116dDEE9F6B43aC78BA3

Applies to: Any non-USDC token, USDC on BSC or Ethereum, and all BSC/Ethereum transfers regardless of token.

Before the first Permit2 transfer on a given wallet/token/chain, the payer wallet must grant the Permit2 contract an ERC-20 allowance. This is a one-time transaction per combination — see Permit2 Approval for the step-by-step guide.

How to Tell Which Strategy Applies

After calling POST /api/x402/build, the response includes chain and token. Cross-reference those values against the matrix above. If your combination falls under Permit2, the response will also include a spender field (the gas-payer vault address) that you must include in the Permit2 signed message.

If chain is BASE_MAINNET, POLYGON, or LISK_MAINNET and token is USDC, use EIP-3009 signing. Otherwise use Permit2.

Last updated