Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
40 commits
Select commit Hold shift + click to select a range
9bedfbd
wip
MichaelTrestman Mar 25, 2026
51cf1c6
wip
MichaelTrestman Mar 23, 2026
cde39a4
wip
MichaelTrestman Mar 23, 2026
516b24e
wip
MichaelTrestman Mar 25, 2026
7c468d1
wip
MichaelTrestman Mar 25, 2026
ba78865
wip
MichaelTrestman Mar 25, 2026
5890ac0
wip
MichaelTrestman Mar 25, 2026
afcf7df
wip
MichaelTrestman Mar 25, 2026
5854355
wip
MichaelTrestman Mar 25, 2026
5b22f11
wip
MichaelTrestman Mar 26, 2026
7577f8d
wip
MichaelTrestman Mar 30, 2026
1a9264c
wip
MichaelTrestman Mar 31, 2026
514e535
wip
MichaelTrestman Mar 31, 2026
b66f771
wip
MichaelTrestman Mar 31, 2026
3e9f8e2
wip
MichaelTrestman Mar 31, 2026
2a88f17
wip
MichaelTrestman Mar 31, 2026
b1be2a3
wip
MichaelTrestman Mar 31, 2026
b0a3c47
wip
MichaelTrestman Mar 31, 2026
53e76b1
wip
MichaelTrestman Mar 31, 2026
25eda01
wip
MichaelTrestman Mar 31, 2026
4f3d8ce
wip
MichaelTrestman Mar 31, 2026
4dacedc
wip
MichaelTrestman Apr 1, 2026
5ef744c
wip
MichaelTrestman Apr 1, 2026
1e975aa
wip
MichaelTrestman Apr 1, 2026
6761714
wip
MichaelTrestman Apr 1, 2026
b5aa389
wip
MichaelTrestman Apr 1, 2026
a4bb320
wip
MichaelTrestman Apr 1, 2026
76589f3
wip
MichaelTrestman Apr 1, 2026
08740b7
wip
MichaelTrestman Apr 1, 2026
c800657
wip
MichaelTrestman Apr 1, 2026
b73a6ea
wip
MichaelTrestman Apr 1, 2026
57be435
wip
MichaelTrestman Apr 1, 2026
c9d8884
wip
MichaelTrestman Apr 2, 2026
30fa677
Merge branch 'main' into security-tightening-march2026
MichaelTrestman Apr 27, 2026
5b3f5d1
remove --announce-only from btcli until added
MichaelTrestman Apr 28, 2026
1b783af
Merge branch 'main' into security-tightening-march2026
MichaelTrestman Apr 28, 2026
7e25459
wip
MichaelTrestman Apr 29, 2026
2fce18f
wip
MichaelTrestman May 5, 2026
69c3377
Merge branch 'main' into security-tightening-march2026
MichaelTrestman May 6, 2026
f91eeb3
wip
MichaelTrestman May 7, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/btcli/btcli-permissions.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ This page details the requirements for all of the `btcli` commands.

See also the `btcli` permissions guides for specific Bittensor personas:

- [Staker's Guide to `BTCLI`](../staking-and-delegation/stakers-btcli-guide)
- [Managing Your Stakes](../staking-and-delegation/managing-stake-sdk)
- [Miner's Guide to `BTCLI`](../miners/miners-btcli-guide)
- [Validator's Guide to `BTCLI`](../validators/validators-btcli-guide)
- [Subnet Creator's Guide to `BTCLI`](../subnets/subnet-creators-btcli-guide)
Expand Down
2 changes: 1 addition & 1 deletion docs/btcli/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,5 @@ The Bittensor command line interface (CLI), `btcli`, provides the simplest way t
See:

- [Install `btcli`](../getting-started/install-btcli)
- [Managing Stake with BTCLI](../staking-and-delegation/managing-stake-btcli.md)
- [Managing Your Stakes](../staking-and-delegation/managing-stake-sdk.md)
- [`btcli reference document`](./btcli.md)
85 changes: 85 additions & 0 deletions docs/concepts/inspecting-the-chain.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
---
title: "Inspecting the Chain with Polkadot.js"
---

# Inspecting the Chain with Polkadot.js


The [Polkadot.js Blockchain Explorer Browser App: `https://polkadot.js.org/apps/`](https://polkadot.js.org/apps/) offers a way to connect directly to Bittensor's blockchain layer (Subtensor), and query chain state, submit extrinsics, and inspect runtime metadata without installing any software. This page covers the features most relevant to Bittensor users.

## Connecting to Bittensor

Use these pre-configured links:

- **Mainnet (Finney):** [polkadot.js/apps/?rpc=wss://entrypoint-finney.opentensor.ai:443](https://polkadot.js.org/apps/?rpc=wss://entrypoint-finney.opentensor.ai:443)
- **Testnet:** [polkadot.js/apps/?rpc=wss://test.finney.opentensor.ai:443](https://polkadot.js.org/apps/?rpc=wss://test.finney.opentensor.ai:443)

Or click the network selector in the top-left corner and enter a custom WebSocket endpoint under **Development → Custom**.

## Chain state (storage queries)

**Developer → Chain state → Storage**

This is where you read on-chain parameters and account data. Select a pallet (e.g. `subtensorModule`, `proxy`, `balances`) and a storage item, then click **+** to query.

Example queries:

| Query | What it returns |
|---|---|
| `subtensorModule.networkRateLimit()` | Blocks between subnet registrations |
| `subtensorModule.minStake()` | Minimum transaction amount for staking operations |
| `subtensorModule.immunityPeriod(netuid)` | Immunity period in blocks for a subnet |
| `proxy.announcements(account)` | Pending proxy announcements |


### Storage maps vs storage values

Some storage items are **values** (global constants, no parameters needed). Others are **maps** keyed by account, netuid, or other identifiers. For maps, fill in the key field before querying.

## Constants

**Developer → Chain state → Constants**

Runtime constants are values baked into the chain code that don't change without a runtime upgrade. Select a pallet and constant name to view.

| Constant | What it returns |
|---|---|
| `balances.existentialDeposit` | Minimum account balance (500 RAO) |
| `proxy.maxProxies` | Maximum proxy relationships per account |
| `proxy.maxPending` | Maximum pending announcements per delegate |
| `proxy.announcementDepositBase` | Base deposit for proxy announcements |

## Runtime calls

**Developer → Runtime calls**

Runtime calls execute read-only functions that may involve computation (not just storage reads). Useful for derived values like the current subnet registration cost.

| Call | What it returns |
|---|---|
| `SubnetInfoRuntimeApi.get_subnet_info(netuid)` | Full subnet info including price, emission, reserves |
| `TransactionPaymentApi.query_info(uxt, len)` | Fee estimate for an extrinsic |

## Extrinsics

**Developer → Extrinsics**

Submit transactions directly. This is useful for operations not yet supported by `btcli`, or when signing with Polkadot Vault (QR code signing from an air-gapped device).

To submit an extrinsic:
1. Select the signing account.
2. Choose the pallet and call.
3. Fill in parameters.
4. Click **Submit Transaction**.

For Polkadot Vault users, the app will display a QR code to scan with the Vault device for air-gapped signing.

## Block explorer

**Network → Explorer**

Browse recent blocks and their extrinsics. Click any block number to see the extrinsics it contains and their events.

- Querying at a specific block: In Chain state, toggle "include option" and enter a block hash to query historical state.
- Decoding call data: Paste raw call data under Developer → Decode to see the human-readable extrinsic.
- Metadata updates: If you're using Polkadot Vault, you must re-load chain metadata after each Bittensor runtime upgrade. See [Coldkey and Hotkey Workstation Security](../keys/coldkey-hotkey-security#hardware-solution-polkadot-vault).
2 changes: 1 addition & 1 deletion docs/dynamic-tao/_dtao-faq.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ Held stake (alpha tokens) may increase or decrease in TAO value as the price of

It is up to the subnet creator, and is configured using the `TransferToggle` hyperparameter.

When enabled, a holder of alpha stake can transfer its ownership to another coldkey/wallet using [`btcli stake transfer`](../staking-and-delegation/managing-stake-btcli#transferring-stake) or [`transfer_stake`](pathname:///python-api/html/autoapi/bittensor/core/async_subtensor/index.html#bittensor.core.async_subtensor.AsyncSubtensor.transfer_stake).
When enabled, a holder of alpha stake can transfer its ownership to another coldkey/wallet using [`btcli stake transfer`](../staking-and-delegation/managing-stake-sdk#transfer-stake-ownership) or [`transfer_stake`](pathname:///python-api/html/autoapi/bittensor/core/async_subtensor/index.html#bittensor.core.async_subtensor.AsyncSubtensor.transfer_stake).

### How will Dynamic TAO affect governance of the network?

Expand Down
2 changes: 1 addition & 1 deletion docs/dynamic-tao/sdk-cheat-sheet.md.bak
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Or the following configuration for synchronous calls to Bittensor mainnet ('finn

```python
import bittensor as bt
sub = bt.Subtensor(network="finney")
sub = bt.Subtensor(network="test")
```


Expand Down
7 changes: 7 additions & 0 deletions docs/errors/custom.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,13 @@ Related:
**Description**: The amount you are staking/unstaking/moving is below the minimum TAO equivalent.
**Minimum**: 500,000 RAO (0.0005 TAO)

<details>
<summary><strong>Check current value on-chain</strong></summary>

To verify the current minimum, open the [Polkadot.js app](https://polkadot.js.org/apps/?rpc=wss://entrypoint-finney.opentensor.ai:443#/chainstate) connected to Finney. Under **Developer → Chain state → Storage**, query `subtensorModule.minStake()`. See [Inspecting the Chain](../concepts/inspecting-the-chain).

</details>

### Error Code 2

**Error**: `BalanceTooLow`
Expand Down
9 changes: 9 additions & 0 deletions docs/keys/_proxy-warning.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Admonition from '@theme/Admonition';

export const ProxyColdkeyWarning = () => (
<Admonition type="warning" title="Use a proxy coldkey for these operations">
<p>
The operations on this page require a coldkey. Your primary coldkey should remain in cold storage (hardware wallet) and never be loaded onto a machine running <code>btcli</code> or the Bittensor SDK. Use a scoped, delayed proxy coldkey to perform these operations via <code>btcli</code> or the SDK. See <a href="/keys/coldkey-hotkey-security">Coldkey and Hotkey Workstation Security</a> and <a href="/keys/proxies">Proxies</a>.
</p>
</Admonition>
);
Loading