EMA Price Halving Period

How the EMA price halving period hyperparameter sets the halving term in a subnet's moving-price EMA, controlling how quickly that price adapts to the spot price.

EMA price halving period is a per-subnet hyperparameter, listed in the documentation as EMAPriceHalvingPeriod, that sets the halving time of a subnet’s moving average price. The reference describes it as a u64 with a default of 201,600 blocks, set through the sudo_set_ema_price_halving_period extrinsic at root permission (Subnet Hyperparameters).

What It Controls

A subnet’s moving price is an exponential moving average (EMA) of its token price, written as SubnetMovingPrice, rather than the live spot price. The EMA blends the current price with the prior EMA using a smoothing factor, and the halving period is the term that shapes that factor (Exponential Moving Averages, Subnet Deregistration).

The smoothing factor is computed dynamically from subnet age and this halving period: it scales with blocks since the subnet started divided by those blocks plus the halving period. A larger halving period yields a smaller factor and a smoother, slower-adapting price, while a smaller one makes the moving price more responsive to spot movements (Subnet Deregistration, Exponential Moving Averages).

A consequence of that age term is that new subnets adapt slowly. A freshly registered subnet starts with a near-zero smoothing factor and gradually approaches the base value as it matures, so the halving period governs how that ramp behaves over the subnet’s life (Exponential Moving Averages).

Why It Matters

The moving price is not just a display value. A subnet’s share of TAO block emission is determined from its EMA price, scaled by its root proportion and reduced by any miner-burn penalty, so the halving period influences how quickly emission shares track price changes (Exponential Moving Averages).

The same EMA price also decides subnet deregistration: the subnet selected for deregistration is the one with the lowest EMA price among non-immune subnets. By smoothing the price, the halving period makes both emission shares and deregistration selection slow to respond to short-term price fluctuations, which the documentation frames as protection against manipulation (Subnet Deregistration, Exponential Moving Averages).

Documented Type, Default, and Setter

The Subnet Hyperparameters reference lists EMAPriceHalvingPeriod as a u64 with a default of 201,600 blocks. It is changed through the sudo_set_ema_price_halving_period extrinsic and requires root permission (Subnet Hyperparameters).

At the documented mainnet and testnet block cadence of one block every 12 seconds, that default of 201,600 blocks corresponds to about 28 days of smoothing horizon (Subnet Hyperparameters, Bittensor Networks).

That same 201,600-block figure is exposed as a chain startup constant, listed in the constants reference as api.consts.subtensorModule.initialEmaPriceHalvingPeriod with the raw value 201600. That constant is the value the chain seeds a new subnet’s halving period with at launch; the live EMAPriceHalvingPeriod storage value is the root-settable span used afterward, so a subnet’s current halving period can differ from this initial constant once it has been changed (Subtensor Constants: initialEmaPriceHalvingPeriod, Subnet Hyperparameters).

Because each subnet carries its own value as per-netuid state, the halving period on one netuid can differ from the documented default and from another subnet’s value (Subnet Hyperparameters).

Reading the Live Value for netuid 1

EMA price halving period is per-subnet chain state, so any live claim is tied to a specific netuid. For the documented example netuid 1 on Finney mainnet, the value appears in that subnet’s hyperparameter table, which the reference describes under viewing a subnet’s hyperparameters (Subnet Hyperparameters: View hyperparameters). The infobox uses netuid 1 only as an example label; other subnets expose their own values (Bittensor Networks).

Distinction from Burn Half Life

Both parameters are halving terms, but they govern different quantities. Burn half life is the decay horizon for a subnet’s dynamic registration burn cost, while EMA price halving period is the halving term in the subnet’s moving-price EMA (Subnet Hyperparameters, Exponential Moving Averages).

  • Burn half life — decay horizon for the registration burn cost.
  • EMA price halving period — halving term in the subnet moving-price EMA.

Distinction from Spot Price

Spot price is a subnet’s instantaneous token price. EMA price halving period shapes the smoothed moving price derived from that spot price, which is the value used for emission shares and deregistration rather than the raw spot value (Exponential Moving Averages, Subnet Deregistration).

  • Spot price — the instantaneous token price.
  • EMA price halving period — control on how fast the smoothed moving price follows spot.

Further Reading

Topics SubnetsEmission