Between 06:22 and 07:10 UTC on Tuesday, one taker exploited how the validator processed swap events, the team wrote in the channel. Swaps miners had already delivered got marked timed out, and the slash landed in the taker's wallet. A validator-side bug, a regression from the previous week's fixes. No user lost anything: every swap completed or was refunded, and the damage stopped at miner collateral.

The network went down and the fix took a full red team pass before it shipped. UID 189, the first miner hit, was reimbursed on chain. Everyone slashed after that was not, and that is the rule from here: first hit covered, nothing after. Bounties only count when the report lands before the exploit.

Then the rewrite. Version 3.7.3 reopened the subnet on Wednesday with miner rewards scaling to swap fees. Each scoring round pays out up to twice the fees collected over the last 24 hours, and the rest burns. Posting a new wallet costs a one-time 0.02 SOL, and a posted miner wallet can no longer be the source of a swap. Emission now follows revenue.

The repo reads like the incident report. Read program events only from the program's own invocation frame. Refuse a posted miner wallet as a reservation source. Refuse a claimed source deposit as a delivery. Twelve commits landed from Tuesday to Thursday, and read in order you can watch the doors close one at a time.

Then Thursday, another hole. A taker can name someone else's wallet as the source, wait for that wallet to send the miner money for any reason, and submit that transfer as its deposit. Recipient, amount, sender and timing all line up, so validators accept it. The miner then pays the taker with money that was its own, or eats a slash for not paying. Evan's proposed fix: make the taker prove it controls the source wallet when it reserves. The team is aware and deferring to miners instead, recommending they pull quotes before topping up, because a signature check adds a step for users. That trade is in the miner guide. A subnet that got burned once is choosing convenience over closing the gap.

— The incident post in SN7 on Tuesday night: the halt, the reimbursement for UID 189, and the rule going forward.

Subnet Spotlight

Score (SN44) spent the week closing the holes in how it picks a winner.

Three fixes in five days. The copy check moved first: a model now needs to differ on 3 of 10 sampled past challenges to shed the copy flag, down from 4. Behind that sits an audit of 12,671 element-epochs, one task type by one round by one winner, since July 11. The paid model was not the top scorer in 2,565 of them, and every one of those went to an older commit.

Then the tiebreak. A miner was skipping the tasks it was weak on, then taking the top spot on the tiebreak anyway. It now compares the last 10 shared challenges both hotkeys scored, so skipping a task stops paying. Thursday brought Tiebreak Profiles: separate rules per element, so detection work and counting work stop sharing one tiebreaker.

The channel runs on block numbers. A miner posts a block, the owner checks the annotation, corrects the ground truth when the miner is right. "Checks are performed once a day, pointless to multi ping you won't get an answer faster," he told one of them, then fixed the block. Fallen-person detection went up in difficulty Thursday, described as his last attempt at that element.

— The tiebreak fix posted in SN44 on Tuesday.

Almanac (SN41) is 17th on Polymarket's builder leaderboard.

$7.89M of routed volume in the last month, per Polymarket's own table. A second builder code, almanac.market.2, sits 22nd at $6.30M. Put them together and it is $14.19M, past Jupiter's $12.03M in 10th.

155 miners split 25 TAO a day, and their forecasts settle against markets anyone can check. The people who moved that volume came for the predictions. None of them had to know the models come from miners.

That is the shape of a subnet that works: the product is the front end, the incentive layer stays invisible. Almanac made Polymarket's builder table on prediction volume. The Bittensor part is plumbing.

— The leaderboard placing, posted in SN41 on Thursday.

Sentiment Roundup

Hot. 1,472 messages across 75 channels on Thursday, up from 958 across 74 the week before. ORO (SN15) led at 125, RedTeam (SN61) at 112, Harnyx (SN67) at 102, Score (SN44) at 89, BitMind (SN34) at 88, Beam (SN105) at 77, Affine (SN120) at 69, Yanez (SN54) at 61.

Building.

  • Harnyx (SN67) removed its model allowlist. 146 miners can now build on any paid model on OpenRouter, billed at list price against the same task budget, promos excluded.

  • KubeTEE (SN90) cut the minimum cluster from seven nodes to three, with 10 TAO collateral per node, so 30 TAO on the smallest. Blackwell only from here, Hopper windowed out in November.

  • Leadpoet (SN71) moved its miner pool from 30% to 50% of the incentive allocation, with slots that stack: 20% at +10 points, 15% at +5, 15% at +1.

  • Beam (SN105) split the room media token into publisher and viewer tokens after a viewer could hijack a live stream. UID 75 reported it and gets +5% emissions until October 27.

  • Claims (SN111) now shares coverage credit at 1/n when several miners land the same claim. Top score dropped from the .75 band to about .60 on the first batch after.

  • Vidaio (SN85) opened its upscaling competition: rebuild 1080p from a ×2 or ×4 downscale, 16 hidden clips, speed worth 30%.

  • SOMA (SN114) moved its compression contest onto closed models, starting with gpt-6-luna.

  • Ditto (SN118) fixed a 38-hour scoring stall, caused by a dataset seed that was not tied to a chain block.

  • MVTRX (SN79) found its validator timing low UIDs about 4 ms slower each round and randomises query order in the next release.

  • Swarm (SN124) raised €370K, opened a lab in Andorra on October 15, and starts its first full-time Autonomy ML Engineer November 1.

  • Apex (SN1) froze its NIST-Lite board at 639 of 640, where the 1% crown rule needs 645. v0.2 adds multi-peg assembly so a good policy cannot max it out.

  • BitSec (SN60) is taking benchmark projects off the open list, since hard steering outruns bug hunting and the checks catch too little of it.

  • Ingot (SN97) dropped distillation for quantization: compress Qwen3.8-27B to FP8 and beat the king without drifting from the teacher. Copies get fingerprinted and take the hotkey down with them.

Friction.

Harnyx's batch broke on Thursday when a validator went out mid-run. By one miner's count, 209 of 251 scripts failed a single OpenRouter billing check, and 38 agents got paid. The owner's read: a fix for yesterday's stall never reached the validator, so the push landed between batches. The commitment from here is to fail a batch outright when verification breaks, and split the emission evenly.

Affine (SN120) paid 10 UIDs out of more than 500, and its held-out score slipped from .75 on e75 to .656 on e76 and e77. One miner called it "LUCKY TAKES ALL" with a straight face. The team's answer is that held-out runs bounce and the on-chain weights keep moving.

Niome (SN55) got the sharpest question of the week: why does the top 10 hit 0.65 to 0.71 consistency when an honest design sits at 0.10? The team says seeds are drawn at the start of validation and points at the W&B upload times. Miners pointed back at the arithmetic.

Claims (SN111) went live with the 1/n split on Monday night having been flagged the previous Friday, with no cutover date announced. The top of the board repriced itself immediately.

The protocol. Null consensus gives subnet owners a second epoch mechanism: the highest-stake UID holds the only validator permit, sets the weights, and decides miner pay for the whole subnet. Consensus and bond math get skipped, and UID capacity goes from 256 to 2,500, shared across mechanisms at 1,250 for two and 625 for four. Owners switch it with one hyperparameter, epoch_consensus. The root channel asked the right question within the hour: how does anyone check the one permit holder ran the scoring code. "We don't. Don't verify, trust," came the reply, which is the deal validators already live under. Null writes it down.

Cold. 27 of the 102 channels in this week's record posted nothing on Thursday. The map still runs on about a dozen teams carrying the news, and the rest watching.

Numbers That Matter

  • 1,472 messages across 75 channels on Thursday, up 54% from 958 across 74 last week.

  • $256.28 for TAO, down 7.7% from last issue's $277.53. Market cap $2.91B, off 6.8% on the day.

  • 209 of 251 scripts broken by one mid-batch validator swap on Harnyx, with 38 agents paid.

  • 10 of 500+ UIDs paid on Affine, held-out score .75 on e75, then .656 on e76 and e77.

  • 639 of 640 on Apex's NIST-Lite, where the crown needs 645.

  • 0.7811 for UID 50 in Vidaio's frame interpolation final. The crown bar was 0.85, so the podium split the emission instead.

  • $7.89M at 17th on Polymarket's builder table, and $6.30M at 22nd for the second Almanac code.

  • 146 miners off Harnyx's model allowlist, 3 nodes as KubeTEE's new minimum, 50% as Leadpoet's miner pool.

  • 3 of 10 as Score's copy-flag threshold, against 12,671 element-epochs audited since July 11.

Notable Quotes

❝

"The claim that funds were taken by the team is false: the slashed collateral went to the taker's wallet. It's all on chain for anyone to check." — Mango, Allways (SN7)

❝

"The fix is for validators to check the sender address as well, not just match it: make the taker prove it controls the source wallet when it reserves." — Evan, Allways (SN7), on the second hole

❝

"I'd rather keep the discussion public since there has been suspicions as such so I want to resolve it for all." — 0km4rk, Harnyx (SN67)

❝

"Those consistency scores are reachable and I think miners already demonstrated it in the previous tasks." — jgenome, Niome (SN55)

Human Moment

Thursday on SN67 started with an accusation. Almost every agent in the batch had failed on a billing check, one miner called it self-mining, and the owner was asked to take it to DMs.

"I'd rather keep the discussion public since there has been suspicions as such so I want to resolve it for all."

That is a harder sentence to write than it looks. The easy move is the DM, where nothing you say gets quoted. The owner stayed in the channel for four hours, explained that a fix for the previous day's stall never reached the validator, and then said the part most teams leave out.

"It is unfair and unfortunately we will have more incidents as such as we keep on trying to move faster."

Then the commitment: when verification breaks, the batch gets failed and the emission splits evenly. Frost, who had spent the morning asking how long a fix would take, came back to it: "Thanks for taking the trouble to sort it out for all of the miners." LoonerFinger put the stakes plainly: "I hope the subnet retains the trust of the miners."

That trust is the whole asset. Subnets lose miners over a broken batch far more easily than they lose them over a bad week, and the ones that keep them are the ones that answer in public while it is still going badly.

— SN67 on Thursday morning, where the self-mining accusation got answered in the open.

Coming Up

  • Vidaio (SN85): Upscaling 004 enrollment opens Friday October 23 at 14:00 UTC and closes Saturday October 31, with 500 alpha staked on the hotkey as the entry. Results November 3, paid over 14 days.

  • Apex (SN1): v0.2 moves to multi-peg assembly on a NIST ATB-1 board, with tighter fits, cluttered starts, physics and sensor noise, and partial credit per seated peg.

  • KubeTEE (SN90): Blackwell-only clusters from here, Hopper windowed out by November. Phase 1 measures before anything gets slashed.

  • Swarm (SN124): Sentinel gets its first operating system and flight authorisation in Greece, Avalanche goes to prototype and snow trials, then ski resorts and solar plants.

  • MVTRX (SN79): 0.6.5 hits testnet, mainnet a few days later, and 0.6.6 fixes the per-UID delay itself.

  • Reliquary (SN81): the new async RL run, Teutonic I, verifies tokens with a Gumbel draw keyed by public randomness. Under 90% match on submit and the rollout gets rejected.

Worth Your Time

  • https://www.bittensor.com/releases/null-consensus — the spec behind the week's protocol argument. Read the capacity section before anyone tells you Null means 2,500 miners per subnet; that budget is shared across emission mechanisms, so two mechanisms means 1,250.

  • https://docs.all-ways.io/miner.html — Allways' miner guide, which now opens with a section called Five Ways To Lose Money and cites each rule by number. Written by people who just watched one of them happen.

  • https://vidaio.io/competitions — the live competition board. Enrollment countdown, hidden clip count, stake floor, payout bars, and the previous round's full ranking with UIDs, all on one page.

  • https://builders.polymarket.com/ — Polymarket's builder table, one-month volume, every app routing orders there. Almanac at 17, its second code at 22, and a row of exchanges and wallets above it.

  • https://github.com/entrius/allways/commits/main — the fix chain, in order, with dates. Better than most postmortems because you can see which door closed when, and which one closed two days late.

Next week's issue goes out Friday. Subscribe and it lands in your inbox: https://newsletter.bittensor.quest

Shaping the next issue: tell me what to keep, what to cut, and what you want more of — mailto:[email protected]