sudo_set_min_childkey_take
Call v195 → current #76Sets minimum child key take rate (admin).
View calls on chainCall Workflow
Click items to navigate. Pan and zoom to explore.
The Big Picture
Without a floor, children might compete to 0% take to attract parents, making childkey operations unsustainable. MinChildKeyTake ensures children always receive minimum compensation for their work. This protects the supply side of the childkey marketplace.
Why This Matters
A healthy childkey ecosystem needs viable children. If takes race to zero, quality operators can't cover costs and leave. The minimum ensures operating as a child remains economically feasible, maintaining supply.
Example Scenario
Children are undercutting each other with 0.1% takes, making operations unsustainable. Governance sets a floor. Admin calls sudo_set_min_childkey_take(min_take=0.05). Now all children must take at least 5%, ensuring basic compensation.
Common Questions
- Why would children compete to zero?
- To attract parent stake. Like price wars - everyone loses but feels compelled to compete. The minimum prevents this destructive race.
- What happens to existing lower takes?
- Implementation-dependent. They might be grandfathered or forced up. Check network behavior and migration rules.
Use Cases
- Ensure children receive minimum compensation
- Prevent unsustainable 0% take competition
- Maintain childkey operator viability
- Balance market dynamics in parent-child system
From Chain Metadata
Sets the minimum allowed childkey take. This function can only be called by the root origin.
Input Parameters
| # | Name | Type | Description |
|---|---|---|---|
| 0 | take | u16 | take (u16) |
Permissions
Permission data inferred from metadata. May be incomplete.
Requirements
- Caller has sudo privileges
- Valid take rate specified (0-MaxChildKeyTake)
Effects
Events Emitted
Storage Modified
Postconditions
- MinChildKeyTake updated
- Affects all future childkey take changes
Side Effects
- Child keys cannot set take below this
- Prevents race-to-bottom competition
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 });
// Build sudo_set_min_childkey_take call
const take = 0;
const call = api.tx[stringCamelCase("SubtensorModule")][stringCamelCase("sudo_set_min_childkey_take")](
take
);Runtime Info
View Source- Pallet Index
- 7
- Call Index
- 76
- First Version
- v195
- Current Version
- v393