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].
api.tx.assets.create(id: u32, admin: [u8;20], min_balance: u128)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
admin | [u8;20] | AccountIdLookupOf<T> |
min_balance | u128 | T::Balance |
Call index: 0
Assets.force_create
See [
Pallet::force_create].
api.tx.assets.force_create(id: u32, owner: [u8;20], is_sufficient: bool, min_balance: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
owner | [u8;20] | AccountIdLookupOf<T> |
is_sufficient | bool | bool |
min_balance | Compact<u128> | T::Balance |
Call index: 1
Assets.start_destroy
See [
Pallet::start_destroy].
api.tx.assets.start_destroy(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 2
Assets.destroy_accounts
See [
Pallet::destroy_accounts].
api.tx.assets.destroy_accounts(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 3
Assets.destroy_approvals
See [
Pallet::destroy_approvals].
api.tx.assets.destroy_approvals(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 4
Assets.finish_destroy
See [
Pallet::finish_destroy].
api.tx.assets.finish_destroy(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 5
Assets.mint
See [
Pallet::mint].
api.tx.assets.mint(id: u32, beneficiary: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
beneficiary | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 6
Assets.burn
See [
Pallet::burn].
api.tx.assets.burn(id: u32, who: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
who | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 7
Assets.transfer
See [
Pallet::transfer].
api.tx.assets.transfer(id: u32, target: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
target | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 8
Assets.transfer_keep_alive
See [
Pallet::transfer_keep_alive].
api.tx.assets.transfer_keep_alive(id: u32, target: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
target | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 9
Assets.force_transfer
See [
Pallet::force_transfer].
api.tx.assets.force_transfer(id: u32, source: [u8;20], dest: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
source | [u8;20] | AccountIdLookupOf<T> |
dest | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 10
Assets.freeze
See [
Pallet::freeze].
api.tx.assets.freeze(id: u32, who: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
who | [u8;20] | AccountIdLookupOf<T> |
Call index: 11
Assets.thaw
See [
Pallet::thaw].
api.tx.assets.thaw(id: u32, who: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
who | [u8;20] | AccountIdLookupOf<T> |
Call index: 12
Assets.freeze_asset
See [
Pallet::freeze_asset].
api.tx.assets.freeze_asset(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 13
Assets.thaw_asset
See [
Pallet::thaw_asset].
api.tx.assets.thaw_asset(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 14
Assets.transfer_ownership
See [
Pallet::transfer_ownership].
api.tx.assets.transfer_ownership(id: u32, owner: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
owner | [u8;20] | AccountIdLookupOf<T> |
Call index: 15
Assets.set_team
See [
Pallet::set_team].
api.tx.assets.set_team(id: u32, issuer: [u8;20], admin: [u8;20], freezer: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::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].
api.tx.assets.set_metadata(id: u32, name: Bytes, symbol: Bytes, decimals: u8)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
name | Bytes | Vec<u8> |
symbol | Bytes | Vec<u8> |
decimals | u8 | u8 |
Call index: 17
Assets.clear_metadata
See [
Pallet::clear_metadata].
api.tx.assets.clear_metadata(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 18
Assets.force_set_metadata
See [
Pallet::force_set_metadata].
api.tx.assets.force_set_metadata(id: u32, name: Bytes, symbol: Bytes, decimals: u8, is_frozen: bool)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
name | Bytes | Vec<u8> |
symbol | Bytes | Vec<u8> |
decimals | u8 | u8 |
is_frozen | bool | bool |
Call index: 19
Assets.force_clear_metadata
See [
Pallet::force_clear_metadata].
api.tx.assets.force_clear_metadata(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 20
Assets.force_asset_status
See [
Pallet::force_asset_status].
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)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
owner | [u8;20] | AccountIdLookupOf<T> |
issuer | [u8;20] | AccountIdLookupOf<T> |
admin | [u8;20] | AccountIdLookupOf<T> |
freezer | [u8;20] | AccountIdLookupOf<T> |
min_balance | Compact<u128> | T::Balance |
is_sufficient | bool | bool |
is_frozen | bool | bool |
Call index: 21
Assets.approve_transfer
See [
Pallet::approve_transfer].
api.tx.assets.approve_transfer(id: u32, delegate: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
delegate | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 22
Assets.cancel_approval
See [
Pallet::cancel_approval].
api.tx.assets.cancel_approval(id: u32, delegate: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
delegate | [u8;20] | AccountIdLookupOf<T> |
Call index: 23
Assets.force_cancel_approval
See [
Pallet::force_cancel_approval].
api.tx.assets.force_cancel_approval(id: u32, owner: [u8;20], delegate: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
owner | [u8;20] | AccountIdLookupOf<T> |
delegate | [u8;20] | AccountIdLookupOf<T> |
Call index: 24
Assets.transfer_approved
See [
Pallet::transfer_approved].
api.tx.assets.transfer_approved(id: u32, owner: [u8;20], destination: [u8;20], amount: Compact<u128>)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
owner | [u8;20] | AccountIdLookupOf<T> |
destination | [u8;20] | AccountIdLookupOf<T> |
amount | Compact<u128> | T::Balance |
Call index: 25
Assets.touch
See [
Pallet::touch].
api.tx.assets.touch(id: u32)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
Call index: 26
Assets.refund
See [
Pallet::refund].
api.tx.assets.refund(id: u32, allow_burn: bool)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
allow_burn | bool | bool |
Call index: 27
Assets.set_min_balance
See [
Pallet::set_min_balance].
api.tx.assets.set_min_balance(id: u32, min_balance: u128)| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
min_balance | u128 | T::Balance |
Call index: 28
Assets.touch_other
See [
Pallet::touch_other].
api.tx.assets.touch_other(id: u32, who: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
who | [u8;20] | AccountIdLookupOf<T> |
Call index: 29
Assets.refund_other
See [
Pallet::refund_other].
api.tx.assets.refund_other(id: u32, who: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
who | [u8;20] | AccountIdLookupOf<T> |
Call index: 30
Assets.block
See [
Pallet::block].
api.tx.assets.block(id: u32, who: [u8;20])| Argument | Type | Doc |
|---|---|---|
id | u32 | T::AssetIdParameter |
who | [u8;20] | AccountIdLookupOf<T> |
Call index: 31
Events
Assets.Created
Some asset class was created.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
creator | [u8;20] | |
owner | [u8;20] |
Assets.Issued
Some assets were issued.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
owner | [u8;20] | |
amount | u128 |
Assets.Transferred
Some assets were transferred.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
from | [u8;20] | |
to | [u8;20] | |
amount | u128 |
Assets.Burned
Some assets were destroyed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
owner | [u8;20] | |
balance | u128 |
Assets.TeamChanged
The management team changed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
issuer | [u8;20] | |
admin | [u8;20] | |
freezer | [u8;20] |
Assets.OwnerChanged
The owner changed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
owner | [u8;20] |
Assets.Frozen
Some account
whowas frozen.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
who | [u8;20] |
Assets.Thawed
Some account
whowas thawed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
who | [u8;20] |
Assets.AssetFrozen
Some asset
asset_idwas frozen.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 |
Assets.AssetThawed
Some asset
asset_idwas thawed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 |
Assets.AccountsDestroyed
Accounts were destroyed for given asset.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
accounts_destroyed | u32 | |
accounts_remaining | u32 |
Assets.ApprovalsDestroyed
Approvals were destroyed for given asset.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
approvals_destroyed | u32 | |
approvals_remaining | u32 |
Assets.DestructionStarted
An asset class is in the process of being destroyed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 |
Assets.Destroyed
An asset class was destroyed.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 |
Assets.ForceCreated
Some asset class was force-created.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
owner | [u8;20] |
Assets.MetadataSet
New metadata has been set for an asset.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
name | Bytes | |
symbol | Bytes | |
decimals | u8 | |
is_frozen | bool |
Assets.MetadataCleared
Metadata has been cleared for an asset.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 |
Assets.ApprovedTransfer
(Additional) funds have been approved for transfer to a destination account.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
source | [u8;20] | |
delegate | [u8;20] | |
amount | u128 |
Assets.ApprovalCancelled
An approval for account
delegatewas cancelled byowner.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
owner | [u8;20] | |
delegate | [u8;20] |
Assets.TransferredApproved
An
amountwas transferred in its entirety fromownertodestinationby the approveddelegate.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
owner | [u8;20] | |
delegate | [u8;20] | |
destination | [u8;20] | |
amount | u128 |
Assets.AssetStatusChanged
An asset has had its attributes changed by the
Forceorigin.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 |
Assets.AssetMinBalanceChanged
The min_balance of an asset has been updated by the asset owner.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
new_min_balance | u128 |
Assets.Touched
Some account
whowas created with a deposit fromdepositor.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
who | [u8;20] | |
depositor | [u8;20] |
Assets.Blocked
Some account
whowas blocked.
| Field | Type | Doc |
|---|---|---|
asset_id | u32 | |
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_destroywhich 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.
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.
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::Currencyreserved for storing this. First key is the asset ID, second key is the owner and third key is the delegate.
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.
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_accountsanddestroy_approvalscall. 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
wss://root.rootnet.live/archive/ws · captured 2026-05-02