MM Flow

mmflow Data

Normalized market data for terminals and embeds

REST, SSE, keyed WebSocket, historical, and replay concepts live under one market-data product surface without changing existing response schemas.

Current data surface

mmflow Data powers the terminal and external SDK clients. Every current API contract stays intact while developers get a clear map of the product: snapshots, streams, keys, docs, and examples.

Upstream venues
  Hyperliquid · Binance · Bybit · OKX · Deribit · Coinbase · Polymarket
        │
        ▼
Adapters + normalizers
  venue clients · source health · rate-limit aware fetches
        │
        ▼
mmflow Data
  REST snapshots · candle archive · event archive · bounded trade archive · SSE streams · WebSocket gateway
        │
        ├──► createMmflowFeed()
        ├──► @mmflow/sdk clients
        ├──► mmflow Charts embeds
        └──► mmflow Terminal

Available now

REST snapshots

Read-only /api/v1 routes for markets, perps, options, flows, on-chain context, Polymarket, and metadata.

SSE streams

Browser-friendly live feeds for whales, trades, and funding updates from Vercel-hosted routes.

Keyed WebSocket gateway

Low-latency stream transport for embeds and SDK clients that need subscription replay and keyed quotas.

API keys

Optional keys for higher quotas and usage tracking, managed from the profile API-key surface.

Candle archive

The public history candle route reads archive-first when KV coverage exists and falls back to Hyperliquid when local/dev KV is unavailable.

Replay event overlays

The public history events route reads a sparse event archive first, then falls back to whale, inferred liquidation, and funding snapshot sources.

Bounded recent trades

The public history trades route reads hourly archive buckets first and falls back only to bounded recent Hyperliquid trade coverage.

Trade-derived footprint

The public history footprint route derives short-window footprint bars from bounded normalized trades without adding a durable footprint warehouse.

Replay config manifests

The playground can export/import versioned replay setup JSON and compact share URLs without embedding API keys or market-data arrays.

Replay loading hardening

The unified replay workbench loads enabled layers independently, cancels stale requests, retries failed layers, and keeps its cache in memory only.

Data-quality status

The history status endpoint probes recent archive/source health, freshness, sparse coverage, and partial/unavailable states without mutating archives.

Platform direction

Full event warehouse

Full historical tick, footprint, CVD, liquidation, and orderbook replay warehouses remain future data-platform phases.

Cloud replay sessions

Account-backed saved sessions, collaboration, and server-side replay sharing remain future product phases.

Candle, event, and bounded recent trade archive coverage is visible throughmeta.archive. Event overlay coverage is sparse: an empty covered range means the archive checked that window and found no events. Trade coverage begins when write-through or ingest paths run; footprint replay is derived from those bounded trades and is not a durable footprint warehouse or retroactive tick-history storage. Phase 13 orderbook replay is sparse snapshot playback, not continuous L2 delta reconstruction. Without KV env vars, local/dev history requests still work through upstream candle fallback plus event source fallback or honest empty event/trade states. The replay workbench keeps layer responses in a small in-memory cache only; replay config export remains a manifest and never embeds cached market data. The history status surface reports healthy, partial, stale, unavailable, and unknown states from cheap read-only probes: candles use a 10-minute freshness threshold, events 30 minutes, trades and trade-derived footprint 5 minutes, and orderbook snapshots 2 minutes for current-window checks. Copy frontend/examples/data-status-dashboard for a small read-only SDK status dashboard template.