Assets pallet tokens
Create, mint, burn, transfer, pause and freeze fungible assets on Asset Hub
Polkadot is not live yet. It will land in Smart Engines and HSuite Wallet together. There is no date. This page describes what Polkadot support will offer.
Polkadot is a multi-chain network built on Substrate. Its Asset Hub parachain has an Assets pallet for fungible tokens and an NFTs pallet. Polkadot entities will be pallet_multisig accounts of the validators, with every token operation prepared by the validators and paid for by the payer.
flowchart TD
DOT["Polkadot Asset Hub (coming next)"] --> CREATE["assets.create"]
DOT --> MINT["assets.mint / assets.burn"]
DOT --> XFER["assets.transfer"]
DOT --> PAUSE["assets.freezeAsset<br/>(pausable)"]
DOT --> FREEZE["assets.freeze<br/>(restrictable, per account)"]
DOT --> WIPE["assets.forceTransfer<br/>(wipeable)"]
DOT --> KYC["system.remarkWithEvent<br/>(compliant, record only)"]
DOT --> MS["pallet_multisig<br/>(validator multisig)"]
Assets pallet tokens
Create, mint, burn, transfer, pause and freeze fungible assets on Asset Hub
NFTs pallet
Create collections, then mint, burn, transfer and set metadata on NFTs
Payer-funded accounts
The payer funds the entity’s multisig address above the existential deposit
Validator multisig
Every entity is a pallet_multisig account of the validators
On-chain rule anchor
The validators write the entity’s rule reference with system.remarkWithEvent
Token operations will run on Asset Hub as nested multisig calls: the app owner opens a pallet_multisig asMulti proposal on an outer multisig, and the validators approve it through the entity’s inner validator multisig. App-facing token operations will use this partial security mode.
| Capability | Assets pallet call | Description |
|---|---|---|
pausable |
assets.freezeAsset / thawAsset |
Freeze all transfers of the asset |
restrictable |
assets.freeze / thaw (per account) |
Freeze one holder |
compliant |
system.remarkWithEvent (KYC record) |
Records an approval or revocation; enforces nothing on chain |
wipeable |
assets.forceTransfer |
Move tokens out of a holder’s account |
mintable |
assets.mint |
Issue more supply |
burnable |
assets.burn |
Remove supply |
transferable |
assets.transfer |
Move tokens between accounts |
assets.setTeam and assets.setMetadata will also be available.
NFT support will cover collection create, collection metadata and collection lock, and NFT mint, burn, transfer and metadata. NFT calls will use the same nested multisig as token calls.
Substrate has no create-account transaction: an account exists once its balance reaches the chain’s existential deposit. A Polkadot entity will be created like this:
pallet_multisig address from their sorted sr25519 keys and the threshold. The address is deterministic, so nothing is submitted to create it.balances.transferKeepAlive that funds the address above the existential deposit. The validators sign nothing at this step.asMulti approval of a system.remarkWithEvent carrying the entity’s rule reference. That remark is the entity’s on-chain rule anchor.A pallet_multisig account has no key of its own, so the validators write the entity’s rule anchor as members of the multisig: an asMulti-wrapped system.remarkWithEvent carrying the rule reference. The step checks the chain first and skips the submit when the anchor is already there, so a retry is safe.
Polkadot’s smallest unit is the Planck:
| Network | Decimals | 1 token = |
|---|---|---|
| Polkadot | 10 | 10,000,000,000 Planck |
| Kusama | 12 | 1,000,000,000,000 Planck |
Polkadot takes no part in genesis. Genesis runs on Hedera (HCS topics) and XRPL (the HSUITE token and the membership NFTs) only.