Accept Solana Payments: Sub-Second USDC Checkout for Retail & Creators
Checkout UX is a latency game. If a customer stares at a “confirming your payment…” spinner for more than a few seconds, half of them drop off. That’s the single reason Solana is a better fit for retail commerce than almost any other chain: the payment is done before the customer can reconsider it.
MutoPay now accepts Solana payments with native USDC settlement. Phantom, Backpack, and any Solana Wallet Adapter-compatible wallet work out of the box. The whole flow — click button, approve in wallet, see confirmation — takes about a second.
Who this is for
- Retail and direct-to-consumer merchants where checkout speed moves the conversion needle
- Creator platforms, tipping, and digital goods where transaction sizes are small and fees can’t exceed them
- Event ticketing, POS, and anything with a queue where the customer can’t wait 2 minutes for a confirmation
- SaaS and subscription products selling to a crypto-native audience
Why Solana for commerce
Three numbers:
- ~400ms slot time. A Solana transaction confirms in less time than the average HTTP round-trip. By the time your webhook handler fires, the customer is already looking at the success screen.
- Fees under $0.001. At that cost, micropayments stop being a thought experiment. A $0.99 sale nets $0.988 before MutoPay’s 0.25%.
- Native USDC issuance. Solana has the cleanest stablecoin story of any L1 — Circle issues USDC natively on Solana, so there’s no bridged-asset ambiguity, no wrapped-token risk, no “which USDC is this?” confusion.
The second point matters more than it looks. On chains with $1–15 fees, sub-$5 payments are economically irrational. On Solana, every payment size is viable. That changes what you can sell.
How settlement works
customer wallet ─── Wallet Adapter ──▶ MutoPay ──▶ your Solana wallet
(Phantom / Backpack) (USDC or USDT)
Phantom is the default for most Solana users; Backpack is popular with traders and power users. MutoPay speaks to both via the standard Solana Wallet Adapter — no per-wallet custom code.
Merchants settle in:
- USDC on Solana — the recommended path. Native issuance, deepest liquidity, cleanest audit trail.
- USDT on Solana — supported if your accounting or counterparty requires USDT specifically.
Both land directly in the Solana wallet address you configure. MutoPay never holds custody.
Setup in five steps
- Create a merchant account at mutopay.com/dashboard/register.
- Set Solana as your settlement chain. Dashboard → Settings → Settlement. Pick
Solanaas the chain andUSDC(recommended) orUSDTas the token. - Paste your Solana wallet address. A base58 Solana address — MutoPay validates it on save. If you need a fresh address, create one in Phantom or any Solana wallet first.
- Create a payment:
Settlement chain and token come from your merchant settings. Don’t repeat them on every call.curl -X POST https://mutopay.com/api/payments \ -H "Authorization: Bearer sk_live_..." \ -H "Content-Type: application/json" \ -d '{ "amount": 9.99, "currency": "USD", "metadata": { "sku": "pro-monthly" } }' - Redirect the customer to the returned
payment_url. The payment page detects Phantom and Backpack automatically and opens the right wallet. Customer approves once, transaction confirms in under a second, yourpayment.completedwebhook fires.
Equivalent settlement update via API:
curl -X PUT https://mutopay.com/api/dashboard/settlement \
-H "Authorization: Bearer <merchant-jwt>" \
-H "Content-Type: application/json" \
-d '{
"preferred_chain_id": "solana",
"preferred_token": "USDC",
"wallet_address": "<base58 Solana address>"
}'
Cross-chain without the friction
A customer paying in USDT on Ethereum, ETH on Base, or POL on Polygon? That still works. MutoPay routes through Rubic and delivers USDC on Solana to your wallet. The customer sees one button; you see one payment in the currency you want.
For same-token same-chain payments (e.g. the customer already has USDC on Solana), MutoPay uses a direct transfer with no swap hop at all. Fastest possible path, lowest possible fee.
Webhooks
payment.completedfires once the Solana transaction confirms and USDC lands- Signature:
X-MutoPay-Signature: sha256=<hex>(HMAC-SHA256) - Retries 5 times with exponential backoff (1m, 5m, 30m, 2h, 12h)
payment.failed,payment.expired,payment.underpaidcover edge cases
FAQ
Which Solana wallets are supported? Phantom and Backpack explicitly, plus any wallet that implements the Solana Wallet Adapter standard (Solflare, Glow, Coinbase Wallet, etc.).
Can I settle in native SOL? No. MutoPay only supports stablecoin settlement on Solana (USDC or USDT). For exposure to SOL, most merchants settle in USDC and convert on their own schedule.
How fast does a Solana payment settle? The on-chain transaction confirms in well under a second. Our monitor picks it up on the next cron tick (worst case ~1 minute) and fires your webhook.
What happens during Solana congestion?
Solana has experienced brief periods of transaction failures during peak load. MutoPay retries failed transactions automatically and only marks a payment complete once it’s finalized. If a customer’s transaction fails at the wallet level, the payment stays in awaiting_payment until they retry or the expiry window closes.
Do I need a Solana RPC? No. MutoPay runs its own monitor — you just provide a wallet address.
Is my wallet custodial? No. Every payment settles directly to the Solana address you configured. MutoPay never holds funds.
Also see
- Accept TON payments — the Telegram-native chain
- Accept Tron USDT payments — the remittance rail
- How MutoPay works — full routing diagram
- Pricing — flat 0.25%, no minimums
Ready to accept Solana payments? Create a merchant account — you’ll have a working payment link in under ten minutes.