Bitcoinj permet de générer des adresses de portefeuille HD en Java

Un utilisateur de bitcoinj cherche à générer, à partir d’un portefeuille HD, l’adresse, la clé privée et la clé publique pour n’importe quelle cryptomonnaie prise en charge. Dans son exemple, il dit déjà parvenir à le faire pour Ethereum, mais ne sait pas reproduire la même méthode pour bitcoin ou pour d’autres coins.

Bitcoinj permet de générer des adresses de portefeuille HD en Java

Un exemple qui fonctionne pour Ethereum

Pour Ethereum, l’utilisateur indique avoir vérifié son approche avec la phrase mnémonique « elevator dinosaur switch you armor vote black syrup fork onion nurse illegal trim rocket combine ». Il crée ensuite un DeterministicSeed avec bitcoinj, puis une DeterministicKeyChain à partir de ce seed.

Son code utilise ensuite un chemin HD précis, M/44H/0H/0H/0/0, via HDPath.parsePath. À partir de ce chemin, il récupère une clé déterministe avec chain.getKeyByPath(keyPath, true), puis extrait la clé privée avec key.getPrivKey().

Dans son exemple, il affiche enfin trois valeurs : la clé privée en hexadécimal, la clé publique en hexadécimal, puis l’adresse obtenue avec Keys.getAddress(Sign.publicKeyFromPrivate(privKey)). Les sorties sont affichées avec un préfixe 0x.

La même logique pour bitcoin et les autres coins ?

L’auteur de la question explique qu’il ne sait pas comment appliquer cette méthode à bitcoin ou à une autre cryptomonnaie. Il demande s’il existe une autre façon d’obtenir la clé publique, la clé privée et l’adresse, tout en précisant qu’il utilise les bibliothèques bitcoinj et web3j.

La question porte donc sur la manière de récupérer, dans un portefeuille HD, les informations de clé et d’adresse selon le type d’actif supporté. Le code fourni montre déjà une extraction réussie pour Ethereum, mais l’utilisateur cherche la procédure équivalente pour les autres réseaux pris en charge.