Economics
GET /api/v1/economics and /economics/trends — the dynamic-TAO per-subnet snapshot and network-wide daily time series. Alpha pools, emission share, FDV. No API key.
Last updated
Bittensor runs a dynamic-TAO (dTAO) model: every subnet mints its own "alpha" token and runs a constant-product AMM pool holding TAO and alpha reserves. Staking TAO into a subnet buys alpha from that pool, and the reserve ratio sets the alpha price in TAO — each subnet's share of newly minted TAO is proportional to its alpha price relative to every other subnet's, a market-priced allocation rather than a vote-based one. These two routes expose that model as data.
GET https://api.metagraph.sh/api/v1/economicsGET /api/v1/economics
Per-subnet economic/validator snapshot — one row per subnet, live at the current moment.
| Param | Notes |
|---|---|
netuid | Scope to one subnet. |
registration_allowed | true / false. |
q | Name/slug search, ≤200 chars. |
fields | Comma-separated partial field selection. |
limit / cursor | 1–1000, keyset paging. |
sort / order | Sort key (alpha_fdv_tao, alpha_price_tao, emission_share, total_stake_alpha, netuid, and more) + asc/desc (default desc, and default sort is emission share). |
format | csv for a flat export. |
Response fields worth knowing: alpha_price_tao (the AMM's current TAO/alpha exchange rate), tao_in_pool_tao / alpha_in_pool / alpha_out_pool (the pool reserves), emission_share (this subnet's cut of new TAO issuance), alpha_market_cap_tao / alpha_fdv_tao (derived, not on-chain — FDV is alpha price × the fixed 21,000,000 per-subnet alpha max supply, the same cap structure as TAO's own 21M), registration_cost_tao (the current dynamic recycle-burn cost to register a new UID), and total_stake_alpha.
curl -s 'https://api.metagraph.sh/api/v1/economics?sort=alpha_fdv_tao&order=desc&limit=10'GET /api/v1/economics/trends
A network-wide daily time series — the aggregate across every subnet, one point per UTC day, not a per-subnet breakdown.
| Param | Notes |
|---|---|
window | 7d | 30d | 90d | 1y | all, default 30d. |
format | csv. |
Each day rolls up summed total_stake_alpha, a stake-weighted mean alpha price, an unweighted median alpha price, summed validator/miner counts, and mean emission share — network-wide, not per subnet. A cold rollup returns { day_count: 0, days: [] } rather than erroring.
curl -s https://api.metagraph.sh/api/v1/economics/trends?window=90d60000-row cap on window=all
/economics/trends?window=all is bounded to 60,000 raw rows — sized for roughly 129 subnets × 365
days. Hitting the cap drops the oldest day rather than serving a truncated one silently.
const res = await fetch("https://api.metagraph.sh/api/v1/economics?sort=emission_share&limit=20");
const { data } = await res.json();Both routes are cached 60s. /economics prefers a live KV snapshot (falling back to the last published R2 artifact, so it never 404s); /economics/trends is edge-cached and busts on the same publish stamp as the sibling history/trajectory routes.
Who receives it
These routes say how much emission a subnet gets. They do not say who inside it received the money — that is the recipient split, and the surfaces built on it touch a question the chain does not answer on its own: whether a wallet belongs to the subnet's team.
Attribution method is the standard those surfaces publish under — what we will say about wallet control, what we will not, and how to check us. Read it before quoting an owner-capture figure.
Chain events reference
How GET /api/v1/chain-events, /chain-events/stats, and /blocks/{n}/chain-events serve the lakehouse deep-history all-events tier — params, response shapes, curl examples, how they differ from the curated event feeds, and what a cold tier returns.
Extrinsics
GET /api/v1/extrinsics, /extrinsics/{hash}, /governance/config-changes, and /sudo — the on-chain call feed, root-origin hyperparameter changes, and why governance/sudo are just filtered views of the same table. No API key.