Skip to content

Miner Guide ​

Nepher Robotics · Bittensor Subnet 49

Nepher Robotics (Subnet 49) is a robotics tournament subnet on Bittensor. You train a navigation policy, submit it, and validators evaluate every agent in standardized Isaac Lab environments. After review, the approved podium (up to 3 places, default split 70% / 20% / 10%) earns the subnet's miner emissions during the reward period. See the Incentive Mechanism for details.

Your job as a miner: train a policy → submit. Validators handle the rest. (Optionally self-evaluate first to preview your score.)


1. Prerequisites ​

  • GPU for training (NVIDIA, 24 GB+ VRAM). Submission itself is CPU-only.
  • Python 3.10+, Isaac Sim 5.1, Isaac Lab 2.3.2.
  • Bittensor wallet with a hotkey registered on Subnet 49.
  • Nepher account + API key — sign up at nepher.ai/account, then create a key under Account → API Keys.
  • Platform balance in TAO to pay submission fees (default 0.1–0.5 TAO per upload).

2. Wallet & Registration ​

bash
pip install bittensor
btcli wallet new_coldkey --wallet.name miner
btcli wallet new_hotkey  --wallet.name miner --wallet.hotkey default
btcli subnet register --wallet.name miner --wallet.hotkey default --netuid 49

⚠️ Back up your coldkey mnemonic. If you lose it, you lose your funds.

Emissions are paid to your hotkey's UID. Keep the hotkey registered until the reward period of your tournament ends — a deregistered hotkey cannot receive weight.


3. Nepher CLI, Coldkey & Balance ​

Install the Nepher CLI and the wallet signer, then log in:

bash
pip install nepher-cli bittensor-wallet           # or: pip install "nepher-cli[bittensor]"
npcli login --api-key nepher_xxxxxxxx             # or run `npcli login` and paste it

Register your coldkey (needed to fund your platform balance). If your API key restricts platforms, it must include Hackathon access for this step:

bash
npcli account register-coldkey --wallet miner

Fund your balance: send TAO from that coldkey to the treasury address shown on Account → Billing. Deposits are credited after 3 confirmations, and larger single transfers get a bonus (×1.5 from 10 TAO, ×2 from 20 TAO, ×3 from 50 TAO). Check it with:

bash
npcli account balance

Full details: Platform Balance & Fees.


4. Get the Task Repo ​

Each tournament has its own task repo (linked on its tournament page) — an Isaac Lab external project containing the environment, training/play scripts, and the agent layout.

Clone it and follow its README for the exact, up-to-date steps to install the task module and register the environments:

bash
git clone <task-repo-url>
cd <task-repo>
# then follow the repo README to install the task module + environments

5. Train & Prepare Your Policy ​

Use the training/play scripts and task IDs documented in the repo README. Train on the generic training task — validators benchmark on hidden EnvHub datasets, so a policy that generalizes well beats one overfit to specific scenes:

bash
${ISAACLAB_PATH}/isaaclab.sh -p scripts/rsl_rl/train.py --task=<train-task> --headless

Play/test a checkpoint as shown in the README, then copy your best checkpoint to the required submission location:

bash
cp /path/to/logs/rsl_rl/.../model_best.pt best_policy/best_policy.pt

Required agent layout:

my-agent/
├── best_policy/best_policy.pt     # required (max 2 GB)
├── source/<task_module>/          # required: your Isaac Lab task module
└── scripts/                       # recommended: list_envs.py, rsl_rl/play.py

6. Submit to the Tournament ​

bash
npcli tournament list-active                      # find the tournament ID

npcli tournament check --path ./my-agent          # check structure first

npcli tournament submit \
    --path ./my-agent \
    --wallet-name miner \
    --wallet-hotkey default

The CLI uses your stored credentials from npcli login (or pass --api-key). If several tournaments are active, add --tournament-id <id>.

What happens on submit:

  1. The CLI validates your structure, zips the folder, and signs the archive hash with your hotkey.
  2. The API checks that the hotkey is registered on Subnet 49, the tournament is accepting uploads, and your balance covers the fee.
  3. The CLI prints the submission fee, uploads the archive (default size limit 100 MB), and shows your Agent ID and the fee charged.
  4. The archive is security-scanned. Flagged agents are held until an admin clears them.

💡 You can submit multiple times — only your latest submission per hotkey is evaluated. Your first upload in a tournament costs the minimum fee; the next fee jumps to the maximum and decays back over ~6 hours, so space out re-submissions. See your next fee at nepher.ai/tournament/submission-cost.

If you see "Insufficient platform balance for submission fee", top up on Account → Billing and try again.


7. Track Results ​

  • My Submissions and Dashboard on nepher.ai/tournament show your agents, evaluation status, and scores.
  • The tournament page shows the public leaderboard during public evaluation and the private leaderboard after the evaluation period.
  • Winners are announced by email after review, and appear on the tournament page and Highlights.

Appendix: Self-Evaluate (same pipeline as validators) ​

Optional but recommended — run the exact evaluation validators use to preview your score before submitting.

Install eval-nav and the nepher EnvHub package (required to load EnvHub scenes during evaluation):

bash
git clone https://github.com/nepher-ai/eval-nav.git ./eval-nav
${ISAACLAB_PATH}/isaaclab.sh -p -m pip install -e ./eval-nav
${ISAACLAB_PATH}/isaaclab.sh -p -m pip install nepher

Optionally pre-download the sample scenes (otherwise they download on demand):

bash
npcli envhub download waypoint-sample-v1

eval-nav ships ready-made config YAMLs per task under configs/. Copy the one for your task and customize it (e.g. point policy_path at your best_policy.pt, adjust seeds/episodes):

bash
cp ./eval-nav/configs/<your-task>.yaml eval_config.yaml

Run it:

bash
${ISAACLAB_PATH}/isaaclab.sh -p ./eval-nav/scripts/evaluate.py \
    --config eval_config.yaml --headless

Your score is written to evaluation_result.json.


Resources ​


Good luck, miner!

Released under the MIT License.