Skip to main content

Data sources

QuantDesk uses a source matrix so each data class has a documented upstream owner, normalization path, and fallback behavior.

Source matrix

Data classPrimary sourceIngestion serviceHub tablePublic consumers
Mark / tick pricesPyth-backed collectorsdata-ingestionhub_market_stats, hub_candlesHeatmap, ticker tape, chart API
On-chain fillsQuantDesk place_order_v2 logsdata-ingestionhub_trades, hub_market_statsTrade tape, rolling 24h volume rollups
OI / funding / reference marksCoinalyze, Hyperliquiddata-ingestionhub_reference_perpsReference badges, operator context
News articlesRSS, NewsData, CryptoPanicnews-ingestionhub_newsNews panels, symbol-linked context
X posts and alertsX/Twitter API or dev-mode sample feedx-streamx_posts, x_alertsSocial feed, alert list, MIKEY X context
Session metadataTradFi session policybackend enrichmenthub_market_stats.cash_openUS500 / US100 session badge
Dataset exportsHub candles + catalog metadatascripts/databacktest_datasetsElena backtests and reproducibility checks

Symbol handling

  • Registry symbols are canonical: BTC-PERP, US500-PERP, US100-PERP.
  • News entity tagging maps aliases back to registry symbols.
  • X entity tagging maps post mentions back to registry symbols where possible.
  • Reference collectors derive their watchlists from active registry markets where possible.

Envelope contract

Every Redis producer publishes the Epic 15 event envelope:
{
  "event_id": "uuid-v4",
  "event_type": "mark | trade | candle | oi | funding | news",
  "source": "pyth | quantdesk | hyperliquid | coinalyze | rss",
  "symbol": "BTC-PERP",
  "asset_class": "crypto | index | equity | fx | commodity",
  "ts": 1719230400,
  "ingest_ts": 1719230401,
  "payload": {}
}
Development builds validate the envelope contract before the event is accepted into the stream fanout path, including UUID/event-type checks, session-safe timestamps, and registry-style symbol requirements for non-news events.

Fallback posture

  • No production UI fallback to random market data.
  • If a collector is stale, QuantDesk reports that via /api/v2/data-health rather than inventing metrics.
  • Legacy ad hoc stream payloads are deprecated and should not be used by new producers.