REAX / COMPETITIONS / RULES
Competition rules and FAQ
One page for how entries are evaluated and approved on subnet 92, and short answers to the questions miners ask most. Last updated 21 October 2026.
Rules can change. Any change is announced in advance on reax.co and mine.decisionmodels.io with the date it takes effect. Rewards are a protocol mechanism, not a promise of any amount, and can be zero.
Tracks and dates
Miners on subnet 92 serve inference, and can also compete. The competition part of miner emission is 50%; inference keeps 50%. Until a track has an approved winner, its share goes back to the inference miners. Nothing is burned. Live queue and status: reax.co/competitions/live.
| Track | What you do | When | Base model, share, release |
|---|---|---|---|
| Inference tiers | Host a pinned model and answer validator rounds. Pools: s1-fast, s1-pro, s1-lite, s1-cpu. | Live since 14 October 2026. | s1-fast: Plumb-4B (bf16). s1-pro: Rune 26B-A4B v3. s1-lite: Plumb-4B as 8-bit GGUF. s1-cpu: Gutsy 0.8B as 8-bit GGUF. 50% of miner emission since the competitions opened. How mining works. |
| REAX Engine | Submit a container image (pinned by digest) that serves the same model, with the same answers, faster than the reference engine. | Open since 20 October 2026, 18:00 UTC. Permanent track. | s1-fast (Plumb-4B), measured on one RTX PRO 6000 (96 GB). 20% of miner emission. |
| Demand forecasting | Fine-tune an open-weight model (up to 9B parameters) for one use case. | 16 October 2026, 12:00 UTC until the generalist track opens (21 October 2026, 13:00 UTC). | Qwen3, Qwen3.5, Gemma 3 or Llama. Entry floor 28.8 (s1-fast scores 27.32). 15% of miner emission. Track page. |
| Risk assessment | Same as demand forecasting, for risk assessment. | 16 October 2026, 12:00 UTC until the generalist track opens (21 October 2026, 13:00 UTC). | Same architectures. Entry floor 30.0 (s1-fast scores 28.54). 15% of miner emission. Track page. |
| Generalist | Fine-tune or build a decision model (up to 36B parameters, 68 GiB, dense or MoE) that is scored across ten areas. | From 21 October 2026, 13:00 UTC; it replaces the two use-case tracks. | Official base: decisionmodels/reax-1 at revision ca2a0cc5. Entry floor 36.8. 30% of miner emission. Validator release v1.2.0-rc10.post1. |
From the generalist opening the competition part is: engine 20%, generalist 30%. Both use-case tracks end at that moment; their earlier published end was 30 October 2026, 12:00 UTC.
Generalist entry in short
- Commit:
reax-spec/1:generalist:<hf_repo>@<40-hex revision>, with areax-specialist.jsonmanifest that says"category": "generalist". Every commitment first seen before the opening joins the opening cohort; nothing is downloaded before the opening. - Repo: public within 24 hours after the opening (for later commitments: within 7,200 blocks, about 24 hours). Weights only, no code is ever executed.
- Model: up to 36B parameters and 68 GiB of safetensors; Qwen3 and Qwen3-MoE, Qwen3.5 (including MoE), Gemma 3, Gemma 4, Llama; Apache-2.0, MIT or BSD with a
LICENSEfile. - Score: 0.75 × competence + 0.25 × calibration on draws of 300 sealed items, 30 from each of ten equally weighted areas, with the gap penalty on cross-author items.
- Exact files and constants: SPECIALIST-TRACKS.md, COMPETITIONS.md and GENERALIST-RELEASE.md in reax-subnet.
How an entry is evaluated
Commitment and queue
- Commitment. You commit on chain with a hotkey registered on subnet 92:
reax-spec/1:<track>:<repo>@<40-hex revision>for model tracks,reax-eng/1:s1-fast:<image>@sha256:<digest>for the engine. One competition commitment per hotkey; a new commitment from the same hotkey replaces the old one. Earlier commitments are handled first, and a commitment for a track that is not active is ignored. - Queue. Our competition worker runs an evaluation cycle about once an hour and evaluates up to 8 models per hour across the tracks, on one fresh draw per track. New entries wait in the order of their on-chain commitment; first evaluations of entries whose hotkey is already past its immunity period go first. Engine entries are measured in batches, with a new cycle every 6 hours. Statuses are explained on the live page.
Draws, first stage and confirmation
- Draws. Each draw has 300 fresh sealed items. Score = 0.75 × competence + 0.25 × calibration. An item is used at most 24 times and then retired; only retired items are published later. A confirmation draw is disjoint from your first draw. Items, seeds and the scores on private items are never published.
- First stage. A challenger has to beat the champion on the same draw: z ≥ 2 and a gain of at least 1.5 points pass. A close call (1 ≤ z < 2) gets one more first-stage draw, and z < 1 is not better. z is the gain divided by its standard error; evidence is pooled only over draws against the same champion.
- Confirmation. It is a second, disjoint fresh draw at least 12 hours after the first draw (counted from the first draw, also after a close call). You are crowned at a pooled z ≥ 2.75 over all your draws against that champion, with a pooled mean gain of at least 1.5 points.
- Crowning and ranks. The champion gets 75% of a track’s share, the former champion crowned most recently before it 17%, the one before that 8%. Ranks follow the order of crowning, not the scores. An entry at or below the entry floor earns nothing from the track.
- First champion of a track. It is decided only after all entries of the opening cohort have been decided; the cohort then plays off on a shared fresh draw. A near tie (within 1 standard error) gets one more shared draw, and a remaining tie goes to the earlier commitment.
S_eff and the gap penalty
- 20% of each 300-item draw are cross-author real-data items that are kept private and count in the score. The gap is your score on our generator-family items minus your score on the cross-author items.
- S_eff = S − min(10, 0.5 × max(0, gap − G_med − A)) with A = max(8, 2 × SE). The penalty is capped at 10 points in the first week. S_eff is the score every decision uses. For the generalist track the frozen median gap G_med is 14.84.
Keep-alive
- An entry that is pending confirmation (up to 24 hours after its first pass) or a new champion waiting for approval (up to 24 hours after crowning) gets the weight of a typical inference miner, if it scored above the entry floor and the non-procedural floor (generalist: 37.4). At most 8 waiting entries per track are paid this way, together at most a quarter of the track share (the 2-per-coldkey limit applies first).
- An entry still queued for its first evaluation gets a provisional keep-alive of half the median, from about 2 hours before its hotkey’s immunity ends, for at most 12 hours per hotkey and one per coldkey per track, together at most 5% of the track share.
- Generalist entries above 10B parameters need a score at least 1.5 points above their own unmodified base to qualify.
- For 7 days from the generalist opening, the champion and approved former champions of demand forecasting and risk assessment get a bounded legacy keep-alive, as pure entrants only.
- A keep-alive is not an award. It does not reserve a UID or guarantee that a hotkey is never deregistered.
Derived entries, exact copies and the engine track
- Exact copies (same tensor hash) are refused; the earliest commitment owns a hash. Re-sharding or renaming files does not hide a copy. For generalist entries the check also uses a hash of the backbone that leaves out the readout head.
- Derived entries. If you declare another entry as your base, or our checks find that your weights or answers derive from an earlier entry (the champion included), your entry is derived. It must beat its parent by the full decision margin and, on competence alone, by at least 1.0 point and 2 standard errors, so a copy that only recalibrates the same answers cannot be crowned. Independent fine-tunes of the official base are not affected.
- Near-champion rule. A challenger very close to the champion (cosine similarity above 0.995, relative distance below 0.15, or the champion’s own weight change plus added noise) must also show a net correctness gain and clear a margin floor of max(computed margin, 3.0 points) on every deciding draw.
- Engine track. Every submission is measured against the reference engine on the same GPU in the same session. It must pass the correctness gate and be at least 3% faster than the reference; a challenger takes the title only with at least 3% more than the champion, confirmed in a second fresh session, and ties go to the earlier on-chain commitment. The image label
ai.reax.engine.hotkeybinds a digest to the hotkey that committed it. When crowned, the champion gets the whole engine share (20% of miner emission), which then halves linearly over 14 days. The previous champion gets 17% and the one before 8%, each for up to 7 days after losing the title, after its own award review. The opening round ended with two co-champions, UID 4 and UID 198, who split the champion share 50/50 as a one-time exception.
Coldkey limits, dual-role and multi-model hotkeys
- Coldkey limits: at most 2 open submissions per track and 4 new submissions per 7 days for each coldkey. Generalist entries are counted separately from demand forecasting and risk assessment.
- Dual-role and multi-model hotkeys (from block 9331987, 21 October 2026, about 13:00 UTC). From that block one hotkey can serve inference and hold one competition entry at the same time, and one hotkey can carry several inference models (2 to 4, commitment
reax-s1m/1), each with the same per-model cap as a separate hotkey. A hotkey publishes one axon and still holds only one competition commitment. The keep-alive of a dual-role entry is a top-up over its serving weight. Before that block a competition hotkey does not serve traffic. See DESIGN-MULTIROLE.md.
Awards
- What an award approval is. A winning entry is paid only after it has been checked and approved: the engine champion, and every paid rank of a model track (ranks 1, 2 and 3). The approval covers exactly one entry, the track, the hotkey and the submission (
repo@revision, or the image digest for the engine). A new revision or digest needs a new approval. Until it exists, the share goes to inference, nothing is burned, and the next rank does not move up. - Who decides. The subnet owner. Approvals are signed with the owner’s key and published in the public repo (
deploy/approvals/approvals.json); validators accept only a valid signature for exactly that entry. - The review. The automatic copy and near-duplicate checks must pass first; an entry whose base cannot be verified is pending verification and is neither evaluated nor paid. Then we look at provenance (where the weights or the image come from), originality, and credit for merged or reused work. On the generalist track, per-area scores are information only; a model far below the reference in one area gets a closer look.
- While a champion waits. On a model track the former champion keeps the champion share for up to 48 hours while a new champion awaits approval. On the engine track the most recently crowned approved former champion is paid the champion’s part meanwhile.
- Timing. Award decisions are made between 10:00 and 22:00 Berlin time. The expected decision time for each champion is shown on the live page; it is an estimate, not a promise.
- Where to see status. Queue position, status, pending confirmation times and recent draws per entry: reax.co/competitions/live.
Validators
- Current release: v1.2.0-rc10.post1, a validator-only follow-up to v1.2.0-rc10 (same weights version). It carries the generalist track (opening 21 October 2026, 13:00 UTC), multi-model and dual-role hotkeys from block 9331987, the 7-day legacy keep-alive and the engine former-champion rules. Please run it before 13:00 UTC on 21 October 2026. Validators that are not upgraded cannot read multi-field commitments and will not score those hotkeys.
- How to upgrade. In your reax-subnet checkout, fetch and check out the release tag, rebuild the images and restart the stack from
deploy/validator-1.2(VALIDATOR.md). Competitions run inremotemode: a competition worker holds the sealed pools and the docker socket, and the validator only reads its state. - Owner approvals. Keep
deploy/approvals/approvals.jsoncurrent (git pullof a checkout, or copy the file into your approvals directory) and check it withreax-award-approve verify. The file is re-read when it changes; no restart is needed. - Releases and release notes: github.com/reaxlabs/reax-subnet/releases.
How to talk to us
Rule and status questions: ask in #92 on the Bittensor Discord, so everyone sees the answer. Direct messages only for private matters: keys, ownership proofs, code releases. We answer once an hour between 06:30 and 21:30 UTC.
FAQ
34 short answers, each with its own link. Every answer repeats only what is published in the rules above, in the public docs or in #92.
Where do I ask a rules or status question?
Ask in #92 on the Bittensor Discord, so everyone sees the answer. Direct messages are only for private matters: keys, ownership proofs, code releases. We answer once an hour between 06:30 and 21:30 UTC. See How to talk to us.
When does the generalist track open, and what happens to demand forecasting and risk assessment?
The generalist track opens on Wednesday 21 October 2026 at 13:00 UTC. Demand forecasting and risk assessment end at that same moment (their earlier published end was 30 October 2026, 12:00 UTC); until then they run and pay as published. From the opening the competition part pays one generalist track with 30% of the miner emission, ranks 75% / 17% / 8%.
Which base model does the generalist track use, and do I have to fine-tune it?
The official base is decisionmodels/reax-1 at revision ca2a0cc5, our fine-tune of Decider v1.2. You do not have to start from it: any allowed architecture within the size limit works, with an Apache-2.0, MIT or BSD licence file. The base only matters for the keep-alive of entries above 10B parameters (they must beat their own unmodified base by 1.5 points) and for the derived-entry rule.
What size, architectures and licences does a generalist entry allow?
Up to 36B parameters and 68 GiB of safetensors weights, dense or MoE. Architectures: Qwen3 and Qwen3-MoE, Qwen3.5 (including Qwen3.5-MoE), Gemma 3, Gemma 4 and Llama. The licence must be Apache-2.0, MIT or BSD with a LICENSE file in the repo; Google’s Gemma 4 repos do not ship one, so add it to your fine-tune. Weights only: no repository code is ever executed.
How is a Decider-style model with a separate readout head run?
A Qwen3.5-family backbone with readout.safetensors and decision_config.json is run the way it was trained, on our own runtime. We use your submitted readout head as it is, on the last prompt position, with our fixed REAX prompt and a fixed temperature of T=2. The temperature saved in decision_config.json is metadata only and we apply no extra calibration, so calibrate your head for T=2; calibration is a quarter of the score.
Are there limits on what I may train on?
The rules do not restrict training data beyond the licence of the model you publish. What we enforce is on the evaluation side: sealed draws that nobody sees, and the gap penalty on cross-author items, which also applies in the generalist track.
What do the evaluation items look like?
Every generalist draw has 300 fresh sealed items, 30 from each of ten areas (math and dates, knowledge and reasoning, rules and law, finance, support and operations, coding and data, tool use, safety, language understanding, forecasting and risk). Every area weighs the same and items come in many languages. Part of each draw is cross-author items, which drive the gap penalty. Items, draw seeds and the scores on the private items are never published; an item is used at most 24 times and only retired items are published later.
I committed before the opening. What happens to my entry?
Every generalist commitment first seen before 13:00 UTC on 21 October 2026 joins the opening cohort. Nothing is downloaded before the opening, and your repo has to be public within 24 hours after the opening. The playoff of the cohort decides the first champion, not the commit order, and the official base does not start as an incumbent.
What are the generalist entry floor and the median gap?
The entry floor is 36.8 (the s1-fast reference score plus 1.5 points on six release draws). The frozen median gap for this release is 14.84, with an allowance of max(8, 2 × SE), and the penalty is capped at 10 points in the first week. The non-procedural keep-alive floor is 37.4. These constants ship with the release in competition_split.py.
How is the gap penalty computed?
The gap is the score on our generator-family items minus the score on the cross-author items. The penalty is S_eff = S − min(10, 0.5 × max(0, gap − G_med − A)), where G_med is the frozen median gap and A = max(8, 2 × SE). S_eff is the score every decision uses. The live page does not show the penalty itself, because with the raw score it would reveal the score on the private items.
Do the per-area scores matter in the generalist track?
Per-area scores, pooled over your draws, are shown with every entry. They are information only for now: a model far below the reference in one area gets a closer look before an award is approved. Any automatic rule on this would come with its own notice.
When does my confirmation draw run?
A confirmation draw is taken on a fresh draw that is disjoint from your first draw, at least 12 hours after the first draw. The time shown on the live page is an estimate: it also depends on the evaluation cycle and on the queue. The 12 hours are counted from the first draw, so a close call (an extra first-stage draw) does not add waiting time.
What do the first stage, z and a close call mean?
z is your gain over the champion on the same items divided by its standard error. On the first draw, z ≥ 2 and a gain of at least 1.5 points pass. A close call (1 ≤ z < 2) gets exactly one more first-stage draw, and z < 1 is not better. At confirmation you are crowned at a pooled z ≥ 2.75 over all your draws against that champion.
Why is my entry still queued?
Our competition worker runs an evaluation cycle about once an hour and evaluates up to 8 models per hour across the tracks; the champion is one of them. New entries wait for the next cycle, in the order of their on-chain commitment, except that first evaluations of entries whose hotkey is already past its immunity period go first. The live page explains each status (queued, waiting for repo, waiting for base model, evaluating, pending confirmation).
What is the keep-alive, and who gets it?
It is a participation weight so that a waiting entry is less likely to be deregistered; it is not an award. An entry that is pending confirmation (up to 24 hours after its first pass) or a new champion waiting for approval (up to 24 hours after crowning) gets the weight of a typical inference miner, if it scored above the entry floor and the non-procedural floor. At most 8 waiting entries per track are paid this way, together at most a quarter of the track share. An entry still queued for its first evaluation gets a provisional keep-alive of half that, for at most 12 hours per hotkey. It does not reserve a UID or guarantee that a hotkey is never deregistered.
What happens to demand forecasting and risk assessment champions after the tracks end?
For 7 days from the generalist opening, the champion of each of these two tracks and its former champions that have an award approval still get a bounded keep-alive, so they are not deregistered before the dual role lets one hotkey serve inference and compete. It is paid only to a pure entrant: it ends early if that hotkey commits to anything else, including a generalist entry or serving weight. If you want to keep it, use a different hotkey for the generalist track.
What counts as a derived entry, and can a recalibrated copy win?
An entry is derived if you declare another entry as your base, or if our checks find that its weights or its answers derive from an earlier entry (the champion included). A derived entry has to beat its parent by the full decision margin and, on competence alone, by at least 1.0 point and 2 standard errors. A copy that only recalibrates the same answers therefore cannot be crowned. Exact copies (same tensor hash) are refused, and the earliest commitment owns a hash. For generalist entries the exact-copy check also uses a hash of the backbone that leaves out the readout head. Independent fine-tunes of the official base are not affected.
I merged other entries into my model. Is that allowed?
A model whose weights are close to an earlier entry is checked as derived (see the previous answer). In the award review we look at the merge share and at whether the credit is documented, so it helps to state your recipe and the credit clearly in the repo.
How many entries can one coldkey hold?
At most 2 open submissions per track and 4 new submissions per 7 days for each coldkey. Generalist entries are counted on their own: they never use the budget of demand forecasting or risk assessment. One hotkey holds one competition commitment, and a new commitment from the same hotkey replaces the old one.
Can one hotkey serve inference and compete at the same time?
Yes, from block 9331987 (about 13:00 UTC on 21 October 2026): one hotkey can serve inference and hold one competition entry at once. Before that block a competition hotkey does not serve traffic. Serving and competition pay add up per UID, and the keep-alive of a dual-role entry is a top-up over what the hotkey earns from serving. Validators need release v1.2.0-rc10 or later to read these commitments.
Can one hotkey carry several models, and do I publish one axon?
Yes, from the same block 9331987: one hotkey can carry 2 to 4 inference models (commitment reax-s1m/1), each with the same per-model cap that a separate hotkey of that model gets. You still publish one axon per hotkey: your miner gateway serves all the models committed for that hotkey behind it. A hotkey still holds only one competition commitment.
Why is there a per-hotkey cap, and how do I run 8 GPUs?
Validators verify every hotkey’s throughput with their own probes, and that has a limit. The cap per hotkey is 1,280 decisions/s for s1-fast and 320/s for s1-pro (s1-lite 32/s, s1-cpu 4/s). Pay stays linear in verified throughput, so one hotkey with more GPUs behind it earns what the same hardware earns spread over several hotkeys. Above the cap, use more hotkeys; from block 9331987 one hotkey can also carry several different models, each with its own cap.
Two engine entries scored within the 3% margin. Who holds the title?
A challenger takes the engine title only with at least 3% more than the champion, confirmed in a second fresh session; ties go to the earlier on-chain commitment. In the opening round UID 4 (2.823× the reference) and UID 198 (2.814×) were within the margin of each other, so as a one-time exception they share the title: the champion share is split 50/50 and each half is paid only after that entry’s own award review. A challenger must beat 2.823× by 3% (2.908×).
In what order are engine entries committed before the opening ordered?
Commitments made before the opening count as made at the opening, so committing early gave no advantage. Among them, the one-time order came from the opening block hash: sha256(block hash + hotkey + digest). From then on every new entry has its own commitment block and the earlier on-chain commitment counts; the hash only breaks a tie between two entries committed in the very same block.
What reference speed is the engine measured against?
Only the ratio counts. Every submission is measured against the reference engine on the same GPU in the same session, interleaved, so the size of the GPU does not matter. On our evaluation GPU (RTX PRO 6000 Blackwell Server Edition) the reference runs at about 100 decisions/s; other GPUs are slower.
My engine entry is marked “not owner”. What do I do?
The image label ai.reax.engine.hotkey must name the same hotkey that committed the digest; this stops anyone from committing another person’s image. If it names a different hotkey, rebuild the image with the label set to your committing hotkey, push it, and commit the new digest. The entry then goes into review and the next batch.
I lost the engine title. Am I paid, and can I be pruned?
Of the champion’s part, the previous champion gets 17% and the one before it 8%; the champion keeps the rest. A former champion’s slot ends 7 days after it lost the title, or earlier when two newer champions push it out. It is paid only after its own award review and only while it stays committed by the same hotkey with a valid result; an unpaid slot goes back to inference. Former champions that hold a slot also get the keep-alive, so losing the title no longer means a quick prune.
How do waiting engine entries avoid being pruned?
With the engine keep-alive on, entries that wait for their evaluation get a small bounded keep-alive: half the median inference weight each, together at most 5% of the engine share. It is also paid, ahead of them, to the champion while its award review is pending and to former champions that hold a slot. It is a keep-alive, not an award, and needs no approval.
My entry is champion. Why is its share not paid yet?
A winning entry is paid only after it has been checked and approved, each paid rank for the exact repo@revision (engine: the exact image digest). Until then its share goes to inference; nothing is burned and the next rank does not move up. On a use-case track the former champion keeps the champion share for up to 48 hours while a new champion waits for approval. On the engine track the most recently crowned approved former champion is paid the champion’s part meanwhile. See Awards.
How long does an award review take?
Award decisions are made between 10:00 and 22:00 Berlin time, and the live page shows the expected decision time for each champion. It is an estimate, not a promise: a review can take longer if it needs more evidence. You can follow the status of an entry on the live page.
What does the award review check?
First the automatic copy and near-duplicate checks must pass. Then we look at provenance (where the weights or the image come from), originality, and credit for merged or reused work. The subnet owner decides and signs; validators accept only a valid signature for exactly that entry.
Why did my s1-lite, s1-pro or s1-cpu miner show “degraded” with rc10?
From rc10, every lite, pro and cpu miner has a second row, its model slot (UID + 65536 × model index), that carries the real score; new rounds land there. The row that showed 0 is never used for weights, so weights were not affected, and the miners page reads the slot rows correctly since v1.2.0-rc10.post1.
Do I get my registration fee back if I lose?
No. Registration burns TAO and the chain sets the cost, so check it before you register; fees are not refunded. Rewards are variable and can be zero, and nothing on this page is a promise of any amount.
My hotkey was pruned while my entry waited for confirmation. Is my first draw lost?
Not necessarily. If you commit the same model (identical tensors) again within 72 hours of the prune, under any new hotkey or UID, by the same coldkey or from the same Hugging Face repo, you keep your first-draw score and go straight to the confirmation draw. The repo’s reax-specialist.json must name the new hotkey, and copy and twin checks still apply. A changed commitment while the hotkey stays registered is not a prune and carries nothing over.
Other pages: Competitions · Live evaluation queue · How mining works · General FAQ.