How a position behaves
A range, a price, and one rule: when the price walks away, we move the range to meet it with the token you already hold.
In short
- Your deposit earns trading fees only while the price sits inside your range. Outside it, you hold just one of the two tokens.
- If the price stays outside past a delay you pick, a snuggle re-opens a range of the same width right next to the price, using only the token you hold. Nothing is swapped.
- If the price comes back, the pool trades you back bit by bit and you earn fees along the way. If it keeps going, swapping would have done better. We show both.
- Fees are collected at each snuggle. A performance fee comes off the fees (never your deposit), and a setting you choose splits the rest between your position and your wallet.
Your range, in one picture
Every pool here has two tokens. Call them A and B, and measure A's price in B. When you deposit, you pick a price band: your range. Each deposit becomes its own position, held by the vault and recorded as yours.
Inside the range, traders swap against your tokens and pay you a fee each time. As the price moves, the pool quietly changes your mix. Price going up means traders take your A and hand you B. Price going down does the reverse.
Two things follow. First, a narrow range earns more fees per dollar while the price stays in, but the price leaves it sooner. Second, once the price leaves, your position sits still in one token and earns nothing. That second fact is the problem a snuggle is built to fix. The gap between your position and simply holding the tokens is impermanent loss.
Slide the price
Pick a width, then drag the price. The numbers use the same formula as the chart above, for a $1,000 deposit made at price 100.
What do I hold now?
Before trading fees. Fees are what can make up the gap; the Cover Value article shows how we measure that. Illustration only, not a forecast.
What happens in a snuggle
Say the price climbs out the top of your range. You now hold only B, and you earn nothing. A snuggle takes that B and opens a new range of the same width, placed just under the new price. No token is traded for another; you go back in with what you have.
Which side the new range goes on is decided by where the price went. Price fell below your range? You hold A, so the new range sits just above the price. Price rose above it? You hold B, so it sits just below.
Solana: two kinds of concentrated pools — CLMM and DLMM
On Robinhood Chain and Base our vaults sit on Uniswap v3-style pools. Solana does the same job with two different designs, and our Solana vaults are built for both. Solana vaults are not open for deposits yet and have not been externally audited. Everything above about ranges and snuggles still holds; what changes is the shape of the price grid your range sits on.
| CLMM | DLMM | |
|---|---|---|
| Who runs it | Raydium CLMM, also Orca Whirlpools | Meteora ("Dynamic Liquidity Market Maker") |
| Price grid | Continuous ticks of 0.01%: the Uniswap v3 model | Discrete price bins. The bin step is the width of one bin in basis points: bin step 200 means each bin is 2% wide |
| Your position is | A tick range: a lower and an upper price | A span of bins, side by side |
| Earns while | The price is inside your range | The price is inside your span. Only the active bin, the one holding the price, trades |
| Goes idle when | The price crosses either edge | The price steps outside the span. Idle the moment it does |
| Smallest edge step | The pool's tick spacing | One bin |
Raydium also runs Standard pools. Those are not concentrated: every deposit covers the whole price range (constant product, the Uniswap v2 model), so it earns only the whole-pool rate and there is nothing to snuggle. We do not vault them.
The snuggle on each
Same move on both. After your delay, the keeper closes the idle position, takes the single token it has turned into, and opens a fresh one-sided position right next to the current price, on the side where that token belongs. On a CLMM that is a tick range adjacent to the current tick. On a DLMM it is a span of bins adjacent to the active bin. The width carries across: bins × bin step ≈ range %, so a 10-bin span at bin step 200 is about a 20% band.
No swap, ever. A swap would pay the pool's fee tier plus slippage, and it would lock in the loss from the move that just happened. The one-sided re-entry keeps the full token amount and lets the market convert it back a trade at a time, paying you fees as it does. The next section puts numbers on that difference.
Why concentration matters
A full-range deposit earns the whole-pool rate: the pool's trading fees spread over all of its liquidity. A concentrated position earns its share of the liquidity that is active at the current price, the tick or bin the price sits in, because only active liquidity fills trades. That exact share is the concentrated rate the site shows:
The concentrated rate
L_yours is the liquidity your deposit puts at the current price; L_active is what everyone else already has there. Tightening the band raises L_yours for the same dollars: the same tokens are packed into fewer ticks or bins, so more of them sit at the price that is trading. It can never pass 100% of the pool's fees, because your share of the active liquidity can only approach one.
One validated point: a ±52% band on BUN/WETH earned about 2.7× the whole-pool rate. When a pool's active liquidity cannot be read, the app falls back to a fitted estimate, lift = 1.25 · w^−1.19 with w the half-band as a fraction of price, and marks it est. It agrees with wide bands like that one; at tight bands it overstates, which is why the exact share is what we show.
The trade-off is real. Tighter means more fees per hour while you are in range, but the price leaves a tight band sooner, so you are out of range more often and snuggle more. Each snuggle re-anchors you to a price that has already moved. Pick the width for the pool's volatility, not for the biggest lift.
Swap now, or let the pool trade you back?
Many range managers do something different at step 4: they swap part of your B back into A and re-center a fresh 50/50 range on the new price. That swap happens right after a big move, and it turns a paper loss into a real one. Here is the same position run both ways.
Worked example
$1,000 goes into a range from 80 to 125 at price 100 (5 A + $500 of B). The price climbs 30% to 130. The position is now all B, worth $1,059.02. From here:
- Swap back: trade about $530 of B for A, re-center on 104 – 162.5.
- Re-anchor (QuantumPools): keep all the B, open 81.6 – 127.4 just below the price.
What each is worth later
| Price after 130 | Swap back | Re-anchor | Gap |
|---|---|---|---|
| Falls to 104 (−20%) | $897.21 | $1,009.62 | +$112.41 |
| Settles at 115 | $980.19 | $1,045.78 | +$65.59 |
| Stays at 130 | $1,059.02 | $1,059.02 | $0.00 |
| Climbs on to 150 | $1,112.89 | $1,059.02 | −$53.87 |
- Re-anchor with the B you hold
- Swap back to 50/50 at 130
When it does not help
Read the right side of the chart. If the price keeps climbing, the re-anchored range sits below it holding B, and you miss the rest of the rise. The next snuggle re-anchors below the new price, still in B. In a steady one-way trend you get no benefit from waiting, and you keep moving.
Where the trading fees go
Fees build up inside your position. At a snuggle, the vault collects them, takes the performance fee on those collected fees only, then follows your fee setting for the rest. On liquidity pools the fee is at most 15% (15% today, read live from the vault); copy trading, where you copy another member's LP position, is up to 25%. It never touches your deposit or your price gains. Referring friends lowers your own fee 1% per friend with an open position worth $500+ (back up if they close out), with no cap (floor 0%), and routes 1% of each active friend's fees to you out of our 15%, never an extra charge to them. Details are in Performance & Fees.
Why can't the A fees go back in? The new range sits on one side of the price and only takes B. So fees in the other token always land in your wallet, whatever the setting. You pick how the usable side is handled:
| Split default | Half of the usable token goes back in; the rest is paid out. The app calls this "Half in, half out". |
|---|---|
| Compound all | All of the usable token goes back in. The other token is still paid out. |
| Send to wallet | Everything is paid out. Your position stays the same size. |
| Route | The share you would re-invest goes into another of your positions at its next snuggle. The vault supports it; the app lists it as coming soon. |
You can change this at any time. The full list of settings is in Configuration.
Between snuggles
Nothing is re-invested on a timer. While your position stays in range, fees sit in the pool (the app shows them as Unharvested Fees) until you act. Collect pays them out. Compound puts both tokens back in; if the fees are all one token, they are paid out instead. A withdrawal pays them out too. The keeper cannot collect or compound for you; only you can.
Hands-off or hands-on
Auto-snuggle is off until you switch it on for a position. With it on, a keeper bot checks roughly every 1 to 3 minutes and moves your position forward one step at a time. It never picks your range: the vault works out the new edges from your width setting.
You can also snuggle a position yourself. It still has to be out of range, but it skips your delay.
| Automatic (keeper) | Manual (you) | |
|---|---|---|
| Switched on by | You, per position | Always available to you |
| Waits for your delay | Yes | No, runs right away |
| Needs the position out of range | Yes | Yes |
| Gas for the snuggle | Keeper pays | You pay |
| Works while the vault is paused | No | No |
A pause never blocks withdrawals, collecting or compounding. Neither the keeper nor anyone else but you can move your funds out.
Words on this page
- Range
- The price band you pick. Your deposit only trades, and only earns, while the price is inside it.
- Tick
- The smallest price step a pool uses: each tick moves the price by 0.01%.
- Tick spacing
- How many ticks apart range edges can be. On the USDG/DELL 1% pool, for example, it is 200 ticks, about a 2% step, which is also the narrowest width allowed there.
- In range
- The price is between your edges. You hold a mix of both tokens and earn fees.
- Snuggle
- Closing an out-of-range position and re-opening the same width right next to the price, with the token you hold. No swap.
- Delay
- How long the price must stay outside before the keeper snuggles. You set it per position, 0 to 7 days.
- Keeper
- A bot that starts the clock and triggers snuggles. It pays the gas and cannot move or hold your funds.
- Impermanent loss (IL)
- How far your position lags behind just holding the tokens you put in. Worked example.
- Cover Value
- Fees earned divided by IL. Above 1× means fees are ahead of the loss. How it works.
- CLMM
- Concentrated Liquidity Market Maker: a pool with continuous ticks, the Uniswap v3 model. On Solana that is Raydium CLMM and Orca Whirlpools.
- DLMM
- Dynamic Liquidity Market Maker, Meteora's design: price is cut into fixed bins and a position is a span of them.
- Bin step
- The width of one DLMM bin in basis points. Bin step 200 means each bin is 2% wide.
- Active bin
- The one DLMM bin that holds the current price. It is the only bin that trades.