Lux Bridge Documentation

Welcome to the documentation for the Lux Bridge — a decentralized cross-chain bridge using Multi-Party Computation (MPC) for secure, trustless asset transfers across 15+ blockchain networks.

Quick Links

What is Lux Bridge?

The Lux Bridge enables:

  • Secure asset transfers — move tokens between 15+ chains with 2-of-3 threshold signatures
  • Multi-Party Computation — distributed key generation, no single point of failure
  • Post-quantum-safe option — lattice-based MPC protocols (pulsar, corona, magnetar)
  • Optional layered cosigners — Utila or Fireblocks on top of native MPC
  • Universal message passing — arbitrary cross-chain messages, not just token transfers
  • Low fees & fast finality — competitive bridge fee with caps, minutes not hours

Supported Networks

Layer 1

  • Lux Network
  • Ethereum
  • BNB Smart Chain
  • Polygon
  • Avalanche
  • Fantom

Layer 2

  • Arbitrum One
  • Optimism
  • zkSync Era
  • Polygon zkEVM
  • Base
  • Blast

Getting Started

The bridge ships as a single Go binary (cmd/bridge) that embeds the SPA and serves both the UI and the native /v1/bridge/* API on one port.

# Pull and run the unified bridge image
docker run --rm -p 8080:8080 \
  -v $(pwd)/networks.yaml:/etc/bridge/networks.yaml \
  ghcr.io/luxfi/bridge:latest

Visit http://localhost:8080 (opens in a new tab) for the bridge UI; the native API is at http://localhost:8080/v1/bridge (opens in a new tab).

For SDK consumers (Lux, Hanzo, Zoo, white-label tenants), import the public @luxfi/bridge package and call mountBridge(...) — see the pkg/bridge README (opens in a new tab) for tenant usage.

For local dev (workspace install, watcher fleet, tenant SPAs), see the top-level README.md (opens in a new tab).

Canonical AI / Onboarding Doc

The single source of truth for the architecture and conventions of this repo is docs/LLM.md (opens in a new tab). It is consumed verbatim by AI assistants (via AGENTS.md symlink) and is the first thing a new contributor should read.

Need Help?


Docs last refreshed in v1.1.12 — see issue #391.