Bonds

Storage Map v101 → current

Bond values between neurons.

Explore chain
Queried by: validatorsminersanalyticsdevelopers

The Big Picture

Bonds represent accumulated 'investment' from validators in miners. When a validator consistently gives weight to a miner, bonds accumulate. Bonds affect dividend distribution - validators earn dividends proportional to their bonds. It's a moving average of historical weight relationships that creates stickiness and rewards long-term commitment.

Why This Matters

Bonds explain why validator dividends aren't just based on current weights. A validator who has supported a miner for a long time has accumulated bonds and earns more when that miner does well.

Example Scenario

Query Bonds(netuid=1, uid=5) returns [(12, 0.15), (47, 0.08), ...]. Validator UID 5 has a 15% bond with miner 12 and 8% with miner 47. These bonds affect dividend calculations.

Common Questions

How do bonds accumulate?
Bonds grow when validators give weight to miners, smoothed by BondsMovingAverage parameter. It's like a weighted moving average of historical weight relationships.
Why do bonds matter for dividends?
Dividends are distributed based on bonds, not just current weights. This rewards validators who consistently support good miners over time.
Can bonds decrease?
Yes, if a validator stops weighting a miner or weights them less, bonds decay over time according to the moving average.

Use Cases

  • Understand validator-miner economic relationships
  • Analyze network topology and dependencies
  • Debug consensus mechanism behavior
  • Research bond accumulation dynamics
  • Build bond visualization tools

Purpose & Usage

Purpose

Track validator-miner bond relationships - accumulated investment from validators to miners.

Common Query Patterns

  • Query by netuid-uid for a validator's bond portfolio
  • Analyze bond distribution across miners
  • Track bond evolution over time
Part of: Yuma ConsensusLiquid Alpha

Query Keys

#NameTypeDescription
1
key1
u16 key1 (u16)
2
key2
u16 key2 (u16)

Stored Value

value (Vec<(u16, u16)>)

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Query Bonds storage
const key1 = 0;
const key2 = 0;

const result = await api.query
  [stringCamelCase("SubtensorModule")]
  [stringCamelCase("Bonds")](
  key1,
  key2
);

console.log("Bonds:", result.toHuman());

On-Chain Activity

Write Source Runtime Hook

Modified by runtime hooks (e.g., epoch transitions), not directly by user extrinsics

As of block 7,429,232

Runtime Info

View Source
Pallet
SubtensorModule
Storage Kind
Map
First Version
v101
Current Version
v393