Basics¶
Tributary is a protocol for automated recurring payments on Solana. You approve once, payments execute on schedule, your funds never leave your wallet.
Pick Your Path¶
What do you want to do?
I want to accept payments on my site → React SDK for drop-in components and hooks, or Checkout Links for no-code hosted payment pages.
I want full control over the payment flow → Integration Options to compare approaches, then SDK Reference for the complete TypeScript API.
I want to bill for API usage → x402 Payments — HTTP 402 middleware that gates access behind pay-as-you-go or subscription payments.
I want to monitor and verify payments server-side → Payment Tokens (JWT) to verify active subscriptions, REST API to query payment data, or WebSocket API for real-time notifications.
I want to build a payment service on top of Tributary → Providers for the gateway model, Architecture for the full technical picture.
I want to use the CLI → CLI Tools for protocol management from the command line.
Quick Start¶
The fastest path to a working payment:
import { PaymentsClient } from "@tributary-so/payments";
import { Connection } from "@solana/web3.js";
import { Tributary } from "@tributary-so/sdk";
const connection = new Connection("https://api.mainnet-beta.solana.com");
const tributary = new Tributary(connection, wallet);
const payments = new PaymentsClient(connection, tributary);
const session = await payments.checkout.sessions.create({
mode: "subscription",
line_items: [{ description: "Pro Plan", unitPrice: 10, quantity: 1 }],
paymentFrequency: "monthly",
tributaryConfig: {
gateway: "CwNybLVQ3sVmcZ3Q1veS6x99gUZcAF2duNDe3qbcEMGr",
recipient: "YOUR_WALLET",
trackingId: "user-pro-plan",
},
});
console.log(session.url); // Share this link with your customer
Verify the subscription is active:
const status = await payments.subscriptions.checkStatus({
trackingId: "user-pro-plan",
userPublicKey: "USER_WALLET",
});
if (status.status === "active") {
// Grant access
}
Full details in Checkout Links and Payment Tokens.
Reference¶
| Program ID | TRibg8W8zmPHQqWtyAD1RxBRXEdyU13Mu6qX1Sg42tJ |
| USDC Mint | EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v |
| Default Gateway | CwNybLVQ3sVmcZ3Q1veS6x99gUZcAF2duNDe3qbcEMGr |
| Network | URL |
|---|---|
| Mainnet RPC | https://api.mainnet-beta.solana.com |
| Devnet RPC | https://api.devnet.solana.com |
| Tributary API | https://api.tributary.so |
| Checkout | https://checkout.tributary.so |
Payment Types¶
| Type | Best For | Docs |
|---|---|---|
| Subscription | Fixed recurring billing | Subscription Payments |
| Milestone | Project-based deliverables | Milestone Payments |
| Pay-as-you-go | Metered / usage-based | Pay-as-you-go Payments |
Full Guide Index¶
| Page | What You'll Find |
|---|---|
| Integration Options | Compare all integration methods |
| SDK Reference | TypeScript, React, Payments, x402, CLI packages |
| React SDK | Components, hooks, and payment buttons |
| Checkout Links | Hosted payment pages, no frontend required |
| Payment Tokens | Server-side JWT verification |
| x402 Payments | HTTP 402 middleware for API monetization |
| REST API | Query subscriptions, events, webhooks |
| WebSocket API | Real-time payment notifications |
| Architecture | Protocol design and account structure |
| Smart Contract | On-chain program details |
| Fees | Protocol and gateway fee breakdown |
| Security | Non-custodial model and audit status |
| Providers | Build a payment gateway |
| Use Cases | Business applications and examples |
| FAQ | Common questions |