ChildKeyTakeSet

Event Re-added v195 → v219, v233 → v247, v252 → v265, v273 → v277, v290 → v315, v320 → current #46

Emitted when a child hotkey 's take rate is set.

View events on chain
Useful for: validatorsdelegatorsanalyticsdevelopers

The Big Picture

When a parent hotkey shares rewards with child keys, the child take determines how that share is further divided. The parent allocates a proportion to the child (set via SetChildren), and the child's take is their 'commission' on that allocation. This is the child's way of setting their price for participating in the parent's operation.

Why This Matters

Child key take affects the final distribution of rewards. If Parent gives Child 30% of emissions, and Child's take is 10%, then Child keeps 10% of that 30% (= 3% of total) and passes 27% through to their own stakers/delegators. Understanding this helps you evaluate the true economics of complex validator structures.

Example Scenario

A validator organization has a main hotkey (Parent) and an infrastructure partner (Child) at 40% allocation. The Child sets their take to 15%. ChildKeyTakeSet fires. Now when Parent earns 100 TAO: 40 TAO goes to Child's allocation, Child keeps 6 TAO (15% take), and 34 TAO flows to Child's stakers. The full picture requires understanding both the allocation AND the take.

Common Questions

What's the difference between child allocation and child take?
Allocation (from SetChildren) is what percentage of parent's rewards go to the child. Take is what percentage of that allocation the child keeps vs passes to their stakers. Final child income = allocation × take.
Can child take be changed frequently?
It's rate-limited (TxChildKeyTakeRateLimit). Children can't rapidly change their take to game the system. Increases may have additional restrictions.
Does this affect the parent's earnings?
Not directly - the parent's allocation to the child is fixed. Child take only affects how the child distributes their allocated share internally.

Use Cases

  • Child keys negotiate their commission on parent earnings
  • Track changes to validator organization economics
  • Monitor child key take rates across the network
  • Build validator analysis tools showing full take structure

How to Use This Event

  • Monitor child keys in validator structures you're tracking
  • Track take changes to understand validator economics
  • Build comprehensive validator fee analysis tools

From Chain Metadata

childkey take set

Triggers

Preconditions

  • Caller owns the child hotkey
  • Take is within allowed range (MinChildKeyTake to MaxChildKeyTake)
  • Take change not rate limited

Effects

Postconditions

  • ChildKeyTake storage updated
  • Child's portion of parent rewards adjusted

Side Effects

  • Child receives this percentage of allocated rewards
  • Affects distribution of parent's emission share

Event Data

#NameTypeDescription
0
arg0
AccountId Event field #0 (AccountId) (hex -> SS58)
1
arg1
u16 Event field #1 (u16)

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 });

// Subscribe to ChildKeyTakeSet events
api.query.system.events((events) => {
  events
    .filter(({ event }) =>
      event.section === stringCamelCase("SubtensorModule") &&
      event.method === "ChildKeyTakeSet"
    )
    .forEach(({ event }) => {
      console.log("ChildKeyTakeSet:", event.data.toHuman());
    });
});

Version History

v195 block 3,791,350 2 args
v233 block 4,920,350 2 args
v252 block 5,163,656 2 args
v273 block 5,659,032 2 args
v290 block 5,947,548 2 args
v320 block 6,523,566 2 args Current

Runtime Info

View Source
Pallet Index
7
Event Index
46
First Version
v195
Current Version
v393