epic: multi-chain asset model #6

Closed
opened 2026-09-15 12:35:31 +00:00 by grenade · 2 comments
Owner

Goal

The wallet holds accounts on more than one post-quantum chain from one mnemonic, and every screen that shows an amount, an asset or an address works for all of them. Adding a chain is a profile, a coin type and an adapter; the UI does not change.

Shape

  • AssetId is a chain plus a kind (native, pallet-assets id, NEP-141 contract). Two chains with the same symbol are two assets.
  • An asset registry maps our ids to external ones (NEAR Intents nep141:… and 1cs_v1:… ids first) so the swap module speaks our vocabulary.
  • Quantus has one asset and two balance kinds (transparent, shielded). The shielded balance is not a second asset.
  • The second real chain is whatever ships first: NEAR's ML-DSA accounts (announced May 2026, testnet targeted Q2, mainnet unset) or another PQ Substrate chain. Until then, mainnet and Heisenberg side by side prove the machinery.

Operator-owned decisions

  • Which second chain to target once one is live. Deferred until there is one.

Definition of done

Mainnet and Heisenberg accounts derived from the same mnemonic appear side by side with distinct assets, balances and addresses; the send flow refuses an address from the other chain with a message that names the chain it belongs to (an address the wallet cannot decode reads as a typo, one it can reads as a warning).

## Goal The wallet holds accounts on more than one post-quantum chain from one mnemonic, and every screen that shows an amount, an asset or an address works for all of them. Adding a chain is a profile, a coin type and an adapter; the UI does not change. ## Shape - `AssetId` is a chain plus a kind (native, pallet-assets id, NEP-141 contract). Two chains with the same symbol are two assets. - An asset registry maps our ids to external ones (NEAR Intents `nep141:…` and `1cs_v1:…` ids first) so the swap module speaks our vocabulary. - Quantus has one asset and two balance kinds (transparent, shielded). The shielded balance is not a second asset. - The second real chain is whatever ships first: NEAR's ML-DSA accounts (announced May 2026, testnet targeted Q2, mainnet unset) or another PQ Substrate chain. Until then, mainnet and Heisenberg side by side prove the machinery. ## Operator-owned decisions - Which second chain to target once one is live. **Deferred until there is one.** ## Definition of done Mainnet and Heisenberg accounts derived from the same mnemonic appear side by side with distinct assets, balances and addresses; the send flow refuses an address from the other chain with a message that names the chain it belongs to (an address the wallet cannot decode reads as a typo, one it can reads as a warning).
grenade added the epic label 2026-09-15 12:38:46 +00:00
Author
Owner

Children, in dependency order: #36 (asset registry) → #37 (accounts across profiles, addresses refused by name). A third child for the second real PQ chain is filed when one exists.

Children, in dependency order: #36 (asset registry) → #37 (accounts across profiles, addresses refused by name). A third child for the second real PQ chain is filed when one exists.
Author
Owner

Both children are done: #36 (the asset registry, wallet-core/src/assets.toml, with the Intents ids for the transit legs and none for the post-quantum assets) and #37 (the same accounts on every profile side by side, and a foreign address refused by the name of its chain). The third child, for the second real post-quantum chain, is filed when one exists; until then Planck stands in as the second live chain and the overview already shows mainnet and Planck beside each other. Closing the epic.

Both children are done: #36 (the asset registry, `wallet-core/src/assets.toml`, with the Intents ids for the transit legs and none for the post-quantum assets) and #37 (the same accounts on every profile side by side, and a foreign address refused by the name of its chain). The third child, for the second real post-quantum chain, is filed when one exists; until then Planck stands in as the second live chain and the overview already shows mainnet and Planck beside each other. Closing the epic.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blackbeard/wallet#6