Loading
Loading
Neuron registration trends
Order execution across liquidity venues requires continuous optimization—each route can be priced differently, and market conditions shift constantly. Teams either build custom infrastructure to find better prices in real time, or rely on a single aggregator and accept suboptimal execution. Neither scales to competitive edge.
Minotaur addresses this by distributing the solving problem: miners write competing Solving Engines that generate execution plans for any intent. Validators simulate each plan in isolation on Anvil forks, apply dual scoring (a JavaScript module for validity plus an on-chain constraint check), and reach off-chain consensus before the Relayer submits approved plans. The champion solver—the one that delivers strictly better outcomes across the broadest set of intents—runs on every validator. Miners earn by being the champion and retain that position by continuing to outperform challengers.
On Bittensor Subnet 112, this is the core competition surface. Miners fork a canonical solver repository, optimize their engine's routing, commit the code, and submit it for benchmarking. The validator network replays the same orders against both the champion and the challenger on identical Anvil snapshots, comparing raw delivered output per order. A challenger is adopted if it is net better on breadth (wins outnumber regressions, each regression bounded to a 1% floor) or wins on secondary tie-breaks (gas efficiency, code quality). Once adopted, the challenger becomes the new champion and processes all live orders across the validator fleet.
Use cases were auto-generated from the GitHub repository and may not reflect the latest changes.
Minotaur is a Bittensor Subnet 112 focused on distributed intent execution where miners compete by writing the best Solving Engine and validators run it to generate and score execution plans for user intents. The network uses dual scoring (JavaScript + on-chain Solidity), off-chain consensus, and deterministic miner incentives via a champion/challenger adoption model.
Minotaur is a leader/follower validator architecture on Bittensor Subnet 112. Users submit intents to the Intent OrderBook. The leader validator's BlockLoop tick (every 12 seconds) snapshots open orders and runs them through a solving pipeline: (1) The champion Solving Engine (a Docker container running miner-submitted code) generates an execution plan; (2) The plan is simulated on Anvil forks for each chain; (3) Both JavaScript scoring (app-defined) and Solidity on-chain scoring must pass threshold; (4) The leader broadcasts the proposal to followers via EIP-712 consensus; (5) Followers independently re-simulate and re-score, signing if both pass; (6) The leader collects N-of-M quorum signatures; (7) The relayer submits the co-signed transaction on-chain.
Miners compete by submitting solver code via git PR to a canonical solver repo. The validator benchmarks challenger solvers against the champion using the same simulation pipeline, adopting the challenger if it is net better on breadth (wins + blind-spot covers − regressions ≥ 1) or wins on tie-breaks. Weight is emitted to the Bittensor chain on a tempo-aligned schedule.
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.
Scoring is deterministic and relative: a challenger's plan is compared to the champion's plan per order at the same fork pin. Adoption follows a fixed ladder: (1) Output — challenger wins if net better on breadth (wins + blind-spot covers − regressions ≥ 1), with regressions bounded to 1% floor and no order cut by >1% or dropped; (2) Gas tie-break (≥200 bps cheaper on total metered gas) only on fully-matched ties; (3) Factorization (max_region_nodes smaller by ≥100 AST nodes); (4) Deadwood (unproductive_nodes smaller by ≥2000). Quote quality no longer affects adoption.
Champion adoption requires N-of-M validator consensus via EIP-712 signatures. Validators emit weights to the Bittensor chain on a tempo-aligned schedule (one commit per tempo epoch, ~360 blocks).
The sections above were auto-generated from the GitHub repository and may not reflect the latest changes.
Reputation is what other people know about you. Honor is what you know about yourself.
FAQs were auto-generated from the GitHub repository and may not reflect the latest changes.
Holder & total-staked metrics as of 3h ago (hourly snapshot)
Miners submit solver code via git PR. Local testnet and development require Docker. Production mining requires Bittensor wallet with registered hotkey on subnet 112.
NVMe SSD strongly preferred. Requires upstream archive RPC keys for Ethereum, Base, and BT EVM. Anvil forks accumulate ~150 GB/day disk bloat requiring 6-hour recycle cron. Runs three Anvil fork instances locally.
Clone the repository
git clone https://github.com/subnet112/minotaur_subnet.git && cd minotaur_subnet
Create and activate Python virtual environment
python3 -m venv .venv && source .venv/bin/activate
Install Python dependencies
pip install -r requirements.txt
Register hotkey on subnet 112 (mainnet only; local testnet auto-registers)(optional)
btcli subnet register --netuid 112 --subtensor.network finney --wallet.name <wallet> --wallet.hotkey <hotkey>
Run agent loop for automated solver strategy generation and submission(optional)
python -m minotaur_subnet.miner.main agent --validator-url http://localhost:8080 --strategy-dir ./strategies --miner-id <miner-id>
Submit git-based solver via PR to canonical solver repo(optional)
python -m minotaur_subnet.miner.main submit --pr-number <n> --head-sha <sha> --hotkey <hotkey> --validator-url http://localhost:8080 --poll
Start local testnet for development and testing (optional for local dev)(optional)
make testnet-up
Register hotkey on subnet 112
btcli subnet register --netuid 112 --subtensor.network finney --wallet.name <wallet> --wallet.hotkey <hotkey>
Generate fresh EVM signing key (install foundry first if needed)
cast wallet new
Open firewall ports 9100 (daemon) and 8080 (api) for inbound access
sudo ufw allow 9100/tcp && sudo ufw allow 8080/tcp
Clone canonical Docker Compose stack and template .env
curl https://raw.githubusercontent.com/subnet112/minotaur_subnet/main/platform/validator/docker-compose.yml -o docker-compose.yml && curl https://raw.githubusercontent.com/subnet112/minotaur_subnet/main/platform/validator/.env.example -o .env
Configure environment variables for validator operation
Edit .env with WALLET_NAME, HOTKEY_NAME, VALIDATOR_PRIVATE_KEY, VALIDATOR_AXON_URL, ETH_UPSTREAM_RPC_URL, BASE_UPSTREAM_RPC_URL
Start validator stack with auto-update profile (or without for manual updates)
docker compose --profile autoupdate up -d
Verify validator health and identity endpoint
curl http://localhost:9100/health && curl http://localhost:9100/identity
Install cron job for Anvil disk-bloat cleanup (every 6 hours)
0 */6 * * * root docker compose -f /path/to/docker-compose.yml rm -fsv anvil-eth anvil-base anvil-btevm && docker compose -f /path/to/docker-compose.yml up -d anvil-eth anvil-base anvil-btevm