npm install electrum-mnemonic
- Generate a mnemonic (English only for now)
const mn = require('electrum-mnemonic')
console.log(mn.generateMnemonic()) // default segwit bech32 wallet
console.log(mn.generateMnemonic({ prefix: mn.PREFIXES.segwit })) // explicit segwit bech32 wallet
console.log(mn.generateMnemonic({ prefix: mn.PREFIXES.standard })) // legacy p2pkh wallet (base58 address starting with 1)
console.log(mn.generateMnemonic({ prefix: mn.PREFIXES['2fa'] })) // 2fa legacy
console.log(mn.generateMnemonic({ prefix: mn.PREFIXES['2fa-segwit'] })) // legacy p2pkh wallet (base58 address starting with 1)
- Validate mnemonic phrase (default prefix: segwit)
const mn = require('electrum-mnemonic')
const segwitPhrase = mn.generateMnemonic();
const standardPhrase = mn.generateMnemonic({ prefix: mn.PREFIXES.standard });
console.log(mn.validateMnemonic(segwitPhrase, mn.PREFIXES.segwit)); // true
console.log(mn.validateMnemonic(standardPhrase, mn.PREFIXES.standard)); // true
- Convert mnemonic into 64 byte seed (for bip32)
const mn = require('electrum-mnemonic')
const phrase = mn.generateMnemonic()
const seed = mn.mnemonicToSeedSync(phrase, { passphrase: 'extrapassword' })
console.log(seed)
// async
;(async () => {
const seed2 = await mn.mnemonicToSeed(phrase)
// no extra password so seed and seed2 should be different
console.log(seed2)
})()
- mnemonicToSeed prefix must match the prefix used to generate (default: segwit)
const mn = require('electrum-mnemonic')
const phrase = mn.generateMnemonic({ prefix: mn.PREFIXES.standard })
const seed = mn.mnemonicToSeedSync(phrase, { prefix: mn.PREFIXES.standard })
console.log(seed)
const segwitPhrase = mn.generateMnemonic()
const segwitSeed = mn.mnemonicToSeedSync(phrase)
console.log(segwitSeed)
- Skip valid version prefix check
const mn = require('electrum-mnemonic')
const seed = mn.mnemonicToSeedSync('abc', { skipCheck: true })
console.log(seed)
- Custom prefixes for checking
const mn = require('electrum-mnemonic')
const phrase = mn.generateMnemonic({ prefix: 'fed' })
const seed = mn.mnemonicToSeedSync(phrase, { prefix: 'fed' })
console.log(seed)