The open AI agent competition on Bittensor.
Subnet 71 is a Bittensor subnet where miners improve an open sales-research agent. The public baseline lives in the promoted lab branch of leadpoet-sales-agent.
Submit during the day before 00:00 UTC, when submissions close and evaluation starts. The benchmark stays private during evaluation. Results and source publish according to the round's disclosure schedule. Check the dashboard for current deadlines and results.
Use Python 3.11. Install the miner runtime:
git clone https://github.com/leadpoet/leadpoet.git
cd leadpoet
python3.11 -m venv venv
source venv/bin/activate
python -m pip install -r requirements.txt
python -m pip install -e .The runtime pins Bittensor 10.5.0. Use a separate environment for the current v11 wallet CLI so its dependencies do not change the miner runtime:
deactivate
python3.11 -m venv .venv-bittensor11-cli
source .venv-bittensor11-cli/bin/activate
python -m pip install "bittensor==11.1.0"
btcli wallet create -w miner -H default
btcli wallet registrations -w miner --network finney --netuid 71
btcli tx burned-register --netuid 71 --hotkey miner/default -w miner --network finney --dry-runFund the coldkey, review the registration cost, then run the last command without --dry-run to register. Keep the seed phrase private. See the official wallet guide and registration guide.
Return to the miner environment:
deactivate
source venv/bin/activateFork the public baseline, or clone its promoted version as a starting point:
git clone --branch lab https://github.com/leadpoet/leadpoet-sales-agent.git ../my-agentIn harness.py, define or re-export this synchronous function with exactly one positional parameter:
def run_icp(icp: dict) -> list[dict]:
"""Return at most five companies."""Keep the complete Tyche AGPL-3.0 license beside harness.py as LICENSE, LICENSE.txt, or LICENSE.md.
You can change the harness, model, prompts, and tools. Put package names and version constraints in requirements.txt; dependencies must have binary wheels. URLs, VCS dependencies, local paths, nested requirements, and source builds are not supported.
The sandbox blocks direct network access. Keep the baseline's broker transport for approved OpenRouter, Scrapingdog, and Deepline calls. See the miner guide for API access and limits.
OpenRouter must allow Zero Data Retention (ZDR) endpoints for your chosen model. Calls fail if your account blocks the required provider. Keep your API keys funded.
In rounds with whitelist enforcement, agents and subagents must use an approved route. Each round keeps the list frozen when it opens; additions below apply to future rounds.
| OpenRouter model | Providers (first is the default) | API |
|---|---|---|
openai/gpt-oss-120b |
deepinfra/bf16, groq, mara, near-ai/fp4, phala |
Chat Completions |
openai/gpt-oss-20b |
deepinfra/bf16, coreweave/fp4, groq |
Chat Completions |
mistralai/mistral-large-4-0 |
mistral/zdr, mistral/eu |
Chat Completions |
deepseek/deepseek-v4.1-flash-1017 |
fireworks, fireworks/spot, nebius/fp8, together |
Chat Completions or Responses |
reflection/beam-1.0-501b-a23b |
nebius/fp8, coreweave/fp4, digitalocean, io-net/fp4, together |
Chat Completions |
google/gemma-4-31b-it |
coreweave/fp4, modelrun/fp4 |
Chat Completions |
moonshotai/kimi-k3.1-pro |
moonshotai/mxfp4, moonshotai/highspeed |
Chat Completions or Responses |
z-ai/glm-5.3 |
fireworks, coreweave/fp8 |
Chat Completions or Responses |
z-ai/glm-5.3-flash |
fireworks |
Chat Completions or Responses |
z-ai/glm-5.3-flashx |
z-ai/fp8 |
Chat Completions or Responses* |
moonshotai/kimi-k3 |
moonshotai |
Chat Completions or Responses |
moonshotai/kimi-k2.7-code |
moonshotai, moonshotai/highspeed |
Chat Completions or Responses |
z-ai/glm-5.2 |
coreweave/fp4 |
Chat Completions |
z-ai/glm-5.1 |
phala |
Chat Completions or Responses |
z-ai/glm-5v-turbo |
z-ai/fp8 |
Chat Completions or Responses* |
z-ai/glm-4.7 |
deepinfra/fp4 |
Chat Completions or Responses |
z-ai/glm-4.6v |
novita/bf16 |
Chat Completions or Responses* |
moonshotai/kimi-k2.5 |
novita |
Chat Completions or Responses |
moonshotai/kimi-k2-thinking |
novita/bf16 |
Chat Completions |
z-ai/glm-4.5v |
novita/fp8 |
Chat Completions or Responses* |
z-ai/glm-5 |
venice/fp8 |
Chat Completions or Responses |
z-ai/glm-4.6 |
deepinfra/fp4/flex |
Chat Completions or Responses |
moonshotai/kimi-k2.6 |
coreweave/fp4 |
Chat Completions or Responses |
minimax/minimax-m3.1-flash |
nebius/fp4 |
Chat Completions or Responses |
minimax/minimax-m3 |
coreweave/fp4 |
Chat Completions or Responses |
meta/muse-spark-open |
fireworks |
Chat Completions or Responses |
nvidia/nemotron-3.5-super-vl |
deepinfra/fp4 |
Chat Completions or Responses |
nvidia/nemotron-3.5-lightning |
deepinfra/bf16 |
Chat Completions or Responses |
qwen/qwen3.8-27b |
deepinfra/bf16 |
Chat Completions or Responses |
qwen/qwen3.8-2.4t-a95b |
novita |
Chat Completions or Responses |
inclusionai/ling-3.1-flash |
deepinfra/fp4 |
Chat Completions or Responses |
xiaomi/mimo-v2.6-flash |
deepinfra/fp8 |
Chat Completions or Responses |
stepfun/step-5-preview |
deepinfra/fp8 |
Chat Completions or Responses |
mistralai/mistral-medium-3-5 |
mistral/zdr |
Chat Completions or Responses |
tencent/hy4-preview |
deepinfra/fp4 |
Chat Completions or Responses |
upstage/solar-pro4 |
upstage/zdr |
Chat Completions or Responses |
upstage/solar-mini4 |
upstage/zdr |
Chat Completions or Responses |
fireworks/ember-1 |
fireworks |
Chat Completions or Responses |
deepseek/deepseek-v4-pro-0813 |
coreweave/fp8 |
Chat Completions or Responses |
New routes were tested for thinking output, tool continuation, and structured answers. See the route evidence.
Allow your chosen provider in your OpenRouter settings. To select an alternative, send "provider": {"only": ["exact-provider-from-table"]} on each request. Keep the same route throughout a tool conversation. Arena keeps ZDR and disables provider fallback. The bundled Codex helper uses DeepSeek Responses on the default Fireworks route.
*For FlashX, GLM-5V and GLM-4.x vision variants, use Chat JSON mode or prompt for JSON on Responses. Native strict JSON-schema output is not verified.
The existing Reflection nebius/fp8 selector was unavailable in the latest check. Use a listed alternative such as coreweave/fp4.
For local tests, enable thinking with:
- Chat Completions:
"reasoning": {"effort": "high", "exclude": false}. - Gemma:
"reasoning": {"enabled": true, "exclude": false}instead. - Responses:
"reasoning": {"effort": "high"}.
For Solar Pro4 and Mini4, use explicit high effort to enable thinking. minimal and include_reasoning: true alone leave it off.
Hosted web search is supported on the approved DeepSeek Responses routes. Keep normal conversation history and tool-call IDs intact. Keep your harness and custom tools. No custom logging or receipts are required. These rounds require model-directed research and full provider-exposed thinking; summaries alone do not qualify. The sourcing cap increases to $6 per ICP. Champion eligibility requires a passing review and usable training data for at least 80% of ICPs.
Return a JSON list of up to five companies, or [] if none qualify. Use the output_schema_version and policy settings provided in the ICP input. Current rounds source companies only, with no contact details required. See output requirements for required fields.
This example shows the output format. matched_icp_signal is the zero-based index in the input's intent_signals list. Example URLs and claims must be replaced with real evidence.
Output
[
{
"company_name": "Example",
"company_website": "https://example.com/",
"company_linkedin": "",
"industry": "Software",
"employee_count": "51-200",
"company_stage": "Series A",
"country": "United States",
"state": "",
"intent_details": "Example launched its workflow platform on August 20, 2026. The launch could create more implementation work as customers adopt the platform. This activity makes Example relevant to the ICP for business software companies expanding their workflow offering.",
"intent_signals": [
{
"matched_icp_signal": 0,
"description": "Example launched its workflow platform.",
"date": "2026-08-20",
"url": "https://example.com/news"
}
],
"required_attribute": {
"text": "Required characteristic.",
"passed": true,
"evidence_url": "https://example.com/about",
"evidence_quote": "Supporting quote.",
"explanation": "Why it passes."
}
}
]Scoring checks company fit, intent, and supporting evidence. The highest eligible score must beat the daily baseline by at least 5 points to become champion in new rounds. Winning code becomes the next baseline.
New reward tiers are cumulative (15%, 25%, and 35% per slot; 25% base burn):
| Improvement over baseline | Total emissions before decay |
|---|---|
| +5 points | 15% |
| +10 points | 40% |
| +15 points | 75% |
Slots remain with their holder until replaced. With weekly decay enabled, each slot halves every 140 epochs (about seven days), without a reward floor; a genuinely new promoted model resets only the slots it replaces, even on the same hotkey. See reward rules for activation and historical policies.
Champion miners must keep their submitted API credentials funded. If the subnet owner funds a champion rebenchmark, that period's champion incentive is reduced by 50%.
Current rounds have a $4 sourcing cap per ICP, across OpenRouter, Scrapingdog, and Deepline, including retries. Only confirmed charges count toward admission. An ICP above the successful-sourcing cost limit contributes zero; other ICPs still count. Judging has a separate default $50 allowance per submitted model, and code review is billed separately. Historical rounds retain their original rules. See cost details.
Use the interactive CLI:
python scripts/lab_arena_miner.py interactive \
--wallet-name miner --hotkey-name default \
--api-base-url https://gateway.subnet71.comEnter ../my-agent as the source directory and confirm submission, then enter your OpenRouter API key, OpenRouter management key, and Deepline key in the masked prompts. Provide the optional Scrapingdog key only if your model uses it; otherwise press Enter. Runtime keys are stored encrypted and are never published or shared with other miners; the management key is checked and not stored.
For automation, set OPENROUTER_API_KEY, OPENROUTER_MANAGEMENT_KEY, and DEEPLINE_API_KEY, plus SCRAPINGDOG_API_KEY if used. Replace interactive with submit-model --source ../my-agent in the command above.
Every submission must pass code review before evaluation. Review uses the submitting miner's OpenRouter key and is charged separately. Keep source and bundled prompts readable. Track review status and cost on the dashboard.
Do not include keys or .env files in the source directory. Placeholder-only .env.example, .env.sample, and .env.template files are allowed. Source limits are 10 MiB compressed, 50 MiB unpacked, and 1,000 files.
Each registered hotkey can submit one model per daily round. First submissions close at 00:00 UTC. New and eligible open rounds allow one replacement attempt before 23:50 UTC using the same command and hotkey. The API publishes each round's exact submission_replacement_cutoff; earlier frozen rounds retain their original cutoff. Upload and validation must finish before that cutoff. An abandoned or failed replacement still uses that attempt, but the last accepted model remains selected.
Track submissions, scores, and champion status on the dashboard. See the miner guide for detailed submission rules.
This historical ICP comes from the September 9 set and was released under the earlier timing policy on September 10: public benchmark. Display-only score and position fields are omitted.
Input
{
"icp_id": "icp_20260909_001",
"prompt": "I need software companies that just shipped a major platform capability or integration in the last 12 months and are scaling fast.",
"industry": "Software",
"sub_industry": "B2B workflow software",
"target_roles": [],
"target_seniority": "",
"employee_count": ["2-10", "11-50", "51-200", "201-500", "501-1,000"],
"company_stage": "Seed",
"geography": "United States",
"country": "United States",
"product_service": "A subscription software platform that helps business teams automate workflows, manage requests, and connect data across systems.",
"intent_signals": ["Launched a new product or major platform capability in the last 12 months, per a press release, product page, or changelog."],
"intent_signal": "Launched a new product or major platform capability in the last 12 months, per a press release, product page, or changelog.",
"intent_category": "PRODUCT_LAUNCH",
"intent_max_age_days": 365,
"bonus_intents": [],
"required_attribute": "Sells a subscription software platform used by business teams to automate workflows, manage requests, or connect operational data across systems.",
"buyer_description": "I need software companies that just shipped a major platform capability or integration in the last 12 months and are scaling fast.",
"verified_example_company": "Airtable",
"excluded_companies": ["reflow.systems"],
"max_companies": 5
}Registered validators with a permit and at least 75,000 effective subnet stake can receive Arena scoring jobs. Permitted validators below that threshold can still retrieve signed gateway weights. Scoring failures do not stop weight submission.
Run python neurons/validator.py with your wallet flags. Keep the runner updated for current output schemas. Follow the validator setup guide and proxy setup guide.
Use --check-scoring-only to check the scoring host and proxies without accessing wallets or the chain. Use --check-only to check wallet and chain readiness.
Copyright (c) 2025 Leadpoet.
Licensed under the GNU Affero General Public License, version 3 only
(AGPL-3.0-only). See LICENSE.
Inherited third-party code retains its original copyright and license notices.


