REAX.docs Pre-release · not on testnet
MenuTestnet guide

Participate

Testnet preparation guide

This is a preparation guide, not a joining guide. It explains what REAX testnet participation will require, which read-only chain checks already exist, and how to prepare keys and test TAO safely when the time comes.

No netuid yet

No REAX subnet is registered on Bittensor testnet or mainnet. There is no netuid, no owner UID and no registered miner or validator. Nothing described here should be read as REAX running on testnet today. Check reax.co/status and the changelog for updates.

What the testnet stage requires

Testnet is rollout gate G3. It opens only after the spec is frozen (G0), the local harness passes against a disposable local Subtensor with miners in both tiers (G1), and adversarial simulations pass (G2). At G3:

Network facts

The reference code allows exactly one endpoint, the official test network:

wss://test.finney.opentensor.ai:443

A read-only receipt on 30 September 2026 recorded:

FactObserved value
Genesis hash0x8f9cf856bf558a14440e75569c9e58594757048d7b3a84b5d25f6bd978263105
Runtimespec version 471, transaction version 1, metadata V15
Pinned SDKbittensor==11.1.0
Subnet creation cost1 testTAO at the observed block, plus fees and account reserve
New-subnet neuron burn default1 testTAO (source default; owner or governance may change it)

These are dated observations for preparation, not configuration. Costs, runtime and parameters must be read again at the block where any action is taken. Parameters observed on other subnets (for example netuid 1, used only as a compatibility specimen) must not be reused as REAX parameters.

Read-only checks that exist today

All of these read chain state without a wallet and submit nothing.

Endpoint identity receipt

python3 scripts/testnet_readonly.py --output /path/to/private/testnet-readonly.json

Four read-only JSON-RPC calls, spaced 1.1 s apart with 5 s timeouts, record the genesis hash, a finalized block, the runtime version and the SHA-256 of the raw metadata. It requires websocket-client, which is installed separately, does not import the SDK and never opens a wallet. An observed genesis is a candidate pin that needs independent review, not trusted configuration.

SDK snapshot reader and weight preview

In an isolated environment with the pinned SDK, SDKTestnetReader reads one finalized-block snapshot (metagraph UIDs and hotkeys, validator permits, commit-reveal and weight hyperparameters), and TestnetChainAdapter validates it and produces a dry-run weight plan. The preview builds the real SDK CommitWeights intent with u16-quantized weights and returns no signature, ciphertext, fee estimate or submitted transaction. The adapter refuses mainnet and custom endpoints, the root netuid, a wrong genesis, mismatched SDK or runtime metadata, stale or future snapshots, recycled UIDs, missing validator permits, disabled commit-reveal and vectors that violate chain limits.

Before any REAX use it needs inputs that do not exist yet: a REAX test netuid, reviewed genesis and metadata pins, and REAX-owned validator and miner hotkeys.

Key hygiene

Never reuse keys

Create new, test-only coldkeys and hotkeys in a new empty private directory. Never reuse an existing wallet or mnemonic, never pass passwords on the command line, and never put keys, mnemonics or tokens in repositories, images, logs or environment files.

The pinned CLI's wallet creation prints mnemonics. The prepared (not yet executed) procedure uses the SDK instead, with mnemonic printing suppressed, both keys encrypted and overwriting disabled, run in a private terminal without output capture:

wallet.create_new_coldkey(n_words=24, use_password=True, overwrite=False,
    suppress=True, save_coldkey_to_env=False, coldkey_password=PASSWORD_FROM_GETPASS)
wallet.create_new_hotkey(n_words=24, use_password=True, overwrite=False,
    suppress=True, save_hotkey_to_env=False, hotkey_password=PASSWORD_FROM_GETPASS)
# Record only the public SS58 addresses. Keep the encrypted keyfiles private.

PASSWORD_FROM_GETPASS is interactive input, never an argument, environment variable or logged value. REAX serving keys (Ed25519) are separate from Bittensor wallet keys and are never derived from them.

Getting test TAO

Preparation checklist

  1. Run the local harness and read what its receipt does and does not prove.
  2. Set up an isolated environment with bittensor==11.1.0 and verify the installed version and wheel hash before any chain read.
  3. Run the read-only endpoint receipt and compare the genesis with an independently reviewed value.
  4. Create new test-only keys with the procedure above; record only public addresses.
  5. Wait until a REAX test netuid is published. Read registration cost, burn and hyperparameters at the target block before doing anything that spends test TAO.
  6. Register and serve only under the testnet_mechanics rules published with that announcement.

Prospective operators who want to prepare with the private source can request access at reax.co/apply.