{"service":"ALGOMetrics","version":"0.1.0","asOf":"2026-09-15T03:45:38.437Z","network":"mainnet","data":{"methodology":[{"metric":"fees.estimatedDailyMicroAlgos","quality":"estimated","method":"Reads the fees-collected (fc) block-header field from evenly spaced sampled blocks across the trailing estimated day (falling back to summing transaction fees when the field is absent) and scales the per-block average by estimated rounds per day.","caveats":["Sparse sampling means bursty fee activity can be over- or under-represented.","Collected fees are transferred to the protocol fee sink. They leave circulating supply but are not provably destroyed; net supply change is the canonical measure of deflation.","Production canonicalization should move the scan into a scheduled rollup stored in D1 or KV."]},{"metric":"issuance.estimatedDailyMicroAlgos","quality":"estimated","method":"Reads the proposer-payout (pp) block-header field from sampled blocks and scales the per-block average by estimated rounds per day. Blocks without a payout count as zero when payout-era header fields are present in the sampled window.","caveats":["Returned as null only when the network's block schema exposes no payout fields (consensus incentives not active).","Current request-time sampling target is 32 blocks."]},{"metric":"netSupplyChange.estimatedDailyMicroAlgos","quality":"estimated","method":"Estimated daily proposer payouts minus estimated daily fees collected. Positive values mean circulating supply is expanding; negative values mean net deflation.","caveats":["Returned as null while issuance is unavailable."]},{"metric":"staking.*","quality":"unavailable","method":"Staking and decentralization metrics are a phase-3 placeholder. The endpoint is served free of charge and returns nulls until real aggregation is implemented.","caveats":["Do not use these fields until this note is removed from the methodology."]},{"metric":"roundsPerDay","quality":"estimated","method":"Compares timestamps between the latest block and a recent anchor block to estimate current block cadence."},{"metric":"*","quality":"configured","method":"Aggregated metrics are computed on demand and cached in-Worker for 30 seconds, so the asOf timestamp may trail the request time by up to the cache TTL."},{"metric":"microstructure.vpin","quality":"estimated","method":"VPIN (Easley, Lopez de Prado & O'Hara 2012) over ALGO-USD trades from the Coinbase Exchange public API. Trades fill volume buckets sized at 1/50 of rolling 24h volume; VPIN is the mean |buy - sell| / bucket volume over the trailing 50 closed buckets. Taker side is classified exactly from the reported maker side rather than via bulk-volume classification. Read it as a measure of adverse selection risk — the risk that the counterparty to a passive order is better informed — rather than the \"flow toxicity\" label common in the literature.","caveats":["Single-venue (Coinbase) flow; imbalance on other venues is not observed.","windowFill below 1 means the trailing window is still filling after a state reset; interpret VPIN cautiously until full.","State updates once per minute from a scheduled job; the stale flag is set when the last update is older than five minutes.","Catch-up after outages is capped at 5000 trades per run; longer gaps lose trades rather than blocking.","Bucket size comes from the exchange's 24-hour volume, re-read periodically rather than every update, so it can lag by up to that interval; a rolling 24-hour figure moves slowly, and the last known value is reused when the exchange declines the request. That reuse is bounded: once the cached volume passes a configured maximum age the refresh failure surfaces instead, so the metric goes visibly stale rather than being sized from a value of unknown age."]},{"metric":"microstructure.orderFlowImbalance","quality":"estimated","method":"Signed taker flow (buy - sell) / (buy + sell) aggregated over the same trailing bucket window as VPIN.","caveats":["Ranges -1 (all selling) to 1 (all buying)."]},{"metric":"microstructure.realizedVolatilityAnnualized","quality":"estimated","method":"Sum of squared close-to-close log returns across volume buckets (volume-time sampling), scaled from the observed window span to a 365-day year and square-rooted.","caveats":["Volume-time sampling makes returns closer to i.i.d. than clock-time sampling, but annualization still assumes the window is representative.","Parkinson variant uses per-bucket high/low ranges annualized at the mean bucket duration."]},{"metric":"microstructure.liquidity","quality":"estimated","method":"VWAP is window price-volume / volume. Amihud illiquidity is mean |bucket return| per unit bucket volume. Roll spread is 2 * sqrt(-serial covariance) of bucket close price changes, null when covariance is non-negative. Average trade size and taker-side trade counts come from per-bucket counters.","caveats":["A trade split across bucket boundaries counts once in each bucket it touches, slightly inflating trade counts in fast markets.","Roll's estimator is coarse at 50 observations; treat it as an order of magnitude, not a quote."]},{"metric":"microstructure.priceImpact","quality":"estimated","method":"Kyle lambda is the OLS slope of bucket close-to-close log returns on signed taker volume (buy - sell, base currency) per bucket: log-return impact per unit of net signed volume. flowAutocorrelation is the lag-1 autocorrelation of normalized bucket imbalance (buy - sell) / (buy + sell): positive values indicate persistent directional flow, negative values indicate flow that flips bucket to bucket.","caveats":["Estimated over the trailing bucket window (~50 observations); statistically noisy, treat as an order of magnitude.","Kyle lambda assumes a linear impact model; both metrics are null until at least three closed buckets exist."]},{"metric":"marketDepth.kyleLambda","quality":"estimated","method":"Kyle lambda is estimated from ALGO-USD Coinbase trades as the OLS slope of volume-bucket close-to-close log returns on net signed taker volume in ALGO. The endpoint inverts the absolute lambda magnitude for a $0.01 move and a one-basis-point move, then multiplies the required ALGO flow by the latest price to estimate USD notional.","caveats":["Estimated over the trailing 50 volume buckets and statistically noisy; treat the dollar amounts as order-of-magnitude estimates, not executable quotes.","The linear-impact model ignores order-book shape, execution-price slippage, fees, cross-venue liquidity, and impact decay.","A negative fitted lambda is returned with its sign, but the dollar-depth estimates use its absolute magnitude."]},{"metric":"adverseSelectionRisk.vpin","quality":"estimated","method":"VPIN over ALGO-USD Coinbase trades is the mean absolute buy-versus-sell taker-volume imbalance across the trailing 50 volume buckets. Trades are classified exactly from Coinbase's reported maker side.","caveats":["VPIN above 0.5 means that average absolute buy-versus-sell volume imbalance exceeds half of a volume bucket, indicating elevated adverse-selection risk for passive liquidity providers. It does not mean that more than 50% of trades are informed.","The 0.5 threshold is an interpretation aid, not a universal trading signal or calibrated probability.","Single-venue (Coinbase) flow; imbalance on other venues is not observed.","Interpret cautiously while windowFill is below 1 or stale is true."]},{"metric":"shortTermBtcBeta.beta","quality":"estimated","method":"Exponentially weighted regression of ALGO-USD 15-minute log returns on BTC-USD 15-minute log returns over the trailing 48 hours, using a 12-hour weighting half-life. Both candle series come from Coinbase and only exactly aligned, adjacent intervals are included. Beta is weighted covariance(asset, benchmark) divided by weighted variance(benchmark).","caveats":["This is a backward-looking, regime-sensitive estimate, not a price forecast. Its next-few-hours interpretation assumes the recent relationship persists.","Coinbase can omit candle intervals with no trades; missing or misaligned intervals are excluded rather than treated as zero returns.","Correlation and R-squared should be considered alongside beta; a low reliability value means the sensitivity estimate has weak explanatory support.","Single-venue USD pairs may not represent liquidity or price formation on other venues."]},{"metric":"onChainSwaps.windows.*.routes","quality":"live","method":"Counts normalized user-level trades from fully indexed Algorand rounds. Direct, split, multi-hop, split-multi-hop, and unknown-topology routes count once even when they execute through several pools; unknown means the router's declared topology could not be resolved and is not treated as direct.","caveats":["Tinyman V1.1, Tinyman V2, Pact, and Humble pool executions are decoded today. Folks, Haystack, and Vestige router groups use their exact user deposit and final payout; routes containing unsupported pool executions or unresolved declared topology are retained but marked incomplete.","Decoded executions attached to a known router route are limited to that router's execute calls, so unrelated swaps in the same atomic group do not affect route completeness or execution IDs.","Windows are trailing 1-hour and 24-hour intervals aligned to the latest fully closed UTC minute.","coverageComplete remains false during initial warm-up until the aggregator has operated for the full requested window.","The endpoint is treated as stale when the scanner is more than one configured scan batch behind the Indexer, even if its summary record was refreshed recently."]},{"metric":"onChainSwaps.windows.*.executions","quality":"live","method":"Counts each decoded Tinyman V1.1, Tinyman V2, Pact, or Humble pool execution separately for venue-level activity. These counts must not be substituted for user trade counts."},{"metric":"onChainSwaps.windows.*.*AmountAtomic","quality":"live","method":"Sums exact on-chain integer amounts by asset and encodes them as decimal strings to preserve uint64 precision.","caveats":["Atomic fields are native integer units (microAlgos for asset 0 and ASA base units otherwise), not USD values.","Tinyman V1.1 amounts are reconstructed from the exact post-swap reserve transition so deposits, minimum outputs, and redeemable excess are not misreported as executed volume.","Leading route pairs are ranked by trade count because amounts from different assets are not directly comparable."]},{"metric":"onChainSwaps.windows.*.leadingRouteAssetPairs","quality":"live","method":"Groups user-level trades by directional input/output asset pair, reports complete and incomplete trade counts, and ranks the first 20 pairs by trade count. Asset names, symbols, and decimals are resolved from the Algorand Indexer and cached; readable amount fields are exact decimal conversions of their corresponding atomic strings.","caveats":["A readable amount is null when asset decimals could not be resolved; the exact atomic amount remains available.","Readable amounts are whole-token quantities, not USD values."]},{"metric":"onChainSwaps.windows.*.protocolAssetPairs","quality":"live","method":"Groups individual pool executions by protocol and directional input/output asset pair, keeping reverse trade directions separate, and ranks the first 20 pairs by execution count.","caveats":["Execution counts describe venue-level pool calls and can exceed user-level route counts for split and multi-hop trades.","Readable token amounts use cached asset decimals and are not USD values."]},{"metric":"dexVenueActivity.windows.*.venues","quality":"live","method":"Ranks decoded Algorand DEX venues by individual pool-execution count over trailing 1-hour and 24-hour windows. executionShare is the venue's fraction of all captured pool executions in the same window; observedDirectionalPairCount counts distinct input/output directions, and each venue also reports its ten leading directional asset pairs.","caveats":["Pool-execution coverage is limited to Tinyman V1.1, Tinyman V2, Pact, and Humble, including supported executions nested inside Folks, Haystack, and Vestige router trades; it does not represent every Algorand DEX.","Execution share is an activity share, not USD-volume share or user-trade market share. Split and multi-hop trades can create several pool executions.","Pair amounts are exact native token quantities. They are not USD values and should not be added across different assets.","coverageComplete remains false during initial warm-up until the aggregator has observed the full requested window."]},{"metric":"dexActivePairs.windows.*.pairs","quality":"live","method":"Combines both directions of normalized user-level routes into one unordered asset pair, ranks the first 20 pairs by trade count, and retains directional flows plus complete and incomplete route counts. assetA and assetB are ordered by ascending Algorand asset ID for stable pair identity.","caveats":["User-trade coverage includes routes reconstructed from Tinyman V1.1, Tinyman V2, Pact, and Humble executions plus exact Folks, Haystack, and Vestige router deposits and payouts. Underlying venue execution coverage remains partial.","Pair ranking uses user-level trade count rather than pool-execution count, so split and multi-hop trades count once.","Token amounts are exact native quantities, not USD volume. Reliable cross-pair notional ranking requires a separate asset-pricing system.","Partially decoded known routes remain included and are disclosed by incompleteTradeCount."]},{"metric":"dexWalletActivity.windows.*","quality":"live","method":"Groups normalized user-level DEX routes by their initiating Algorand address over trailing 1-hour and 24-hour windows. Each route counts once, including a router route whose topology is reported as unknown rather than guessed. repeatWalletCount includes addresses with at least two trades in the window; concentration reports the top-one, top-five, and top-ten shares of trade count plus the Herfindahl-Hirschman Index (the sum of squared wallet trade-count shares).","caveats":["An address is an on-chain account, not necessarily one person. One actor can control several addresses, while custodial or application accounts can represent multiple users.","Concentration is based on user-trade count, not USD volume, wallet wealth, profitability, or influence. Automated traders can account for a large share of activity.","User-trade coverage includes routes reconstructed from Tinyman V1.1, Tinyman V2, Pact, and Humble executions plus exact Folks, Haystack, and Vestige router deposits and payouts. Underlying venue execution coverage remains partial.","No individual wallet addresses are returned. coverageComplete remains false until wallet aggregation has observed the full requested window."]},{"metric":"dexWalletRetention.windows.*","quality":"live","method":"Compares the distinct initiating Algorand addresses in adjacent, non-overlapping closed UTC periods of equal length. The 1-day, 7-day, and 30-day windows report wallets active in both periods, retained-wallet rate (over the previous period), returning-wallet share (of the current period), current-only wallets, previous-only wallets, and active-wallet growth. Each normalized user-level route counts once for wallet presence regardless of route complexity or trade count.","caveats":["newlyActiveWalletCount means absent from the immediately preceding equal-length period; it can include a reactivated address seen earlier and does not prove that the wallet or person is new to Algorand.","An address is an on-chain account, not necessarily one person. One actor can control several addresses, while custodial or application accounts can represent multiple users.","The periods become available progressively after complete daily retention aggregation: approximately 2 complete days for 1d, 14 for 7d, and 60 for 30d, plus the partial UTC day in which aggregation starts. Each new UTC day is finalized after a one-hour scanner-catch-up delay.","A new asOf day is not finalized until scanner lag is within the configured healthy tolerance and remains there for a short KV-propagation buffer. dataThrough is the latest observed swap timestamp, not a scanner-coverage timestamp.","User-trade coverage includes normalized routes reconstructed from Tinyman V1.1, Tinyman V2, Pact, and Humble executions plus Folks, Haystack, and Vestige router deposits and payouts. It does not cover every Algorand DEX.","No individual wallet addresses are returned. History-warming periods contain null statistics and disclose availableAt rather than presenting partial counts as complete.","A corrupt or predictably oversized daily wallet rollup is isolated from the core scanner commit path and disclosed as a source-gap. Any affected period contains null statistics and availableAt is null until an explicit archival rebuild restores the full UTC day and clears its gap marker, or the day ages out of the comparison."]},{"metric":"dexTrendingPairs.windows.*.pairs","quality":"live","method":"Ranks currently active unordered asset pairs by the mean of two historical z-scores: normalized user-trade count and unique initiating-wallet count. The 1-hour view compares the latest fully closed UTC hour with each of the preceding 168 hours; the 24-hour view compares the latest fully closed 24 hours with seven preceding non-overlapping 24-hour observations. Each score denominator is the maximum of the observed population standard deviation, one count, and 10% of the baseline mean; the effective denominators are returned so the score is reproducible.","caveats":["The endpoint measures acceleration relative to each pair's own seven-day baseline, not absolute popularity, USD volume, price performance, investment quality, or venue preference.","Pairs need at least three current trades from two active wallets in the 1-hour view, or ten current trades from three active wallets in the 24-hour view, plus a combined trend score of at least 1. These requirements are returned in each window.","A newlyActive pair had zero captured trades in every baseline observation; its activity multiples are null because division by a zero baseline is undefined.","An address is an on-chain account, not necessarily one person. No individual wallet addresses are returned.","User-trade coverage includes normalized routes reconstructed from Tinyman V1.1, Tinyman V2, Pact, and Humble executions plus Folks, Haystack, and Vestige router deposits and payouts. It does not cover every Algorand DEX.","The endpoint returns 503 without settlement until eight complete days of pair-wallet history are available, providing a current 24-hour observation plus seven non-overlapping daily baseline observations.","After warm-up, an empty pairs array is a valid screen showing that no pair cleared the published activity and trend-score thresholds; it returns 200 and is charged like any other valid metric response."]},{"metric":"dexActivityAnomalies.windows.*.anomalies","quality":"live","method":"Flags asset pairs and venues whose current activity is unusually high or low against their own preceding seven-day baseline. The 1-hour view scores the latest fully closed UTC hour against 168 hourly observations and, separately, against the same UTC hour on each of the preceding seven days; an anomaly is reported only when both scores clear the threshold in the same direction. The 24-hour view scores the latest fully closed 24 hours against seven preceding non-overlapping daily observations and additionally requires the current value to fall outside the observed baseline range. Each score denominator is the maximum of the observed population standard deviation, the square root of the baseline mean, and an absolute floor; the effective denominator is returned so the score is reproducible.","caveats":["The dual hourly comparison exists because Algorand DEX activity follows a strong daily cycle. A single pooled hourly baseline estimates the average hour of the week, not the current hour of day, and would report spikes every peak hour and drops every night.","Pair spikes need at least five current trades from two active wallets in the 1-hour view, or fifteen current trades from three active wallets in the 24-hour view. Venue spikes need at least three current executions in the 1-hour view or ten in the 24-hour view. Drops do not use current-activity floors because a genuine collapse can reach zero; every window returns these spike requirements explicitly.","Venue anomalies count individual pool executions, not user trades. A router changing its split or multi-hop strategy can move a venue's execution count with no change in user activity, and split trades contribute several executions.","The 1-hour window is contained inside the 24-hour window. The same series can appear in both and the counts must not be added together.","A baseline observation is used only when every hour inside it is proven processed by the scanner cursor, within the aggregate retention horizon, and readable. Observations that fail are excluded rather than counted as zero, and the excluded count is returned. Because unprovable hours skew toward low-activity periods, exclusion can raise the baseline mean and lower its dispersion, making drops slightly more likely and spikes slightly less likely.","zScore is a standardized deviation, not a p-value. The 24-hour view rests on seven observations, so its standard-deviation estimate is noisy; the baseline minimum, maximum, and the fraction of observations at or below the current value are returned alongside it.","percentile is a weak empirical fraction of baseline observations at or below the current value, so ties inflate it; for a drop the signal is a low percentile, and its denominator is the populated observation count rather than the expected count.","severityScore is a rescaled absolute z-score that saturates at 1. It is a presentation aid for ranking severity bands and is not a probability or a confidence level.","activityMultiple is null when the baseline mean is zero, because division by a zero baseline is undefined. Such a series is a genuine emergence and is exempt from the minimum-multiple screen.","No individual wallet addresses are returned, and venue series carry no wallet count because pool executions are not attributed to an initiating address. An address is an on-chain account, not necessarily one person.","User-trade coverage includes normalized routes reconstructed from Tinyman V1.1, Tinyman V2, Pact, and Humble executions plus Folks, Haystack, and Vestige router deposits and payouts. Venue coverage is limited to the documented decoded DEXs and router paths and is not all Algorand DEX activity.","The endpoint returns 503 without settlement until eight complete days of pair-wallet history exist, while the scanner has not provably processed the whole current window, and when no window has a usable baseline. After warm-up, an empty anomalies array is a valid screen meaning nothing cleared the published thresholds; it returns 200 and is charged like any other valid metric response.","A window is published only when the scanner cursor proves every hour inside it was processed. Loss of the separate scanner state key would advance the cursor past a permanent hole, which this endpoint cannot detect without a per-hour coverage ledger on the ingestion path."]},{"metric":"dex.vpin","quality":"live","method":"VPIN (Easley, Lopez de Prado & O'Hara 2012) over on-chain ALGO/USDC pool executions decoded from Tinyman V1.1, Tinyman V2, Pact, and Humble. Executions fill volume buckets of 50000 ALGO; VPIN is the mean |buy - sell| / bucket volume over the trailing 50 closed buckets. Unlike the Coinbase VPIN, taker side is exact: receiving ALGO is a buy and spending it is a sell, read directly from the executed swap rather than inferred.","caveats":["Counts individual pool executions, so a single multi-hop or split user trade contributes each of its pair legs.","Covers only Tinyman V1.1, Tinyman V2, Pact, and Humble; executions on unlisted venues are not observed.","Uses a fixed 50000 ALGO volume clock; windowFill below 1 means the trailing window is still filling and VPIN should be read cautiously.","State updates as the scanner commits batches; the stale flag is set when the last update ages past the configured bound or the scanner falls behind the Indexer."]},{"metric":"dex.orderFlowImbalance","quality":"live","method":"Signed taker flow (buy - sell) / (buy + sell) in ALGO over the same trailing bucket window as VPIN, with buy/sell taken from exact on-chain swap direction.","caveats":["Ranges -1 (all base sold into the pools) to 1 (all base bought from the pools)."]},{"metric":"dex.liquidity","quality":"live","method":"VWAP, Amihud illiquidity, Roll spread, Kyle lambda, realized and Parkinson volatility, trade counts, and average trade size are computed from the same volume buckets as the Coinbase microstructure endpoint, over on-chain executions instead of exchange trades.","caveats":["Prices are quote-per-base whole-token ratios of the exact on-chain amounts; pool and protocol fees are embedded in the executed amounts, not stripped out.","Roll and Kyle estimators are coarse at a few dozen buckets; treat them as order-of-magnitude, not quotes."]},{"metric":"dex.depth","quality":"estimated","method":"Inverts the fitted Kyle lambda into the one-sided USDC taker notional that moves the on-chain ALGO/USDC price by a full cent and by one basis point: the target log move is divided by the absolute lambda to get the required net ALGO flow, then multiplied by the latest quote-per-base execution price. USDC is treated as a 1:1 USD proxy.","caveats":["Estimated from the same trailing 50 on-chain volume buckets as Kyle lambda and statistically noisy; treat the dollar amounts as order-of-magnitude, not executable quotes.","The linear-impact model ignores pool-curve shape, per-swap slippage, fees, cross-venue liquidity, and impact decay.","A negative fitted lambda still yields positive dollar depth because the magnitude is used; null until a usable lambda and positive reference price exist."]},{"metric":"dex.divergence","quality":"live","method":"Compares the on-chain ALGO/USDC snapshot against the current Coinbase ALGO-USD microstructure snapshot: vpinDelta = on-chain VPIN minus Coinbase VPIN, and basis = (on-chain VWAP - Coinbase VWAP) / Coinbase VWAP. The nested `normalized` block ranks each venue's current VPIN against its own trailing history (percentile and z-score) so the two sides are comparable despite non-comparable raw VPIN levels.","caveats":["Basis compares the on-chain USDC execution VWAP against the Coinbase USD VWAP over each side's own trailing volume window; USDC is treated as a 1:1 USD proxy. vpinDelta is the raw on-chain-minus-Coinbase VPIN difference, but raw VPIN levels are not comparable across venues, so read it only as a coarse indicator and prefer the self-relative percentiles in `normalized`. The two windows are volume-synchronized independently, not time-aligned, so read the comparison as a regime indicator rather than an arbitrage quote.","Raw VPIN levels are not comparable across venues: the AMM fills each volume bucket with far fewer, larger executions than Coinbase, so on-chain VPIN sits structurally higher even under identically informed flow, and no bucket-size choice removes that gap. These percentiles rank each venue's current VPIN against its own trailing history of full-window readings, which is comparable — a high percentile on either side means adverse selection is elevated relative to that venue's own norm. deltaPercentile above zero means on-chain flow is more elevated-versus-normal than Coinbase right now. Percentiles are null while a venue's history is still accumulating.","The divergence block is null when the Coinbase snapshot is unavailable; individual fields are null until both sides have a defined VPIN or VWAP.","cexStale reflects the Coinbase pipeline health independently of the on-chain stale flag."]},{"metric":"microstructure.interpretation","quality":"estimated","method":"Structured natural-language interpretation of the /v1/metrics/microstructure snapshot, generated by the claude-opus-4-8 model via the Claude API and cached for up to 600 seconds (the \"cached\"/\"generatedAt\" fields report reuse). The full metrics snapshot the interpretation was generated from is included in the response.","caveats":["Model-generated commentary on market conditions, not financial advice and not a price prediction.","A cached interpretation may lag the live metrics by up to the cache TTL; compare basedOn.stateUpdatedAt against the current state.","Interpretations inherit every caveat of the underlying microstructure metrics."]}],"x402":{"enabled":true,"facilitatorUrl":"https://facilitator.goplausible.xyz","network":"algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=","usdcAsaId":"31566704","price":"$0.01"}},"quality":[{"metric":"fees.estimatedDailyMicroAlgos","quality":"estimated"},{"metric":"issuance.estimatedDailyMicroAlgos","quality":"estimated"},{"metric":"netSupplyChange.estimatedDailyMicroAlgos","quality":"estimated"},{"metric":"staking.*","quality":"unavailable"},{"metric":"roundsPerDay","quality":"estimated"},{"metric":"*","quality":"configured"},{"metric":"microstructure.vpin","quality":"estimated"},{"metric":"microstructure.orderFlowImbalance","quality":"estimated"},{"metric":"microstructure.realizedVolatilityAnnualized","quality":"estimated"},{"metric":"microstructure.liquidity","quality":"estimated"},{"metric":"microstructure.priceImpact","quality":"estimated"},{"metric":"marketDepth.kyleLambda","quality":"estimated"},{"metric":"adverseSelectionRisk.vpin","quality":"estimated"},{"metric":"shortTermBtcBeta.beta","quality":"estimated"},{"metric":"onChainSwaps.windows.*.routes","quality":"live"},{"metric":"onChainSwaps.windows.*.executions","quality":"live"},{"metric":"onChainSwaps.windows.*.*AmountAtomic","quality":"live"},{"metric":"onChainSwaps.windows.*.leadingRouteAssetPairs","quality":"live"},{"metric":"onChainSwaps.windows.*.protocolAssetPairs","quality":"live"},{"metric":"dexVenueActivity.windows.*.venues","quality":"live"},{"metric":"dexActivePairs.windows.*.pairs","quality":"live"},{"metric":"dexWalletActivity.windows.*","quality":"live"},{"metric":"dexWalletRetention.windows.*","quality":"live"},{"metric":"dexTrendingPairs.windows.*.pairs","quality":"live"},{"metric":"dexActivityAnomalies.windows.*.anomalies","quality":"live"},{"metric":"dex.vpin","quality":"live"},{"metric":"dex.orderFlowImbalance","quality":"live"},{"metric":"dex.liquidity","quality":"live"},{"metric":"dex.depth","quality":"estimated"},{"metric":"dex.divergence","quality":"live"},{"metric":"microstructure.interpretation","quality":"estimated"}],"methodologyRef":{"url":"https://api.algometrics.org/v1/methodology","version":"0.1.0"}}