Solana Pay is a payment protocol built on Solana that enables merchants and developers to accept crypto payments — in USDC, SOL, or any SPL token — with near-instant settlement and fees under $0.01.
It's an open standard, not a product. Anyone can build on it.
How It Works
Solana Pay uses a URL scheme that encodes payment requests. A merchant generates a payment URL with:
- Recipient wallet address
- Amount
- Token (USDC, SOL, etc.)
- Optional reference and label
This URL is typically rendered as a QR code. The customer scans it with Phantom, Solflare, or any compatible wallet, reviews the transaction, and confirms. Settlement is instant — the merchant sees the payment on-chain within 400ms.
No payment processor intermediary. No chargebacks. No 2.9% + $0.30 fee.
Transaction Request vs. Transfer Request
Solana Pay has two modes:
Transfer request: Simple payment — customer sends exact amount to merchant. Works like Venmo/Cash App but on-chain.
Transaction request: Merchant's server generates a custom transaction — can include loyalty points, NFT mints, discount logic, or any on-chain action alongside the payment. More powerful, requires backend integration.
Who's Using It
Shopify: Solana Pay integration available as a Shopify plugin. Merchants can accept USDC directly with no intermediary.
Point of sale: Brick-and-mortar merchants in crypto-friendly markets using Solana Pay terminals.
Gaming: In-game purchases, NFT mints, and item transfers using Solana Pay for seamless UX.
Event ticketing: NFT tickets issued via Solana Pay transaction requests at the point of purchase.
Peer-to-peer: Splitting bills, paying freelancers, international transfers — all sub-cent fees, sub-second settlement.
Why USDC for Payments
Most Solana Pay implementations use USDC rather than SOL:
- Price stability: Merchants don't want revenue exposure to SOL price volatility
- Accounting clarity: $50 received in USDC is $50 — no conversion needed
- Instant settlement: Unlike traditional card payments, no 2-3 day settlement wait
The merchant receives USDC directly in their wallet. They can hold it, convert to fiat via a CEX, or deploy it in DeFi for yield.
Compared to Traditional Payments
| | Traditional card | Solana Pay (USDC) | |---|---|---| | Fee | 2.9% + $0.30 | ~$0.001 | | Settlement | 2–3 days | <1 second | | Chargeback risk | Yes | No | | International | FX fees | Same rate globally | | Setup | Merchant account, approval | Wallet address |
For high-volume merchants, the fee difference is substantial. A merchant processing $1M/month pays ~$29,000/month in card fees vs. <$1,000/year in Solana network fees.
Limitations
Volatility for SOL payments: If accepting SOL directly (not USDC), merchant has price exposure.
Consumer adoption: Most consumers don't have funded Solana wallets. Adoption is growing but still niche vs. traditional payment methods.
Regulatory: USDC payments are taxable events in most jurisdictions for the sender (selling a crypto asset). Consumer education needed.
No chargebacks: A feature for merchants, a limitation for consumers who want purchase protection.
Integration for Developers
The Solana Pay spec is open source and well-documented at docs.solanapay.com. Building a payment button:
import { encodeURL } from "@solana/pay";
import { PublicKey } from "@solana/web3.js";
import BigNumber from "bignumber.js";
const url = encodeURL({
recipient: new PublicKey("YOUR_WALLET"),
amount: new BigNumber(10), // 10 USDC
splToken: new PublicKey("USDC_MINT"),
label: "My Store",
message: "Thanks for your purchase!",
});
Render the URL as a QR code — any Solana wallet will recognize and handle it.