https://github.com/bitcoinjs/electrum-mnemonic
Electrum Mnemonics (electrum v2 and greater)
https://github.com/bitcoinjs/electrum-mnemonic
Last synced: 4 months ago
JSON representation
Electrum Mnemonics (electrum v2 and greater)
- Host: GitHub
- URL: https://github.com/bitcoinjs/electrum-mnemonic
- Owner: bitcoinjs
- License: mit
- Created: 2020-04-16T04:16:28.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-05-04T03:45:26.000Z (about 6 years ago)
- Last Synced: 2025-10-18T13:46:07.494Z (9 months ago)
- Language: TypeScript
- Size: 96.7 KB
- Stars: 16
- Watchers: 1
- Forks: 7
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Electrum Mnemonics (electrum v2 and greater)
[](https://travis-ci.org/bitcoinjs/electrum-mnemonic)
[](https://www.npmjs.org/package/electrum-mnemonic)
[](https://github.com/prettier/prettier)
## Install
```bash
npm install electrum-mnemonic
```
## Usage
* Generate a mnemonic (English only for now)
```js
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)
```js
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)
```js
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)
```js
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
```js
const mn = require('electrum-mnemonic')
const seed = mn.mnemonicToSeedSync('abc', { skipCheck: true })
console.log(seed)
```
* Custom prefixes for checking
```js
const mn = require('electrum-mnemonic')
const phrase = mn.generateMnemonic({ prefix: 'fed' })
const seed = mn.mnemonicToSeedSync(phrase, { prefix: 'fed' })
console.log(seed)
```