Trancher
← Trancher

Docs

Trancher is a laddered, single-sided liquidity and limit-order system built as a Uniswap v4 hook on Base. You place resting rungs of liquidity across a price range; they fill as the market moves through them, and an on-fill policy you chose decides what happens to each fill. This page covers the whole mental model — enough to trade with confidence. For quick answers see the FAQ.

What Trancher is

Most market making forces a choice: provide two-sided liquidity and eat impermanent loss, or post a limit order on a book and babysit it. Trancher does neither. You post single-sided liquidity, so you only commit the asset you are willing to spend, and it rests as real on-chain Uniswap v4 liquidity. When the market trades through a rung, that rung fills at its price. There is no keeper polling, no off-chain matching, and no oracle. Fills are a direct consequence of swaps hitting your ticks.

Two building blocks:

  • Limit order — one single-sided position around a chosen average price. A resting buy below the market converts quote into the token as price falls; a resting sell above the market converts the token into quote as price rises.
  • Ladder — a price range tiled into several rungs, so you are not betting on one exact level. As price sweeps the range, rungs fill one by one, averaging you in or out instead of filling all at once.

Either one can carry an on-fill policy that extracts profit to your wallet and/or rerolls the fill into an opposite-direction leg — this is what turns a passive LP range into an automated round-trip strategy. The policy runs on-chain, atomically, as part of the fill.

Ladders & rungs

A ladder is defined by a direction (buy or sell), a price range, the number of rungs, and the amount committed. Trancher spreads your amount across the rungs inside the range. Each rung is an independent slice of single-sided liquidity at its own price band; it is dormant until the pool price reaches it, then it fills and its proceeds enter the on-fill policy.

A ladder of resting rungs: sell rungs above the pool price convert token to quote as price rises; buy rungs below convert quote to token as price falls; the pool spot price sits between them.price ↑SELLrests abovetoken → quotesell rungsspotpool priceBUYrests belowquote → tokenbuy rungs

Because rungs are discrete, a ladder gives you a dollar-cost-average shape automatically: a sharp move fills many rungs, a gentle drift fills a few. You do not have to pick the perfect level, only the range you are comfortable transacting inside.

On-fill policy: keep / extract / reroll

When a rung fills, its policy runs atomically in the same transaction as the swap. No keeper, no oracle, nothing to trigger yourself. A policy combines up to three behaviors:

  • Keep — proceeds rest as a claim you can withdraw any time. This is a plain limit order: it fills and waits for you.
  • Extract % — a share of the proceeds is sent straight to your wallet the moment the rung fills. This is how you realize profit without touching the terminal.
  • Reroll — whatever is not extracted is immediately re-placed as an opposite-direction return leg. A filled buy rerolls into a sell that re-acquires your quote; a filled sell rerolls into a buy. The return leg is sized so a completed round-trip recovers your committed capital, and the extracted share is your profit on the swing.
When a buy rung fills, the extract percentage goes straight to your wallet as realized profit; the remainder rerolls into a sell leg placed above, which recovers your quote when price rises and arms the next reroll.rung fillsbuy rung: quote → tokenextract %your walletrealized profitremainderrerollSELL legplaced above spotprice rises → sell fillsquote recovered · next reroll

Set extract to 0% and you have pure accumulation or distribution that keeps re-arming. Set reroll off and you have a one-shot limit order. Combine them for a self-repeating grid that books profit on each crossing. Every reroll is a fresh rung with the same trustless, on-chain behavior.

Position lifecycle

Every rung moves through the same stages. Understanding them tells you exactly what your funds are doing at any moment.

A rung's lifecycle: PLACE then REST then FILL; a fill can EXTRACT proceeds to your wallet and/or REROLL into a fresh resting leg; at any point while resting, CANCEL pulls liquidity to WITHDRAW.PLACERESTearns swap feesFILLpolicy runs atomicallyEXTRACTREROLL→ wallet→ REST againwhile resting:CANCELWITHDRAW→ wallet
  1. Place — you commit one asset; rungs are created as resting v4 liquidity held by the hook.
  2. Rest — rungs sit dormant, earning swap fees on any flow that passes through their band, until the pool price reaches them.
  3. Fill — a swap crosses a rung; it converts and the on-fill policy runs atomically.
  4. Reroll / extract — per your policy, proceeds are sent to your wallet and/or re-placed as a return leg.
  5. Withdraw — kept proceeds and any pulled liquidity are yours to withdraw whenever you want.

Cancel is available the whole time a rung is resting. Pulling a rung returns its underlying to a claim you withdraw; it never gets stuck in a reroll loop you cannot exit.

Pools & the pool price

Trancher runs its own Uniswap v4 pool per token + quote (USDC or ETH) + fee tier. Orders on the same fee tier share one pool. A pool's price only moves when someone trades through it, so a young or thin pool can drift from the broader market until arbitrage pulls it back in line.

Your rungs fill against the pool price, not an external index. The terminal shows both the pool price and the reference market price and warns when they diverge, so always set your range relative to the pool price shown. On a thin pool, a single large swap can sweep several rungs at once — size your ladder for the liquidity that actually exists, not the price you wish were there.

Fees

While your liquidity rests, it earns the pool's swap fee on flow that trades through its band, exactly like any Uniswap v4 position. The protocol takes a contract-capped cut of those swap fees — the cap is enforced in the contract, not by an operator — and it is only ever a cut of fees earned, never a tax on your principal. What you deposit is always what you can withdraw, minus whatever the market filled.

That protocol fee is also what funds the token economy later: recycled fees back protocol-owned TRANCHER liquidity. That is covered in the token docs.

Custody, immutability & safety

Non-custodial by construction

Your positions are held by the hook, which is what makes the on-fill policy trustless — the contract, not a third party, is what guarantees your reroll or extract executes exactly as placed. Because the hook holds them, your positions do not appear in the normal Uniswap interface; manage them on Trancher's Positions page. The guarantee that matters: your funds are always cancellable and withdrawable by you, and by no one else.

Immutable, verified, early

The hook is immutable — no upgrade key, no proxy, no admin that can move or freeze your funds. Contracts are verified on Basescan. The current hook address on Base is 0x4a0db7a21d0519a3cf86b457afde59d7c16fd040. Trancher is early and unaudited — start small and read the Terms.

Using the terminal

The terminal is where you place and manage everything. A typical flow:

  1. Pick the token and quote (USDC or ETH); the chart shows the pool price and the reference market.
  2. Choose buy or sell, then a single limit price or a ladder range with a rung count.
  3. Set the on-fill policy: an extract % and whether to reroll. Preview shows where each rung sits.
  4. Commit the one asset you are spending and confirm the transaction. Rungs go live as resting liquidity.
  5. Track fills, rerolls, and collections on Activity, and cancel / collect fees / withdraw from Positions (grouped by order).

The Activity feed records every placement, fill, reroll, cancel, fee collection, and withdrawal, so the full history of a position is always on-chain and visible.