mikyo.one / IOTA / Mining Chain read 2 and 4 Oct 2026 · code at 22d702a
05 · Mining

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

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

Paid for
your layer's work passing the checks, summed over about a day14
Judged by
Macrocosmos's coordinator, in code that has not been public since 27 November 2025verified14

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

The usual designinferred23
Subnet 9 today
Who computes the score
Each validator, running the subnet's scoring code
Macrocosmos's coordinator. Each validator fetches a finished weight vector and sets it on chain every 21 minutes.verified13
What is paid for
Winning, or work anyone can check
Passing the coordinator's checks on assigned work, summed over a rolling window of about a day.146
Who earns
Any registered slot that performs
Three of 256 UIDs. One of them is the owner's, where the unpaid share burns.verified185
How pay arrives
Alpha on chain, by weight
Alpha on chain to registered slots. Off chain, about every 24 hours, to Train at Home miners.1511
Can the scoring be read
In the subnet's public repo
Not since 27 November 2025. Validators receive the code as a zip when they start.verified413

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.

4 Oct 2026latestblock 9,206,495 · 02:21 UTC
94.0%UID 171
1.1%UID 128
4.9%UID 209, burned
2 Oct 2026block 9,192,756 · 04:33 UTC
64.0%UID 171
25.7%UID 128
10.2%UID 209, burned

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.

  1. 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

  2. Validators judge, by rules anyone can read

    Proof of resource

    Miners supply hardware. Pay follows what is shown to be there and serving.

  3. 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

  4. 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

  5. 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.

Slot2 Oct4 Oct
UID 17164.0%94.0%No stake, no validator permit. Registered at block 8944744.verified
UID 12825.7%1.1%Validator permit, sets no weights. Registered at block 8944745, one block after 171.verified
UID 20910.2%4.9%The owner hotkey, Owner9. The code names it the burn sink.verified
253 others0%0%Registered, earning nothing.

The weights each of the ten validators set, 2 Oct 2026, block 9,192,756

UID 109 · Macrocosmos
UID 254
UID 148
UID 22
UID 236
UID 40
UID 64
UID 68
UID 76
UID 117
to UID 171to UID 128to UID 209, burned

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.

  1. 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
  2. 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
  3. 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
  4. 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
  5. 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
  6. 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
  7. 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.

Sm = Σ scores in the window × multiplierm
weightm = Sm ⁄ Σrun Sk × (1 − br) × wr × ar
burn = 1 − Σ weightm → UID 209
TERM
WHAT
SET BY
PUBLISHED
multiplierm
per-miner multiplier
Operators
not published
br
the run's burn
Macrocosmos, per run
not published; the code falls back to 0.8
wr
the run's share of all incentive
Macrocosmos, per run
not published
ar
fraction of the window the run was live
The clock
follows from run dates
cap
most the miners can take in total
Macrocosmos
not published

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.

  1. 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
  2. 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
  3. 28 Aug 2025The burn moves to the coordinator, with 0.8 as the fallback.verified
  4. 10 Sep 2025Several runs at once, each with its own burn and share of incentive.verified
  5. 13 Oct 2025Miners answer attestation challenges.verified9
  6. 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
  7. 20 May 2026The docs page that described the paper's backward-pass rule is deleted.verified
  8. 1 Jun 2026Orion-100B trains on 48 single-A100 peers provisioned from several providers.24
  9. 29 Jul 2026Tiers for runs and miners: Iron, Bronze, Silver, Gold, and Banned.verified7
  10. 6 Aug 2026New docs page: scoring on forward-pass activations, a rolling day, the formula above.verified14
  11. 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.

Three questions for the founders

Only Macrocosmos can answer these.

  1. 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.

  2. 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.

  3. 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.