DEV Community

SolPay Kit
SolPay Kit

Posted on Originally published at solpay-kit.pages.dev

How to Accept Solana (SOL & USDC) Payments on Your Website Without a Backend (2026)

Solana Pay is a URL standard, not a payment processor. You show a solana: link or QR, the buyer's wallet builds the transfer, and the money lands directly in your wallet. There's no processor fee, no chargebacks and no monthly bill. Here's how to set it up properly.

1. The transfer request URL

solana:<YOUR_WALLET>?amount=7&spl-token=EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v&reference=<RANDOM_PUBKEY>&label=My%20Shop
Enter fullscreen mode Exit fullscreen mode

Leave out spl-token to charge in SOL. The reference is a random public key generated for each order. Wallets attach it to the transaction, so you can find that payment on-chain later.

2. Finding the payment

Call getSignaturesForAddress(reference), then getTransaction for each signature. Check that the transaction succeeded, that your wallet's balance went up by at least the price, and, for USDC, that the mint is the real USDC mint.

3. Verify on a server, but it can be free

Browser-only checks can be faked. A Cloudflare Worker on the free tier can do the verification and gate the download without a database: each download request re-checks the chain.

4. Gotchas

  • Create your USDC token account before launch.
  • Check several signatures per reference. Dust spam can mention it first.
  • The public mainnet RPC blocks Cloudflare IPs. Use fallbacks or a free keyed RPC.
  • Use confirmed for small digital goods and finalized for anything valuable.

Originally published at https://solpay-kit.pages.dev/guide/accept-solana-payments-on-website. The Solana Pay Drop-In Checkout Kit packages all of this into a ready-to-deploy checkout.

Top comments (0)