transfer_keep_alive

Call v101 → current #3

Transfers TAO while ensuring sender account stays alive.

View calls on chain

Click items to navigate. Pan and zoom to explore.

From Chain Metadata

Same as the [`transfer`] call, but with a check that the transfer will not kill the origin account. 99% of the time you want [`transfer`] instead. [`transfer`]: struct.Pallet.html#method.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

Requirements

  • Sender has sufficient free balance
  • Sender will retain existential deposit after transfer
  • Recipient account can receive funds

Effects

Events Emitted

Storage Modified

Postconditions

  • Sender balance decreased by amount
  • Recipient balance increased by amount
  • Sender account still exists

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

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

On-Chain Activity

Usage Frequency
●●●●●○ Core 1M–10M extrinsics

Primary protocol calls

#21 most used call

Success Rate Near-certain

Over 95% of submissions succeed

As of block 7,429,232

Runtime Info

Pallet Index
5
Call Index
3
First Version
v101
Current Version
v393