ChildKeys

Storage Map v195 → current

Child hotkeys and proportions for a parent hotkey on a subnet .

Explore chain
Queried by: validatorsdelegatorsanalyticsdevelopers

The Big Picture

Child keys allow a parent hotkey to distribute its stake among multiple child hotkeys. Each child receives a proportion of the parent's stake, enabling complex validator operations - like running multiple specialized miners under one validator umbrella.

Why This Matters

How does a validator split stake among its operations? ChildKeys shows the distribution. Each child receives a proportion of the parent's stake for their specific role.

Example Scenario

Query ChildKeys(netuid=1, parent_hotkey=X) returns [(5000, child_A), (3000, child_B), (2000, child_C)]. Child A gets 50%, B gets 30%, C gets 20% of the parent's stake on subnet 1.

Common Questions

What are proportions in?
Basis points typically (10000 = 100%). Proportions should sum to 10000 for full distribution.
Why use child keys?
Validators with complex operations can delegate stake to specialized child hotkeys without moving actual TAO. Enables organizational flexibility.
How does this affect emissions?
Children earn based on their effective stake (proportion × parent stake). Emissions flow through the hierarchy based on these proportions.

Use Cases

  • Check how a validator distributes stake to child operations
  • Build stake flow visualizations
  • Calculate child hotkey effective stakes
  • Research stake delegation patterns
  • Verify child key configurations

From Chain Metadata

DMAP ( parent, netuid ) --> Vec<(proportion,child)>

Purpose & Usage

Purpose

Track stake distribution to child hotkeys - enables stake delegation within hotkey relationships.

Common Query Patterns

  • Query children for a parent on a subnet
  • Iterate all parent-child relationships
  • Calculate stake distribution from parent to children

Notes

  • Returns Vec<(proportion, child)>
Part of: Child Hotkeys

Query Keys

#NameTypeDescription
1
key1
AccountId key1 (AccountId) (hex -> SS58)
2
key2
u16 key2 (u16)

Stored Value

Value in RAO (÷10⁹ for TAO)

Relationships

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Query ChildKeys storage
const key1 = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const key2 = 0;

const result = await api.query
  [stringCamelCase("SubtensorModule")]
  [stringCamelCase("ChildKeys")](
  key1,
  key2
);

console.log("ChildKeys:", result.toHuman());

On-Chain Activity

Write Frequency
●●●○○○ Low 10K–100K est. writes

10K–100K estimated writes

#45 most written storage item

Write Source User Extrinsics

Modified via user-submitted extrinsics

As of block 7,429,232

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v195
Current Version
v393