Skip to main content

6.5 Testnet Deploy Guide — C-SWON (netuid 26)

Concrete step-by-step for deploying C-SWON on the Bittensor testnet. This documents the exact commands used to deploy the live testnet instance.

Quick Reference

FieldValue
Netuid26
Networktest (wss://test.finney.opentensor.ai:443)
Owner coldkey5Evo1iiPLpYMn5HSo5DE9tBJSgWEx4VSA6dbzsvNQshGNPGX
Miner coldkey5CswWXnGqrSLGFmHhhv6FVwD6t2gyhmByQirvG2yHwPaZ7Yg
Validator coldkey5GWjFybcbmdHArkFQZAVZhyz1My1WgqNqGKzRrHML1pHpbG1
Miners10 (UIDs 2–11)
Validators3 (UIDs 1, 12, 13)

1. Environment Setup

cd C-SWON
python3.12 -m venv .venv && source .venv/bin/activate
pip install bittensor && pip install -e .

cat > .env << 'EOF'
CSWON_MOCK_EXEC=true
CSWON_SYNTHETIC_SALT=<your-salt>
EOF
set -a && source .env && set +a

2. Wallets Created

# Owner (subnet creator)
btcli wallet new_coldkey --wallet.name owner
btcli wallet new_hotkey --wallet.name owner --wallet.hotkey default

# Validator (3 hotkeys)
btcli wallet new_coldkey --wallet.name vali
btcli wallet new_hotkey --wallet.name vali --wallet.hotkey default
btcli wallet new_hotkey --wallet.name vali --wallet.hotkey vali2
btcli wallet new_hotkey --wallet.name vali --wallet.hotkey vali3

# Miner (10 hotkeys)
btcli wallet new_coldkey --wallet.name miner
btcli wallet new_hotkey --wallet.name miner --wallet.hotkey default
for hk in miner2 miner3 miner4 miner5 miner6 miner7 miner8 miner9 miner10; do
btcli wallet new_hotkey --wallet.name miner --wallet.hotkey $hk
done

3. Subnet Created

btcli subnet create --network test --wallet.name owner
# → netuid 26 assigned at block 6797794

4. Registration (10 miners + 3 validators)

# First miner + validator
btcli subnet register --netuid 26 --wallet.name miner --wallet.hotkey default --network test
btcli subnet register --netuid 26 --wallet.name vali --wallet.hotkey default --network test

# Additional miners
for hk in miner2 miner3 miner4 miner5 miner6 miner7 miner8 miner9 miner10; do
btcli subnet register --netuid 26 --wallet.name miner --wallet.hotkey $hk --network test
done

# Additional validators
for hk in vali2 vali3; do
btcli subnet register --netuid 26 --wallet.name vali --wallet.hotkey $hk --network test
done

5. Subnet Started + Staking

btcli subnet start --netuid 26 --wallet.name owner --network test

# Miner staking (15 TAO each)
for hk in default miner2 miner3 miner4 miner5 miner6 miner7 miner8 miner9 miner10; do
btcli stake add --netuid 26 --wallet.name miner --wallet.hotkey $hk --network test --amount 15 --unsafe
done

# Validator staking (50 TAO each for vali2/vali3, vali/default had prior stake)
btcli stake add --netuid 26 --wallet.name vali --wallet.hotkey vali2 --network test --amount 50 --unsafe
btcli stake add --netuid 26 --wallet.name vali --wallet.hotkey vali3 --network test --amount 50 --unsafe

6. Running the Subnet

Start miner first, then validator:

# Terminal 1 — Miner
python neurons/miner.py \
--netuid 26 --subtensor.network test \
--wallet.name miner --wallet.hotkey default \
--axon.port 8091 --logging.debug

# Terminal 2 — Validator
python neurons/validator.py \
--netuid 26 --subtensor.network test \
--wallet.name vali --wallet.hotkey default \
--axon.port 8092 --logging.debug

7. Verification

# Full metagraph
btcli subnet metagraph --netuid 26 --network test

# Wallet overview
btcli wallet overview --wallet.name vali --netuid 26 --network test
btcli wallet overview --wallet.name miner --netuid 26 --network test

# Check weights on chain
python -c "
import bittensor as bt
sub = bt.Subtensor(network='test')
for entry in sub.weights(netuid=26):
print(f'Validator UID {entry[0]} -> {len(entry[1])} targets')
"

Current Hyperparameters (netuid 26)

ParameterValueNotes
tempo360~72 min per cycle (root-only, using default)
weights_rate_limit100Root-only, using default
immunity_period15000~50 hours protection
commit_reveal_weights_enabledFalseDisabled by owner
min_allowed_weights1Set by owner
max_weight_limit65535No cap
registration_cost~0.09 τDynamic

CLI flag reminder: btcli uses --network test. Neuron scripts use --subtensor.network test. These are different CLI frameworks and are NOT interchangeable.


← Previous6.4 Local Deploy Guide
→ Next7.1 Testnet Evidence
IndexDocumentation Index