transfer_keep_alive

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

Migration Notes

v424 v432 Breaking

value changed from Compact<u64> to Compact<TaoBalance>

Update decoders: SCALE encoding is positional, so any signature change (added, removed, or type-changed fields, or storage shape changes) shifts byte offsets and existing decoders will misparse this item. Re-derive types from the new metadata.

Input Parameters

#NameTypeDescription
0
dest
MultiAddress AccountIdLookupOf<T>Recipient account address
1
value
Compact<TaoBalance> Cpt T::BalanceAmount to transfer (RAO, ÷10⁹ for TAO) (SCALE compact -> integer)

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

// ----------------------------------------------------------------------
// HEADS UP: 2 args below have a complex type with no usable default.
// Look for `undefined as any` and replace them with real values
// before running — the snippet compiles, but will fail at runtime as-is.
// ----------------------------------------------------------------------
import { createClient, Binary } from "polkadot-api";
import { getWsProvider } from "polkadot-api/ws";
import { sub } from "@polkadot-api/descriptors"; // generated by: npx papi add sub -w wss://entrypoint-finney.opentensor.ai:443

const client = createClient(getWsProvider("wss://entrypoint-finney.opentensor.ai:443"));
const api = client.getTypedApi(sub);

// Build transfer_keep_alive call (typed, named args)
const dest = undefined as any /* MultiAddress — replace with real value */;
const value = undefined as any /* TaoBalance — replace with real value */;

const tx = api.tx.Balances.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

Version History

v101 block 1 2 args
v432 block 8,636,190 2 args Current

Runtime Info

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