Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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