@xdbfoundation/digitalbits-hd-wallet
Version:
Key derivation for the DigitalBits blockchain
73 lines (50 loc) • 2.7 kB
Markdown
for the DigitalBits blockchain 🚀
**Update to v1.1.0 or higher**: Versions of this package prior to v1.1.0 are broken! It is very likely that if you attempt to use a pre-1.1.0 release of this package in your projects, they will NOT run! Please be sure to update to v1.1.0 or higher for a working release.
```bash
yarn add @xdbfoundation/digitalbits-hd-wallet
```
```js
import DigitalBitsHDWallet from "@xdbfoundation/digitalbits-hd-wallet";
const mnemonic = DigitalBitsHDWallet.generateMnemonic();
const wallet = DigitalBitsHDWallet.fromMnemonic(mnemonic);
wallet.getPublicKey(0); // => GDKYMXOAJ5MK4EVIHHNWRGAAOUZMNZYAETMHFCD6JCVBPZ77TUAZFPKT
wallet.getSecret(0); // => SCVVKNLBHOWBNJYHD3CNROOA2P3K35I5GNTYUHLLMUHMHWQYNEI7LVED
wallet.getKeypair(0); // => DigitalBitsBase.Keypair for account 0
wallet.derive(`m/44'/148'/0'`); // => raw key for account 0 as a Buffer
// wallet instance from seeds
const seedHex =
"794fc27373add3ac7676358e868a787bcbf1edfac83edcecdb34d7f1068c645dbadba563f3f3a4287d273ac4f052d2fc650ba953e7af1a016d7b91f4d273378f";
const seedBuffer = Buffer.from(seedHex);
DigitalBitsHDWallet.fromSeed(seedHex);
DigitalBitsHDWallet.fromSeed(seedBuffer);
// mnemonics with different lengths
DigitalBitsHDWallet.generateMnemonic(); // 24 words
DigitalBitsHDWallet.generateMnemonic({ entropyBits: 224 }); // 21 words
DigitalBitsHDWallet.generateMnemonic({ entropyBits: 160 }); // 18 words
DigitalBitsHDWallet.generateMnemonic({ entropyBits: 128 }); // 12 words
// validate a mnemonic
DigitalBitsHDWallet.validateMnemonic("too short and non wordlist words"); // false
```
Mnemonics can be generated in any language supported by the underlying [bip39 npm module](https://github.com/bitcoinjs/bip39).
The full list of language keys are under exports 'wordlists' [here](https://github.com/bitcoinjs/bip39/blob/master/index.js).
```js
import DigitalBitsHDWallet from "@xdbfoundation/digitalbits-hd-wallet";
// traditional chinese - 24 words
DigitalBitsHDWallet.generateMnemonic({
language: "chinese_traditional",
});
// => '省 从 唯 芽 激 顿 埋 愤 碳 它 炸 如 青 领 涨 骤 度 牲 朱 师 即 姓 讲 蒋'
// french - 12 words
DigitalBitsHDWallet.generateMnemonic({ language: "french", entropyBits: 128 });
// => 'directif terrible légume dérober science vision venimeux exulter abrasif vague mutuel innocent'
```
- NodeJs: crypto.randomBytes
- Browser: window.crypto.getRandomValues
(using [randombytes npm module](https://github.com/crypto-browserify/randombytes))
> 🔐 Key derivation