Loading
Loading

Neuron registration trends
Teams building advanced reasoning models face fragmented incentives: training improvements are siloed, evaluation is expensive and subjective, and there's no standardized way to benchmark progress across diverse reasoning tasks. A single winning model at any given time can't drive sustained innovation across a non-permissioned network.
An incentivized network of competing model improvers solves this by creating a shared evaluation environment where miners train improvements on standard tasks, validators run objective comparisons, and only models that beat the incumbent on all evaluation environments advance. This forces genuine progress rather than gaming individual benchmarks. The mechanism is copy-proof (identical weights are rejected), sybil-proof (one hotkey per miner, permanent termination for losses), and overfitting-proof (multi-environment strict comparison).
Affine implements this on Bittensor Subnet 120 with a queue-based challenge system: miners commit Qwen3-based models to HuggingFace, validators host inference via Targon, and a scheduler walks the queue in submission order. Each challenger faces the current champion across all configured environments (DED-V2, ABD-V2, SWE-INFINITE, etc.). Only winners take the crown and earn emissions; losers are permanently terminated. By default a new window opens every ~24h, refreshing task pools and re-seeding the champion.
Use cases were auto-generated from the GitHub repository and may not reflect the latest changes.
Affine is an incentivized reinforcement learning subnet on Bittensor that rewards miners for improving reasoning models. Miners commit Qwen3-based models to HuggingFace, validators host inference and evaluate challengers against the incumbent champion across multiple environments, with winner-takes-all weighting. The mechanism is sybil-proof, decoy-proof, copy-proof, and overfitting-proof through strict multi-environment comparison requirements and permanent termination of losing miners.
Affine operates as a queue-based challenge system where miners commit model metadata (repo + revision) on-chain. Validators retrieve weights from a backend API, apply a burn percentage to UID 0 if configured, and set normalized weights on-chain. The backend services (validators, schedulers, comparators) handle model inference via Targon or operator-managed hardware.
Each evaluation window, one queued challenger faces the incumbent champion across all environments in parallel; the challenger must win strictly on all fronts to take the throne. Plagiarism detection uses model_hash (SHA256 of weights) to mark identical submissions invalid. Public status commands expose ranking, queue position, miner metadata, and weights, but current-window task details remain private to prevent gaming.
This information was auto-extracted from the GitHub repository and may be incomplete or out of date. Always refer to the subnet's GitHub repository for the latest instructions.
Every ~7200 blocks (~24h), the validator opens a new window and selects the earliest-submitted not-yet-challenged miner from the queue. Both challenger and champion are evaluated in parallel across all configured environments (SWE-INFINITE, LIVEWEB, NAVWORLD, MEMORY, DISTILL, TERMINAL, etc.). For a challenger to win, their mean score must exceed the champion's by at least the per-environment margin in every single environment, and they must collect at least min_tasks_per_env successful samples.
Otherwise they are permanently terminated. A configurable validator_burn_percentage can route a fraction of weight to UID 0. Task pools are refreshed and the champion is re-sampled every ~7200 blocks.
The sections above were auto-generated from the GitHub repository and may not reflect the latest changes. View repository
Reason Mining
FAQs were auto-generated from the GitHub repository and may not reflect the latest changes.
Holder & total-staked metrics as of 1h ago (hourly snapshot)
Miners do not run inference; validators host all compute. Miners only need to train/fine-tune locally and upload to HuggingFace.
Validators do not require GPUs as all computation happens on backend (Targon or operator-managed B300 fleet). Docker deployment recommended with 6GB reservation and 8GB limit.
Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone Affine repository
git clone https://github.com/AffineFoundation/affine-cortex.git && cd affine-cortex
Create virtual environment and install Affine
uv venv && source .venv/bin/activate && uv pip install -e .
Copy environment template
cp .env.example .env
Configure environment variables for Bittensor wallet and HuggingFace credentials
# Edit .env with BT_WALLET_COLD, BT_WALLET_HOT, SUBTENSOR_ENDPOINT, HF_TOKEN
Register hotkey on subnet 120
btcli subnet register --netuid 120
Download baseline model from on-chain submission(optional)
af pull <UID> --model-path ./model_path
Locally validate improved model against evaluation environment(optional)
af eval --env <ENV> --base-url <local-vllm> --model <name>
Upload model to HuggingFace and commit on-chain (one-time only per hotkey)
af miner-deploy --repo myuser/affine-model-<hotkey> -p ./model_path
Install uv package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
Clone Affine repository
git clone https://github.com/AffineFoundation/affine.git && cd affine
Create virtual environment and install Affine
uv venv && source .venv/bin/activate && uv pip install -e .
Copy environment template
cp .env.example .env
Configure Bittensor wallet and subtensor connection
# Edit .env with BT_WALLET_COLD, BT_WALLET_HOT, SUBTENSOR_ENDPOINT, NETUID
Deploy validator using Docker (recommended method with auto-updates via Watchtower)(optional)
docker-compose down && docker-compose pull && docker-compose up -d && docker-compose logs -f
Run validator in continuous service mode (alternative to Docker)(optional)
SERVICE_MODE=true af servers validator
Run validator with custom parameters(optional)
af servers validator --netuid 120 --wallet-name mywallet --hotkey-name myhotkey --network finney
Configure systemd service for auto-start (Linux only)(optional)
sudo systemctl enable affine-validator && sudo systemctl start affine-validator