Gapguard Robinhood Chain

Uniswap v4 hook tokenized equities Robinhood Chain

The market closes at four. The pool never does.

Tokenized stocks trade 24/7. The real stock doesn't. Gapguard charges the base fee while NYSE is open, and while it's closed makes every swap pay for the gap risk it creates — most of all the swaps that push price away from the last close.

NYSE · regular session computed like MarketClock.sol
CLOSED
--:--:--
Eastern Time
Opens in
--

§ 01 — The gap

The HIMS weekend

On the weekend of 29–31 August 2026 a memecoin routed its main liquidity against tokenized Hims & Hers on Robinhood Chain. Every dollar of meme demand became a forced bid for the stock wrapper — while the exchange was shut, the issuer couldn't mint, and there was no live price to arbitrage against. Across the chain's top pools, none used a dynamic fee. Nothing priced the closed market.

NYSE close$28.84
Onchain print$61.15
+112% premium, gone within hours of minting reopening.

§ 02 — Live pool

Read straight from the chain.

Every 15 seconds: the hook's own clock, the fee it would charge each way, and how far the pool sits from its time-weighted last-close anchor, and what the hook has earned.

Awaiting deployment
Hook says market isisMarketOpen()
Buy the stockquoteFee(id, ·)
Sell the stockquoteFee(id, ·)
Drift from anchorstock price, from ticks
Last close anchoranchorTick(id) · time-weighted
Pool tick nowPoolManager.extsload · slot0

The hook, demo pool and tokens go live when script/Deploy.s.sol is broadcast. Addresses are read from web/config.js; until then this panel stays empty on purpose.

Hook revenue

awaiting deployment

The hook's 15% of closed-market surcharges builds up as ERC-6909 claims on the PoolManager. collect turns claims into tokens, distribute books them to the two fixed recipients, withdraw pays out.

Anyone can trigger this — funds only go to the recipients shown. Each step is simulated before you sign.

    § 03 — How it works

    Cheap to restore the peg. Expensive to stretch it.

    Deployed parameters, from script/Deploy.s.sol. All immutable.

    MarketSwap directionBuyer paysSplit
    Open Either way. The last-close anchor follows prices that hold during market hours. 0.30% All to LPs. Hook: nothing.
    Closed Toward the anchor 0.50% LPs 0.47% · hook 0.03% (15% of the 0.20% surcharge)
    Closed Away from the anchor — or either way at zero drift 0.50% + driftmin((|drift| + 50 ticks) × 0.002%, 4.50%) · 0.60% at zero drift · max 5.00% LPs 85% of the surcharge · hook 15%
    Closed Any swap ≤ 100 ticksmax price move per swap (~1%) · larger swaps revert Bigger repricing takes several swaps

    Everything is an LP fee. The surcharges are set through v4's dynamic fee override before the swap, so they accrue along the swap's path to the liquidity that actually filled it. There's no lump-sum payout for just-in-time liquidity to grab, and quoteFee doesn't depend on swap size.

    Splitting doesn't make it cheaper. While closed, one swap can move the price at most 100 ticks. Drift is priced at the midpoint of a full step (distance + 50 ticks), so many small swaps never cost less than one swap at the limit — at most ~0.1% more.

    The anchor is time-weighted. Prices that hold during market hours reach full weight after 30 minutes, so a push just before the close barely moves it. Closed-market prices carry no weight.

    Base 0.30% · closed surcharge +0.20% · drift 0.002% per tick (≈1 bp of price) of (distance + 50), capped at +4.50% · contract hard cap on base + surcharges 10% · hook's share 15% of the surcharge, taken out of it (LP fee = base + surcharge − hook share; hard cap 20%), booked as ERC-6909 claims, turned into tokens by collect, split 30% protocol / 70% pool operator via pull-based distribute/withdraw. Session 09:30–16:00 ET with US daylight saving; NYSE holidays and 13:00 early closes are computed by rule, so the calendar never expires.

    +0.0%

    900 ticks · market closed · drift cap reached at 2,200 ticks (≈ +24.6%) · each swap moves ≤ 100 ticks

    Toward the anchor 0.50% restores the peg, no drift
    Away from the anchor 0.60% pays for the risk it adds

    § 04 — Weekend replay

    Same squeeze. Different winners.

    30 one-way buys of 1.6 quote tokens while the market is closed, through two identically-funded pools: a static 0.30% pool and a Gapguard pool. Each buy is routed in ≤100-tick steps. Measured onchain from LP fee growth and the hook's balance, valued in quote tokens at the post-swap price. Per-buy output of forge test --mc ReplaySeries -vv.

    Premium over last close
    +118.6%+113.6%
    LP income
    0.1441.83412.7×
    All-in cost to buyers
    0.30%4.43%
    Hook revenue
    00.289
    Premium over the last close
    Cumulative all-in cost to buyers (quote tokens, LPs + hook) · per buy below

    Per-buy data
    Replay series

    § 05 — Safety

    Nobody can turn the dial.