Methodology
How we source indicative weekend prices, define official close and reopen instants in US Eastern time, and what limitations to expect.
Data source
Quotes come from the public Hyperliquid info API (documentation via POST endpoint), specifically HIP-3 style xyz dex markets (e.g. metals, energy, index trackers, FX). We request metaAndAssetCtxs for live marks and candleSnapshot with one-hour intervals for historical closes. No API keys are required; responses are fetched server-side to protect browser clients from rate limits.
What "indicative" means
Perpetual mid/mark prices are continuous synthetic quotes. They are not official index levels, COMEX settlements, WM/Reuters FX fixes, or NYSE last sales. Weekend liquidity can be thin; wicks and short-lived spikes may not represent tradable size. We prefer mark/mid fields returned by the API context object.
Official close and reopen definitions
All calendar math uses America/New_York via ECMAScript Intl—no third-party timezone libraries. Daylight saving transitions are handled by the platform timezone database.
- CME-style (metals, energy): Weekly close Friday 5:00 p.m. ET, reopen Sunday 6:00 p.m. ET. Daily maintenance break 5:00–6:00 p.m. ET on weekdays.
- Equity index trackers: Cash close Friday 4:00 p.m. ET; futures-style reopen Sunday 6:00 p.m. ET; cash open Monday 9:30 a.m. ET recorded in history where applicable.
- FX majors: Close Friday 5:00 p.m. ET, reopen Sunday 5:00 p.m. ET.
Last close price on asset pages is the close of the one-hour perpetual candle ending at the official close instant for that asset class. We label it explicitly as perp-at-close, not exchange settlement.
Gap, weekend range, and sparkline
Gap % = (live indicative price − last close perp) / last close perp. Weekend high/low use one-hour candle extremes since the last close reference until the snapshot time. Sparklines plot hourly closes over the same window.
History records
After each official reopen, a cron job appends a weekend record if missing: Friday date (ISO), last close perp, pre-reopen perp (close of the hour before reopen), reopen open, optional Monday cash open for equities, weekend move %, reopen gap %, and same-direction flag. Seed history is built offline from ~26 weeks of candles and merged with KV storage deduped by asset+weekend.
Update frequency and caching
Cloudflare Worker cron targets every five minutes (*/5 * * * *). HTML is cached briefly; /api/snapshot.json allows 30-second browser caching with CORS *. If KV is empty, the worker builds a snapshot on demand and keeps an in-isolate memo for 60 seconds so concurrent requests share one upstream fetch.
Per-row timestamps, stale marks and liquidity flags
Every live row shows the venue and contract it was read from (for example “Hyperliquid xyz:GOLD perp, mark price”, linking to the Hyperliquid API documentation) and the time the snapshot was fetched, in UTC, with its age. Quotes use the mark price, falling back to mid and then oracle price; the snapshot records which one was used. A row is automatically marked stale when its fetch time is more than 15 minutes old, missing, or the upstream feed is unavailable. History rows have no per-row fetch time: they are built into the page as of build 2026-10-23 08:43 UTC and extended by the cron after each weekend.
Liquidity hints come from the same Hyperliquid response as the quotes: 24h notional volume, open interest (contracts × mark price) and the impact spread, computed from the bid and ask impact prices. A quote is flagged “use with care” when 24h volume is under $5M or the impact spread is over 0.05%. These thresholds are our own heuristics, not exchange rules.
Reference close: what the gap is measured against
The gap compares the live perpetual with the same perpetual's price at the last official close. It is not measured against a COMEX settlement, a CME E-mini print or a WM/Reuters fix: we do not use any licensed or non-free reference-close feed, so a real exchange-close comparison is not shown.
Holidays
NYSE/Nasdaq full-day closures and 1:00 p.m. ET early closes are modeled from the NYSE holidays and trading hours page (checked 2026-10-23, covering through 2027-12-31). They change the cash-open countdown and the equity close reference. CME futures (metals, energy, index futures) and FX holiday hours are not modeled, and stored history is not cleaned for holiday weeks.
Machine-readable data and field documentation
Stable URLs, all generated from the same data as the pages and carrying a version and generated_at: /api/snapshot.json (live snapshot, CORS *), /api/history.v1.json (weekend records with field docs), /api/history.json (legacy plain array) and /api/history.csv.
assets.<key>.price: indicative perpetual price;priceField: which API field it came from;coin: Hyperliquid contract id.lastClosePx/lastCloseMs: perp price in the one-hour candle ending at the official close, and that instant (UTC epoch ms);gapAbs,gapPct: live price minus it, absolute and in percent.weekendHigh,weekendLow,sparkline: hourly-candle extremes and closes since the close reference.volume24hUsd,openInterestUsd,spreadPct: liquidity hints described above.updatedAt: fetch time in UTC epoch ms;stale,ageSeconds(added by the API): freshness at response time.nextReopenMs: next official reopen.- History records:
asset,weekend(Friday date),lastClose,preReopenPrice,reopenPrice,cashOpen(equity indices),weekendMovePct,reopenGapPct,sameDirection.
No license is attached to the data yet; treat it as indicative, attribute the site, and do not rely on it for trading.
Known limitations
- CME futures and FX holiday hours are not modeled; only NYSE/Nasdaq cash holidays and early closes are (see Holidays above).
- Perp basis vs cash index or spot can widen on weekends.
- Thin volume can distort highs/lows.
- Listed venue trading hours follow that venue—not guaranteed identical to CME/NYSE calendars.
Security and privacy
Static responses include standard security headers and HSTS at the edge. Analytics scripts load only when IDs are configured for the deployment; the privacy note states exactly what is loaded.