This call was removed in v150

This call is no longer available in the current runtime. Existed from v101 to v150. Shown here for historical reference.

transfer

Call Removed v101 → v148, v149 → v150 (removed) #7

Transfers TAO between accounts.

Click items to navigate. Pan and zoom to explore.

Used by: walletsexchangesdevelopersstakers

The Big Picture

The most basic operation: move TAO from A to B. This is the foundation of all payments on Bittensor. Unlike staking operations, transfer just moves liquid TAO without any conversion or earning mechanism.

Why This Matters

You need to move TAO to use the network - fund wallets, pay people, consolidate holdings. This is the simplest way to do that.

Example Scenario

Send 10 TAO to a friend. Call transfer(to=friend_address, amount=10 TAO). Their balance increases by 10 TAO, yours decreases. A small transaction fee is also deducted.

Common Questions

What's the difference between transfer variants?
transfer keeps your account alive (won't empty it). transfer_allow_death can empty it. transfer_all sends everything. All emit the same Transfer event.
Why did my transfer fail?
Usually: insufficient balance, trying to empty account with regular transfer, or recipient address invalid. Check the error code.

Use Cases

  • Send TAO to another address
  • Fund a new wallet
  • Pay for services or purchases

From Chain Metadata

See [`Pallet::transfer`].

Input Parameters

#NameTypeDescription
0
dest
MultiAddress Recipient account address
1
value
Compact<u64> CptAmount to transfer (RAO, ÷10⁹ for TAO) (RAO -> TAO (/ 10^9))

Permissions

Origin
Unknown
Required Role

Permission data inferred from metadata. May be incomplete.

Requirements

  • Sender has sufficient free balance
  • Transfer won't kill sender account (use transfer_allow_death for that)
  • Recipient account can receive funds

Effects

Events Emitted

Storage Modified

Postconditions

  • Sender balance decreased by amount
  • Recipient balance increased by amount

Side Effects

  • May create recipient account if new
  • Transaction fees deducted from sender

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 call
const dest = 0 as any /* MultiAddress */;
const value = 0;

const call = api.tx[stringCamelCase("Balances")][stringCamelCase("transfer")](
  dest,
  value
);

Version History

v101 block 1 2 args
v149 block 3,014,339 2 args
v150 Removed

Runtime Info

Pallet Index
5
Call Index
7
First Version
v101
Removed In
v150