You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The goal of this work is to enable IBC-based token transfers between the Gno.land chain and EVM-family chains (Ethereum, Base, etc.).
A direct connection is impractical due to differences in consensus mechanisms, so routing through the Union chain as a relay infrastructure is judged to be the most feasible path.
Packet payloads are encoded/decoded on both sides per the UCS03-ZKGM standard.
The light client only guarantees packet authenticity; payload semantics are handled by the ZKGM handler.
2. Options
There are three candidate paths for Gno.land ↔ EVM token transfer. All of them ultimately involve Union at one of the endpoints, so "can we eliminate the Union dependency?" is not a meaningful evaluation axis.
The actual evaluation axes are (1) UX, (2) engineering effort to mainnet, and (3) operational risk.
Already works in production. Almost no new stdlib, light client, or contract work required.
Uses only the standard Cosmos IBC v1.
Reuses already-shipped Cosmos IBC primitives end-to-end (IBC v2 between Gno and AtomOne, IBC v1 between AtomOne and Osmosis). No CometBLS verifier, no ZKGM contract on the Gno side.
Cons
Two-signature UX (Gno→AtomOne, then AtomOne→EVM side). A 1-click flow is impossible.
Osmosis is in maintenance-only mode. After the failed Cosmos Hub merger, support for new integrations and routes is being phased down → operational risk grows over time.
The EVM endpoint is still handled by Union, so this is a double dependency on Osmosis + Union.
It also diverges from the original "AtomOne as the IBC hub" vision (because Osmosis sits in the middle).
Still needs an IBC v2 stack on the Gno side (light client + ICS26 router) and an AtomOne ibc-go v10 upgrade — so it is not zero-effort.
Option B — IBC Eureka (IBC v2 directly to EVM)
Route: Gno → (IBC v2 / Eureka) → EVM
Pros
Follows the standard IBC v2, so there is no dependency on a specific operator like Union.
Cons
An SP1 (ZK prover) infrastructure is a hard prerequisite. Gno would have to operate SP1, and the cost is excessive.
Option C — Direct Union Bridge (selected)
Route: Gno ↔ Union ↔ EVM (Ethereum, Base, …)
Pros
One-hop UX (single signature). Denom tracking, failure surface, and latency all stay simple.
The Union mainnet (union-1) already runs CometBLS + Galois ZK Verifier + UCS03-ZKGM. We only need to add the integrations on both endpoints.
Once Gno gains a CometBLS Light Client + ZKGM contract, multiple EVM chains that Union is already connected to become reachable in one shot (no per-chain light client required).
A significant portion is already in flight: Alex has drafted a CometBLS Groth16 verifier in gnolang/gno#5583 in two variants — native-heavy and gno-heavy.
The Light Client can be derived from the existing gno.land/p/aib/ibc/lightclient/tendermint → assessed as trivial.
Cons
Requires net-new implementation on Gno: CometBLS pairing / Groth16 verifier (as a native precompile or in gno), the Light Client, and the UCS03-ZKGM contract. Non-trivial effort.
Introduces a dependency on Union infrastructure (union-1 availability, Voyager relayer, UCS03 spec churn risk). That said, Option A also routes through Union at the endpoint, so the SPOF itself cannot be avoided.
Decision: Option C
A is structurally weak due to Osmosis maintenance mode + the two-signature UX, and it diverges from the "AtomOne hub" vision.
1. Background
The goal of this work is to enable IBC-based token transfers between the Gno.land chain and EVM-family chains (Ethereum, Base, etc.).
A direct connection is impractical due to differences in consensus mechanisms, so routing through the Union chain as a relay infrastructure is judged to be the most feasible path.
Packet payloads are encoded/decoded on both sides per the UCS03-ZKGM standard.
The light client only guarantees packet authenticity; payload semantics are handled by the ZKGM handler.
2. Options
There are three candidate paths for Gno.land ↔ EVM token transfer. All of them ultimately involve Union at one of the endpoints, so "can we eliminate the Union dependency?" is not a meaningful evaluation axis.
The actual evaluation axes are (1) UX, (2) engineering effort to mainnet, and (3) operational risk.
Option A — Current path: AtomOne ↔ Osmosis ↔ EVM
Uses only the standard Cosmos IBC v1.Option B — IBC Eureka (IBC v2 directly to EVM)
Option C — Direct Union Bridge (selected)
union-1) already runs CometBLS + Galois ZK Verifier + UCS03-ZKGM. We only need to add the integrations on both endpoints.gnolang/gno#5583in two variants — native-heavy and gno-heavy.gno.land/p/aib/ibc/lightclient/tendermint→ assessed as trivial.union-1availability, Voyager relayer, UCS03 spec churn risk). That said, Option A also routes through Union at the endpoint, so the SPOF itself cannot be avoided.Decision: Option C
via PR feat: Implement CometBLS Groth 16 verifier in both gno-heavy or native-heavy versions #5583. The Union SPOF is accepted as a known trade-off.
3. Progress / Plan
union-1v1.2.2 in operation → https://docs.union.build/infrastructure/mainnet/4. Open Decisions
TBD
5. Dependencies & Risks
TBD