Transactions

set-take

Set the delegate take to an absolute value.

View as Markdown

The delegate take is the fraction of staking emissions a delegate hotkey keeps before distributing the rest to its nominators. This is sugar over the chain's directional increase_take / decrease_take: it reads the current take and dispatches whichever call moves it to take, so you do not need to know the current value. Signed by the coldkey that owns the hotkey. If the move is upward it inherits the increase path's constraints (take maximum and rate limit on increases).

SignerPalletWraps
coldkeySubtensorModuleSubtensorModule.increase_take, SubtensorModule.decrease_take

Parameters

ParameterTypeRequiredDescription
takeintegeryesNew take as a u16 proportion (fraction of 65535, e.g. 5898 is about 9 percent). The chain enforces its configured take bounds.
hotkey_ss58stringnoHotkey the operation applies to.

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 set-take \
  --take <int> --dry-run
btcli tx set-take \
  --take <int> -w my_coldkey

Python

import bittensor as sub
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.SetTake(take=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("set_take", {...}, wallet)