Bittensor CLI: Permissions Guide
The Bittensor CLI, btcli
provides a wide range of functionality: some commands require a coldkey to authenticate, some require a hotkey, and some require neither. Additionally, different functions require different levels of permissions. Some require the user to have special status like being registered with a node, have a validator permit, or be an active member of the senate.
This page details the requirements for all of the btcli
commands. It is organized by Bittensor persona, on the assumption that everyone who uses btcli
is in one or more of the following roles:
- stakers:
- miners:
- validators:
- subnet creators:
- governance:
For additional background on the difference between coldkeys and hotkeys, please refer to the Wallets, Coldkeys and Hotkeys in Bittensor section below (summarized from the separate doc).
Stakers
Stakers enter value into the Bittensor network by acquiring TAO and staking or delegating it to validators to support their work. As validators extract emissions, a certain percentage goes back to stakers.
See Staking/Delegation Overview.
Stakers must be familiar with operations related to managing the TAO and staked alpha tokens in their Bittensor wallet balance.
Performing these functions requires using a coldkey, and hence must be performed in a highly secure environment for any wallet connected to real (mainnet) TAO balance. A leak of your coldkey can lead to a catastrophic loss of funds.
Accounts can be viewed without using a coldkey, but any changes to stake, transfers, or delegations require signing with the coldkey.
Commands most relevant to stakers:
- Wallet Commands (Coldkey required for modifications):
btcli wallet create
,btcli wallet new-coldkey
,btcli wallet new_coldkey
: Create or generate a new coldkey (secure environment).btcli wallet balance
,btcli wallet overview
,btcli wallet history
: View balances and transaction history. Viewing does not require a coldkey if you only query public chain state, but typically you’ll specify the coldkey to reference your own account data.btcli wallet transfer
: Transfer TAO from your coldkey to another address. Requires a coldkey signature (secure environment).btcli wallet faucet
: (Testnet only or any environment with a faucet). Coldkey not necessarily required if the faucet only needs a public key, but typically you’ll manage it via your wallet.btcli wallet inspect
: Inspect wallet details (permissionless unless you want to do private key operations).
- Stake Management (All require coldkey in a secure environment):
btcli stake add
,btcli stake remove
,btcli stake list
,btcli stake move
,btcli stake transfer
,btcli stake swap
btcli stake child ...
/btcli stake children ...
(get, set, revoke, take)- Short aliases:
btcli st add
,btcli st remove
, etc.
In summary, stakers only need a coldkey. Staking commands should never be run on an insecure or public-facing machine since the coldkey manages your TAO holdings.
Miners
Miners run processes that serve or forward inference requests on the network. They register with the chain using a hotkey to obtain a UID for the subnet(s) in which they operate.
- Hotkey creation can be done on a secure machine (paired with your coldkey). However, day-to-day mining is done with the hotkey in a less secure environment (the “mining rig” or server), since it needs to be online to serve inference requests.
- Miners can also stake TAO, but that typically requires using the coldkey in a secure environment to move or delegate stake. Once staked, the miner can remain on their hotkey-based environment to continue operation.
Commands most relevant to miners:
- Subnet Registration / Info:
btcli subnets list
,btcli subnets show
,btcli subnets metagraph
: Generally permissionless reads to see available subnets or node info.btcli subnets price
,btcli subnets burn-cost
,btcli subnets burn_cost
: Show the required burn to register in a particular subnet. Permissionless read.btcli subnets pow-register
,btcli subnets pow_register
,btcli subnets register
: Miner uses these to register themselves on the subnet, typically from a machine with the hotkey. However, the associated transaction cost must come from the coldkey. So you either sign it with your coldkey (secure environment) or set up a valid signature flow.- The registration places the hotkey on the chain with a UID in that subnet.
- Wallet:
btcli wallet new-hotkey
/btcli wallet regen-hotkey
: Creation/regeneration of hotkeys. Typically do these on a secure machine (paired to your coldkey), then transfer the hotkey file or mnemonic to the mining machine.btcli wallet balance
andbtcli wallet overview
: Might be used to check the hotkey’s on-chain state or small balances. (Hotkey on a less secure machine is lower risk, but still treat it with caution.)
- Config:
btcli config set
,btcli config get
, etc. (Permissionless) to configure endpoints or chain settings as you run a miner.
Miners primarily rely on hotkeys for daily operations. The coldkey is only needed when you need to create or fund that hotkey, or if you want to stake additional TAO or pay the burn for certain registrations.
Validators
Validators secure the network by finalizing blocks, validating miner performance, and posting “weights” that reflect consensus on performance. In Bittensor’s design:
- Hotkey (with a validator permit) signs and submits “weight” extrinsics, typically from a machine that is online and runs the validator logic.
- Coldkey is needed for any stake management or large fund transfers.
Commands most relevant to validators:
- Weights:
btcli weights reveal
,btcli weights commit
btcli wt reveal
,btcli wt commit
btcli weight reveal
,btcli weight commit
These require a hotkey with an on-chain validator permit. Typically run in a live environment (the validator node).
- Stake Management (if you stake TAO to your validator hotkey or accept delegations):
btcli stake add
,btcli stake remove
,btcli stake move
, etc. (see Stakers section).
Requires the coldkey in a secure environment if you are adding or removing stake from your own coldkey to your validator hotkey.
- Subnet Registration:
- If you are validating on a particular subnet, you often must register with
btcli subnets register
orbtcli subnets pow-register
, same as miners. This also typically involves your coldkey to pay any required fees, while awarding your hotkey the validator status/UID in that subnet.
- If you are validating on a particular subnet, you often must register with
In short, validators use their hotkey for daily validation and weights. The coldkey is still needed for any staking or managing TAO, so you keep it offline or in a more secure environment whenever possible.
Subnet Creators
Subnet creators define and manage new subnets, specifying parameters like burn cost, hyperparameters, or other chain-level configurations. This role inherently requires a coldkey with sufficient balance/permissions to create or update subnets.
Commands most relevant to subnet creators:
- Subnet Creation / Configuration (all require coldkey in a secure environment to sign on-chain transactions):
btcli subnets create
btcli subnets hyperparameters
btcli subnets burn-cost
/btcli subnets burn_cost
btcli subnets price
btcli subnets set
(some advanced usage might come in viasudo
or governance commands)- Similarly, short forms like
btcli s create
,btcli s burn-cost
,btcli subnet create
, etc.
- Reads (permissionless in many cases):
btcli subnets list
,btcli subnets show
,btcli subnets metagraph
- The short forms
btcli s list
,btcli s show
,btcli subnet list
, and so on.
The core difference is that creating or altering a subnet’s parameters requires a secure environment and a coldkey that has enough TAO and the appropriate on-chain privileges.
Governance Functions
Governance participants (senate members, sudo-level accounts) can propose changes, cast votes, or execute privileged commands that affect the entire network. They must have a coldkey with the relevant governance role (senate membership or sudo privileges).
Commands most relevant to governance:
- Senate / Proposals (coldkey with senator role):
btcli sudo senate
btcli sudo proposals
btcli sudo senate-vote
btcli sudo senate_vote
- Aliases:
btcli su senate
,btcli su proposals
, etc.
- Sudo Commands (coldkey with sudo privileges):
btcli sudo set
,btcli sudo get
btcli sudo set-take
,btcli sudo get-take
btcli sudo set_take
,btcli sudo get_take
- Aliases:
btcli su set
,btcli su get
, etc.
Because these commands can significantly change chain parameters or enact critical changes, they require a fully privileged coldkey in a very secure environment.
Requirements:
Coldkey
Your primary, fully privileged key. Required for:
- Managing stake (add/remove/move).
- Moving or transferring TAO (i.e.,
wallet transfer
). - Creating or modifying subnets (
btcli subnets create
). - Voting or proposing in governance. Must be used on a high-security machine to avoid catastrophic loss if compromised.
Hotkey
Used for daily operations with lower privileges:
- Running miners (signing inference, staying online).
- Running validators (weight commits, daily on-chain actions). Usually stored on a less secure environment than the coldkey because it must be online and accessible for repeated use.
Available liquidity
Make sure your coldkey wallet has sufficient on-chain TAO to pay fees, stake, or register subnets. Insufficient balance will cause transactions to fail.
Validator Permit
An on-chain permission required for hotkeys that want to operate as validators. Without it, you can’t sign or submit weight commits.
Workstation config
- Coldkey workstation: Minimal exposure, ideally offline or with strong security controls. Used only for signing critical transactions (e.g., staking, governance, subnet creation).
- Hotkey workstation: Online servers used for mining or validation. Contains only hotkeys.
btcli config
btcli config [options]
- btcli config set
- btcli config get
- ...
- btcli conf metagraph
Permissionless
-
btcli config set
-
btcli config get
-
btcli config clear
-
btcli config metagraph
-
btcli conf set
-
btcli conf get
-
btcli conf clear
-
btcli conf metagraph
-
btcli c set
-
btcli c get
-
btcli c clear
-
btcli c metagraph
Wallet management
Mostly target a coldkey; should be performed on a secure CK workstation, NOT a mining workstation or any other insecure endpoint.
HKs should be created on secure CK workstation and then carefully provisioned to less secure working nodes for mining and validation.
btcli wallet list
btcli wallet swap-hotkey
btcli wallet regen-coldkey
btcli wallet regen-coldkeypub
btcli wallet regen-hotkey
btcli wallet new-hotkey
btcli wallet new-coldkey
btcli wallet create
btcli wallet balance
btcli wallet history
btcli wallet overview
btcli wallet transfer
btcli wallet inspect
btcli wallet faucet
btcli wallet set-identity
btcli wallet get-identity
btcli wallet sign
btcli wallet swap_hotkey
btcli wallet regen_coldkey
btcli wallet regen_coldkeypub
btcli wallet regen_hotkey
btcli wallet new_hotkey
btcli wallet new_coldkey
btcli wallet set_identity
btcli wallet get_identity
btcli w list
btcli w swap-hotkey
btcli w regen-coldkey
btcli w regen-coldkeypub
btcli w regen-hotkey
btcli w new-hotkey
btcli w new-coldkey
btcli w create
btcli w balance
btcli w history
btcli w overview
btcli w transfer
btcli w inspect
btcli w faucet
btcli w set-identity
btcli w get-identity
btcli w sign
btcli w swap_hotkey
btcli w regen_coldkey
btcli w regen_coldkeypub
btcli w regen_hotkey
btcli w new_hotkey
btcli w new_coldkey
btcli w set_identity
btcli w get_identity
btcli wallets list
btcli wallets swap-hotkey
btcli wallets regen-coldkey
btcli wallets regen-coldkeypub
btcli wallets regen-hotkey
btcli wallets new-hotkey
btcli wallets new-coldkey
btcli wallets create
btcli wallets balance
btcli wallets history
btcli wallets overview
btcli wallets transfer
btcli wallets inspect
btcli wallets faucet
btcli wallets set-identity
btcli wallets get-identity
btcli wallets sign
btcli wallets swap_hotkey
btcli wallets regen_coldkey
btcli wallets regen_coldkeypub
btcli wallets regen_hotkey
btcli wallets new_hotkey
btcli wallets new_coldkey
btcli wallets set_identity
btcli wallets get_identity
Stake Management
Coldkey w sufficient TAO or w stake for unstaking/moving
Mostly target a coldkey; should be performed on a secure CK workstation, NOT a mining workstation or any other insecure endpoint.