project screenshot 1
project screenshot 2
project screenshot 3

A Sovereign's Duty

Cosmos x/duty: enshrined Hyperlane validator set for instant interchain ops

A Sovereign's Duty

Created At

ETHGlobal New York 2025

Winner of

Hyperlane

Hyperlane - Best Infrastructure

Project Description

This project turns a Cosmos chain’s consensus validators into the canonical validator set for Hyperlane. The x/duty module lets each Tendermint/CometBFT validator publish its Hyperlane checkpoint signer (ECDSA) and a checkpoint signature storage URI on-chain, then exposes a DutySet (validators + voting power + quorum fraction) that updates automatically as staking changes. Hyperlane agents/ISMs can query the chain to fetch the current DutySet and verify checkpoints against the same validators that secure the chain. Governance can tune the quorum via params, and operators reuse their existing validator ops to participate in Hyperlane.

How it's Made

I used the Cursor IDE, the Ignite CLI, Cosmos SDK and HyperLane. Here is an AI Summary of the pieces and their integration: How it’s made • Cosmos SDK (Go) module with staking hooks that mirror validator set changes, Params for quorum (num/den), Msg to set duty metadata (checkpoint pubkey + storage URI), and gRPC queries to fetch the DutySet • Dependency Injection (SDK v0.50+): ProvideModule returns keeper + AppModule; an invoker wires staking hooks via depinject/runtime • Protobufs via buf for Msg/Query services; AutoCLI enabled so q duty and tx duty are generated from proto definitions • Deterministic key binding: each validator proves ownership of its Hyperlane checkpoint key by signing a domain-separated binding message (ECDSA); the module verifies and stores the signer→validator mapping • Hyperlane validator (Docker or binary) configured with that checkpoint key and a storage backend; agents/ISMs read signatures from the declared URI and validate against on-chain pubkeys and quorum • Tests: keeper/unit tests for params, key binding, and DutySet queries; a simple sim run to exercise bond/unbond hooks and ensure DutySet tracks staking events

background image mobile

Join the mailing list

Get the latest news and updates