SubnetOwnerCut
Storage Plain v133 → v411Owner cut fraction from emissions , encoded as u16. To get the fraction: value / u16::MAX (i.e. value / 65535). NOT basis points (10000) or percent (100).
Explore chainQueried by: subnet ownersvalidatorsanalytics
The Big Picture
Subnet owners receive a fraction of subnet emissions as payment for running the subnet. This parameter sets that fraction network-wide, encoded as u16 / u16::MAX.
Use Cases
- Calculate owner earnings (divide by 65535 first!)
- Research subnet economics
- Compare with validator earnings
From Chain Metadata
ITEM( subnet_owner_cut )
Purpose & Usage
Purpose
Define what portion of subnet emissions goes to subnet owners. Stored as a u16 normalised to u16::MAX = 100% per the runtime's `get_float_subnet_owner_cut` helper.
Common Query Patterns
- Single value query
- Divide by 65535 (u16::MAX) to get fraction; multiply by 100 for percent
Stored Value
value (u16)
Decoding the value
u16 (normalised: value / u16::MAX = fraction)Subtensor encodes percentage-like u16 fields as `value / u16::MAX`. e.g. 32767 ≈ 50%, 65535 = 100%.
Common bug
Indexers commonly divide by 10000 (assuming basis points) or 100 (assuming percent), yielding values ~6.55x too large. Verified via `Self::get_float_subnet_owner_cut` in pallets/subtensor/src/utils/misc.rs which divides by u16::MAX.
const fraction = (value as number) / 65535;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 SubnetOwnerCut storage (no keys - plain value)
const result = await api.query.SubtensorModule.SubnetOwnerCut.getValue();
console.log("SubnetOwnerCut:", result);Version History
v133 block 1,404,224 Added
v149 block 3,014,339 Internal re-bind
v278–v289 · runtime versions skipped on chain (never deployed)
v290 block 5,947,548 Internal re-bind Current
Runtime Info
View Source- Pallet
- SubtensorModule
- Storage Kind
- Plain
- First Version
- v133
- Current Version
- v411