transfer_stake

Call v233 → current #86

Transfers stake from one coldkey to another on the same hotkey .

View calls on chain

Click items to navigate. Pan and zoom to explore.

Used by: stakerswalletsdevelopersexchanges

The Big Picture

Normally, moving stake means unstaking to TAO, transferring TAO, then restaking. That's three transactions and exposes you to Alpha price risk. transfer_stake moves the stake directly between coldkeys without touching liquid TAO. Same hotkey, same position, different owner.

Why This Matters

When you need to change who owns stake (new wallet, security upgrade, transfer to someone else), doing it without unstaking preserves your position exactly. No conversion, no price risk, no timing issues.

Example Scenario

You're upgrading to a hardware wallet. Your old coldkey has 500 TAO staked to a validator. Call transfer_stake(origin=old_coldkey, dest=new_coldkey, hotkey=validator, amount=500). The stake position transfers to your new wallet - same validator, same subnet, no conversion.

Common Questions

Can I transfer to anyone's coldkey?
Yes, as long as you control the origin coldkey (you're signing the transaction). The destination coldkey gains ownership of the stake.
What happens to my earnings from this stake?
Once transferred, all future emissions go to the new coldkey. Any pending emissions up to the transfer belong to the original coldkey.

Use Cases

  • Transfer stake ownership to a new wallet
  • Gift staked position without unstaking
  • Move stake to a more secure coldkey
  • Estate planning or organizational restructuring

From Chain Metadata

Transfers a specified amount of stake from one coldkey to another, optionally across subnets, while keeping the same hotkey.

Input Parameters

#NameTypeDescription
0
destination_coldkey
AccountId destination_coldkey (AccountId) (hex -> SS58)
1
hotkey
AccountId Hot wallet address (active operations) (hex -> SS58)
2
origin_netuid
u16 origin_netuid (u16)
3
destination_netuid
u16 destination_netuid (u16)
4
alpha_amount
u64 alpha_amount (u64) (RAO -> TAO (/ 10^9))

Permissions

Origin
Signed
Required Role
Authorization Checks
  • Coldkey must be associated with the source hotkey

Requirements

  • Origin coldkey has stake on hotkey
  • Transfer is authorized
  • Hotkey is registered

Effects

Events Emitted

Postconditions

  • Origin coldkey's stake decreased
  • Destination coldkey's stake increased
  • Ownership transferred

Side Effects

  • Updates StakingHotkeys for both coldkeys

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 transfer_stake call
const destination_coldkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const hotkey = "5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY";
const origin_netuid = 1;
const destination_netuid = 1;
const alpha_amount = 1_000_000_000n;

const call = api.tx[stringCamelCase("SubtensorModule")][stringCamelCase("transfer_stake")](
  destination_coldkey,
  hotkey,
  origin_netuid,
  destination_netuid,
  alpha_amount
);

On-Chain Activity

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

Significant regular use

#31 most used call

Success Rate Reliable

80–95% of submissions succeed

As of block 7,429,232

Runtime Info

View Source
Pallet Index
7
Call Index
86
First Version
v233
Current Version
v393