chain profiles: quantus mainnet, heisenberg and dev as data, not code #18

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

Parent: #3

Scope

A ChainProfile type in wallet-entities and a registry in wallet-core: chain id, display name, genesis hash, ss58 prefix (189), token symbol and decimals (QTC/12, HEI/12, DEV/12), BIP44 coin type (189189), the signature enum name, the ordered transaction-extension list, the signing-context rule (spec ≥ 148 → QUANTUS_EXTRINSIC), and the endpoint list. Profiles ship as TOML in the binary with an override file in app data for operators.

Acceptance

Adding a fourth Substrate profile is a TOML entry and no Rust change. A profile with a genesis hash that does not match the node it connects to is refused at connect.

Depends on

Nothing.

Parent: #3 ## Scope A `ChainProfile` type in `wallet-entities` and a registry in `wallet-core`: chain id, display name, genesis hash, ss58 prefix (189), token symbol and decimals (QTC/12, HEI/12, DEV/12), BIP44 coin type (189189), the signature enum name, the ordered transaction-extension list, the signing-context rule (spec ≥ 148 → `QUANTUS_EXTRINSIC`), and the endpoint list. Profiles ship as TOML in the binary with an override file in app data for operators. ## Acceptance Adding a fourth Substrate profile is a TOML entry and no Rust change. A profile with a genesis hash that does not match the node it connects to is refused at connect. ## Depends on Nothing.
grenade added the child label 2026-09-15 12:39:00 +00:00
Author
Owner

Endpoint decision from #20 (2026-09-15): each profile's endpoint list is one public name per chain, wss://<chain>.blackbeard.observer, no auth. Mainnet is quantus.blackbeard.observer; the testnet profile is planck.blackbeard.observer unless the Planck-versus-Heisenberg caveat on #20 resolves the other way. The profile's chain id should match the DNS label so the convention is one string.

Endpoint decision from #20 (2026-09-15): each profile's endpoint list is one public name per chain, `wss://<chain>.blackbeard.observer`, no auth. Mainnet is `quantus.blackbeard.observer`; the testnet profile is `planck.blackbeard.observer` unless the Planck-versus-Heisenberg caveat on #20 resolves the other way. The profile's chain id should match the DNS label so the convention is one string.
Author
Owner

Correction (2026-09-15): the testnet profile is Planck, no caveat. planck.blackbeard.observer proxies to Quantus's official a1/a2-planck.quantus.cat; we run no testnet node. Planck is in the wallet only to prove the multi-chain UX, so its profile should be labelled testnet and carry nothing mainnet does not. Heisenberg gets no profile.

Correction (2026-09-15): the testnet profile is Planck, no caveat. `planck.blackbeard.observer` proxies to Quantus's official `a1`/`a2-planck.quantus.cat`; we run no testnet node. Planck is in the wallet only to prove the multi-chain UX, so its profile should be labelled testnet and carry nothing mainnet does not. Heisenberg gets no profile.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: blackbeard/wallet#18