register

Call v101 → current #6

Registers a neuron using proof-of-work solution.

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: minersvalidatorsdevelopers

The Big Picture

POW registration is the original, capital-free way to join a subnet. Instead of burning TAO, you solve a cryptographic puzzle. The difficulty adjusts based on demand - popular subnets require more computation. This democratizes access: anyone with compute power can participate, regardless of TAO holdings.

Why This Matters

Burn registration favors those with TAO. POW registration favors those with compute. This balance ensures the network isn't purely pay-to-play. Small operators can grind their way in through computation.

Example Scenario

You want to join subnet 1 but the burn cost is 2 TAO - more than you have. You run the POW solver: `btcli s register --netuid 1 --pow_register`. After 30 minutes of GPU work, you find a valid solution. Submit with register(netuid=1, work=solution). You're registered without spending any TAO.

Common Questions

How long does POW registration take?
It varies wildly - minutes to hours depending on subnet difficulty, your hardware, and luck. Check RegistrationDifficulty to estimate. GPU acceleration helps significantly.
Is my POW solution single-use?
Yes. Each solution is unique to your hotkey and the current block range. Solutions expire - you can't compute one today and use it next week.
When is POW better than burn?
When burn cost > value of your compute time, or when you're capital-constrained but have idle GPU capacity. Many miners run POW overnight to avoid burn costs.

Use Cases

  • Register on a subnet without spending TAO
  • Join competitive subnets where burn cost is high
  • Prove commitment through computational work
  • Bootstrap mining operations with limited capital
Part of: Neuron Registration

Input Parameters

#NameTypeDescription
0
netuid
u16 Subnet/network identifier (0-65535)
1
block_number
u64 block_number (u64) (RAO -> TAO (/ 10^9))
2
nonce
u64 nonce (u64)
3
work
Vec<u8> Vecwork (Vec<u8>)
4
hotkey
AccountId Hot wallet address (active operations) (hex -> SS58)
5
coldkey
AccountId Cold wallet address (offline storage) (hex -> SS58)

Permissions

Origin
Unknown
Required Role

Requirements

  • Subnet exists and accepts registrations
  • Hotkey not already registered on this subnet
  • Valid POW solution provided
  • POW difficulty met

Effects

Postconditions

  • Neuron registered with assigned UID
  • Hotkey-coldkey association recorded
  • Subnet's neuron count increased

Side Effects

  • May prune lowest-performing neuron if subnet is full

Possible Errors

Code Examples

import { ApiPromise, WsProvider } from "@polkadot/api";
import { stringCamelCase } from "@polkadot/util";

const provider = new WsProvider("wss://entrypoint-finney.opentensor.ai:443");
const api = await ApiPromise.create({ provider });

// Build register call
const netuid = 1;
const block_number = 0;
const nonce = 0;
const work = 0;
const hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const coldkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";

const call = api.tx[stringCamelCase("SubtensorModule")][stringCamelCase("register")](
  netuid,
  block_number,
  nonce,
  work,
  hotkey,
  coldkey
);

On-Chain Activity

Usage Frequency
●●●●○○ Active 100K–1M extrinsics

Significant regular use

#23 most used call

Success Rate Highly competitive

Under 5% succeed — vast majority fail due to competition

As of block 7,429,232

Runtime Info

View Source
Pallet Index
7
Call Index
6
First Version
v101
Current Version
v393