Raydium

Raydium is a Solana protocol with actively managed LP price ranges

Updated:

Raydium is a Solana protocol whose concentrated-liquidity positions turn an LP’s chosen lower and upper prices into an active trading range. The LP deposits the required mix of two tokens and receives a position NFT. Its portfolio balance shifts as trades move the pool price through the range. Fees accrue only while the position stays in range; moving the boundaries requires a replacement position, while withdrawal uses decrease, collection, and closure actions.

In short: It is a Solana concentrated-liquidity AMM where active LPs open a price range, track its balance, adjust liquidity, and withdraw; fees accrue only in range.

Position costs start with the pool tier and Solana transactions

The selected Raydium CLMM pool determines the base swap-fee tier, while Solana charges each position-management transaction. Raydium publishes four common CLMM base tiers: 0.01%, 0.05%, 0.25%, and 1%, and each tier fixes tick spacing for that pool. Those are swap fees paid by traders, not a charge taken from the LP deposit. Position actions also consume Solana network resources. The base network charge is 5000 lamports per signature, before any optional priority fee. Opening can also fund rent-exempt accounts; closing the empty position returns eligible rent. Token-2022 transfer-fee mints add their mint-level charge on transfers.

Opening a range and reading the first position balance

A Raydium position begins when its lower and upper ticks frame the price exposure you want. Those two endpoints never move by themselves.

Select the pool and boundaries

Start with the exact CLMM pool because a SOL/USDC pool at one fee tier has separate state from the pair at another tier. Raydium maps every tick to a 1.0001 price multiplier, equal to a 0.01% step or one basis point. The common tier spacings are 1, 10, 60, and 120 ticks, so the interface snaps each boundary to a valid grid point. On-chain ticks run from -443636 to 443636. A narrower interval concentrates more liquidity around the spot price, yet it reaches an edge sooner.

Before signing, compare both required token amounts with the wallet balance, leaving SOL available for fees and account creation.

Read the two-token balance

After confirmation, the portfolio card represents one NFT with a fixed supply of 1 and one PersonalPositionState account. The wallet-held item follows Metaplex Token Metadata, so Phantom and Solflare can display the NFT, while Raydium reads the position’s current value, token A, token B, range limits, fee balances, and reward balances. Value changes for two reasons. The pool price converts liquidity between the two assets, and external prices change their quoted value. The displayed USD amount is therefore a valuation, not a fixed claim on the original deposit.

An in-range label means the current tick sits between the lower and upper bounds. Near the lower boundary, composition leans toward one token; near the upper boundary, it leans toward the other. At or beyond a boundary, the principal becomes single-sided. Unclaimed fees sit alongside principal because they do not compound automatically, and up to 3 configured reward streams use separate balances.

What happens when the pool price leaves your range?

When Raydium’s pool price crosses either boundary, the position becomes inactive and earns no new swap fees. The liquidity remains withdrawable, but its additional fee growth is 0 until the price returns inside. Its inventory has also shifted toward one pool token, so reopening around the new price establishes a fresh token mix rather than restoring the deposit. Narrow SOL/USDC ranges demand closer monitoring after sharp moves. Concentrated impermanent loss grows faster than in a wider range. Fee growth resumes only after the current tick re-enters the two bounds.

Adjusting liquidity without mistaking collection for compounding

When the existing Raydium range still fits, increasing liquidity preserves both boundaries and expands the active capital.

Increase within the existing range

Increasing reuses the same NFT, the same lower tick, and the same upper tick. Raydium recalculates required token A and token B from the current price, so the ratio differs from the opening deposit. Review maximum inputs before signing, especially close to an edge, where a small price move changes the deposit mix quickly. This action also updates the position’s two fee-growth snapshots. It does not invest previously accrued fees unless you first collect, rebalance if needed, and add those tokens.

Move to a new range

Changing boundaries creates a new position; Increase cannot rewrite the original two tick indexes. The clean sequence is to decrease the old position, collect its two token balances and any fees, choose fresh bounds, and then open a replacement NFT. You may keep both positions if their ranges serve different roles, such as a broad core around SOL/USDC and a smaller band near the current price. Each NFT then carries its own accounting and network costs.

Collect without changing exposure

Fee collection moves owed token balances to the wallet and leaves the liquidity amount intact. At program level, a DecreaseLiquidity call with its liquidity parameter set to 0 refreshes and collects fees without withdrawing principal. Rewards use a separate collection instruction, with up to 3 reward mints attached to a pool. Since neither collection auto-compounds, compare the amount available with the Solana and priority fees before repeating the action.

Closing the position and unwinding both token balances

Once liquidity reaches 0, Raydium can settle both token balances and retire the position NFT, which is discussed in Raydium tutorial.

A full unwind follows 3 state changes: decrease the position’s liquidity to 0, collect the two pool tokens plus owed fees and rewards, and close the empty position. The last action burns the NFT and returns eligible account rent to the wallet. Check the transaction preview for every mint, since Token-2022 transfer-fee assets deliver the net amount after their configured transfer charge. Wrapped SOL may appear during settlement before the interface unwraps it. Tiny rounding remnants can remain, but they do not keep an already closed position active.

Stopping at 0 liquidity leaves an empty NFT and its state account, which remains manageable but holds no active capital. Close it only after owed fee and reward counters have settled. A partial withdrawal follows the same path through Decrease, yet it keeps the NFT, both original bounds, and the remaining liquidity in place.

How should you handle narrow ranges and edge cases?

When active management becomes frequent, wider or layered Raydium ranges reduce how often boundaries force a decision.

Range width and layered positions

Range width should match monitoring capacity, not a target return. Raydium tick arrays hold 60 initialized-or-empty tick slots each, while the pool’s spacing converts those slots into its usable grid. The 0.25% tier uses 60-tick spacing, so one array spans 3600 integer ticks. Layering a wide position with a narrower one separates core exposure from tactical exposure, but every layer has its own NFT, fee balances, and closing transaction. Orca Whirlpools uses a comparable concentrated-range model; Jupiter routes swaps without managing the Raydium LP position itself.

Token and pool-specific checks

The token standard changes the cash-flow view. Classic SPL Token transfers do not impose a mint-level transfer fee, while a Token-2022 mint may charge its configured fee on deposits, withdrawals, or rewards. USDC and wrapped SOL are common Solana pool assets, but their mint addresses still determine which pool and accounts you touch. Uniswap v3 provides the conceptual ancestor for range positions, while Raydium adapts the model to Solana accounts and SPL-compatible tokens.

Use this decision checklist before changing a live position:

Dynamic-fee-enabled pools add another edge case: the base rate rises with measured volatility, though the CLMM program caps the total fee rate at 10%. That affects trader fees and LP accrual during active periods, not the position’s boundaries. Multiple ranges make sense when each range has a written role and an exit condition; otherwise, extra NFTs mainly multiply monitoring and settlement work.

Raydium - common questions

Can I transfer a Raydium position NFT to a different Solana wallet?

Yes, transferring the position NFT transfers control of the associated CLMM position to the recipient wallet. The liquidity, unclaimed fees, range boundaries, and reward accounting stay attached to that position rather than the sending address. The receiving wallet also needs SOL and suitable token accounts before collecting or withdrawing. A partial ownership transfer is not available because the NFT has a fixed supply of 1.

Does an in-range position always receive incentive rewards?

No, an in-range position receives incentive rewards only when its pool has an active, funded reward stream covering that range. Trading fees and incentive rewards use separate accounting. A Raydium CLMM pool supports up to 3 reward streams, and an ended stream stops adding new rewards even while swap fees continue. Previously accrued rewards remain claimable through the position’s reward balance.

Can identical price ranges exist in separate Raydium fee-tier pools?

Yes, identical displayed boundaries can exist in different Raydium pools, but each pool creates separate position state and an independent NFT. The base fee tier fixes that pool’s tick spacing, so the interface may snap the two boundaries differently across 0.01%, 0.05%, 0.25%, and 1% configurations. Liquidity, fees, rewards, and withdrawal actions never merge across those pool addresses.

What does reversing the token pair do to the displayed price boundaries?

Reversing the pair inverts the price quotation and swaps the order of the boundaries. If a range is expressed as token B per token A, the reciprocal view expresses token A per token B; the old upper bound becomes the reciprocal lower bound, and vice versa. The underlying ticks and position do not change merely because the interface changes quote direction.

When does Raydium create an associated token account during withdrawal?

Raydium creates a missing associated token account when the wallet lacks an account for a token the withdrawal must deliver. That creation requires a rent-exempt balance in addition to the transaction fee. Existing compatible accounts are reused. Token-2022 assets use their own token program context, so a classic SPL Token account for the same wallet does not replace the Token-2022 account the mint requires.

After a reward schedule ends, does the liquidity position remain open?

Yes, the CLMM position remains open after a reward schedule ends because rewards and liquidity have separate lifecycles. New incentive accrual stops at the schedule’s end, while in-range liquidity continues participating in swaps and earning applicable trading fees. The owner can collect the finished reward balance later, keep the range active, reduce it, or close the NFT after all liquidity reaches 0.

Are fee snapshots carried into a replacement Raydium range?

No, a replacement range starts with a new position NFT and fresh fee-growth snapshots at its own lower and upper ticks. Fees already earned by the old range stay owed to the old position until collected. Closing the original position settles those balances; opening the replacement establishes independent accounting, even when both positions use the same pool and the same wallet.

Raydium wordmark above swaps, yield, and liquidity slogans