Excelente saber que hay otro Pythonista por ahí. Tip, se puede reemplazar getrandomkey por la seed bip35 al menos para la máster, cosa que la master se pueda guardar en 12 palabras:
from hdwallet import BIP44HDWallet
from hdwallet.cryptocurrencies import BitcoinMainnet as Cryptocurrency
from hdwallet.utils import generate_mnemonic, is_mnemonic
STRENGTH: int = 128
MNEMONIC: str ="Your 12 Mnemonics words"
PASSPHRASE: str = "Your passphrase"
LANGUAGE: str = "english"
def generate_passwordForMaster(length:int =52,MNEMONIC: str):
assert is_mnemonic(mnemonic=MNEMONIC, language=LANGUAGE)
bip44_hdwallet: BIP44HDWallet = BIP44HDWallet(
cryptocurrency=Cryptocurrency, account=0, change=False, address=0)
return 'P5' + ''.join( bip44_hdwallet.private_key()[3:length+1])
master_key=generate_passwordForMaster(52,MNEMONIC)
El resto más o menos igual, cifrando las demás claves con la máster.
Si también puedes usar ecdsa, base58 y hashlib para construir una con estructura más criptográfica
Que tan seguro seria usar esto ?