Skip to main content
API referenceSubnets

Subnet Miner Fairness

Last updated

GET
/api/v1/subnets/{netuid}/miner-fairness

Measure whether a subnet's registered miners actually earn, over a 7d/30d/90d window rather than from a snapshot. Every dashboard publishes a miner count; the median subnet has 99.2% of its non-validator UIDs on zero emission, so that count read as a count of earners is close to fiction. Reports the daily zero rate, how many days each miner UID earned on -- earned on 0 of 31 and earned on 3 of 31 are different answers a snapshot collapses -- and emission concentration across controlling ENTITIES (the addresses holding the UIDs) as the headline lens, because a subnet with three operators behind 256 UIDs is not diverse and the per-UID Gini alone hides that. Descriptive only: there is no fairness score, because a high Gini on a subnet whose task genuinely has one best answer is not misconduct.

Path Parameters

netuid*integer
Range0 <= value

Query Parameters

window?string

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.

Default"30d"

Value in

  • "7d"
  • "30d"
  • "90d"

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/api/v1/subnets/0/miner-fairness"
{  "data": {    "concentration": {      "entity": {        "holders": 1,        "nakamoto_coefficient": 1      },      "uid": {        "holders": 1,        "nakamoto_coefficient": 1      }    },    "days_covered": 1,    "entity_count": 1,    "field_sources": {      "example": {        "kind": "measured",        "storage": "example"      }    },    "miner_uid_count": 1,    "netuid": 7,    "persistence": {      "earned_every_day_count": 1,      "max_earning_days": 0.5,      "median_earning_days": 0.5,      "never_earned_count": 1    },    "point_count": 1,    "points": [      {        "earning_miner_count": 1,        "miner_count": 1,        "snapshot_date": "example"      }    ],    "schema_version": 1,    "uids_per_entity": 0.5,    "window": "30d"  },  "meta": {    "artifact_path": "example",    "cache": "short",    "contract_version": "2026-06-29.1",    "generated_at": "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}