Child Hotkeys
StakingHierarchical hotkey relationships where parent validators distribute stake and emissions to child keys.
Child Hotkey Hierarchy
Child Hotkeys
- Validator submits set_children call
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)
| Item | Type | Role |
|---|---|---|
| set_children SubtensorModule | call | Set child hotkey proportions |
| set_childkey_take SubtensorModule | call | Set child commission rate |
Outputs (5)
| Item | Type | Role |
|---|---|---|
| SetChildren SubtensorModule | event | Emitted when children are set |
| ChildKeys SubtensorModule | storage | Parent → child mapping with proportions |
| ParentKeys SubtensorModule | storage | Child → parent mapping |
| ChildkeyTake SubtensorModule | storage | Child commission rates |
| PendingChildKeys SubtensorModule | storage | Queued child key changes awaiting cooldown |
Source Files
pallets/subtensor/src/staking/set_children.rs 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)