Accept USDC payments on 5 networks
USDC is Circle's dollar stablecoin. easyway accepts it on Ethereum, BNB Smart Chain, Solana, Polygon and Avalanche through one API and one hosted checkout, so a customer can pay from whichever chain their USDC already sits on.
Networks, contracts and limits
Every network has its own USDC contract. A deposit is only counted when it comes from the contract listed here; the API returns human-readable amounts, so the different decimals never reach your code.
| Network | API id | Contract | Confirmations | Min. withdrawal | Withdrawal fee |
|---|---|---|---|---|---|
| Ethereum · ERC-20 | USDC_ERC20 | 0xA0b8…eB48 | 12 | 0.5 USDC | 1.5 USDC |
| BNB Smart Chain · BEP-20 | USDC_BEP20 | 0x8AC7…580d | 15 | 0.5 USDC | 0.1 USDC |
| Solana · SPL | USDC_SOL | EPjFWd…Dt1v | 1 | 0.5 USDC | 0.3 USDC |
| Polygon · PoS | USDC_POLYGON | 0x3c49…3359 | 64 | 0.5 USDC | 0.1 USDC |
| Avalanche · C-Chain | USDC_AVAX | 0xB97E…8a6E | 10 | 0.5 USDC | 0.1 USDC |
The platform fee is 0.5% on every network: a customer paying 100 USDC leaves you 99.5 USDC. Other coins are on the pricing page.
Which network should your customers use?
All five settle the same dollar, so the choice is about the customer's wallet and the network fee they pay to send. Solana, Polygon, Avalanche and BNB Smart Chain usually cost the sender cents or less and are credited within seconds to a couple of minutes. Ethereum costs the sender more and needs 12 blocks (a few minutes), but many wallets and exchanges still hold their USDC there. You don't have to pick: let the customer choose on the checkout, or fix the network per invoice.
Native USDC, bridged USDC.e and USDC on BNB Smart Chain
On Polygon and Avalanche two tokens are called USDC: Circle's native USDC and the older bridged USDC.e. Only the native contract above is credited; the checkout shows a note about this on those two networks, because a USDC.e transfer to the invoice would not be counted.
On BNB Smart Chain the USDC token is the Binance-Peg version (0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d), which is what BSC wallets and exchange withdrawals send. It uses 18 decimals instead of 6; amounts in the API are the same human-readable strings either way.
How a payment is detected
Every invoice gets its own deposit address, so a payment is matched to its invoice by where it arrives. On the EVM networks the same address format is used everywhere, which is why the checkout always names the network next to it: USDC sent on a different chain than the invoice's is not credited to that invoice. On Solana, USDC arrives in the address's token account and is read from the network's own balance tables once finalized; the Solana page explains that flow in detail.
Integrating USDC payments
Create an invoice with currency set to one of the API ids above (for example "USDC_POLYGON"), or leave the choice to the customer, and redirect to the hosted checkout. A signed webhook fires when the invoice is paid. The quickstart and webhook guide have runnable code.
Also accepted
USDT on TRON, BNB Smart Chain, Ethereum, TON, Solana and Polygon and Avalanche, plus DAI, FDUSD and the native coins — see pricing.