Conversation
Stop sending 84% of weights to escrow UIDs. Validators now fetch /current-kings and pay the reigning miner per modality, with last-known fallback if the API is down. Co-authored-by: Cursor <cursoragent@cursor.com>
Testnet 169 is not the hardcoded 379 mapping, and short epochs are needed to verify KOTH weights. Co-authored-by: Cursor <cursoragent@cursor.com>
Bittensor metagraph threads kept the process alive, and a 409 with --skip-chain was treated as failure. Cap chain retries and _exit. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep the current king dominant while paying the previous two distinct crowned hotkeys a residual so near-ties are not winner-take-lane. Co-authored-by: Cursor <cursoragent@cursor.com>
Paying last-3 kings 85/10/5 is a breaking incentive change, so spec_version should move with a major rather than sit on 4.10.0. Co-authored-by: Cursor <cursoragent@cursor.com>
feat: set discriminator weights on current KOTH kings
Chain registration is optional. A failed or skipped commitment should not fail the CLI after the model is already in R2 and queued for exam. Co-authored-by: Cursor <cursoragent@cursor.com>
Miners get one image, one video, and one audio slot per registration. Exam failures do not count and a new round does not refill the slot. Co-authored-by: Cursor <cursoragent@cursor.com>
Keep a single Validating.md setup runbook and stop implying the full-benchmark score is TAO emissions. Co-authored-by: Cursor <cursoragent@cursor.com>
Match the tighter upload cap: a key cannot land one model per lane. Co-authored-by: Cursor <cursoragent@cursor.com>
fix: succeed discriminator push after upload; one submission per hotkey
Match the tighter upload cap: a key cannot land one model per lane. Also drop cloud-evaluated wording from the miner guides.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit a14ffd8. Configure here.
dylanuys
approved these changes
Sep 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Summary
Updating to a King of the Hill competition where continuous payouts are made to the king + the past 2 kings for each modality, 85/10/5.
Tested on testnet
Note
High Risk
Validator weight-setting is a core subnet change: escrow routing is removed in favor of API-driven KOTH splits, with discriminator emissions gated on external API metadata—misconfiguration or stale kings data directly affects TAO distribution.
Overview
v5.0.0 replaces round-based / escrow discriminator rewards with King of the Hill: validators pull kings from GAS (
/api/v1/validator/kings), cache them across restarts, and set weights via newbuild_koth_weights— 40% / 40% / 4% image / video / audio lanes plus 16% generators, with each lane split 85 / 10 / 5 across the current king and the last two distinct crowned hotkeys (missing kings or API gaps burn to the burn UID). Discriminator lane payouts stay off until GAS publishesemissions_enabledand a passedemissions_start_at; generators are unchanged during warmup.Discriminator push is hardened: duplicate-hash (409) uploads count as success, chain registration is optional (
--skip-chain), capped retries (--max-retries), configurable upload URL, and the CLI/process exits cleanly after push (os._exit, exit-code propagation). Upload success no longer fails when on-chain metadata is missing or chain registration exhausts retries.Docs align with one counted model per hotkey (not three modalities per key) and document KOTH rules, defense, and dethrone margin; validator guides are consolidated. PM2 config honors
NETUIDandEPOCH_LENGTHenv overrides.Reviewed by Cursor Bugbot for commit 8098fa1. Bugbot is set up for automated code reviews on this repo. Configure here.