# CryptoDataAPI — Full Endpoint Reference > Complete inventory of all API endpoints for LLM consumption. 12 aggregated data sources, 100+ endpoints. ## Authentication All endpoints (except `/api/v1/health` and `/api/v1/payments/plans`) require: ``` X-API-Key: cdk_live_yourkey ``` Base URL: `https://cryptodataapi.com` ## Rate Limits - Free tier: 5 requests/min, 50 requests/day - Pro tier: 30 requests/min, 10,000 requests/day - Pro Plus tier: 60 requests/min, unlimited daily --- ## Historical & Time-Series Data 15+ endpoints return time-series data across four tiers: DB-persisted (730 days), remote-sourced (30-90 days), live on-demand (per request), and Market Intelligence (Pro plan, CoinGlass). ### DB-Persisted - `GET /api/v1/market-health/history` — Health score + 11 components (daily, up to 730 days). Params: `days` (default 365) ### Remote-Sourced (30-90 day windows) - `GET /api/v1/sentiment/stablecoins/remote-history` — Stablecoin mcap + daily inflows. Params: `days` (default 90, max 365) - `GET /api/v1/derivatives/binance/history` — Funding, OI, L/S ratio. Params: `days` (default 30, max 90) - `GET /api/v1/market-data/volume-history` — Total volume + buy ratio. Params: `days` (default 30, max 90) ### Live On-Demand - `GET /api/v1/market-data/klines` — OHLCV candles (any Binance pair). Params: `symbol`, `interval` (1m-1M), `limit` (max 1000) - `GET /api/v1/market-data/btc-price-history` — BTC price + 200D MA. Params: `days` (default 365, max 730) - `GET /api/v1/derivatives/binance/funding-rates` — Binance perp funding history. Params: `symbol`, `limit` (max 100) - `GET /api/v1/hyperliquid/funding-rates` — HL funding history. Params: `coin`, `limit` (default 30) - `GET /api/v1/hyperliquid/candles` — HL OHLCV candles. Params: `coin`, `interval`, `limit` ### Market Intelligence (Pro plan) - `GET /api/v1/market-intelligence/btc/cycle-indicators` — 11 cycle indicators (MVRV, NUPL, Puell, etc.). Params: `days` - `GET /api/v1/market-intelligence/etf/{asset}/flows` — ETF inflows/outflows (btc, eth, sol, xrp) - `GET /api/v1/market-intelligence/fear-greed-history` — Fear & Greed history (~2018+) - `GET /api/v1/market-intelligence/stablecoin-history` — Stablecoin mcap timeseries - `GET /api/v1/market-intelligence/grayscale/premium` — GBTC premium (historical, ends ~Jan 2024) - `GET /api/v1/market-intelligence/coinbase-premium` — Coinbase BTC premium index (4h) - `GET /api/v1/market-intelligence/borrow-interest` — Margin borrow rates (4h) --- ## Daily Snapshot ### GET /api/v1/daily Full market overview in one call. Returns market health, fear & greed, derivatives, sentiment, macro, ETF flows, cycle indicators, and coin profiles. - Parameters: `exchange` (optional, default: "hyperliquid") — filter coins: "hyperliquid", "binance_spot", "asterdex", or "all" - Parameters: `format` (optional) — set to "markdown" for LLM-friendly plain text - Parameters: `technical_detail` (optional, default: false) — include the full per-symbol `technical_regime.by_symbol` map (keyed by ticker; each entry has ma/bollinger/range_state/rsi). Omitted by default to keep the payload compact; always available point-in-time via `/backtesting/daily-snapshots/{date}`. - Parameters: `signum_detail` (optional, default: false) — include the full per-symbol `signum_rgg.by_symbol` map (keyed by ticker; RED/GREY/GREEN `color` + signed trend `score` + ADX/DMI + `days_in_color` + `hl_symbol` join key). Omitted by default; always present point-in-time via `/backtesting/daily-snapshots/{date}`. - Response: `{ market_health: {...}, fear_greed: {...}, derivatives: {...}, stablecoins: {...}, macro: {...}, etf_flows: {...}, cycle_indicators: {...}, technical_regime: {counts + top_in_squeeze/top_overbought/top_oversold/top_near_high/top_near_low + by_symbol}, signum_rgg: {green/grey/red counts + shares + net_breadth_pct + mean_trend_score + sentiment + top_green/top_red + by_symbol}, coins: [...], snapshot_time: "..." }` - Tip: This is the single most efficient endpoint for AI agents. Start here. ### GET /api/v1/daily/prices All Binance spot price pairs (~2,500 symbols). - No parameters ### GET /api/v1/daily/hyperliquid Hyperliquid perpetual data: prices, funding rates, and open interest (~229 assets). - No parameters ### GET /api/v1/daily/hl-traders Daily Hyperliquid trader snapshot — the scored top-trader leaderboard, tracked wallet positions, and tracking metadata. 503 until the first leaderboard refresh completes. - No parameters --- ## Market Health ### GET /api/v1/market-health Full dual-score market health with all 11 components. - Parameters: `format` (optional) — "markdown" for plain text - Response: `{ total_score, long_term_score, short_term_score, state, sentiment, long_term_sentiment, short_term_sentiment, components: [...], long_term_components: [...], short_term_components: [...], details, indicators, timestamp }` - States: bear_market, early_recovery, early_bull, confirmed_bull, topping_out ### GET /api/v1/market-health/summary Lightweight scores + sentiment only. - Parameters: `format` (optional) — "markdown" for plain text - Response: `{ total_score, long_term_score, short_term_score, state, sentiment, long_term_sentiment, short_term_sentiment, timestamp }` ### GET /api/v1/market-health/components All 11 component details. - Response: `{ components: [{ name, score, weight, description, details }] }` ### GET /api/v1/market-health/component/{name} Single component by name. - Path parameter: `name` — component name string ### GET /api/v1/market-health/history Health score history from database. - Parameters: `days` (optional, default: 365, max: 730) - Response: `{ history: [{ date, score, long_term_score, short_term_score, components }], count }` ### GET /api/v1/market-health/altcoin-breadth Percentage of top altcoins above their moving average. - Parameters: `ma_period` (optional, default: 200, range: 5-365) - Response: `{ coins: [...], breadth_pct, ma_period }` ### POST /api/v1/market-health/refresh Force recalculate health score (Pro tier only). --- ## Indicators (Pro tier required) Computed trend and market-structure indicators. All endpoints in this section require a Pro (or Pro Plus) tier API key. ### GET /api/v1/indicators/signum-rgg SIGNUM_RGG trend radar. Classifies every asset in the tradeable universe (all Hyperliquid perps + top 100 Binance USDT spot pairs by 24h quote volume, deduped) as RED (downtrend), GREY (sideways), or GREEN (uptrend) on the daily timeframe using ADX(14) with DMI directionality and a hysteresis band (20 <= ADX < 25 holds the prior color). - Parameters: - `color` (optional): filter by `red`, `grey`, or `green` - `source` (optional): filter by `binance_spot` or `hyperliquid_perp` - `min_days` / `max_days` (optional): filter by days-in-current-color - `sort` (optional, default `days_in_color`): one of `days_in_color`, `pct_change`, `adx`, `symbol` - `order` (optional, default `desc`): `asc` or `desc` - `limit` (optional, default 250, max 500) - Response: `{ items: [{ symbol, source, color, days_in_color, flipped_at, pct_change_since_flip, range: { low, high, width_pct } | null, adx, plus_di, minus_di, price }], count, universe_size, timestamp }` - `range` is only populated for GREY assets (last 20-day high/low, width_pct = (high-low)/low*100). ### GET /api/v1/indicators/signum-rgg/{symbol} Per-asset SIGNUM_RGG detail plus the last 60 days of color history for charting a trend-radar strip. - Path parameter: `symbol` — bare ticker (e.g. `BTC`, `ETH`, `SOL`). `USDT` suffix is stripped automatically. - Response: same fields as list item, plus `history: [{ date, color }]`, `rule_params: { period, upper, lower, range_lookback }`, and `timestamp`. ### POST /api/v1/indicators/signum-rgg/refresh Force recompute the SIGNUM_RGG cache across the full universe. Normally refreshes once per day at 00:10 UTC. - Response: `{ refreshed: true, count, timestamp }` ### GET /api/v1/indicators/technical Technical / Structural regime overlay (Regime #14). Per-asset price-structure state across the SIGNUM_RGG universe (top Binance USDT pairs ∪ Hyperliquid perps, deduped). Acts as a universal overlay that pairs with every other regime — filter by indicator state to surface candidates. - Computes four indicator families on daily klines (plus 1h for RSI): - **Moving averages**: SMA-50/100/200 + above/below flags + dist_from_X_pct. Tracks the most recent SMA-50 vs SMA-200 cross (`last_cross_200` = `golden` | `death`, with `days_since_cross_200`). Same for SMA-50 vs SMA-100. - **Bollinger bands** (20, 2σ): middle/upper/lower + `bandwidth_pct`. `in_squeeze` = current bandwidth ranks in the bottom 20th percentile of the trailing 90 days. `days_in_squeeze` = consecutive days the squeeze condition has held. `expanding` = bandwidth higher than 3 bars ago. - **Range state** (20d): low/high/width_pct + `position_pct` (0=at low, 100=at high) + `zone` (`near_low` | `mid` | `near_high`; near-edge thresholds at 15%). - **RSI** (14): daily + 1h values, state (`overbought` ≥70 / `oversold` ≤30 / `neutral`), `extreme_1d` / `extreme_1h` flags (≥80 or ≤20), `extreme_duration_bars` (consecutive recent 1d bars in the extreme zone). - Parameters: - `source` (optional): filter by `binance_spot` or `hyperliquid_perp` - `ma_state` (optional): `above_200` | `below_200` | `breakdown_200` (recent SMA-50/200 death cross in last 10d) | `reclaim_200` (recent golden cross in last 10d) - `bb` (optional): `in_squeeze` | `expanding` - `range_zone` (optional): `near_low` | `mid` | `near_high` - `rsi` (optional): `overbought` | `oversold` | `extreme` (any side of 80/20) - `min_days_in_state` (optional): when combined with `bb=in_squeeze` or `rsi=...`, requires that many consecutive bars in state - `sort` (optional, default `symbol`): one of `symbol`, `price`, `rsi_1d`, `bb_bandwidth`, `squeeze_days`, `dist_from_200`, `position_in_range` - `order` (optional, default `desc`): `asc` or `desc` - `limit` (optional, default 250, max 500) - Response: `{ items: [{ symbol, source, price, ma: {...}, bollinger: {...}, range_state: {...}, rsi: {...} }], count, universe_size, timestamp }` - Cached for 30 minutes; refreshed every 30 min by the scheduler. ### GET /api/v1/indicators/technical/{symbol} Per-asset Technical / Structural detail plus a compact 60d daily history series for sparkline rendering. - Path parameter: `symbol` — bare ticker (e.g. `BTC`, `ETH`). `USDT` suffix is stripped automatically. - Response: same fields as list item, plus `history: [{ date, close, rsi_14, bb_bw_pct, sma_200, above_200 }]` and `timestamp`. ### POST /api/v1/indicators/technical/refresh Force recompute the Technical / Structural cache across the full universe. - Response: `{ refreshed: true, count, timestamp }` --- ## Coins ### GET /api/v1/coins List coins paginated by market cap rank. - Parameters: `page` (default: 1), `limit` (default: 250) ### GET /api/v1/coins/search Search coins by name or symbol. - Parameters: `q` (required) — search query ### GET /api/v1/coins/top Top N coins by market cap. - Parameters: `n` (default: 10) ### GET /api/v1/coins/categories All unique coin categories (raw CoinGecko tag names). ### GET /api/v1/coins/category-groups Curated coin-category themes — 20+ major categories (AI, Layer-1/Layer-2, DeFi, DEX, lending, liquid staking, stablecoins, exchange tokens, meme, privacy, RWA, NFT, gaming, metaverse, DePIN, oracles, interoperability, storage, Bitcoin/Solana/Cosmos ecosystems, PoW, derivatives). Each group has a plain-English description and its resolved coin list (live price, market cap, rank, 24h/7d change), sorted by market-cap rank. Powers the /coin-categories page. Unlike /coins/categories (raw tag names), this is an editorial set. - Parameters: `limit` (max coins per group, default 25) - Response: `{ categories: [{ id, name, description, coin_count, coins: [{ symbol, name, current_price, market_cap, market_cap_rank, total_volume, price_change_24h_pct, price_change_7d_pct, image_url }] }], count }` ### GET /api/v1/coins/{symbol} Detailed coin profile by symbol (uppercase). - Path parameter: `symbol` — e.g., BTC, ETH, SOL - Response: `{ symbol, name, current_price, market_cap, market_cap_rank, price_change_24h_pct, price_change_7d_pct, price_change_30d_pct, total_volume, circulating_supply, max_supply, ath, ath_date, atl, atl_date, categories, description }` --- ## Sentiment & Macro ### GET /api/v1/sentiment/fear-greed Fear & Greed Index (multi-source averaged, 0-100). - Parameters: `format` (optional) — "markdown" for plain text - Response: `{ value, classification, sources, individual_values, timestamp }` - Classifications: Extreme Fear (0-25), Fear (26-40), Neutral (41-60), Greed (61-75), Extreme Greed (76-100) ### GET /api/v1/sentiment/macro Macro indicators: EUR/USD, gold, treasury yields. - Response: `{ eur_usd, gold, treasury_2y, treasury_10y, treasury_30y, dxy, timestamp }` ### GET /api/v1/sentiment/stablecoins Stablecoin market cap + 14d/90d flows. - Response: `{ total_market_cap, market_cap_change_14d, market_cap_change_90d, stablecoins: [...] }` ### GET /api/v1/sentiment/stablecoins/history Raw stablecoin market cap history timeseries. ### GET /api/v1/sentiment/stablecoins/remote-history Daily stablecoin mcap + inflows from remote source. - Parameters: `days` (default: 90, max: 365) --- ## NFT Trade Volume All endpoints in this section require a Pro (or Pro Plus) tier API key; `/nfts/correlations` is Pro Plus. The NFT track combines two sources: - **DefiLlama** (`nft.llama.fi`): undocumented public endpoints (`/volume`, `/exchangeStats`). Gives current-snapshot 1d / 7d collection volumes and marketplace breakdown. Refreshed daily; the API server captures each snapshot into the local backtesting DB, so forward history builds one day at a time. - **Dune Analytics** (`nft.trades`): optional weekly backfill, requires `DUNE_API_KEY`. Provides deep historical daily volume by chain × collection × category back to 2017 across Ethereum, Solana, and 10 EVM L2s. First run does a full backfill; subsequent runs only re-query a 10-day overlap window. Collections are grouped by **chain** (Ethereum, Solana, Bitcoin Ordinals, Polygon, Base, Immutable, Ronin, Flow), **category** (pfp / art / gaming / collectible / music / domain / metaverse / ordinal / other), and **tier** — `og_blue_chip` / `mid` / `long_tail`. The seed taxonomy lives at `src/data/nft_collections.json` and is editorial. ### GET /api/v1/nfts/overview Headline NFT trade-volume stats — daily total series, breakdowns by chain / tier / category, top live collections, marketplace share. - Parameters: - `days` (optional, default 90, max 3650) — days of history to return - Response: `{ total_series, by_chain, by_tier, by_category, totals: { volume_usd_24h, volume_usd_7d, volume_usd_30d, volume_usd_90d }, top_collections, marketplaces, refreshed_at, history_days }` ### GET /api/v1/nfts/volume Daily NFT volume bucketed by chain, tier, category, or collection. Pro tier. - Parameters: - `by` ∈ chain | tier | category | collection (default `chain`) - `from`, `to` — ISO dates (YYYY-MM-DD). Defaults to last 365d. - `granularity` (only `daily` supported today) - Response: `{ by, granularity, points: [{ date, bucket, volume_usd }], start_date, end_date }` ### GET /api/v1/nfts/collections Seeded NFT collection taxonomy. - Response: `{ collections: [{ slug, name, chain, contract, category, tier, launched }] }` ### GET /api/v1/nfts/collections/{slug} Per-collection daily volume time-series. - Parameters: `days` (default 365, max 3650). - Response: `{ meta: NFTCollection, series: [{ date, volume_usd, trades }] }` ### GET /api/v1/nfts/chains Chain breakdown — chain name plus count of seeded collections on it. ### GET /api/v1/nfts/categories Fixed category taxonomy. ### GET /api/v1/nfts/correlations Pearson correlation of daily NFT total volume vs daily log-returns of named assets. Pro Plus. - Parameters: `vs` (comma-separated, default `btc,eth,sol`), `window_days` (default 90). - Response: `{ items: [{ asset, correlation, window_days, overlapping_days }], window_days, method, notes }` - Notes: Pearson on log-returns, not a causal claim. Useful for sanity-checking whether NFT activity is tracking the broader crypto cycle in a given window. --- ## Derivatives (Binance Futures) ### GET /api/v1/derivatives/binance/funding-rates Binance perpetual funding rate history. - Parameters: `symbol` (default: "BTCUSDT"), `limit` (default: 30, max: 100) ### GET /api/v1/derivatives/binance/open-interest Binance open interest + 30-day trend. - Parameters: `symbol` (default: "BTCUSDT") ### GET /api/v1/derivatives/binance/long-short-ratio Binance long/short account ratio. - Parameters: `symbol` (default: "BTCUSDT") ### GET /api/v1/derivatives/binance/summary All-in-one Binance derivatives summary for a symbol. - Parameters: `symbol` (default: "BTCUSDT") ### GET /api/v1/derivatives/binance/history Daily derivatives history (funding, OI, L/S). - Parameters: `days` (default: 30, max: 90) ### GET /api/v1/derivatives/funding-rates Cross-exchange funding rates (Binance + Hyperliquid + aggregators). - Parameters: `coin` (default: "BTC") ### GET /api/v1/derivatives/open-interest Cross-exchange open interest. - Parameters: `coin` (default: "BTC") ### GET /api/v1/derivatives/summary Combined cross-exchange derivatives overview. - Parameters: `coin` (default: "BTC") - Parameters: `format` (optional) — "markdown" for plain text --- ## Market Intelligence ### GET /api/v1/market-intelligence/btc/cycle-indicators All 8 BTC cycle indicators with scores and zone classifications. - Indicators: MVRV Z-Score, NUPL, Puell Multiple, Pi Cycle Top, 200-Week MA Multiple, Reserve Risk, RHODL Ratio, Thermocap Multiple ### GET /api/v1/market-intelligence/btc/cycle-indicators/{indicator} Single BTC cycle indicator by name. ### GET /api/v1/market-intelligence/etf/{asset}/flows ETF flow history for BTC, ETH, SOL, or XRP. - Path parameter: `asset` — btc, eth, sol, or xrp ### GET /api/v1/market-intelligence/etf/btc/aum BTC ETF total assets under management. ### GET /api/v1/market-intelligence/liquidations Cross-exchange liquidation data (long + short volumes 1h/4h/12h/24h). - Parameters: `exchange` (optional, default: "hyperliquid") — coin-set filter: "hyperliquid", "binance_spot", "asterdex", or "all" - Parameters: `symbol` (optional) — filter to a single coin - Parameters: `type` (optional), `limit` (default: 250) - With `exchange=asterdex`, response includes AsterDEX-native rows (tagged `source: "asterdex"`) for AsterDEX-only symbols (e.g. LAB, ASTEROID) alongside the CoinGlass cross-exchange aggregate. ### GET /api/v1/market-intelligence/liquidations/by-exchange Liquidations broken down by exchange. ### GET /api/v1/market-intelligence/options BTC options data: OI, volume, put/call ratio, max pain. ### GET /api/v1/market-intelligence/exchange-balance Exchange BTC balance and flow data. ### GET /api/v1/market-intelligence/coinbase-premium Coinbase premium index (BTC price premium on Coinbase vs other exchanges). ### GET /api/v1/market-intelligence/funding-rates Cross-exchange funding rates from aggregator. - Parameters: `exchange` (optional), `type` (optional), `limit` (default: 250) ### GET /api/v1/market-intelligence/open-interest Cross-exchange open interest from aggregator. - Parameters: `exchange` (optional), `type` (optional), `limit` (default: 250) ### GET /api/v1/market-intelligence/grayscale/holdings Grayscale fund holdings across all products. ### GET /api/v1/market-intelligence/grayscale/premium Grayscale BTC premium/discount history. ### GET /api/v1/market-intelligence/taker-buy-sell Taker buy/sell volume ratio by exchange for multiple coins (BTC, ETH, SOL, DOGE, XRP, ADA). Optional query param: `?symbol=BTC` to filter to a single coin. ### GET /api/v1/market-intelligence/borrow-interest Margin borrow interest rate history. ### GET /api/v1/market-intelligence/fear-greed-history Fear & Greed index history with dated entries. ### GET /api/v1/market-intelligence/stablecoin-history Stablecoin market cap history timeseries. ### GET /api/v1/market-intelligence/status Collector status and rate limit usage. --- ## On-Chain Intelligence Leading on-chain signals sourced from QuickNode RPC nodes (ETH/Tron/BSC/Base/BTC/Sol), mempool.space, Ethplorer, and CoinMetrics Community API. All data is read directly from chain nodes, not scraped from third-party UIs. ### GET /api/v1/on-chain/stablecoin-reserves CEX stablecoin reserves across ETH/Tron/BSC. Aggregate USDT/USDC balances in known hot/cold wallets of Binance, Coinbase, Kraken, Bybit, and OKX. Returns by_exchange / by_chain / by_symbol breakdown + total_usd. ### GET /api/v1/on-chain/stablecoin-reserves/dry-powder Z-scored dry-powder signal. Returns "accumulating" (z > +1, bullish), "neutral", or "depleting" (z < -1, bearish) — based on a rolling 30-day baseline. ### GET /api/v1/on-chain/exchange-flows/{symbol} Net Transfer flow to/from CEX wallets per symbol. The top-level `windows` are **summed across every chain the symbol exists on**; the response also includes a per-chain `by_chain` breakdown (same window shape, only chains with data) and a `chains_covered` list — matching the backtesting archive so live and historical snapshots have the same structure. Current coverage: - **Ethereum** (50 tokens): USDT, USDC, DAI, WBTC, WETH, LINK, UNI, AAVE, MKR, LDO, ARB, MATIC, PEPE, SHIB, RNDR, INJ, FET, GRT, IMX, MANA, SAND, AXS, APE, BLUR, ENS, COMP, SNX, CRV, SUSHI, 1INCH, LRC, CHZ, GALA, PYUSD, FRAX, ONDO, WLD, ENA, USDE, PENDLE, W, TIA, STRK, ETHFI, EIGEN, RPL, NEAR, FXS, BNT, OCEAN. - **BSC** (9 tokens): USDT, USDC, BUSD, CAKE, BTCB, ETHB, FDUSD, TWT, DAI. - **Base** (7 tokens): USDC, WETH, CBBTC, AERO, DEGEN, VIRTUAL, BRETT. - **Arbitrum** (5 tokens): USDC, USDT, WETH, ARB, GMX. - **Optimism** (4 tokens): USDC, USDT, WETH, OP. - **Tron** (2 tokens): USDT, USDC. - **Solana** (13 symbols via Helius enhanced API, wallet-centric scan): SOL native, USDC, USDT, JUP, JTO, BONK, WIF, POPCAT, MEW, PYTH, RAY, ORCA, HNT. Returns 1h/6h/24h/7d windows, per-exchange 24h breakdown (binance, coinbase, kraken, bybit, okx), `by_chain` + `chains_covered`, plus rolling spike_zscore_1h and spike_zscore_24h. Positive net = deposits (often bearish leading), negative net = withdrawals (often bullish). Optional ?exchange=binance filter. Refresh cadence 5min. 90d historical depth available via the backtesting archive (with the same per-chain breakdown under `exchange_flows.by_chain.`). **Solana caveat (withdrawals-only bias):** Solana CEX deposits use per-user token accounts owned by the hot wallet; user-signed deposit transactions don't appear when scanning the hot wallet directly via Helius's address-transactions API. As a result, SPL/SOL inflow numbers are systematically low. Outflow (withdrawal) numbers are accurate. Net flow is biased toward "outflow" for SPL tokens on Solana. EVM chains (ETH/BSC/Tron) are not affected — those scan token contracts and capture both directions correctly. **Native ETH caveat (live-only):** The `ETH` symbol (native, distinct from `WETH` ERC-20) is tracked via eth_getBalance delta polling at each CEX hot wallet. No historical backfill — flow data accumulates forward from collector start. Use `WETH` for backtest periods before collector deploy. ### GET /api/v1/on-chain/exchange-flows/spike-alerts Recent large transfers (≥ min_amount, default $1M USD) to/from tracked CEX wallets across ETH and BSC. Each alert: chain, symbol, exchange, direction (inflow/outflow), amount, counterparty address. ?min_amount and ?limit (max 500) query params. ### GET /api/v1/on-chain/miners/reserves BTC miner pool reserves + 24h/7d/30d net flow per pool. Tracks Foundry USA, AntPool, F2Pool, ViaBTC, Binance Pool reward addresses via mempool.space. Negative net = miners selling (bearish), positive net = accumulation. Refresh cadence 30min. ### GET /api/v1/on-chain/miners/hash-ribbon Hash Ribbon indicator (Charles Edwards, 2019): 30-day MA vs 60-day MA of BTC hashrate. State machine: "capitulation" (30dMA < 60dMA), "recovery" (just crossed back above within 14d — historically the strongest BTC bottom signal), or "normal". Includes ma30_eh, ma60_eh, ratio, days_in_state. Refresh cadence 1h. ### GET /api/v1/on-chain/dormancy/btc BTC dormancy & supply-shock signals via CoinMetrics Community API. Returns MVRV with zone classification (capitulation < 1.0, accumulation 1.0-1.5, neutral 1.5-2.5, elevated 2.5-3.5, euphoria > 3.5), plus mvrv_7d_change_pct, active_addresses, issuance_usd_24h, and chain-wide exchange_net_flow_usd_24h as an independent cross-check on the QuickNode-derived ERC-20 flow endpoints. ### GET /api/v1/on-chain/whales 🚧 **Coming soon (temporarily disabled).** Top-100 non-CEX holders snapshot across USDT, USDC, WBTC, WETH on Ethereum. CEX wallets filtered out via the address registry. Per-symbol: non_cex_holder_count, total_balance, total_share_pct, top_5 holders, 24h/7d/30d deltas, accumulation_signal. ### GET /api/v1/on-chain/whales/{symbol} 🚧 **Coming soon (temporarily disabled).** Per-token whale view for one of USDT / USDC / WBTC / WETH with full top-5 list and delta payload. ### GET /api/v1/on-chain/whales/accumulation-score 🚧 **Coming soon (temporarily disabled).** Aggregate whale accumulation verdict across all tracked ERC-20s. Returns directional signal (accumulating / neutral / distributing / unknown) plus per-category counts. Useful as a single boolean for an AI agent to pivot bias on. ### GET /api/v1/on-chain/whales/accumulation-score/{symbol} 🚧 **Coming soon (temporarily disabled).** Per-symbol whale accumulation signal with deltas. ### GET /api/v1/on-chain/score Composite 0-100 on-chain health score with per-component breakdown. Weights: MVRV 25%, Hash Ribbon 20%, dry-powder 15%, whale accumulation 15%, exchange flow 15%, miner flow 10%. Sentiment bands: bullish (≥70), leaning_bullish (55-69), neutral (45-54), leaning_bearish (30-44), bearish (<30). Components with no data yet contribute neutral 50 so the score remains stable across cold deploys. --- ## Liquidity / Market Depth Per-minute Hyperliquid L2 book snapshots across the top-25 perps (by 24h notional volume), joined to the cached OI snapshot. Powers the Liquidity / Market Depth regime on the /regimes page. ### GET /api/v1/liquidity/depth Current per-coin depth/spread snapshot for the tracked universe. Each record: mid_price, spread_bps, bid/ask depth USD at {10, 25, 50, 100}bps from mid, total_depth_25bps_usd, imbalance_10bps (book skew within 10bps), and joined open_interest_usd. Refresh cadence: 60s. ### GET /api/v1/liquidity/oi-divergence Per-coin OI vs price change across 1h/4h/24h windows, ranked by 4h divergence (oi_change_4h_pct − price_change_4h_pct). Positive divergence = OI rising faster than price = fragile positioning. Coins without enough history for a given window report null for that window. ### GET /api/v1/liquidity/regime Per-coin liquidity regime label + market-wide aggregate + composite fragility score. Per-coin regimes (applied in priority order): post_cascade_impaired, depth_withdrawal, oi_price_divergence, deep_book, neutral. Each entry includes confidence (0-1), low_confidence flag (true when <60min of buffered samples), baseline_minutes, and the raw signals that triggered the rule. Coins below the confidence threshold still classify but flag low_confidence. Pro Plus only. ### GET /api/v1/liquidity/regime/score Composite 0-100 market structure score derived from the regime mix (higher = healthier). Sentiment bands: healthy (≥70), leaning_healthy (55-69), neutral (45-54), leaning_fragile (30-44), fragile (<30). Score weights vs baseline 50: +30 × pct_deep_book, −25 × pct_divergent, −30 × pct_withdrawing, −20 × pct_impaired. Trimmed companion to /liquidity/regime — same composite, no per-coin list. Pro Plus only. ### GET /api/v1/liquidity/depth/{coin} Per-coin rolling depth history (up to 24h of 1-min samples). Query param: minutes (default 60, max 1440). Returns the same per-record shape as /liquidity/depth, ordered oldest→newest. Pro / Pro Plus only. ### GET /api/v1/volatility/regime Per-asset realized-volatility regime (Regime #13) across the SIGNUM_RGG universe (top Binance USDT pairs ∪ Hyperliquid perps, deduped). A risk-sizing overlay computed from daily klines — fully backfillable, no new external data source. - Realized vol via three estimators, annualized for a 24/7 market (×√365): close-to-close (log returns), Parkinson (high-low range), Garman-Klass (full OHLC, the headline). Computed over 7d and 30d windows. - `vol_pctile_30` / `vol_pctile_7`: where current 30d / acute 7d vol ranks within its own trailing 90d distribution. Low percentile = the calm before expansion. - `rv_z_30` / `rv_z_7`: realized-vol z-score (how many standard deviations current 30d / 7d vol sits from its own trailing-90d mean) — the magnitude companion to the percentile rank, for a continuous de-rate rather than a boolean gate. - `term_structure_ratio` = 7d / 30d vol (>1 = front rising / vol breaking out). - `vol_target_multiplier` = target_vol(60%) / current_vol, capped to [0.25, 3.0] — the scalar a vol-targeting strategy multiplies base size by (size shrinks as vol rises). - `days_compressed` / `days_shock`: consecutive days in the low-vol / acute-spike condition. `days_in_regime` is the run-length of the *current* regime across all five states, with `prev_regime` (the regime immediately before the run) and `regime_changed` (true if the latest bar flipped) — so a strategy can detect the cross into a new regime point-in-time without holding its own prior-day state. - `is_stable` (top-level per-symbol flag): true for known stablecoins or heuristically pegged tokens (priced ≈$1 with peg-like ultra-low vol). Lets consumers avoid over-weighting a peg in a "size up the calm coins" loop. - Per-asset regime (priority order, first match wins): `vol_shock` (7d vol ≥90th pctile), `expanding` (term ratio ≥1.15 and 30d pctile ≥50), `compressed` (30d vol ≤20th pctile — dry tinder), `mean_reverting` (term ratio ≤0.85 and 30d pctile ≥60), `normal` (fallthrough). - `vol.rv_1h` is a live-only intraday field; backfilled historical days land null. - Parameters: `source`, `regime`, `sort` (default vol_pctile_30; one of symbol, rv_gk_30, rv_gk_7, vol_pctile_30, term_structure_ratio, vol_target_multiplier, days_compressed), `order` (default desc), `limit` (default 250, max 500). - Response: `{ items: [{ symbol, source, price, regime, is_stable, vol: {...} }], count, universe_size, timestamp }`. Cached 30 min; refreshed every 30 min by the scheduler. ### GET /api/v1/volatility/regime/score Market-wide volatility-stress composite (0-100; higher = more stress → size down) derived from the regime mix. Sentiment bands: stressed (≥70), elevated (55-69), normal (45-54), calm (30-44), dormant (<30, the dangerously-quiet compressed-vol state). Score weights vs baseline 50: +35 × pct_shock, +20 × pct_expanding, −20 × pct_compressed, +5 × pct_mean_reverting. Includes median_vol_pctile_30 + regime aggregate. Also returns `target_vol` (the 60% numerator behind the per-asset multiplier) and `gross_exposure_multiplier` (0.5–1.0, the universe-wide analog of the per-asset vol-target multiplier: ~1.0 in a calm tape, ramping to ~0.5 at max vol stress — a single scalar a market-wide gross overlay multiplies into). Trimmed companion to /volatility/regime — no per-coin list. ### GET /api/v1/volatility/regime/{symbol} Per-asset Volatility regime detail plus a compact 60d daily history series (close, 30d close-to-close vol, 30d Garman-Klass vol) for sparkline rendering. Path param: bare ticker (USDT suffix stripped). Pro / Pro Plus only. ### POST /api/v1/volatility/regime/refresh Force recompute the Volatility regime cache. Pro / Pro Plus only. ### GET /api/v1/quant/market Whole-market regime + probability object from a Hidden Markov Model trained on years of hourly bars. Regime is one of 6 states (strong_trend_bull, strong_trend_bear, range_low_vol, choppy_high_vol, vol_spike, squeeze) with calibrated confidence and candles_in_regime. Probability buckets at the requested horizon (`horizon=4h|24h`, default 24h): directional (strong_down/mild_down/flat/mild_up/strong_up), volatility (low/medium/high), liquidation_risk, funding (falls/stable/rises), breadth (contracting/neutral/expanding — market scope only), open_interest, and regime_transitions (stays_same + to_