Solana CLI (Agave)
The Solana Foundation one-liner installs the full toolkit — Agave CLI, Anchor, and Surfpool — in a single step.The client is called Agave (forked from Solana Labs by Anza), but the binary is still named
solana for ecosystem compatibility. solana --version prints solana-cli 3.x.x (... client:Agave). Upgrades now go through agave-install update (the old solana-install binary was renamed).This is only needed on Trader Nodes, whose WebSocket endpoint is on a different host than the HTTPS one — the WSS host carries a On Global Nodes, HTTPS and WebSocket share the same host (for example,
ws- prefix (nd-….p2pify.com for HTTPS, ws-nd-….p2pify.com for WSS). Because solana config set derives the WebSocket URL by swapping only the protocol, set it explicitly on a Trader Node:solana-mainnet.core.chainstack.com), so the derived WebSocket URL is correct and no --ws flag is needed.QUIC support
sendTransaction on a Chainstack Solana node forwards over QUIC to the current and next leaders. No client configuration required.
For high landing rate under contention, use Solana Trader Nodes — sendTransaction is routed through bloXroute’s staked Trader API, all other RPC calls stay on the standard endpoint. See also the Stake-Weighted QoS guide.
JSON-RPC API
Any HTTP client works. Use curl or Postman for ad-hoc calls; see the full JSON-RPC reference for all methods.YOUR_CHAINSTACK_ENDPOINT is your node HTTPS endpoint. See node access details.
gRPC: Yellowstone Geyser
Real-time streaming runs over gRPC through the Yellowstone gRPC Geyser plugin, a paid add-on you install on the node. Its endpoint appears under Yellowstone gRPC in the node’s Access and credentials view, separate from the HTTPS and WSS endpoints. The endpoint listens on port443 with TLS and authenticates with the token in the x-token metadata header rather than in the URL. The console shows it as https://yellowstone-solana-mainnet.core.chainstack.com:443 on Global Nodes and as a bare hostname with no scheme or port on Dedicated Nodes.
The endpoint form depends on the client: @triton-one/yellowstone-grpc (TypeScript) and yellowstone-grpc-client (Rust) need the scheme and port, as in https://HOST:443, while the Python grpc package, Go, and grpcurl take HOST:443 with no scheme. HOST is the hostname alone — yellowstone-solana-mainnet.core.chainstack.com on Global Nodes. See Connect to your endpoint for per-client examples, and gRPC access via x-token for the authentication details.
JavaScript and TypeScript: @solana/kit
@solana/kit is the modern Solana JavaScript SDK — a tree-shakeable, functional API that replaces the class-based @solana/web3.js v1. It is the direct successor to what briefly shipped as @solana/web3.js@2.x.
Per-program instruction builders
Kit exposes only the RPC layer. Typed instruction builders for each Solana program live in per-program packages under thesolana-program org — install them alongside Kit as you need them:
Migrating from @solana/web3.js v1
@solana/web3.js v1 is on a maintenance branch, which still ships protocol compatibility updates such as transaction v1 read support in 1.99.0. For existing v1 apps, the @solana/web3-compat bridge lets you keep your existing imports while progressively adopting Kit primitives:
React dApps: create-solana-dapp
The official scaffolding CLI bootstraps a full dApp (Next.js + Tailwind + wallet connection + Anchor example) in one command:@solana/kit + @solana/react-hooks (framework-kit) for wallet and RPC wiring.
Programs: Anchor 1.0
Anchor v1.0.0 shipped on 2026-04-02. Install via the Anchor Version Manager:anchor test and anchor localnet. See Solana: Anchor development for an end-to-end walkthrough.
Client codegen: Codama
Codama (the successor to Kinobi) generates typed JavaScript and Rust clients from a program IDL. The standard workflow is:@solana-program/* packages are produced. Any program you ship should emit an IDL and pipe it through Codama to generate first-class client types.
Local testing
Three tools cover the modern Solana testing pyramid:
LiteSVM boots an in-process SVM for fast unit tests. Surfpool wraps LiteSVM with a full JSON-RPC server and a copy-on-read mainnet fork — Anchor 1.0 invokes it as the default validator. Mollusk, from Anza, focuses on single-instruction CU profiling.
Python: Solana.py and solders
Solana.py is the main RPC client:Solana.py now uses solders under the hood for its core types (
Keypair, Transaction, Pubkey, etc.) — pip install solana installs solders transitively. Solders also ships the Python bindings for LiteSVM (from solders.litesvm import LiteSVM).AI-assisted development
The Solana Foundation publishes an official solana-dev-skill — a Claude Code skill that teaches agents the current Solana stack (Kit, Anchor 1.0, Codama, LiteSVM/Surfpool, security patterns, version compatibility). Install it into Claude Code:Wallets
Backpack
Backpack is one of the few Solana wallets that lets you set a custom RPC endpoint — essential if you want your wallet to inherit the reliability of your own node rather than share a public endpoint during congestion. To point Backpack at your Chainstack Solana node:- Open Backpack.
- Click the account icon > Settings.
- Click Solana > RPC connection > Custom.
- Enter your Chainstack Solana HTTPS endpoint and click Update.
Reference repos
These are the source repositories we worked against while writing this guide. They stay closer to reality than docs — check them first when something here looks off.- anza-xyz/kit —
@solana/kitv6 source; canonical for RPC types and transaction-builder semantics - solana-foundation/anchor — Anchor 1.0 source; framework behavior cross-checked against master
- solana-foundation/solana-dev-skill — Solana Foundation’s Claude Code skill; opinionated stack defaults cross-checked against
- solana-foundation/templates —
create-solana-dappscaffolder templates - codama-idl/codama — IDL → typed-client codegen referenced in the “generate clients from IDL” section