All state in Recur Protocol lives on Solana. The addresses below are publicly readable and can be verified by any Solana client.

Solana Programs

Subscriptions and Allowances Program

De1egAFMkMWZSN5rYXRj9CAdheBamobVNubTsi9avR44

Solana’s native subscription delegation program. Audited by Cantina and Spearbit. Recur builds on top of this program — it is not a Recur-specific contract. You can view the program’s source code and audit reports in the Solana documentation.

Recur Plan Registry

The on-chain catalog where providers publish Plans. The Program ID will be published at launch.

Token Mints (Mainnet)

USDC

EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v

Circle’s native USDC on Solana. The primary payment token in Recur during beta. 6 decimal places — 1_000_000 base units equals 1.00 USDC.

USDT

Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB

Tether’s USDT on Solana. Supported post-beta.

Token amounts

All token amounts in the SDK and API use base units (the smallest indivisible unit of the token). For USDC with 6 decimals:

Amount Base units
0.001 USDC 1_000
0.50 USDC 500_000
1 USDC 1_000_000
10 USDC 10_000_000
49 USDC 49_000_000

Verifying transactions

Every payment and subscription event produces an on-chain Solana transaction. You can verify any transaction using:

  • Solana Explorer — paste a transaction signature
  • SolScan — additional token transfer metadata
  • Any Solana RPC client with getTransaction
import { Connection } from "@solana/web3.js";

const connection = new Connection("https://api.mainnet-beta.solana.com");
const tx = await connection.getTransaction("5RhM...", {
  commitment: "confirmed",
  maxSupportedTransactionVersion: 0,
});

Devnet

For testing, use Solana devnet. The SDK switches program and RPC endpoints automatically when network: "devnet" is configured:

const agent = new RecurAgent({ wallet: keypair, network: "devnet" });

Devnet USDC (Circle’s test token):

4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU

You can obtain devnet USDC via Circle’s faucet.