--- name: raydium creator: raunit-dev description: Complete Raydium Protocol SDK - the single source of truth for integrating Raydium on Solana. Covers SDK, Trade API, CLMM, CPMM, AMM pools, LaunchLab token launches, farming, CPI integration, and all Raydium tools. --- # Raydium Protocol - Complete Integration Guide The definitive guide for integrating Raydium - Solana's leading AMM and liquidity infrastructure powering DeFi since 2021. ## What is Raydium? Raydium is a decentralized exchange on Solana providing: - **Token Swapping** - Fast, cheap swaps via smart routing across all pool types - **Liquidity Provision** - Earn trading fees and rewards by providing liquidity - **Token Launches** - LaunchLab for permissionless token launches with bonding curves - **Perpetual Trading** - Leverage trading on crypto assets ### Key Statistics - Most widely integrated liquidity infrastructure on Solana - 35,000+ tokens launched via LaunchLab (2025) - Multiple pool types for different use cases ## Core Products ### Pool Types | Type | Description | Best For | |------|-------------|----------| | **CLMM** | Concentrated Liquidity Market Maker | Professional LPs, stablecoin pairs, active management | | **CPMM** | Constant Product (x*y=k) with Token22 | New token launches, simple integrations | | **AMM V4** | Classic AMM + OpenBook CLOB | Existing markets, hybrid liquidity | ### Additional Features - **LaunchLab** - Permissionless token launches with bonding curves - **Farms** - Yield farming and staking rewards - **Burn & Earn** - Permanent liquidity locking - **Trade API** - HTTP API for swap routing ## API Overview ### 1. SDK (TypeScript) **Package:** `@raydium-io/raydium-sdk-v2` For programmatic integration with full control over pools, positions, and transactions. ### 2. Trade API (HTTP) **Base URL:** `https://transaction-v1.raydium.io` For swap routing - get quotes and serialized transactions via HTTP. ### 3. Data API **Base URL:** `https://api-v3.raydium.io` For pool data, token lists, farm info, and configurations. ## Quick Start ### Installation ```bash npm install @raydium-io/raydium-sdk-v2 # or yarn add @raydium-io/raydium-sdk-v2 ``` ### Basic Setup ```typescript import { Raydium } from '@raydium-io/raydium-sdk-v2'; import { Connection, Keypair } from '@solana/web3.js'; import bs58 from 'bs58'; // Setup connection and wallet const connection = new Connection('https://api.mainnet-beta.solana.com'); const owner = Keypair.fromSecretKey(bs58.decode('YOUR_SECRET_KEY')); // Initialize SDK const raydium = await Raydium.load({ connection, owner, cluster: 'mainnet', disableLoadToken: false, // Load token list }); // Access token data const tokenList = raydium.token.tokenList; const tokenMap = raydium.token.tokenMap; // Access account data const tokenAccounts = raydium.account.tokenAccounts; ``` ## Pool Types ### CLMM (Concentrated Liquidity) Allows LPs to concentrate liquidity in specific price ranges for higher capital efficiency. ```typescript // Fetch CLMM pool const poolId = 'POOL_ID_HERE'; const poolInfo = await raydium.clmm.getPoolInfoFromRpc(poolId); // Or from API (mainnet only) const poolData = await raydium.api.fetchPoolById({ ids: poolId }); ``` ### CPMM (Constant Product) Simplified AMM without OpenBook market requirement, supports Token22. ```typescript // Fetch CPMM pool const cpmmPool = await raydium.cpmm.getPoolInfoFromRpc(poolId); ``` ### AMM (Legacy) Classic AMM integrated with OpenBook central limit order book. ```typescript // Fetch AMM pool const ammPool = await raydium.liquidity.getPoolInfoFromRpc({ poolId }); ``` ## Core Operations ### Swap ```typescript import { CurveCalculator } from '@raydium-io/raydium-sdk-v2'; // Calculate swap const { amountOut, fee } = CurveCalculator.swapBaseInput({ poolInfo, amountIn: 1000000n, // lamports mintIn: inputMint, mintOut: outputMint, }); // Execute CPMM swap const { execute } = await raydium.cpmm.swap({ poolInfo, inputAmount: 1000000n, inputMint, slippage: 0.01, // 1% txVersion: 'V0', }); await execute({ sendAndConfirm: true }); ``` ### Add Liquidity ```typescript // CPMM deposit const { execute } = await raydium.cpmm.addLiquidity({ poolInfo, inputAmount: 1000000n, baseIn: true, slippage: 0.01, }); await execute({ sendAndConfirm: true }); ``` ### Create Pool ```typescript // Create CPMM pool const { execute } = await raydium.cpmm.createPool({ mintA, mintB, mintAAmount: 1000000n, mintBAmount: 1000000n, startTime: new BN(0), feeConfig, // from API txVersion: 'V0', }); const { txId } = await execute({ sendAndConfirm: true }); ``` ## Program IDs | Program | Mainnet | Devnet | |---------|---------|--------| | AMM | `675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8` | `DRaya7Kj3aMWQSy19kSjvmuwq9docCHofyP9kanQGaav` | | CLMM | `CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK` | `devi51mZmdwUJGU9hjN27vEz64Gps7uUefqxg27EAtH` | | CPMM | `CPMMoo8L3F4NbTegBCKVNunggL7H1ZpdTHKxQB5qKP1C` | `CPMDWBwJDtYax9qW7AyRuVC19Cc4L4Vcy4n2BHAbHkCW` | ## API Endpoints ```typescript // Mainnet API const API_URL = 'https://api-v3.raydium.io'; // Devnet API const DEVNET_API = 'https://api-v3.raydium.io/main/'; // Common endpoints const endpoints = { tokenList: '/mint/list', poolList: '/pools/info/list', poolById: '/pools/info/ids', farmList: '/farms/info/list', clmmConfigs: '/clmm/configs', }; ``` ## Transaction Options ```typescript const { execute } = await raydium.cpmm.swap({ poolInfo, inputAmount, inputMint, slippage: 0.01, txVersion: 'V0', // or 'LEGACY' computeBudgetConfig: { units: 600000, microLamports: 100000, // priority fee }, }); // Execute with options const { txId } = await execute({ sendAndConfirm: true, skipPreflight: true, }); console.log(`https://solscan.io/tx/${txId}`); ``` ## Key Features | Feature | CLMM | CPMM | AMM | |---------|------|------|-----| | Concentrated Liquidity | Yes | No | No | | Token22 Support | Limited | Yes | No | | OpenBook Required | No | No | Yes | | Custom Price Ranges | Yes | No | No | | LP NFT Positions | Yes | No | No | ## LaunchLab (New) LaunchLab simplifies token launches on Solana with customizable bonding curves: ```typescript // Create token with bonding curve via LaunchLab const { execute } = await raydium.launchLab.createToken({ name: "My Token", symbol: "MTK", uri: "https://arweave.net/metadata.json", initialSupply: 1_000_000_000n, bondingCurve: "linear", // or "exponential" graduationThreshold: 85_000_000_000n, // 85 SOL txVersion: "V0", }); const { txId } = await execute({ sendAndConfirm: true }); ``` ### Bonding Curve Migration Tokens automatically migrate to AMM pools once they hit the graduation threshold (default: 85 SOL). Creators earn 10% of trading fees post-migration. ### Key Milestones (2025) - **35,000+** tokens launched via LaunchLab - **Orb Explorer** launched for on-chain analytics ## V3 Protocol (Coming) Raydium V3 introduces a hybrid liquidity model combining: - AMM pools with OpenBook's decentralized order book - Access to **40% more liquidity** across Solana DeFi - Enhanced capital efficiency for LPs ## Resources - **SDK**: https://github.com/raydium-io/raydium-sdk-V2 - **Demos**: https://github.com/raydium-io/raydium-sdk-V2-demo - **IDL**: https://github.com/raydium-io/raydium-idl - **CLMM Program**: https://github.com/raydium-io/raydium-clmm - **CPMM Program**: https://github.com/raydium-io/raydium-cp-swap - **AMM Program**: https://github.com/raydium-io/raydium-amm - **CPI Examples**: https://github.com/raydium-io/raydium-cpi ## Skill Structure ``` raydium/ ├── SKILL.md # This file - complete integration guide ├── resources/ │ ├── sdk-api-reference.md # Complete SDK API │ ├── trade-api.md # HTTP Trade API reference │ ├── program-ids.md # All program addresses │ ├── pool-types.md # Pool type comparison │ ├── launchlab.md # LaunchLab documentation │ └── github-repos.md # GitHub repositories reference ├── examples/ │ ├── swap/README.md # Token swap examples │ ├── clmm-pool/README.md # CLMM pool creation │ ├── clmm-position/README.md # CLMM position management │ ├── cpmm-pool/README.md # CPMM pool operations │ ├── liquidity/README.md # Liquidity management │ ├── farming/README.md # Farming and staking │ └── launchlab/README.md # LaunchLab token launches ├── templates/ │ └── raydium-setup.ts # SDK setup template └── docs/ ├── clmm-guide.md # CLMM deep dive └── troubleshooting.md # Common issues ``` ## GitHub Repositories | Repository | Description | |------------|-------------| | [raydium-sdk-V2](https://github.com/raydium-io/raydium-sdk-V2) | TypeScript SDK | | [raydium-sdk-V2-demo](https://github.com/raydium-io/raydium-sdk-V2-demo) | SDK examples | | [raydium-clmm](https://github.com/raydium-io/raydium-clmm) | CLMM program (Rust) | | [raydium-cp-swap](https://github.com/raydium-io/raydium-cp-swap) | CPMM program (Rust) | | [raydium-amm](https://github.com/raydium-io/raydium-amm) | AMM V4 program (Rust) | | [raydium-cpi](https://github.com/raydium-io/raydium-cpi) | CPI integration examples | | [raydium-idl](https://github.com/raydium-io/raydium-idl) | IDL definitions |