Documentation / API reference / Subnet
Get Subnets
Last reviewed 2026-09-18
Returns the latest 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) | Subnet ID | |
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 netuid_asc, netuid_desc, emission_asc, emission_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[].net_flow_1_day | string | Yes | |
data[].net_flow_30_days | string | Yes | |
data[].net_flow_7_days | string | 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": 6,
"active_keys": 2,
"active_miners": 51,
"active_validators": 2,
"activity_cutoff": 5000,
"adjustment_alpha": "0",
"adjustment_interval": 0,
"block_number": 4107450,
"blocks_since_last_step": 85,
"blocks_until_next_adjustment": 0,
"blocks_until_next_epoch": 15,
"bonds_moving_avg": "0",
"difficulty": "4611686018427387903",
"emission": "183936012",
"immunity_period": 0,
"kappa": 0,
"last_adjustment_block": 4107425,
"max_burn": "0",
"max_difficulty": "0",
"max_neurons": 64,
"max_regs_per_block": 64,
"max_validators": 64,
"max_weights_limit": 65535,
"min_allowed_weights": 0,
"min_burn": "0",
"min_difficulty": "4611686018427387903",
"modality": null,
"netuid": 0,
"neuron_registration_cost": "1000000000",
"owner": null,
"recycled_24_hours": "-436106",
"recycled_lifetime": "367872024",
"recycled_since_registration": "367872024",
"registration_allowed": true,
"registration_block_number": 0,
"registration_cost": "0",
"registration_timestamp": "2023-03-20T18:47:48Z",
"rho": 0,
"serving_rate_limit": "0",
"target_regs_per_interval": 64,
"tempo": 100,
"timestamp": "2024-10-23T17:15:36.009Z",
"validators": 64,
"weights_rate_limit": "0",
"weights_version": "0"
},
{
"active_dual": 0,
"active_keys": 26,
"active_miners": 996,
"active_validators": 23,
"activity_cutoff": 5000,
"adjustment_alpha": "17893341751498265066",
"adjustment_interval": 112,
"block_number": 4107450,
"blocks_since_last_step": 53,
"blocks_until_next_adjustment": 81,
"blocks_until_next_epoch": 46,
"bonds_moving_avg": "0",
"difficulty": "1000000000000000000",
"emission": "40749507",
"immunity_period": 7200,
"kappa": 32767,
"last_adjustment_block": 4107419,
"max_burn": "0",
"max_difficulty": "1000000000000000000",
"max_neurons": 1024,
"max_regs_per_block": 0,
"max_validators": 128,
"max_weights_limit": 455,
"min_allowed_weights": 8,
"min_burn": "50000000",
"min_difficulty": "1000000000000000000",
"modality": 1,
"netuid": 1,
"neuron_registration_cost": "322844193",
"owner": {
"hex": "0xe2ee75ea11e4c5b7f5dac2e735278cfa0b1590c9856690f66653bdd85b709104",
"ss58": "5HCFWvRqzSHWRPecN7q8J6c7aKQnrCZTMHstPv39xL1wgDHh"
},
"recycled_24_hours": "47510813577",
"recycled_lifetime": "94000050159142",
"recycled_since_registration": "94000050159142",
"registration_allowed": true,
"registration_block_number": 172898,
"registration_cost": "0",
"registration_timestamp": "2023-04-13T19:08:36Z",
"rho": 0,
"serving_rate_limit": "10",
"target_regs_per_interval": 2,
"tempo": 99,
"timestamp": "2024-10-23T17:15:36.009Z",
"validators": 128,
"weights_rate_limit": "100",
"weights_version": "20802"
}
],
"pagination": {
"current_page": 1,
"next_page": null,
"per_page": 1024,
"prev_page": null,
"total_items": 53,
"total_pages": 1
}
}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.