CtrlK
BlogDocsLog inGet started
Tessl Logo

raydium

Raydium - swaps, CLMM positions, AMM liquidity on Solana

70

Quality

59%

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

SecuritybySnyk

Advisory

Suggest reviewing before use

Optimize this skill with Tessl

npx tessl skill review --optimize ./src/skills/bundled/raydium/SKILL.md
SKILL.md
Quality
Evals
Security

Raydium DEX

Raydium is a high-volume DEX on Solana with AMM pools and CLMM (Concentrated Liquidity Market Maker) pools.

Commands

Swaps

/ray swap <amount> <from> to <to>    Execute swap on Raydium
/ray quote <amount> <from> to <to>   Get quote without executing
/ray pools <token>                   List pools for token

CLMM (Concentrated Liquidity)

/ray clmm positions                  List your CLMM positions
/ray clmm create <pool> <lower> <upper> <amount>   Open position
/ray clmm add <pool> <nft> <amount>  Add liquidity to position
/ray clmm remove <pool> <nft> [%]    Remove liquidity
/ray clmm close <pool> <nft>         Close position
/ray clmm harvest                    Harvest all rewards

AMM Liquidity

/ray amm add <pool> <amountA> [amountB]   Add liquidity
/ray amm remove <pool> <lpAmount>         Remove liquidity

Examples

Swaps

/ray swap 1 SOL to USDC
/ray quote 100 USDC to RAY
/ray pools SOL

CLMM Positions

/ray clmm positions                              # List all positions
/ray clmm create ABC123... 100 200 1000000000   # Open position with price range
/ray clmm add ABC123... NFT456... 500000000     # Add liquidity
/ray clmm remove ABC123... NFT456... 50         # Remove 50%
/ray clmm harvest                                # Harvest rewards

Pool Types

TypeDescriptionFeatures
AMM (V4)Standard constant-product AMMSimple, high volume
CLMMConcentrated liquidityCapital efficient, earn fees in range
CPMMConstant product (newer)Lower fees

Tools Available

Swap Tools

ToolDescription
raydium_swapExecute swap via Raydium
raydium_quoteGet quote without executing
raydium_poolsList available pools

CLMM Tools

ToolDescription
raydium_clmm_positionsList your CLMM positions
raydium_clmm_create_positionOpen new concentrated liquidity position
raydium_clmm_increase_liquidityAdd liquidity to existing position
raydium_clmm_decrease_liquidityRemove liquidity from position
raydium_clmm_close_positionClose an empty position
raydium_clmm_harvestHarvest fees and rewards
raydium_clmm_swapSwap directly on a specific CLMM pool
raydium_clmm_create_poolCreate new CLMM pool
raydium_clmm_configsGet available fee tier configs

AMM Tools

ToolDescription
raydium_amm_add_liquidityAdd liquidity to AMM pool
raydium_amm_remove_liquidityRemove liquidity from AMM pool

TypeScript API

import {
  // Swaps
  executeRaydiumSwap,
  getRaydiumQuote,
  listRaydiumPools,

  // CLMM (Concentrated Liquidity)
  getClmmPositions,
  createClmmPosition,
  increaseClmmLiquidity,
  decreaseClmmLiquidity,
  closeClmmPosition,
  harvestClmmRewards,
  swapClmm,
  createClmmPool,
  getClmmConfigs,

  // AMM Liquidity
  addAmmLiquidity,
  removeAmmLiquidity,
} from 'clodds/solana/raydium';

// Execute swap
const swap = await executeRaydiumSwap(connection, keypair, {
  inputMint: 'So11111111111111111111111111111111111111112',
  outputMint: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
  amount: '1000000000', // 1 SOL in lamports
  slippageBps: 50,
});

// Open CLMM position
const position = await createClmmPosition(connection, keypair, {
  poolId: 'POOL_ID_HERE',
  priceLower: 100,
  priceUpper: 200,
  baseAmount: '1000000000', // 1 SOL
  slippage: 0.01,
});
console.log(`Position NFT: ${position.nftMint}`);

// List positions
const positions = await getClmmPositions(connection, keypair);
for (const pos of positions) {
  console.log(`Pool: ${pos.poolId}, Liquidity: ${pos.liquidity}`);
}

// Add liquidity to position
await increaseClmmLiquidity(connection, keypair, {
  poolId: 'POOL_ID_HERE',
  positionNftMint: 'NFT_MINT_HERE',
  amountA: '500000000', // 0.5 SOL
});

// Harvest rewards
const rewards = await harvestClmmRewards(connection, keypair);
console.log(`Harvested: ${rewards.signatures.length} transactions`);

// AMM: Add liquidity
await addAmmLiquidity(connection, keypair, {
  poolId: 'AMM_POOL_ID',
  amountA: '1000000000',
  fixedSide: 'a',
  slippage: 0.01,
});

// AMM: Remove liquidity
await removeAmmLiquidity(connection, keypair, {
  poolId: 'AMM_POOL_ID',
  lpAmount: '1000000', // LP tokens to burn
  slippage: 0.1,
});

Environment Variables

SOLANA_PRIVATE_KEY=<base58 or JSON array>
SOLANA_RPC_URL=https://api.mainnet-beta.solana.com  # optional

CLMM Position Management

Opening a Position

  1. Choose a pool (e.g., SOL-USDC)
  2. Set price range (lower, upper)
  3. Deposit tokens - you'll provide both tokens proportionally

Managing Positions

  • Add liquidity: Deposit more tokens to existing position
  • Remove liquidity: Withdraw tokens (partial or full)
  • Harvest: Collect trading fees earned
  • Close: Close position after removing all liquidity

Price Range Strategy

StrategyRangeRisk/Reward
Wide range50% - 200% of currentLower fees, less IL
Narrow range95% - 105%Higher fees, more IL risk
Full range0 - infinityLike standard AMM
Repository
alsk1992/CloddsBot
Last updated
Created

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.