Lux Explorer
Single-Binary Omni-Chain Block Explorer
Overview
Lux Explorer is a single-binary Go block explorer for browsing transactions, contracts, tokens, and network activity across the Lux ecosystem. It indexes an arbitrary number of heterogeneous blockchains concurrently (EVM, DAG, linear, DEX, FHE/threshold, post-quantum, zero-knowledge) with per-chain SQLite storage isolation and end-to-end post-quantum encrypted streaming backups to S3.
The legacy Blockscout-based Elixir explorer is archived at github.com/luxfi/explorer-v1.
Repository: github.com/luxfi/explorer
License: MIT
Technology Stack
| Component | Version | Notes |
|---|---|---|
| Go | 1.26.1 | Single statically-linked binary |
| SQLite | WAL mode | Per-chain isolation, embedded |
| BadgerDB | v4 | KV layer for hash/height lookups |
| Next.js | 15 | Frontend (separate github.com/luxfi/explore) |
| Docker | Alpine 3.19 | Runtime image |
Architecture
Single Binary
The explorer contains three concurrent subsystems:
| Subsystem | Purpose |
|---|---|
| Indexer goroutines | One per chain, each writing to its own SQLite + BadgerDB |
| API server | HTTP server serving /v1/explorer/{chain}/* endpoints |
| Replicator | Per-chain WAL streaming to S3 with PQ encryption |
Per-Chain Storage
{data_dir}/{chain_slug}/
query/indexer.db # SQLite: blocks, txs, tokens, contracts
kv/ # BadgerDB: hash->data, height->blockEach chain is fully isolated. No shared database. Zero write contention between chains.
Supported Networks
| Network | Chain ID | Currency | Explorer URL |
|---|---|---|---|
| LUX Mainnet | 96369 | LUX | explore.lux.network |
| LUX Testnet | 96368 | LUX | testnet.explore.lux.network |
| Zoo Mainnet | 200200 | ZOO | explore-zoo.lux.network |
| SPC Mainnet | 36911 | SPC | explore-spc.lux.network |
| Hanzo AI | 36963 | HZO | explore-hanzo.lux.network |
| Pars | 494949 | PARS | explore-pars.lux.network |
Native Chain Types
9 Lux chain types indexed natively:
- EVM: C-Chain, Zoo, Hanzo, SPC, Pars (blocks, transactions, tokens, contracts, DeFi)
- DAG: X, A, B, Q, T, Z, K (vertices, edges, UTXOs, attestations, proofs)
- Linear: P-Chain (validators, delegators, staking, subnet management)
Plus 100+ external chains (Ethereum, Solana, Bitcoin, Cosmos, Move, etc.).
API Surface
- REST:
/v1/explorer/*(blocks, transactions, addresses, tokens, stats, search) - GraphQL:
/graphqlendpoint + playground - WebSocket: Real-time block/transaction subscriptions
- Prometheus:
/metricsendpoint
Development
Build
go build -o explorer ./cmd/explorerRun
# Single chain
./explorer --rpc=http://localhost:9650/ext/bc/C/rpc
# Multi-chain
./explorer --config=chains.yamlDocker
docker build -t ghcr.io/luxfi/explorer:latest .Tests
go test -v ./...White-Label
The explorer is white-label by design. Zero branding in code. Runtime-configurable via chains.yaml:
chains:
- slug: cchain
name: "C-Chain"
chain_id: 96369
rpc: "http://luxd:9630/ext/bc/C/rpc"
logo: "/logos/lux.svg"
color: "#1a1a2e"File Structure
explorer/
cmd/explorer/ # CLI entrypoint
evm/ # EVM indexer (blocks, txs, tokens, traces, contracts, DeFi)
evm/api/ # REST API server
dag/ # DAG vertex/edge indexer
chain/ # Linear block indexer
storage/ # Dual-layer SQLite + BadgerDB
multichain/ # 100+ external chain indexer
{x,a,b,q,t,z,k}chain/ # Per-chain adapters
config/chains.yaml # Chain configuration
go.mod # github.com/luxfi/explorer