Ray tutorial is an Educational Resource for CLMM Price-Range Management
Updated
Ray tutorial is a focused Raydium concentrated liquidity procedure for choosing lower and upper price boundaries, understanding when liquidity earns fees and responding when a position becomes single-sided. The central decision is range width: a narrow band concentrates capital near the market price, while a wider band stays active through larger moves. This guide assumes the reader already knows how to connect a Solana wallet and select a pool.
In short: A position earns swap fees only while the current tick sits inside its lower-inclusive, upper-exclusive range.
How wide should a Raydium CLMM range be?
A Raydium CLMM price range is the active interval, and its width should reflect expected movement plus the cadence at which you will review it.
Begin with the pair, not an arbitrary percentage. USDC/USDT trades around a tighter relationship than SOL/USDC, so the same band width creates very different monitoring demands. Raydium places boundaries on discrete ticks rather than any decimal price you type. One tick changes the protocol price by a factor of 1.0001, equivalent to about 0.01% or 1 basis point. The pool fee configuration then limits usable boundaries through tick spacing. Published Raydium CLMM configurations pair 0.01%, 0.05%, 0.25% and 1% fee tiers with spacings of 1, 10, 60 and 120 ticks.
Center the band around a defensible price
Price centering determines which boundary the market reaches first. Use the prevailing pool quote as the reference, then confirm the displayed direction before setting limits. A quote shown as USDC per SOL reverses when viewed as SOL per USDC. For a log-symmetric band, the reference price equals the geometric mean of the lower and upper limits. That relationship places equal multiplicative distance on both sides, matching the exponential tick grid.
Match width to the pair’s movement
Correlated assets such as USDC/USDT and mSOL/SOL support tighter bands because their relative prices move within a narrower economic relationship. SOL/USDC needs more room because SOL itself carries the directional move. A tight range supplies greater liquidity per unit of capital near spot, yet it reaches a boundary sooner. A broad range spreads the same capital over more ticks, reducing fee density while extending active coverage.
Choose a band your review schedule can support. An interval demanding hourly attention conflicts with a weekly routine, even when its projected fee rate looks attractive. Range width becomes an operating commitment as soon as the position opens.
When does CPMM beat a concentrated range?
Raydium CPMM is a full-curve liquidity model, and it fits capital meant to remain active without price-band management. Raydium CLMM, Uniswap v3 and Orca Whirlpools concentrate liquidity between boundaries, while Meteora DLMM groups it in discrete bins. Those systems demand range or bin decisions. Raydium CPMM spreads liquidity from prices approaching 0 toward unbounded high prices and issues fungible LP tokens; a CLMM position uses an NFT with supply 1. Choose CPMM when persistent two-sided activity matters more than fee density near spot.
In-range and out-of-range position states
A Raydium CLMM position state is a tick comparison determining whether its liquidity joins swaps, accrues new fees and changes token composition.
A position is active when tick_lower <= tick_current < tick_upper, making the lower boundary inclusive and the upper boundary exclusive.
Active liquidity contributes to PoolState.liquidity, so the position receives its proportional share of LP fee growth during swaps. Outside the interval, its active-liquidity share is 0% and new fee allocation stops. Previously accrued fees remain attached to the position. If the current tick later re-enters the interval, participation resumes automatically from that point.
Above the upper boundary
An upper-bound exit converts the position fully into the quote side under the protocol’s standard token orientation. When price means token1 per token0, a price at or above the upper limit leaves 0 token0 and only token1. For a SOL/USDC position represented with SOL as token0, the balance is therefore USDC. The upper tick itself sits outside the active condition, so fee growth has already stopped there. For a worked version, see Ray in practice.
Below the lower boundary
A lower-bound exit produces the opposite composition. Once tick_current falls below tick_lower, the position holds token0 and 0 token1 under the same orientation. The exact names shown by Raydium follow the pool’s mint ordering, which might differ from the visual base-and-quote order. Read the displayed token balances together with the price direction before interpreting exposure.
Out-of-range status preserves the position NFT and its accrued balances in PersonalPositionState. A later re-entry activates the same two boundaries, giving the owner a clear choice between waiting and redeploying capital.
What should you do when the position leaves its range?
An out-of-range Raydium CLMM position is inactive liquidity, and the right response follows from your desired asset exposure and return threshold.
Waiting keeps the original boundaries and single-asset balance ready for a market return. Recentering withdraws liquidity and opens another position around the new price. A layered approach leaves the old position intact while placing part of the capital in a second range. That second range receives its own NFT with supply 1, allowing separate boundaries and accounting.
Recentering changes economic exposure immediately. Closing an upper-range SOL/USDC position realizes its USDC-heavy composition, while a newly centered position needs both assets at the ratio its new boundaries require. The conversion and redeployment create trading costs, price impact and fresh Solana account costs. SOL pays the network’s 5,000-lamport base fee per signature plus any priority fee and rent for new accounts. Raydium pools also support up to 3 reward slots, yet reward growth follows active liquidity just as swap-fee growth does. A projected reward stream therefore does not compensate an inactive range until price returns or capital moves.
The decision rule in this Ray tutorial is to compare expected incremental fees with the cost and exposure change of redeployment. Capital should move only when the new band serves a defined price thesis and monitoring cadence, because repeated recentering turns temporary divergence into settled portfolio changes.
A worked SOL/USDC range calculation
A worked SOL/USDC range calculation is a boundary test showing how a balanced-looking band becomes a fee-inactive, single-asset position.
Set the inputs
All changing inputs in this hypothetical are defined here: the displayed quote is USDC per SOL, entry is 150, the lower boundary is 120, the upper boundary is 180, the later price is 190 and the selected pool tier is 0.25% with tick spacing 60. Raydium maps entered prices to valid ticks, so the limits displayed after rounding are the operative boundaries.
Reach the position result
The lower limit sits 20% below entry: (150 - 120) / 150 = 0.20. The upper limit sits 20% above entry: (180 - 150) / 150 = 0.20. Later, SOL rises 26.67% from entry because (190 - 150) / 150 = 0.2667. It also stands 5.56% above the upper boundary because (190 - 180) / 180 = 0.0556. Since 190 exceeds 180, the position is out of range.
The concrete outcome is a 0% active-liquidity share for this position, 0 SOL remaining under the stated price orientation and a USDC-only balance. The 0.25% pool tier still applies to eligible swaps, but this position receives none of that new fee growth while price stays above 180. A return below the valid upper tick restores activity; recentering instead establishes a new pair of boundaries.
Ticks, accounts and fee growth under the hood
On the cost side, Raydium CLMM range mechanics are stored in Solana accounts, with each position linking 2 ticks to a specific pool and owner NFT.
The Raydium CLMM grid runs from tick -443636 to 443636, and each tick multiplies protocol price by 1.0001. PoolState stores a Q64.64 square-root price scaled by 2^64, AmmConfig sets spacing and TickArrayState packs 60 entries. At spacing 60, one array spans 3,600 integer ticks. Two token vaults hold the pair assets, linking every range decision to on-chain state.
Ray tutorial: the short answers
Are Raydium CLMM fees automatically reinvested into the active range?
Raydium CLMM fees accumulate separately from the liquidity already supporting the range. Collecting them moves the owed tokens to the connected wallet, while compounding requires adding those tokens back to the same position or another one. The boundaries remain unchanged during fee collection, so reinvestment increases position liquidity rather than widening the interval.
Can accrued fees be collected while a Raydium position is out of range?
Accrued Raydium CLMM fees remain claimable while the position is out of range. Leaving the interval stops new fee growth but does not erase amounts recorded for the position. Collecting those balances does not reactivate liquidity or move either boundary. The position receives new fee growth again only after the current tick returns to its active interval.
Does holding RAY change a CLMM position’s fee tier or range activity?
Holding RAY does not change a Raydium CLMM position’s fee tier, tick spacing or active status because those properties come from the pool’s AmmConfig and the current tick; RAY matters only when it is one asset in the pair or when an incentive program distributes it as a reward token.
What SOL costs apply when opening a replacement CLMM range?
A replacement range incurs Solana transaction fees and any rent-exempt deposits needed for newly created position or tick-array accounts. The base network fee is 5,000 lamports per signature, and 1 SOL contains 1,000,000,000 lamports. Priority fees change with the compute-unit price selected for the transaction. A new tick array adds rent, while an existing initialized array avoids that account creation.
Are Token-2022 assets compatible with Raydium CLMM ranges?
Raydium CLMM supports both SPL Token and Token-2022 mints, subject to the extensions implemented by the pool instructions. A Token-2022 transfer-fee mint charges its configured token-level fee when transfers occur, separate from the pool’s swap fee. That behavior affects deposited and received amounts, while the lower tick, upper tick and in-range test use the same CLMM price mechanics.
Why does transferring a CLMM position NFT change range ownership?
Transferring the CLMM position NFT transfers authority over the associated Raydium position. Each NFT has supply 1 and points to the PersonalPositionState holding its lower tick, upper tick, liquidity and fee checkpoints. The receiving wallet therefore controls collection, liquidity removal and future increases. The transfer leaves the price boundaries and pool configuration unchanged.
When can a new Raydium CLMM position start with only one token?
A Raydium CLMM position can start with one token when the current price sits at or outside the corresponding range boundary. As price moves through the selected interval, swaps progressively change the position into the other asset, resembling a range order. Fee growth applies only while the position contributes active liquidity inside those ticks.