Transactions

set-identity

Publish an on-chain identity (name, links, description) for the coldkey.

View as Markdown

Stores public, human-readable metadata against the signing coldkey so explorers, wallets, and delegators can recognize it — useful for validator operators and subnet owners who want a public face. The signing coldkey must own at least one hotkey registered on some subnet, else the call fails with HotKeyNotRegisteredInNetwork. Everything submitted is public and permanent history on chain, so include nothing sensitive. Calling again overwrites the whole identity (empty fields clear their previous values); the chain enforces length limits on each field. Purely cosmetic: no effect on balances, stake, or permissions.

SignerPalletWraps
coldkeySubtensorModuleSubtensorModule.set_identity

Parameters

ParameterTypeRequiredDescription
namestringyesDisplay name shown for this coldkey.
urlstringnoWebsite associated with this identity.
github_repostringnoGitHub repository URL.
imagestringnoAvatar or logo image URL.
discordstringnoDiscord handle or server invite.
descriptionstringnoShort free-text description of who this key belongs to.
additionalstringnoAny extra free-text information to publish.

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-identity \
  --name <value> --dry-run
btcli tx set-identity \
  --name <value> -w my_coldkey

Python

import bittensor as sub
from bittensor.wallet import Wallet

wallet = Wallet(name="my_coldkey", hotkey="my_hotkey")
intent = sub.SetIdentity(name="...")

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_identity", {...}, wallet)