Raydium CLMM

Raydium CLMM Bot for Solana, Run from Telegram

This Raydium CLMM bot automates concentrated-liquidity management on Solana: it opens positions, rebalances them when price leaves your range, collects fees and reports the APR of each position — not the pool average.

Open in Telegram

What it does

Raydium CLMM works like Uniswap v3: you pick a price range and your capital only earns fees while price sits inside it. That is efficient and unforgiving — a position outside its range earns nothing while still carrying exposure. The bot removes the manual watch.

Range rebalancing

Checks every position about every 2 minutes; one that has left its range is closed, its fees banked, and a new one opened around the current price.

Wide + narrow

Splits a pool's capital between a wide position that stays in range longer and a narrow one that earns more per dollar while price stays close.

Per-position APR

Shows what your position earns, computed from its share of the pool's active liquidity — not the pool's headline number.

Portfolio funding

You name a dollar amount. The bot sells what the pool does not need and buys both sides of the pair to reach it.

Orca at the same time

Runs Raydium and Orca positions in parallel with separate capital per pool.

Optional IL hedge

A partial perp short on Jupiter Perps can be enabled per account. Off by default — here is why.

Raydium vs Orca: what actually differs

Both run the same CLMM math. What differs is pool size, and that changes how the numbers behave. Our own measurement of the SOL/USDC 0.04% pool on both venues, 16 September 2026:

MetricRaydium CLMMOrca Whirlpool
Pool TVL$7.0M$24.6M
APR, last 24h52.5%55.7%
APR, last 7d28.9%44.0%
Spread (24h / 7d)1.82×1.27×
Read the last row, not the first. The 24-hour numbers look almost identical. The weekly ones do not. Raydium's pool is 3.5× smaller, so the same trade moves its fees-over-TVL ratio far more — its headline APR swings, and the swing is what you feel.

How the bot sizes a Raydium position

A CLMM deposit needs both sides of the pair in the right proportion for your range. Get it wrong and the pool takes only what it can pair, leaving the rest idle. The bot computes the split from the range and the current tick, then assembles it:

your amount in USD
  -> check it against free capital minus reserves (gas, hedge margin, kept fees)
  -> sell whatever this pool does not need
  -> buy both legs in the range's own proportion
  -> open

If reserves make the amount impossible, it says so and names which reserve is in the way, instead of quietly opening something smaller.

Supported pools

On Raydium: SOL/USDC (0.04% and 0.02%), SOL/USDT (0.01%), USDC/USDT (0.01%), USD1/USDC (0.01%), SOL/USD1 (0.25%) and the SOL/JitoSOL and SOL/mSOL liquid-staking pairs (0.01%). On Orca Whirlpool: SOL/USDC 0.04% (the bot's main pool) and the cbBTC pairs. You choose which pools the bot works in and how much goes to each — a fixed dollar amount or a share of capital.

What it costs to run

Each open and each rebalance is an on-chain transaction. On Solana that is fractions of a cent in gas, but every position also locks about 0.055 SOL of rent, which comes back when the position closes. On a small position, the swaps around each rebuild weigh more against the fees it earns. The bot itself costs 50 USDT for 30 days or 500 USDT for 365 days; on the commission plan there is no upfront price and it takes 15% of collected LP fees, when they are collected.

Open-source Raydium CLMM bots on GitHub vs a hosted bot

Search for a Raydium CLMM bot and GitHub repositories fill the top results — projects such as himanshuranjan007/raydium-clmm-bot, WeShipHQ/lp-bot and joaquinbejar/CLMM-Liquidity-Provider. They are code you run yourself, and that has real advantages: you can read every line, and the key stays on your own machine. The rebalancing rule is the small part, though. What keeps a bot working for months on Solana mainnet is the plumbing around it:

Self-hosted scriptSmart LP Bot (hosted)
Private keyOn your own machineCustodial: the bot wallet's key is stored on our server under AWS KMS envelope encryption (records not yet migrated still use the older PBKDF2-based scheme) and decrypted only in memory at signing time. Once you enable 2FA, money operations need a 2FA code; withdrawals can be limited by an address whitelist and a daily cap. With an external wallet such as Phantom you sign every transaction yourself, but then automated management is not available.
UptimeYour machine or server has to stay up 24/7Runs on our server; positions are checked about every 2 minutes
RPC limitsUsually one endpoint and its rate limit; failover is yours to buildA pool of RPC providers with failover; signed transactions are re-broadcast if they are dropped
Positions missing from the recordsUp to you to noticeA wallet scan recovers positions that exist on-chain but are missing from the bot's database
Risk rulesWhatever the code implementsNew opens pause after a 3% drop within an hour; a 4–5% drop closes the narrow position, 5–10% closes all LP, a flash crash closes everything and waits 30 minutes
CodeYou can read and change itYou use it as a service
CostFree, plus your server and RPC plan50 USDT / 30 days, 500 USDT / 365 days, or 15% of collected LP fees

If you are comfortable running a server and paying for an RPC plan, a script is a reasonable choice. If you would rather not, that plumbing is what the hosted bot is for.

Frequently Asked Questions

Does the bot work with Raydium CLMM or only Orca?

Both, and at the same time. You select the pools it should work in and set capital per pool. Raydium positions are opened through Raydium's own CLMM program; Orca positions through Whirlpools. The bot tracks each position separately and reports their APR separately.

Why does the APR on my Raydium position keep changing?

Because the pool's own 24-hour fee rate changes with trading volume, and your position's number is derived from it. On our 16 September 2026 measurement the Raydium SOL/USDC pool showed a 24h-to-7d spread of 1.82x versus 1.27x on Orca — the smaller pool simply swings more. The card also shows the same calculation on the pool's 7-day rate as a steadier reference.

What happens if price leaves my Raydium range?

The bot checks its positions about every 2 minutes, so it catches the exit on the next cycle. It closes the position, collects the fees earned, and reopens a new position centred on the current price with a width chosen for current volatility, once the market filter allows a new open. A position left outside its range earns nothing while still carrying exposure, so speed matters.

Can I set the position size in dollars?

Yes. You enter a dollar amount and the bot assembles it from the whole portfolio — selling assets this pool does not need and buying both sides of the pair. If reserves (SOL for gas, hedge margin, collected fees held aside) make the amount impossible, it refuses and tells you which reserve blocks it.

Is there an open-source Raydium CLMM bot?

Yes. Several are on GitHub, for example himanshuranjan007/raydium-clmm-bot, WeShipHQ/lp-bot and joaquinbejar/CLMM-Liquidity-Provider. You run them yourself, with your own key, server and RPC endpoint. Smart LP Bot is the hosted alternative: it runs on our server, holds the bot wallet's key encrypted there, and adds RPC failover, recovery of untracked positions and drop-based risk rules.

Let the bot handle it

Smart LP Bot manages concentrated liquidity positions on Orca and Raydium at the same time — rebalancing, fee collection and optional IL hedging, all from Telegram.

Open in Telegram

Home · Orca Whirlpool Bot · Raydium CLMM Bot · LP APR Calculator · Delta-Neutral LP · CLMM rebalance bot · Passive Income · Blog

Pool figures are public pool data from the date shown and not investment advice; liquidity positions can lose value.