Skip to content

Polkadot/Substrate Integration

Coming next

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:

  1. The validators compute the entity’s pallet_multisig address from their sorted sr25519 keys and the threshold. The address is deterministic, so nothing is submitted to create it.
  2. The payer signs and submits a balances.transferKeepAlive that funds the address above the existential deposit. The validators sign nothing at this step.
  3. Threshold-many validators each submit their 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.