Guides Position builder

Guides

Position builder.

Every control of the Obol position builder explained: pool, amounts, shape, price range, bins, slippage and the transactions you sign.

The position builder sits on the right of every token page. Everything you set there is turned into a single openLadder transaction.

Controls

ControlWhat it doesDefault
PoolUniswap V3 or V4 pool the ladder is built in. Only Uniswap pools are listed.Highest-volume pool
Token amountAmount of the token itself (sits above the price).0
Quote amountAmount of ETH or USDG (sits below the price). WETH pools accept ETH and wrap it.—
Auto-fillFills the other amount in proportion to how much of the range sits on each side of the price.Off
ShapeSpot, Curve or Bid-Ask distribution across bins.Curve
Min / maxRange as market caps. Min between -90% and -1%, max between +1% and +200% of the current cap.-30% / +40%
BinsNumber of positions, 1 to 20. Capped on-chain if the range is too narrow for the pool's tick spacing.10
SlippageMax price move tolerated before the transaction lands, enforced on-chain.0.5%

Chart and distribution

The candlestick chart shows price or market cap with your range overlaid; drag the handles to adjust it. Below the inputs, the distribution chart previews how much each bin receives with the selected shape.

Transactions

Pool typeWhat you sign
V4, paired with native ETH1 transaction: openLadder with ETH attached
V3 or V4, paired with WETHWrap ETH (if needed) → approve WETH → openLadder
USDG or other ERC-20Approve (once per amount) → openLadder
Approvals are granted to the ladder manager for the exact amount, and the manager clears its own Uniswap allowances after each open.

Common errors

MessageMeaningFix
PriceOutOfBoundsPrice moved more than your slippage before execution.Retry, or raise slippage slightly.
NoLiquidityNo bin can use the token you deposited (e.g. ETH only with a range entirely above the price).Move the range below the price or add the other token.
InvalidPoolNot a canonical Uniswap pool, or pool not initialized.Pick another pool.
InvalidValueETH sent does not match the amount (native-ETH pools).Retry from the app.