Electrum Mnemonics (electrum v2 and greater)
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 )