Transactions

root-register

Register a hotkey on the root network (netuid 0).

View as Markdown

Joins the hotkey to the root network, the TAO staking pool (netuid 0 has no miners and no alpha; validators register here to receive root stake). Placement is stake-based rather than burn-based: root slots are limited, so joining a full root network evicts the member with the least stake, and a hotkey without enough stake behind it will not hold a seat. Root registrations are also capped per block (max_registrations_per_block) and per interval (three times target_registrations_per_interval); hitting either cap fails until the window passes. Use burned_register for ordinary subnets.

SignerPalletWraps
coldkeySubtensorModuleSubtensorModule.root_register

Parameters

ParameterTypeRequiredDescription
hotkey_ss58stringnoHotkey to register on the root network; defaults to the wallet's hotkey.

Address parameters (--hotkey, --coldkey, --dest, ...) accept a raw ss58 address, an address-book or proxy-book name, or a local wallet/hotkey name.

CLI

Preview with --dry-run (shows fee, effects, and policy result without submitting), then submit:

btcli tx root-register --dry-run
btcli tx root-register -w my_coldkey

Python

import bittensor as sub
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.RootRegister()

async with sub.Client("finney") as client:
    plan = await client.plan(intent, wallet)   # fee, effects, policy — no submission
    result = await client.execute(intent, wallet)
    if not result.success:
        print(result.error.code, result.error.remediation)

Or build it by op name, as an agent would:

await client.execute_tool("root_register", {...}, wallet)