Limit order matching
Limit liquidity in a bin is grouped into numbered cohorts: one is open at a time, it seals at its first fill, and fills go oldest first, pro rata inside a cohort. For the app view, see Limit bid and Limit ask. Numbers on this page are illustrative.Where a limit order lives
A limit order sits in one bin:
A limit order is one side, one rate, one maturity. It fills once and does not re-quote. Its LP tokens do not rebase.
Cohorts
A cohort is a numbered group of liquidity inside one bin. Ids count up from #1. A cohort is not a bin; one bin holds many cohorts over its life. The rules:- One open cohort per bin. New liquidity always joins the open cohort.
- Seal at first fill. The moment the open cohort receives any fill, it seals. No new liquidity can join it.
- Next id opens. As soon as cohort seals, cohort opens for new deposits.

#1 filled, #2 part-filled, #3 open. Oldest first, pro rata inside a cohort.
Fill order
Across bins at the same maturity, the best rate fills first. At the same rate, the smallest spread fills first, so Recursive bins fill before Limit bins (a limit order counts as an infinite spread). Inside a Limit bin, a taker fill of size is matched as follows:- Oldest cohort first. Take the lowest-id cohort that still has unfilled liquidity.
- Pro rata inside it. Every deposit in that cohort fills by the same fraction.
- Spill over. If is larger than what that cohort has left, it fills completely and the rest moves to the next cohort.
Consequence: at most one part-filled sealed cohort
Because fills are oldest first, the cohorts of a bin always look like this: At most one sealed cohort is part-filled at any time. This keeps the accounting small: the bin only tracks one fill fraction in progress.Worked example
A bid bin holds three cohorts, illustrative sizes in interest-side TBT:
Alice holds 150 of the 600 in #3. She is filled pro rata: , the same 33% as everyone in #3.
Crossing protection
A limit order must not meet resting liquidity on the other side. So in the form:- A bid at or above the best ask is switched off.
- An ask at or below the best bid is switched off.
Settlement at sync
A fill does not move tokens into your TimeBalance at once. It is recorded in the cohort, and the proceeds land in your TimeBalance at the next sync of your position. Until then, the Dashboard shows the cohort as “Filled · settles at sync”.
Makers pay no taker fee: the fill happens at exactly the bin’s rate. See How it works.
Yield while waiting
An order holds real TBT while it waits, so it earns whatever that TBT earns:- An ask holds the principal side . Before it earns nothing, but its present value rises as approaches (at unchanged rates). From it earns the vault’s yield on the full amount while it waits, and its present value runs down to 0 at .
- A bid holds the interest side . That window has not started yet, so it earns nothing until . Its present value rises toward 1 as approaches.
Removing
You can remove from an open or a sealed cohort:- Open: nothing filled; your side comes back to your TimeBalance.
- Sealed, part-filled: the unfilled share comes back; the filled share lands at the next sync.
- Fully filled: nothing to remove; the fill lands at the next sync.
At maturity
At maturity the bin stops quoting. An unfilled bid’s interest side becomes plain TimeBalance, , and keeps earning base yield. An unfilled ask’s principal side has run out at : it earned the vault’s yield over and nothing of it remains. There is no forced exit.Recursive LP mechanics
A recursive bin holds both sides of one maturity and quotes a bid and an ask, with ask = bid × k; every round trip earns the spread, until maturity. For the app view, see Recursive. Numbers on this page are illustrative.A two-sided bin
A recursive bin is . It holds both sides of maturity :
Unlike a limit order, the bin does not stop after a fill. Whatever a taker hands over becomes inventory on the other side, ready to be quoted back.
Multiplicative spread
The ask is the bid times a factor : On the tick grid this is a fixed number of ticks: for a spread of ticks. A spread set this way means the same relative width at a 4% rate as at a 20% rate. and are set when the market is created, so each market can choose its own.
Bid below, ask above. A round trip earns the gap.
The ratio of the two sides
A bin holds some amount of each side. Call them (interest side) and (principal side).- The first LP sets the ratio. In an empty bin, the first deposit fixes . The form allows one side to stay at 100%.
- Later LPs deposit at the current ratio. Typing one side gives the other.
- Only trades move the ratio. A Fixed fill moves the bin toward the principal side; a Leverage fill moves it back.
A round trip earns the spread
Take one period of length (in years) and a fill of principal-side TBT.- A Fixed taker fills the bid. The bin gives interest side and takes principal side.
- A Leverage taker fills the ask. The bin gives the principal side back and takes interest side.
Inventory risk
Between round trips, the bin carries whatever side it was last filled into. If rates move and the trip does not come back, the bin keeps that side:- After a bid fill, it holds more principal side: leverage over the period.
- After an ask fill, it holds more interest side: a fixed rate.
Rebasing LP tokens
Recursive LP tokens rebase. They are a share of a bin whose contents change with every fill and earn yield over time. The bin’s yield stays inside the LP tokens. The LP token balance rebases on every swap against the bin.LP sync
LP tokens and the bin sync together, on their own clock. An LP sync over the stretch from the last LP sync to Now pays two flat amounts from Now → ∞:- More LP tokens: the bin’s yield, kept inside the bin.
- Base TBT into your TimeBalance.