API for On-Demand Crypto and Prediction Market Metrics via x402

DripMetrics AI

DripMetrics provides on-demand crypto market microstructure metrics and prediction-market diagnostics for agentic or algorithmic workflows. Query exchange markets under /metrics/*, portfolio risk under /metrics/portfolio/var, Hyperliquid candle metrics under /hyperliquid/*, Polymarket markets under /polymarket/*, or on-chain metrics under /metrics/onchain/*. Pay per request using x402 instead of buying a full data platform subscription.

Exchange metrics support 30m and 1h windows with 30m as the default. BTC cache-backed metrics also support 2h and 3h when enough live BTC history is retained. Polymarket diagnostics use windowMinutes with a default of 60. Hyperliquid uses public 1m candles. On-chain metrics use public DefiLlama data. Portfolio VaR uses daily historical prices and accepts POST JSON. Price: $0.05 per request.
Contact: drip@dripmetrics.ai. Email us for refunds on failed metrics, even if the failure came from an invalid or nonexistent market request. You can also send product ideas, venue requests, and general feedback.

Built for fast, machine-consumable market intelligence.

On-demand metrics

Pull exchange metrics or Polymarket diagnostics only when you need them.

Simple JSON

Responses are structured for agents, dashboards, and automation.

Per-request pricing

Pay for the exact metric calls you use instead of a platform seat.

Prediction-market diagnostics

Use public Polymarket trades and price history without standing up a stream.

Hyperliquid candles

Use public Hyperliquid candle snapshots for venue-specific volatility, momentum, and drawdown metrics.

On-chain metrics

Use public DefiLlama data for stablecoin flow, TVL, fee yield, and DEX efficiency signals.

Portfolio risk

Submit weighted or quantity-based crypto portfolios and receive VaR, expected shortfall, and component risk.

Refunds, ideas, and feedback

Refunds for failed metrics

If you paid for a metric that failed, email us and we will review it for a refund, including cases where the request targeted a nonexistent market or bad identifier.

Tell us what to add

Send ideas for new metrics, new venues, workflow improvements, and general API feedback.

Available signals

Hyperliquid candle metrics

Hyperliquid phase 1 uses public 1m candle snapshots and now checks that a finite candle-derived metric can be served before x402 payment. Invalid markets or empty candle responses return before payment. Use pair as the preferred query parameter; coin is accepted as a compatibility alias. HIP-3 or dex-prefixed markets can require identifiers such as xyz:SPCX. beta compares the target against a benchmark such as xyz:SP500 using overlapping 1-minute candles. Trade-flow metrics such as cvd, vwap, vpin, and kyle-lambda are not currently exposed for Hyperliquid on this branch.

DefiLlama-sourced metrics

On-chain endpoints use DefiLlama as the only v1 source. DripMetrics validates query parameters and checks that a finite metric can be computed before x402 payment is requested. Invalid requests return 400; insufficient DefiLlama history returns 422 metric_not_computable.

Portfolio Value-at-Risk

Portfolio VaR is a POST /metrics/portfolio/var endpoint with a JSON body. DripMetrics validates the portfolio, fetches and aligns daily price history, checks data sufficiency, and computes the full response before requesting x402 payment. Invalid inputs, unsupported assets, price-fetch failures, or insufficient history return before payment.

Polymarket diagnostics

Polymarket endpoints pull public trades and price history per request. They check that a numeric diagnostic can be served before x402 payment is requested. Trade-based endpoints accept slug or conditionId. Price-based endpoints accept tokenId/assetId or slug + outcome. Event slugs are supported; if an event contains multiple markets, add conditionId to disambiguate. In practice, many Polymarket requests work best when you supply both slug and conditionId.

Supported venues

  • BTC cache: BTCUSDT with 30m, 1h, 2h, and 3h windows when retained history is available
  • Binance: BTCUSDT, ETHUSDT, SOLUSDT
  • Coinbase: BTC-USD, ETH-USD, SOL-USD
  • Hyperliquid: paid candle metrics under /hyperliquid/*
  • Polymarket: paid diagnostics under /polymarket/* using public trades and price history
  • DefiLlama: paid on-chain metrics under /metrics/onchain/*
  • Portfolio VaR: paid portfolio risk endpoint under /metrics/portfolio/var

Simple API surface

  • GET /
  • GET /health
  • GET /catalog
  • GET /metrics/:metricName
  • GET /metrics/onchain/:metricName
  • POST /metrics/portfolio/var
  • GET /hyperliquid/:metricName
  • GET /polymarket/:metricName

API requests

Catalog
curl "https://api.dripmetrics.ai/catalog"
Kyle's Lambda
curl "https://api.dripmetrics.ai/metrics/kyle-lambda?pair=SOL-USD"
Roll Spread
curl "https://api.dripmetrics.ai/metrics/roll-spread?exchange=coinbase&pair=ETH-USD"
BTC VPIN 2h
curl "https://api.dripmetrics.ai/metrics/vpin?pair=BTCUSDT&window=2h"
Hyperliquid Historical Volatility
curl "https://api.dripmetrics.ai/hyperliquid/historical-volatility?pair=BTC&window=30m"
Hyperliquid Momentum
curl "https://api.dripmetrics.ai/hyperliquid/momentum?coin=ETH&window=1h"
Hyperliquid Realized Vol
curl "https://api.dripmetrics.ai/hyperliquid/realized-vol?pair=HYPE&window=30m"
Hyperliquid Reversal
curl "https://api.dripmetrics.ai/hyperliquid/reversal?pair=SOL&window=30m"
Hyperliquid Drawdown
curl "https://api.dripmetrics.ai/hyperliquid/drawdown?pair=BTC&window=1h"
Hyperliquid Downside Semivolatility
curl "https://api.dripmetrics.ai/hyperliquid/downside-semivolatility?pair=ETH&window=1h"
Hyperliquid Vol of Vol
curl "https://api.dripmetrics.ai/hyperliquid/vol-of-vol?pair=HYPE&window=30m"
Hyperliquid HIP-3 Market
curl "https://api.dripmetrics.ai/hyperliquid/momentum?coin=xyz:SPCX&window=1h"
Hyperliquid Beta
curl "https://api.dripmetrics.ai/hyperliquid/beta?coin=xyz:SPCX&benchmark=xyz:SP500&window=1h"
Onchain Stablecoin Flow
curl "https://api.dripmetrics.ai/metrics/onchain/stablecoin-flow?chain=base&window=7d"
Onchain TVL Momentum
curl "https://api.dripmetrics.ai/metrics/onchain/tvl-momentum?chain=base&window=30d"
Onchain Protocol Fee Yield
curl "https://api.dripmetrics.ai/metrics/onchain/protocol-fee-yield?protocol=uniswap&window=30d"
Onchain DEX Efficiency
curl "https://api.dripmetrics.ai/metrics/onchain/dex-efficiency?protocol=uniswap&window=30d"
Portfolio VaR with Weights
curl -X POST "https://api.dripmetrics.ai/metrics/portfolio/var" \
  -H "Content-Type: application/json" \
  -d '{
    "assets": ["BTC", "ETH", "SOL"],
    "weights": [0.5, 0.3, 0.2],
    "portfolioValueUsd": 100000,
    "window": "180d",
    "confidence": 0.95,
    "horizon": "1d",
    "methods": "both"
  }'
Portfolio VaR with Quantities
curl -X POST "https://api.dripmetrics.ai/metrics/portfolio/var" \
  -H "Content-Type: application/json" \
  -d '{
    "assets": ["BTC", "ETH"],
    "quantities": [0.75, 8],
    "window": "180d",
    "confidence": 0.99,
    "horizon": "1d",
    "methods": "both"
  }'
7-Day Normal Portfolio VaR
curl -X POST "https://api.dripmetrics.ai/metrics/portfolio/var" \
  -H "Content-Type: application/json" \
  -d '{
    "assets": ["BTC", "ETH", "SOL"],
    "weights": [0.5, 0.3, 0.2],
    "portfolioValueUsd": 100000,
    "window": "180d",
    "confidence": 0.95,
    "horizon": "7d",
    "methods": "both"
  }'
Polymarket VPIN
curl "https://api.dripmetrics.ai/polymarket/vpin?slug=fed-decision-in-october&windowMinutes=60&limit=500"
Polymarket Kyle Lambda
curl "https://api.dripmetrics.ai/polymarket/kyle-lambda?slug=fed-decision-in-october&outcome=YES&windowMinutes=60&limit=500"
Polymarket Flow Imbalance
curl "https://api.dripmetrics.ai/polymarket/flow-imbalance?slug=fed-decision-in-october&windowMinutes=60&limit=500"
Polymarket Probability Shock
curl "https://api.dripmetrics.ai/polymarket/probability-shock?slug=fed-decision-in-october&outcome=YES&windowMinutes=60&lookbackMinutes=1440"
Polymarket Leakage Score
curl "https://api.dripmetrics.ai/polymarket/leakage-score?slug=fed-decision-in-october&outcome=YES&windowMinutes=60&limit=1000"

Paid endpoints are intended for an x402-aware client that can satisfy payment requirements and retry with the required payment headers. Hyperliquid examples expect Hyperliquid coin naming such as BTC for perps and xyz:SPCX-style names for some HIP-3 or dex-prefixed markets. Use pair as the preferred argument name; coin is accepted as an alias. Hyperliquid examples are candle-based only on this branch. On-chain examples use DefiLlama identifiers such as base and uniswap; unsupported or sparse DefiLlama history returns before payment is requested. Portfolio VaR examples use POST with JSON bodies. Use either decimal weights plus portfolioValueUsd, or token quantities. The API validates and computes the VaR response before requesting payment. Polymarket example markets may stop trading, resolve, or move over time, so some sample URLs can go stale and require updated slugs, condition IDs, or token IDs.

Exchange metric response structure

Endpoints under /metrics/* share the same top-level JSON shape. The only metric-specific part of the payload is components. DripMetrics checks that a finite metric can be served before requesting x402 payment.

metric

Metric name requested, such as vpin or vwap.

pair

Trading pair used in the query, such as BTC-USD.

exchange

Exchange source for the trades used to compute the metric.

window

Aggregation window used for the calculation. Exchange metrics support 30m and 1h; BTC cache-backed metrics also support 2h and 3h when enough live history is retained.

value

The primary numeric output of the metric.

components

Metric-specific breakdown fields that help explain or support value.

computedAt

ISO timestamp showing when the metric response was generated.

tradeCount

Total number of trades used in the computation window.

firstTradeTime

ISO timestamp for the earliest trade included in the calculation.

lastTradeTime

ISO timestamp for the latest trade included in the calculation.

coverage

Requested versus effective trade-window coverage, including whether the exchange fetch was partial and whether the metric was served from a truncated sample.

Generic Metric Response
{
  "metric": "vpin",
  "pair": "BTC-USD",
  "exchange": "coinbase",
  "window": "30m",
  "value": 0.43218751,
  "components": {
    "exampleField": 123.45
  },
  "computedAt": "2026-05-08T14:30:00.000Z",
  "tradeCount": 1842,
  "firstTradeTime": "2026-05-08T14:00:01.000Z",
  "lastTradeTime": "2026-05-08T14:29:59.000Z",
  "coverage": {
    "requestedWindowMinutes": 30,
    "effectiveWindowMinutes": 30,
    "coverageRatio": 1,
    "partialData": false,
    "completeFetch": true,
    "errorMessage": null
  }
}

This envelope applies to exchange metrics under /metrics/*. If the metric cannot be computed, no x402 payment is requested. If an exchange fetch fails after at least 50 trades have already been collected, DripMetrics serves the metric from that partial sample and reports the actual observed coverage here. Hyperliquid and Polymarket routes use separate response structures.

Hyperliquid response structure

Endpoints under /hyperliquid/* return a venue-specific JSON envelope built around the requested market, window, sample size, upstream source, and observed candle bounds.

metric

Requested Hyperliquid metric name.

pair

Hyperliquid market identifier, such as BTC for a perp.

benchmark

Optional benchmark market identifier returned by hyperliquid/beta.

window

Requested lookback window, currently 30m or 1h.

interval

Underlying candle interval, currently fixed at 1m for candle-based phase 1 metrics.

value

Primary numeric output for the selected metric.

components

Metric-specific breakdown fields such as interval counts, returns, or rolling-window diagnostics.

sampleSize

Number of candles used for the computation.

source

Upstream Hyperliquid endpoint used for the response.

firstCandleTime / lastCandleTime

Observed bounds of the candle sample used for the response.

Hyperliquid Response
{
  "metric": "momentum",
  "pair": "xyz:SPCX",
  "window": "30m",
  "interval": "1m",
  "value": 0.004183,
  "components": {
    "simpleReturn": 0.004192,
    "firstPrice": 162.71,
    "lastPrice": 163.39
  },
  "sampleSize": {
    "candles": 30
  },
  "source": {
    "candles": "https://api.hyperliquid.xyz/info"
  },
  "computedAt": "2026-06-11T00:00:00.000Z",
  "firstCandleTime": "2026-06-10T23:30:00.000Z",
  "lastCandleTime": "2026-06-10T23:59:59.999Z"
}

Hyperliquid metrics on this branch are computed from public candle snapshots per request with a free preflight before x402 payment. They do not use a persistent cache or a background stream.

Polymarket response structure

Endpoints under /polymarket/* return a venue-specific JSON envelope built around market identifiers, request window metadata, sample sizes, and upstream data sources. DripMetrics returns 422 metric_not_computable before payment when the required public data cannot produce a numeric diagnostic.

metric

Polymarket diagnostic name, such as vpin, kyle-lambda, or leakage-score.

conditionId

Polymarket condition id for the market when the request is tied to a specific market contract.

slug

Human-readable Polymarket market or event slug when the request used slug-based resolution.

tokenId / assetId

Polymarket token identifier used for price-history-based diagnostics.

outcome

Selected token side for token-aware Polymarket diagnostics, currently YES or NO.

window

Request window metadata including windowMinutes and, when relevant, startTs, endTs, lookbackMinutes, or newsTs.

value

The primary numeric output of the diagnostic.

components

Diagnostic-specific breakdown fields such as YES/NO volume, wallet concentration, or pre-news movement.

sampleSize

Counts of trades, wallets, price points, and scanned trades used for the computation.

source

Upstream Polymarket endpoints used for the response, such as public trades or price history.

computedAt

ISO timestamp showing when the response was generated.

Polymarket Response
{
  "metric": "flow-imbalance",
  "slug": "fed-decision-in-october",
  "conditionId": "0xdd22472e552920b8438158ea7238bfadfa4f736aa4cee91a6b86c39ead110917",
  "window": {
    "windowMinutes": 60,
    "startTs": 1700000000000,
    "endTs": 1700003600000
  },
  "value": 0.134228,
  "components": {
    "imbalance": 0.134228,
    "yesVolume": 84.5,
    "noVolume": 64.5,
    "totalVolume": 149,
    "tradeCount": 4
  },
  "sampleSize": {
    "trades": 4,
    "scannedTrades": 4
  },
  "source": {
    "market": "https://gamma-api.polymarket.com/markets/slug/fed-decision-in-october",
    "trades": "https://data-api.polymarket.com/trades"
  },
  "computedAt": "2026-05-25T21:30:00.000Z"
}

Polymarket diagnostics are computed from public upstream data per request. Missing price history, empty trade windows, or invalid token-side selections return before x402 payment is requested. If you use a slug for price-history-based endpoints, include outcome=YES or outcome=NO.

On-chain response structure

Endpoints under /metrics/onchain/* return a DefiLlama-derived JSON envelope with the requested target, window, primary numeric value, unit, and metric-specific components. Chain-level tvl-momentum responses include native-token-adjusted TVL fields when a native asset mapping is available. DripMetrics checks that the metric is finite before requesting x402 payment.

metric

Requested on-chain metric name, such as stablecoin-flow or dex-efficiency.

chain

Chain identifier for chain-level metrics, such as base.

protocol

Protocol identifier for protocol-level metrics, such as uniswap.

targetType / target

Used when a metric can be requested by either chain or protocol.

window

Requested lookback window, currently 1d, 7d, 30d, or 90d depending on the metric.

value

Primary numeric output for the selected on-chain metric.

unit

Interpretation of value, such as pct_change or annualized_turnover.

components

Metric-specific DefiLlama-derived fields and observation counts.

Onchain Response
{
  "metric": "tvl-momentum",
  "targetType": "chain",
  "target": "base",
  "window": "30d",
  "value": 0.083,
  "unit": "pct_change",
  "components": {
    "currentTvlUsd": 5200000000,
    "startTvlUsd": 4801477378,
    "netTvlChangeUsd": 398522622,
    "pctChange": 0.083,
    "annualizedTvlGrowthPct": 1.009833,
    "momentum": "positive",
    "observations": 31,
    "nativeTvlAvailable": true,
    "nativeCurrency": "ETH",
    "currentNativePriceUsd": 3500,
    "startNativePriceUsd": 3200,
    "currentTvlNative": 1485714.285714,
    "startTvlNative": 1500461.680625,
    "nativeTvlMomentumPct": -0.009828,
    "annualizedNativeTvlGrowthPct": -0.119574,
    "source": "DefiLlama"
  },
  "computedAt": "2026-06-10T16:00:00.000Z"
}

On-chain endpoints do not use a database or background indexer in this v1 pass. They fetch public DefiLlama data per request and return before payment when the request is invalid or the available history cannot support the calculation.

Documented metrics

onchain/stablecoin-flow

Chain-level stablecoin supply growth or contraction from DefiLlama stablecoin supply history.

value is percentage change in stablecoin supply over the requested window. Supported windows are 1d, 7d, 30d, and 90d.

onchain/tvl-momentum

Chain or protocol TVL growth momentum from DefiLlama TVL history, with native-token-adjusted fields for chain requests.

Supply exactly one of chain or protocol. value is USD-denominated percentage TVL change over the requested window. For chain-level requests, components.nativeTvlMomentumPct adjusts TVL by the chain native token price, which helps separate actual liquidity growth from native-token price movement.

onchain/protocol-fee-yield

Annualized protocol fees relative to average protocol TVL from DefiLlama fees and TVL history.

Supply protocol. value is annualized fee yield over a 7d, 30d, or 90d window.

onchain/dex-efficiency

Annualized DEX volume turnover relative to average TVL from DefiLlama DEX volume and TVL history.

Supply exactly one of chain or protocol. value is annualized turnover over a 7d, 30d, or 90d window.

portfolio/var

Portfolio Value-at-Risk from daily historical closes, with empirical VaR, normal VaR, expected shortfall, and component risk.

Submit POST /metrics/portfolio/var with JSON. Use either weights plus portfolioValueUsd, or token quantities. Supported windows are 90d and 180d. Empirical VaR is only available for a 1d horizon; multi-day requests return normal VaR using square-root-of-time scaling.

Portfolio VaR Response Fields
{
  "value": {
    "empiricalVaRUsd": 6200,
    "empiricalVaRPct": 0.062,
    "normalVaRUsd": 5100,
    "normalVaRPct": 0.051
  },
  "components": {
    "observations": 364,
    "meanDailyReturn": 0.0011,
    "dailyVolatility": 0.041,
    "empiricalExpectedShortfallUsd": 8500,
    "normalZScore": -1.64485,
    "returnType": "log"
  }
}

value

Primary VaR outputs in USD and percentage terms. Fields that do not apply are omitted.

components

Observation count, aligned date range, daily mean/volatility, z-score, price sources, and expected shortfall.

componentRisk

Normal covariance approximation showing each asset’s contribution to total normal VaR.

priceSourceByAsset

Shows the Coinbase Exchange daily-candle source used for each asset in the portfolio.

hyperliquid/historical-volatility

Annualized realized volatility from 1-minute Hyperliquid candle closes.

hyperliquid/realized-vol

Non-annualized realized volatility from 1-minute Hyperliquid candle closes.

hyperliquid/momentum

Window return from first candle open to last candle close.

hyperliquid/reversal

Signed opposite of Hyperliquid momentum.

hyperliquid/drawdown

Maximum peak-to-trough close loss within the candle path.

hyperliquid/downside-semivolatility

Downside-only volatility from negative 1-minute candle returns.

hyperliquid/vol-of-vol

Variability of short rolling realized volatility within the candle window.

hyperliquid/beta

Return sensitivity versus a benchmark market from overlapping 1-minute Hyperliquid candles.

Supply pair or coin for the target market. Optional benchmark defaults to xyz:SP500. The route preflights both candle series and returns before payment if there are not enough overlapping returns to compute a finite beta.

vpin

Volume-synchronized probability of informed trading.

value is the VPIN score for the requested window. Higher values indicate more imbalanced buy and sell flow across equal-volume buckets, which can suggest more informed or one-sided trading pressure.

Reference: Easley, López de Prado, and O’Hara (2012), who extended the logic behind PIN to Volume-Synchronized PIN (VPIN).

VPIN Components
{
  "components": {
    "buckets": 20,
    "bucketSize": 12.34,
    "meanImbalance": 1.82,
    "totalVolume": 617.0
  }
}

buckets

Number of equal-volume buckets that were fully formed for the VPIN calculation.

bucketSize

Target base-asset volume allocated to each bucket.

meanImbalance

Average absolute difference between buy volume and sell volume across buckets.

totalVolume

Total traded base volume used to compute the VPIN window.

kyle-lambda

Price impact per unit of signed order flow.

value is Kyle’s lambda, estimated here as the slope of the relationship between short-interval price changes and signed order flow. Higher absolute values indicate greater price impact per unit of net flow and therefore thinner liquidity.

Reference: Kyle (1985), which introduced lambda as a measure of market depth and price impact in continuous auctions.

Kyle-Lambda Components
{
  "components": {
    "alpha": 0.000001234567,
    "rSquared": 0.381204,
    "intervals": 29,
    "meanSignedOrderFlow": 4.287351,
    "lastPrice": 64218.55,
    "dollarsPer1Bp": 97580.21,
    "dollarsPer1Cent": 1524.88
  }
}

alpha

Regression intercept for the short-interval price-change model.

rSquared

Goodness-of-fit statistic indicating how much of the short-interval price variation is explained by signed order flow.

intervals

Number of time bins included in the regression.

meanSignedOrderFlow

Average buy volume minus sell volume across the sampled intervals.

lastPrice

Last observed trade price in the requested window.

dollarsPer1Bp

Approximate signed notional needed to move price by one basis point based on the estimated lambda.

dollarsPer1Cent

Approximate signed notional needed to move price by one cent based on the estimated lambda.

beta

Asset beta versus the exchange benchmark BTC pair.

value is the asset’s beta relative to the benchmark pair on the same exchange, computed from aligned short-interval returns. Values above 1 indicate the asset tends to move more than the benchmark, while values below 1 indicate lower relative sensitivity.

Beta Components
{
  "components": {
    "correlation": 0.842311,
    "intervals": 29
  }
}

correlation

Correlation between the asset return series and the benchmark return series over the aligned intervals.

intervals

Number of aligned time bins used to estimate beta.

order-flow-hhi

Concentration of signed order flow across short intervals.

value is the Herfindahl-Hirschman Index of absolute signed order flow across short time buckets. Higher values mean order flow is concentrated in fewer bursts, while lower values mean order flow is distributed more evenly across the window.

Order-Flow-HHI Components
{
  "components": {
    "intervals": 30,
    "nonZeroIntervals": 24,
    "totalAbsoluteSignedFlow": 418.273901,
    "effectiveIntervals": 7.612443,
    "maxShare": 0.284117
  }
}

intervals

Total number of time bins considered in the concentration calculation.

nonZeroIntervals

Number of intervals with non-zero absolute signed order flow.

totalAbsoluteSignedFlow

Sum of the absolute signed order flow across all intervals.

effectiveIntervals

Concentration-adjusted number of active intervals, calculated as 1 / HHI.

maxShare

Largest single-interval share of total absolute signed order flow.

historical-volatility

Annualized realized volatility from log returns.

value is the annualized standard deviation of short-interval log returns for the requested window.

Historical-Volatility Components
{
  "components": {
    "intervalVolatility": 0.00128431,
    "intervals": 29,
    "intervalsPerYear": 525600
  }
}

intervalVolatility

Standard deviation of the unannualized interval return series.

intervals

Number of return observations used in the estimate.

intervalsPerYear

Annualization factor implied by the interval size.

cvd

Cumulative signed trade volume.

value is net signed base volume over the window, with buys counted positively and sells negatively.

CVD Components
{
  "components": {
    "buyVolume": 412.81,
    "sellVolume": 388.22,
    "netDollarVolume": 1562404.55
  }
}

buyVolume

Total base volume classified as buyer-initiated.

sellVolume

Total base volume classified as seller-initiated.

netDollarVolume

Signed notional traded over the window.

buy-sell-volume-imbalance

Net buy versus sell volume as a normalized imbalance.

value is normalized net flow, computed as buy volume minus sell volume divided by total volume.

Buy-Sell-Volume-Imbalance Components
{
  "components": {
    "buyVolume": 412.81,
    "sellVolume": 388.22,
    "totalVolume": 801.03
  }
}

buyVolume

Total buyer-initiated base volume.

sellVolume

Total seller-initiated base volume.

totalVolume

Total traded base volume used for normalization.

signed-dollar-volume

Net signed notional traded over the window.

value is signed dollar flow across the window, where positive values indicate buy-side notional dominance.

Signed-Dollar-Volume Components
{
  "components": {
    "totalDollarVolume": 3248801.22,
    "normalizedImbalance": 0.04127319
  }
}

totalDollarVolume

Total unsigned traded notional across the window.

normalizedImbalance

Signed dollar volume divided by total dollar volume.

trade-intensity

Trade arrival rate over the observed window.

value is trades per minute based on the observed elapsed time between the first and last trade.

Trade-Intensity Components
{
  "components": {
    "tradeCount": 1842,
    "tradesPerSecond": 1.0214,
    "windowSeconds": 1802.4,
    "meanIntertradeSeconds": 0.9789
  }
}

tradeCount

Total trades used in the estimate.

tradesPerSecond

Observed trade arrival rate per second.

windowSeconds

Elapsed seconds between first and last trade.

meanIntertradeSeconds

Average gap between consecutive trades.

average-trade-size

Mean trade size over the observed window.

value is mean base-asset size per trade across the window.

Average-Trade-Size Components
{
  "components": {
    "averageDollarSize": 1763.41,
    "tradeCount": 1842
  }
}

averageDollarSize

Mean notional size per trade.

tradeCount

Total number of trades in the window.

large-trade-share

Share of activity attributable to the largest trades in the window.

value is the share of dollar volume contributed by trades at or above the 90th percentile of trade notional.

Large-Trade-Share Components
{
  "components": {
    "thresholdDollarSize": 9821.44,
    "largeTradeCount": 183,
    "totalTradeCount": 1842,
    "largeVolumeShare": 0.41421873
  }
}

thresholdDollarSize

Dollar-size cutoff used to define a large trade.

largeTradeCount

Number of trades at or above the threshold.

totalTradeCount

Total trades observed in the window.

largeVolumeShare

Share of base volume attributable to large trades.

realized-vol

Non-annualized realized volatility from intrawindow returns.

value is non-annualized realized volatility, computed as the square root of summed squared interval returns.

Realized-Vol Components
{
  "components": {
    "realizedVariance": 0.0001842314,
    "intervals": 29
  }
}

realizedVariance

Sum of squared interval log returns before taking the square root.

intervals

Number of interval returns used in the calculation.

amihud-illiquidity

Price move per unit of traded dollar volume.

value is the average ratio of absolute return to dollar volume across short intervals. Higher values indicate lower liquidity.

Amihud-Illiquidity Components
{
  "components": {
    "intervals": 28
  }
}

intervals

Number of valid intervals contributing to the average illiquidity estimate.

vwap

Volume-weighted average price.

value is the volume-weighted average execution price across all trades in the window.

VWAP Components
{
  "components": {
    "totalVolume": 801.03,
    "totalDollarVolume": 3248801.22
  }
}

totalVolume

Total traded base volume in the window.

totalDollarVolume

Total traded notional used to compute VWAP.

vwap-deviation

Distance between the latest trade price and VWAP.

value is the relative deviation of the last observed trade price from the window VWAP.

VWAP-Deviation Components
{
  "components": {
    "vwap": 64212.88,
    "lastPrice": 64218.55,
    "basisPoints": 0.8831
  }
}

vwap

Window VWAP used as the comparison baseline.

lastPrice

Latest trade price in the window.

basisPoints

Deviation from VWAP expressed in basis points.

momentum

Window return from first observed price to last observed price.

value is the log return from the first price in the window to the last price.

Momentum Components
{
  "components": {
    "simpleReturn": 0.01248173,
    "firstPrice": 63426.44,
    "lastPrice": 64218.55
  }
}

simpleReturn

Same move expressed as simple return instead of log return.

firstPrice

First observed trade price in the window.

lastPrice

Last observed trade price in the window.

reversal

Signed opposite of the window return.

value is the negative of window momentum, useful when a mean-reversion framing is preferred.

Reversal Components
{
  "components": {
    "momentum": 0.01240445,
    "simpleReversal": -0.01248173
  }
}

momentum

Underlying log-return momentum before sign inversion.

simpleReversal

Negative simple return over the same window.

drawdown

Maximum peak-to-trough loss observed within the window.

value is the largest percentage drop from a running peak price to a subsequent trough inside the window.

Drawdown Components
{
  "components": {
    "peakPrice": 64502.11,
    "troughPrice": 63874.92
  }
}

peakPrice

Highest price observed before the maximum drawdown event.

troughPrice

Lowest price reached during that drawdown.

downside-semivolatility

Volatility computed from only negative intrawindow returns.

value is the square root of average squared negative returns only, isolating downside variation.

Downside-Semivolatility Components
{
  "components": {
    "intervals": 29,
    "downsideIntervals": 11
  }
}

intervals

Total interval returns observed in the window.

downsideIntervals

Count of intervals with negative returns.

rolling-correlation

Correlation of returns versus the exchange benchmark BTC pair.

value is correlation between the asset return series and the benchmark return series over aligned intervals.

Rolling-Correlation Components
{
  "components": {
    "intervals": 29
  }
}

intervals

Number of aligned return intervals used in the correlation estimate.

vol-of-vol

Variability of short rolling volatility within the window.

value measures how unstable realized volatility is across overlapping rolling subwindows.

Vol-Of-Vol Components
{
  "components": {
    "rollingWindow": 5,
    "observations": 25,
    "meanRollingVol": 0.00841233
  }
}

rollingWindow

Number of interval returns in each rolling volatility estimate.

observations

Total rolling volatility observations produced.

meanRollingVol

Average of the rolling volatility estimates before dispersion is computed.

roll-spread

Absolute Roll spread proxy inferred from lagged price-change covariance.

value is the absolute Roll spread proxy, computed as 2 * sqrt(abs(covariance)). The response reports mode: "absolute" because positive covariance is treated as an absolute spread proxy rather than a strict Roll estimator.

Roll-Spread Components
{
  "components": {
    "covariance": 2.583251,
    "absoluteCovariance": 2.583251,
    "intervals": 30,
    "observations": 28,
    "mode": "absolute",
    "strictRollDefined": false,
    "interpretation": "absolute_covariance_proxy"
  }
}

covariance

Lagged covariance of successive interval price changes.

absoluteCovariance

Absolute value of the lagged covariance used for the default spread proxy.

intervals

Number of interval summaries built from the trade stream.

observations

Number of lagged price-change pairs used in the estimate.

mode

Estimator mode. The current default is absolute.

strictRollDefined

Whether the covariance was negative, which is the strict Roll-model condition.

interpretation

Labels the result as an absolute covariance proxy.

polymarket/vpin

VPIN-style flow toxicity using equal-notional buckets of inferred YES/NO pressure.

value measures how persistently one-sided inferred YES/NO pressure is after the requested flow is divided into equal-notional buckets. Higher values imply more toxic or imbalanced flow.

Polymarket VPIN Components
{
  "components": {
    "vpin": 0.92349,
    "buckets": 10,
    "configuredBuckets": 10,
    "bucketSize": 14.9,
    "meanImbalance": 13.76,
    "totalVolume": 149
  }
}

vpin

VPIN-style score computed from equal-notional buckets of inferred YES/NO pressure.

buckets

Number of complete notional buckets used in the estimate.

configuredBuckets

Target bucket count used to size each equal-notional bucket.

bucketSize

Notional allocated to each bucket.

meanImbalance

Average absolute YES-versus-NO imbalance across the completed buckets.

totalVolume

Total qualifying notional used to build the bucketed flow series.

polymarket/kyle-lambda

Kyle's Lambda-style price impact per unit of signed notional flow for a selected YES or NO outcome.

value estimates how strongly short-horizon price changes in the selected Polymarket token respond to signed notional flow for that same outcome side. Larger magnitudes imply more price impact per unit of flow.

Polymarket Kyle-Lambda Components
{
  "components": {
    "lambda": 0.00169347,
    "alpha": -0.01128977,
    "rSquared": 0.997935,
    "intervals": 3,
    "meanSignedFlow": 6.666667,
    "totalAbsoluteFlow": 29,
    "selectedOutcome": "YES",
    "lastPrice": 0.5
  }
}

lambda

Estimated price impact per unit of signed notional flow for the selected outcome.

alpha

Intercept term from the interval return versus signed-flow regression.

rSquared

Explained variance of interval returns under the fitted regression.

intervals

Number of interval observations used in the estimate.

meanSignedFlow

Average signed notional flow per interval for the selected outcome.

totalAbsoluteFlow

Total absolute signed notional across the regression intervals.

selectedOutcome

Outcome side used to interpret signed flow and choose the token price series.

lastPrice

Last observed price in the selected token series.

polymarket/flow-imbalance

Normalized YES-versus-NO trade pressure over the requested window.

value is normalized net trading pressure for a Polymarket market. Positive values indicate more YES-side pressure, while negative values indicate more NO-side pressure.

Flow-Imbalance Components
{
  "components": {
    "imbalance": 0.134228,
    "yesVolume": 84.5,
    "noVolume": 64.5,
    "totalVolume": 149,
    "tradeCount": 4
  }
}

imbalance

Normalized net pressure, computed from YES notional minus NO notional divided by total notional.

yesVolume

Total YES-side notional counted toward the requested window.

noVolume

Total NO-side notional counted toward the requested window.

totalVolume

Total notional used to normalize the imbalance.

tradeCount

Trades contributing usable pressure to the calculation.

polymarket/two-sidedness

How balanced YES-versus-NO trading is over the requested window.

value is highest when YES and NO flow are balanced and falls toward zero as one side dominates the market.

Two-Sidedness Components
{
  "components": {
    "twoSidedness": 0.865772,
    "yesVolume": 84.5,
    "noVolume": 64.5,
    "dominantOutcome": "YES"
  }
}

twoSidedness

Balance score derived from the absolute gap between YES and NO notional.

yesVolume

Total YES-side notional in the window.

noVolume

Total NO-side notional in the window.

dominantOutcome

Outcome with larger observed notional during the requested window.

polymarket/wallet-concentration

How concentrated recent Polymarket volume is across wallets.

value is an HHI-style concentration score over wallet notional shares. Higher values mean a smaller set of wallets dominates recent flow.

Wallet-Concentration Components
{
  "components": {
    "totalVolume": 149,
    "hhi": 0.45856,
    "top1Share": 0.620805,
    "top5Share": 1,
    "uniqueWallets": 3
  }
}

totalVolume

Total notional summed across wallets.

hhi

Herfindahl-Hirschman style concentration of wallet notional shares.

top1Share

Largest single-wallet share of total notional.

top5Share

Combined share of the five largest wallets in the sample.

uniqueWallets

Distinct wallets observed in the current request window.

polymarket/wallet-novelty

Share of recent flow from wallets not seen in earlier API-visible trades for the same market.

value measures how much current flow comes from wallets that do not appear in the earlier API-visible lookback for the same market. This is request-bounded novelty, not full lifetime novelty.

Wallet-Novelty Components
{
  "components": {
    "noveltyShare": 0.379195,
    "novelWalletCount": 2,
    "totalWalletCount": 3,
    "novelVolume": 56.5,
    "totalVolume": 149
  }
}

noveltyShare

Share of current-window notional attributable to wallets not seen in the earlier API-visible lookback.

novelWalletCount

Wallets present in the current window but absent from the earlier sampled history.

totalWalletCount

Total distinct wallets observed in the current window.

novelVolume

Notional attributed to newly observed wallets.

totalVolume

Total current-window notional used to compute novelty share.

polymarket/probability-shock

Recent probability move scaled by recent realized volatility.

value is a z-style shock score that compares the recent price move in a selected YES or NO token against recent realized volatility in that same token.

Probability-Shock Components
{
  "components": {
    "currentPrice": 0.65,
    "priorPrice": 0.55,
    "delta": 0.1,
    "realizedVol": 0.043589,
    "shockZ": 2.294157
  }
}

currentPrice

Latest observed price in the chosen token side.

priorPrice

Observed price nearest the start of the requested shock window.

delta

Raw price change over the requested window.

realizedVol

Standard deviation of recent price differences over the lookback window.

shockZ

Price move normalized by recent realized volatility.

polymarket/leakage-score

Information leakage / pre-news movement around an explicit or inferred event anchor.

value measures how much of the total event-window move occurred before the effective event anchor. If newsTs is omitted, the endpoint uses the midpoint of the effective analysis window, so a default request scores the most recent hour. It is an information leakage / pre-news movement score, not an accusation of insider trading.

Leakage-Score Components
{
  "components": {
    "leakageScore": 0.5,
    "preMove": 0.1,
    "totalMove": 0.2,
    "preNewsVolumeShare": 0.384181,
    "preWindowVolume": 34,
    "postWindowVolume": 54.5
  }
}

leakageScore

Share of the full event-window move that was already in place by the explicit or inferred event anchor.

preMove

Price move observed before the explicit or inferred event anchor.

totalMove

Total price move across the full pre/post event window.

preNewsVolumeShare

Share of combined event-window notional that traded before the explicit or inferred event anchor.

preWindowVolume

Total notional traded in the pre-news window.

postWindowVolume

Total notional traded in the post-news window.