Генерация адресов с помощью xpub

У меня есть холодное хранилище, куда я установил кошельки BTC-Electrum и LTC-Electrum. Поэтому я взял расширенные главные открытые ключи и генерирую адреса в своем онлайн-сервисе. Теперь я хочу сгенерировать адреса для Ethereum, но как я понял, ядро ​​​​Electrum не дает xpub. Поэтому мне нужно использовать любые кошельки, такие как MetaMask или MyEtherWallet. Но я не могу найти, как я могу взять xpub из этих кошельков. Может ли кто-нибудь помочь мне решить эту проблему? Спасибо!

Ответы (1)

Ключи Ethereum аналогичны биткойнским и являются частью иерархической детерминированной древовидной структуры (HD-кошельки). Они были введены в BIP 32, а затем улучшены в BIP 44. Дерево кошелька HD представлено путями вывода к первому узлу адреса. Например, по умолчанию для Ethereum это m/44'/60'/0'/0 или вкл. конечный /[address_index]

  • 44 — БИП 44 Назначение
  • 60 — тип монеты Ethereum
  • 0 — Учетная запись
  • 0 — Цепь
  • 0 — Адресный индекс

Подробнее здесь .

Вы не можете получить свой xpub напрямую из Metamask, MEW или любого другого онлайн-кошелька, о котором я знаю. Вы можете получить его с помощью такой библиотеки, как ethers.js или ethereumjs-wallet .

Пример

let HDNode = require('ethers').utils.HDNode;
let mnemonic = "radar blur cabbage chef fix engine embark joy scheme fiction master release";
let masterNode = HDNode.fromMnemonic(mnemonic);
let standardEthereum = masterNode.derivePath("m/44'/60'/0'/0/0");

// Get the extended private key
let xpriv = node.extendedKey;

// Get the extended public key
let xpub = node.neuter().extnededKey;

Рекомендации

когда у вас есть xpriv, что вам нужно, чтобы добраться до адреса ethereum? Не могли бы вы добавить это в свой фрагмент?