Accept payments on Solana
Cosmos Pay turns each payment into a Solana Pay link and QR code. Your customer pays in USDC or SOL from their own wallet, straight to your address.

How a payment works on Solana
- Payment link
- Solana Pay transfer requests (solana:) and their QR code. A link that carries your own fee is a Solana Pay transaction request instead.
- Wallets that pay
- Any wallet that reads Solana Pay links, such as Phantom or Solflare.
Phantom
Solflare
- How it is matched
- A Solana Pay reference key on each link. The link’s memo is recorded with the SPL Memo program.
- Where the money goes
- Straight to your Solana address once the network confirms the payment.
- Test network
- Solana Devnet with a test key (dv_); mainnet with a live key (prod_).
Assets with a preset
The dashboard offers these by name. Any other SPL token, such as USDT, goes by its mint.
| Asset | Mint | Environment |
|---|---|---|
| SOL | The network’s own coin | Mainnet |
| USDC | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v | Mainnet |
| SOL | The network’s own coin | Devnet |
| USDC | 4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU | Devnet |
What it costs
Each payment pays your plan’s rate. The payer’s wallet pays the Solana network fee.
- Starter1.5% + 18¢per payment0.65% per swapNo monthly fee
- Essentials1.12% + 18¢per payment0.26% per swap$33 per month
- Growth0.75% + 18¢per payment0.13% per swap$99 per month
- EnterpriseCustom0.07% per swap
Create a Solana payment link
One request to the Payments API with your secret API key. The response carries the payment link (uri), its QR code and the id of its hosted checkout.
curl https://api.cosmospay.lat/cosmos-api/v1/payment-intents/pay \ -H "Authorization: Bearer $COSMOS_PAY_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "chain": "solana", "destination": "YOUR_SOLANA_ADDRESS", "amount": "25", "assetCode": "USDC", "assetIssuer": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "msg": "Order #1001" }'A test key (dv_) creates the link on Devnet: use the Devnet USDC mint from the table above, or leave out assetCode and assetIssuer to charge in SOL.
Which wallets can pay a Solana payment link?
Any wallet that reads Solana Pay links, such as Phantom or Solflare, can pay a Cosmos Pay payment link on Solana. The customer scans the QR code or opens the link, and approves the transfer in the wallet. They need no account: their wallet pays the Solana network fee, and the payment goes straight to your Solana address once the network confirms it.
How is a Solana payment matched to its link?
Each Cosmos Pay payment link on Solana carries a Solana Pay reference key. Cosmos Pay finds the transfer that carries that key on-chain and matches it to its link, and the link’s memo is recorded with the SPL Memo program. Once the network confirms the transfer, the checkout turns to Paid and Cosmos Pay fires the same webhooks as on Stellar, so the same webhook endpoint serves both networks.
Can I accept USDT or another SPL token on Solana?
Yes. On Solana, Cosmos Pay offers SOL, the network’s own coin, and USDC by name, on mainnet and on Devnet. Any other SPL token, such as USDT, goes by its mint when you create the link. Your customer pays in the token set on the link, and that same token goes straight to your Solana address once the network confirms the payment.
How do I test Solana payments without real money?
Create a test API key (dv_) in the Cosmos Pay dashboard, or choose Sandbox there: payment links then run on Solana Devnet, and their checkout says that no real funds move. The Devnet preset is Circle’s Devnet USDC mint; leave the asset out to charge in SOL instead. A live key (prod_) creates the same links on Solana mainnet: the key decides the network, not the code.
What changes when a Solana link carries my own fee?
A Cosmos Pay link on Solana that carries your own fee becomes a Solana Pay transaction request instead of a transfer request: the payer’s wallet asks Cosmos Pay for one transaction with both transfers, one to your Solana address and one to your fee wallet. The payer approves it once in their wallet. Your fee is separate from your plan’s rate, which each payment still pays.
Start accepting stablecoins.
Create a free account, mint a test key and send your first payment link today.