Skip to content

Assets pallet

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

Pallet index
6
Calls
32
Events
24
Errors
20
Storage items
4
Constants
7

Calls (extrinsics)

Assets.create

See [Pallet::create].

ts
api.tx.assets.create(id: u32, admin: [u8;20], min_balance: u128)
ArgumentTypeDoc
idu32T::AssetIdParameter
admin[u8;20]AccountIdLookupOf<T>
min_balanceu128T::Balance

Call index: 0

Assets.force_create

See [Pallet::force_create].

ts
api.tx.assets.force_create(id: u32, owner: [u8;20], is_sufficient: bool, min_balance: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
owner[u8;20]AccountIdLookupOf<T>
is_sufficientboolbool
min_balanceCompact&lt;u128&gt;T::Balance

Call index: 1

Assets.start_destroy

See [Pallet::start_destroy].

ts
api.tx.assets.start_destroy(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 2

Assets.destroy_accounts

See [Pallet::destroy_accounts].

ts
api.tx.assets.destroy_accounts(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 3

Assets.destroy_approvals

See [Pallet::destroy_approvals].

ts
api.tx.assets.destroy_approvals(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 4

Assets.finish_destroy

See [Pallet::finish_destroy].

ts
api.tx.assets.finish_destroy(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 5

Assets.mint

See [Pallet::mint].

ts
api.tx.assets.mint(id: u32, beneficiary: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
beneficiary[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 6

Assets.burn

See [Pallet::burn].

ts
api.tx.assets.burn(id: u32, who: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
who[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 7

Assets.transfer

See [Pallet::transfer].

ts
api.tx.assets.transfer(id: u32, target: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
target[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 8

Assets.transfer_keep_alive

See [Pallet::transfer_keep_alive].

ts
api.tx.assets.transfer_keep_alive(id: u32, target: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
target[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 9

Assets.force_transfer

See [Pallet::force_transfer].

ts
api.tx.assets.force_transfer(id: u32, source: [u8;20], dest: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
source[u8;20]AccountIdLookupOf<T>
dest[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 10

Assets.freeze

See [Pallet::freeze].

ts
api.tx.assets.freeze(id: u32, who: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
who[u8;20]AccountIdLookupOf<T>

Call index: 11

Assets.thaw

See [Pallet::thaw].

ts
api.tx.assets.thaw(id: u32, who: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
who[u8;20]AccountIdLookupOf<T>

Call index: 12

Assets.freeze_asset

See [Pallet::freeze_asset].

ts
api.tx.assets.freeze_asset(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 13

Assets.thaw_asset

See [Pallet::thaw_asset].

ts
api.tx.assets.thaw_asset(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 14

Assets.transfer_ownership

See [Pallet::transfer_ownership].

ts
api.tx.assets.transfer_ownership(id: u32, owner: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
owner[u8;20]AccountIdLookupOf<T>

Call index: 15

Assets.set_team

See [Pallet::set_team].

ts
api.tx.assets.set_team(id: u32, issuer: [u8;20], admin: [u8;20], freezer: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
issuer[u8;20]AccountIdLookupOf<T>
admin[u8;20]AccountIdLookupOf<T>
freezer[u8;20]AccountIdLookupOf<T>

Call index: 16

Assets.set_metadata

See [Pallet::set_metadata].

ts
api.tx.assets.set_metadata(id: u32, name: Bytes, symbol: Bytes, decimals: u8)
ArgumentTypeDoc
idu32T::AssetIdParameter
nameBytesVec<u8>
symbolBytesVec<u8>
decimalsu8u8

Call index: 17

Assets.clear_metadata

See [Pallet::clear_metadata].

ts
api.tx.assets.clear_metadata(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 18

Assets.force_set_metadata

See [Pallet::force_set_metadata].

ts
api.tx.assets.force_set_metadata(id: u32, name: Bytes, symbol: Bytes, decimals: u8, is_frozen: bool)
ArgumentTypeDoc
idu32T::AssetIdParameter
nameBytesVec<u8>
symbolBytesVec<u8>
decimalsu8u8
is_frozenboolbool

Call index: 19

Assets.force_clear_metadata

See [Pallet::force_clear_metadata].

ts
api.tx.assets.force_clear_metadata(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 20

Assets.force_asset_status

See [Pallet::force_asset_status].

ts
api.tx.assets.force_asset_status(id: u32, owner: [u8;20], issuer: [u8;20], admin: [u8;20], freezer: [u8;20], min_balance: Compact<u128>, is_sufficient: bool, is_frozen: bool)
ArgumentTypeDoc
idu32T::AssetIdParameter
owner[u8;20]AccountIdLookupOf<T>
issuer[u8;20]AccountIdLookupOf<T>
admin[u8;20]AccountIdLookupOf<T>
freezer[u8;20]AccountIdLookupOf<T>
min_balanceCompact&lt;u128&gt;T::Balance
is_sufficientboolbool
is_frozenboolbool

Call index: 21

Assets.approve_transfer

See [Pallet::approve_transfer].

ts
api.tx.assets.approve_transfer(id: u32, delegate: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
delegate[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 22

Assets.cancel_approval

See [Pallet::cancel_approval].

ts
api.tx.assets.cancel_approval(id: u32, delegate: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
delegate[u8;20]AccountIdLookupOf<T>

Call index: 23

Assets.force_cancel_approval

See [Pallet::force_cancel_approval].

ts
api.tx.assets.force_cancel_approval(id: u32, owner: [u8;20], delegate: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
owner[u8;20]AccountIdLookupOf<T>
delegate[u8;20]AccountIdLookupOf<T>

Call index: 24

Assets.transfer_approved

See [Pallet::transfer_approved].

ts
api.tx.assets.transfer_approved(id: u32, owner: [u8;20], destination: [u8;20], amount: Compact<u128>)
ArgumentTypeDoc
idu32T::AssetIdParameter
owner[u8;20]AccountIdLookupOf<T>
destination[u8;20]AccountIdLookupOf<T>
amountCompact&lt;u128&gt;T::Balance

Call index: 25

Assets.touch

See [Pallet::touch].

ts
api.tx.assets.touch(id: u32)
ArgumentTypeDoc
idu32T::AssetIdParameter

Call index: 26

Assets.refund

See [Pallet::refund].

ts
api.tx.assets.refund(id: u32, allow_burn: bool)
ArgumentTypeDoc
idu32T::AssetIdParameter
allow_burnboolbool

Call index: 27

Assets.set_min_balance

See [Pallet::set_min_balance].

ts
api.tx.assets.set_min_balance(id: u32, min_balance: u128)
ArgumentTypeDoc
idu32T::AssetIdParameter
min_balanceu128T::Balance

Call index: 28

Assets.touch_other

See [Pallet::touch_other].

ts
api.tx.assets.touch_other(id: u32, who: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
who[u8;20]AccountIdLookupOf<T>

Call index: 29

Assets.refund_other

See [Pallet::refund_other].

ts
api.tx.assets.refund_other(id: u32, who: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
who[u8;20]AccountIdLookupOf<T>

Call index: 30

Assets.block

See [Pallet::block].

ts
api.tx.assets.block(id: u32, who: [u8;20])
ArgumentTypeDoc
idu32T::AssetIdParameter
who[u8;20]AccountIdLookupOf<T>

Call index: 31

Events

Assets.Created

Some asset class was created.

FieldTypeDoc
asset_idu32
creator[u8;20]
owner[u8;20]

Assets.Issued

Some assets were issued.

FieldTypeDoc
asset_idu32
owner[u8;20]
amountu128

Assets.Transferred

Some assets were transferred.

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

Assets.Burned

Some assets were destroyed.

FieldTypeDoc
asset_idu32
owner[u8;20]
balanceu128

Assets.TeamChanged

The management team changed.

FieldTypeDoc
asset_idu32
issuer[u8;20]
admin[u8;20]
freezer[u8;20]

Assets.OwnerChanged

The owner changed.

FieldTypeDoc
asset_idu32
owner[u8;20]

Assets.Frozen

Some account who was frozen.

FieldTypeDoc
asset_idu32
who[u8;20]

Assets.Thawed

Some account who was thawed.

FieldTypeDoc
asset_idu32
who[u8;20]

Assets.AssetFrozen

Some asset asset_id was frozen.

FieldTypeDoc
asset_idu32

Assets.AssetThawed

Some asset asset_id was thawed.

FieldTypeDoc
asset_idu32

Assets.AccountsDestroyed

Accounts were destroyed for given asset.

FieldTypeDoc
asset_idu32
accounts_destroyedu32
accounts_remainingu32

Assets.ApprovalsDestroyed

Approvals were destroyed for given asset.

FieldTypeDoc
asset_idu32
approvals_destroyedu32
approvals_remainingu32

Assets.DestructionStarted

An asset class is in the process of being destroyed.

FieldTypeDoc
asset_idu32

Assets.Destroyed

An asset class was destroyed.

FieldTypeDoc
asset_idu32

Assets.ForceCreated

Some asset class was force-created.

FieldTypeDoc
asset_idu32
owner[u8;20]

Assets.MetadataSet

New metadata has been set for an asset.

FieldTypeDoc
asset_idu32
nameBytes
symbolBytes
decimalsu8
is_frozenbool

Assets.MetadataCleared

Metadata has been cleared for an asset.

FieldTypeDoc
asset_idu32

Assets.ApprovedTransfer

(Additional) funds have been approved for transfer to a destination account.

FieldTypeDoc
asset_idu32
source[u8;20]
delegate[u8;20]
amountu128

Assets.ApprovalCancelled

An approval for account delegate was cancelled by owner.

FieldTypeDoc
asset_idu32
owner[u8;20]
delegate[u8;20]

Assets.TransferredApproved

An amount was transferred in its entirety from owner to destination by the approved delegate.

FieldTypeDoc
asset_idu32
owner[u8;20]
delegate[u8;20]
destination[u8;20]
amountu128

Assets.AssetStatusChanged

An asset has had its attributes changed by the Force origin.

FieldTypeDoc
asset_idu32

Assets.AssetMinBalanceChanged

The min_balance of an asset has been updated by the asset owner.

FieldTypeDoc
asset_idu32
new_min_balanceu128

Assets.Touched

Some account who was created with a deposit from depositor.

FieldTypeDoc
asset_idu32
who[u8;20]
depositor[u8;20]

Assets.Blocked

Some account who was blocked.

FieldTypeDoc
asset_idu32
who[u8;20]

Errors

Assets.BalanceLow

Account balance must be greater than or equal to the transfer amount.

Assets.NoAccount

The account to alter does not exist.

Assets.NoPermission

The signing account has no permission to do the operation.

Assets.Unknown

The given asset ID is unknown.

Assets.Frozen

The origin account is frozen.

Assets.InUse

The asset ID is already taken.

Assets.BadWitness

Invalid witness data given.

Assets.MinBalanceZero

Minimum balance should be non-zero.

Assets.UnavailableConsumer

Unable to increment the consumer reference counters on the account. Either no provider reference exists to allow a non-zero balance of a non-self-sufficient asset, or one fewer then the maximum number of consumers has been reached.

Assets.BadMetadata

Invalid metadata given.

Assets.Unapproved

No approval exists that would allow the transfer.

Assets.WouldDie

The source account would not survive the transfer and it needs to stay alive.

Assets.AlreadyExists

The asset-account already exists.

Assets.NoDeposit

The asset-account doesn't have an associated deposit.

Assets.WouldBurn

The operation would result in funds being burned.

Assets.LiveAsset

The asset is a live asset and is actively being used. Usually emit for operations such as start_destroy which require the asset to be in a destroying state.

Assets.AssetNotLive

The asset is not live, and likely being destroyed.

Assets.IncorrectStatus

The asset status is not the expected status.

Assets.NotFrozen

The asset should be frozen before the given operation.

Assets.CallbackFailed

Callback action resulted in error

Storage

Assets.Asset

Details of an asset.

ts
await api.query.assets.asset(key1)
  • Key: u32 (hasher: Blake2_128Concat)
  • Returns: {"owner":"SeedPrimitivesSignatureAccountId20","issuer":"SeedPrimitivesSignatureAccountId20","admin":"SeedPrimitivesSignatureAccountId20","freezer":"SeedPrimitivesSignatureAccountId20","supply":"u128","deposit":"u128","minBalance":"u128","isSufficient":"bool","accounts":"u32","sufficients":"u32","approvals":"u32","status":"PalletAssetsAssetStatus"}

Modifier: Optional

Assets.Account

The holdings of a specific account for a specific asset.

ts
await api.query.assets.account(key1, key2)
  • Key: (u32,SeedPrimitivesSignatureAccountId20) (hashers: Blake2_128Concat, Blake2_128Concat)
  • Returns: {"balance":"u128","status":"PalletAssetsAccountStatus","reason":"PalletAssetsExistenceReason","extra":"Null"}

Modifier: Optional

Assets.Approvals

Approved balance transfers. First balance is the amount approved for transfer. Second is the amount of T::Currency reserved for storing this. First key is the asset ID, second key is the owner and third key is the delegate.

ts
await api.query.assets.approvals(key1, key2, key3)
  • Key: (u32,SeedPrimitivesSignatureAccountId20,SeedPrimitivesSignatureAccountId20) (hashers: Blake2_128Concat, Blake2_128Concat, Blake2_128Concat)
  • Returns: {"amount":"u128","deposit":"u128"}

Modifier: Optional

Assets.Metadata

Metadata of an asset.

ts
await api.query.assets.metadata(key1)
  • Key: u32 (hasher: Blake2_128Concat)
  • Returns: {"deposit":"u128","name":"Bytes","symbol":"Bytes","decimals":"u8","isFrozen":"bool"}

Modifier: Default

Constants

Assets.RemoveItemsLimit

Max number of items to destroy per destroy_accounts and destroy_approvals call. Must be configured to result in a weight that makes each call fit in a block.

Type: u32
SCALE-encoded value: 0x64000000

Assets.AssetDeposit

The basic amount of funds that must be reserved for an asset.

Type: u128
SCALE-encoded value: 0x40420f00000000000000000000000000

Assets.AssetAccountDeposit

The amount of funds that must be reserved for a non-provider asset account to be maintained.

Type: u128
SCALE-encoded value: 0x10000000000000000000000000000000

Assets.MetadataDepositBase

The basic amount of funds that must be reserved when adding metadata to your asset.

Type: u128
SCALE-encoded value: 0x44000000000000000000000000000000

Assets.MetadataDepositPerByte

The additional funds that must be reserved for the number of bytes you store in your metadata.

Type: u128
SCALE-encoded value: 0x01000000000000000000000000000000

Assets.ApprovalDeposit

The amount of funds that must be reserved when creating a new approval.

Type: u128
SCALE-encoded value: 0x01000000000000000000000000000000

Assets.StringLimit

The maximum length of a name or symbol stored on-chain.

Type: u32
SCALE-encoded value: 0x32000000

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.