Guide
Accept Solana payments on your site
You do not need a custom on-chain program to accept SOL for tips, unlocks, or pay-per-use products. Solana Pay transfer URLs and QR codes let customers pay from Phantom or Solflare; you verify the transaction on mainnet before delivering anything. Try the live merchant-style flow below on Garden Dice.
Why accept SOL on a website?
Solana finalizes transfers in seconds with fees often under a cent. That makes micropayments practical — charge 0.001 SOL per unlock, roll, or download without credit-card minimums or chargeback risk. Wallet-native users already hold SOL; Solana Pay meets them in the wallet app they trust, especially on mobile.
Garden Dice is a minimal reference implementation: customer pays a fixed SOL amount to a public treasury, the site detects the transfer, then delivers a provably fair roll. Entertainment only — but the payment pattern matches tips, digital goods, and pay-per-use APIs.
Three pieces every integration needs
| Piece | What it does | Garden Dice example |
|---|---|---|
| Recipient + amount | Tell the wallet where to send SOL and how much | Treasury pubkey + 0.001–0.01 SOL per roll |
| Payment request | Wallet connect or Solana Pay QR / transfer URL | Desktop wallet tab + mobile QR on challenge pages |
| Verification | Confirm the tx landed on mainnet before delivery | RPC poll + paste-signature fallback; server-side amount check |
Use our free Solana Pay QR generator to prototype transfer URLs, or read the micropayments guide for the customer-facing side.
Solana Pay transfer URL (no custom program)
A solana: transfer URL encodes recipient, lamports, and optional label.
Wallets open it as a deeplink — ideal for invoices, tip jars, and mobile checkout.
Encode amounts in lamports (1 SOL = 1,000,000,000 lamports); our
SOL converter
helps avoid off-by-nine-zeros mistakes.
- Generate the URL — use the QR generator or build from the Solana Pay spec.
- Show QR or link — desktop can copy the link; mobile scans the QR.
- Customer approves — payment happens in Phantom/Solflare, not your in-app browser.
- Verify signature — poll RPC or accept a pasted tx ID; confirm amount + recipient.
Stuck on mobile? Solana Pay troubleshooting covers QR scan failures and detection lag.
Verify before you deliver
Treat every payment as untrusted until mainnet confirms it. Check that the transaction succeeded, transferred at least the expected lamports to your treasury, and is finalized. The verify payment guide and tx lookup tool show what to look for. Garden Dice never unlocks a paid roll from client-side state alone.
Network fees are tiny but real — mention them in checkout copy so customers keep a little extra SOL. See transaction fees explained.
Try the customer flow (0.001 SOL)
Experience acceptance from the buyer side: free demo roll above, then pay 0.001 SOL via wallet or Solana Pay QR. After confirmation you get an on-chain receipt you can paste into the lookup tool — the same loop your customers follow.
FAQ
Is Solana Pay the same as wallet connect?
No. Wallet connect signs transactions inside your page (great on desktop). Solana Pay sends the user to their wallet app via QR or deeplink — often more reliable on mobile in-app browsers.
What about USDC or other tokens?
This guide focuses on native SOL transfers — the simplest path for micropayments. SPL token payments need token accounts and different URL fields; start with SOL for prototypes.
How small can payments be?
Garden Dice starts at 0.001 SOL. Fees are usually far smaller than the payment itself on mainnet, which is why sub-dollar pricing works on Solana.
Where is the open-source reference?
Read the Garden Dice build log for RPC proxy, Solana Pay detection, and commit-reveal fairness — useful when adapting the pattern to your product.