Queried by: validatorsdeveloperssubnet ownersanalytics
The Big Picture
Bonds accumulate based on validator weights over time. BondsMovingAverage controls the smoothing - how much historical weights matter vs recent weights. Longer average = more stable bonds, slower to change. Shorter = more responsive, volatile.
Why This Matters
How quickly do bonds update? Longer moving average means your bond to a miner takes time to build (and decay). This affects dividend calculations and validator-miner relationships.
Example Scenario
Query BondsMovingAverage(netuid=1) returns the smoothing period. Bonds are an exponential moving average of weight history over this period.
Common Questions
- Why smooth bonds?
- Rewards long-term commitment. Validators who consistently support miners accumulate bonds and earn more dividends. Prevents gaming through rapid weight changes.
- How does this affect me?
- For validators: support miners consistently for better dividends. For miners: build long-term validator relationships.
Use Cases
- Understand how fast bonds respond to weights
- Research dividend calculation mechanics
- Model validator-miner economic relationships
- Design subnet bond parameters
- Debug unexpected dividend behaviors
From Chain Metadata
MAP ( netuid ) --> bonds_moving_average
Purpose & Usage
Purpose
Smooth bond value changes - controls how quickly bonds respond to weight changes.
Common Query Patterns
- Query by netuid
- Research bond dynamics
- Model dividend calculations
Query Keys
| # | Name | Type | Description |
|---|---|---|---|
| 1 | netuid | u16 | netuid (u16, hashed key component) |
Stored Value
Relationships
Modified By
Related Events
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 BondsMovingAverage storage
const netuid = 1;
const result = await api.query.SubtensorModule.BondsMovingAverage.getValue(netuid);
console.log("BondsMovingAverage:", result);Version History
v101 block 1 Added
v123 block 720,235 Internal re-bind
v149 block 3,014,339 Internal re-bind
v166–v194 · runtime versions skipped on chain (never deployed)
v195 block 3,791,350 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
- Map
- First Version
- v101
- Current Version
- v411