Developer documentation
USDC payment integration guide
Check USDC versions, contracts or mints and token decimals across five networks before creating orders. Support is distinct from live availability.
Supported mainnet token identities
These contracts or mints are project defaults, not live channel status. Order creation also requires an enabled network and asset plus a valid merchant wallet. Always pay payment.address from the API, never the token contract or mint.
| Network | Currency | Contract / Mint | Token decimals |
|---|---|---|---|
| USDC | 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 | 6 | |
| USDC | 0x8ac76a51cc950d9822d68b83fe1ad97b32cd580d | 18 | |
| USDC | 0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359 | 6 | |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | 6 | |
| USDC | 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 | 6 |
Merchant setup
- Configure a receiving wallet for the network and an enabled Webhook URL and secret. Keep the API Key and HMAC secret on your server.
- Check availability of the network / currency combination. Platform administrators maintain RPC, network and asset configuration; merchants do not need to deploy scanners.
- Display payment.amount, payment.address, currency, network and expiry from the response. QR data is not an image.
- Verify, deduplicate and durably accept events before returning HTTP 2xx; fulfill your business order idempotently.
Network and asset notes
Ethereum, Polygon, Solana and Base use native USDC. BNB Smart Chain uses Binance-Peg USDC with 18 token decimals. TRC20 does not support USDC. USDbC, USDC.e and other contracts cannot replace the listed identities.
- ERC20 in this API means Ethereum mainnet, not every network using the ERC20 token standard.
- The same 0x address may exist on different EVM networks. Customers must choose the order network and token version.
- Ethereum USDC uses the native Circle contract. Other bridged versions cannot replace the listed identity.
Signed request and response examples
Examples use 25.00 to demonstrate the format. Real amounts come from your business order and must meet the configured asset minimum. Addresses, orders and hashes are examples, not actual payments. The copied cURL / Java program sends a request: configure your own API Key and Webhook secret before running it.
Addresses, transaction hashes and orders are examples. Replace them with your own test data.
Base URL
PRODhttps://api.boltutil.comConfirmation and callback handling
Detection is not confirmation. Use system status and verified callbacks: PAID still awaits confirmation. CONFIRMED / COMPLETED may also follow manual acceptance; check paidAmount, shortfallAmount and settlementType. COMPLETED does not prove that your business has fulfilled the order.
Integration questions
Does support mean the currency is currently available?
No. The network and asset must be enabled, with valid wallet and Webhook configuration. Static contract tables do not show live availability.
May the customer round the payable amount?
Pay the complete payment.amount. The system may round upward and add a small offset to distinguish orders sharing a wallet. Do not truncate or independently round it.
May I fulfill as soon as the wallet balance increases?
Verify the confirmed order result and authentic notification. Wrong networks, token versions, amounts and duplicate events require handling; a balance increase alone is insufficient.