seed_generator.py
1 from bip_utils import ( 2 Bip39MnemonicGenerator, 3 Bip39SeedGenerator, 4 Bip44, 5 Bip44Coins, 6 Bip44Changes, 7 Bip32Slip10Ed25519 8 ) 9 10 11 def generate_for_chain(chain: str): 12 mnemonic = Bip39MnemonicGenerator().FromWordsNumber(24) 13 seed_bytes = Bip39SeedGenerator(mnemonic).Generate() 14 15 print(f"\n=== {chain.upper()} ===") 16 print("Mnemonic:", mnemonic) 17 print("Seed Hex:", seed_bytes.hex()) 18 19 if chain == "ethereum": 20 bip44 = Bip44.FromSeed(seed_bytes, Bip44Coins.ETHEREUM) 21 acct = bip44.Purpose().Coin().Account(0) 22 xpub = acct.PublicKey().ToExtended() 23 print("xpub:", xpub) 24 25 elif chain == "solana": 26 path = "m/44'/501'/0'/0'" 27 slip10 = Bip32Slip10Ed25519.FromSeed(seed_bytes) 28 derived = slip10.DerivePath(path) 29 30 pub_key = derived.PublicKey().RawCompressed().ToHex() 31 print("First Address (pubkey hex):", pub_key) 32 33 elif chain == "sui": 34 path = "m/44'/784'/0'/0'/0'" 35 slip10 = Bip32Slip10Ed25519.FromSeed(seed_bytes) 36 derived = slip10.DerivePath(path) 37 38 pub_key = derived.PublicKey().RawCompressed().ToHex() 39 print("First Address (pubkey hex):", pub_key) 40 41 42 generate_for_chain("ethereum") 43 generate_for_chain("solana") 44 generate_for_chain("sui") 45