BIP39
JavaScript implementation of Bitcoin BIP39.
Installation
Add the following to dependencies in package.json
"bip39": "github:ProtonMail/bip39#semver:PACKAGE_VERSION",
Example Usage
import { entropyToMnemonic, mnemonicToEntropy, validateMnemonic } from 'bip39';
const entropy = new Uint8Array(16); // Use a CSPRNG to generate the random bytes
// => Uint8Array(16) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … ]
const mnemonic = await entropyToMnemonic(entropy);
// => abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
const recoveredEntropy = await mnemonicToEntropy(mnemonic);
// => Uint8Array(16) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … ]
const isValid = await validateMnemonic(mnemonic);
// => true
API
entropyToMnemonic
Takes Uint8Array
entropy and outputs a mnemonic based on the wordlist.
mnemonicToEntropy
Takes a mnemonic and outputs the Uint8Array
entropy.
validateMnemonic
Validates a given mnemonic. Returns true
if valid and false
if invalid.
wordlist
Each function can take a wordlist - a string array of length 2048. If a wordlist is not specified, it will default to English.