Skip to content
7 changes: 4 additions & 3 deletions docs/learn/announcements.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,17 @@ This page tracks recent and upcoming changes to the Bittensor protocol and other

## Sub-Subnets (Major Feature Launch)

**Status**: Ready for deployment on September 12, 2025
**Status**: Deploying September 17
- **What**: Sub-subnets allow subnet owners to apportion emissions across multiple sub-subnets, each running Yuma Consensus independently
- **Key Features**:
- Enables up to 8 sub-subnets (IDs 0-7) within each main subnet for multi-task validation
- Fully backward-compatible with existing miners and validators via sub-subnet ID 0
- Each sub-subnet has its own weight matrix and independent emissions
- All validators participate in all sub-subnets with identical stake weights
- Miners automatically participate in ALL sub-subnets when registering for a subnet
- Emissions are divided evenly, but subnet owners can configure proportions.
- First version focuses on core functionality with additional features planned based on community feedback
- **Emission distribution control**: Subnet owners can set custom emission distributions using the `sudo_set_subsubnet_emission_split` extrinsic
- **Immediate sub-subnet number setting**: No onset period - changes take effect immediately
- **Rate limiting**: Subnet owners can set sub-subnet numbers once per 7200 blocks

## Hyperparameter Rate Limiting
**Status**: WIP
Expand Down
35 changes: 16 additions & 19 deletions docs/subnets/understanding-sub-subnets.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,24 +16,20 @@ 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**: Currently emissions are evenly distributed, but it is planned that subnet creators will control what percentage of total emissions goes to each sub-subnet.


- **Emission distribution**: Subnet creators can control what percentage of total emissions goes to each sub-subnet using the `sudo_set_subsubnet_emission_split` extrinsic. <!-- See: subtensor/pallets/admin-utils/src/lib.rs:1891-1910 -->

### Takeaways

1. **Same Validators, Same Stake**: All validators participate in all sub-subnets with identical stake weights.
2. **Same Miners**: All registered miners can participate in any or all sub-subnets.
3. **Owner-Controlled Proportions**: The holder of the *subnet creator* key will set the emission distribution among sub-subnets.
<!-- CHeck release state of above feature!!! -->
1. **Same Validators, Same Stake**: All validators participate in all sub-subnets within a subnet with identical stake weights.
2. **Same Miners**: All miners registered on a subnet can participate in any or all of its sub-subnets.
3. **Owner-Controlled Proportions**: The holder of the *subnet creator* key sets the emission distribution among sub-subnets.
4. **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 weight remains identical across all sub-subnets within a subnet. The same validators, same stake, same neurons participate in all sub-subnets.
- **Same total emissions**: The subnet's total emissions remain unchanged - sub-subnets only redistribute these emissions internally.
- **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 and 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:**
Expand All @@ -45,7 +41,7 @@ Each sub-subnet has its own:
## What Should Miners Know?

**Automatic Participation:**
- **No separate registration**: When you register for a subnet, you automatically participate in ALL its sub-subnets
- **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:**
Expand All @@ -61,38 +57,37 @@ Each sub-subnet has its own:
- **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 receive proportionally reduced emissions (e.g., if you validate 1 out of 8 sub-subnets, you receive 1/8 of your potential emissions).
- **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**: Weight data becomes `[validator][uid][sub_subnet]`
- **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**: Currently, emissions are divided evenly between subnets; In the planned release state, you will control what percentage of total emissions goes to each sub-subnet.
- **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 even, but you can set it again with custom proportions.

:::info
Currently, emissions are divided evenly between sub-subnets; In the planned release state, you will control what percentage of total emissions goes to each sub-subnet (planned feature).
The `sudo_set_subsubnet_emission_split` extrinsic accepts an optional vector parameter. If the parameter is `None`, the distribution is set to an even split. When it's not `None`, it reflects the proportion of emissions each sub-subnet gets. The proportion is calculated as `value / 65535`. For example, with two sub-subnets and vector `[13107, 52428]`, sub-subnet 0 gets 20% and sub-subnet 1 gets 80%. <!-- See: subtensor/pallets/subtensor/src/subnets/subsubnet.rs:173-175 -->
:::
- **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. <!-- See: subtensor/pallets/subtensor/src/subnets/subsubnet.rs:91-116 -->
- **Rate limiting**: Subnet owners can set the number of sub-subnets once per 7200 blocks to prevent frequent changes. <!-- See: subtensor/pallets/subtensor/src/lib.rs:1842-1844 -->

:::tip
Ensure proportions sum to 100%.
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 $\tau$ earned on the subnet:
Expand All @@ -101,6 +96,8 @@ For each subnet, the subnet creator keeps 18% of emissions, 41% is allocated to
- Sub-subnet 1 (30%): 100 $\tau$ *.41 * .3 = 12.3
- Sub-subnet 2 (10%): 100 $\tau$ *.41 * .1 = 4.1

**Setting Custom Proportions:**
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.

Expand Down