Skip to main content
CosmJS supports EVM-compatible Cosmos chains such as those built with Cosmos EVM (formerly Ethermint/Evmos). This section covers how EVM chains differ from standard Cosmos chains and how to use CosmJS with them.

Background

Standard Cosmos chains use secp256k1 keys, derive addresses as RIPEMD-160(SHA-256(compressedPubkey)), and hash the sign doc with SHA-256 before producing an ECDSA signature. EVM-compatible Cosmos chains use the same elliptic curve (secp256k1) but follow Ethereum conventions: addresses come from the last 20 bytes of Keccak-256(uncompressedPubkey[1:]), and the sign doc is hashed with Keccak-256 instead of SHA-256. This means:
  • The same mnemonic produces different addresses on Cosmos vs EVM chains
  • Transactions must be hashed with Keccak-256 before signing
  • Public keys use a different type URL in protobuf encoding
  • The default HD derivation path uses coin type 60 (Ethereum) instead of 118 (Cosmos)

Comparison

Next Steps

EVM Wallets

Use DirectEthSecp256k1HdWallet for EVM chains.

Full Example

See a complete EVM-compatible chain integration.