mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-11-22 15:38:11 +00:00
.. | ||
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.