I'm trying to make a version of
https://iancoleman.io/bip39/ in java for my own use (mostly to learn about HD wallets). I seem to have gotten it down, except for Electrum-generated addresses. Here's what I know about Electrum's differences:
1. Electrum uses a version system that only allows certain mnemonics
2. When generating the seed, Electrum concats the passphrase to "electrum" instead of "mnemonic" to generate the PBKDF2 HMAC
It took a few minutes, but I found a 3-word mnemonic that is both BIP39 and Electrum (standard) compatible: "friend deposit glove". If I go to New/Restore wallet and choose BIP39 (no passphrase), it generates the same as Ian Coleman and mine: 1BPEpJbnex8z19J9eDfbMakD7d5b9fa5KX (m/44'/0'/0'/0 index 0), etc. However, if I just use Electrum standard with no passphrase, it generates 1N3UPoVAkX7pQanefb8aAAZGLrMpxC1EYX. I'm not getting that with any of the following derivation paths: m/0, m/0', m/44'/0'/0'/0.
So, I have 2 questions:
1. What are the default derivation paths Electrum uses?
2. Are there any other internal differences for generating addresses like #2 above?
I'm trying to follow the source code, but it's a lot easier to write code than read it.