#[non_exhaustive]pub enum DerivationStyle {
Standard,
LedgerLive,
LedgerLegacy,
}Expand description
Ethereum derivation path styles for different wallet software.
Different hardware and software wallets use different derivation paths even though they all follow BIP-44 principles. This enum provides the most common styles for maximum compatibility.
§Path Specifications (as of 2024)
- MetaMask/Trezor: Standard BIP-44
m/44'/60'/0'/0/{index} - Ledger Live: Account-based
m/44'/60'/{index}'/0/0 - Ledger Legacy: MEW/MyCrypto compatible
m/44'/60'/0'/{index}
§Example
use kobe_eth::DerivationStyle;
let style = DerivationStyle::LedgerLive;
assert_eq!(style.path(0), "m/44'/60'/0'/0/0");
assert_eq!(style.path(1), "m/44'/60'/1'/0/0");Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Standard
Standard BIP-44 path used by MetaMask and Trezor.
Path format: m/44'/60'/0'/0/{index}
This is the most widely adopted standard where:
- Purpose: 44’ (BIP-44)
- Coin type: 60’ (Ethereum)
- Account: 0’ (fixed)
- Change: 0 (external)
- Address index: variable
LedgerLive
Ledger Live derivation path.
Path format: m/44'/60'/{index}'/0/0
Ledger Live treats each index as a separate account:
- Purpose: 44’ (BIP-44)
- Coin type: 60’ (Ethereum)
- Account: variable (hardened)
- Change: 0 (external)
- Address index: 0 (fixed)
LedgerLegacy
Ledger Legacy derivation path (MEW/MyCrypto compatible).
Path format: m/44'/60'/0'/{index}
Used by older Ledger Chrome app and compatible with MEW/MyCrypto:
- Purpose: 44’ (BIP-44)
- Coin type: 60’ (Ethereum)
- Account: 0’ (fixed)
- Address index: variable (at 4th level, non-hardened)
Implementations§
Trait Implementations§
Source§impl Clone for DerivationStyle
impl Clone for DerivationStyle
Source§fn clone(&self) -> DerivationStyle
fn clone(&self) -> DerivationStyle
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for DerivationStyle
impl Debug for DerivationStyle
Source§impl Default for DerivationStyle
impl Default for DerivationStyle
Source§fn default() -> DerivationStyle
fn default() -> DerivationStyle
Returns the “default value” for a type. Read more
Source§impl Display for DerivationStyle
impl Display for DerivationStyle
Source§impl FromStr for DerivationStyle
impl FromStr for DerivationStyle
Source§impl Hash for DerivationStyle
impl Hash for DerivationStyle
Source§impl PartialEq for DerivationStyle
impl PartialEq for DerivationStyle
impl Copy for DerivationStyle
impl Eq for DerivationStyle
impl StructuralPartialEq for DerivationStyle
Auto Trait Implementations§
impl Freeze for DerivationStyle
impl RefUnwindSafe for DerivationStyle
impl Send for DerivationStyle
impl Sync for DerivationStyle
impl Unpin for DerivationStyle
impl UnwindSafe for DerivationStyle
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more