Skip to content

Accounts and Derivation Paths

Accounts Checked by Default

By default, seedrecover.py will check the first account of each address type using common derivation paths for BIP39 wallets. (BIP39 will default to Bitcoin if no coin is specified) You can select to have seedrecover check for altcoins if selected via the gui or specified via --wallet-type in the command line.

To use the 2nd account, etc, you typically increment the last digit of the derivation path from /0 to /1.

The currencies and derivation paths supported by default (These files can all be found in the /derivationpath-lists/ folder of the repository)

Bitcoin

BIP39 (BTC.txt)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/0'/0'/0 #Bitcoin BIP44 (Legacy, generally addresses starting with 1)
m/49'/0'/0'/0 #Bitcoin BIP49 (Segwit, generally addresses starting with 3)
m/84'/0'/0'/0 #Bitcoin BIP84 (Native Segwit, generally addresses starting with bc1)
m/0'/0 #BRD Wallet (and other older BTC wallets)

Electrum (Electrum.txt)

1
2
3
4
5
6
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
m/0 #Electrum Legacy Wallets (BTC + Alts)
m/0'/0 #Electrum Segwit Wallets ( BTC + Alts)

Bitcoin Cash

BCH.txt

1
2
3
4
5
6
7
8
9
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/0'/0'/0 #Bitcoin BIP44 (Pre-Fork)
m/44'/145'/0'/0 #BCH BIP44 (Post-Fork)

Cardano

Cardano handles this a bit differently as there are major differences between how different vendors implement Cardano account derivation. As such, you will notice that derivation paths for Cardano have an additional prefix for the derivation type. By default, BTCRecover will check all three "Shelly" derivation types and this can have a major performance impact. As such, if you know which wallet the seed came from, you should disable the other unnecessary derivation paths.

ADA.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
icarus:1852'/1815'/0' #Shelley Era Wallets (Adalite, Yoroi, Deadalus, Atomic, Trezor T (When using a seed length less than 24 words)
ledger:1852'/1815'/0' #Shelley Era Wallets (Adalite, Yoroi) when used with a Ledger Nano
trezor:1852'/1815'/0' #Shelley Era Wallets (Adalite, Yoroi) when used with a Trezor T (Only needed if 24 word seed used, if 12 word seed used then Icarus derivation works fine)
#byron:1852'/1815'/0' #Byron Era Yoroi Wallets (Currently unsupported)

Dash

Dash.txt

1
2
3
4
5
6
7
8
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/5'/0'/0 #Default BIP44 P2PKH

DigiByte

DGB.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/20'/0'/0 #BIP44 (Legacy)
m/49'/20'/0'/0 #BIP49 (Segwit)
m/84'/20'/0'/0 #BIP84 (Native Segwit)

Ethereum

ETH.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/60'/0' #Ethereum Coinomi & Ledger Legacy
m/44'/60'/0'/0 #Ethereum MEW, Trezor, etc (Binance Smart Chain uses this path too...)

# Other Eth clones that can be used with the Eth wallet type
#m/44'/61'/0'/0 #ETC
#m/44'/60'/160720'/0' #ETC Coinomi & Ledger Legacy
#m/44'/137'/0'/0 #RSK
#m/44'/178'/0'/0 #POA 
#m/44'/242'/0'/0 #NIM (Nimiq)
#m/44'/425'/0'/0 #AION
#m/44'/500'/0'/0 #THETA
#m/44'/714'/0'/0 #Smart Chain Legacy
#m/44'/818'/0'/0 #VET
#m/44'/820'/0'/0 #CLO
#m/44'/889'/0'/0 #TOMO
#m/44'/1001'/0'/0 #TT
#m/44'/5718350'/0'/0 #WAN
#m/44'/6060'/0'/0 #GO

Groestlcoin

GRS.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/17'/0'/0 #BIP44 (Legacy)
m/49'/17'/0'/0 #BIP49 (Segwit)
m/84'/17'/0'/0 #BIP84 (Native Segwit)

Litecoin

LTC.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/2'/0'/0 #Litecoin BIP44 (Legacy, generally addresses starting with L)
m/49'/2'/0'/0 #Litecoin BIP49 (Segwit, generally addresses starting with M)
m/84'/2'/0'/0 #Litecoin BIP84 (Native Segwit, generally addresses starting with ltc1)
m/44'/60'/0'/0 #Atomic wallet... (WTF... Avoid this wallet...)

Monacoin

MONA.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/22'/0'/0 #BIP44 (Legacy)
m/49'/22'/0'/0 #BIP49 (Segwit)
m/84'/22'/0'/0 #BIP84 (Native Segwit)

Ripple

XRP.txt

1
2
3
4
5
6
7
8
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/144'/0'/0 #BIP44 (Legacy)

Vertcoin

VTC.txt

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/28'/0'/0 #BIP44 (Legacy)
m/49'/28'/0'/0 #BIP49 (Segwit)
m/84'/28'/0'/0 #BIP84 (Native Segwit)

Zilliqa

ZIL.txt

1
2
3
4
5
6
7
8
# Lines starting with # are ignored
# To Enable a derivation path, remove the # from the start of the line...
# To Disable a derivation path, add # at the start of the line... (This will improve performance)
#
# To check the second (or third) account for a given wallet type, you can generally increment the last number
# Eg: Ledger Eth - Second Account would be m/44'/60'/1'
#
m/44'/313'/0'/0 #Non-Hardened derivation, used in Zillet, Atomic Wallet (Not Ledger Nano)

Custom Derivation Paths

You can also edit the files in the common-derivation-pathslists folder to either add, or remove derivation paths that will be searched, as removing those that aren't required will speed things up a bit...

You can also use the --bip32-path argument to specify a derivation path (or paths) via the commandline.

Altcoins, forks,clones or custom derivation paths

You can also try to specifiy a custom derivation path for altcoins/forks which share the same address format as any supported coins. (Though this doesn't necessarily mean the coin uses the same derivation function.)

Adding Unsupported Coins

If you want the tool to support a crypto that isn't listed above, please test that it works and submit a PR which includes a unit test for that coin and also any required code to accept the address format.

If you are trying to do a recovery for a coin that isn't listed above, feel free to contact me as it may be possible for you to sponsor the addition of that crypto as part of an assisted recovery fee.