I'm doing some research about crypto wallets and their methods to restore crypto addresses from seeds. I'm actually interested in Solana and I figured out that Phantom wallet and Exodus wallets restores public keys differently. Phantom uses BIP44 to restore keys and it's pretty common, so I could write some Python code that helps me with that.
from bip_utils import (Bip39SeedGenerator, Bip44, Bip44Changes, Bip44Coins)
mnemonic = "my mnemonic"
seed_bytes = Bip39SeedGenerator(mnemonic).Generate("")
bip44_mst_ctx = Bip44.FromSeed(seed_bytes, Bip44Coins.SOLANA)
bip44_acc_ctx = bip44_mst_ctx.Purpose().Coin().Account(0)
bip44_chg_ctx = bip44_acc_ctx.Change(Bip44Changes.CHAIN_EXT)
address = bip44_chg_ctx.PublicKey().ToAddress()
print(address)
But it completely different from address that my Exodus has. I find out that Exodus is not BIP44 wallet, so key derivation is a bit different. I've tried some methods to get a wonder result, but nothing helps me. Does anyone know how to restore a public/private key from mnemonic phrase in Exodus. I would be glad to hear at least the directions in which I need to look. If you can attach some Python code it would be wonderful.