Refactor high-complexity React components in Dify frontend. Use when `pnpm analyze-component...
npx skills add eugenepyvovarov/mcpbundler-agent-skills-marketplace --skill "raydium"
Install specific skill from multi-skill repository
# Description
Comprehensive guide for integrating Raydium AMMs on Solana. Use when building swaps, liquidity, and farming features with CLMM/CPMM/AMM via the Raydium SDK.
# SKILL.md
name: raydium
description: Comprehensive guide for integrating Raydium AMMs on Solana. Use when building swaps, liquidity, and farming features with CLMM/CPMM/AMM via the Raydium SDK.
Raydium Protocol Integration Guide
A comprehensive guide for building applications with Raydium - Solana's leading AMM and liquidity protocol.
Overview
Raydium is a suite of automated market makers (AMMs) on Solana offering:
- CLMM - Concentrated Liquidity Market Maker for capital-efficient LP positions
- CPMM - Constant Product Market Maker with Token22 support (no OpenBook required)
- AMM - Classic AMM integrated with OpenBook CLOB
- Farms - Yield farming and staking rewards
Quick Start
Installation
npm install @raydium-io/raydium-sdk-v2
# or
yarn add @raydium-io/raydium-sdk-v2
Basic Setup
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.
// 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.
// Fetch CPMM pool
const cpmmPool = await raydium.cpmm.getPoolInfoFromRpc(poolId);
AMM (Legacy)
Classic AMM integrated with OpenBook central limit order book.
// Fetch AMM pool
const ammPool = await raydium.liquidity.getPoolInfoFromRpc({ poolId });
Core Operations
Swap
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
// CPMM deposit
const { execute } = await raydium.cpmm.addLiquidity({
poolInfo,
inputAmount: 1000000n,
baseIn: true,
slippage: 0.01,
});
await execute({ sendAndConfirm: true });
Create Pool
// 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
// 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
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 |
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
βββ resources/
β βββ sdk-api-reference.md # Complete SDK API
β βββ program-ids.md # All program addresses
β βββ pool-types.md # Pool type comparison
βββ 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
βββ templates/
β βββ raydium-setup.ts # SDK setup template
βββ docs/
βββ clmm-guide.md # CLMM deep dive
βββ troubleshooting.md # Common issues
# Supported AI Coding Agents
This skill is compatible with the SKILL.md standard and works with all major AI coding agents:
Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.