Skip to Content
Orbit FinancePosition Farming

Position Farming

Advanced LP strategies for getting the most out of your capital.

What is position farming?

Instead of depositing once and forgetting, you actively manage your range to stay where the action is. Rebalance when price moves, switch strategies when market conditions change, and maximize fee capture over time.

Strategies

🎯

Tight range on stable pairs

10-20 bins around current price. Earns heavy fees when price stays put. Rebalance when it drifts. Best for sideways markets.

πŸ“ˆ

Skew bid for accumulation

Load up the buy side. As price dips, your USDC converts to tokens at your chosen prices. You DCA in while earning fees.

πŸ“‰

Skew ask for selling

Load up the sell side. As price rises, you gradually sell at higher prices. DCA out while still collecting fees on each trade.

βš–οΈ

Bid-ask for market making

Heavy at edges, thin in the middle. You earn from big moves in either direction. Less exposure to small chop.

When to rebalance

If price moves outside your range, you stop earning. The question is whether to wait or move.

SituationAction
Small move, looks temporaryWait. It’ll probably come back.
Steady drift in one directionRebalance. Withdraw and re-deposit around the new price.
Sudden spike or dumpWait for things to settle, then rebalance.

Cost of rebalancing: about 0.01 SOL in gas plus a brief period of not earning while you transition. Don’t rebalance on every small wiggle.

Impermanent loss in concentrated LP

Concentrated positions amplify IL compared to traditional AMMs. The tighter your range, the worse it gets when price moves.

IL comparison: concentrated vs traditional
Price move Traditional AMM Concentrated (tight range) ───────── ────────────── ────────────────────────── Β±5% -0.03% -0.3% Β±10% -0.11% -1.1% Β±20% -0.45% -4.5% Β±50% -2.02% -20% Rule: concentrated β‰ˆ 10x the IL of traditional

But you also earn way more fees. The number that matters is net PnL = fees minus IL. Track that, not just one side.

Automating with the SDK

If you want to build a bot that manages positions automatically, the orbit-dlmm SDK gives you everything you need:

import { CipherDlmm } from "orbit-dlmm"; const dlmm = await CipherDlmm.create(connection, poolAddress); // Check current price const { binId, price } = dlmm.getActiveBin(); // Check your positions const positions = await dlmm.getPositionsByUser(myWallet); // Withdraw from old range const withdrawTx = await dlmm.removeLiquidity({ user: myWallet, position: positions[0].position.address, }); // Re-deposit around new price const depositTxs = await dlmm.addLiquidityByStrategy({ user: myWallet, positionNonce: 1n, totalBaseAmount: baseAmount, totalQuoteAmount: quoteAmount, strategy: "concentrated", minBinId: binId - 15, maxBinId: binId + 15, });

Full SDK reference at developers/sdk.

Stack your earnings

LP fees compound into your position automatically. On top of that, stake $CIPHER to earn protocol fees from every pool. Double your income streams.

Start staking $CIPHER β†’
Last updated on