> ## Documentation Index
> Fetch the complete documentation index at: https://cosmos-docs-cosmjs-docs.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Key Differences

> How EVM-compatible Cosmos chains differ from standard Cosmos chains in CosmJS.

CosmJS supports EVM-compatible Cosmos chains such as those built with
[Cosmos EVM](https://github.com/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

| Aspect             | Standard Cosmos                   | Cosmos EVM                                  |
| ------------------ | --------------------------------- | ------------------------------------------- |
| HD path            | `m/44'/118'/0'/0/0`               | `m/44'/60'/0'/0/0`                          |
| Address derivation | `ripemd160(sha256(compressed))`   | `keccak256(uncompressed[1:]).slice(-20)`    |
| Sign doc hash      | SHA-256                           | Keccak-256                                  |
| Algo identifier    | `"secp256k1"`                     | `"eth_secp256k1"` or `"ethsecp256k1"`       |
| Amino pubkey type  | `tendermint/PubKeySecp256k1`      | `os/PubKeyEthSecp256k1`                     |
| Protobuf type URL  | `/cosmos.crypto.secp256k1.PubKey` | `/cosmos.evm.crypto.v1.ethsecp256k1.PubKey` |
| Wallet class       | `DirectSecp256k1HdWallet`         | `DirectEthSecp256k1HdWallet`                |
| Single-key wallet  | `DirectSecp256k1Wallet`           | `DirectEthSecp256k1Wallet`                  |
| Gas (send)         | \~100,000                         | \~120,000                                   |
| Denom decimals     | Typically 6                       | Typically 18                                |
| Amino signing      | Supported                         | Not supported (Direct signing only)         |

## Next Steps

<CardGroup cols={2}>
  <Card title="EVM Wallets" icon="arrow-right" href="/cosmjs/v0.38.x/concepts/cosmos-evm/wallets">
    Use DirectEthSecp256k1HdWallet for EVM chains.
  </Card>

  <Card title="Full Example" icon="arrow-right" href="/cosmjs/v0.38.x/concepts/cosmos-evm/full-example">
    See a complete EVM-compatible chain integration.
  </Card>
</CardGroup>
