Real-time crypto market intelligence, right in your terminal.

HyperData Terminal streams public WebSocket feeds from Hyperliquid, Binance, Bybit, OKX and Deribit into six live dashboards, a local REST API and a paper-trading engine. Open source under Apache-2.0. No API keys to get started.

Replay of a hyperdata session: the command starts, initializes its liquidation feed, order-flow engine, position scanner and market-data components, prints the six-dashboard menu, and opens the market overview with prices, change, funding and open interest for BTC, ETH, SOL and HYPE.
Exchanges
5
Dashboards
6
Data components
14
API endpoints
17+
License
Apache-2.0
Runtime
Python 3.12+

Six dashboards. One command.

Run hyperdata and pick a view from the menu. Every dashboard reads from the same data hub and updates in real time.

The six dashboards, what each shows, and where its data comes from
KeyDashboardShowsSource
[1]Liquidation WatchBTC positions closest to liquidation on Hyperliquid. Distance-to-liquidation is tracked in real time, so you can see which whales are about to get wiped.Hyperliquid
[2]Liquidation StreamMulti-exchange liquidation feed from Hyperliquid, Binance, Bybit and OKX, with size, price and exchange for every event.4 exchanges
[3]Liquidation HeatmapPrice-level view of where liquidations are concentrated for all cryptos: long-liquidation risk below price, short-liquidation risk above it.4 exchanges
[4]CVD Order FlowCumulative volume delta for BTC, combined from Hyperliquid and Binance trades, with each venue's share shown separately. See whether buyers or sellers are in control.Hyperliquid + Binance
[5]Market OverviewFunding rates, open interest and prices for 50 assets across exchanges. Spot divergences and funding extremes at a glance.Cross-exchange
[6]Whale TrackerThe largest open positions on Hyperliquid: size, entry price, PnL and liquidation price for the biggest players.Hyperliquid
[0]All DashboardsThe combined view, everything at once.All
HyperData Terminal's combined view: liquidation watch, order flow, liquidation feed, market overview, HLP vault, system status, market intelligence, smart money and whales panels side by side in one terminal window.
The combined view. Each panel is one of the data components below, rendered by Rich in a single terminal window.

Five exchanges. Public feeds. No keys.

All data is fetched live from public exchange endpoints over WebSocket and REST. Nothing to sign up for, nothing to configure before the first run.

Inside, one hub owns 14 data components and manages their async lifecycles. The dashboards, the API and the paper-trading engine all read from that same hub, with no duplication.

  • Liquidations from 4 exchangesHyperliquid, Binance, Bybit, OKX
  • CVD order flowHyperliquid + Binance trades
  • Whale positionsHyperliquid
  • Funding ratesby exchange
  • Open interest50 assets
  • Orderbook depthBinance
  • DVOL implied volatilityDeribit
  • Long/short ratios
  • Spot prices
  • Smart-money signals

Ten of the fourteen components, as listed in the project README.

Data sources, what each provides, and how it is connected
SourceDataConnection
HyperliquidTrades, positions, liquidations, funding, whale trackingWebSocket + REST
BinanceTrades, liquidations, orderbookWebSocket
BybitLiquidationsWebSocket
OKXLiquidationsWebSocket
DeribitDVOL implied volatilityREST
HyperData Terminal starting up: the HYPERDATA banner, the list of components being initialized (liquidation feed, order flow engine, position scanner, market data), the active dashboards, and a progress bar reporting all systems online.
Start-up. The hub brings each component online before the menu appears.

Build on the same hub.

Everything the dashboards see is available to your own code: through a local REST API and WebSocket, or directly inside a paper-trading strategy.

REST API and WebSocket

Start the server alongside or instead of the terminal. It binds to 127.0.0.1 by default and refuses a public bind unless you set an API key or explicitly accept the risk.

$ python run_api.py --port 8420

$ curl http://localhost:8420/v1/market/BTC | python -m json.tool
$ curl http://localhost:8420/v1/orderflow/BTC
$ curl http://localhost:8420/v1/liquidations/stats
$ curl http://localhost:8420/v1/positions/danger-zone
All 17 endpoints
REST and WebSocket endpoints
EndpointReturns
GET /v1/liveMinimal liveness probe, always unauthenticated
GET /v1/healthServer status and uptime
GET /v1/marketAll assets: prices, OI, funding
GET /v1/market/{symbol}Single asset detail
GET /v1/liquidationsRecent liquidation events
GET /v1/liquidations/statsAggregate liquidation statistics
GET /v1/orderflow/{symbol}CVD snapshots for a symbol
GET /v1/funding-ratesFunding rates across exchanges
GET /v1/funding-rates/{symbol}Single asset funding rate
GET /v1/long-short-ratioLong/short ratio
GET /v1/basisBasis spread
GET /v1/deribit/ivDVOL implied volatility
GET /v1/orderbook/{symbol}Orderbook snapshot
GET /v1/whalesTop whale positions
GET /v1/positions/danger-zonePositions closest to liquidation
GET /v1/public/metricsServer metrics and component health
WS /v1/wsReal-time event stream: liquidations, trades, signals
Optional LLM agent

The agent sends a market summary to any OpenAI-compatible API and asks for a trading decision. Point it at OpenAI, Ollama, LM Studio, Groq, Together or your own endpoint with three variables in .env: LLM_BASE_URL, LLM_MODEL and LLM_API_KEY. The prompt lives in src/strategies/llm_agent.py.

Paper trading, your strategy

Real market data, fake money. A strategy is one class with one method that returns a signal or nothing. The whole interface fits in about 30 lines.

from src.strategies.base import Strategy, Signal

class MyStrategy(Strategy):
    name = "my_strategy"

    def evaluate(self, hub) -> Signal | None:
        # hub.orderflow, hub.market, hub.liquidations,
        # hub.funding, hub.lsr, hub.positions,
        # hub.spot, hub.deribit are all live here.
        snap = hub.orderflow.get_snapshot("BTC", "5m")
        if not snap:
            return None

        cvd = snap.buy_volume - snap.sell_volume
        if cvd > 100_000:
            return Signal("BTC", "BUY", size_usd=100,
                          confidence=0.7,
                          reason="Strong buy pressure")
        elif cvd < -100_000:
            return Signal("BTC", "SELL", size_usd=100,
                          confidence=0.7,
                          reason="Strong sell pressure")
        return None
Included example strategies
Example strategies shipped with the project
StrategyReadsLogic
CVDMomentumhub.orderflowBuy when order flow is strongly positive, sell when negative
FundingRateArbhub.fundingShort when funding is high, long when negative
LiquidationCascadehub.liquidationsBuy the dip after large liquidation cascades
WhaleFollowhub.positionsMirror the direction of the largest whale positions

Data that checks itself.

The hub continuously cross-checks its live feeds against Binance and Deribit and flags anything stale or drifting. The state is printed on the dashboard and exposed at /v1/health, so your own tools can read it too.

Coverage is honest, not a complete census. OKX and Bybit liquidations are real feeds, with Bybit covering its top 15 symbols. Binance's stream is throttled at the source to about one liquidation per symbol per second. Hyperliquid liquidations are inferred from large trades and flagged as estimated. Details are in docs/DATA_INTEGRITY.md.

Feed status states shown on the dashboard
StateMeaning
LIVEThe feed agrees with the reference. Data is arriving and matches the cross-check within tolerance.
STALEThe feed has gone quiet. No fresh data has arrived recently, so what you see may be out of date.
DRIFTThe feed disagrees with the reference. Values have diverged from Binance or Deribit beyond the expected range.

Four commands to live data.

Clone, install, run. The first launch opens the dashboard menu with data streaming from all five exchanges.

Requires
Python 3.12 or newer, pip, git
API keys
None for the dashboards or the API. Only the optional LLM agent needs one.
License
Apache-2.0
$ git clone https://github.com/Co-Messi/HyperData-Terminal.git
$ cd HyperData-Terminal
$ pip install -e .
$ hyperdata