Elysium markouts / per fill, per quoter
A tight quote. Then what?
Irisdial scores every swap on Elysium against the Hyperliquid order-book mid one, five and thirty seconds after the fill. Per pool, per pair and per quoter, from the first mainnet block.
Hyperliquid mid capture running since 4 Nov. Scoring starts with Elysium mainnet.
The price line is real: Hyperliquid's HYPE/USDC mid as the Irisdial indexer captured it on 4 Nov 2026. The fills are examples placed at the recorded best bid or offer. Real Elysium fills are scored from the first mainnet block. Point at the line to read it.
The premise
The price lands. The market moves.
A quote can be the tightest on the screen and still be the one that pays for it a second later. The fill price is half the record. The other half is where the market went next, and that is what a markout measures.
Irisdial reads the Hyperliquid mid at three fixed horizons after every Elysium swap and keeps each reading on its own, with its timestamp and its method.
One fill, taken apart
One fill. Three later readings.
A real stretch of the HYPE/USDC mid with one example fill on it. Scroll, and it is read the way Irisdial reads every swap.
The fill
A taker buys HYPE at 85.928. As quotes go, it was tight: the quoter sold 0.06 bps above the mid.
One second later
The mid has not moved. The reading holds at +0.06 bps.
Five seconds later
The book moves up. Against the price the quoter sold at, the reading is now −6.75 bps.
Thirty seconds later
−36.77 bps. Tight at the fill, expensive by the third reading: the gap a quote screen never shows.
The record
One fill says little. Irisdial keeps every reading and adds them up per pool, pair and quoter. Here, 240 example fills on the same six minutes: median +0.06 bps at +5s.
Recorded Hyperliquid HYPE/USDC mid, 4 Nov 2026, 15:33 to 15:39 UTC. Fills are examples at the recorded touch; quoter view, before fees.
The scoreboard
Every quoter, on the record.
Rank by pool, pair or quoter over a fixed window, at the horizon you care about. A rank needs 30 scored swaps, so a lucky handful never tops the board.
| Rank | Quoter | Scored swaps | +1s | +5s | +30s | Positive at +5s |
|---|---|---|---|---|---|---|
| 01 | Open: the first quoter to 30 scored swaps | 0 of 30 | ||||
| 02 | Open | 0 of 30 | ||||
| 03 | Open | 0 of 30 | ||||
| 04 | Open | 0 of 30 |
Live response, Elysium testnet, 4 Nov 16:41 UTC
GET /api/v1/scoreboard?window=24h&group_by=quoter
{ "window": "24h", "group_by": "quoter",
"kind": "observed", "engine_version": "markout-1.0.0",
"min_swaps_for_rank": 30, "rows": [] }
Why it is empty
No mainnet swaps exist yet, and nothing is ranked under 30 scored swaps. The empty board is the honest one. Ranked by the median markout at +5s, quoter view.
Who reads it
Both sides of the quote.
Quoters and market makers
See your fills scored beside every other quoter on the same pair and horizon, and find out which of your quotes get picked off, and when.
Scoreboard, from mainnet day oneAggregators and wallets
Route on more than the quoted price. A read-only quote API returns the best indexed quote with an expiry in blocks.
Quote API, read-onlyAnalysts and liquidity providers
Every number carries its timestamp, its reference price and its method, so you can rebuild it from the API.
Method, publishedVerified quoters
A bonded registry, so the board can show who stands behind a quote. Designed, not live: it opens only after an outside audit.
Planned
Public API
Read it. Build with it.
Day one ships two read-only routes. Nothing here holds or moves funds.
- RoutesGET /api/v1/scoreboard, GET /api/v1/quote
- Group byPool, pair or quoter
- WindowsFixed, for example 24h
- Rank floor30 scored swaps
- Enginemarkout-1.0.0
# recorded from the testnet build, 4 Nov 2026 16:41 UTC curl "$IRISDIAL/api/v1/scoreboard?window=24h&group_by=quoter" { "as_of_ms": 1793810460000, "window": "24h", "group_by": "quoter", "kind": "observed", "engine_version": "markout-1.0.0", "min_swaps_for_rank": 30, "rows": [] }
# recorded from the testnet build, 4 Nov 2026 16:41 UTC curl "$IRISDIAL/api/v1/quote?pair=WHYPE-USDC&side=buy&size=1000" { "error": { "code": "unknown_pair", "message": "No pair with slug WHYPE-USDC on chain 99801." } } # testnet has no named pairs yet. On mainnet the same call # returns the best indexed quote with an expiry in blocks.
Real responses from the build, not mock-ups. The base URL is published with mainnet.
The method
Markouts, with the method attached.
mh = s · (midt+h − p) / p × 104
s is +1 when the taker bought and −1 when the taker sold, so the stored number is the taker's view. The scoreboard shows the quoter's view, its negative.
Not measured, or not settled yet
- Realised profit. A markout is not a profit and loss figure.
- Fees taken outside the swap. Hooked v4 pools can do this; how they appear on the board is still being decided.
- Sub-second block timing. The fill time is placed inside its block's second, and the method says how.
- Reference
- Hyperliquid spot order-book mid, from its public best bid and offer feed.
- Horizons
- 1, 5 and 30 seconds after the swap's block time.
- Sampling
- The last captured mid at or before the target time, never older than the fill and at most 2 seconds stale.
- Gaps
- No fresh mid, no reading: it is marked missing and never filled forward.
- Units
- Basis points of the fill price, before fees.
- Ranking
- 30 scored swaps before a quoter, pool or pair gets a rank.
Elysium mainnet
On the board from block one.
Counting to 00:00 UTC on 9 Nov, the expected date. The hour has not been announced.