Skip to Content
Orbit FinanceKey Concepts

Key Concepts

The building blocks of how Orbit Finance works. If you just want to LP, you don’t need to know all this. But it helps.

Bins

A bin is a price bucket that holds liquidity. The whole price spectrum gets divided into bins, and each bin has an index (a number, can be negative).

Bin step controls how wide each bucket is. A 100bps (1%) step means each bin covers a 1% price range. A 10bps step covers 0.1%.

price at bin(id) = (1 + bin_step / 10000) ^ id

With a 125bps bin step, that works out to:

  • Bin 0 = 1.0x base price
  • Bin 100 = 3.46x base price
  • Bin -100 = 0.29x base price

BinArrays

On-chain, bins are stored in groups of 64 called BinArrays. Each BinArray is its own Solana account.

BinArray at 0: holds bins 0 through 63 BinArray at 64: holds bins 64 through 127 BinArray at -64: holds bins -64 through -1

BinArrays are only created when someone deposits into that range. No liquidity in that price area? No account on-chain. This keeps costs low.

Positions

A Position is your LP stake in a pool. Within a position, you have PositionBins for each bin where you put liquidity.

Position structure
Position (your LP stake) ├── PositionBin at bin -5 → 100 shares ├── PositionBin at bin -4 → 200 shares ├── PositionBin at bin -3 → 150 shares └── PositionBin at bin -2 → 100 shares

Shares track your proportion of a bin’s total liquidity. If you hold 50% of a bin’s shares, you earn 50% of the fees from swaps in that bin.

Active bin

The active bin is where the current market price sits. When someone swaps:

  • Buys push the active bin up (higher price)
  • Sells push the active bin down (lower price)

Only liquidity in the active bin (and bins the swap crosses through) earns fees. If the price moves outside your range, you stop earning until it comes back or you rebalance.

Q64.64 pricing

Prices are stored on-chain in Q64.64 format. That’s 64 bits for the whole number part and 64 bits for the decimal part. Basically just very precise fixed-point math that avoids floating point issues.

You don’t need to think about this directly. The SDK handles conversion for you with calculatePriceQ64_64() and q64_64ToDecimal().

Distribution strategies

When depositing, you choose how to spread your liquidity across bins:

📊

Uniform

Flat spread. Simple and predictable.

🎯

Concentrated

Tight bell curve near current price. Max fee capture in calm markets.

📈

Skew Bid / Ask

Weighted to one side. Bullish (bid) or bearish (ask) positioning.

⚖️

Bid-Ask

Heavy at edges, thin in the middle. Market making style.

The tighter you concentrate, the more you earn when price stays in range. But you also go out of range faster if price moves. It’s a tradeoff.

Don’t want to manage LP positions?

Stake $CIPHER instead and earn from every swap without touching bins. $2,625/week at $50K daily volume.

Learn about staking →
Last updated on