Skip to content

Balances pallet

Derived from live runtime metadata on TRN root (pallet index 5, captured 2026-05-02). For prose-style documentation see Balances on the curated reference side.

Pallet index
5
Calls
9
Events
21
Errors
10
Storage items
7
Constants
5

Calls (extrinsics)

Balances.transfer_allow_death

See [Pallet::transfer_allow_death].

ts
api.tx.balances.transfer_allow_death(dest: [u8;20], value: Compact<u128>)
ArgumentTypeDoc
dest[u8;20]AccountIdLookupOf<T>
valueCompact&lt;u128&gt;T::Balance

Call index: 0

Balances.set_balance_deprecated

See [Pallet::set_balance_deprecated].

ts
api.tx.balances.set_balance_deprecated(who: [u8;20], new_free: Compact<u128>, old_reserved: Compact<u128>)
ArgumentTypeDoc
who[u8;20]AccountIdLookupOf<T>
new_freeCompact&lt;u128&gt;T::Balance
old_reservedCompact&lt;u128&gt;T::Balance

Call index: 1

Balances.force_transfer

See [Pallet::force_transfer].

ts
api.tx.balances.force_transfer(source: [u8;20], dest: [u8;20], value: Compact<u128>)
ArgumentTypeDoc
source[u8;20]AccountIdLookupOf<T>
dest[u8;20]AccountIdLookupOf<T>
valueCompact&lt;u128&gt;T::Balance

Call index: 2

Balances.transfer_keep_alive

See [Pallet::transfer_keep_alive].

ts
api.tx.balances.transfer_keep_alive(dest: [u8;20], value: Compact<u128>)
ArgumentTypeDoc
dest[u8;20]AccountIdLookupOf<T>
valueCompact&lt;u128&gt;T::Balance

Call index: 3

Balances.transfer_all

See [Pallet::transfer_all].

ts
api.tx.balances.transfer_all(dest: [u8;20], keep_alive: bool)
ArgumentTypeDoc
dest[u8;20]AccountIdLookupOf<T>
keep_aliveboolbool

Call index: 4

Balances.force_unreserve

See [Pallet::force_unreserve].

ts
api.tx.balances.force_unreserve(who: [u8;20], amount: u128)
ArgumentTypeDoc
who[u8;20]AccountIdLookupOf<T>
amountu128T::Balance

Call index: 5

Balances.upgrade_accounts

See [Pallet::upgrade_accounts].

ts
api.tx.balances.upgrade_accounts(who: Vec<SeedPrimitivesSignatureAccountId20>)
ArgumentTypeDoc
whoVec&lt;SeedPrimitivesSignatureAccountId20&gt;Vec<T::AccountId>

Call index: 6

Balances.transfer

See [Pallet::transfer].

ts
api.tx.balances.transfer(dest: [u8;20], value: Compact<u128>)
ArgumentTypeDoc
dest[u8;20]AccountIdLookupOf<T>
valueCompact&lt;u128&gt;T::Balance

Call index: 7

Balances.force_set_balance

See [Pallet::force_set_balance].

ts
api.tx.balances.force_set_balance(who: [u8;20], new_free: Compact<u128>)
ArgumentTypeDoc
who[u8;20]AccountIdLookupOf<T>
new_freeCompact&lt;u128&gt;T::Balance

Call index: 8

Events

Balances.Endowed

An account was created with some free balance.

FieldTypeDoc
account[u8;20]
free_balanceu128

Balances.DustLost

An account was removed whose balance was non-zero but below ExistentialDeposit, resulting in an outright loss.

FieldTypeDoc
account[u8;20]
amountu128

Balances.Transfer

Transfer succeeded.

FieldTypeDoc
from[u8;20]
to[u8;20]
amountu128

Balances.BalanceSet

A balance was set by root.

FieldTypeDoc
who[u8;20]
freeu128

Balances.Reserved

Some balance was reserved (moved from free to reserved).

FieldTypeDoc
who[u8;20]
amountu128

Balances.Unreserved

Some balance was unreserved (moved from reserved to free).

FieldTypeDoc
who[u8;20]
amountu128

Balances.ReserveRepatriated

Some balance was moved from the reserve of the first account to the second account. Final argument indicates the destination balance type.

FieldTypeDoc
from[u8;20]
to[u8;20]
amountu128
destination_status{"_enum":["Free","Reserved"]}

Balances.Deposit

Some amount was deposited (e.g. for transaction fees).

FieldTypeDoc
who[u8;20]
amountu128

Balances.Withdraw

Some amount was withdrawn from the account (e.g. for transaction fees).

FieldTypeDoc
who[u8;20]
amountu128

Balances.Slashed

Some amount was removed from the account (e.g. for misbehavior).

FieldTypeDoc
who[u8;20]
amountu128

Balances.Minted

Some amount was minted into an account.

FieldTypeDoc
who[u8;20]
amountu128

Balances.Burned

Some amount was burned from an account.

FieldTypeDoc
who[u8;20]
amountu128

Balances.Suspended

Some amount was suspended from an account (it can be restored later).

FieldTypeDoc
who[u8;20]
amountu128

Balances.Restored

Some amount was restored into an account.

FieldTypeDoc
who[u8;20]
amountu128

Balances.Upgraded

An account was upgraded.

FieldTypeDoc
who[u8;20]

Balances.Issued

Total issuance was increased by amount, creating a credit to be balanced.

FieldTypeDoc
amountu128

Balances.Rescinded

Total issuance was decreased by amount, creating a debt to be balanced.

FieldTypeDoc
amountu128

Balances.Locked

Some balance was locked.

FieldTypeDoc
who[u8;20]
amountu128

Balances.Unlocked

Some balance was unlocked.

FieldTypeDoc
who[u8;20]
amountu128

Balances.Frozen

Some balance was frozen.

FieldTypeDoc
who[u8;20]
amountu128

Balances.Thawed

Some balance was thawed.

FieldTypeDoc
who[u8;20]
amountu128

Errors

Balances.VestingBalance

Vesting balance too high to send value.

Balances.LiquidityRestrictions

Account liquidity restrictions prevent withdrawal.

Balances.InsufficientBalance

Balance too low to send value.

Balances.ExistentialDeposit

Value too low to create account due to existential deposit.

Balances.Expendability

Transfer/payment would kill account.

Balances.ExistingVestingSchedule

A vesting schedule already exists for this account.

Balances.DeadAccount

Beneficiary account must pre-exist.

Balances.TooManyReserves

Number of named reserves exceed MaxReserves.

Balances.TooManyHolds

Number of holds exceed MaxHolds.

Balances.TooManyFreezes

Number of freezes exceed MaxFreezes.

Storage

Balances.TotalIssuance

The total units issued in the system.

ts
await api.query.balances.totalIssuance()

Returns: u128

Modifier: Default

Balances.InactiveIssuance

The total units of outstanding deactivated balance in the system.

ts
await api.query.balances.inactiveIssuance()

Returns: u128

Modifier: Default

Balances.Account

The Balances pallet example of storing the balance of an account. # Example nocompile impl pallet_balances::Config for Runtime { type AccountStore = StorageMapShim&lt;Self::Account&lt;Runtime&gt;, frame_system::Provider&lt;Runtime&gt;, AccountId, Self::AccountData&lt;Balance&gt;&gt; } You can also store the balance of an account in the System pallet. # Example nocompile impl pallet_balances::Config for Runtime { type AccountStore = System } But this comes with tradeoffs, storing account balances in the system pallet stores frame_system data alongside the account data contrary to storing account balances in the Balances pallet, which uses a StorageMap to store balances data only. NOTE: This is only used in the case that this pallet is used to store balances.

ts
await api.query.balances.account(key1)
  • Key: [u8;20] (hasher: Blake2_128Concat)
  • Returns: {"free":"u128","reserved":"u128","frozen":"u128","flags":"u128"}

Modifier: Default

Balances.Locks

Any liquidity locks on some account balances. NOTE: Should only be accessed when setting, changing and freeing a lock.

ts
await api.query.balances.locks(key1)
  • Key: [u8;20] (hasher: Blake2_128Concat)
  • Returns: Vec<PalletBalancesBalanceLock>

Modifier: Default

Balances.Reserves

Named reserves on some account balances.

ts
await api.query.balances.reserves(key1)
  • Key: [u8;20] (hasher: Blake2_128Concat)
  • Returns: Vec<PalletBalancesReserveData>

Modifier: Default

Balances.Holds

Holds on account balances.

ts
await api.query.balances.holds(key1)
  • Key: [u8;20] (hasher: Blake2_128Concat)
  • Returns: Vec<PalletBalancesIdAmount>

Modifier: Default

Balances.Freezes

Freeze locks on account balances.

ts
await api.query.balances.freezes(key1)
  • Key: [u8;20] (hasher: Blake2_128Concat)
  • Returns: Vec<PalletBalancesIdAmount>

Modifier: Default

Constants

Balances.ExistentialDeposit

The minimum amount required to keep an account open. MUST BE GREATER THAN ZERO! If you really need it to be zero, you can enable the feature insecure_zero_ed for this pallet. However, you do so at your own risk: this will open up a major DoS vector. In case you have multiple sources of provider references, you may also get unexpected behaviour if you set this to zero. Bottom line: Do yourself a favour and make it at least one!

Type: u128
SCALE-encoded value: 0x01000000000000000000000000000000

Balances.MaxLocks

The maximum number of locks that should exist on an account. Not strictly enforced, but used for weight estimation.

Type: u32
SCALE-encoded value: 0x32000000

Balances.MaxReserves

The maximum number of named reserves that can exist on an account.

Type: u32
SCALE-encoded value: 0x32000000

Balances.MaxHolds

The maximum number of holds that can exist on an account at any time.

Type: u32
SCALE-encoded value: 0x00000000

Balances.MaxFreezes

The maximum number of individual freeze locks that can exist on an account at any time.

Type: u32
SCALE-encoded value: 0x00000000

Source: live chain metadata from wss://root.rootnet.live/archive/ws · captured 2026-05-02

Curated independently by Codeology. Source-attributed reference for The Root Network. Not affiliated with Futureverse / TRN Labs.