chains

# Lux Chains Independent VM plugin binaries for the Lux Network. Each directory builds to a standalone binary that the Lux node loads as a plugin via `--plugin-dir`. ## Build ```bash make # build all VMs make evm # build one VM make test # test all ``` ## Install ```bash lpm install evm lpm install dexvm ``` Or copy binaries to `~/.lux/plugins/`. ## VMs One row per directory in this repo. `make` derives its target list from the directory listing, so a VM that has no directory here has no binary — the table below and `ls` can never disagree. **Live** means the VM has a chain registered on Lux mainnet 96369 (`platform.getBlockchains`). | VM | Chain | Live on 96369 | Purpose | |----|-------|---------------|---------| | evm | C-Chain | ✅ | EVM smart contracts | | dexvm | D-Chain | ✅ | Decentralized exchange | | aivm | A-Chain | ✅ | AI/ML inference | | bridgevm | B-Chain | ✅ | Cross-chain bridge — also owns *all* cross-chain messaging / relay / teleport (LP-6000); there is no separate `teleportvm` | | graphvm | G-Chain | ✅ | GraphQL data layer | | keyvm | K-Chain | ✅ | Key management | | quantumvm | Q-Chain | ✅ | Post-quantum consensus signing (Pulsar) | | zkvm | Z-Chain | ✅ | Groth16 over BLS12-381 (rolls N × ML-DSA-65 sigs into 192-byte proof) | | identityvm | I-Chain | ❌ built, not deployed | Decentralized identity | | oraclevm | O-Chain | ❌ built, not deployed | Oracle/off-chain data | | relayvm | R-Chain | ❌ built, not deployed | Cross-chain relay | | mpcvm | M-Chain | ❌ built, not deployed | MPC ceremonies (CGGMP21, FROST, Pulsar-general) — bridge custody for external wallets (LP-7100) | | schain | S-Chain | ❌ built, not deployed | S3-style object storage (on-chain metadata / off-chain blob). Declares its own `VMID = ids.ID{'s','c','h','a','i','n'}` in `schain/factory.go` and is **not** in the canonical `luxfi/constants` VM-ID registry | `P-Chain` (platformvm) and `X-Chain` (xvm) are in-process core VMs registered by `luxfi/node`, not plugins built here. Together with the eight ✅ rows above they are the ten chains live on 96369. ### Not in this repo | Name | Status | |------|--------| | `teleportvm` / T-Chain | **Removed.** LP-134 dissolves T-Chain with zero remainder: threshold signing → M-Chain, FHE → F-Chain, cross-chain messaging/teleport → B-Chain (`bridgevm`). LP-5013 and LP-7330 are deprecated by LP-134; see LP-7050 for the migration map. No `teleportvm` VM ID exists in `luxfi/constants`. | | `servicenodevm` | **Never existed.** The service-node registry was never built under this name; the S-Chain directory here is `schain/` and is object storage, not a registry. | | `fhevm` / F-Chain | **Unbuilt.** `luxfi/constants` reserves `FHEVMID = {'f','h','e','v','m'}` and `luxfi/node/node/vms.go` lists it in `OptionalVMs` as a plugin named `fhevm`, so luxd will scan `--plugin-dir` for it — but there is **no `fhevm/` directory in this repo and no plugin binary anywhere**, so that scan always comes up empty. The FHE *runtime library* lives at `mpcvm/fhe/`; it is a package inside `mpcvm`, not a standalone chain. F-Chain is a spec (LP-8200, LP-167) with no shipping VM. |