chains

module
v1.7.36 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2026 License: BSD-3-Clause

README

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

make            # build all VMs
make evm        # build one VM
make test       # test all

Install

lpm install evm
lpm install dexvm

Or copy binaries to ~/.lux/plugins/<vmid>.

VMs

make's target list is named in the Makefile, and every name in it is a directory here that ships a plugin entrypoint (<vm>/cmd/plugin, or evm/main.go). dexvm/ is the exception in the table below: it is a library the EVM plugin embeds — it has no entrypoint of its own, so make builds no dexvm binary. The other directories here (fee/, ownership/, internal/, cmd/) are libraries and a tool, and are not VMs.

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)
fhevm F-Chain ❌ built, not deployed Confidential compute (LP-8200): ciphertext handles, access permits, threshold decryption. Records the public coordinates of encrypted values and holds none of the encrypted part — no ciphertext body, no FHE key, no share. Wraps the FHE runtime at mpcvm/fhe/
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.
Plugin filenames

luxd resolves a CreateChainTx's vmID to an implementation by looking for a file of that name in --plugin-dir, so a plugin installed under any other name is invisible and its chain silently never starts. The filename is the CB58 of the vmID — n6sSsSfbpQBrU9sY4R29U6z8VrmnTo2CntW6da4rRS7qmnGdv for fhevm, qCURact1n41FcoNBch8iMVBwc9AWie48D118ZNJ5tBdWrvryS for mpcvm. Each VM pins its own in a test, because a vmID cannot change once a chain has been created with it.

Directories

Path Synopsis
Package aivm GPU backend — runtime-loaded plugin bridge.
Package aivm GPU backend — runtime-loaded plugin bridge.
cmd/conscious command
Command conscious drives a fresh, REAL Lux A-Chain (aivm) ChainVM through the production block lifecycle to produce the FIRST CONSCIOUS BLOCKS and prints the trace to stdout.
Command conscious drives a fresh, REAL Lux A-Chain (aivm) ChainVM through the production block lifecycle to produce the FIRST CONSCIOUS BLOCKS and prints the trace to stdout.
cmd/plugin command
cmd/plugin command
Package chain holds what every chain in this module is made of: a block's place in the sequence, the store that advances the chain one block at a time, the queue of entries waiting for a block, and the fee floor that admits them.
Package chain holds what every chain in this module is made of: a block's place in the sequence, the store that advances the chain one block at a time, the queue of entries waiting for a block, and the fee floor that admits them.
cmd
dex-assets-validate command
Command dex-assets-validate is the CI gate for the DEX real-assets-only model.
Command dex-assets-validate is the CI gate for the DEX real-assets-only model.
dexvm module
registry
Package registry is the DEX's real-assets-only enforcement layer: the single, orthogonal place that decides which assets and which markets are admissible.
Package registry is the DEX's real-assets-only enforcement layer: the single, orthogonal place that decides which assets and which markets are admissible.
registry/rpcverify
Package rpcverify is the REAL, network-backed ChainVerifier used by CI (and any out-of-process validator) to prove a manifest's assets exist on the TARGET net before a deploy.
Package rpcverify is the REAL, network-backed ChainVerifier used by CI (and any out-of-process validator) to prove a manifest's assets exist on the TARGET net before a deploy.
evm
Backend selection (cgo build): wire the C++ EVM (cevm) into the parallel-execution registry and pick the best available backend.
Backend selection (cgo build): wire the C++ EVM (cevm) into the parallel-execution registry and pick the best available backend.
cevm
Package cevm provides Go bindings to the C++ EVM (cevm) with GPU acceleration.
Package cevm provides Go bindings to the C++ EVM (cevm) with GPU acceleration.
cevm/parallel
Package parallel — cevm BlockExecutor for github.com/luxfi/evm.
Package parallel — cevm BlockExecutor for github.com/luxfi/evm.
Package fee is the native fee/gas SETTLEMENT primitive for Lux service chains (K-Chain keyvm today; M-Chain and F-Chain next).
Package fee is the native fee/gas SETTLEMENT primitive for Lux service chains (K-Chain keyvm today; M-Chain and F-Chain next).
Package fhevm implements the F-Chain: the coordination plane for confidential compute (LP-8200, LP-167).
Package fhevm implements the F-Chain: the coordination plane for confidential compute (LP-8200, LP-167).
Package graphvm implements the Graph VM (G-Chain) — a shared GraphQL database across all Lux chains.
Package graphvm implements the Graph VM (G-Chain) — a shared GraphQL database across all Lux chains.
cmd/plugin command
cmd/plugin command
internal
bridgeattest
Package bridgeattest is the ONE canonical definition of the bridge-transfer attestation seam between B-Chain (bridgevm) and M-Chain (mpcvm).
Package bridgeattest is the ONE canonical definition of the bridge-transfer attestation seam between B-Chain (bridgevm) and M-Chain (mpcvm).
warpmsg
Package warpmsg is the single, canonical place in chains that builds, signs, and wraps a single-signer Warp message.
Package warpmsg is the single, canonical place in chains that builds, signs, and wraps a single-signer Warp message.
Package keyvm implements the K-Chain: an AUTH-ONLY service VM for distributed key management.
Package keyvm implements the K-Chain: an AUTH-ONLY service VM for distributed key management.
cmd/plugin command
service.go carves the (currently single, overloaded) threshold VM into three orthogonal SERVICE surfaces — ThresholdService, MPCService, FHEService — per LP-134 / LP-7050.
service.go carves the (currently single, overloaded) threshold VM into three orthogonal SERVICE surfaces — ThresholdService, MPCService, FHEService — per LP-134 / LP-7050.
cert
Package cert provides the QuasarCertLane registration and certificate-subject binding logic shared by M-Chain and F-Chain.
Package cert provides the QuasarCertLane registration and certificate-subject binding logic shared by M-Chain and F-Chain.
cmd/plugin command
Command plugin serves the M-Chain VM to a Lux node.
Command plugin serves the M-Chain VM to a Lux node.
fhe
Package fhe provides GPU-accelerated FHE operations for ThresholdVM.
Package fhe provides GPU-accelerated FHE operations for ThresholdVM.
types
Package types defines the data types of the ThresholdVM substrate.
Package types defines the data types of the ThresholdVM substrate.
Package oraclevm is a thin re-export of the canonical O-Chain VM implementation in github.com/luxfi/oracle/vm.
Package oraclevm is a thin re-export of the canonical O-Chain VM implementation in github.com/luxfi/oracle/vm.
cmd/plugin command
Command plugin serves the O-Chain VM to a Lux node.
Command plugin serves the O-Chain VM to a Lux node.
Package ownership is the ONE canonical definition of the NFT-ownership entitlement seam: M-Chain (mpcvm) threshold-signs the fact that an address holds a specific token of a specific collection and has bound that token to a specific node; a node's chain manager verifies that signature before it activates an entitlement-gated chain.
Package ownership is the ONE canonical definition of the NFT-ownership entitlement seam: M-Chain (mpcvm) threshold-signs the fact that an address holds a specific token of a specific collection and has bound that token to a specific node; a node's chain manager verifies that signature before it activates an entitlement-gated chain.
cmd/plugin command
Package relayvm is a thin re-export of the canonical R-Chain VM implementation in github.com/luxfi/relay/vm.
Package relayvm is a thin re-export of the canonical R-Chain VM implementation in github.com/luxfi/relay/vm.
cmd/plugin command
Command plugin serves the R-Chain VM to a Lux node.
Command plugin serves the R-Chain VM to a Lux node.
allocate_auth.go — the cryptographic half of the leaderless pinned-writer gate.
allocate_auth.go — the cryptographic half of the leaderless pinned-writer gate.
cmd/plugin command
object
Package object wires the S3 OBJECT path to the S-Chain storage VM, proving the on-chain-metadata / off-chain-blob split end to end:
Package object wires the S3 OBJECT path to the S-Chain storage VM, proving the on-chain-metadata / off-chain-blob split end to end:
pinning
Package pinning is the deterministic single-writer assignment for the S-Chain storage VM.
Package pinning is the deterministic single-writer assignment for the S-Chain storage VM.
state
Package state manages persistent state for the S-Chain — the Lux storage VM.
Package state manages persistent state for the S-Chain — the Lux storage VM.
txs
Package txs defines the transaction surface for the S-Chain — the Lux STORAGE VM.
Package txs defines the transaction surface for the S-Chain — the Lux STORAGE VM.
thresholdvm module
cmd/plugin command
fhe
Package fhe provides GPU-accelerated FHE operations for the zkvm.
Package fhe provides GPU-accelerated FHE operations for the zkvm.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL