You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
trezor-firmware/docs/coins
Tomas Susanka f8f1a62563
docs: coin paths modifications
6 years ago
..
README.md docs: coin paths modifications 6 years ago
bitcoin-path-check.svg

README.md

BIP-44 derivation paths

Each coin uses BIP-44 derivation path scheme. If the coin does not support normal derivation (because the underlying curve does not support it for example) we're using Stellar's SEP-0005. In a nutshell, these paths are derived using SLIP-0010 and have only three-part BIP-44 path 44'/c'/a'.

List of used derivation paths

coin curve getPublicKey getAddress sign derivation note
Bitcoin secp256k 44'/0'/a' 44'/0'/a'/y/i 44'/0'/a'/y/i BIP-32 4
Ethereum secp256k 44'/60'/a' 44'/60'/a'/0/i 44'/60'/a'/0/i BIP-32
Ripple secp256k - 44'/144'/a'/0/i 44'/144'/a'/0/i BIP-32
Stellar ed25519 - 44'/148'/a' 44'/148'/a' SLIP-0010
Cardano ed25519 44'/1815'/a' 44'/1815'/a'/0/i 44'/1815'/a'/0/i Cardano's own1
Lisk ed25519 44'/134'/a' 44'/134'/a' 44'/134'/a' SLIP-0010
NEM ed25519 - 44'/43'/a' 44'/43'/a' SLIP-0010 2
Monero ed25519 44'/128'/a'3 44'/128'/a' 44'/128'/a' SLIP-0010

Paths that do not conform to this table are allowed, but user needs to confirm a warning on Trezor. For getPublicKey we do not check if the path is followed by other non-hardened items (anyone can derive those anyway). This is beneficial for Ethereum and its MEW compatibility, which sends 44'/60'/a'/0 for getPublicKey.

Notes

  1. Which allows normal derivation on ed25519.

  2. NEM's path should be 44'/60'/a' as per SEP-0005, but we allow 44'/60'/a'/0'/0' as well for compatibility reasons with NanoWallet.

  3. Actually it is GetWatchKey for Monero.

  4. It is a bit more complicated for Bitcoin-like coins. The following diagram shows how path should be validated for Bitcoin-like coins:

bitcoin-path-check