Expand description


Crate Docs Build Status Apache 2.0 Licensed MSRV

Rust crate for interacting with Protobufs defined by the Cosmos SDK.

The goal of this crate is to provide complete proto struct definitions for interacting with a Cosmos SDK blockchain.

Currently, this crate only provides a subset of the many total structs exported by Cosmos SDK proto files.

Pull requests to expand coverage are welcome.


§Minimum Supported Rust Version

This crate is supported on Rust 1.56 or newer.

§Issues with the Cosmos Staking module prost file

Unfortunately (the upstream source for the CosmosSDK staking module proto definitions)[https://github.com/cosmos/cosmos-sdk/blob/v0.45.16/proto/cosmos/staking/v1beta1/authz.proto#L20-L30] causes a namespace conflict when using prost. Particularly there is a oneof named validators which becomes a Rust enum named Validators and a message named Validators which becomes a Rust struct named Validators, which causes a failure to compile.

Whenever this file is updated it has been manually fixed to rename the enum to ValidatorsEnum and the relative disuse of the StakingAuthorization types means that is OK for now. If you run proto_build and see the src/prost/cosmos.staking.v1beta1.rs file has changed in insignificant ways, it is fine to ignore that file.


  • bech32ibcbech32ibc
    Bech32ibc protobuf definitions
  • Cosmos protobuf definitions.
  • IBC protobuf definitions.
  • ICS23 protobuf definitions.
  • Tendermint proto definitions