Skip to content
Blog

Payments

Crypto payments on Solana work through several channels: QR codes for mobile wallets, direct browser wallet integration with Phantom, Backpack, and Solflare, and recurring subscriptions for ongoing access. Configure your wallet and accepted tokens in the dashboard, and the SDK takes care of the payment flow from there.

  1. Go to the Tribe dashboard
  2. Open your site’s Settings → Payments
  3. Enter your wallet address, the Solana wallet where payments will land
  4. Add accepted tokens like SOL, USDC, or any SPL token you want to support
  5. Enable payments

Before presenting payment options to users, confirm what’s been configured:

import { Tribe } from "@tribecloud/sdk";
const config = await tribe.getPaymentConfig();
// config.paymentsEnabled — whether payments are enabled
// config.paymentWalletAddress — your receiving wallet
// config.acceptedTokens — [{ mint, symbol, name, logoUrl, decimals }]
// config.p2pPaymentsEnabled — whether peer-to-peer payments are enabled

QR Code Payments

Generate a Solana Pay QR code that users scan with any wallet app. Works well for in-person or cross-device payments.

Read the guide →

Wallet Payments

Let users pay directly from their browser wallet (Phantom, Backpack, Solflare). One click, and the SDK handles everything.

Read the guide →

Subscriptions

Offer recurring subscription tiers paid with crypto. The subscription activates automatically once the payment confirms on-chain.

Read the guide →

Token Gates

Gate content or features behind a crypto payment. Users pay once to unlock access permanently.

Read the guide →

TokenMint address
SOL"SOL" (use the string, not an address)
USDCEPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v
Custom SPL tokensUse the token’s mint address

P2P payments let one user pay another directly while the site owner’s wallet collects a configurable fee. Enable P2P payments in your dashboard and include a recipientWallet in the payment options:

const payment = await tribe.getPaymentUrl({
mint: "SOL",
amount: "1.0",
recipientWallet: "RecipientWalletAddressHere",
});