Chain Stake Transfers
Last updated
Fetch network-wide stake-transfer activity over a 7d or 30d window across the subnets with observed transfer activity (subnets with no StakeTransferred events are absent): a per-subnet leaderboard (StakeTransferred event count, distinct senders, and average transfers per sender) ranked by total transfers, a network rollup with the true distinct sender count (an account transferring stake out of several subnets counts once) and total transfers, and a distribution summary (count, mean, min, p25, median, p75, p90, max) of the per-subnet transfer intensity. limit caps the leaderboard (default 20, max 100). The between-coldkeys companion to the within-account re-delegation churn of GET /api/v1/chain/stake-moves — transfer_stake relocates staked alpha from one account to another on the same hotkey (origin leg only), so it moves ownership, not net capital. Computed live from the account_events StakeTransferred stream; schema-stable empty block when cold. Pass ?format=csv to download the per-subnet leaderboard as CSV (the network rollup + intensity 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. A longer window is not a superset of a shorter one -- rankings and rates are recomputed over the whole window, not summed.
"7d"Value in
- "7d"
- "30d"
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/stake-transfers"{ "data": { "intensity_distribution": { "count": 2, "max": 15, "mean": 12.5, "min": 10, "p25": 10, "p50": 10, "p75": 15, "p90": 15 }, "network": { "distinct_senders": 5, "transfers": 70, "transfers_per_sender": 14 }, "observed_at": "2026-06-01T00:00:00.000Z", "schema_version": 1, "subnet_count": 2, "subnets": [ { "distinct_senders": 4, "netuid": 1, "transfers": 40, "transfers_per_sender": 10 }, { "distinct_senders": 2, "netuid": 2, "transfers": 30, "transfers_per_sender": 15 } ], "window": "7d" }, "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}