Chain Turnover
Last updated
Fetch network-wide validator-set turnover across all subnets between the window's start and end neuron_daily snapshots: a per-subnet leaderboard (validators entered, exited, Jaccard retention, and a 0-100 stability score) ranked by gross churn, a network rollup over the union of every subnet's validator hotkeys, and a distribution summary (count, mean, min, p25, median, p75, p90, max) of the per-subnet stability scores. Sort is fixed to most-volatile-first; limit caps the leaderboard (default 20, max 100). Computed live from the neuron_daily rollup; schema-stable zeros when cold. Pass ?format=csv to download the per-subnet leaderboard as CSV (the network rollup + stability distribution stay JSON-only).
Query Parameters
Trailing lookback window the response is computed over, ending at the most recent data point rather than at today. Accepts 7d, 30d, 90d. A longer window is not a superset of a shorter one -- rankings and rates are recomputed over the whole window, not summed.
"30d"Value in
- "7d"
- "30d"
- "90d"
Maximum number of rows to return in one page (at most 100). A larger value, or a non-positive one, is rejected with 400 invalid_query -- so a short page means the result set is exhausted, not that the server quietly capped you (#9916). Omitted, the server applies 20.
1 <= value <= 10020Response format override. Use csv to download the route rows as text/csv; json keeps the default response envelope.
"json"Value in
- "json"
- "csv"
Response Body
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/api/v1/chain/turnover"{ "data": { "comparable": false, "covered_days": 1, "end_date": "2026-06-01", "network": { "stability_score": 100, "validator_retention": 0.5, "validators_end": 1, "validators_entered": 1, "validators_exited": 1, "validators_start": 1 }, "requested_days": 1, "schema_version": 1, "stability_distribution": { "count": 1, "max": 1, "mean": 0.5, "min": 1, "p25": 1, "p50": 0.5, "p75": 1, "p90": 1 }, "start_date": "2026-06-01", "subnet_count": 1, "subnets": [ { "netuid": 7, "stability_score": 100, "validator_retention": 0.5, "validators_end": 1, "validators_entered": 1, "validators_exited": 1, "validators_start": 1 } ], "window": "7d", "window_truncated": false }, "meta": { "artifact_path": "example", "cache": "short", "contract_version": "2026-06-29.1", "generated_at": "2026-06-01T00:00:00.000Z", "observed_through": "2026-06-01T00:00:00.000Z", "pagination": { "collection": "example", "cursor": 1, "limit": 1, "next_cursor": 1, "order": "asc", "returned": 1, "sort": "example", "total": 1 }, "published_at": "2026-06-01T00:00:00.000Z", "source": "live-cron-prober", "stale_contract": { "built_under": "example", "live": "example" } }, "ok": true, "schema_version": 1}