This repository is the canonical metadata registry for the Initia blockchain ecosystem. It contains structured JSON files describing chains (Cosmos SDK L1 and L2 minitias), their asset lists with full provenance traces (IBC, OP-bridge, wrapped), profile metadata for ecosystem projects, and error codes for Move smart contracts. The data is validated against JSON Schema (chain.schema.json, assetlist.schema.json, profile.schema.json) via GitHub Actions, ensuring consistency and correctness. The registry also includes TypeScript packages that export aggregated data and auto-generated Zod schemas for runtime validation, as well as an API build system that transforms and deploys the data to a CDN. While the core is data, there are significant application components: npm packages, validation workflows, and utility scripts for syncing images and computing IBC denoms. The repository solves the problem of discovering chains, assets, and bridge routes within the Initia network, serving wallets, explorers, and frontends.
Union is a hyper-efficient zero-knowledge infrastructure layer for cross-chain interoperability, implementing IBC (Inter-Blockchain Communication) with light clients for Cosmos, Ethereum, Sui, StarkNet, Gno, and many other chains. The system comprises a Cosmos SDK blockchain (uniond), a zero-knowledge prover (galoisd) for Groth16 proofs, a modular relayer (voyager) with plugin-based architecture, CosmWasm smart contracts for IBC and asset transfers (UCS03), EVM Solidity contracts, and a TypeScript SDK for programmatic interaction. The frontend is a Svelte 5 application (app2) providing a transfer interface, explorer, dashboard, and staking UI, while documentation is served via an Astro site. The architecture is a multi-language monorepo with Rust as the dominant language for core libraries and relayer modules, Go for the Cosmos SDK chain and prover, TypeScript for SDKs and frontend, and Solidity/Move for smart contracts. Key design patterns include a trait-based light client interface (IbcClient), a plugin system for relayer modules (voyager_sdk), functional effect management in TypeScript (Effect-TS), and derive macros for encoding (model, ssz, ethabi). The codebase demonstrates high craftsmanship in its type-safe encoding primitives, storage abstractions (depolama), and persistent queue (pg-queue), though it suffers from some code duplication across SDK versions and generated protobuf drift risks.