Child Hotkeys

Staking

Hierarchical hotkey relationships where parent validators distribute stake and emissions to child keys.

Click items to navigate to their reference pages.

The Big Picture

Child hotkeys enable hierarchical validator structures. A parent validator distributes portions of their stake weight to child hotkeys, which participate in consensus as if they held that stake directly. Children earn a configurable take on the emissions their inherited stake generates.

Why This Matters

Child hotkeys enable sophisticated validator operations: running multiple miners from a single parent, creating validator pools, or delegating subnet-specific evaluation to specialized child keys.

Example Scenario

A parent validator with 1000 TAO stake assigns 40% to child A and 30% to child B on subnet 1. Child A operates with 400 TAO effective stake weight, child B with 300 TAO. The parent retains 300 TAO. If child A has 5% take, they keep 5% of the emissions their 400 TAO weight generates.

Common Questions

Can children have their own children?
Currently child hotkeys cannot create further children. The hierarchy is one level deep: parent → children.
Why schedule changes instead of immediate?
Scheduled changes prevent front-running. If a child could be added immediately, someone could add a child right before epoch to capture emissions, then remove them.

Use Cases

  • Running multiple miners from one validator
  • Creating validator pools with shared stake
  • Delegating subnet evaluation to specialists
  • Building hierarchical validator infrastructure

Child hotkeys enable validators to create hierarchical stake structures. Parents assign proportions to children, who inherit stake weight. Children earn a configurable take on inherited emissions. All changes go through mandatory scheduling via PendingChildKeys with a cooldown period (PendingChildKeyCooldown).

Triggers

  • Validator submits set_children call

Inputs (2)

ItemTypeRole
set_children SubtensorModulecallSet child hotkey proportions
set_childkey_take SubtensorModulecallSet child commission rate

Outputs (5)

ItemTypeRole
SetChildren SubtensorModuleeventEmitted when children are set
ChildKeys SubtensorModulestorageParent → child mapping with proportions
ParentKeys SubtensorModulestorageChild → parent mapping
ChildkeyTake SubtensorModulestorageChild commission rates
PendingChildKeys SubtensorModulestorageQueued child key changes awaiting cooldown

Source Files

pallets/subtensor/src/staking/set_children.rs
do_schedule_children()

Formulas

Proportional Stake Inheritance

Children inherit stake weight from parent proportional to assigned proportions.

child_stake_weight = parent_stake * proportion[child]
// proportions sum to <= 1.0 (u64::MAX scaled)
// remaining goes to parent directly

Child Take Split

Children earn a take on emissions from inherited stake before the parent receives their share.

child_emission = inherited_emission * child_take_rate
parent_remaining = inherited_emission * (1 - child_take_rate)

Related Workflows

set-children

Version History

v340 Child hotkey system introduced
v350 Multiple children per parent supported
v360 Scheduled child key changes for front-running prevention
v374 Child take rate limits adjusted