JavaScript implementation of Bitcoin BIP39.
Add the following to dependencies in package.json
"bip39": "github:ProtonMail/bip39#semver:PACKAGE_VERSION",
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
Takes Uint8Array
entropy and outputs a mnemonic based on the wordlist.
Takes a mnemonic and outputs the Uint8Array
entropy.
Validates a given mnemonic. Returns true
if valid and false
if invalid.
Each function can take a wordlist - a string array of length 2048. If a wordlist is not specified, it will default to English.