API Reference

Endpoint Explorer

Search the complete live catalog, including exact response fields, typed parameters, Pro tiers, chain coverage, and supported legacy paths.

Reset
1,368 endpoints, catalog 927ed17c749a5e0cPage 3 of 28
etf-inflows-outflowspro

Track net Bitcoin flows into and out of ETFs. Green bars show inflows (institutional accumulation), red bars show outflows (distribution). Reveals institutional sentiment and demand trends.

Chart Datasets
GET /api/v1/charts/etf-inflows-outflowsTry in Playground

Response fields

net_flow: number?inflow: number?outflow: number?total_balance: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
eth-dominancepro

Monitor Ethereum's market cap dominance as a percentage of total crypto market cap. Rising ETH dominance often signals strength in smart contract platforms and DeFi ecosystems. Historical range: 8-32%.

Chart Datasets
GET /api/v1/charts/eth-dominanceTry in Playground

Response fields

value: number?eth_dominance: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
ethereum-etf-aumpro

Total assets under management across all US spot Ethereum ETFs over time, with the ETH price overlaid. Rising AUM reflects net capital growth (inflows plus price appreciation) inside the ETF wrapper since the July 2024 launch.

Chart Datasets
GET /api/v1/charts/ethereum-etf-aumTry in Playground

Response fields

aum_usd: number?asset_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
ethereum-etf-flowspro

Daily net flows into and out of US spot Ethereum ETFs (ETHA, FETH, ETHW, and others), aggregated across all issuers. Green bars are net inflows, red bars are net outflows, with the ETH price overlaid.

Chart Datasets
GET /api/v1/charts/ethereum-etf-flowsTry in Playground

Response fields

flow_usd: number?asset_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
exchange-inflows-outflowspro

Track net Bitcoin flows onto and off exchanges. Green bars show inflows (potential selling pressure), red bars show outflows (accumulation). Reveals market sentiment and supply dynamics.

Chart Datasets
GET /api/v1/charts/exchange-inflows-outflowsTry in Playground

Response fields

net_flow: number?inflow: number?outflow: number?total_balance: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
fear-greed-indexpro

Track market sentiment with the Bitcoin Fear and Greed Index, showing emotional extremes that often coincide with market opportunities. Includes Bitcoin price overlay to visualize sentiment-price relationships.

Chart Datasets
GET /api/v1/charts/fear-greed-indexTry in Playground

Response fields

value: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
displayModestringChart display mode.
fees-per-block-distributionpro

Rolling 24-hour block-fee percentiles and mean in satoshis, isolating native fee-market dispersion from changes in the dollar price of Bitcoin.

Chart Datasets
GET /api/v1/charts/fees-per-block-distributionTry in Playground

Response fields

date: string?formattedDate: string?mean_fee_sats: number?median_fee_sats: number?p10_fee_sats: number?p25_fee_sats: number?p75_fee_sats: number?p90_fee_sats: number?price: number?timestamp: integer?block_height: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
forward-looking-lthpro

Projects current Short-Term Holder accumulation 155 days into the future and compares it with current Long-Term Holder distribution. Provides a lag-free view of expected future LTH supply changes by showing what today's buying will become versus what's being sold now.

Chart Datasets
GET /api/v1/charts/forward-looking-lthTry in Playground

Response fields

btc_price: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_net_position_change: number?lth_percentage: number?lth_realized_cap: number?lth_realized_cap_usd: number?lth_realized_loss_usd: number?lth_realized_profit_usd: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_net_position_change: number?sth_percentage: number?sth_realized_cap: number?sth_realized_cap_usd: number?sth_realized_loss_usd: number?sth_realized_profit_usd: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_lth: number?block_height: number?lth_supply: number?sth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
futures-funding-ratespro

Monitor perpetual futures funding rates showing periodic payments between longs and shorts. Positive rates (green) = longs pay shorts (bullish sentiment), negative rates (red) = shorts pay longs (bearish sentiment). Extreme rates often precede significant price moves or liquidation cascades.

Chart Datasets
GET /api/v1/charts/futures-funding-ratesTry in Playground

Response fields

funding_rate: number?funding_rate_positive: number?funding_rate_negative: number?premium_longs_pay: number?premium_shorts_pay: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
viewModestringChart view mode.
futures-open-interestpro

Track the total value of open Bitcoin futures contracts across major derivatives exchanges (CME, Binance, Bybit, OKX, Deribit, etc.). Monitor market leverage and institutional vs retail positioning. Rising OI + rising price = bullish, falling OI = position liquidation.

Chart Datasets
GET /api/v1/charts/futures-open-interestTry in Playground

Response fields

total_oi: number?cme: number?binance: number?bybit: number?hyperliquid: number?bitget: number?okx: number?deribit: number?coinbase: number?bitmex: number?kraken: number?bitfinex: number?mexc: number?huobi: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
global-m2-leadpro

Bitcoin price against global M2 money supply shifted forward 10 weeks, illustrating the well-documented tendency for BTC to follow global liquidity with a roughly 10-week lag. When central banks expand the money supply, that liquidity reaches risk assets like Bitcoin about 10 weeks later. A historical liquidity correlation, not causation.

Chart Datasets
GET /api/v1/charts/global-m2-leadTry in Playground

Response fields

btc_price: number?global_m2: number?global_m2_shifted: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
google-trendspro

Worldwide Google Trends search interest for 13 crypto topics, including Bitcoin, Ethereum, NFT, DeFi, Solana, Dogecoin, XRP, Cardano, Coinbase, Binance, and MetaMask, overlaid with Bitcoin price. Topic identifiers prevent ambiguous plain-word matches; comparison batches are stitched to a shared 0 to 100 scale from July 2010, and Google-marked partial buckets are withheld.

Chart Datasets
GET /api/v1/charts/google-trendsTry in Playground

Response fields

trend_bitcoin: number?trend_ethereum: number?trend_crypto: number?trend_nft: number?trend_defi: number?trend_altcoin: number?trend_solana: number?trend_dogecoin: number?trend_xrp: number?trend_cardano: number?trend_coinbase: number?trend_binance: number?trend_metamask: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hacker-news-cryptopro

Exact daily Hacker News story matches for Bitcoin and Ethereum across titles, story text, and URLs, overlaid with Bitcoin price. Every Algolia result page is fetched and de-duplicated, approximate counts are rejected, and every point represents one complete UTC day.

Chart Datasets
GET /api/v1/charts/hacker-news-cryptoTry in Playground

Response fields

hn_unique_crypto_stories_per_day: number?hn_bitcoin_stories_per_day: number?hn_ethereum_stories_per_day: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hash-ratepro

Track Bitcoin Hash Rate - the total computational power securing the Bitcoin network. Rising hash rate indicates increased miner investment and network security, often following price trends with some lag.

Chart Datasets
GET /api/v1/charts/hash-rateTry in Playground

Response fields

avg_fees_per_block: number?block_height: number?blocks: number?btc_price: number?coinbase_rewards_btc: number?daily_issuance_btc: number?date: string?difficulty: number?formattedDate: string?hash_rate: number?last_height: number?timestamp: integer?total_fees_btc: number?utxos_created: number?utxos_spent: number?price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hash-ribbonspro

Monitor Bitcoin mining capitulation and recovery cycles through 30-day and 60-day hash rate moving averages. When the 30MA crosses above the 60MA, it often signals miner recovery and potential bullish momentum.

Chart Datasets
GET /api/v1/charts/hash-ribbonsTry in Playground

Response fields

btc_price: number?hash_rate: number?hash_rate_30ma: number?hash_rate_60ma: number?hash_ribbons_signal: number?hash_ribbons_periods: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hashpricepro

Daily miner revenue in USD per petahash per second, the cleanest gauge of mining profitability. Hashprice halves at each reward halving and falls as difficulty rises, recovering with price and transaction fees.

Chart Datasets
GET /api/v1/charts/hashpriceTry in Playground

Response fields

date: string?formattedDate: string?hashprice: number?price: number?timestamp: integer?block_height: number?btc_price: number?hashrate_phs: number?miner_revenue_usd: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hodl-waves-profit-losspro

HODL waves decomposed by profitability, shows what percentage of each age cohort is in profit vs loss. Reveals whether old supply is sitting on gains or trapped underwater.

Chart Datasets
GET /api/v1/charts/hodl-waves-profit-lossTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?hodl_wave_supply_pct_band_0: number?hodl_wave_supply_pct_band_1: number?hodl_wave_supply_pct_band_10: number?hodl_wave_supply_pct_band_11: number?hodl_wave_supply_pct_band_2: number?hodl_wave_supply_pct_band_3: number?hodl_wave_supply_pct_band_4: number?hodl_wave_supply_pct_band_5: number?hodl_wave_supply_pct_band_6: number?hodl_wave_supply_pct_band_7: number?hodl_wave_supply_pct_band_8: number?hodl_wave_supply_pct_band_9: number?loss_<1d: number?loss_10y+: number?loss_1d-1w: number?loss_1m-3m: number?loss_1w-1m: number?loss_1y-2y: number?loss_2y-3y: number?loss_3m-6m: number?loss_3y-5y: number?loss_5y-7y: number?loss_6m-1y: number?loss_7y-10y: number?profit_<1d: number?profit_10y+: number?profit_1d-1w: number?profit_1m-3m: number?profit_1w-1m: number?profit_1y-2y: number?profit_2y-3y: number?profit_3m-6m: number?profit_3y-5y: number?profit_5y-7y: number?profit_6m-1y: number?profit_7y-10y: number?timestamp: integer?loss_1d_1w: number?loss_1m_3m: number?loss_1w_1m: number?loss_1y_2y: number?loss_2y_3y: number?loss_3m_6m: number?loss_3y_5y: number?loss_5y_plus: number?loss_6m_12m: number?loss_lt_1d: number?profit_1d_1w: number?profit_1m_3m: number?profit_1w_1m: number?profit_1y_2y: number?profit_2y_3y: number?profit_3m_6m: number?profit_3y_5y: number?profit_5y_plus: number?profit_6m_12m: number?profit_lt_1d: number?ledger_index: number?loss_band_0: number?loss_band_1: number?loss_band_10: number?loss_band_11: number?loss_band_2: number?loss_band_3: number?loss_band_4: number?loss_band_5: number?loss_band_6: number?loss_band_7: number?loss_band_8: number?loss_band_9: number?price: number?profit_band_0: number?profit_band_1: number?profit_band_10: number?profit_band_11: number?profit_band_2: number?profit_band_3: number?profit_band_4: number?profit_band_5: number?profit_band_6: number?profit_band_7: number?profit_band_8: number?profit_band_9: number?loss_6m-12m: number?loss_< 1d: number?loss_> 10y: number?profit_6m-12m: number?profit_< 1d: number?profit_> 10y: number?loss_5y+: number?profit_5y+: number?loss_less_than_1d: number?profit_less_than_1d: number?supply_in_loss_hype: number?supply_in_profit_hype: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hodl-waves-realized-cappro

Visualize Bitcoin UTXO age distribution with both normal supply percentage and realized capitalization versions, revealing where economic value is concentrated across different holding periods

Chart Datasets
GET /api/v1/charts/hodl-waves-realized-capTry in Playground

Response fields

btc_price: number?date: string?formattedDate: string?hodl_band_00_btc: number?hodl_band_00_pct: number?hodl_band_00_rcap: number?hodl_band_01_btc: number?hodl_band_01_pct: number?hodl_band_01_rcap: number?hodl_band_02_btc: number?hodl_band_02_pct: number?hodl_band_02_rcap: number?hodl_band_03_btc: number?hodl_band_03_pct: number?hodl_band_03_rcap: number?hodl_band_04_btc: number?hodl_band_04_pct: number?hodl_band_04_rcap: number?hodl_band_05_btc: number?hodl_band_05_pct: number?hodl_band_05_rcap: number?hodl_band_06_btc: number?hodl_band_06_pct: number?hodl_band_06_rcap: number?hodl_band_07_btc: number?hodl_band_07_pct: number?hodl_band_07_rcap: number?hodl_band_08_btc: number?hodl_band_08_pct: number?hodl_band_08_rcap: number?hodl_band_09_btc: number?hodl_band_09_pct: number?hodl_band_09_rcap: number?hodl_band_10_btc: number?hodl_band_10_pct: number?hodl_band_10_rcap: number?hodl_band_11_btc: number?hodl_band_11_pct: number?hodl_band_11_rcap: number?hodl_wave_realized_cap_pct_band_0: number?hodl_wave_realized_cap_pct_band_1: number?hodl_wave_realized_cap_pct_band_10: number?hodl_wave_realized_cap_pct_band_11: number?hodl_wave_realized_cap_pct_band_2: number?hodl_wave_realized_cap_pct_band_3: number?hodl_wave_realized_cap_pct_band_4: number?hodl_wave_realized_cap_pct_band_5: number?hodl_wave_realized_cap_pct_band_6: number?hodl_wave_realized_cap_pct_band_7: number?hodl_wave_realized_cap_pct_band_8: number?hodl_wave_realized_cap_pct_band_9: number?hodl_wave_supply_pct_band_0: number?hodl_wave_supply_pct_band_1: number?hodl_wave_supply_pct_band_10: number?hodl_wave_supply_pct_band_11: number?hodl_wave_supply_pct_band_2: number?hodl_wave_supply_pct_band_3: number?hodl_wave_supply_pct_band_4: number?hodl_wave_supply_pct_band_5: number?hodl_wave_supply_pct_band_6: number?hodl_wave_supply_pct_band_7: number?hodl_wave_supply_pct_band_8: number?hodl_wave_supply_pct_band_9: number?timestamp: integer?ledger_index: number?price: number?block_height: number?hodl_supply_pct_1d_1w: number?hodl_supply_pct_1m_3m: number?hodl_supply_pct_1w_1m: number?hodl_supply_pct_1y_2y: number?hodl_supply_pct_2y_3y: number?hodl_supply_pct_3m_6m: number?hodl_supply_pct_3y_5y: number?hodl_supply_pct_5y_plus: number?hodl_supply_pct_6m_12m: number?hodl_supply_pct_lt_1d: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
hodler-positionpro

Track net position changes of long-term Bitcoin holders and liveliness metrics. Shows position change (accumulation/distribution), hodled coins, and liveliness to identify market phases and holder behavior patterns.

Chart Datasets
GET /api/v1/charts/hodler-positionTry in Playground

Response fields

block_height: number?btc_price: number?circulating_supply_btc: number?date: string?formattedDate: string?hodled_coins: number?hodler_position_change: number?liveliness: number?market_cap: number?position_change: number?position_change_negative: number?position_change_positive: number?price: number?timestamp: integer?ledger_index: number?growth: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
holder-realized-pricespro

Display the realized price (average cost basis) for all Bitcoin holder age cohorts from brand new holders (0-1 day) to diamond hands (10+ years). Each line shows where that cohort last moved their coins on-chain, revealing profit/loss zones and holder behavior patterns with a hot-to-cold color gradient.

Chart Datasets
GET /api/v1/charts/holder-realized-pricesTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis: number?realized_price: number?rp_0_1d: number?rp_10y_plus: number?rp_1d_1w: number?rp_1m_3m: number?rp_1w_1m: number?rp_1y_2y: number?rp_2y_3y: number?rp_3m_6m: number?rp_3y_5y: number?rp_5y_7y: number?rp_6m_1y: number?rp_7y_10y: number?sth_cost_basis: number?sw_0_1d: number?sw_10y_plus: number?sw_1d_1w: number?sw_1m_3m: number?sw_1w_1m: number?sw_1y_2y: number?sw_2y_3y: number?sw_3m_6m: number?sw_3y_5y: number?sw_5y_7y: number?sw_6m_1y: number?sw_7y_10y: number?timestamp: integer?sth_realized_price: number?ledger_index: number?lth_realized_price: number?price: number?rp_6m_12m: number?sw_6m_12m: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
implied-onchain-volatilitypro

Derives an implied volatility measure from the interquartile range (P75-P25) of the cost basis distribution relative to the current price. When the spread is narrow, supply is concentrated at similar cost bases, small price movements shift large amounts between profit and loss, implying high on-chain sensitivity. When wide, the market can absorb larger moves without triggering widespread behavioral changes. A novel structural indicator not available elsewhere.

Chart Datasets
GET /api/v1/charts/implied-onchain-volatilityTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?implied_onchain_vol: number?iqr_usd: number?p25: number?p75: number?price: number?timestamp: integer?wide_spread: number?implied_onchain_volatility: number?ledger_index: number?volatility: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
individual-exchange-flowspro

View daily net Bitcoin flows for each individual exchange as stacked bars. Identify which specific exchanges are driving inflows or outflows and how they correlate with price movements.

Chart Datasets
GET /api/v1/charts/individual-exchange-flowsTry in Playground

Response fields

price: number?coinbase: number?binance: number?bitfinex: number?kraken: number?okx: number?upbit: number?robinhood: number?bybit: number?gemini: number?bitflyer: number?bitstamp: number?crypto_com: number?bitmex: number?bithumb: number?coincheck: number?mt_gox: number?deribit: number?bitget: number?revolut: number?river: number?bitgo: number?bitvavo: number?bitbank: number?gate_io: number?sbi_vc_trade: number?htx: number?maskex: number?kucoin: number?hashkey_exchange: number?binance_us: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
unitstringRequested output unit.
flowDirectionstringFlow direction filter.
smoothingConfigjsonJSON smoothing configuration used by the chart projection.
inscription-activitypro

Daily transactions identified as carrying inscriptions directly from V6 transaction structure, without relying on an external Ordinals index.

Chart Datasets
GET /api/v1/charts/inscription-activityTry in Playground

Response fields

date: string?formattedDate: string?inscription_transactions_24h: number?price: number?timestamp: integer?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
institutional-btc-absorptionpro

Measures how much of Bitcoin's new miner issuance is absorbed by net US spot ETF demand over rolling 30 calendar days. A reading of 100% means ETF net buying matched every newly issued bitcoin; readings above 100% mean ETFs absorbed more than miners created, while negative readings show net redemptions. A separate pane plots the BTC inputs and conservative corporate treasury disclosure markers. Corporate quantities are never added to the daily ratio because filings are periodic and do not reveal exact transaction dates.

Chart Datasets
GET /api/v1/charts/institutional-btc-absorptionTry in Playground

Response fields

absorption_ratio_30d: number?etf_net_flow_daily_btc: number?etf_net_flow_30d_btc: number?miner_issuance_30d_btc: number?corporate_reported_purchase_btc: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
investorness-producernesspro

Decompose Bitcoin realized cap into speculation (Investorness) and mining (Producerness) components. Shows whether the market is driven by trading activity or mining fundamentals, with regime shifts indicating important market transitions.

Chart Datasets
GET /api/v1/charts/investorness-producernessTry in Playground

Response fields

active_mvrv: number?active_realized_price: number?active_supply_btc: number?aviv_nupl: number?aviv_ratio: number?block_height: number?btc_price: number?circulating_supply_btc: number?cointime_price: number?date: string?formattedDate: string?investor_cap: number?investorness: number?liveliness: number?market_cap: number?mvrv_ratio: number?nupl: number?price: number?producerness: number?realized_cap: number?supply_in_loss_btc: number?supply_in_profit_btc: number?thermocap: number?timestamp: integer?true_market_mean_price: number?vaulted_price: number?vaulted_supply_btc: number?vaultedness: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
liquid-staking-tvlpro

The total value locked in liquid-staking protocols, which let holders stake a proof-of-stake asset (mostly ETH) and receive a tradable token like stETH that keeps earning yield while staying usable across DeFi. Led by Lido, Binance staked ETH, and Rocket Pool, it is one of the largest and stickiest categories of on-chain capital. Rising liquid-staking TVL signals conviction in the network and its yield and feeds collateral into the rest of DeFi; watch how much of the category a single protocol commands, since staking concentration is a recurring decentralization concern. Data from DeFi Llama, daily.

Chart Datasets
GET /api/v1/charts/liquid-staking-tvlTry in Playground

Response fields

lst_total: number?lst_lido: number?lst_binance_eth: number?lst_rocket_pool: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
liquidationspro

Cross-exchange Bitcoin futures liquidations: long liquidations (leveraged longs flushed as price falls) versus short liquidations (shorts squeezed as price rises). Large one-sided liquidation spikes mark capitulation and squeeze events that often coincide with reversals.

Chart Datasets
GET /api/v1/charts/liquidationsTry in Playground

Response fields

total_liquidations: number?long_liquidations: number?short_liquidations: number?btc_price: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
timeframestringRequested chart timeframe.
livelinesspro

Measure Bitcoin network liveliness - the ratio of coinblocks destroyed to created. Values near 1.0 indicate maximum activity, while low values suggest accumulation phases. High liveliness often correlates with market tops.

Chart Datasets
GET /api/v1/charts/livelinessTry in Playground

Response fields

block_height: number?btc_price: number?coinblocks_created: number?coinblocks_destroyed: number?cumulative_coinblocks_created: number?cumulative_coinblocks_destroyed: number?date: string?formattedDate: string?liveliness: number?liveliness_30d: number?liveliness_change: number?liveliness_momentum: number?liveliness_momentum_positive: number?liveliness_negative: number?liveliness_oscillator: number?liveliness_positive: number?liveliness_sma: number?price: number?timestamp: integer?vaultedness: number?liveliness_30d_change: number?liveliness_change_oscillator: number?ledger_index: number?liveliness_change_negative: number?liveliness_change_positive: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
logarithmic-regressionpro

Analyze cryptocurrency market cycles using logarithmic regression bands to identify potential value and bubble zones

Chart Datasets
GET /api/v1/charts/logarithmic-regressionTry in Playground

Response fields

price: number?bubbleUpperBand: number?bubbleLowerBand: number?nonBubbleUpperBand: number?nonBubbleFit: number?nonBubbleLowerBand: number?priceNonBubbleRatio: number?logBandPosition: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
cryptocurrencystringCryptocurrency symbol or asset identifier.
timeframestringRequested chart timeframe.
logRegProjectionbooleanInclude projected logarithmic-regression values.
logRegProjectionDaysintegerNumber of logarithmic-regression projection days.
ltc-active-vaulted-profit-losspro

Profit/loss breakdown between active (recently moved) and vaulted (long dormant) Litecoin supply.

Chart Datasets
GET /api/v1/charts/ltc-active-vaulted-profit-lossTry in Playground

Response fields

active_supply_btc: number?block_height: number?btc_in_loss: number?btc_in_profit: number?btc_price: number?date: string?formattedDate: string?percent_btc_in_loss: number?percent_btc_in_profit: number?price: number?supply_in_loss_btc: number?supply_in_loss_percent: number?supply_in_profit_btc: number?supply_in_profit_percent: number?timestamp: integer?vaulted_supply_btc: number?active_supply_in_loss: number?active_supply_in_profit: number?ledger_index: number?vaulted_supply_in_loss: number?vaulted_supply_in_profit: number?active_supply_ltc: number?vaulted_supply_ltc: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-adaptive-mvrv-z-scorepro

LTH MVRV Z-Score with adaptive multi-horizon volatility blending short (30d), medium (365d), and long-term windows for more responsive cycle signals

Chart Datasets
GET /api/v1/charts/lth-adaptive-mvrv-z-scoreTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis_usd: number?lth_mvrv: number?lth_mvrv_smoothed: number?lth_mvrv_z_score: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?price: number?timestamp: integer?lth_mvrv_z_score_smoothed: number?ledger_index: number?lth_mvrv_ratio: number?lth_mvrv_zscore: number?market_cap_usd: number?realized_cap_usd: number?z_score: number?zero_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-cost-basispro

Track Long-Term Holder Cost Basis (LTH Cost Basis) - the average acquisition price of long-term holders (≥ 155 days) with statistical bands to identify distribution phases, profit-taking opportunities, and accumulation zones in Bitcoin market cycles

Chart Datasets
GET /api/v1/charts/lth-cost-basisTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis: number?lth_cost_basis_usd: number?lth_supply_btc: number?price: number?timestamp: integer?ledger_index: number?cooled_band: number?cooled_half_band: number?heated_band: number?heated_half_band: number?over_heated_band: number?half_std_band: number?lth_pl_ratio: number?lth_realized_price: number?rolling_std: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-cost-basis-changepro

Track momentum shifts in Long-Term Holder Cost Basis Change (LTH Cost Basis Change) across 7d, 30d, and 90d timeframes to identify major trend changes, long-term accumulation patterns, and market conviction shifts with dynamic gradient visualization

Chart Datasets
GET /api/v1/charts/lth-cost-basis-changeTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis: number?lth_cost_basis_change: number?lth_cost_basis_change_30d: number?lth_cost_basis_change_7d: number?lth_cost_basis_change_90d: number?lth_cost_basis_change_negative: number?lth_cost_basis_change_positive: number?lth_cost_basis_usd: number?lth_supply_btc: number?price: number?timestamp: integer?ledger_index: number?lth_cost_basis_change_30d_negative: number?lth_cost_basis_change_30d_positive: number?lth_cost_basis_change_7d_negative: number?lth_cost_basis_change_7d_positive: number?lth_cost_basis_change_90d_negative: number?lth_cost_basis_change_90d_positive: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-in-losspro

Identify bear market capitulation through the percentage of Long-Term Holder supply currently at a loss. Peaks in this metric (40-50%) mark the deepest bear market phases and historically the best accumulation opportunities

Chart Datasets
GET /api/v1/charts/lth-in-lossTry in Playground

Response fields

block_height: number?btc_price: number?calculated_pct_lth_in_loss: number?calculated_pct_lth_in_profit: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_net_position_change: number?lth_percentage: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_net_position_change: number?sth_percentage: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?lth_in_profit: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-in-profitpro

Track market cycle phases through the percentage of Long-Term Holder supply currently in profit. Readings >90% historically mark cycle peaks, while <50% indicate bear market accumulation phases and potential cycle bottoms

Chart Datasets
GET /api/v1/charts/lth-in-profitTry in Playground

Response fields

block_height: number?btc_price: number?calculated_pct_lth_in_loss: number?calculated_pct_lth_in_profit: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_net_position_change: number?lth_percentage: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_net_position_change: number?sth_percentage: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?lth_in_profit: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-maturation-distributionpro

Separates LTH Net Position Change into two distinct forces: Maturation Rate (coins aging into LTH status from 155 days ago) and Distribution Rate (current LTH selling). Shows the ratio to identify when maturation outpaces distribution, addressing the temporal lag issue in traditional LTH analysis.

Chart Datasets
GET /api/v1/charts/lth-maturation-distributionTry in Playground

Response fields

btc_price: number?date: string?formattedDate: string?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_net_position_change: number?lth_percentage: number?lth_realized_cap: number?lth_realized_cap_usd: number?lth_realized_loss_usd: number?lth_realized_profit_usd: number?lth_sopr: number?lth_supply_btc: number?pct_circulating_lth_in_loss: number?pct_circulating_lth_in_profit: number?pct_circulating_sth_in_loss: number?pct_circulating_sth_in_profit: number?pct_lth_in_loss: number?pct_lth_in_profit: number?pct_sth_in_loss: number?pct_sth_in_profit: number?price: number?sth_btc_in_loss: number?sth_btc_in_profit: number?sth_cost_basis: number?sth_cost_basis_usd: number?sth_mvrv: number?sth_net_position_change: number?sth_percentage: number?sth_realized_cap: number?sth_realized_cap_usd: number?sth_realized_loss_usd: number?sth_realized_profit_usd: number?sth_sopr: number?sth_supply_btc: number?timestamp: integer?ledger_index: number?sth_lth: number?block_height: number?lth_supply: number?sth_supply: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-median-mvrvpro

MVRV ratio using the median LTH cost basis. Because LTH supply is dominated by ancient whale / Satoshi-era coins that drag the mean down, the median is a far better measure of the typical long-term holder's profitability. Derived client-side from the LTH Cost Basis Distribution heatmap buckets.

Chart Datasets
GET /api/v1/charts/lth-median-mvrvTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_median_cost_basis: number?lth_median_mvrv: number?price: number?timestamp: integer?ledger_index: number?breakeven_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-mvrvpro

Track Long-Term Holder MVRV - long-term holder market value vs realized value ratio showing direct profit/loss multiples with intuitive color gradients

Chart Datasets
GET /api/v1/charts/lth-mvrvTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_mvrv_z_score: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?price: number?timestamp: integer?ledger_index: number?breakeven_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-mvrv-z-scorepro

Track Long-Term Holder MVRV Z-Score - statistical normalized version showing standard deviations from historical mean to identify major cycle tops and deep bear market bottoms

Chart Datasets
GET /api/v1/charts/lth-mvrv-z-scoreTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis_usd: number?lth_mvrv: number?lth_mvrv_smoothed: number?lth_mvrv_z_score: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?price: number?timestamp: integer?lth_mvrv_z_score_smoothed: number?ledger_index: number?lth_mvrv_ratio: number?lth_mvrv_zscore: number?market_cap_usd: number?realized_cap_usd: number?z_score: number?zero_line: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-net-positionpro

Track monthly position changes of Long-Term Holders, revealing when committed investors accumulate (positive flows) during bear markets and distribute (negative flows) during bull market peaks. Essential for identifying major market cycle transitions

Chart Datasets
GET /api/v1/charts/lth-net-positionTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_accumulation: number?lth_btc_in_loss: number?lth_btc_in_profit: number?lth_distribution: number?lth_net_position_change: number?lth_percentage: number?lth_position_change_negative: number?lth_position_change_positive: number?lth_supply_btc: number?price: number?timestamp: integer?ledger_index: number?lth_net_position: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-nuplpro

Long-Term Holder Net Unrealized Profit/Loss (LTH-NUPL) tracks the profit/loss status of coins held for more than 155 days, revealing sentiment and distribution patterns of experienced market participants

Chart Datasets
GET /api/v1/charts/lth-nuplTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis_usd: number?lth_market_cap: number?lth_nupl: number?lth_realized_cap: number?lth_supply_btc: number?market_phase: number?price: number?timestamp: integer?ledger_index: number?lth_nupl_momentum_negative: number?lth_nupl_momentum_positive: number?lth_nupl_sma: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-nupl-momentumpro

Analyze Long-Term Holder NUPL momentum by comparing current unrealized profit/loss against moving average, with binary oscillator to identify shifts in long-term holder sentiment and potential market cycle transitions

Chart Datasets
GET /api/v1/charts/lth-nupl-momentumTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_cost_basis_usd: number?lth_nupl: number?lth_nupl_sma_30: number?lth_nupl_sma_365: number?lth_supply_btc: number?market_phase: number?price: number?timestamp: integer?ledger_index: number?lth_nupl_momentum: number?lth_nupl_momentum_30d: number?lth_nupl_momentum_90d: number?lth_nupl_momentum_negative: number?lth_nupl_momentum_positive: number?lth_nupl_sma: number?momentum: number?z_score: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-pl-price-flowpro

Track the net flow of long-term holder cumulative P/L price changes denominated in BTC. Visualizes the rate and magnitude of LTH cost basis shifts using jet colormap styling with percentile-based thresholds to reveal distribution and accumulation patterns.

Chart Datasets
GET /api/v1/charts/lth-pl-price-flowTry in Playground

Response fields

age_bands: number?band_0_loss: number?band_0_loss_btc: number?band_0_loss_usd: number?band_0_net: number?band_0_net_btc: number?band_0_net_usd: number?band_0_profit: number?band_0_profit_btc: number?band_0_profit_usd: number?band_1_loss: number?band_1_loss_btc: number?band_1_loss_usd: number?band_1_net: number?band_1_net_btc: number?band_1_net_usd: number?band_1_profit: number?band_1_profit_btc: number?band_1_profit_usd: number?band_10_loss: number?band_10_loss_btc: number?band_10_loss_usd: number?band_10_net: number?band_10_net_btc: number?band_10_net_usd: number?band_10_profit: number?band_10_profit_btc: number?band_10_profit_usd: number?band_11_loss: number?band_11_loss_btc: number?band_11_loss_usd: number?band_11_net: number?band_11_net_btc: number?band_11_net_usd: number?band_11_profit: number?band_11_profit_btc: number?band_11_profit_usd: number?band_2_loss: number?band_2_loss_btc: number?band_2_loss_usd: number?band_2_net: number?band_2_net_btc: number?band_2_net_usd: number?band_2_profit: number?band_2_profit_btc: number?band_2_profit_usd: number?band_3_loss: number?band_3_loss_btc: number?band_3_loss_usd: number?band_3_net: number?band_3_net_btc: number?band_3_net_usd: number?band_3_profit: number?band_3_profit_btc: number?band_3_profit_usd: number?band_4_loss: number?band_4_loss_btc: number?band_4_loss_usd: number?band_4_net: number?band_4_net_btc: number?band_4_net_usd: number?band_4_profit: number?band_4_profit_btc: number?band_4_profit_usd: number?band_5_loss: number?band_5_loss_btc: number?band_5_loss_usd: number?band_5_net: number?band_5_net_btc: number?band_5_net_usd: number?band_5_profit: number?band_5_profit_btc: number?band_5_profit_usd: number?band_6_loss: number?band_6_loss_btc: number?band_6_loss_usd: number?band_6_net: number?band_6_net_btc: number?band_6_net_usd: number?band_6_profit: number?band_6_profit_btc: number?band_6_profit_usd: number?band_7_loss: number?band_7_loss_btc: number?band_7_loss_usd: number?band_7_net: number?band_7_net_btc: number?band_7_net_usd: number?band_7_profit: number?band_7_profit_btc: number?band_7_profit_usd: number?band_8_loss: number?band_8_loss_btc: number?band_8_loss_usd: number?band_8_net: number?band_8_net_btc: number?band_8_net_usd: number?band_8_profit: number?band_8_profit_btc: number?band_8_profit_usd: number?band_9_loss: number?band_9_loss_btc: number?band_9_loss_usd: number?band_9_net: number?band_9_net_btc: number?band_9_net_usd: number?band_9_profit: number?band_9_profit_btc: number?band_9_profit_usd: number?block_height: number?btc_price: number?date: string?formattedDate: string?rpl_d1_1w: number?rpl_lt_1d: number?rpl_m1_3m: number?rpl_m3_6m: number?rpl_m6_12m: number?rpl_w1_1m: number?rpl_y1_2y: number?rpl_y10_plus: number?rpl_y2_3y: number?rpl_y3_5y: number?rpl_y5_7y: number?rpl_y7_10y: number?timestamp: integer?ledger_index: number?lth_realized_loss_btc: number?lth_realized_loss_usd: number?lth_realized_profit_btc: number?lth_realized_profit_usd: number?price: number?realized_pl_10y_plus: number?realized_pl_1d_1w: number?realized_pl_1m_3m: number?realized_pl_1w_1m: number?realized_pl_1y_2y: number?realized_pl_24h: number?realized_pl_2y_3y: number?realized_pl_3m_6m: number?realized_pl_3y_5y: number?realized_pl_5y_7y: number?realized_pl_6m_12m: number?realized_pl_7y_10y: number?sth_realized_loss_btc: number?sth_realized_loss_usd: number?sth_realized_profit_btc: number?sth_realized_profit_usd: number?rpl_y5_plus: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-profit-volatility-ratiopro

Track Long-Term Holder Profit-to-Volatility Ratio - measures LTH unrealized profits/losses normalized by market cap volatility to identify distribution phases and major market cycle turning points

Chart Datasets
GET /api/v1/charts/lth-profit-volatility-ratioTry in Playground

Response fields

block_height: number?btc_price: number?cumulative_std_dev: number?date: string?formattedDate: string?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_profit_volatility_ratio: number?lth_pvr: number?lth_pvr_price_mean: number?lth_pvr_price_minus_half_sigma: number?lth_pvr_price_minus_quarter_sigma: number?lth_pvr_price_minus_three_quarters_sigma: number?lth_pvr_price_plus_1sigma: number?lth_pvr_price_plus_2half_sigma: number?lth_pvr_price_plus_half_sigma: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?lth_upd_plus_2sigma_price: number?price: number?price_at_pvr_mean: number?price_at_pvr_minus_half_sigma: number?price_at_pvr_minus_quarter_sigma: number?price_at_pvr_minus_three_quarters_sigma: number?price_at_pvr_plus_1sigma: number?price_at_pvr_plus_2half_sigma: number?price_at_pvr_plus_2sigma: number?price_at_pvr_plus_half_sigma: number?profit_volatility_ratio: number?profit_volatility_ratio_4yr: number?pvr_4year_average: number?pvr_4year_minus_sigma: number?pvr_4year_plus_sigma: number?pvr_alltime_average: number?pvr_alltime_minus_sigma: number?pvr_alltime_plus_sigma: number?pvr_alltime_plus_sigma_2: number?pvr_mean: number?pvr_minus_half_sigma: number?pvr_minus_quarter_sigma: number?pvr_minus_three_quarters_sigma: number?pvr_plus_1sigma: number?pvr_plus_2half_sigma: number?pvr_plus_2sigma: number?pvr_plus_half_sigma: number?timestamp: integer?zero_line: number?active_cap: number?active_mvrv: number?active_realized_price: number?active_supply_btc: number?aviv_nupl: number?aviv_ratio: number?block_count: number?blocks: number?btc_in_loss: number?btc_in_profit: number?circulating_supply_btc: number?coinbase_rewards_btc: number?cointime_price: number?cumulative_investor_cap: number?daily_blocks: number?fees_btc: number?investor_cap: number?investor_cap_usd: number?investor_to_mcap_ratio: number?last_height: number?liveliness: number?market_cap: number?market_cap_usd: number?mvrv: number?mvrv_ratio: number?net_realized_pl_usd: number?nupl: number?percent_btc_in_loss: number?percent_btc_in_profit: number?realized_cap: number?realized_cap_created: number?realized_cap_destroyed: number?realized_cap_net: number?realized_cap_usd: number?realized_price: number?rpl_ratio: number?spent_outputs: number?supply_btc: number?supply_in_loss_btc: number?supply_in_loss_percent: number?supply_in_profit_btc: number?supply_in_profit_percent: number?thermocap: number?total_fees_btc: number?true_market_mean: number?true_market_mean_price: number?tx_count: number?utxos_created: number?utxos_spent: number?value_days_destroyed_usd: number?vaulted_price: number?vaulted_supply_btc: number?vaultedness: number?vdd_usd: number?z_score: number?price_volatility_30d: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-pvr-momentumpro

Track momentum shifts in Long-Term Holder Profit-to-Volatility Ratio by comparing current LTH PVR against its moving average to identify accelerating profit-taking or deepening accumulation phases

Chart Datasets
GET /api/v1/charts/lth-pvr-momentumTry in Playground

Response fields

block_height: number?btc_price: number?cumulative_std_dev: number?date: string?formattedDate: string?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_profit_volatility_ratio: number?lth_pvr: number?lth_pvr_price_mean: number?lth_pvr_price_minus_half_sigma: number?lth_pvr_price_minus_quarter_sigma: number?lth_pvr_price_minus_three_quarters_sigma: number?lth_pvr_price_plus_1sigma: number?lth_pvr_price_plus_2half_sigma: number?lth_pvr_price_plus_half_sigma: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?lth_upd_plus_2sigma_price: number?price: number?price_at_pvr_mean: number?price_at_pvr_minus_half_sigma: number?price_at_pvr_minus_quarter_sigma: number?price_at_pvr_minus_three_quarters_sigma: number?price_at_pvr_plus_1sigma: number?price_at_pvr_plus_2half_sigma: number?price_at_pvr_plus_2sigma: number?price_at_pvr_plus_half_sigma: number?profit_volatility_ratio: number?profit_volatility_ratio_4yr: number?pvr_4year_average: number?pvr_4year_minus_sigma: number?pvr_4year_plus_sigma: number?pvr_alltime_average: number?pvr_alltime_minus_sigma: number?pvr_alltime_plus_sigma: number?pvr_alltime_plus_sigma_2: number?pvr_mean: number?pvr_minus_half_sigma: number?pvr_minus_quarter_sigma: number?pvr_minus_three_quarters_sigma: number?pvr_plus_1sigma: number?pvr_plus_2half_sigma: number?pvr_plus_2sigma: number?pvr_plus_half_sigma: number?timestamp: integer?zero_line: number?active_cap: number?active_mvrv: number?active_realized_price: number?active_supply_btc: number?aviv_nupl: number?aviv_ratio: number?block_count: number?blocks: number?btc_in_loss: number?btc_in_profit: number?circulating_supply_btc: number?coinbase_rewards_btc: number?cointime_price: number?cumulative_investor_cap: number?daily_blocks: number?fees_btc: number?investor_cap: number?investor_cap_usd: number?investor_to_mcap_ratio: number?last_height: number?liveliness: number?market_cap: number?market_cap_usd: number?mvrv: number?mvrv_ratio: number?net_realized_pl_usd: number?nupl: number?percent_btc_in_loss: number?percent_btc_in_profit: number?realized_cap: number?realized_cap_created: number?realized_cap_destroyed: number?realized_cap_net: number?realized_cap_usd: number?realized_price: number?rpl_ratio: number?spent_outputs: number?supply_btc: number?supply_in_loss_btc: number?supply_in_loss_percent: number?supply_in_profit_btc: number?supply_in_profit_percent: number?thermocap: number?total_fees_btc: number?true_market_mean: number?true_market_mean_price: number?tx_count: number?utxos_created: number?utxos_spent: number?value_days_destroyed_usd: number?vaulted_price: number?vaulted_supply_btc: number?vaultedness: number?vdd_usd: number?z_score: number?price_volatility_30d: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-pvr-stat-bandspro

Visualize Long-Term Holder Profit-to-Volatility Ratio with statistical bands overlaid on both PVR values and corresponding Bitcoin price levels to identify support/resistance zones

Chart Datasets
GET /api/v1/charts/lth-pvr-stat-bandsTry in Playground

Response fields

block_height: number?btc_price: number?cumulative_std_dev: number?date: string?formattedDate: string?lth_cost_basis: number?lth_cost_basis_usd: number?lth_mvrv: number?lth_profit_volatility_ratio: number?lth_pvr: number?lth_pvr_price_mean: number?lth_pvr_price_minus_half_sigma: number?lth_pvr_price_minus_quarter_sigma: number?lth_pvr_price_minus_three_quarters_sigma: number?lth_pvr_price_plus_1sigma: number?lth_pvr_price_plus_2half_sigma: number?lth_pvr_price_plus_half_sigma: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?lth_upd_plus_2sigma_price: number?price: number?price_at_pvr_mean: number?price_at_pvr_minus_half_sigma: number?price_at_pvr_minus_quarter_sigma: number?price_at_pvr_minus_three_quarters_sigma: number?price_at_pvr_plus_1sigma: number?price_at_pvr_plus_2half_sigma: number?price_at_pvr_plus_2sigma: number?price_at_pvr_plus_half_sigma: number?profit_volatility_ratio: number?profit_volatility_ratio_4yr: number?pvr_4year_average: number?pvr_4year_minus_sigma: number?pvr_4year_plus_sigma: number?pvr_alltime_average: number?pvr_alltime_minus_sigma: number?pvr_alltime_plus_sigma: number?pvr_alltime_plus_sigma_2: number?pvr_mean: number?pvr_minus_half_sigma: number?pvr_minus_quarter_sigma: number?pvr_minus_three_quarters_sigma: number?pvr_plus_1sigma: number?pvr_plus_2half_sigma: number?pvr_plus_2sigma: number?pvr_plus_half_sigma: number?timestamp: integer?zero_line: number?active_cap: number?active_mvrv: number?active_realized_price: number?active_supply_btc: number?aviv_nupl: number?aviv_ratio: number?block_count: number?blocks: number?btc_in_loss: number?btc_in_profit: number?circulating_supply_btc: number?coinbase_rewards_btc: number?cointime_price: number?cumulative_investor_cap: number?daily_blocks: number?fees_btc: number?investor_cap: number?investor_cap_usd: number?investor_to_mcap_ratio: number?last_height: number?liveliness: number?market_cap: number?market_cap_usd: number?mvrv: number?mvrv_ratio: number?net_realized_pl_usd: number?nupl: number?percent_btc_in_loss: number?percent_btc_in_profit: number?realized_cap: number?realized_cap_created: number?realized_cap_destroyed: number?realized_cap_net: number?realized_cap_usd: number?realized_price: number?rpl_ratio: number?spent_outputs: number?supply_btc: number?supply_in_loss_btc: number?supply_in_loss_percent: number?supply_in_profit_btc: number?supply_in_profit_percent: number?thermocap: number?total_fees_btc: number?true_market_mean: number?true_market_mean_price: number?tx_count: number?utxos_created: number?utxos_spent: number?value_days_destroyed_usd: number?vaulted_price: number?vaulted_supply_btc: number?vaultedness: number?vdd_usd: number?z_score: number?price_volatility_30d: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-realized-pl-ratiopro

The LTH Realized P/L Ratio shows the ratio between long-term holder realized profit and loss. Provides insight into macro trends, market sentiment shifts, and directional dominance of value flows. Includes LTH-SOPR comparison for per-output analysis.

Chart Datasets
GET /api/v1/charts/lth-realized-pl-ratioTry in Playground

Response fields

<1d_loss_usd: number?<1d_profit_usd: number?10y+_loss_usd: number?10y+_profit_usd: number?1d-1w_loss_usd: number?1d-1w_profit_usd: number?1m-3m_loss_usd: number?1m-3m_profit_usd: number?1w-1m_loss_usd: number?1w-1m_profit_usd: number?1y-2y_loss_usd: number?1y-2y_profit_usd: number?2y-3y_loss_usd: number?2y-3y_profit_usd: number?3m-6m_loss_usd: number?3m-6m_profit_usd: number?3y-5y_loss_usd: number?3y-5y_profit_usd: number?5y-7y_loss_usd: number?5y-7y_profit_usd: number?6m-1y_loss_usd: number?6m-1y_profit_usd: number?7y-10y_loss_usd: number?7y-10y_profit_usd: number?band_0_loss_btc: number?band_0_loss_usd: number?band_0_net_btc: number?band_0_net_usd: number?band_0_profit_btc: number?band_0_profit_usd: number?band_1_loss_btc: number?band_1_loss_usd: number?band_1_net_btc: number?band_1_net_usd: number?band_1_profit_btc: number?band_1_profit_usd: number?band_10_loss_btc: number?band_10_loss_usd: number?band_10_net_btc: number?band_10_net_usd: number?band_10_profit_btc: number?band_10_profit_usd: number?band_11_loss_btc: number?band_11_loss_usd: number?band_11_net_btc: number?band_11_net_usd: number?band_11_profit_btc: number?band_11_profit_usd: number?band_2_loss_btc: number?band_2_loss_usd: number?band_2_net_btc: number?band_2_net_usd: number?band_2_profit_btc: number?band_2_profit_usd: number?band_3_loss_btc: number?band_3_loss_usd: number?band_3_net_btc: number?band_3_net_usd: number?band_3_profit_btc: number?band_3_profit_usd: number?band_4_loss_btc: number?band_4_loss_usd: number?band_4_net_btc: number?band_4_net_usd: number?band_4_profit_btc: number?band_4_profit_usd: number?band_5_loss_btc: number?band_5_loss_usd: number?band_5_net_btc: number?band_5_net_usd: number?band_5_profit_btc: number?band_5_profit_usd: number?band_6_loss_btc: number?band_6_loss_usd: number?band_6_net_btc: number?band_6_net_usd: number?band_6_profit_btc: number?band_6_profit_usd: number?band_7_loss_btc: number?band_7_loss_usd: number?band_7_net_btc: number?band_7_net_usd: number?band_7_profit_btc: number?band_7_profit_usd: number?band_8_loss_btc: number?band_8_loss_usd: number?band_8_net_btc: number?band_8_net_usd: number?band_8_profit_btc: number?band_8_profit_usd: number?band_9_loss_btc: number?band_9_loss_usd: number?band_9_net_btc: number?band_9_net_usd: number?band_9_profit_btc: number?band_9_profit_usd: number?block_height: number?btc_price: number?date: string?formattedDate: string?lth_pl_ratio: number?lth_realized_loss: number?lth_realized_profit: number?price: number?timestamp: integer?ledger_index: number?lth_realized_loss_btc: number?lth_realized_loss_usd: number?lth_realized_pl_ratio: number?lth_realized_profit_btc: number?lth_realized_profit_usd: number?lth_cost_basis_usd: number?lth_realized_pl_ratio_btc: number?lth_realized_pl_ratio_sma_30: number?lth_realized_pl_ratio_sma_90: number?lth_realized_pl_ratio_usd: number?lth_realized_price: number?lth_supply: number?lth_supply_btc: number?ratio: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-realized-pl-ratio-momentumpro

The LTH Realized P/L Ratio Momentum chart compares the current long-term holder profit/loss ratio against its configurable moving average. Features binary momentum oscillator, smoothing options, and unit toggle (USD/BTC) to identify LTH behavior shifts and market cycle transitions.

Chart Datasets
GET /api/v1/charts/lth-realized-pl-ratio-momentumTry in Playground

Response fields

age_bands: number?block_height: number?btc_price: number?date: string?formattedDate: string?lth_pl_ratio: number?lth_realized_loss_usd: number?lth_realized_pl: number?lth_realized_pl_ratio: number?lth_realized_pl_ratio_sma_30: number?lth_realized_pl_ratio_sma_90: number?lth_realized_profit_usd: number?lth_rpl_momentum: number?lth_rpl_sma_30: number?lth_rpl_sma_365: number?price: number?timestamp: integer?ledger_index: number?lth_realized_pl_ratio_momentum: number?realized_pl_ratio: number?realized_pl_ratio_btc: number?rpl_ratio_momentum: number?rpl_ratio_momentum_btc: number?rpl_ratio_sma_30: number?rpl_ratio_sma_30_btc: number?rpl_ratio_sma_365: number?rpl_ratio_sma_365_btc: number?lth_momentum_negative_area: number?lth_momentum_positive_area: number?lth_pl_ratio_btc: number?lth_pl_ratio_sma: number?lth_realized_pl_ratio_btc: number?lth_realized_pl_ratio_usd: number?momentum: number?realized_pl_ratio_usd: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-soprpro

Track profit/loss realization behavior of long-term holders (≥155 days). Long Term Holder SOPR (LTH-SOPR) measures the profit ratio when coins held for 155+ days are moved, providing insights into veteran holder behavior and macro market cycles.

Chart Datasets
GET /api/v1/charts/lth-soprTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_percentage: number?lth_sopr: number?lth_supply_btc: number?price: number?sopr: number?timestamp: integer?ledger_index: number?lth_sopr_momentum_negative: number?lth_sopr_momentum_positive: number?lth_sopr_sma: number?lth_sopr_sma_90: number?spent_outputs: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.
lth-sopr-momentumpro

Analyze Bitcoin Long-Term Holder SOPR momentum by comparing current profit/loss ratios against moving average, with binary oscillator to identify distribution patterns and major cycle transitions by experienced holders

Chart Datasets
GET /api/v1/charts/lth-sopr-momentumTry in Playground

Response fields

block_height: number?btc_price: number?date: string?formattedDate: string?lth_sopr: number?lth_sopr_sma_30: number?lth_sopr_sma_90: number?lth_supply_btc: number?price: number?sopr: number?timestamp: integer?ledger_index: number?lth_sopr_momentum: number?lth_sopr_momentum_30d: number?lth_sopr_momentum_90d: number?lth_sopr_momentum_negative: number?lth_sopr_momentum_positive: number?lth_sopr_sma: number?lth_sopr_sma_365: number?momentum: number?spent_outputs: number?z_score: number?

Query parameters

NameTypeDescription
daysintegerNumber of recent calendar days to return.
limitintegerMaximum number of rows to return.
startDatedateInclusive start date in YYYY-MM-DD format.
endDatedateInclusive end date in YYYY-MM-DD format.
formatstringResponse serialization format.
chainstringChain or asset identifier.
dataResolutionstringRequested on-chain data resolution, when the metric advertises it in /api/onchain/manifest. Daily (1d) is the default; block and sub-day resolutions are served from the same metric endpoint.
timeframestringRequested chart timeframe.