Accept USDC on Solana payments without KYC
Circle's stablecoin where the Solana crowd spends
USDC on Solana is the workhorse stablecoin of the Solana ecosystem: native Circle issuance, fractions-of-a-cent transfers, second-level finality. Buyers who live in Phantom or Solflare pay in it by default.
Mechanically identical to USDT on Solana: one static wallet, unique amount windows per invoice, direct on-chain detection of your token accounts with a 32-slot budget (~13 s).
Networks & confirmations
| Network | Asset | Confirmations | Time |
|---|---|---|---|
| Solana | USDC (SPL) | 32 slots | ~13 s |
Addressing modes
Direct (non-custodial)
Payments go straight to your wallet: static wallet + unique amounts — one Solana address receives the transfers; the same wallet also serves USDT on Solana.
Create an invoice for USDC
curl -X POST https://api.zerokyc-payments.com/v1/invoices \
-H "Authorization: Bearer pk_test_..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: order-1042" \
-d '{
"amount": "49.00",
"base_currency": "USD",
"payment_currency": "USDC_SOL",
"order_id": "order-1042"
}'Replace the API key with your pk_test key from the console. Full flow in the quickstart.
USDC on Solana payment FAQ
Which USDC mint is used?
The canonical Circle SPL mint on Solana (EPjFW…TDt1v, 6 decimals). Transfers from Phantom, Solflare or any exchange follow the same token program.
USDC vs USDT on Solana?
Same speed, same cost, different issuers: USDC brings Circle's attestation transparency, USDT the deepest overall liquidity. Many merchants enable both — one wallet serves both tokens.
How fast are confirmations?
32 slots ≈ 13 seconds. Among the fastest stablecoin rails on the platform, neck-and-neck with TON.
Is the rate fixed?
Yes — USD-invoiced amounts convert 1:1 and freeze for the invoice TTL, like every stablecoin we settle.
Start accepting USDC on Solana today
Create an account, paste your payout address or connect a wallet, and generate your first USDC invoice in minutes. Want to accept USDC plus everything else? Set payment_currency=any and let the buyer choose the coin at checkout.