Transactions

register-leased-network

Register a new crowdloan-funded leased subnet.

View as Markdown

Creates a subnet paid for by a crowdloan rather than a single coldkey: the crowdloan's funds cover the network registration cost (leftover cap is refunded to contributors pro-rata, with any rounding remainder going to the beneficiary), contributors earn emissions_share percent of the subnet owner's emission cut (not of total subnet emissions) as dividends, and the beneficiary operates the subnet through a scoped proxy. Must be dispatched in a crowdloan context — it fails as a standalone call. The cost is not cheaply boundable up front, so a configured spend cap blocks this until raised. With an end_block the beneficiary can later take full ownership via terminate_lease; without one the lease is perpetual and ownership never transfers.

SignerPalletWraps
coldkeySubtensorModuleSubtensorModule.register_leased_network

Parameters

ParameterTypeRequiredDescription
emissions_shareintegeryesPercent (0-100) of the subnet owner's emission cut paid to crowdloan contributors as dividends.
end_blockintegernoBlock at which the lease ends and the beneficiary may take ownership; omit for a perpetual lease.

Address parameters (--hotkey, --coldkey, --dest, ...) accept a raw ss58 address, an address-book or proxy-book name, or a local wallet/hotkey name.

CLI

Preview with --dry-run (shows fee, effects, and policy result without submitting), then submit:

btcli tx register-leased-network \
  --emissions-share <int> --dry-run
btcli tx register-leased-network \
  --emissions-share <int> -w my_coldkey

Python

import bittensor as sub
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.RegisterLeasedNetwork(emissions_share=0)

async with sub.Client("finney") as client:
    plan = await client.plan(intent, wallet)   # fee, effects, policy — no submission
    result = await client.execute(intent, wallet)
    if not result.success:
        print(result.error.code, result.error.remediation)

Or build it by op name, as an agent would:

await client.execute_tool("register_leased_network", {...}, wallet)