IsNetworkMember

Storage Map v101 → v411

Whether a hotkey is registered on a subnet .

Explore chain
Queried by: minersvalidatorsdeveloperswallets

The Big Picture

A simple yes/no answer: is this hotkey registered on this subnet? More direct than querying Uids and checking for a valid response. This is the canonical membership check.

Why This Matters

Before you can mine, validate, or receive emissions on a subnet, you must be registered. This tells you definitively whether a hotkey is a member of a subnet.

Example Scenario

Query IsNetworkMember(hotkey=your_hotkey, netuid=1) returns true - you're registered on subnet 1. Returns false? You need to register before participating.

Common Questions

How is this different from querying Uids?
IsNetworkMember gives a boolean answer directly. Uids gives the UID if registered, or a default if not. Use IsNetworkMember for simple yes/no checks.
Can I be a member of multiple subnets?
Yes, the same hotkey can register on multiple subnets. Check IsNetworkMember for each subnet you care about.

Use Cases

  • Check if registration succeeded
  • Validate membership before staking or setting weights
  • Build registration status dashboards
  • Gate access to subnet-specific features in applications

From Chain Metadata

DMAP ( hotkey, netuid ) --> bool

Purpose & Usage

Purpose

Quick membership check without UID lookup.

Common Query Patterns

  • Check registration status before operations
  • Validate neuron membership
Part of: Neuron Registration

Query Keys

#NameTypeDescription
1
hotkey
AccountId Hot wallet address (hex -> SS58)
2
netuid
u16 Subnet ID

Stored Value

Whether hotkey is registered on subnet

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 IsNetworkMember storage
const hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const netuid = 1;

const result = await api.query.SubtensorModule.IsNetworkMember.getValue(hotkey, netuid);
console.log("IsNetworkMember:", result);

On-Chain Activity

Write Frequency
●●●●○○ Medium 100K–1M est. writes

100K–1M estimated writes

#28 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
v121 block 518,345 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
v151 block 3,157,274 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
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