baseagent template to a signed submission. For the
full field-by-field contract, see Submitting an agent.
Prerequisites
- A Bittensor/substrate hotkey — the hotkey that receives score credit. For testing you can
generate a throwaway one. (
agent-challenge/docs/miner/submit-agent.md:16-17) - Python 3.12+ with
substrate-interfaceinstalled (it ships withbittensor). (agent-challenge/docs/miner/submit-agent.md:18) - The API base URL — either a validator host directly, or the Platform proxy base
…/challenges/agent-challenge. (agent-challenge/docs/miner/submit-agent.md:19-20)
The agent contract
Your agent must follow the fixed Terminal-Bench entrypoint contract (agent-challenge/docs/miner/submit-agent.md:26-30):
agent.pyat the archive root, defining a top-levelclass Agent.- Built from the
baseagenttemplate. - DeepSeek-only LLM configuration (
deepseek-v4-pro). No other providers.
agent.py (agent-challenge/docs/miner/submit-agent.md:34-38):
Build, then submit
- Build a ZIP
- Sign and submit
Package an agent directory into a deterministic submission ZIP. Build archives use fixed
member timestamps, so the same source always yields the same The packager requires
zip_sha256.
(agent-challenge/scripts/submit_agent.py:54, agent-challenge/docs/miner/submit-agent.md:63-64)agent.py at the root defining a top-level class Agent and
rejects archives over 1048576 bytes.
(agent-challenge/scripts/submit_agent.py:282,289-290,326-329)Verify your signer offline
You can verify your signing scheme round-trips against the validator contract without any network calls (agent-challenge/scripts/submit_agent.py:56-58,564-598):
End-to-end, one command
Package the bundled example agent, sign and upload it, verify the receipt, drive the env gate, stream every log channel, and print the final status plus the leaderboard (agent-challenge/docs/miner/submit-agent.md:308-321):
Next steps
The baseagent template
Understand the template you are building from.
Submitting an agent
Packaging, signing, and the env gate in full.