This storage item was removed in v352
This storage item is no longer available in the current runtime. Existed from v195 to v352. Shown here for historical reference.
Use instead: SubnetIdentitiesV3
SubnetIdentities
Storage Removed Map v195 → v411REMOVED. Legacy v1 identity metadata for subnets (value type SubnetIdentity). Replaced via the SubnetIdentities → V2 → V3 migration chain.
The Big Picture
Beyond technical parameters, subnets have identity - who runs them, what they do, how to learn more. SubnetIdentities stores this metadata on-chain, making subnet discovery and research possible. It's the 'about page' for each subnet, stored permanently on the blockchain.
Why This Matters
What does subnet 18 actually do? Who runs it? SubnetIdentities provides this context. Essential for understanding what you're registering on or delegating to.
Example Scenario
Query SubnetIdentities(netuid=1) returns { subnet_name: 'Apex', github_repo: 'opentensor/apex', subnet_contact: '@apex_team', ... }. Now you know the subnet's name and where to find documentation.
Common Questions
- Is this required?
- No, subnet identity is optional. Some subnets have rich metadata; others have none. Subnets without identity data are harder to research.
- Who can update this?
- Only the subnet owner can update SubnetIdentities for their subnet.
- What fields are available?
- Common fields: subnet_name, github_repo, subnet_contact, description. The exact schema may evolve - check the type definition for current fields.
- Is this stored on-chain or IPFS?
- Directly on-chain for simplicity. Keep descriptions concise as storage costs TAO.
Use Cases
- Build subnet explorers and directories
- Display subnet name and description in UIs
- Find contact information for subnet operators
- Research subnet purposes and documentation
- Create searchable subnet catalogs
Purpose & Usage
Purpose
Store subnet name, description, contact info, and other human-readable metadata. Removed when V2 then V3 identity types rolled out — query SubnetIdentitiesV3 for current data.
Common Query Patterns
- Historical-only — current chain (v411) does not have this storage.
- Iterate pre-removal versions for backfill
Query Keys
| # | Name | Type | Description |
|---|---|---|---|
| 1 | key1 | u16 | key1 (u16) |
Stored Value
value (SubnetIdentity)
Relationships
Related Storages
- SubnetIdentitiesV3 Replaced by Migration chain: SubnetIdentities → SubnetIdentitiesV2 (also removed) → SubnetIdentitiesV3 (canonical at v411). Backfill indexers walking pre-removal history should read this; from removal onward use SubnetIdentitiesV3.
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 SubnetIdentities storage
const key1 = 0;
const result = await api.query.SubtensorModule.SubnetIdentities.getValue(key1);
console.log("SubnetIdentities:", result);Version History
Runtime Info
View Source- Pallet
- SubtensorModule
- Storage Kind
- Map
- First Version
- v195
- Removed In
- v352