unionlabs/union
The trust-minimized, zero-knowledge bridging protocol, designed for censorship resistance, extremely high security, and usage in decentralized finance.
Build with Backblaze B2
SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.
Loading star history...
Use Cases & Benefits
- Implements a trust-minimized, zero-knowledge bridging protocol for secure, censorship-resistant message passing and asset transfers across blockchains.
- Eliminates reliance on trusted third parties, oracles, multi-signatures, or MPC, ensuring extremely high security and decentralized governance.
- Use for enabling interoperability and asset transfers between Cosmos and EVM-compatible chains like Ethereum and Arbitrum.
- Use for building decentralized finance applications requiring secure, censorship-resistant cross-chain communication and token bridging.
- Use for deploying and managing upgradable smart contracts and relayers with decentralized governance across multiple blockchain ecosystems.
About union
Union is the hyper-efficient zero-knowledge infrastructure layer for general message passing, asset transfers, NFTs, and DeFi. Its based on Consensus Verification and has no dependencies on trusted third parties, oracles, multi-signatures or MPC. It implements IBC for compatibility with Cosmos chains and connects to EVM chains like Ethereum, Berachain (beacon-kit), Arbitrum, and more.
The upgradability of contracts on other chains, connections, token configurations, and evolution of the protocol will all be controlled by decentralized governance, aligning the priorities of Union with its users, validators, and operators.
Components
| Component | Description | Language(s) |
|---|---|---|
uniond | The Union node implementation, using CometBLS | Go |
galoisd | The zero-knowledge prover implementation | Go Gnark |
voyager | Modular hyper-performant cross-ecosystem relayer | Rust |
hubble | Multi-ecosystem, GMP-enabled chain indexer | Rust |
cosmwasm | CosmWasm smart contract stack | Rust |
light-clients | Light Clients for various ecosystems | Rust |
unionvisor | Node supervisor intended for production usage | Rust |
drip | Faucet for Cosmos chains: app.union.build/faucet | Rust |
evm | EVM smart contract stack | Solidity |
app | app.union.build | TypeScript Svelte |
site | union.build | TypeScript Astro |
TypeScript SDK | TypeScript SDK for interacting with Union | TypeScript |
Quickstart
Install Nix to reproducibly build any component, and to enter a dev shell with all dependencies:
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
(Note that some components can only be built on Linux. If you are using macOS, we recommend using OrbStack to easily set up a NixOS VM within two minutes. Most Union developers use macOS with OrbStack, and there is no need to install Nix inside of the NixOS VM.)
You can now reproducibly build any of Union's components from source:
nix build .#uniond -L
nix build .#voyager -L
nix build .#app -L
# to see all packages, run:
nix flake show
The result of whatever you build will be in result/
You can now also enter our dev shell, which has all of the dependencies (cargo, rustc, node, go, etc.) you need to work on any component:
(Don't worry, this will not affect your system outside of this repo)
nix develop
Run the following to format the entire repo and check your spelling before each PR:
nix run .#pre-commit -L
Check the #developers channel on Union's discord if you need any help with this.
Docs
The official docs are hosted here. Each individual component also has accompanying developer documentation for contributors, which you can find in each README.md.
Discover Repositories
Search across tracked repositories by name or description