APIHIP-4 ArchiveChangelog

Changelog

Changes to the HIP-4 Archive API, newest first. Field meanings are stable; this page records new fields and changes of source or coverage.

2026-09-27

  • New in live.json: image, the market’s art as an absolute URL. null when the only art would be the neutral placeholder. Additive.

2026-09-22

  • The 30-day window is lifted. Every settled market is served again, back to May 2026: markets/{id}.json, settlement.json and price.json answer 200 whatever the market’s age, every month shard is served, and archive.json, events.json and changes.json cover the whole archive. The window block on those three documents is kept and reads days: null, from: null. coverage in the manifest and the spec describes the whole archive again. The bulk export stays withdrawn.
  • New: /v1/live.json, every market Hyperliquid currently lists, with its template pointer resolved into a readable title, plus sides (in Hyperliquid’s side order), competition, fixture, category, deployer, coin tickers, expiry and the market’s page on liquary.xyz. Multi-leg questions come as one entry with their legs. No prices, volume or history. Rebuilt every 60 seconds. Listed in the manifest’s resources and described in openapi.json (LiveMarket).

2026-09-16

  • Rolling 30-day window, cut on settlement. A market more than 30 days past its settlement answers 410 Gone on markets/{id}.json, settlement.json and price.json, as does a month shard wholly behind the window. archive.json, events.json and changes.json are trimmed to the window and carry a window block (days, from, basis: "settlement", note). Markets still trading are unaffected.
  • Odds series withdrawn. markets/{id}/odds.json and markets/{id}/trade-odds.json now answer 404. oddsUrl and tradeOddsUrl stay on every document, permanently null. oddsMeta and tradeOddsMeta are unchanged.
  • Bulk export withdrawn. /v1/bulk/manifest.json and the chunked markets.*, odds.* and price.* files answer 410 Gone and are no longer listed in the manifest’s resources. Read archive.json and events.json once, then follow changes.json.

2026-09-13

  • New in markets/{id}/settlement.json: source on every voter. null when the vote was witnessed in flight, "chain" when the voter was rebuilt from the L1 vote transaction. A rebuilt voter may lack name and stakePct.

2026-09-07

  • New in flow: tradeFee and tradeBuilderFee, the fees on buys and sells only, without the fees on protocol actions (merges, settlements) that fee and builderFee include. null, never 0, on a market whose fills predate the split.
  • winnerSide can be -1: nobody won. A drawn two-sided match market pays both sides $0.50, with no draw side to hold. openapi.json widens the enum; winnerLabel reads Draw. No existing row changed, but winnerSide === 0 ? side0 : side1 will crown the wrong side on the first draw: add a third branch.

2026-09-05

  • settlementApplicable: false now also covers third-party markets, which are resolved by their deployer, not by a validator vote. Code that reads it as “price market”, or treats an empty roster on an event as a gap, is wrong: read deployer.protocol for the distinction.
  • governance.json: counts.settlementsTotal now counts only validator-settled markets. New counters settlementsDeployerSettled and settlementsPriceSettled hold the markets resolved by their deployer and by the oracle. See coverage.

2026-09-03

  • totalVolume, yesVolume, noVolume: same meaning, same value, new source. Recomputed from Liquary’s fills record two to six hours after settlement, instead of from a third-party candle index at settlement. Nothing to change on your side.
  • flow in markets/{id}.json is served before the settlement sweep, with a basis: "ledger" (the sweep has walked the market; every field is populated) or "live" (vwapYes, vwapNo, biggestFill, bestEntryPx, tradeFills and the tail fields are null until the sweep). Previously such a market had flow: null and dataQuality.missing listed "fills".