Skip to main content
Choose the payment rail that matches your checkout. A direct USDC transfer works with any EIP-1193 wallet, and B20 adds issuer-defined policy controls and an onchain order memo.

Demo

Accept a wallet-native USDC transfer

Base Sepolia USDC is 0x036CbD53842c5426634e7929541eC2318f3dCF7c; Base mainnet USDC is 0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913.
Testnet deployments can be reset. Confirm eth_getCode returns contract bytecode at the configured USDC address and that your faucet issued the same asset before asking a user to sign.
TypeScript
The receipt succeeds and the standard USDC Transfer event records the merchant and amount.
See the complete verified payment fixtures for client construction, ABIs, and runnable projects.

Verify before fulfillment

A successful wallet prompt is not a fulfillment signal. Verify the recipient, token, sender, amount, memo when present, and replay state on your backend.

Verify a payment

Validate settlement and claim each transaction hash exactly once.

See also