Chain-Topology Supersession & Migration Map
The single authoritative record of what moved where when T-Chain was removed and the threshold/MPC/FHE/bridge LP cluster was decomplected to one-concept-one-LP. Maps every retired construct and LP to its canonical successor.
Abstract
LP-134 (Lux Chain Topology) removed T-Chain entirely. LP-0130 (Chain Topology, UTXO Ownership, and Fee Model) then extended the canonical roster to 10 chains: P X + C D Q Z A B M F (adding D-Chain, LP-9000, the DEX / CLOB matching chain that was previously folded into C-Chain / X-Chain scope). This LP is the single place that records what every retired construct and LP became, so a reader of an old LP can always find the canonical replacement. It is a pointer table only — it does not redefine any chain or primitive (those live in their own canonical LPs).
Forward-only: there is no "T-Chain also-supported" mode and no grace
window. Any live identifier still naming T-Chain, ThresholdVM, or
teleportvm is stale. Any live identifier still naming the Go package
thresholdvm is stale — the package was renamed to mpcvm on
2026-07-03 (chains/mpcvm/, node/vms/mpcvm/); the ThresholdVMID +
ThresholdVMName constants were removed the same day.
1. T-Chain is removed — concern → chain
T-Chain braided four orthogonal concerns. Each now has exactly one owning chain:
| Former T-Chain concern | Canonical chain | Canonical LP |
|---|---|---|
| MPC / threshold signing / bridge custody | M-Chain (MVM) | LP-7100 |
| FHE / encrypted EVM / threshold-FHE decryption | F-Chain (FVM) | LP-8200 (+ runtime LP-167) |
| Teleport / cross-chain messaging / bridge relay | B-Chain (bridgevm) | LP-6000 |
| Consensus-threshold Pulsar ceremony | Q-Chain (QVM) | LP-4450 |
| ML-DSA→Groth16 rollup (was co-located) | Z-Chain (ZVM) | LP-063 |
The thresholdvm Go package | renamed to mpcvm (2026-07-03) — hosts M-Chain VM + shared threshold primitives + F-Chain FHE runtime adapters | ~/work/lux/chains/mpcvm |
The ThresholdVMID / ThresholdVMName constants | removed (2026-07-03); split into MPCVMID/FHEVMID (LP-0130 §1) | luxfi/constants/vm_ids.go |
| The name "T-Chain" / "teleportvm" | removed — teleport is bridgevm | — |
2. Superseded chain / VM LPs
| LP | What it was | New status | Superseded by |
|---|---|---|---|
| LP-141 | Threshold VM (braided MPC signing + threshold FHE) | Superseded | LP-7100 (signing) + LP-8200 (FHE) |
| LP-5013 | T-Chain MPC Custody | Superseded | LP-7100 |
| LP-7000 | T-Chain core threshold spec | Superseded | LP-134 + LP-7100 + LP-8200 |
| LP-7013 | T-Chain MPC custody & swap-signature layer | Superseded | LP-7100 |
| LP-7014 | T-Chain CGGMP21 threshold ECDSA | Superseded | LP-7100 + LP-4720 |
| LP-7330 | T-Chain ThresholdVM specification | Superseded | LP-7100 + LP-8200 |
| LP-5331 | T-Chain FHE implementation guide | Superseded | LP-8200 |
| LP-1137 | Native swap on T-Chain/X-Chain/Z-Chain | Superseded (retitled) | M-Chain / X-Chain / Z-Chain (see LP-1137 redirect) |
| LP-7200 | legacy F-Chain slot | Superseded | LP-8200 (F-Chain now in 8xxx privacy range) |
| LP-034 | Bridge VM (legacy short-number) | Superseded | LP-6000 |
3. Teleport → B-Chain (bridgevm)
Teleport is the bridge. All teleport-protocol LPs redirect to the canonical B-Chain spec (LP-6000):
| LP | What it was | Superseded by |
|---|---|---|
| LP-6016 | Teleport Cross-Chain Protocol | LP-6000 |
| LP-6021 | Lux Teleport Protocol | LP-6000 |
| LP-9110 | Teleport Protocol Standard | LP-6000 |
| LP-6329 | Teleport Bridge System Index | LP-6000 |
| LP-6332 | Teleport Bridge Architecture (unified) | LP-6000 |
Retained as distinct concerns (not dups): LP-068 (private cross-chain transfer = F-Chain ∘ B-Chain), LP-3810 (bridge token standard, LRC), LP-6015 (bridge↔MPC composition), LP-6331 (detailed BridgeVM annex). See §7 flags.
4. Threshold / MPC / FHE primitive dedup (one primitive → one LP)
Crypto primitives are canonical in the 4xxx range; the older 7xxx precompile drafts and legacy short-numbers redirect to them:
| Concept | Canonical LP | Superseded duplicates → canonical |
|---|---|---|
| FROST threshold Schnorr (family root) | LP-4710 | LP-7104, LP-7321, LP-154 → LP-4710 |
| FROST-Ed25519 ciphersuite | LP-4711 | LP-7310 → LP-4711 |
| FROST-secp256k1 / Taproot ciphersuite | LP-4712 | LP-7320 → LP-4712 |
| CGGMP21 threshold ECDSA | LP-4720 | LP-7322, LP-155 → LP-4720 |
| Corona (Module-LWE threshold, Ringtail-derived) | LP-4440 | LP-4470 (ring-lwe mislabel), LP-7324 → LP-4440 |
| Pulsar (threshold ML-DSA-65, FIPS-204) | LP-4450 | LP-073 → LP-4450 |
| Magnetar (hash-based, threshold SLH-DSA) | LP-4540 | LP-181 → LP-4540 |
| Per-asset threshold key management | LP-4740 | LP-7334 → LP-4740 |
| LSS dynamic signer rotation (resharing) | LP-4730 | LP-7333, LP-077 → LP-4730 |
| Threshold + MPC family index | LP-4700 | LP-019, LP-076 → LP-4700 (pure index) |
| Threshold cryptography library (Go) | LP-7340 | — |
Crypto canon (do not regress): Corona = Module-LWE (NOT Ring-LWE);
Pulsar = threshold ML-DSA-65; Magnetar = SLH-DSA (hash-based,
the real assumption diversifier). Canonical PQ precompile slots:
0x012204 Pulsar, 0x012205 P3Q (kind-byte sig dispatch), 0x012206
Corona, 0x012220 starkfri. (Magnetar slot 0x012207 vs reuse-of-
0x012203 is flagged in LP-4540 for owner resolution.)
5. FHE cluster consolidation
FHE decomposes into: primitive (LP-066 TFHE), GPU kernels (LP-013), runtime (LP-167, canonical single-source-of-truth), and the F-Chain that runs it (LP-8200). The four LP-137-FHE-* scratch drafts folded in:
| LP | What it was | Superseded by |
|---|---|---|
| LP-137-FHE-TYPING | FHE-GPU domain typing system | LP-167 |
| LP-137-FHE-PERFORMANCE | Go/GPU bench parity analysis | LP-167 |
| LP-137-FHE-THRESHOLD | threshold-FHE service layer | LP-167 + LP-8200 |
| LP-137-TFHE-REAL-THRESHOLD-SPEC | real no-reconstruct threshold decrypt (security blocker, RESOLVED) | LP-8200 + LP-167 |
6. Learning order
The pedagogical reading order over this cluster — Foundations → Primitives → Protocols → Chains → Systems, with prerequisite edges — is LP-10006 (Learning Path: Threshold / MPC / FHE / Chains). Start there to learn the stack in order.
7. Open flags (owner review)
- B-Chain: LP-6000 (Final, concise) vs LP-6331 (Draft, 3313-line detailed BridgeVM). Both claim to be the B-Chain/BVM spec. LP-6000 is treated as canonical here; whether LP-6331's detail folds into LP-6000 or LP-6331 becomes the canonical detailed spec needs an owner decision.
- LP-3810 Teleport/Bridge Token Standard is an application-layer LRC token interface, not the bridge VM — kept as a distinct concern, flagged for owner confirmation.
- Magnetar precompile slot
0x012207vs reuse of0x012203— see the FLAG in LP-4540. - Dual numbering bands (legacy LP-0xx/1xx vs LP-4xxx/7xxx) are reconciled within this cluster; the corpus-wide dual-band migration is a scoped follow-up, not done here.
8. Implementation status — spec ahead of code (2026-07-02)
The LP-level decomposition above (M-Chain and F-Chain as distinct
chains sharing the thresholdvm substrate) is the target; the
running node has not yet been split. This section records the gap
honestly so the migration is trackable and no reader mistakes the spec
for the current binary.
| Claim in this LP | Current code | Anchor |
|---|---|---|
| T-Chain removed; roster is P/C/X/Q/Z/A/B/M/F | Genesis registry still lists one T-Chain (Letter "T", constants.ThresholdVMID, aliases threshold/thresholdvm/mpc); no M-Chain or F-Chain row | node/genesis/builder/registry.go:65 |
thresholdvm is a shared substrate for MVM + FVM | thresholdvm package still braids MPC signing and FHE compute in one VM (vms/thresholdvm/fhe GPU ops alongside the signing protocols) | chains/thresholdvm/, vms/thresholdvm/fhe/ |
| M-Chain = MPC signing (LP-7100); F-Chain = FHE (LP-8200) | node/LLM.md labels thresholdvm itself as "M-Chain" and describes it as "Threshold MPC and FHE" — the overloaded name | node/LLM.md:103,211,233 |
Migration work (tracked): (1) add M-Chain/F-Chain genesis rows;
(2) split the thresholdvm package so signing (M) and FHE (F) are
separately instantiable — they may share constants.ThresholdVMID
and disambiguate by CreateChainTx.BlockchainName (per LP-134), so this
is a builder/registration change, not a new VMID; (3) correct the
node/LLM.md label. Until then, treat "M-Chain"/"F-Chain" as the
canonical spec names for concerns the binary currently serves from the
single overloaded T/thresholdvm.
Why the split matters (not cosmetic). Braiding MPC-signing key
material with FHE compute in one VM complects the bridge-custody trust
surface with the encrypted-compute surface: a fault in the FHE
evaluation path shares an address space with the threshold-signing
shares that authorize bridge withdrawals. The clean M/F separation is a
security boundary — see proofs/universal-bridge-attestation-soundness.tex
for the composition argument (bridge soundness rests on M-Chain
threshold-signature unforgeability, which must not share a fault domain
with F-Chain FHE).
Copyright
Copyright and related rights waived via CC0.