Mechanism · 09 / 19Preview · not deployed
Fail-safe behavior
What happens when a seat is unsold or a regent does nothing.
An auction can fail. Nobody may want the seat for a given session, or the winner may buy it and then do nothing with it. Regent is designed so that neither case leaves LPs worse off than they would be in an ordinary Uniswap v4 pool. This page describes both cases, compares the three possible states of a pool, and lists what the fail-safe does not cover.
When the seat is unsold#
The opening bid in a seat auction must meet the reserve, which is public: 50% of the median of the last 10 winning bids for that session type. "Reserve not met" therefore means one thing: nobody bid. The rules are on The seat auction.
When the auction closes without a bid, the session simply has no regent. For its whole length:
- the pool behaves like a normal v4 pool;
- every swap pays a default fee, and that fee goes to the LPs;
- there is no bell window, so anyone can swap from the first second;
- there is no rent, because nobody paid any;
- there are no duties, because there is nobody to hold them.
The next session has its own auction. An unsold OPEN says nothing about the DAY that follows it: each seat is sold separately, and the pool moves from fail-safe mode to a sold session at the boundary without anyone having to act.
When the regent does nothing#
The second case is a regent who wins the auction and then disappears. He never registers an executor, never swaps in the bell window, never adjusts the fee.
A regent who does nothing simply wasted his bid. He paid upfront. The full amount was escrowed before the session started, and 90% of it streams to in-range LPs second by second whether he shows up or not. There is no credit to call in, no position to liquidate and no default to manage, because the only thing the regent ever owed was paid before he received anything. See Rent streaming and anti-JIT.
What an absent regent costs depends on the session:
| Session | Effect of an absent regent |
|---|---|
| OPEN | The pool is closed to everyone else for 20 seconds. After that, other traders arbitrage the gap at the posted fee. LPs already hold the rent. |
| DAY | Third-party arbitrage still corrects the price beyond the fee. If the price sits outside the oracle band for more than 60 s, the regent's bond is slashed and 50% of the slash goes to LPs. See Seat duties and slashing. |
| POST, NIGHT, WEEKEND | The pool trades at the posted fee. There are no duties off-hours. |
In every row, LPs have been paid. The person who loses from an idle seat is the one who bought it.
Worst case is the status quo#
The status quo for an LP in a Stock Token pool is this: the pool earns swap fees, and at every open, earnings release and halt resumption the fastest bot takes the gap for nothing. Regent's fail-safe is built so that the floor of the design is that same situation and not something below it.
If no one ever bids, a Regent pool is a v4 pool with a default fee. If someone bids, the LPs receive rent they would not otherwise have had. The design adds an upside case without removing the base case. It does not make the base case good: in fail-safe mode the opening gap is still taken by whoever is fastest, exactly as described in The problem.
Three states compared#
| Plain v4 pool | Regent pool, seat unsold | Regent pool, seat sold | |
|---|---|---|---|
| Who takes the opening gap | The fastest bot | The fastest bot | The regent, who paid for it in advance |
| What LPs receive | Swap fees | Swap fees at the default fee | Rent: 90% of the winning bid, streamed per second, known before the session. Plus 50% of any slash |
| Swap fee | Fixed by the pool | Default fee (0.30%, preview assumption) | Set by the regent inside the session bounds; 0% for the regent |
| Who collects swap fees | LPs | LPs | The regent |
| Bell window | None | None | First 20 seconds of OPEN and of any halt resumption |
| Duties | None | None | DAY oracle band, backed by a $RGNT bond |
| Cost to LPs if nobody acts | The gap | The gap | The gap, already paid for |
The last row is the point of the design. The gap exists in all three columns. Only in the third has someone paid the LPs for it.
What the fail-safe does not protect against#
The fail-safe covers one kind of failure: a failed auction or an idle regent. It is not a general safety net, and it would be dishonest to present it as one.
- Smart contract risk. A Regent pool runs through a hook. A bug in SeatHook, RentStream or any other planned contract could lose funds in ways a plain pool would not. Contracts, once deployed, carry risk of total loss and require an independent audit before any real deposits. No audit has taken place, because no contracts exist yet.
- Oracle failure. Duties depend on the Chainlink tokenized-equity feed and market status. If the feed is stale or market status is not open, duties switch off. That avoids wrongful slashing, but it also means the regent is not bound to any price for as long as the outage lasts.
- Price risk. LPs still hold a pair of assets whose relative price moves. Rent does not remove impermanent loss. See For LPs.
- Low rent. A sold seat is not a well-paid seat. Rent depends on auctions and can be zero.
- Thin liquidity. Hooks are fixed at pool creation, so Regent pools are new pools and must attract liquidity from scratch.
- Sequencer downtime. If the sequencer stops, rent cannot stream. Unstreamed rent is refunded pro rata to the regent, so LPs do not receive rent for the time the chain was down.
The full list is on Risks and disclaimers, and the mechanism-level cases, including halts, collusion and self-bidding LPs, are on Edge cases and attack surface.