PageSourceSearch

https://developer-docs-6uq.pages.dev/assets/js/22dd74f7.6153f811.js

js developer-docs-6uq.pages.dev collected 2026-10-03 06:40:43 UTC 71,478 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkbittensor_docs=self.webpackChunkbittensor_docs||[]).push([[1567],{5226:e=>{e.exports=JSON.parse('{"version":{"pluginId":"default","version":"current","label":"Next","banner":null,"badge":false,"noIndex":false,"className":"docs-version-current","isLast":true,"docsSidebars":{"bittensorSidebar":[{"type":"link","label":"Home","href":"/","docId":"index","unlisted":false},{"type":"category","label":"Understand Bittensor","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Introduction to Bittensor","href":"/learn/introduction","docId":"learn/introduction","unlisted":false},{"type":"link","label":"Frequently asked questions (FAQ)","href":"/resources/questions-and-answers","docId":"resources/questions-and-answers","unlisted":false},{"type":"link","label":"Understanding Subnets","href":"/subnets/understanding-subnets","docId":"subnets/understanding-subnets","unlisted":false},{"type":"link","label":"Understanding Incentive Mechanisms","href":"/learn/anatomy-of-incentive-mechanism","docId":"learn/anatomy-of-incentive-mechanism","unlisted":false},{"type":"link","label":"Multiple Incentive Mechanisms Within Subnets","href":"/subnets/understanding-multiple-mech-subnets","docId":"subnets/understanding-multiple-mech-subnets","unlisted":false},{"type":"link","label":"Understanding Neurons","href":"/learn/neurons","docId":"learn/neurons","unlisted":false},{"type":"link","label":"Emission","href":"/learn/emissions","docId":"learn/emissions","unlisted":false},{"type":"link","label":"Exponential Moving Averages (EMAs) in Bittensor","href":"/learn/ema","docId":"learn/ema","unlisted":false},{"type":"link","label":"Yuma Consensus","href":"/learn/yuma-consensus","docId":"learn/yuma-consensus","unlisted":false},{"type":"link","label":"How Yuma Consensus 3 Makes Bittensor More Fair","href":"/learn/yc3-blog","docId":"learn/yc3-blog","unlisted":false},{"type":"link","label":"The Weight Copying Problem","href":"/learn/weight-copying-in-bittensor","docId":"learn/weight-copying-in-bittensor","unlisted":false},{"type":"link","label":"Yuma Consensus 3 (YC3) Migration Guide","href":"/learn/yuma3-migration-guide","docId":"learn/yuma3-migration-guide","unlisted":false},{"type":"link","label":"Transaction Fees in Bittensor","href":"/learn/fees","docId":"learn/fees","unlisted":false},{"type":"link","label":"Batch Transactions","href":"/learn/batch-transactions","docId":"learn/batch-transactions","unlisted":false},{"type":"link","label":"Rate Limits","href":"/learn/chain-rate-limits","docId":"learn/chain-rate-limits","unlisted":false},{"type":"category","label":"Navigating Subtensor Codebase","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Coinbase Implementation","href":"/navigating-subtensor/emissions-coinbase","docId":"navigating-subtensor/emissions-coinbase","unlisted":false},{"type":"link","label":"Implementation of the Yuma Consensus Epoch","href":"/navigating-subtensor/epoch","docId":"navigating-subtensor/epoch","unlisted":false},{"type":"link","label":"Staking Implementation","href":"/navigating-subtensor/swap-stake","docId":"navigating-subtensor/swap-stake","unlisted":false}],"href":"/navigating-subtensor/"},{"type":"link","label":"Subtensor Pallets and Extrinsics","href":"/navigating-subtensor/subtensor-extrinsics","docId":"navigating-subtensor/subtensor-extrinsics","unlisted":false},{"type":"link","label":"Bittensor Community Links","href":"/resources/community-links","docId":"resources/community-links","unlisted":false}]},{"type":"category","label":"Wallets and Keys","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Wallets, Coldkeys and Hotkeys in Bittensor","href":"/keys/wallets","docId":"keys/wallets","unlisted":false},{"type":"category","label":"Bittensor Wallet","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bittensor Wallet","href":"/keys/btwallet/","docId":"keys/btwallet/index","unlisted":false},{"type":"link","label":"Keypair","href":"/keys/btwallet/keypair","docId":"keys/btwallet/keypair","unlisted":false},{"type":"link","label":"Encrypt and decrypt","href":"/keys/btwallet/encrypt-decrypt","docId":"keys/btwallet/encrypt-decrypt","unlisted":false},{"type":"link","label":"Wallet and Keyfile","href":"/keys/btwallet/wallet-class","docId":"keys/btwallet/wallet-class","unlisted":false}]},{"type":"link","label":"Creating/Importing a Bittensor Wallet","href":"/keys/working-with-keys","docId":"keys/working-with-keys","unlisted":false},{"type":"link","label":"Handle your Seed Phrase/Mnemonic Securely","href":"/keys/handle-seed-phrase","docId":"keys/handle-seed-phrase","unlisted":false},{"type":"link","label":"Coldkey and Hotkey Workstation Security","href":"/keys/coldkey-hotkey-security","docId":"keys/coldkey-hotkey-security","unlisted":false},{"type":"link","label":"Address Poisoning Scams: Protect Your Wallet","href":"/keys/address-poisoning-scams","docId":"keys/ad
1dress-poisoning-scams","unlisted":false},{"type":"category","label":"Proxies","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Proxies: Overview","href":"/keys/proxies/","docId":"keys/proxies/index","unlisted":false},{"type":"link","label":"Working with Proxies","href":"/keys/proxies/working-with-proxies","docId":"keys/proxies/working-with-proxies","unlisted":false},{"type":"link","label":"Understanding Pure Proxies","href":"/keys/proxies/pure-proxies","docId":"keys/proxies/pure-proxies","unlisted":false},{"type":"link","label":"Avoid Staking Proxy Attacks","href":"/keys/proxies/avoid-staking-proxy-attacks","docId":"keys/proxies/avoid-staking-proxy-attacks","unlisted":false}]},{"type":"link","label":"Secure your Coldkey with a Multisig Wallet","href":"/keys/multisig","docId":"keys/multisig","unlisted":false},{"type":"link","label":"Rotate or Swap your Coldkey","href":"/keys/coldkey-swap","docId":"keys/coldkey-swap","unlisted":false}]},{"type":"category","label":"Staking/Delegation","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Staking/Delegation Overview","href":"/staking-and-delegation/delegation","docId":"staking-and-delegation/delegation","unlisted":false},{"type":"link","label":"Managing Your Stakes","href":"/staking-and-delegation/managing-stake-sdk","docId":"staking-and-delegation/managing-stake-sdk","unlisted":false},{"type":"link","label":"Conviction and locked stake","href":"/staking-and-delegation/conviction-staking","docId":"staking-and-delegation/conviction-staking","unlisted":false},{"type":"category","label":"Root claims","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Root Claim: Overview","href":"/staking-and-delegation/root-claims/","docId":"staking-and-delegation/root-claims/index","unlisted":false},{"type":"link","label":"Managing Root Claims","href":"/staking-and-delegation/root-claims/managing-root-claims","docId":"staking-and-delegation/root-claims/managing-root-claims","unlisted":false}]},{"type":"link","label":"Understand Price Protection","href":"/staking-and-delegation/price-protection","docId":"staking-and-delegation/price-protection","unlisted":false},{"type":"link","label":"Balancer Weighted Pools for Subnet AMMs","href":"/staking-and-delegation/balancer-amm","docId":"staking-and-delegation/balancer-amm","unlisted":false},{"type":"link","label":"Understanding Slippage","href":"/staking-and-delegation/slippage","docId":"staking-and-delegation/slippage","unlisted":false},{"type":"link","label":"Staking with Polkadot JS","href":"/staking-and-delegation/staking-polkadot-js","docId":"staking-and-delegation/staking-polkadot-js","unlisted":false},{"type":"link","label":"Using Ledger Hardware Wallet","href":"/staking-and-delegation/using-ledger-hw-wallet","docId":"staking-and-delegation/using-ledger-hw-wallet","unlisted":false}]},{"type":"category","label":"Mining","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Mining in Bittensor","href":"/miners/","docId":"miners/index","unlisted":false},{"type":"link","label":"Miner\'s Guide to `BTCLI`","href":"/miners/miners-btcli-guide","docId":"miners/miners-btcli-guide","unlisted":false},{"type":"link","label":"Auto Staking for Miners","href":"/miners/autostaking","docId":"miners/autostaking","unlisted":false}]},{"type":"category","label":"Validating","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Validating in Bittensor","href":"/validators/","docId":"validators/index","unlisted":false},{"type":"link","label":"Child Hotkeys","href":"/validators/child-hotkeys","docId":"validators/child-hotkeys","unlisted":false},{"type":"link","label":"Validator\'s Guide to `BTCLI`","href":"/validators/validators-btcli-guide","docId":"validators/validators-btcli-guide","unlisted":false}]},{"type":"category","label":"Managing Subnets","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Subnet","href":"/subnets/create-a-subnet","docId":"subnets/create-a-subnet","unlisted":false},{"type":"category","label":"Crowdloans","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Create a Subnet with a Crowdloan","href":"/subnets/crowdloans/crowdloans-tutorial","docId":"subnets/crowdloans/crowdloans-tutorial","unlisted":false}],"href":"/subnets/crowdloans/"},{"type":"link","label":"Subnet Creator\'s Guide to `BTCLI`","href":"/subnets/subnet-creators-btcli-guide","docId":"subnets/subnet-creators-btcli-guide","unlisted":false},{"type":"link","label":"Subnet Configuration (Hyperparameters)","href":"/subnets/subnet-hyperparameters","docId":"subnets/subnet-hyperparameters","unlisted":false},{"type":"link","label":"Working with Subnets","href":"/subnets/working-with-subnets","docId":"subnets/working-with-subnets","unlisted":false},{"type":"link","label":"Managing Multiple Incentive Mechanisms with SDK","href":"/subnets/managing-mechanisms-with-sdk","docId":"subnets/managing-mechanisms-with-sdk","unlisted":false},{"type":"link","label":"Managing Multiple Incentive Mechanisms with BTCLI","href":"/subnets/managing-mechanisms-btcli","docId":"subnets/managing-mechanisms-btcli","unlisted":false},{"type":"link","label":"The Subnet Metagraph","href":"/subnets/metagraph","docId":"subnets/metagraph","unlisted":false},{"type":"link","label":"UID Trimming","href":"/subnets/uid-trimming","docId":"subnets/uid-trimming","unlisted":false},{"type":"link","label":"Subnet Deregistration","href":"/subnets/subnet-deregistration","docId":"subnets/subnet-deregistration","unlisted":false},{"type":"link","label":"Walkthrough of Example Subnet","href":"/subnets/walkthrough-prompting","docId":"subnets/walkthrough-prompting","unlisted":false},{"type":"link","label":"Basic Subnet Tutorials","href":"/tutorials/basic-subnet-tutorials","docId":"tutorials/basic-subnet-tutorials","unlisted":false},{"type":"link","label":"OCR Subnet Tutorial","href":"/tutorials/ocr-subnet-tutorial","docId":"tutorials/ocr-subnet-tutorial","unlisted":false}]},{"type":"category","label":"BTCLI: The Bittensor CLI","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Install BTCLI","href":"/btcli/install-btcli","docId":"btcli/install-btcli","unlisted":false},{"type":"link","label":"Bittensor CLI: Permissions Guide","href":"/btcli/btcli-permissions","docId":"btcli/btcli-permissions","unlisted":false}],"href":"/btcli/overview"},{"type":"category","label":"Bittensor Python SDK","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"SDK Tutorials","href":"/sdk/","docId":"sdk/index","unlisted":false},{"type":"link","label":"Install Bittensor SDK","href":"/sdk/installation","docId":"sdk/installation","unlisted":false},{"type":"link","label":"Environment Variables","href":"/sdk/env-vars","docId":"sdk/env-vars","unlisted":false},{"type":"link","label":"Using MEV Shield with the Bittensor SDK","href":"/sdk/mev-protection","docId":"sdk/mev-protection","unlisted":false},{"type":"link","label":"Working with Blockchain Calls","href":"/sdk/call","docId":"sdk/call","unlisted":false},{"type":"link","label":"Bittensor SDK v10 Migration Guide","href":"/sdk/migration-guide","docId":"sdk/migration-guide","unlisted":false},{"type":"link","label":"Working with Concurrency","href":"/subnets/asyncio","docId":"subnets/asyncio","unlisted":false},{"type":"link","label":"Managing Subtensor Connections","href":"/sdk/managing-subtensor-connections","docId":"sdk/managing-subtensor-connections","unlisted":false}]},{"type":"category","label":"Subtensor API","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Extrinsics","href":"/subtensor-api/extrinsics","docId":"subtensor-api/extrinsics","unlisted":false},{"type":"link","label":"Storage","href":"/subtensor-api/storage","docId":"subtensor-api/storage","unlisted":false},{"type":"link","label":"Events","href":"/subtensor-api/events","docId":"subtensor-api/events","unlisted":false},{"type":"link","label":"Errors","href":"/subtensor-api/errors","docId":"subtensor-api/errors","unlisted":false},{"type":"link","label":"Constants","href":"/subtensor-api/constants","docId":"subtensor-api/constants","unlisted":false},{"type":"link","label":"Runtime Calls","href":"/subtensor-api/runtime","docId":"subtensor-api/runtime","unlisted":false},{"type":"link","label":"RPC","href":"/subtensor-api/rpc","docId":"subtensor-api/rpc","unlisted":false}],"href":"/subtensor-api/"},{"type":"category","label":"Tools and Special Features","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Bittensor Networks","href":"/concepts/bittensor-networks","docId":"concepts/bittensor-networks","unlisted":false},{"type":"link","label":"Halving Mechanisms in Bittensor","href":"/concepts/halving","docId":"concepts/halving","unlisted":false},{"type":"link","label":"MEV Shield: Encrypted Mempool Protection","href":"/concepts/mev-shield/","docId":"concepts/mev-shield/index","unlisted":false},{"type":"link","label":"Commit Reveal","href":"/concepts/commit-reveal","docId":"concepts/commit-reveal","unlisted":false},{"type":"link","label":"Subnet Stake Burn","href":"/concepts/stake-burn","docId":"concepts/stake-burn","unlisted":false},{"type":"link","label":"Consensus-based Weights/Liquid Alpha","href":"/concepts/consensus-based-weights","docId":"concepts/consensus-based-weights","unlisted":false},{"type":"link","label":"Inspecting the Chain with Polkadot.js","href":"/concepts/inspecting-the-chain","docId":"concepts/inspecting-the-chain","unlisted":false},{"type":"link","label":"Logging","href":"/concepts/bt-logging-levels","docId":"concepts/bt-logging-levels","unlisted":false},{"type":"link","label":"Utilities","href":"/resources/utilities","docId":"resources/utilities","unlisted":false}],"href":"/concepts/tools"},{"type":"category","label":"Local Development","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Run a Local Bittensor Blockchain Instance","href":"/local-build/deploy","docId":"local-build/deploy","unlisted":false},{"type":"link","label":"Provision Wallets for Local Blockchain","href":"/local-build/provision-wallets","docId":"local-build/provision-wallets","unlisted":false},{"type":"link","label":"Create a Subnet (Locally)","href":"/local-build/create-subnet","docId":"local-build/create-subnet","unlisted":false},{"type":"link","label":"Mining and Validating on Localnet","href":"/local-build/mine-validate","docId":"local-build/mine-validate","unlisted":false}]},{"type":"category","label":"Subtensor Nodes","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Subtensor Node Requirements","href":"/subtensor-nodes/subtensor-node-requirements","docId":"subtensor-nodes/subtensor-node-requirements","unlisted":false},{"type":"category","label":"Running a subtensor node","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Run with Source Code","href":"/subtensor-nodes/run/using-source","docId":"subtensor-nodes/run/using-source","unlisted":false},{"type":"link","label":"Run with Docker","href":"/subtensor-nodes/run/using-docker","docId":"subtensor-nodes/run/using-docker","unlisted":false}],"href":"/subtensor-nodes/run/"},{"type":"link","label":"Subtensor Storage Query Examples","href":"/subtensor-nodes/subtensor-storage-query-examples","docId":"subtensor-nodes/subtensor-storage-query-examples","unlisted":false}],"href":"/subtensor-nodes/"},{"type":"category","label":"Bittensor EVM","items":[{"type":"link","label":"Bittensor EVM Smart Contracts","href":"/evm-tutorials/","docId":"evm-tutorials/index","unlisted":false},{"type":"link","label":"EVM Network Details","href":"/evm-tutorials/subtensor-networks","docId":"evm-tutorials/subtensor-networks","unlisted":false},{"type":"link","label":"Token Bridging","href":"/evm-tutorials/bridge-vtao","docId":"evm-tutorials/bridge-vtao","unlisted":false},{"type":"link","label":"EVM on Testnet","href":"/evm-tutorials/evm-testnet-with-metamask-wallet","docId":"evm-tutorials/evm-testnet-with-metamask-wallet","unlisted":false},{"type":"link","label":"EVM on Local Chain","href":"/evm-tutorials/evm-localnet-with-metamask-wallet","docId":"evm-tutorials/evm-localnet-with-metamask-wallet","unlisted":false},{"type":"link","label":"EVM on Mainnet","href":"/evm-tutorials/evm-mainnet-with-metamask-wallet","docId":"evm-tutorials/evm-mainnet-with-metamask-wallet","unlisted":false},{"type":"link","label":"Configuring Hardhat","href":"/evm-tutorials/hardhat-config-for-subtensor-evm","docId":"evm-tutorials/hardhat-config-for-subtensor-evm","unlisted":false},{"type":"link","label":"Configuring Remix IDE","href":"/evm-tutorials/remi
1x-config-for-subtensor-evm","docId":"evm-tutorials/remix-config-for-subtensor-evm","unlisted":false},{"type":"link","label":"EVM Troubleshooting","href":"/evm-tutorials/troubleshooting","docId":"evm-tutorials/troubleshooting","unlisted":false}],"collapsed":true,"collapsible":true},{"type":"category","label":"Bittensor EVM: Examples and Precompiles","items":[{"type":"link","label":"Convert Ethereum (H160) Address to Substrate (SS58)","href":"/evm-tutorials/convert-h160-to-ss58","docId":"evm-tutorials/convert-h160-to-ss58","unlisted":false},{"type":"link","label":"Transfer TAO from Metamask to SS58 Address","href":"/evm-tutorials/transfer-from-metamask-to-ss58","docId":"evm-tutorials/transfer-from-metamask-to-ss58","unlisted":false},{"type":"link","label":"Transfer Between Two H160 Accounts","href":"/evm-tutorials/transfer-between-two-h160-accounts","docId":"evm-tutorials/transfer-between-two-h160-accounts","unlisted":false},{"type":"link","label":"Bridging and Wrapping vTAO","href":"/evm-tutorials/vtao-bridge-tutorial","docId":"evm-tutorials/vtao-bridge-tutorial","unlisted":false},{"type":"link","label":"Providing vTAO liquidity to Aerodrome","href":"/evm-tutorials/vtao-liquidity-on-aerodrome","docId":"evm-tutorials/vtao-liquidity-on-aerodrome","unlisted":false},{"type":"link","label":"Withdraw TAO from Alice Account (Local Development)","href":"/evm-tutorials/withdraw-from-alice","docId":"evm-tutorials/withdraw-from-alice","unlisted":false},{"type":"link","label":"Verify Address Precompile","href":"/evm-tutorials/ed25519-verify-precompile","docId":"evm-tutorials/ed25519-verify-precompile","unlisted":false},{"type":"link","label":"Staking Precompile","href":"/evm-tutorials/staking-precompile","docId":"evm-tutorials/staking-precompile","unlisted":false},{"type":"link","label":"Subnet Precompile","href":"/evm-tutorials/subnet-precompile","docId":"evm-tutorials/subnet-precompile","unlisted":false},{"type":"link","label":"Metagraph Precompile","href":"/evm-tutorials/metagraph-precompile","docId":"evm-tutorials/metagraph-precompile","unlisted":false},{"type":"link","label":"Neuron Precompile","href":"/evm-tutorials/neuron-precompile","docId":"evm-tutorials/neuron-precompile","unlisted":false},{"type":"link","label":"Alpha Precompile","href":"/evm-tutorials/alpha-precompile","docId":"evm-tutorials/alpha-precompile","unlisted":false},{"type":"link","label":"Proxy Precompile","href":"/evm-tutorials/proxy-precompile","docId":"evm-tutorials/proxy-precompile","unlisted":false},{"type":"link","label":"Crowdloan Precompile","href":"/evm-tutorials/crowdloan-precompile","docId":"evm-tutorials/crowdloan-precompile","unlisted":false},{"type":"link","label":"Leasing Precompile","href":"/evm-tutorials/leasing-precompile","docId":"evm-tutorials/leasing-precompile","unlisted":false},{"type":"link","label":"Voting Power Precompile","href":"/evm-tutorials/votingpower-precompile","docId":"evm-tutorials/votingpower-precompile","unlisted":false},{"type":"link","label":"AddressMapping Precompile","href":"/evm-tutorials/addressmapping-precompile","docId":"evm-tutorials/addressmapping-precompile","unlisted":false},{"type":"link","label":"UidLookup Precompile","href":"/evm-tutorials/uidlookup-precompile","docId":"evm-tutorials/uidlookup-precompile","unlisted":false},{"type":"link","label":"StorageQuery Precompile","href":"/evm-tutorials/storagequery-precompile","docId":"evm-tutorials/storagequery-precompile","unlisted":false}],"collapsed":true,"collapsible":true,"href":"/evm-tutorials/examples"},{"type":"category","label":"Governance","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Governance Plan","href":"/governance/","docId":"governance/governance","unlisted":false}]},{"type":"category","label":"Errors and Troubleshooting","collapsible":true,"collapsed":true,"items":[{"type":"link","label":"Subtensor Error Codes","href":"/errors/","docId":"errors/index","unlisted":false},{"type":"link","label":"Subtensor Custom Errors","href":"/errors/custom","docId":"errors/custom","unlisted":false},{"type":"link","label":"Troubleshooting","href":"/errors/troubleshooting","docId":"errors/troubleshooting","unlisted":false}]},{"type":"link","label":"Glossary","href":"/resources/glossary","docId":"resources/glossary","unlisted":false},{"type":"link","label":"Bittensor Community Links","href":"/resources/community-links","docId":"resources/community-links","unlisted":false},{"type":"link","label":"Media Assets","href":"/resources/media-assets","docId":"resources/media-assets","unlisted":false}]},"docs":{"btcli/btcli-permissions":{"id":"btcli/btcli-permissions","title":"Bittensor CLI: Permissions Guide","description":"The Bittensor CLI, btcli provides a wide range of functionality, and has a range of different requirements for various commands: some require a coldkey private key to authenticate, some require a hotkey private key, 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 or having a validator permit.","sidebar":"bittensorSidebar"},"btcli/install-btcli":{"id":"btcli/install-btcli","title":"Install BTCLI","de
1scription":"This page contains installation details for btcli, the Bittensor CLI.","sidebar":"bittensorSidebar"},"btcli/overview":{"id":"btcli/overview","title":"Bittensor CLI Overview","description":"The Bittensor command line interface (CLI), btcli, provides the simplest way to interact with the Bittensor network and its subnets from the command line. This includes managing wallets (coldkeys and hotkeys), TAO balances, transfer, staking and unstaking functions, node registration, governance functions, and more.","sidebar":"bittensorSidebar"},"concepts/bittensor-networks":{"id":"concepts/bittensor-networks","title":"Bittensor Networks","description":"Chain endpoints, block times and intended use for the Bittensor mainnet, testnet and localnet, plus archive and lite node URLs.","sidebar":"bittensorSidebar"},"concepts/bt-logging-levels":{"id":"concepts/bt-logging-levels","title":"Logging","description":"The logging module in Bittensor uses several levels to categorize log messages by their severity. Each level has a numeric value and the verbosity decreases as the level increases. See the below table.","sidebar":"bittensorSidebar"},"concepts/commit-reveal":{"id":"concepts/commit-reveal","title":"Commit Reveal","description":"This page describes the Commit Reveal feature: a configurable waiting period that elapses between when consensus weights set by subnet validators are first committed, and when they are revealed publicly and included in Yuma Consensus.","sidebar":"bittensorSidebar"},"concepts/consensus-based-weights":{"id":"concepts/consensus-based-weights","title":"Consensus-based Weights/Liquid Alpha","description":"This guide describes how to use the consensus-based weights feature (also called \\"liquid alpha\\").","sidebar":"bittensorSidebar"},"concepts/halving":{"id":"concepts/halving","title":"Halving Mechanisms in Bittensor","description":"This page explains the TAO and ALPHA halving mechanisms and describes how it affects the creation and distribution of new tokens across the network.","sidebar":"bittensorSidebar"},"concepts/inspecting-the-chain":{"id":"concepts/inspecting-the-chain","title":"Inspecting the Chain with Polkadot.js","description":"The Polkadot.js Blockchain Explorer Browser App//polkadot.js.org/apps/ offers a way to connect to Bittensor\'s blockchain layer (Subtensor) in order to query chain state, submit extrinsics, and inspect runtime metadata. This page covers the features most relevant to Bittensor users.","sidebar":"bittensorSidebar"},"concepts/mev-shield/index":{"id":"concepts/mev-shield/index","title":"MEV Shield: Encrypted Mempool Protection","description":"MEV Shield is a Bittensor security feature that protects transactions from maximal extractable value (MEV) attacks by keeping details hidden until they are on-chain. It (optionally) encrypts any Bittensor transaction until after block inclusion, preventing other users from profiting from any foreknowldge of your transaction details.","sidebar":"bittensorSidebar"},"concepts/stake-burn":{"id":"concepts/stake-burn","title":"Subnet Stake Burn","description":"This page describes Bittensor\'s subnet stake burn mechanism. It covers the mechanism\u2019s behavior, how to execute a stake burn, and its effect on a subnet.","sidebar":"bittensorSidebar"},"concepts/tools":{"id":"concepts/tools","title":"Bittensor tools","description":"Bittensor provides several tools to help developers, miners, and validators interact with the network and its features. Below is a quick overview of the core Bittensor tools, followed by links for further reading.","sidebar":"bittensorSidebar"},"errors/custom":{"id":"errors/custom","title":"Subtensor Custom Errors","description":"This page documents custom errors that can arise from Subtensor, the blockchain underlying the Bittensor network.","sidebar":"bittensorSidebar"},"errors/index":{"id":"errors/index","title":"Subtensor Error Codes","description":"This section documents the various types of errors that can arise from Subtensor, the blockchain underlying the Bittensor network.","sidebar":"bittensorSidebar"}
1,"errors/troubleshooting":{"id":"errors/troubleshooting","title":"Troubleshooting","description":"This document presents helpful hints to troubleshoot the errors you may get while working in the Bittensor ecosystem.","sidebar":"bittensorSidebar"},"evm-tutorials/addressmapping-precompile":{"id":"evm-tutorials/addressmapping-precompile","title":"AddressMapping Precompile","description":"The AddressMapping precompile lets you convert a H160 EVM address into its Substrate AccountId32 (bytes32) using the runtime\'s HashedAddressMapping. This mapping is one-way; therefore, you cannot reverse it to recover the H160 private key from the AccountId32.","sidebar":"bittensorSidebar"},"evm-tutorials/alpha-precompile":{"id":"evm-tutorials/alpha-precompile","title":"Alpha Precompile","description":"The Alpha precompile exposes the state of every subnet\'s AMM pool to EVM smart contracts. It is a read-only interface for token prices, pool reserves, swap simulation, and emission rates. Any contract that needs to react to subnet token economics uses this precompile as its data source.","sidebar":"bittensorSidebar"},"evm-tutorials/bridge-vtao":{"id":"evm-tutorials/bridge-vtao","title":"Token Bridging","description":"How to move TAO between Substrate SS58 wallets and Bittensor EVM H160 wallets, and how to use vTAO to bridge to other EVM chains.","sidebar":"bittensorSidebar"},"evm-tutorials/convert-h160-to-ss58":{"id":"evm-tutorials/convert-h160-to-ss58","title":"Convert Ethereum (H160) Address to Substrate (SS58)","description":"This tutorial demonstrates how to convert between Ethereum (H160) and Substrate (SS58) addresses. This is useful for moving across the boundary between EVM wallets and Subtensor Wallets on the Bittensor blockchain.","sidebar":"bittensorSidebar"},"evm-tutorials/crowdloan-precompile":{"id":"evm-tutorials/crowdloan-precompile","title":"Crowdloan Precompile","description":"The Crowdloan precompile lets EVM contracts create and manage crowdloans entirely on-chain. A campaign creator sets a funding cap and deadline, contributors deposit TAO, and when the cap is reached, the crowdloan can be finalized to execute either the stored call or a transfer to a target address.","sidebar":"bittensorSidebar"},"evm-tutorials/ed25519-verify-precompile":{"id":"evm-tutorials/ed25519-verify-precompile","title":"Verify Address Precompile","description":"The Ed25519 Verify Precompile allows EVM smart contracts to verify Ed25519 signatures, which are commonly used in Substrate-based chains like Bittensor. This is essential for bridging identity and ownership between Substrate and EVM ecosystems. For example, you may want to verify coldkey ownership before transferring to someone. EVM functionality doesn\'t allow transferring directly to a ss58 address\u2014like the public key of a Bittensor coldkey\u2014because EVM uses the H160 address schema. To bridge the gap, you can use this precompile to prove a claim of ownership. The owner of a coldkey can send an EVM transaction with a signed message, serving as proof of ownership of the coldkey\'s ss58 address.","sidebar":"bittensorSidebar"},"evm-tutorials/evm-localnet-with-metamask-wallet":{"id":"evm-tutorials/evm-localnet-with-metamask-wallet","title":"EVM on Local Chain","description":"This page covers getting set up to use EVM on a locally deployed Bittensor blockchain.","sidebar":"bittensorSidebar"},"evm-tutorials/evm-mainnet-with-metamask-wallet":{"id":"evm-tutorials/evm-mainnet-with-metamask-wallet","title":"EVM on Mainnet","description":"This page covers how to set up your Metamask wallet to use with the Mainnet (finney) on Bittensor. You must run this step before you can run other tutorials in this section.","sidebar":"bittensorSidebar"},"evm-tutorials/evm-testnet-with-metamask-wallet":{"id":"evm-tutorials/evm-testnet-with-metamask-wallet","title":"EVM on Testnet","description":"This page covers how to set up your Metamask wallet to use with the testnet on Bittensor. You must run this step before you can run other tutorials in this section.","sidebar":"bittensorSidebar"},"evm-tutorials/examples":{"id":"evm-tutorials/examples","title":"Bittensor EVM: Examples and Pre
1compiles","description":"The precompiled contracts available on the Bittensor EVM and worked examples covering address conversion, token transfers, staking and signature verification.","sidebar":"bittensorSidebar"},"evm-tutorials/hardhat-config-for-subtensor-evm":{"id":"evm-tutorials/hardhat-config-for-subtensor-evm","title":"Configuring Hardhat","description":"You can use Hardhat development environment for the EVM feature on subtensor. The Hardhat networks can be configured using the hardhat.config.ts file, as shown below.","sidebar":"bittensorSidebar"},"evm-tutorials/index":{"id":"evm-tutorials/index","title":"Bittensor EVM Smart Contracts","description":"A full ethereum virtual machine (EVM) runtime operates as an application layer on top of the Bittensor blockchain (Subtensor). This allows users to:","sidebar":"bittensorSidebar"},"evm-tutorials/install":{"id":"evm-tutorials/install","title":"Install","description":"Before you can run any EVM tutorials, you must install the dependencies. Follow the below steps:"},"evm-tutorials/leasing-precompile":{"id":"evm-tutorials/leasing-precompile","title":"Leasing Precompile","description":"The Leasing precompile lets EVM contracts create lease crowdloans, terminate leases, and query lease state.","sidebar":"bittensorSidebar"},"evm-tutorials/metagraph-precompile":{"id":"evm-tutorials/metagraph-precompile","title":"Metagraph Precompile","description":"The metagraph precompile allows you to query information about neurons, their relationships, and network state in the Bittensor network. This precompile provides read-only access to the metagraph data through smart contracts at precompile address.","sidebar":"bittensorSidebar"},"evm-tutorials/neuron-precompile":{"id":"evm-tutorials/neuron-precompile","title":"Neuron Precompile","description":"This precompile enables full management of neurons (miner and validator nodes) through smart contracts, from registration to weight setting to service configuration.","sidebar":"bittensorSidebar"},"evm-tutorials/proxy-precompile":{"id":"evm-tutorials/proxy-precompile","title":"Proxy Precompile","description":"The Proxy precompile exposes the Substrate proxy pallet to EVM contracts. Proxies let one account act on behalf of another for a limited set of operation types.","sidebar":"bittensorSidebar"},"evm-tutorials/remix-config-for-subtensor-evm":{"id":"evm-tutorials/remix-config-for-subtensor-evm","title":"Configuring Remix IDE","description":"You can use Remix IDE for the EVM feature on subtensor. This link automatically configures Remix to use EVM Version Cancun that matches Solidity 0.8.24.","sidebar":"bittensorSidebar"},"evm-tutorials/staking-precompile":{"id":"evm-tutorials/staking-precompile","title":"Staking Precompile","description":"Staking precompile allows Ethereum code to interact with the staking feature of subtensor. For example, by using the staking precompile, the subtensor methods addstake or removestake can be called in order to delegate stake to a hotkey or undelegate stake from a hotkey.","sidebar":"bittensorSidebar"},"evm-tutorials/storagequery-precompile":{"id":"evm-tutorials/storagequery-precompile","title":"StorageQuery Precompile","description":"Provides raw read access to on-chain Substrate storage from within an EVM contract. Pass a SCALE-encoded storage key as calldata; receive the raw SCALE-encoded value.","sidebar":"bittensorSidebar"},"evm-tutorials/subnet-precompile":{"id":"evm-tutorials/subnet-precompile","title":"Subnet Precompile","description":"This precompile allows you to interact with Bittensor subnets through EVM smart contracts, affording functionality for registering networks, viewing and setting network parameters, and querying network state.","sidebar":"bittensorSidebar"},"evm-tutorials/subtensor-networks":{"id":"evm-tutorials/subtensor-networks","title":"EVM Network Details","description":"| DESCRIPTION  | MAINNET                                                                    | TESTNET                          | LOCALNET              |","sidebar":"bittensorSidebar"},"evm-tutorials/transfer-between-two-h160-accounts":{"id":"evm-tutorials/transfer-between-two-h160-accounts","title":"Transfer Between Two H160 Accounts","description":"The complete code for this example is located in file examples/transfer-h160-to-h160.js.","sidebar":"bittensorSidebar"},"evm-tutorials/transfer-from-metamask-to-ss58":{"id":"evm-tutorials/transfer-from-metamask-to-ss58","title":"Transfer TAO from Metamask to SS58 Address","description":"In this tutorial you will learn how to transfer TAO from your Metamask wallet to your Bittensor SS58 address for a coldkey (wallet) or a hotkey. There are two different options:","sidebar":"bittensorSidebar"}
1,"evm-tutorials/troubleshooting":{"id":"evm-tutorials/troubleshooting","title":"EVM Troubleshooting","description":"Fixes for common Bittensor EVM problems, including failed gas estimation, unsupported opcodes and transactions that stay pending.","sidebar":"bittensorSidebar"},"evm-tutorials/uidlookup-precompile":{"id":"evm-tutorials/uidlookup-precompile","title":"UidLookup Precompile","description":"The UidLookup precompile maps an EVM address to the UIDs of neurons that have associated it via the associateevmaddress extrinsic.","sidebar":"bittensorSidebar"},"evm-tutorials/votingpower-precompile":{"id":"evm-tutorials/votingpower-precompile","title":"Voting Power Precompile","description":"The VotingPower precompile gives smart contracts read-only access to the per-validator EMA voting power scores tracked on each subnet. Use it to build on-chain governance mechanisms \u2014 slashing conditions, quorum checks, reward weighting \u2014 that respond to relative validator influence.","sidebar":"bittensorSidebar"},"evm-tutorials/vtao-bridge-tutorial":{"id":"evm-tutorials/vtao-bridge-tutorial","title":"Bridging and Wrapping vTAO","description":"This page explains how to move native TAO from the Bittensor Substrate layer to the Bittensor EVM and wrap it into vTAO.","sidebar":"bittensorSidebar"},"evm-tutorials/vtao-liquidity-on-aerodrome":{"id":"evm-tutorials/vtao-liquidity-on-aerodrome","title":"Providing vTAO liquidity to Aerodrome","description":"This page walks through how to move vTAO from the Bittensor EVM to the Base network to provide liquidity on Aerodrome.","sidebar":"bittensorSidebar"},"evm-tutorials/withdraw-from-alice":{"id":"evm-tutorials/withdraw-from-alice","title":"Withdraw TAO from Alice Account (Local Development)","description":"Every locally deployed dev-mode blockchain comes provisioned with an \'Alice\' account holding a large bag of TAO.","sidebar":"bittensorSidebar"},"governance/governance":{"id":"governance/governance","title":"Governance Plan","description":"Operational control of Bittensor will ultimately governed by the following decentralized protocol. All root calls, including protocol changes, runtime upgrades, and other privileged operations, will reach the chain only after passing through both stages.","sidebar":"bittensorSidebar"},"governance/senate":{"id":"governance/senate","title":"Senate","description":""},"index":{"id":"index","title":"Developer Guides","description":"Guides for building on Bittensor: mining, validating, staking, running subnets, and the SDK, CLI, Subtensor API and EVM.","sidebar":"bittensorSidebar"},"keys/address-poisoning-scams":{"id":"keys/address-poisoning-scams","title":"Address Poisoning Scams: Protect Your Wallet","description":"Address poisoning is one of the most successful cryptocurrency scams, with over $83 million stolen from more than 6,600 victims on Ethereum and Binance Smart Chain alone. Because Bittensor wallets have a similar vulnerability, users of Bittensor wallets should understand how to protect themselves.","sidebar":"bittensorSidebar"},"keys/btwallet/encrypt-decrypt":{"id":"keys/btwallet/encrypt-decrypt","title":"Encrypt and decrypt","description":"Bittensor Wallet supports asymmetric message encryption on Keypair objects. This lets one party encrypt a message to a recipient using only their public key; only the recipient\'s private key can decrypt it.","sidebar":"bittensorSidebar"},"keys/btwallet/index":{"id":"keys/btwallet/index","title":"Bittensor Wallet","description":"bittensor-wallet is a Python wrapper around a Rust core compiled to a native extension. Key generation, signing, verification, keyfile management, and asymmetric message encryption all execute in Rust, the language of Subtensor. Bittensor Wallet operates within the Bittensor Python SDK and BTCLI to interact with the cryptographic wallet.","sidebar":"bittensorSidebar"},"keys/btwallet/keypair":{"id":"keys/btwallet/keypair","title":"Keypair","description":"A Keypair holds a cryptographic key pair and is the core primitive of a Bittensor wallet. It can be constructed from a mnemonic, seed, URI, or raw key material, and supports signing, verification, and (for ED25519 keypairs) asymmetric message encryption.","sidebar":"bittensorSidebar"},"keys/btwallet/wallet-class":{"id":"keys/btwallet/wallet-class","title":"Wallet and Keyfile","description":"The Wallet class represents a named Bittensor wallet on disk. It manages a coldkey, hotkey, and their corresponding public-key files, and provides access to the underlying Keypair objects.","sidebar":"bittensorSidebar"},"keys/coldkey-hotkey-security":{"id":"keys/coldkey-hotkey-security","title":"Coldkey and Hotkey Workstation Security","de
1scription":"How to keep Bittensor keys safe: which operations need a coldkey, when to use a hardware wallet or proxy, and how to run separate coldkey and hotkey workstations.","sidebar":"bittensorSidebar"},"keys/coldkey-swap":{"id":"keys/coldkey-swap","title":"Rotate or Swap your Coldkey","description":"This page describes how to rotate or swap the coldkey in your wallet. This operation migrates your entire on-chain identity, including TAO balances and subnet ownership, to a new cryptographic key pair.","sidebar":"bittensorSidebar"},"keys/handle-seed-phrase":{"id":"keys/handle-seed-phrase","title":"Handle your Seed Phrase/Mnemonic Securely","description":"The seed phrase (a.k.a. \'menemonic\' or \'recovery phrase\') is a series of (at least 12) words that is generated together with your wallet\'s cryptographic key pair, and which can be used to recover the coldkey private key. This seed phrase is therefore a human-usable way to save access to the cryptographic wallet offline, and to import the cryptographic wallet into a wallet application. To regenerate a keypair from a mnemonic programmatically, see Wallet and Keyfile.","sidebar":"bittensorSidebar"},"keys/multisig":{"id":"keys/multisig","title":"Secure your Coldkey with a Multisig Wallet","description":"A multisig (multiple signatories) wallet is a way of distributing responsibility for a coldkey across a set of wallets, referred to as signatories. Any signatory can propose a transaction, but the action must be agreed by some threshold of others before it will execute. Conventionally, a multisig is described as \\"$M$ out of $N$\\", where $M$ is the threshold number of signatories required to sign a transaction and $N$ is the total number of signatories. The signatories on a multisig may be seperate people, or a set of keys controlled by a single individual. This gives multisigs great versatility in providing security against single points of failure, including the loss of a single key or the decision of a team-mate to act irresponsibly.","sidebar":"bittensorSidebar"},"keys/proxies/avoid-staking-proxy-attacks":{"id":"keys/proxies/avoid-staking-proxy-attacks","title":"Avoid Staking Proxy Attacks","description":"A Staking proxy relationship allows one wallet to stake on behalf of another. A typical way to use this is to keep your TAO in a \'safe\' wallet, and to use another wallet that is a staking proxy of the first only to stake and unstake on behalf of the other. This allows the first wallet to remain in \'cold storage\' without ever having its key cryptographic material loaded onto a \'hot\' device connected to the internet.","sidebar":"bittensorSidebar"},"keys/proxies/index":{"id":"keys/proxies/index","title":"Proxies: Overview","description":"This page introduces the theory and use of proxy wallets for enhanced security in Bittensor.","sidebar":"bittensorSidebar"},"keys/proxies/pure-proxies":{"id":"keys/proxies/pure-proxies","title":"Understanding Pure Proxies","description":"This page covers creating a pure proxy and executing a call using a pure proxy. The primary use case for pure proxies is constructing multisignature wallets (multisigs) with swappable members. For most other applications requiring wallet indirection, regular proxy wallets are the correct solution.","sidebar":"bittensorSidebar"},"keys/proxies/working-with-proxies":{"id":"keys/proxies/working-with-proxies","title":"Working with Proxies","description":"This page covers each step in the use of proxy wallets as a security feature for Bittensor operations:","sidebar":"bittensorSidebar"},"keys/wallets":{"id":"keys/wallets","title":"Wallets, Coldkeys and Hotkeys in Bittensor","description":"In Bittensor (like other cryptocurrency applications), a wallet is a tool for proving your identity, signing transactions, accessing your TAO, and managing your stake in subnets.","sidebar":"bittensorSidebar"},"keys/working-with-keys":{"id":"keys/working-with-keys","title":"Creating/Importing a Bittensor Wallet","description":"In Bittensor (like other cryptocurrency applications), a wallet is a tool for proving your identity, signing transactions, accessing your TAO, and managing your stake in subnets.","sidebar":"bittensorSidebar"}
1,"learn/anatomy-of-incentive-mechanism":{"id":"learn/anatomy-of-incentive-mechanism","title":"Understanding Incentive Mechanisms","description":"This page explores the concept and usage of incentive mechanisms in Bittensor.","sidebar":"bittensorSidebar"},"learn/batch-transactions":{"id":"learn/batch-transactions","title":"Batch Transactions","description":"The Bittensor runtime\'s utility pallet exposes three extrinsics: batch, batchall, and forcebatch, which enable multiple calls to be submitted as a single on-chain transaction. This is useful when you want to stake to multiple hotkeys, perform multiple operations atomically, or reduce the number of round-trips to the chain.","sidebar":"bittensorSidebar"},"learn/chain-rate-limits":{"id":"learn/chain-rate-limits","title":"Rate Limits","description":"This page reviews all rate limits implemented in the Bittensor blockchain (Subtensor). Rate limits prevent spam, ensure network stability, and maintain fair access to network resources. Rate limits in Bittensor are implemented as block-based cooldown periods. When a rate-limited operation succeeds, subsequent attempts to perform the same operation must wait for a specified number of blocks to pass before they can be executed again. Unsuccessful operations may be re-tried.","sidebar":"bittensorSidebar"},"learn/ema":{"id":"learn/ema","title":"Exponential Moving Averages (EMAs) in Bittensor","description":"The exponential moving average (EMA) is a mathematical technique for tracking a dynamic quantity, such as a token price, over time. Specifically, EMA is a weighted moving average that exponentially decreases the weight of older data point. This extracts a signal reflecting where the value has spent most of its time most recently_, stabilizing or \'smoothing\' the constant noise of rapid, largely random fluctuations.","sidebar":"bittensorSidebar"},"learn/emissions":{"id":"learn/emissions","title":"Emission","description":"Emission is the economic heartbeat of Bittensor\u2014the process that continuously distributes newly created TAO and subnet-specific alpha tokens to network participants who contribute value through mining, validation, staking, and subnet creation.","sidebar":"bittensorSidebar"},"learn/fees":{"id":"learn/fees","title":"Transaction Fees in Bittensor","description":"This page describes the blockchain transaction fees charged by Bittensor and shows how to estimate them before running transactions.","sidebar":"bittensorSidebar"},"learn/introduction":{"id":"learn/introduction","title":"Introduction to Bittensor","description":"This page will orient the reader with the major concepts and components of Bittensor, and provide the roadmap to developing in the ecosystem.","sidebar":"bittensorSidebar"},"learn/neurons":{"id":"learn/neurons","title":"Understanding Neurons","description":"A neuron is the generalized name for a participant in a subnet, which can be either a miner or a validator. Each neuron is identified by a unique UID within its subnet and associated with a hotkey-coldkey pair for authentication and operations.","sidebar":"bittensorSidebar"},"learn/weight-copying-in-bittensor":{"id":"learn/weight-copying-in-bittensor","title":"The Weight Copying Problem","description":"This page explains weight copying\u2014a free-riding behavior where validators copy other validators\' work instead of independently evaluating miners. This article covers how weight copying works, why it is problematic, and how subnet owners can prevent weight copying on their subnets using Bittensor\'s Commit Reveal feature.","sidebar":"bittensorSidebar"},"learn/yc3-blog":{"id":"learn/yc3-blog","title":"How Yuma Consensus 3 Makes Bittensor More Fair","description":"YC3 is the next evolution of Bittensor\'s consensus mechanism. It optimizes emissions to reward validators for recognizing innovation quickly.","sidebar":"bittensorSidebar"},"learn/yuma-consensus":{"id":"learn/yuma-consensus","title":"Yuma Consensus","description":"How Yuma Consensus turns validator weight vectors into miner and validator emissions, including clipping, bonds and trust.","sidebar":"bittensorSidebar"},"learn/yuma3-migration-guide":{"id":"learn/yuma3-migration-guide","title":"Yuma Consensus 3 (YC3) Migration Guide","description":"Yuma Consensus 3 (YC3) is the latest version of the Yuma Consensus mechanism with significant improvements to validator fairness, bond mechanics, and precision handling. This guide will help subnet owners understand what\'s changed and how to migrate.","sidebar":"bittensorSidebar"},"local-build/create-subnet":{"id":"local-build/create-subnet","title":"Create a Subnet (Locally)","description":"This page covers creating a subnet on a locally deployed Subtensor blockchain, which is useful for local Bittensor development.","sidebar":"bittensorSidebar"},"local-build/deploy":{"id":"local-build/deploy","title":"Run a Local Bittensor Blockchain Instance","description":"This tutorial will guide the user through running a local instance of Subtensor, Bittensor\'s L1 blockchain. Running a local instance of the Subtensor blockchain is a great way to test changes and explore the network in a safe and isolated environment.","sidebar":"bittensorSidebar"}
1,"local-build/mine-validate":{"id":"local-build/mine-validate","title":"Mining and Validating on Localnet","description":"This page walks through mining and validating on a local Bittensor network. It covers how to register a neuron on a subnet, then run the miner and validator scripts to begin earning emissions.","sidebar":"bittensorSidebar"},"local-build/provision-wallets":{"id":"local-build/provision-wallets","title":"Provision Wallets for Local Blockchain","description":"This page continues the previous tutorial for local Bittensor development.","sidebar":"bittensorSidebar"},"miners/autostaking":{"id":"miners/autostaking","title":"Auto Staking for Miners","description":"Auto staking allows miners to automatically stake their mining income to a validator of their choice, streamlining the process of compound staking without manual intervention.","sidebar":"bittensorSidebar"},"miners/index":{"id":"miners/index","title":"Mining in Bittensor","description":"How to mine on Bittensor: choosing a subnet, registering a hotkey for a UID, the cost of registration, and running and maintaining a miner.","sidebar":"bittensorSidebar"},"miners/miners-btcli-guide":{"id":"miners/miners-btcli-guide","title":"Miner\'s Guide to `BTCLI`","description":"This page discusses btcli security and usage considerations specifically for Bittensor miners.","sidebar":"bittensorSidebar"},"navigating-subtensor/emissions-coinbase":{"id":"navigating-subtensor/emissions-coinbase","title":"Coinbase Implementation","description":"This document provides a technical deep dive into the run_coinbase() function that orchestrates TAO and alpha emission distribution across subnets. The coinbase mechanism serves as Bittensor\'s economic heartbeat, connecting subnet validators, subnet miners, and stakers through emission distribution.","sidebar":"bittensorSidebar"},"navigating-subtensor/epoch":{"id":"navigating-subtensor/epoch","title":"Implementation of the Yuma Consensus Epoch","description":"If Yuma Consensus (YC is the heart of Bittensor, the epoch is the heartbeat, a regular pulse of calculations that processes validator weights and determines emissions for participants. This page takes a deep dive into how the code accomplishes its purpose.","sidebar":"bittensorSidebar"},"navigating-subtensor/index":{"id":"navigating-subtensor/index","title":"Navigating the Subtensor Codebase","description":"The heart of Bittensor is Subtensor, the L1 substrate blockchain that computes and records all transactions, as well as the internal tokenomic processes (Yuma Consensus and liquidity emission) that drive the system.","sidebar":"bittensorSidebar"},"navigating-subtensor/subtensor-extrinsics":{"id":"navigating-subtensor/subtensor-extrinsics","title":"Subtensor Pallets and Extrinsics","description":"This document covers the dispatchable calls of all pallets included in the Subtensor runtime. For each pallet, it lists the call methods and their arguments.","sidebar":"bittensorSidebar"},"navigating-subtensor/swap-stake":{"id":"navigating-subtensor/swap-stake","title":"Staking Implementation","description":"This page provides a detailed examination of how staking is implemented in the Subtensor codebase.","sidebar":"bittensorSidebar"},"resources/community-links":{"id":"resources/community-links","title":"Bittensor Community Links","description":"Welcome to the Bittensor ecosystem! This page provides links to essential community tools and resources to help you navigate the Bittensor network.","sidebar":"bittensorSidebar"},"resources/glossary":{"id":"resources/glossary","title":"Glossary","description":"Definitions of the terms used across the Bittensor guides, from alpha tokens and dividends to subnets, UIDs, weights and Yuma Consensus.","sidebar":"bittensorSidebar"},"resources/media-assets":{"id":"resources/media-assets","title":"Media Assets","description":"Where to download the Bittensor brand assets: TAO symbol, monogram, logotype, supporting elements and the brand guidelines PDF.","sidebar":"bittensorSidebar"},"resources/questions-and-answers":{"id":"resources/questions-and-answers","title":"Frequently asked questions (FAQ)","description":"Answers to common questions about Bittensor: how subnets, mining, validating, staking, emissions, wallets and TAO work.","sidebar":"bittensorSidebar"},"resources/utilities":{"id":"resources/utilities","title":"Utilities","description":"This section describes the available utility scripts.","sidebar":"bittensorSidebar"},"sdk/call":{"id":"sdk/call","title":"Working with Blockchain Calls","description":"This guide explains how to work with blockchain calls in the Bittensor SDK using GenericCall and CallBuilder. These powerful tools allow you to create, compose, and execute complex blockchain transactions without immediately submitting them.","sidebar":"bittensorSidebar"},"sdk/env-vars":{"id":"sdk/env-vars","title":"Environment Variables","de
1scription":"This page documents the environment variables that provide configuration options to the Bittensor SDK.","sidebar":"bittensorSidebar"},"sdk/index":{"id":"sdk/index","title":"SDK Tutorials","description":"The Bittensor Python SDK provides a programmable interface to the Bittensor blockchain. This page guides you through practical SDK tutorials organized as a learning path.","sidebar":"bittensorSidebar"},"sdk/installation":{"id":"sdk/installation","title":"Install Bittensor SDK","description":"Before you can start developing, you must install Bittensor SDK and then create Bittensor wallet.","sidebar":"bittensorSidebar"},"sdk/managing-subtensor-connections":{"id":"sdk/managing-subtensor-connections","title":"Managing Subtensor Connections","description":"Every time the Bittensor Python SDK\'s Subtensor or AsyncSubtensor class is instantiated, it creates a new websocket connection to Subtensor, Bittensor\'s Blockchain. Your code should ensure that these websocket connections are handled efficiently and closed when no longer in use by your code.","sidebar":"bittensorSidebar"},"sdk/mev-protection":{"id":"sdk/mev-protection","title":"Using MEV Shield with the Bittensor SDK","description":"The MEV Shield feature allows users to encrypt transactions to protect them from front running and other maximal extractable value (MEV) attacks that depend on attackers knowing the details of transactions when they enter the transaction pool.","sidebar":"bittensorSidebar"},"sdk/migration-guide":{"id":"sdk/migration-guide","title":"Bittensor SDK v10 Migration Guide","description":"This page documents breaking changes and new features for the Bittensor Python SDK v10. This is a major release with significant refactoring, standardization, and new functionality.","sidebar":"bittensorSidebar"},"staking-and-delegation/balancer-amm":{"id":"staking-and-delegation/balancer-amm","title":"Balancer Weighted Pools for Subnet AMMs","description":"Each Bittensor subnet maintains an automated market maker (AMM) with reserve pools of TAO and the subnet\'s alpha token.","sidebar":"bittensorSidebar"},"staking-and-delegation/conviction-staking":{"id":"staking-and-delegation/conviction-staking","title":"Conviction and locked stake","description":"The locked stake feature lets coldkey holders lock alpha stake to a specific hotkey on a subnet. Locked stake builds conviction, a score that grows over time toward the locked amount. Conviction provides a public, on-chain signal of long-term commitment that cannot be silently reversed.","sidebar":"bittensorSidebar"},"staking-and-delegation/delegation":{"id":"staking-and-delegation/delegation","title":"Staking/Delegation Overview","description":"TAO holders can stake any amount of the liquidity they hold to a validator. Also known as delegation, staking supports validators, because their total stake in the subnet, including stake delegated to them by others, determines their consensus power and their share of emissions. After the validator/delegate extracts their take the remaining emissions are credited back to the stakers/delegators in proportion to their stake with that validator.","sidebar":"bittensorSidebar"},"staking-and-delegation/managing-stake-sdk":{"id":"staking-and-delegation/managing-stake-sdk","title":"Managing Your Stakes","description":"This guide covers staking operations in Bittensor.","sidebar":"bittensorSidebar"},"staking-and-delegation/price-protection":{"id":"staking-and-delegation/price-protection","title":"Understand Price Protection","description":"Bittensor clients (BTCLI and the SDK) provides three modes to give users control over how their transactions handle adverse price movements: Strict, Partial, and Unsafe.","sidebar":"bittensorSidebar"},"staking-and-delegation/root-claims/index":{"id":"staking-and-delegation/root-claims/index","title":"Root Claim: Overview","description":"The Root 
1Claim feature in Bittensor allows stakers who stake to validators on the Root Subnet (a.k.a. Subnet Zero) to choose whether their staking dividends will accumulate as alpha, or be converted immediately to TAO.","sidebar":"bittensorSidebar"},"staking-and-delegation/root-claims/managing-root-claims":{"id":"staking-and-delegation/root-claims/managing-root-claims","title":"Managing Root Claims","description":"This page covers how to configure, monitor, and claim root dividends, i.e. dividends from staking to validators on the Root Subnet. See Root Claim","sidebar":"bittensorSidebar"},"staking-and-delegation/slippage":{"id":"staking-and-delegation/slippage","title":"Understanding Slippage","description":"What slippage is when staking and unstaking on Bittensor, how the subnet AMM produces it, and how to estimate it before you submit a transaction.","sidebar":"bittensorSidebar"},"staking-and-delegation/staking-polkadot-js":{"id":"staking-and-delegation/staking-polkadot-js","title":"Staking with Polkadot JS","description":"This document describes how you can stake to Opentensor Foundation using Polkadot JS.","sidebar":"bittensorSidebar"},"staking-and-delegation/using-ledger-hw-wallet":{"id":"staking-and-delegation/using-ledger-hw-wallet","title":"Using Ledger Hardware Wallet","description":"This guide describes how to set up your Ledger hardware wallet for managing your TAO on the Bittensor network.","sidebar":"bittensorSidebar"},"subnets/asyncio":{"id":"subnets/asyncio","title":"Working with Concurrency","description":"This page provides some tips for working with concurrent async functions in Bittensor.","sidebar":"bittensorSidebar"},"subnets/create-a-subnet":{"id":"subnets/create-a-subnet","title":"Create a Subnet","description":"This page describes the procedures for creating a new Bittensor subnet on test chain or main chain.","sidebar":"bittensorSidebar"},"subnets/crowdloans/crowdloans-tutorial":{"id":"subnets/crowdloans/crowdloans-tutorial","title":"Create a Subnet with a Crowdloan","description":"This page describes creating a subnet via crowdloan on a locally deployed Bittensor chain. We will use the Polkadot\u2011JS web app to submit extrinsics.","sidebar":"bittensorSidebar"},"subnets/crowdloans/index":{"id":"subnets/crowdloans/index","title":"Crowdloans","description":"How Bittensor crowdloans let contributors collectively fund a subnet registration and share the resulting emissions pro-rata through a subnet lease.","sidebar":"bittensorSidebar"},"subnets/managing-mechanisms-btcli":{"id":"subnets/managing-mechanisms-btcli","title":"Managing Multiple Incentive Mechanisms with BTCLI","description":"This tutorial shows how to configure and manage multiple incentive mechanisms in a single subnet using BTCLI.","sidebar":"bittensorSidebar"},"subnets/managing-mechanisms-with-sdk":{"id":"subnets/managing-mechanisms-with-sdk","title":"Managing Multiple Incentive Mechanisms with SDK","description":"This tutorial shows how to configure and manage multiple incentive mechanisms in a single subnet using the Bittensor Python SDK.","sidebar":"bittensorSidebar"},"subnets/metagraph":{"id":"subnets/metagraph","title":"The Subnet Metagraph","description":"This page documents the Bittensor subnet metagraph.","sidebar":"bittensorSidebar"},"subnets/subnet-creators-btcli-guide":{"id":"subnets/subnet-creators-btcli-guide","title":"Subnet Creator\'s Guide to `BTCLI`","description":"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.","sidebar":"bittensorSidebar"},"subnets/subnet-deregistration":{"id":"subnets/subnet-deregistration","title":"Subnet Deregistration","description":"This page details the process by which subnets can become deregistered from Bittensor network, with an eye to the implementation of the functionality in the Subtensor codebase that makes up Bittensor\'s blockchain layer.","sidebar":"bittensorSidebar"},"subnets/subnet-hyperparameters":{"id":"subnets/subnet-hyperparameters","title":"Subnet Configuration (Hyperparameters)","description":"Bittensor subnets are configured with a set of state variables (known as hyperparameters) that are recorded on the blockchain. Many of these can be accessed (viewed and set) using the Bittensor CLI btcli, but some of them must be checked or set using Subtensor extrinsics, as noted.","sidebar":"bittensorSidebar"}
1,"subnets/uid-trimming":{"id":"subnets/uid-trimming","title":"UID Trimming","description":"UID trimming is a subnet management feature that allows subnet owners to reduce the number of neuron UIDs registered on their subnet, compressing the remaining UIDs to maintain consecutive indexing. UID trimming safely preserves high-performing and immune neurons,","sidebar":"bittensorSidebar"},"subnets/understanding-multiple-mech-subnets":{"id":"subnets/understanding-multiple-mech-subnets","title":"Multiple Incentive Mechanisms Within Subnets","description":"This page explores how subnets can implement multiple incentive mechanisms to distribute emissions across different evaluation criteria.","sidebar":"bittensorSidebar"},"subnets/understanding-subnets":{"id":"subnets/understanding-subnets","title":"Understanding Subnets","description":"In Bittensor, a subnet is an incentive-based competition marketplace that produces a specific kind of digital commodity related to artificial intelligence. It consists of a community of miners that produce the commodity, and a community of validators that measure the miners\' work to ensure its quality. Often , parties that serve as validators do so in order to run applications that make use of the services provided by the miners.","sidebar":"bittensorSidebar"},"subnets/walkthrough-prompting":{"id":"subnets/walkthrough-prompting","title":"Walkthrough of Example Subnet","description":"This page presents a high-level walkthrough of an example architecture for a subnet based on LLM inference. This architecture was originally based on Subnet 1, Apex, although subnets rapidly evolve and that subnet now has a more complicated architecture. This example subnet contains several incentive mechanisms which produce conversational intelligence capable of:","sidebar":"bittensorSidebar"},"subnets/working-with-subnets":{"id":"subnets/working-with-subnets","title":"Working with Subnets","description":"Subnets are composed of a discrete number of UIDs. The subnet validators and subnet miners are associated with these UIDs. Each UID in the subnet belongs to a unique hotkey which in turn is connected to a unique coldkey which was used during registration. The Yuma Consensus runs on these UIDs. This section presents a few examples showing how to work with subnets.","sidebar":"bittensorSidebar"},"subtensor-api/constants":{"id":"subtensor-api/constants","title":"Constants","description":"This page contains compile-time runtime constants for the Subtensor runtime and their respective values.","sidebar":"bittensorSidebar"},"subtensor-api/errors":{"id":"subtensor-api/errors","title":"Errors","description":"This page contains error variants returned by the Subtensor runtime.","sidebar":"bittensorSidebar"},"subtensor-api/events":{"id":"subtensor-api/events","title":"Events","description":"The following page contains runtime events emitted by the Subtensor runtime.","sidebar":"bittensorSidebar"},"subtensor-api/extrinsics":{"id":"subtensor-api/extrinsics","title":"Extrinsics","description":"The following sections contain Extrinsic methods that are part of the Subtensor runtime.","sidebar":"bittensorSidebar"},"subtensor-api/index":{"id":"subtensor-api/index","title":"Subtensor API","description":"Generated reference for the extrinsics, storage items, events, errors, constants and RPC methods exposed by the Subtensor runtime.","sidebar":"bittensorSidebar"},"subtensor-api/rpc":{"id":"subtensor-api/rpc","title":"RPC","description":"This page shows JSON-RPC methods available on the Subtensor node.","sidebar":"bittensorSidebar"},"subtensor-api/runtime":{"id":"subtensor-api/runtime","title":"Runtime Calls","description":"This page includes runtime API calls exposed by the Subtensor runtime.","sidebar":"bittensorSidebar"},"subtensor-api/storage":{"id":"subtensor-api/storage","title":"Storage","description":"This page contains storage query definitions for the Subtensor runtime.","sidebar":"bittensorSidebar"},"subtensor-nodes/index":{"id":"subtensor-nodes/index","title":"Subtensor Node Basics","description":"You can run a public subtensor node and synchronize with the Bittensor network. This public subtensor node can be either a lite node or an archive node. You can connect and sync this public subtensor node with either the Bittensor mainchain or the testchain. This document describes how to run a public subtensor node either by compiling the subtensor source code into a binary and executing this binary, or by using a Docker container.","sidebar":"bittensorSidebar"},"subtensor-nodes/run/index":{"id":"subtensor-nodes/run/index","title":"Running a Subtensor node","description":"This page covers what you need to know before setting up a Subtensor node.","sidebar":"bittensorSidebar"},"subtensor-nodes/run/using-docker":{"id":"subtensor-nodes/run/using-docker","title":"Run with Docker","description":"To run a subtensor node with Docker, follow the below steps.","sidebar":"bittensorSidebar"},"subtensor-nodes/run/using-source":{"id":"subtensor-nodes/run/using-source","title":"Run with Source Code","description":"To install and run a subtensor node by compiling the source code, follow the below steps.","sidebar":"bittensorSidebar"},"subtensor-nodes/subtensor-node-requirements":{"id":"subtensor-nodes/subtensor-node-requirements","title":"Subtensor Node Requirements","description":"To run a public subtensor node, make sure that your computer satisfies the following system requirements:","sidebar":"bittensorSidebar"},"subtensor-nodes/subtensor-storage-query-examples":{"id":"subtensor-nodes/subtensor-storage-query-examples","title":"Subtensor Storage Query Examples","description":"The following outline of subtensor storage query examples is provided for high-level reference and is not exhaustive. For a complete specification of all available queries, see the Subtensor API reference.","sidebar":"bittensorSidebar"},"tutorials/basic-subnet-tutorials":{"id":"tutorials/basic-subnet-tutorials","title":"Basic Subnet Tutorials","description":"If you are new to subnets, start with these beginner tutorials with Bittensor Subnet Template:","sidebar":"bittensorSidebar"},"tutorials/ocr-subnet-tutorial":{"id":"tutorials/ocr-subnet-tutorial","title":"OCR Subnet Tutorial","description":"In this tutorial you will learn how to quickly convert your validated idea into a functional Bittensor subnet. This tutorial begins with a Python notebook that contains the already validated code for optical character recognition (OCR). We demonstrate how straightforward it is to start with such notebooks and produce a working subnet.","sidebar":"bittensorSidebar"},"validators/child-hotkeys":{"id":"validators/child-hotkeys","title":"Child Hotkeys","description":"This guide describes the child hotkeys feature and how to use it. With the child hotkeys, a subnet validator is no longer required to use the same delegate hotkey for every subnet they validate in. The subnet validator can use a separate child hotkey per subnet. The subnet validator does this by re-delegating a portion of their stake from their delegate hotkey to this separate child hotkey on a 
1subnet. The originating delegate hotkey is called the parent hotkey.","sidebar":"bittensorSidebar"},"validators/index":{"id":"validators/index","title":"Validating in Bittensor","description":"All validating in Bittensor occurs within a subnet. Each subnet independently produces the digital commodities that are its purpose, with each subnet creator defining a different incentive mechanism for validators to use in judging miners\' work. The validator\'s work is to apply this incentive mechanism to miners, using it to score their performance, and then to submit these weights to the Bittensor blockchain. \xa0The validator scores of miners\' performance determine the proportion of the subnet\'s emissions allocated to each miner, according to the Yuma Consensus algorithm. See Emissions.","sidebar":"bittensorSidebar"},"validators/validators-btcli-guide":{"id":"validators/validators-btcli-guide","title":"Validator\'s Guide to `BTCLI`","description":"Validators evaluate miner performance, and post their evaluations to the blockchain. This page discusses considerations specific to validators when using btcli.","sidebar":"bittensorSidebar"}}}}')}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.