Documentation / API reference / Subnet
Get Subnet History
Last reviewed 2026-09-18
Returns historical subnet configuration, emission metrics, registration settings and participant counts. Use netuid to select a subnet. Pool prices and reserves are available from the separate dTAO pool endpoints.
Try it
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
netuid | query | integer (int32) | Yes | Subnet |
frequency | query | string | Frequency of response One of by_block, by_hour, by_day. | |
block_number | query | integer (int32) | The exact block number | |
block_start | query | integer (int32) | Start of block range (inclusive) | |
block_end | query | integer (int32) | End of block range (inclusive) | |
timestamp_start | query | integer (int64) | Start of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive) | |
timestamp_end | query | integer (int64) | End of timestamp range in Unix timestamp (seconds since 1970-01-01) (inclusive) | |
page | query | integer (int32) | The page number of the response. | |
limit | query | integer (int32) | The number of responses. max is 200, | |
order | query | string | One of block_number_asc, block_number_desc, timestamp_asc, timestamp_desc. |
Responses
200 — Subnets retrieved successfully
| Field | Type | Required | Description |
|---|---|---|---|
data | array | Yes | |
data[].active_dual | integer (int32) | Yes | |
data[].active_keys | integer (int32) | Yes | |
data[].active_miners | integer (int32) | Yes | |
data[].active_validators | integer (int32) | Yes | |
data[].activity_cutoff | integer (int32) | Yes | |
data[].adjustment_alpha | string, nullable | ||
data[].adjustment_interval | integer (int32) | Yes | |
data[].alpha_high | string, nullable | ||
data[].alpha_low | string, nullable | ||
data[].alpha_sigmoid_steepness | integer (int32), nullable | ||
data[].block_number | integer (int32) | Yes | |
data[].blocks_since_last_step | integer (int32) | Yes | |
data[].blocks_until_next_adjustment | integer (int32) | Yes | |
data[].blocks_until_next_epoch | integer (int32) | Yes | |
data[].bonds_moving_avg | string | Yes | |
data[].bonds_penalty | string, nullable | ||
data[].bonds_reset_on | boolean, nullable | ||
data[].burn_half_life | integer (int32), nullable | ||
data[].burn_increase_mult | string, nullable | ||
data[].collateral_drain_ratio | string, nullable | Alpha of collateral released per alpha of miner incentive earned. | |
data[].collateral_lock_share | string, nullable | Share of the registration cost locked as miner collateral, as a 0-1 fraction (0 = collateral disabled; the chain caps it at ~0.95). Null before runtime 437. | |
data[].commit_reveal_weights_enabled | boolean | Yes | |
data[].commit_reveal_weights_interval | integer (int32), nullable | ||
data[].difficulty | string | Yes | |
data[].ema_price_halving_blocks | integer (int32), nullable | ||
data[].ema_tao_flow | string | Yes | |
data[].emission | string | Yes | |
data[].enabled_user_liquidity | boolean, nullable | ||
data[].excess_tao | string, nullable | ||
data[].fee_rate | string, nullable | ||
data[].immune_owner_uids_limit | integer (int32) | Yes | |
data[].immunity_period | integer (int32) | Yes | |
data[].incentive_burn | string | Yes | |
data[].kappa | integer (int32) | Yes | |
data[].last_adjustment_block | integer (int32), nullable | ||
data[].liquid_alpha_enabled | boolean, nullable | ||
data[].max_burn | string | Yes | |
data[].max_difficulty | string | Yes | |
data[].max_neurons | integer (int32) | Yes | |
data[].max_regs_per_block | integer (int32) | Yes | |
data[].max_validators | integer (int32) | Yes | |
data[].max_weights_limit | integer (int32) | Yes | |
data[].mech_count | integer (int32) | Yes | |
data[].mech_emission_split | array | Yes | |
data[].mech_emission_split[] | string | Yes | |
data[].min_allowed_weights | integer (int32) | Yes | |
data[].min_burn | string | Yes | |
data[].min_difficulty | string | Yes | |
data[].modality | integer (int32) | Yes | |
data[].netuid | integer (int32) | Yes | |
data[].neuron_registration_cost | string | Yes | |
data[].neuron_registrations_this_interval | integer (int32) | Yes | |
data[].owner | object, nullable | ||
data[].owner.hex | string | Yes | The hex format of the hot key |
data[].owner.ss58 | string | Yes | The SS58 format of the hot key |
data[].owner_hotkey | object, nullable | ||
data[].owner_hotkey.hex | string | Yes | The hex format of the hot key |
data[].owner_hotkey.ss58 | string | Yes | The SS58 format of the hot key |
data[].pow_registration_allowed | boolean | Yes | |
data[].projected_emission | string | Yes | |
data[].recycled_24_hours | string | Yes | |
data[].recycled_lifetime | string | Yes | |
data[].recycled_since_registration | string | Yes | |
data[].registration_allowed | boolean | Yes | |
data[].registration_block_number | integer (int32), nullable | ||
data[].registration_cost | string, nullable | ||
data[].registration_timestamp | string (date-time), nullable | ||
data[].reveal_period_epochs | integer (int32), nullable | ||
data[].rho | integer (int32) | Yes | |
data[].serving_rate_limit | string | Yes | |
data[].subtoken_enabled | boolean, nullable | ||
data[].swap_v3_initialized | boolean, nullable | ||
data[].tao_flow | string, nullable | ||
data[].target_regs_per_interval | integer (int32) | Yes | |
data[].tempo | integer (int32) | Yes | |
data[].timestamp | string (date-time) | Yes | |
data[].transfer_toggle | boolean, nullable | ||
data[].validators | integer (int32) | Yes | |
data[].weights_rate_limit | string | Yes | |
data[].weights_version | string | Yes | |
data[].yuma3_on | boolean, nullable | ||
pagination | object | Yes | |
pagination.current_page | integer (int32) | Yes | |
pagination.next_page | integer (int32), nullable | ||
pagination.per_page | integer (int32) | Yes | |
pagination.prev_page | integer (int32), nullable | ||
pagination.total_items | integer (int32) | Yes | |
pagination.total_pages | integer (int32) | Yes |
Example response
json
{
"data": [
{
"active_dual": 1,
"active_keys": 21,
"active_miners": 234,
"active_validators": 20,
"activity_cutoff": 26000,
"adjustment_alpha": "17893341751498265066",
"adjustment_interval": 360,
"block_number": 4107456,
"blocks_since_last_step": 6,
"blocks_until_next_adjustment": 329,
"blocks_until_next_epoch": 354,
"bonds_moving_avg": "0",
"difficulty": "18446744073709551615",
"emission": "18926963",
"immunity_period": 15000,
"kappa": 32767,
"last_adjustment_block": 4107425,
"max_burn": "0",
"max_difficulty": "18446744073709551615",
"max_neurons": 256,
"max_regs_per_block": 0,
"max_validators": 64,
"max_weights_limit": 65535,
"min_allowed_weights": 1,
"min_burn": "700000000",
"min_difficulty": "18446744073709551615",
"modality": 0,
"netuid": 6,
"neuron_registration_cost": "710500907",
"owner": {
"hex": "0x1a7e7aa832525950e4754db957d8422522015b9624d9c7d1be8e8cba752f7810",
"ss58": "5CfSg4e23Z3aTXvc2XZie8ZE1xkqRPoyVRFdWUuyyjGxJrMA"
},
"recycled_24_hours": "5600000000",
"recycled_lifetime": "1593663967876",
"recycled_since_registration": "1422513085329",
"registration_allowed": true,
"registration_block_number": 3219949,
"registration_cost": "2991859113540",
"registration_timestamp": "2024-06-20T13:03:12.010Z",
"rho": 0,
"serving_rate_limit": "0",
"target_regs_per_interval": 1,
"tempo": 360,
"timestamp": "2024-10-23T17:16:48.001Z",
"validators": 64,
"weights_rate_limit": "700",
"weights_version": "1010"
},
{
"active_dual": 1,
"active_keys": 24,
"active_miners": 237,
"active_validators": 21,
"activity_cutoff": 26000,
"adjustment_alpha": "17893341751498265066",
"adjustment_interval": 360,
"block_number": 4102273,
"blocks_since_last_step": 238,
"blocks_until_next_adjustment": 112,
"blocks_until_next_epoch": 122,
"bonds_moving_avg": "0",
"difficulty": "18446744073709551615",
"emission": "18930126",
"immunity_period": 15000,
"kappa": 32767,
"last_adjustment_block": 4102025,
"max_burn": "0",
"max_difficulty": "18446744073709551615",
"max_neurons": 256,
"max_regs_per_block": 0,
"max_validators": 64,
"max_weights_limit": 65535,
"min_allowed_weights": 1,
"min_burn": "700000000",
"min_difficulty": "18446744073709551615",
"modality": 0,
"netuid": 6,
"neuron_registration_cost": "700000000",
"owner": {
"hex": "0x1a7e7aa832525950e4754db957d8422522015b9624d9c7d1be8e8cba752f7810",
"ss58": "5CfSg4e23Z3aTXvc2XZie8ZE1xkqRPoyVRFdWUuyyjGxJrMA"
},
"recycled_24_hours": "6300000000",
"recycled_lifetime": "1590163967876",
"recycled_since_registration": "1419013085329",
"registration_allowed": true,
"registration_block_number": 3219949,
"registration_cost": "2991859113540",
"registration_timestamp": "2024-06-20T13:03:12.010Z",
"rho": 0,
"serving_rate_limit": "0",
"target_regs_per_interval": 1,
"tempo": 360,
"timestamp": "2024-10-22T23:59:48Z",
"validators": 64,
"weights_rate_limit": "700",
"weights_version": "1010"
}
],
"pagination": {
"current_page": 1,
"next_page": 2,
"per_page": 50,
"prev_page": null,
"total_items": 380,
"total_pages": 8
}
}Response details
text
{
"block_number": 5453828,
"timestamp": "2025-04-28T23:59:12Z",
"netuid": 0,
"owner": {
"ss58": "5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM",
"hex": "0x0000000000000000000000000000000000000000000000000000000000000000"
},
"registration_block_number": null,
"registration_timestamp": "2023-03-20T18:47:48Z",
"registration_cost": "0",
"neuron_registration_cost": "500000",
"max_neurons": 64,
"neuron_registrations_this_interval": 0,
"active_keys": 64,
"validators": 8,
"active_validators": 8,
"active_miners": 34,
"active_dual": 4,
"modality": 0,
"pow_registration_allowed": false,
"emission": "0",
"rho": 10,
"kappa": 32767,
"immunity_period": 4096,
"min_allowed_weights": 0,
"max_weights_limit": 65535,
"tempo": 100,
"min_difficulty": "0.24999999999999999996",
"max_difficulty": "0.24999999999999999996",
"weights_version": "0",
"weights_rate_limit": "18446744073709551615",
"adjustment_interval": 100,
"activity_cutoff": 5000,
"registration_allowed": true,
"target_regs_per_interval": 64,
"min_burn": "500000",
"max_burn": "100000000000",
"bonds_moving_avg": "900000",
"max_regs_per_block": 64,
"serving_rate_limit": "50",
"max_validators": 64,
"adjustment_alpha": "0",
"difficulty": "0.24999999999999999996",
"last_adjustment_block": 5453825,
"blocks_since_last_step": 440,
"blocks_until_next_epoch": -340,
"blocks_until_next_adjustment": 0,
"recycled_lifetime": "2729430220511",
"recycled_24_hours": "0",
"recycled_since_registration": "2729430220511",
"liquid_alpha_enabled": false,
"alpha_high": "0.90000762951094834821",
"alpha_low": "0.70000762951094834821",
"commit_reveal_weights_interval": 1,
"commit_reveal_weights_enabled": false
},Other responses
| Status | Meaning |
|---|---|
400 | Bad request |
404 | Subnets not found |
500 | Internal server error |
Every request needs an Authorization header holding your API key — see Getting started with the Taostats API.