Source of truth. This page is the only place in the docs that lists program addresses verbatim. Other pages link here. If an ID changes, update it only here and every reference in the site stays consistent.Always cross-check values against the live API (
https://api-v3.raydium.io/main/info) before signing real transactions.Mainnet-beta
On-chain programs
Notes:
- AMM v4 and Farm v3/v5 are retained for existing pools and positions. The Raydium UI and SDK route new pool creation and new ecosystem farms to CPMM, CLMM, and Farm v6 respectively — see
protocol-overview/versions-and-migration. - The Farm v3 ID above doubles as the $RAY single-asset staking program. Behavior is identical to Farm v3 for LP staking.
- Stable AMM is a separate program that the AMM Routing program can target alongside AMM v4, CPMM, and CLMM. Liquidity is thin compared to the other three programs and the SDK does not expose a first-class API for it; integrators that route through it generally do so via the router.
- Source-code availability. Of the on-chain programs above, only
raydium-amm(AMM v4),raydium-cp-swap(CPMM), andraydium-clmm(CLMM) ship with public source repositories undergithub.com/raydium-io. Stable AMM, LaunchLab, AMM Routing, Burn & Earn / LP Lock, and the Farm programs are not publicly available — verify them against the live API, the on-chain bytecode, and the published IDLs inraydium-io/raydium-idlinstead.
Shared admin authority
All Anchor-based programs (CLMM, CPMM, LaunchLab, Lock) share a single hardcoded adminPubkey for instruction-level access control to admin paths (such as CreateAmmConfig or UpdatePoolStatus):
Account-level operational authorities (e.g.
protocol_owner, fund_owner on CPMM/CLMM AmmConfig, or the migration wallets on LaunchLab GlobalConfig) are stored on-chain and may differ from the program admin. Read them directly from the relevant config account before sending high-stakes transactions.
Shared config / PDA conventions
Several Raydium programs expose config accounts whose public keys are stable and listed on the public API. Prefer the API lookup over hardcoding:AmmConfig index 0 (standard 0.25% pool) fee parameters, for reference:
See
products/cpmm/fees for how the splits compose, and reference/fee-comparison for the cross-product matrix.
PDA seeds
The seeds below are canonical and used by both the SDK and on-chain CPIs. Always compute PDAs; do not hardcode derived addresses.token0Mint / token1Mint are sorted by public-key byte order (token0 < token1) before hashing. Getting this wrong yields a valid PDA for a non-existent pool.
The equivalent CLMM seeds follow the same style; see products/clmm/accounts.
Devnet
Devnet REST API base:
https://api-v3-devnet.raydium.io/ (same route shape as mainnet).
How to verify an address on-chain
- Solana Explorer. Paste the address into explorer.solana.com and confirm it’s marked
Programwith a current upgrade authority. Mainnet-beta should show deploys signed by Raydium’s upgrade authority. - CLI. Use
solana program show <PROGRAM_ID> -u mainnet-betato inspect deploy slot, BPF loader, upgrade authority, and data length. Record these in your runbook. - IDL attachment. Query the on-chain IDL with
anchor idl fetch <PROGRAM_ID> --provider.cluster mainnet. The IDL’saddressfield should match. The same IDLs are mirrored at github.com/raydium-io/raydium-idl — diff the on-chain IDL against the repo before trusting it. - Config/admin authorities. For CPMM/CLMM config accounts, read the
owner/protocol_ownerfield and confirm it matches the current Raydium multisig published insecurity/admin-and-multisig.
Updating this page
- Changes to program IDs are safety-critical. Do not ship a program-ID change without (a) linking to the Raydium announcement, (b) adding an entry in
reference/changelog, and (c) running a link-check over the docs to confirm no page still references the old value. - Deprecations stay in the table with a status note rather than being deleted — existing pools still resolve via the old program.
- Live API:
https://api-v3.raydium.io/main/info - github.com/raydium-io/raydium-idl
- github.com/raydium-io/raydium-cp-swap

