Miner Configuration
Reference for the current minotaur_subnet.miner.main CLI — agent, submit, and status subcommands with all flags and defaults.
This page documents the current subcommands implemented in minotaur_subnet/miner/main.py.
Available subcommands
agent- LLM-driven strategy loopsubmit- signed git-based solver submissionstatus- submission status polling
agent
python -m minotaur_subnet.miner.main agent \ [--validator-url <url>] \ [--strategy-dir <dir>] \ [--miner-id <id>] \ [--loop-interval <seconds>] \ [--improvement-threshold <float>] \ [--max-llm-calls <n>] \ [--stale-after <seconds>] \ [--model <name>] \ [--claude-timeout <seconds>] \ [--anvil-rpc-url <url>]Defaults:
--validator-url:http://localhost:8080--strategy-dir:strategies--miner-id:miner-agent-001--loop-interval:60.0--improvement-threshold:0.7--max-llm-calls:3--stale-after:600.0--model:sonnet--claude-timeout:300.0--anvil-rpc-url: not set
submit
python -m minotaur_subnet.miner.main submit \ --pr-number <n> \ --head-sha <40-char-sha> \ --hotkey <wallet-name> \ [--wallet-path <path>] \ [--validator-url <url>] \ [--round-id <id>] \ [--epoch <n>] \ [--private-repo <owner/repo>] \ [--repo-token <fine-grained-PAT>] \ [--poll]The PR must target the canonical solver repo (subnet112/minotaur-solver).
The leader resolves --pr-number to the fork’s clone_url + live head SHA and
rejects the submission if the live head no longer matches --head-sha
(force-push guard).
--private-repo + --repo-token opt into the private submission path: your
solver stays private through screening + benchmarking, you get the benchmark report
on your private PR, and if it wins it is published to canonical main (you
become champion — your code only goes public once you’ve already won). With it,
--pr-number/--head-sha refer to a PR in YOUR private repo. The PAT must be a
fine-grained token scoped to that one repo with Metadata:Read, Contents:Read,
Pull requests:Read+Write. Prefer the MINER_REPO_TOKEN env var over the flag to
keep it out of shell history. See the
quickstart
for the full walkthrough.
Defaults:
--validator-url:http://localhost:9100--round-id: optional; auto-detected from the open round (GET {validator_url}/v1/solver/round)--epoch: optional override; auto-detected from the open round--wallet-path:~/.bittensor/wallets(orBT_WALLET_PATH)
Important notes:
- In local testnet/API flows,
--validator-urlis usuallyhttp://localhost:8080for/v1/submissions*. - Submissions target the current open round; if none is open or it isn’t accepting,
submiterrors clearly (there is no epoch fallback). - Request payload includes:
pr_number,head_sha,round_id,epochhotkey(SS58)signatureover{pr_number}:{head_sha}:{round_id}
status
python -m minotaur_subnet.miner.main status \ --submission-id <id> \ [--validator-url <url>]Defaults:
--validator-url:http://localhost:9100- internal timeout: 30 seconds for this command path
Terminal states:
scoredadoptedrejected
Environment variables
BT_WALLET_PATH- fallback wallet root for signed submissions
Examples
Agent loop:
python -m minotaur_subnet.miner.main agent \ --validator-url http://localhost:8080 \ --strategy-dir ./strategiesGit submission:
python -m minotaur_subnet.miner.main submit \ --pr-number 42 \ --head-sha abc123def4567890abc123def4567890abc12345 \ --hotkey my-hotkey \ --validator-url http://localhost:8080 \ --pollStatus check:
python -m minotaur_subnet.miner.main status \ --submission-id sub_abc123 \ --validator-url http://localhost:8080