Address Derivation on Initia
Overview
On Initia, importing the same mnemonic into a Cosmos-based wallet (e.g., Keplr, Leap Wallet) and an Ethereum-based wallet (e.g., MetaMask, Rabby) results in different addresses.
Although both wallet types follow HD Wallet standards like BIP32 and BIP44, they use different derivation paths, specifically different coin_type values. This difference leads the wallets to derive distinct private keys and, consequently, different addresses, even when using the same mnemonic.
Example Case
Let’s consider an example where the same mnemonic is imported into MetaMask and Keplr.
Address Derivation Example
Mnemonic:
Import into MetaMask result in:
- Private Key:
a18d5fc426d6f4b72e44c8c0e3e1147508b4a193f901c5dc351c6ca1a5ab52ad
- Hex Address:
0xb658395C73c592695d8de3DF320a15CE1C8d8252
- Bech32(init) Address:
init1kevrjhrnckfxjhvdu00nyzs4ecwgmqjjufa7z5
Import into Keplr result in:
- Private Key:
f3decd45241fc1a2d4b80f1449140b6cf67faf302b6c0f67f021337470a9c193
- Hex Address:
0x8d9f8c5d0f68ebd45b2d7cf732e56073a4e009ca
- Bech32(init) Address:
init13k0cchg0dr4agked0nmn9etqwwjwqzw28u97dr
As you can see, the addresses differ and the chain will recognize them as a completely different addresses.
Key Reason: Derivation Paths
Derivation paths are the core reason why the same mnemonic yields different addresses in different wallets.
BIP44 defines a path structure like this:
44'
is the BIP44 purpose field.coin_type'
is a hardened index that identifies the blockchain.account'
,change
,address_index
specify account details, internal/external chains, and the specific address index.
Different wallets use different coin_type
values to derive addresses for different blockchains.
For example, Ethereum-based wallets use 60
as the coin_type
value, while Cosmos-based wallets use 118
.
How to Derive Addresses
EVM Wallet:
Cosmos Wallet:
or if you have a private key:
Was this page helpful?