Initializing the Problem

We require a few pieces of data to incentivize the miners

Bittensor, like any blockchain, works by validating all the inputs in a block and for Almanac, our blocks of routed unqualified volume must be initialized by passing in initial conditions so the validators can compose the problem and solve the optimization. We offer a convenient table of python native variables and explain them in the context of the initialization.

Variable

Data Type

Example

Explanation

n

Integer

100

Number of miners providing signals/volume.

B

Float (tokens)

1000.0

Total token budget available to allocate this epoch.

Vᵢ

Array[Float], length = n × k

[1200, 980, 1040, …] for each miner

Rolling qualified volumes (net of 1% fee) over the last k epochs. Captures scale of flow.

ROIᵢ

Array[Float], length = n × k

[0.04, 0.06, 0.05, …] for each miner

Rolling ROIs (fractions, not %). Captures profitability/adverse selection ability over the last k epochs.

x_prev

Array[Float], length = n

[0.10, 0.00, 0.05, …]

Allocation fractions from the previous epoch (carried forward for ramp).

v_prev

Array[Float], length = n

[5000, 4800, 5100, …]

Aggregate volumes across miners (used to compute HHI for ramp constraint).

v_total

Float

100000.0

Total market volume across all miners last epoch (normalizes HHI).

ROI_min

Float (threshold)

0.02

Minimum rolling ROI required for miner eligibility.

V_min

Float (threshold)

100.0

Minimum trailing qualified volume required for eligibility.

ρ_cap

Float (share cap)

0.10

Maximum share of routed volume any single miner can receive (e.g., 10%).

κ̄

Float (ratio)

B / Volume_prev = 0.9

Payout-to-volume cap: ensures total payouts don’t exceed sustainable ratio.

ε

Float

1e-4

Tolerance for Phase 2: ensures (T ≥ (1−ε) T_1).

ramp

Float

0.01

Smoothness parameter derived from HHI: limits how much allocations can shift epoch to epoch.

This comprises the data we use to score the miners in the epoch by validators as the initial conditions.

Last updated