1.0.0 • Published 5 years ago

@owstack/ethereum-bip44 v1.0.0

Weekly downloads
1
License
MPL-2.0
Repository
github
Last release
5 years ago

Ethereum-Bip44

Library to generate Ethereum addresses from a hierarchical deterministic wallet according to the BIP44 standard.

Internally it uses OWStack key-lib for the deterministic private and public keys which allows to use many additional features like deriving Ethereum address from mnemonic backups (BIP32).

Getting Started

npm install @owstack/ethereum-bip44

Create a new wallet:

var keyLib = require('@owstack/key-lib');
var EthereumBip44 = require('ethereum-bip44');
// create a new master private key
var key = keyLib.HDPrivateKey();
// create the hd wallet
var wallet = new EthereumBip44(key);
// output the first address
console.log(wallet.getAddress(0));
// output the second address
console.log(wallet.getAddress(1));

Initialize from an existing private seed:

var keyLib = require('@owstack/key-lib');
var EthereumBip44 = require('ethereum-bip44');
// create the hd wallet
var wallet = EthereumBip44.fromPrivateSeed('xprv9s21ZrQH143K4BX2reUURqR54XkNhbNkFhEiRQqFkzu5z7T1dp9eMGozFTgKVu5Bs6R8Wd8BuhcJ3rj3LvzJvkc9uBc5xdhstRfJgcTLsjk');
// output the first address
console.log(wallet.getAddress(0));
// output the second address
console.log(wallet.getAddress(1));

Initialize it from a public seed, for example on hot wallets that don't hold private keys:

var keyLib = require('@owstack/key-lib');
var EthereumBip44 = require('ethereum-bip44');
var key = new keyLib.HDPrivateKey();
var derivedPubKey = key.derive("m/44'/60'/0'/0").hdPublicKey;
// create the hd wallet
var wallet = EthereumBip44.fromPublicSeed(derivedPubKey.toString());
// output the first address
console.log(wallet.getAddress(0));
// output the second address
console.log(wallet.getAddress(1));

Note: You need to use a derived public key like shown here, otherwise it won't allow to derive hardened keys.

License

MPL-2.0