Learn about the encoding formats used on Evmos.
# Pre-requisite Readings
# Encoding Formats
# Protocol Buffers
The Cosmos Stargate (opens new window) release introduces protobuf (opens new window) as the main encoding format for both client and state serialization. All the EVM module types that are used for state and clients (transaction messages, genesis, query services, etc) will be implemented as protocol buffer messages.
The Cosmos SDK also supports the legacy Amino encoding format for backwards compatibility with previous versions, specially for client encoding and signing with Ledger devices. Evmos does not support Amino in the EVM module, but it is supported for all other Cosmos SDK modules that enable it.
Recursive Length Prefix (RLP (opens new window)), is an encoding/decoding algorithm that serializes a message and allows for quick reconstruction of encoded data. Evmos uses RLP to encode/decode Ethereum messages for JSON-RPC handling to conform messages to the proper Ethereum format. This allows messages to be encoded and decoded in the exact format as Ethereum's.
x/evm transactions (
MsgEthereumTx) encoding is performed by casting the message to a go-ethereum's
Transaction and then marshaling the transaction data using RLP:
Learn how pending state is handled on Evmos.