
PROTOCOL
SOLIDITY 0.8.26 · 25 TESTS
No owner. No calendar.
A Uniswap v4 hook for tokenised equities. Closure is inferred from price-feed staleness, which is what makes a zero-admin design possible at all. Here is every moving part of it.
▌ THE PROBLEM
The gap is taken at 09:30
A pool holding a tokenised equity is looted every single morning. The underlying moved overnight, the AMM did not, and the first arbitrageur in the opening block takes the whole gap out of the LPs.
Continuous LVR
On ETH/USDC the leak is diffuse. It happens in a thousand small pieces across the day, nobody can point at it, and nothing can be sold in advance.
Dated LVR
On a tokenised AAPL it is one event, at one known second, every trading day. It is discrete, it is visible, and above all it is scheduled — so it can be auctioned before it happens.
▌ ONE DAY, THREE STATES
The arb that was stolen from the LPs is sold back to them
- 01 · MARKET OPEN
Stay out of the way
Tight fee, ordinary pool. The hook charges 0.030% and does nothing else.
0.030%swap fee
- 02 · MARKET CLOSED
Widen, and take bids
The fee climbs with time elapsed since the close. Meanwhile the opening ticket goes to an open ascending auction, on-chain, book visible.
3.00%after 48h closed
- 03 · THE BELL
Sell it, then pay the LPs
The highest bid standing when the feed speaks again wins the opening window. Every other swap in it reverts, and the proceeds are donated to the LPs in full.
3blocks exclusive
If nobody bids, there is no exclusivity — but the fee stays wide across the whole opening window, and anyone may trade. The LPs are covered on both branches.
▌ HOW IT KNOWS
No admin. No calendar.
Equity feeds stop publishing when the exchange is shut. So if the feed has not spoken for longer than 30 minutes, the market is closed. That handles weekends, Thanksgiving, half-days and halts with no human in the loop and no holiday table to maintain.
The trap is a feed that dies during trading hours, which reads exactly like a close. Past 96 hours the hook stops trying to tell the two apart: the fee pins at the maximum and no exclusivity is sold.
The failure mode is an expensive pool, never a drained one. Liquidity operations are never gated, so an LP can always leave.
▌Feed silence → reading
base fee, 0.030%
fee ramping, auction taking bids
fee pinned at 3.00%, no exclusivity sold
96 hours is not arbitrary. The longest ordinary NYSE closure is 89.5 hours — Friday 16:00 ET to Tuesday 09:30 ET, when the Monday is a holiday. A tighter bound would drop the hook into its degraded mode roughly six times a year.
▌ THE IMMUTABLES
Nothing here can be changed
Every value is set in the constructor and there is no setter for any of them. No owner, no timelock, no upgrade path — so the fee you can compute today is the fee the pool will charge for as long as it exists.
Changing any of it means deploying a new hook at a new address, and a pool has to opt into that by being initialised against it.
▌Hook parameters
IMMUTABLE
No treasury. No multisig. No governance token.