Protocol Protocol architecture

Protocol

Protocol architecture.

How the ladder managers sit on top of Uniswap V3 and V4 on Robinhood Chain.

Two small contracts sit between your wallet and Uniswap: one for V3 pools, one for V4 pools. They hold the positions on your behalf and nothing else.

Your wallet

ETH · WETH · USDG · tokens

openLadder

ObolLadderManager

Uniswap V3

mint · collect

NonfungiblePositionManager

1 NFT per funded bin

V3 pool

token0 / token1 · fee tier

openLadder

ObolLadderManagerV4

Uniswap V4

unlock → callback

PoolManager

singleton · flash accounting

V4 pool

PoolKey · native ETH

Both managers expose the same actions (open, claim, close). They differ in how they talk to Uniswap.

Components

ComponentRole
ObolLadderManagerLadders on canonical Uniswap V3 pools. Owns one position NFT per funded bin.
ObolLadderManagerV4Ladders on Uniswap V4 pools. Owns one position per bin inside the PoolManager, keyed by salt.
LadderMath (library)Range alignment, bin splitting and per-bin budget allocation, shared by both managers.
ShapeCalculator (library)The five shape weightings.
LiquidityAmounts / TickMathUniswap math: amounts ⇄ liquidity, ticks ⇄ sqrt prices.
FrontendReads pools from CoinGecko, resolves V4 PoolKeys on-chain, converts ranges to ticks, sends one transaction.

Ladder lifecycle

  1. Open

    openLadder(params) validates the pool and price guard, pulls funds, allocates them over bins, adds liquidity and refunds leftovers. The ladder is stored with its owner, pool, bins and shape.

  2. Earn

    Swaps through funded bins accrue fees to the manager's positions, tracked per ladder.

  3. Claim

    claimFees(ladderId) collects fees from every bin, sends 7.5% to the treasury and the rest to the owner.

  4. Close

    closeLadder(ladderId) removes all liquidity, collects fees, applies the protocol fee to the fee part only and sends everything to the owner. The ladder is marked inactive.

Design choices

  • No token, no vault shares. A ladder is a record owned by your address, not a transferable token.
  • Exact accounting. Each open only spends what the caller sent; refunds are computed from amounts, never from the contract's balance.
  • Immutable. No proxy, no upgrade path, no pause. New versions are new deployments.