Introducing Sub-Subnets
Historically, each subnet operates with a single incentive mechanism, a function that validators run to assign weights to miners based on the value of their work. The Sub-Subnets feature allows a subnet creator to apportion the subnet's emissions across multiple sub-subnets, each of which runs Yuma Consensus independently to evaluate the miners' performance on each of a number of distinct tasks.
Each miner receives emissions separately within each sub-subnet, so a miner's performance within one sub-subnet does not affect their rating in another, and their emissions for each epoch are summed across the sub-subnets. Validators receive dividends as a weighted sum of their performance across all sub-subnets - they cannot choose which sub-subnets to validate, and if they don't validate all sub-subnets, they receive proportionally reduced emissions. Sub-subnets don't change the total emissions to a subnet, but create a way for subnet creators to distribute those emissions to miners working on different tasks. This mechanism affords subnet creators a transparent, on-chain way to exercise fine-grained control over the work they are incentivizing, keeping miner effort focused on work that is most needed at a time.
Each sub-subnet has its own:
- Weight matrix: Each validator sets weights for each miner on each of the subnet's sub-subnets.
- Independent emissions: Since they depend on weights set by validators, a miner's emissions in each sub-subnet are independent.
- Transparent on-chain data: All sub-subnet configurations and the flow of emissions are visible on-chain.
- Emission distribution: Subnet creators can control what percentage of total emissions goes to each sub-subnet using the
sudo_set_subsubnet_emission_split
extrinsic.
Takeaways
- Same Validators, Same Stake: All validators participate in all sub-subnets within a subnet with identical stake weights.
- Same Miners: All miners registered on a subnet can participate in any or all of its sub-subnets.
- Owner-Controlled Proportions: The holder of the subnet creator key sets the emission distribution among sub-subnets.
- Separate Yuma Consensus: Each sub-subnet runs its own consensus to determine miner rankings.
What Should Stakers Know?
Core Impact:
- No change to your staking mechanics: Your stake is delegated to a validator on a subnet, and applies across all sub-subnets equally.
- Same total emissions: The subnet's total emissions remain unchanged - sub-subnets only redistribute these emissions internally among miners and validators.
- Transparent allocation: All emission proportions are visible on-chain, so you can see exactly how subnet owners are distributing emissions.
What This Means for Your Strategy:
- No immediate action required: Your existing staking strategy doesn't need to change
- Enhanced monitoring: You may want to track sub-subnet performance to understand subnet health
- Risk assessment: Factor in sub-subnet design when evaluating subnet quality
- Community oversight: Use transparency to hold subnet owners accountable for fair emission distribution
What Should Miners Know?
Automatic Participation:
- No separate registration: When you register for a subnet, you are eligible to participate in any of its sub-subnets
- Same UID across all sub-subnets: You use the same UID for all sub-subnets within a subnet
Performance Tracking:
- Independent scoring: Your performance is independent in different subnets, e.g. sub-subnet 0 doesn't affect your rating in sub-subnet 1.
- Separate incentive columns: You'll see individual incentive amounts for each sub-subnet in metagraph data.
- Cumulative emissions: Your total emissions = sum of emissions from all sub-subnets where you participate.
What Should Validators Know?
Core Changes
- Separate weight setting: You must set weights independently for each sub-subnet.
- Independent evaluation: Each sub-subnet requires separate assessment according to its specific criteria.
- Separate Yuma Consensus: Each sub-subnet runs its consensus algorithm independently to determine rankings.
- Same stake weight: Your stake weight is identical across all sub-subnets - no additional stake required.
- Weighted dividend calculation: Your dividends are calculated as a weighted sum of your performance across all sub-subnets. If you don't validate on all sub-subnets, you will receive proportionally reduced emissions.
Operational Changes
1. Evaluation Workload:
- Multiple assessments: You must evaluate miners separately for each sub-subnet's tasks
- Different criteria: Each sub-subnet may have distinct evaluation standards
2. Data Structure Changes:
- Two-dimensional weights: Weights are now set for each miner on each subnet.
- Separate incentive tracking: Each sub-subnet tracks incentives independently
- Extended metagraph: New columns for sub-subnet weights and incentives
What Should Subnet Creators/Developers Know?
Core Changes
-
Emission distribution: You can control what percentage of total emissions goes to each sub-subnet using the
sudo_set_subsubnet_emission_split
extrinsic. When the number of sub-subnets is set, the emission distribution is reset to an even split, but you can set it again with custom proportions.infoThe
sudo_set_subsubnet_emission_split
extrinsic accepts an optional vector parameter. If the parameter isNone
, the distribution is set to an even split. When it's notNone
, it reflects the proportion of emissions each sub-subnet gets. The proportion is calculated asvalue / 65535
. For example, in a subnet with two sub-subnets and vector[13107, 52428]
, sub-subnet 0 gets 20% and sub-subnet 1 gets 80%. -
Incentive mechanism design: You define the specific tasks and evaluation criteria for each sub-subnet
-
Transparent configuration: All sub-subnet settings are visible on-chain for community oversight
-
Single subnet slot: No need to register multiple subnets for multiple competitions
-
Immediate sub-subnet number setting: The number of sub-subnets is set immediately when changed.
-
Rate limiting: Subnet owners can set the number of sub-subnets once per 7200 blocks to prevent frequent changes.
Ensure proportions sum to 100% when setting them, or the request will be rejected.
Example Emissions Split
For each subnet, the subnet creator keeps 18% of emissions, 41% is allocated to miners, and 41% to validators and their stakers, unless the subnet creator has reduced their take. Of the 41% that goes to miners and validators, here is an estimated emission distribution across three sub-subnets for each 100 earned on the subnet:
- Sub-subnet 0 (60%): 100 _.41 _ .6 = 24.6
- Sub-subnet 1 (30%): 100 _.41 _ .3 = 12.3
- Sub-subnet 2 (10%): 100 _.41 _ .1 = 4.1
To achieve the above distribution, the subnet owner would submit the sudo_set_subsubnet_emission_split
extrinsic with the vector [39321, 19660, 6554]
(calculated as 60% × 65535, 30% × 65535, 10% × 65535).
Note that a miner who excels in sub-subnet 0 but performs poorly in others might receive more emissions than a miner who performs moderately across all sub-subnets, depending on the emission proportions and their relative performance.
On-Chain Data Structure
Sub-subnets extend the existing metagraph with additional columns:
UID | Hotkey | Stake | Sub-subnet 0 Weights | Sub-subnet 1 Weights | Sub-subnet 0 Incentive | Sub-subnet 1 Incentive
-----|--------|-------|---------------------|---------------------|----------------------|----------------------
123 | 5ABC...| 1000 | [0.3, 0.2, 0.1...] | [0.1, 0.4, 0.2...] | 0.05 τ | 0.02 τ
456 | 7DEF...| 800 | [0.2, 0.3, 0.2...] | [0.2, 0.3, 0.1...] | 0.03 τ | 0.04 τ
Backward Compatibility
- Existing subnets continue with only one sub-subnet (sub-subnet 0) collecting all emissions by default
- All existing API calls default to sub-subnet 0
- No breaking changes to current functionality