zeekay b8f26df495 universe(test+dev): register 4 brand L2 chains on fresh primaries (closes #168)
CreateChainTx fired on testnet + devnet P-chains for all 4 brand L2 EVMs
(hanzo / zoo / spc / pars) — 8 chains total, all isBootstrapped=true on
all 3 pods per env (24/24 verified). Each chain uses the canonical EVM
plugin (vmID mgj786NP7uDwBCcq6YwThhaN8FLyybkCa4zBWTQbNgmK6k9A6) and its
own per-chain validator-network (CreateNetworkTx ID, L2-anchor pattern).
All 5 primary validators added as chain validators via
IssueAddChainValidatorTx.

EVM chain IDs match the LP-182 canonical map per (brand, env):
  hanzo: test=36962 dev=36964
  zoo  : test=200201 dev=200202
  spc  : test=36910 dev=36912
  pars : test=494950 dev=494951

Required a second wipe-and-rebootstrap of both primaries because #186's
fresh genesis funded all 50T LUX into the validator stake (zero spendable
P-chain balance for the deployer). Added a 6th allocation per genesis (a
deterministic SHA-256 deployer key — 100K LUX spendable, NOT in
initialStakedFunds). Reapplied lux-{testnet,devnet}-genesis ConfigMap,
scaled luxd StatefulSet 3→0→3, P + C re-bootstrapped in ~75s on all pods.
Snapshots from #186 retained (data-luxd-{0..2}-20260602).

Inventory committed at
k8s/lux-{test,dev}-k8s/{testnet,devnet}/chains-inventory.json (8 chains:
blockchainID + per-chain networkID + evmChainID + bootstrap timestamps).
chain-aliases ConfigMap committed for each env mapping
brand-name → blockchainID for operator + gateway convenience.

Tool used: ~/work/lux/genesis/cmd/bootstrap-chain (lux/genesis@HEAD —
adds --key-file flag) against ~/work/lux/node/wallet/network/primary
(lux/node@HEAD — fail-soft FetchState when X-Chain disabled).

Followups:
- Roll block 1 on each L2 (eth_blockNumber > 0) via heartbeat tx when
  downstream contract deploys land.
- Update lux-gateway/gateway.yaml routing for /testnet/* and /devnet/*
  paths to point at the new lux-{test,dev}-k8s namespaces (currently
  still routes to legacy lux-testnet/lux-devnet namespaces).
- Migrate ~/work/lux/keys/deployer-test-dev/private.key to KMS once
  kms-operator is deployed in test+dev clusters.
2026-06-02 13:49:37 -07:00

Lux Universe

Infrastructure monorepo for Lux Network. Compose files, Kubernetes manifests, gateway configs, and deployment scripts.

Lux Ecosystem

Repo Purpose Stack
lux/node Core blockchain node (luxd) Go
lux/wallet @luxfi/wallet (extension, mobile, web) TypeScript
lux/exchange DEX at lux.exchange (apps/web, apps/mobile) Vite + Tamagui
lux/web lux.network marketing site Next.js 14
lux/ui @luxfi/ui component library React
lux/papers 111 research papers LaTeX
lux/proofs Formal verification (Lean 4, TLA+, Halmos, Tamarin) Multi

Structure

compose*.yml        Docker Compose for local dev (mainnet/testnet/devnet)
k8s/                Kubernetes manifests (lux-k8s cluster)
configs/            Node and gateway configuration
chain-configs/      Per-chain EVM configuration
scripts/            Deployment and management scripts
docker/             Dockerfiles
iam/                IAM init data for lux.id
e2e/                Playwright E2E tests (~488 cases)

Networks

Network Network ID C-Chain ID DOKS Cluster
Mainnet 1 96369 lux-k8s (do-sfo3-lux-k8s)
Testnet 2 96368 lux-test-k8s
Devnet 3 96370 lux-dev-k8s

Mainnet runs 15 validators. Each cluster runs luxd StatefulSets.

app chain EVM Chain IDs

app chain EVM Coin Mainnet Testnet Devnet
Zoo ZOO 200200 200201 200202
Hanzo AI 36963 36964 36964
SPC SPC 36911 36910 36912
Pars PARS 494949 7071 494951

Quick Start

git clone --recursive [email protected]:luxfi/universe.git
cd universe

# Local development
docker compose -f compose.mainnet.yml up -d

# Production (lux-k8s)
kubectl --context do-sfo3-lux-k8s apply -k k8s/lux-k8s

Production (lux-k8s)

LB: 134.199.138.27. All *.lux.network services.

Namespace Services
lux-system hanzo-ingress (Traefik), lux-operator
lux-mainnet 5 luxd validators
lux-testnet 5 luxd validators
lux-devnet 5 luxd validators
lux-gateway KrakenD API gateway
lux-explorer Lux Explorer (single Go binary: indexer+GraphQL+SPA, all 5 chains), exchange, indexers, faucets
lux-bridge Bridge UI + server
lux-mpc MPC dashboard + API (5 nodes, threshold 3)
lux-kms KMS API

Key Images (GHCR)

Image Purpose
ghcr.io/luxfi/node Blockchain node
ghcr.io/luxfi/explorer Lux Explorer (single Go binary: indexer+GraphQL+SPA)
ghcr.io/luxfi/operator K8s operator
ghcr.io/luxfi/gateway KrakenD gateway

RPC Endpoints

https://api.lux.network/{mainnet,testnet,devnet}/ext/bc/{chain}/rpc

License

Proprietary - Lux Partners Limited. All rights reserved.

S
Description
Declared state for the lux fleet: one values file per service, one ApplicationSet
Readme BSD-3-Clause
6.7 MiB
Languages
TypeScript 66.4%
Shell 14.9%
Python 7.9%
Go 4.8%
Makefile 4.3%
Other 1.7%