Skip to main content
Everything in this documentation assumes a working Solana development toolchain. This page lists the tools, the versions known to work with Raydium as of September 2026, and the specific setup gotchas. Start here before running any of the code examples in later chapters.Two sets of versions matter, and they are not the same. To build or fork the Raydium programs you need the exact toolchain they pin — Rust 1.91.0, Agave 3.1.10, Anchor 1.0.2 as of the 2026-09-09 upgrade. To integrate against the deployed programs from TypeScript or Python you only need a client library recent enough to talk to them, and the pins are advisory. Each section below says which case it covers.

Core tools

Solana CLI

The canonical command-line interface for interacting with Solana clusters — wallet management, RPC calls, program deployment. Install:
Verify:
The install host moved. release.solana.com belonged to Solana Labs; the client is now maintained by Anza as Agave, and releases are served from release.anza.xyz. The self-update binary is agave-install (solana-install is kept as a legacy alias), so agave-install update and agave-install init <version> are the current spellings. Solana’s own docs also offer a one-command installer that pulls the CLI, Rust and Anchor together:
That installer tracks its own idea of current and may hand you a different Anchor than the one Raydium’s programs pin — check anchor --version afterwards.
Configure for mainnet:
For Raydium testing, you’ll almost always want a funded devnet wallet:

SPL Token CLI

The official CLI for SPL Token / Token-2022 operations — creating mints, minting tokens, transferring. Install (included with Solana CLI):
Common ops:

Anchor CLI

Needed for fetching Raydium IDLs, building clients, and verifying programs. Install:
Anchor moved repository and major version. The canonical repo is now github.com/solana-foundation/anchor (it was coral-xyz/anchor), and Anchor 1.0 is the first release line the Raydium programs use — CPMM and LaunchLab both pin anchor-lang/anchor-spl =1.0.2 as of the 2026-09-09 upgrade, up from 0.32.1. avm can hold several versions; avm use 1.0.2 is what makes anchor build reproduce Raydium’s artifacts. Anchor 1.1 and 1.2 exist and build fine for your own programs, but a CPI crate compiled against a different anchor-lang minor than the one the target program pins will not link — see sdk-api/rust-cpi.
Common ops:

TypeScript setup

The primary integration path for Raydium.

Packages

Versions known to work together as of September 2026:
@coral-xyz/anchor is frozen; the package is now @anchor-lang/core. @coral-xyz/anchor stopped at 0.32.1 when Anchor moved out of Coral. Anchor 1.x publishes as @anchor-lang/core, and Raydium’s own program repositories switched their test suites to it in the 2026-09-09 upgrade. The imports you actually use are unchanged — import { Program, BN, AnchorProvider } from "@anchor-lang/core" — so migrating is a package rename plus a lockfile update.Two behavioural notes if you are moving off 0.3x: .accounts({...}) now only accepts accounts Anchor cannot resolve itself, so a builder that passes the full set should call .accountsPartial({...}) instead; and @anchor-lang/core/dist/cjs/utils/token is where helpers such as ASSOCIATED_PROGRAM_ID moved.

Minimal script

See sdk-api/typescript-sdk for the full SDK reference.

Rust setup

For CPI integration and on-chain programs.

Toolchain

Build the programs with cargo build-sbf (the old cargo build-bpf spelling is gone).

Program Cargo.toml for a Raydium CPI integration

Pin anchor-lang and anchor-spl with = to the version the target program pins. As of 2026-09 CPMM pins =1.0.2 and CLMM still pins =0.32.1, so a single crate cannot CPI into both — see sdk-api/rust-cpi. The "cpi" feature imports the cpi module with CPI helpers (so you can raydium_cp_swap::cpi::swap_base_input(...)). See sdk-api/rust-cpi.

Python setup

Secondary integration path — common for bot developers.

Packages

Versions:
Two naming traps. The RPC client is imported as solana but the project is called solana-py — pip install solana-py installs nothing useful. And there is no raydium-py package on PyPI: the community Raydium helper is a repository you clone, AL-THE-BOT-FATHER/raydium_py, not a published distribution. Earlier revisions of this page listed a pip install raydium-py line that never worked.

Minimal script

See sdk-api/python-integration.

RPC endpoints

Public mainnet RPC (api.mainnet-beta.solana.com) is heavily rate-limited and throttles under any load. For non-trivial usage, get a private endpoint: Configure:
Some RPC operations need extended capabilities:
  • getProgramAccounts — unrestricted scans are expensive; some providers gate or charge per scan.
  • getPriorityFeeEstimate — Helius-specific endpoint; others have equivalents.
  • geyser / WebSocket streaming — needed for low-latency bots; not all providers expose it.

Devnet and localnet

Devnet

Solana’s public test cluster. Raydium has a partial devnet deployment:
  • Some CPMM pools exist for testing.
  • AMM v4 has historical devnet pools.
  • CLMM has a few demo pools.
  • Farm v6 is deployed.
The SDK supports devnet via cluster: "devnet":
Caveat: devnet pools have thin liquidity and may have stale state. Don’t rely on devnet for price discovery; use it for building-and-testing-instruction flows only.

Localnet with a forked mainnet state

For realistic testing, fork mainnet state into a local validator:
This clones specific program/account state to localhost, where you can transact freely. Ideal for:
  • Unit-testing your CPI integration against a real Raydium program.
  • Replaying a transaction with a modified parameter to debug.
  • Stress-testing with large synthetic volumes.
Raydium’s team uses forked localnet extensively for regression testing prior to mainnet deployment.

Project templates

TypeScript integration starter

Minimal package.json:

Anchor CPI program starter

With Anchor 1.0:

Useful CLI utilities

solana-keygen

Reading any account

Useful for eyeballing pool state without a decoder.

Program logs

Transaction inspection

Or via explorer — paste the signature and look at the “Program Logs” tab.

Environment hygiene

Separate wallets per purpose

  • Development wallet: holds testnet SOL, used for building.
  • Production wallet: holds real SOL, used only for deploys / multisig submissions.
  • Hot wallet for bots: small balance, narrow permissions.
Keys should never be hardcoded. Use environment variables or secret managers.

.env pattern

Version pinning

Lock all Solana-ecosystem dependencies. The ecosystem moves fast; a minor version bump of @solana/web3.js has previously introduced breaking changes. Use package-lock.json / Cargo.lock religiously.

Pointers

Sources: