How an IOTA miner gets paid
Mining on IOTA means holding one layer of a model that many machines train together. You are paid when your layer's work passes checks that Macrocosmos's coordinator (the orchestrator, in its code) supplies and scores.
IOTA, subnet 9
miners on one layer merge their weights
Each miner takes one layer of a run: it pulls activations from the layer before, runs forward and backward, and passes its own on.verified8
Mining elsewhere
Bitcoin
Every miner races at the same puzzle. The first to solve it takes the block reward.21
- Paid for
- winning the race
- Judged by
- anyone, by checking one hash
Ethereum
Validators lock up ETH and take turns proposing and attesting to blocks.22
- Paid for
- staking and showing up
- Judged by
- the protocol's public rules
A typical Bittensor subnet
Every miner answers the same kind of task. Validators score the answers and the chain pays by their ranking.inferred23
- Paid for
- ranking well among miners
- Judged by
- validators, running the subnet's code
Schematic. Layers and machines per layer vary by run; Orion-100B ran on 48 single-A100 peers.24
Subnet 9 against the usual subnet design
What that produces
Three of subnet 9's 256 slots earn. On 4 Oct 2026 one of them, UID 171, took 94.0% of what miners are paid, and 4.9% burned at the owner's slot.
Each square is one of subnet 9's 256 slots (UIDs). The three lit ones earn; the other 253 earn nothing. The share is of miner emissions.verified185
171 and 128 each sit alone on a coldkey with no identity, registered one block apart. They are most likely Macrocosmos's own pool and provisioning keys. If so, no independent miner earned from SN9 directly on 2 Oct 2026. On 4 Oct the same three UIDs earned.inferred
Read from the public code, the docs, the paper and the chain, by someone outside Macrocosmos. Every line links to where it was read.
verifiedread in the code or on chaininferredmy readingunknownnot publicunmarked: what Macrocosmos or the cited source says
The detail
Five ways a subnet pays miners
Contest, proof of resource, work to a spec, scored contribution, managed production. Subnet 9 has stood in three of them.
Validators judge, by rules anyone can read
Contest
Miners submit an entry. The best takes most of the pay.
2024Subnet 9 ran as a winner-takes-all pretraining contest.20
Validators judge, by rules anyone can read
Proof of resource
Miners supply hardware. Pay follows what is shown to be there and serving.
Validators judge, by rules anyone can read
Work to a spec
Miners deliver units of work that can be checked. Each unit that passes is paid.
Until Nov 2025Validators recomputed each miner's work in open code: fail below 0.8 magnitude or 0.9 cosine.verified12
Validators judge, by rules anyone can read
Scored contribution
Miners add to one shared result. Pay follows each miner's measured effect on it.
PlannedThe paper names this as future work, under the name CLASP.16
The owner judges
Managed production
The owner assigns the work, checks it with its own code, sets the pay and routes it through a pool.
Since 27 Nov 2025Subnet 9 today. The scoring code left the public repo for a zip from the coordinator.verified134
The grouping is mine; the subnet 9 entries are from its own record.inferred
Who earns, slot by slot
Ten validators set the same weight for UID 171 at each reading: 0.64 on 2 Oct, 0.94 on 4 Oct.
The weights each of the ten validators set, 2 Oct 2026, block 9,192,756
Ten validators set weights. Each gives UID 171 exactly 0.64 and sets three nonzero weights. The two that differ had updated a block or so later; the split between 128 and 209 moves from one fetch to the next, and 171 does not. The ten are Kraken, Crucible Labs, Rizzo, Datura, Macrocosmos, WildSage, Yuma, 1T1B, tao.bot and one unnamed; the page orders them by stake.verified
About ninety minutes earlier, at block 9192281, the owner's share was 0.067. At this read it is 0.103 to 0.127. 171 stayed at 0.64 at both reads. Two days later the split had moved: at block 9206495 (4 Oct 2026, 02:21 UTC) UID 171 was at 0.940, the burn UID 209 at 0.049 and UID 128 at 0.011, and ten validators each gave UID 171 exactly 0.94.verified
From work to TAO
Seven steps. One can be read in full, four publish the rule without the numbers, two are not public.
Read in the code at 22d702a (v4.12.10, 30 Aug 2026). The tag on each step says how much of it anyone outside Macrocosmos can read.
- 01
Work
Miner
Take one layer of a run. Pull activations, run forward and backward, submit activations, upload weights and optimizer state, merge partitions with peers.verified8
public - 02
Sign
Miner, native module
Every action answers an attestation challenge through a native module or an enclave key. The module is not in the repo; what it proves is not public.verified9
not public - 03
Check
Coordinator's code, run by validators
Until November 2025: recompute the miner's activations; fail below 0.8 magnitude or 0.9 cosine. Today the docs list consistency, peer agreement, signal shape and anti-gaming checks, as examples, without thresholds.verified12144
not public - 04
Score
Coordinator
Sum a miner's scores over a rolling window of about a day, times a per-miner multiplier. A negative total drops the miner.146
rule public, numbers not - 05
Weight
Coordinator, relayed by validators
Share of the run, times the run's share of incentive, minus the run's burn. Validators normalise it and set it on chain.verified61
rule public, numbers not - 06
Burn
Coordinator
Whatever the miners do not earn goes to UID 209. A hard cap limits the miners' total share; the number is not published.verified514
rule public, numbers not - 07
Payout
Chain, then Macrocosmos for the pool
Registered miners are paid alpha by Yuma from the weights. Train at Home miners are paid off chain about every 24 hours to a coldkey they give the coordinator; a period's pay freezes if the run's loss is not at its lowest yet.151110
rule public, numbers not
The formula, and who sets each term
Four of its five inputs are not published.
The code's data model and the docs agree on the arithmetic. The inputs are set per run by Macrocosmos.
S is a miner's score; the sum below the line runs over every miner in the same run.verified6145
What can be read, and what cannot
Six things can be read. Seven cannot.
Known
- How weights reach the chainverified
- The formula from score to weightverified
- The burn sink, UID 209verified
- The check before November 2025: recompute, 0.8 magnitude, 0.9 cosine, +1 or −3verified
- The kick policies: none, bottom N, below a score; tier bansverified
- Who earned at blocks 9192756 (2 Oct 2026) and 9206495 (4 Oct 2026), and how muchverified
Not public unknown
- The checks that ran on 2 Oct 2026, and their thresholds
- Whether the checks of 2 Oct 2026 still recompute the miner's work
- What the attestation module proves
- The burn, incentive share and multipliers of each run
- The cap on the miners' share
- Who controls UIDs 171 and 128
- How Train at Home splits its pay among Macs
From the paper to today
Eleven dated changes, from 16 Jul 2025 to Sep 2026.
Dates are commit dates in the public repo, docs dates, or publication dates.
- 16 Jul 2025The paper: pay per backward pass, a score that drops to zero after a set time, validators recompute the work. CLASP, the rule that credits each miner's effect on the loss, is named as future work.1617
- 5 Jun to 16 Aug 2025Burn set in the code six times: 80, 50, 20, 80, 50, 80 percent. An inverted burn condition fixed on 12 Aug.verified
- 28 Aug 2025The burn moves to the coordinator, with 0.8 as the fallback.verified
- 10 Sep 2025Several runs at once, each with its own burn and share of incentive.verified
- 13 Oct 2025Miners answer attestation challenges.verified9
- 27 Nov 2025v2.0.0. The scoring code leaves the repo for a zip from the coordinator; the burn arrives as UID 209's weight.verified134
- 20 May 2026The docs page that described the paper's backward-pass rule is deleted.verified
- 1 Jun 2026Orion-100B trains on 48 single-A100 peers provisioned from several providers.24
- 29 Jul 2026Tiers for runs and miners: Iron, Bronze, Silver, Gold, and Banned.verified7
- 6 Aug 2026New docs page: scoring on forward-pass activations, a rolling day, the formula above.verified14
- Sep 2026Miners file issues: zero earnings after 1,500 passes (#205), a registration queue reset 80 times in 34 hours (#193), a run stalled at epoch 12 (#204).verified19
Since the paper: backward passes became forward activations; exact recomputation became, at least in part, statistical checks; a short-lived score became a rolling day; no burn became a burn per run and a cap; CLASP never shipped.
Sources
24 links, numbered as they are cited above.
- 1weight_setting.py, line 12: validators fetch global_miner_scores
- 2weight_setting.py, line 130: fallback copies other validators' weights
- 3validator settings.py, lines 14 to 21: 21-minute interval, thresholds
- 4validator.py, line 106: validator code arrives as a zip from the orchestrator
- 5common settings.py, line 25: OWNER_UID = 209
- 6api_models.py, lines 223 to 288: MinerScore, RunIncentiveAllocation, SubnetScores
- 7run_metadata.py, line 7: kick policies and tiers
- 8miner_api_client.py: the miner's endpoints
- 9attestation_utils.py, line 28: imports common.attest, absent from the repo
- 10main_pool.py, line 38: imports miner.pool, absent from the repo
- 11miner_api_client.py, line 197: payout coldkey set with the orchestrator
- 12validator.py before v2.0.0, lines 108 to 165: recompute, magnitude gate, cosine, +1 or -3
- 13Commit fb83f78, 27 Nov 2025: v2.0.0
- 14Docs: Scoring, Rewards and Kicking (added 6 Aug 2026)
- 15Docs: Train at Home FAQ (21 Jul 2026)
- 16IOTA: A Technical Primer for Release, arXiv 2507.17766 (16 Jul 2025)
- 17The paper, explained on this site
- 18Bittensor finney, netuid 9, metagraph and weights at block 9192756
- 19macrocosm-os/iota issues #190 to #211, September 2026
- 20LLM Pretraining: The Use-Case Blockchain Has Been Waiting For? The subnet 9 whitepaper (Aug 2024)
- 21Bitcoin: A Peer-to-Peer Electronic Cash System (the whitepaper)
- 22ethereum.org: Proof-of-stake
- 23Bittensor docs: Yuma Consensus
- 24Macrocosmos Substack: Orion-100B (1 Jun 2026)
Three questions for the founders
Only Macrocosmos can answer these.
Who controls UIDs 171 and 128? Does all miner incentive now pass through Macrocosmos's pool and provisioning?
If yes, the miner on SN9 is Macrocosmos, and the open-mining story needs new words.
Why did scoring leave the public repo, and will it come back?
A validator cannot audit code it cannot read. Every allocator will ask this first.
What are the live numbers: the cap, each run's burn and share, the multipliers? Is CLASP still the plan now that Liquid Compute buys priced capacity?
With those numbers anyone could check the weights against the formula.