CKBurn

Storage Plain v315 → current

Fraction of a parent dividend share recycled when parent and child hotkeys have different coldkeys, as u64 / u64::MAX.

Explore chain
Queried by: validatorsstakersdevelopersanalytics

The Big Picture

Child hotkeys route dividends back to their parents. When the parent belongs to a different coldkey, this fraction of the flow is recycled into the subnet pool. The child take is computed on the same gross share, and both are removed before the parent is credited.

Use Cases

  • Model parent earnings from a child hotkey under another coldkey
  • Reconcile recycled alpha at epoch blocks
  • Build childkey management tools

From Chain Metadata

ITEM --> CK burn

Purpose & Usage

Purpose

Set the childkey burn proportion applied at every epoch to dividends flowing from a child hotkey to a parent under a different coldkey. Not a registration or setup fee.

Common Query Patterns

  • Single value query
  • Divide by u64::MAX (18446744073709551615) to get the fraction

Notes

  • Applied in get_parent_child_dividends_distribution (run_coinbase.rs L1132-L1143 at da06f033, v452): for each parent whose coldkey differs from the child coldkey, burn_take = ck_burn × parent_emission is recycled with recycle_subnet_alpha and child_take = childkey_take × parent_emission goes to the child. Parents under the same coldkey pay neither.
  • It is charged every epoch on the dividend flow, so it is a rate on inherited earnings, not a one-off cost.

Stored Value

Value in RAO (÷10⁹ for TAO)

Default Value

0 0x0000000000000000

Absent keys read as this value — querying a key that has never been written returns this default, not an error or empty result.

Decoding the value

u64 normalised to u64::MAX = 100%

get_ck_burn (pallets/subtensor/src/staking/stake_utils.rs L173-L177 at da06f033, v452) divides the stored u64 by u64::MAX into a U96F32 proportion. Same convention as TaoWeight, which sits beside it.

Number(value as bigint) / Number(2n ** 64n - 1n)

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 CKBurn storage (no keys - plain value)
const result = await api.query.SubtensorModule.CKBurn.getValue();
console.log("CKBurn:", result);

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Plain
First Version
v315
Current Version
v472