Skip to main content
CosmJS EVM support is spread across three packages. Below are the relevant exports and the known limitations when working with EVM-compatible Cosmos chains.

@cosmjs/amino

@cosmjs/proto-signing

@cosmjs/crypto

Limitations

  • No Amino signing for EVM chains. There is no Secp256k1HdWallet equivalent for EVM keys. Use Direct signing (DirectEthSecp256k1HdWallet) exclusively.
  • No 0x-prefixed addresses. CosmJS produces Bech32 addresses for all chains, including EVM ones. If you need the hex Ethereum address, extract the raw 20-byte address and hex-encode it yourself.
  • No EVM JSON-RPC. CosmJS communicates over Tendermint/CometBFT RPC, not Ethereum’s JSON-RPC. For eth_sendTransaction or similar calls, use an Ethereum library like ethers.js or viem alongside CosmJS.
  • No serialization/deserialization for EVM wallets. Unlike DirectSecp256k1HdWallet, the EVM wallet classes do not support serialize() and deserialize() methods for encrypted storage.