SAP DOCv0.20.0
SDK Reference

Client Setup

Creating and configuring SapClient and SapConnection for different environments. SDK v0.20.0 aligned.

Client Setup

SDK Version: v0.20.0

The SDK provides two main entry points: SapClient for direct Anchor provider usage and SapConnection for environment-based configuration.


SapClient

SapClient is the root object from which all modules and registries are accessed. It requires an AnchorProvider or an existing Anchor Program.

From Provider

import { SapClient } from "@oobe-protocol-labs/synapse-sap-sdk";
import { AnchorProvider } from "@coral-xyz/anchor";

// AnchorProvider.env() reads ANCHOR_PROVIDER_URL and ANCHOR_WALLET
// from process environment. Default commitment: "confirmed".
const client = SapClient.from(AnchorProvider.env());

From Program

const client = SapClient.fromProgram(myAnchorProgram);

Properties

PropertyTypeDescription
programProgramUnderlying Anchor program
walletPubkeyPublicKeyProvider wallet (default authority and payer)

SapConnection

SapConnection wraps Solana Connection with cluster-aware configuration and factory methods.

Factory Methods

MethodEndpointUse Case
SapConnection.devnet()api.devnet.solana.comTesting
SapConnection.mainnet(rpcUrl?)Custom or Solana defaultProduction
SapConnection.localnet()localhost:8899Local development
SapConnection.fromKeypair(url, keypair)CustomScripts, bots, CLIs

Devnet

const conn = SapConnection.devnet();
const client = conn.fromKeypair(testKeypair);

Mainnet with Synapse Gateway

const conn = SapConnection.mainnet("https://us-1-mainnet.oobeprotocol.ai/rpc?api_key=YOUR_KEY");
const client = conn.createClient(wallet);

Custom Configuration

const conn = new SapConnection({
  rpcUrl: "https://us-1-mainnet.oobeprotocol.ai/rpc?api_key=YOUR_KEY",
  wsUrl: "wss://us-1-mainnet.oobeprotocol.ai/ws?api_key=YOUR_KEY",
  commitment: "finalized",
  cluster: "mainnet-beta",
});
PropertyTypeDefaultDescription
rpcUrlstringRequiredSolana JSON-RPC endpoint
wsUrlstringAuto-derivedWebSocket endpoint
commitmentCommitment"confirmed"Default commitment level
clusterSapClusterAuto-detectedExplicit cluster hint

Environment-Based Setup

function createClient(env: "development" | "staging" | "production") {
  const keypair = Keypair.fromSecretKey(/* load from env or vault */);

  const rpcUrls: Record<string, string> = {
    development: "http://localhost:8899",
    staging: "https://api.devnet.solana.com",
    production: "https://us-1-mainnet.oobeprotocol.ai/rpc?api_key=YOUR_KEY",
  };

  const { client } = SapConnection.fromKeypair(rpcUrls[env], keypair);
  return client;
}

Commitment Levels

LevelLatencyGuaranteeWhen to Use
processed~400 msOptimistic, may be rolled backDebug only
confirmed~400 msSupermajority votedReads, most writes
finalized~6 to 12 sRooted, irreversibleEscrow, attestations, critical writes

The SDK defaults to "confirmed" which is suitable for most operations.


Next Steps


Last Updated: June 2026
SDK Version: 0.20.0