LEASE

How it works

1. A pool opens with an auction

create_pool sets open_slot = now + 900. Swaps are refused (PoolNotOpen) until then, so the first seconds of a new pool belong to whoever rented the seat, not to whoever sniped fastest.

2. Bidding

bid(rent, deposit, fee_ppm) states a rent per slot in the quote token and prepays it.

RuleProgram check
Rent is at least the pool's floor, 20% a year of its value: rent >= ceil(2 * reserve_quote * 2000 / (10000 * 143,000,000))RentTooLow
The deposit covers the whole delay: deposit >= rent * 900DepositTooSmall
A new bid beats the queued bid by more than 10%: rent * 10 > queued * 11BidTooLow
The requested fee is at most 3%FeeAboveCap

A new bid replaces the queued bid, which is refunded in full to its ledger.

3. The delay

A queued bid takes the seat 900 slots (about 3.3 minutes at 0.22 s a slot) after it is placed if it beats the live seat's rent by the same 10% margin. If it does not, it waits for the live seat's deposit to run dry. Either way it never starts before those 900 slots have passed. The delay is the paper's defence against griefing: nobody can grab one volatile moment, and LPs see every rent change coming.

4. Holding the seat

Every slot the holder pays its rent from its deposit. The rent is split:

ShareGoes to
90%LPs, through rent_per_share
10%protocol_rent, later swept and burned

The holder sets the fee with set_fee; the new fee applies from the slot after it was set, so a fee change can never land in front of a swap in the same slot. Every fee charged while it holds the seat is credited to it. Its own swaps pay nothing.

5. The seat ends

Ends becauseThen
The deposit cannot pay another full slotThe remainder is charged as rent, the seat empties or passes to the queued bid
A queued bid that beats it reaches its start slotThe rest of the deposit is refunded to the holder's ledger

6. The empty seat

With no holder, swaps pay DEFAULT_FEE_PPM = 10_000 (1%) and the fee stays in the reserves, which belong to the LPs.

Worked example

A seat at 0.0020 USDC a slot runs for one day (about 393,000 slots at 0.22 s):

USDC
Rent charged786.00
To LPs (90%)707.40
To the burn (10%)78.60

A rival bids 0.0023 (15% more, above the 10% raise) and prepays at least 0.0023 x 900 = 2.07 USDC. 900 slots later it holds the seat and LPs earn about 813.51 USDC a day.