Skip to main content
Request and settle a payment in one wallet interaction. A direct USDC transfer works with any EIP-1193 wallet, while B20 adds issuer-defined policy controls and an onchain order memo. This is the auto-settle path: the wallet approval and token transfer happen in one flow. If you need to approve now and settle later, authorize a payment instead.

Demo

The demo above is mock only. If you want to see onchain demos on Vibenet, head to Base chain demos.

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 B20 token standard for the complete B20 interface and memo details.

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

Authorize a Payment

Separate wallet approval from merchant-controlled capture.

Verify a Payment

Confirm settlement server-side before you ship.