Skip to main content
A Cosmos transaction is a Protobuf-encoded envelope containing three parts:
Each message inside TxBody.messages is wrapped in a google.protobuf.Any — a two-field wrapper that pairs a type URL string with raw Protobuf bytes. This is how the chain knows which message handler to route to.

Message Type URLs

Every Cosmos SDK message has a unique identifier called a type URL. It follows the Protobuf Any convention: a leading / followed by the fully qualified Protobuf type name.
Type URLs serve as the bridge between your JavaScript code and the on-chain message router. When a validator receives a transaction, it reads the type URL from each Any-wrapped message to determine which module should handle it.

Common Type URLs