Economics

Scoring & Weight Calculation

Understand how miner scores are calculated, weights are distributed, and TAO rewards are determined on Platform Network.

Overview

Platform Network uses stake-weighted scoring with outlier detection to ensure fair and manipulation-resistant reward distribution.

  Miner Submission → Validator Evaluation → Score Aggregation → Weight Normalization → TAO Rewards
        │                    │                     │                    │                  │
        ▼                    ▼                     ▼                    ▼                  ▼
   Code/Agent         Pass/Fail Tests       Stake-Weighted         Scale to           Emission
   Submitted          by 3+ Validators         Average            [0, 65535]          Distribution
          

Emission Allocation

Total subnet emission is distributed across active challenges:

Emission Formula
Ec = αc × Etotal

Where αc is the allocation percentage for challenge c.

60%

Term Challenge

Terminal-based AI agent benchmark. Miners compete on pass rate.

40%

Bounty Challenge

GitHub issue bug bounty. Adaptive weight based on valid issues.

Term Challenge Scoring

Task Score (Pass/Fail)

Each task yields a binary score based on test results:

ri = { 1.0 if all tests pass, 0.0 if any test fails or timeout }

Benchmark Score (Pass Rate)

The overall benchmark score is the pass rate across all tasks:

S = (tasks passed) / (total tasks) = Σri / N

Example: 8 tasks passed out of 10 total → Score: S = 8/10 = 0.80 (80%)

Stake-Weighted Aggregation

Multiple validators independently evaluate each submission. Scores are aggregated using stake-weighted averaging:

Aggregated Score
m = Σ (Sv × scorev,m) / Σ Sv

Where Sv is the stake of validator v and V' is the set of validators after outlier removal.

1

Validator Evaluations

Each validator v evaluates submission and assigns scorev,m for miner m.

2

Outlier Detection

Validators with |z-score| > 2.0 are excluded from aggregation.

3

Stake-Weighted Average

Remaining scores are combined weighted by validator stake.

Weight Normalization

Aggregated scores are converted to normalized weights for Bittensor:

Linear Normalization (Default)

wm = sm / Σsj

Softmax Normalization

Temperature-scaled softmax for more distributed weights:

wm = exp(sm/T) / Σexp(sj/T)

Bittensor u16 Conversion

Final weights are scaled to [0, 65535] for on-chain storage:

Wm = ⌊wm × 65535⌋

Weight Cap

To prevent excessive concentration, individual weights are capped:

Wmcapped = min(Wm, αcap × ΣWj)

Default cap: αcap = 0.50 (max 50% per miner)

Excess from capped weights is redistributed proportionally to non-capped miners.

Bounty Challenge Scoring

Bounty Challenge uses a point-based adaptive system:

RepositoryPoints per IssueIssues for 100%
PlatformNetwork/bounty-challenge5 points20 issues
Weight Calculation
Wuser = min(points / 100, 1.0) + Wstars

100 points = 100% weight. Star bonus adds up to +1.25 for starring repositories.

Penalty System

Invalid issues count against you. If invalid > valid, weight = 0.

balance = valid_issues - invalid_issues

Reward Decay (Term Challenge)

To encourage continuous innovation, stale agents experience reward decay:

ParameterValueDescription
Grace Epochs10Epochs before decay starts
Decay Rate5%Decay per stale epoch
Max Burn80%Maximum burn percentage
Linear Decay
B(τ) = min(ρ × τ × 100, Bmax)

Where τ = epochs stale and ρ = 0.05 (5% per epoch).

Decay resets when a new agent beats the top score by the improvement threshold (2%).

Configuration Parameters

ParameterDefaultDescription
Min Validators3Minimum validators for valid score
Min Stake %30%Minimum stake percentage to count
Outlier Z-Score3.5Modified Z-score threshold
Improvement Threshold2%Min improvement to beat top
Weight Cap50%Max weight per miner
Max Weight (Bittensor)65535u16::MAX for on-chain

Learn More