Net TAO Flow Accounting
EmissionWhen enabled, subnet emission shares use net TAO flow (gross flow minus protocol cost) instead of gross flow.
Mechanism Flow
Net TAO Flow Accounting
- Every block (computed during emission share calculation)
- sudo_set_net_tao_flow_enabled call (toggle on/off)
Click items to navigate to their reference pages.
The Big Picture
Gross TAO flow is easy to game: a subnet that imports cheap protocol-subsidized TAO inflates its emission share without actually earning user demand. Net flow corrects for this by subtracting the protocol's own contribution before computing shares. Switching it off reverts to the gross-flow behavior that preceded v411.
Use Cases
- Network governance decides whether protocol-subsidized inflow counts toward emission share
- Indexers reproduce on-chain emission share calculations
- Subnet owners model how protocol cost adjustment affects their share
TAO Flow normally allocates emission shares based on gross TAO movement per subnet. Net TAO Flow Accounting introduces a protocol-cost adjustment: each block, a per-subnet protocol cost (equal to emission plus chain buys minus root sells) is accumulated, EMA-smoothed, and subtracted from the gross flow before share computation. The result is that subnets where the protocol is heavily subsidizing inflow (relative to their net user-driven flow) get a smaller emission share. The system can be toggled on or off network-wide via NetTaoFlowEnabled.
Triggers
- Every block (computed during emission share calculation)
- sudo_set_net_tao_flow_enabled call (toggle on/off)
Inputs (6)
| Item | Type | Role |
|---|---|---|
| sudo_set_net_tao_flow_enabled AdminUtils | call | Toggle net-flow accounting on or off network-wide |
| NetTaoFlowEnabled SubtensorModule | storage | Global on/off switch for net-flow accounting |
| SubnetProtocolFlow SubtensorModule | storage | Per-block protocol cost accumulator per subnet |
| SubnetEmaProtocolFlow SubtensorModule | storage | EMA-smoothed protocol cost per subnet |
| SubnetExcessTao SubtensorModule | storage | Chain-buy TAO inflow per subnet (input to protocol cost) |
| SubnetRootSellTao SubtensorModule | storage | Root dividend sell TAO into subnet (input to protocol cost) |
Outputs (1)
| Item | Type | Role |
|---|---|---|
| SubnetTAO SubtensorModule | storage | TAO allocated to subnet pools (after net-flow adjustment when enabled) |
Source Files
pallets/admin-utils/src/lib.rs