Queried by: minersvalidatorsdevelopersanalytics
The Big Picture
UIDs are the internal identifiers for neurons on each subnet. When validators set weights, they use UIDs, not hotkey addresses. This storage lets you translate between the two - given a hotkey, what's its UID on this subnet?
Why This Matters
You registered on subnet 1 - what's your UID? Validators need UIDs to set weights. Miners need UIDs to understand their position. This is the hotkey→UID lookup.
Example Scenario
Query Uids(netuid=1, hotkey=your_hotkey) returns 47. Your neuron is UID 47 on subnet 1. If it returns None/default, you're not registered on that subnet.
Common Questions
- What if I'm not registered?
- The query returns a default value (typically 0 or None depending on client). Always check IsNetworkMember for definitive registration status.
- Can UIDs change?
- UIDs are reassigned when neurons are pruned and slots reused. Your UID is stable while registered but may be given to someone else after deregistration.
Use Cases
- Find your neuron's UID after registration
- Check if a hotkey is registered on a subnet
- Map hotkey addresses to UIDs for weight setting
- Verify registration status before operations
From Chain Metadata
DMAP ( netuid, hotkey ) --> uid
Purpose & Usage
Purpose
Map hotkey to its neuron UID within a subnet.
Common Query Patterns
- Query UID for a hotkey on a specific subnet
- Check if a hotkey is registered on a subnet
Query Keys
Stored Value
Relationships
Code Examples
import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443
const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);
// Query Uids storage
const netuid = 1;
const hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const result = await api.query.SubtensorModule.Uids.getValue(netuid, hotkey);
console.log("Uids:", result);On-Chain Activity
Write Frequency
●●●●○○ Medium 100K–1M est. writes
100K–1M estimated writes
#26 most written storage item
Write Source User Extrinsics
Modified via user-submitted extrinsics
As of block 7,429,232
Version History
v101 block 1 Added
v120 block 315,568 Internal re-bind
v123 block 720,235 Internal re-bind
v128–v132 · runtime versions skipped on chain (never deployed)
v133 block 1,404,224 Internal re-bind
v136 block 1,756,781 Internal re-bind
v138 block 1,907,363 Internal re-bind
v140 block 1,929,216 Internal re-bind
v146 block 2,848,978 Internal re-bind
v149 block 3,014,339 Internal re-bind
v154 block 3,308,611 Internal re-bind
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 Internal re-bind
v202 block 3,848,823 Internal re-bind
v207–v209 · runtime versions skipped on chain (never deployed)
v210 block 4,345,556 Internal re-bind
v213–v215 · runtime versions skipped on chain (never deployed)
v216 block 4,510,996 Internal re-bind
v220–v232 · runtime versions skipped on chain (never deployed)
v233 block 4,920,350 Internal re-bind
v235–v237 · runtime versions skipped on chain (never deployed)
v238 block 4,936,550 Internal re-bind
v266–v272 · runtime versions skipped on chain (never deployed)
v273 block 5,659,032 Internal re-bind
v275–v275 · runtime versions skipped on chain (never deployed)
v276 block 5,781,672 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind
v307–v314 · runtime versions skipped on chain (never deployed)
v315 block 6,414,634 Internal re-bind
v316–v319 · runtime versions skipped on chain (never deployed)
v320 block 6,523,566 Internal re-bind
v327–v333 · runtime versions skipped on chain (never deployed)
v334 block 6,811,690 Internal re-bind
v353–v360 · runtime versions skipped on chain (never deployed)
v361 block 7,063,679 Internal re-bind
v386–v390 · runtime versions skipped on chain (never deployed)
v391 block 7,782,857 Internal re-bind
v394–v400 · runtime versions skipped on chain (never deployed)
v401 block 8,036,576 Internal re-bind Current
Runtime Info
View Source- Pallet
- SubtensorModule
- Storage Kind
- Map
- First Version
- v101
- Current Version
- v411