About this project

Union is an open-source blockchain interoperability protocol designed as a zero-knowledge (ZK) infrastructure layer for general message passing, asset transfers, NFTs, and DeFi. According to the README, it is based on consensus verification and does not depend on trusted third parties, oracles, multi-signatures, or MPC. It implements the Inter-Blockchain Communication (IBC) protocol for compatibility with Cosmos chains and connects to EVM chains including Ethereum, Berachain (beacon-kit), Arbitrum, and others. Contract upgrades, connections, token configurations, and protocol evolution are intended to be controlled by decentralized governance. The repository is organized into several components: - uniond: the Union node implementation using CometBLS, written in Go. - galoisd: the zero-knowledge prover implementation, written in Go with Gnark. - voyager: a modular cross-ecosystem relayer, written in Rust. - cosmwasm: the CosmWasm smart contract stack, written in Rust. - light-clients: light clients for various ecosystems, written in Rust. - unionvisor: a node supervisor intended for production usage, written in Rust. - drip: a faucet for Cosmos chains, written in Rust. - evm: the EVM smart contract stack, written in Solidity. - app: the web app at app.union.build, using TypeScript and Svelte. - site: the website at union.build, using TypeScript and Astro. - TypeScript SDK: a TypeScript SDK for interacting with Union. The project uses Nix for reproducible builds and developer environments. Users can install Nix and run commands such as `nix build .#uniond -L`, `nix build .#voyager -L`, or `nix build .#app -L`; entering `nix develop` provides a shell with all dependencies including cargo, rustc, node, and go. A pre-commit formatting and spell-check command is available via `nix run .#pre-commit -L`. The README lists supported chains with mainnet and testnet identifiers, including Arbitrum, Babylon, Base, Berachain, Bob, BSC, Corn, Ethereum, Osmosis, Sei, Sui, Union, and Xion. The full list and details are available in the official docs at https://docs.union.build/ucs/04/.