/ scripts / seed_generator.py
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