@it-tools/bip39
v0.0.4
Published
A simple and complete bip39 mnemonic (passphrase) and entropy generator in typescript.
Downloads
1,274
Maintainers
Readme
A simple and complete bip39 mnemonic (passphrase) and entropy generator in typescript.
This package is similar to bitcoinjs/bip39 but lighter, strongly typed and without the heavy dependency to Buffer
in order to be easily used in the browser.
Installation
Node JS
Install using yarn or npm.
npm install @it-tools/bip39
# or
yarn add @it-tools/bip39
And import :
// EMAScript import
import { entropyToMnemonic, mnemonicToEntropy } from '@it-tools/bip39';
// Or Common JS:
const { entropyToMnemonic, mnemonicToEntropy } = require('@it-tools/bip39');
const passphrase = entropyToMnemonic('063679ca1b28b5cfda9c186b367e271e');
console.log(passphrase);
// alert record income curve mercy tree heavy loan hen recycle mean devote
Usage
Create mnemonic (passphrase) from entropy
Default language is english
. The entropy must an hexadecimal string with a length >= 16 or <= 32 and that is a multiple or 4.
import { entropyToMnemonic } from '@it-tools/bip39';
const passphrase = entropyToMnemonic('063679ca1b28b5cfda9c186b367e271e');
console.log(passphrase);
// alert record income curve mercy tree heavy loan hen recycle mean devote
Get entropy from a mnemonic (passphrase)
Default language is english
.
import { mnemonicToEntropy } from '@it-tools/bip39';
const entropy = mnemonicToEntropy('alert record income curve mercy tree heavy loan hen recycle mean devote');
console.log(entropy);
// 063679ca1b28b5cfda9c186b367e271e
Generate an entropy
import { generateEntropy } from '@it-tools/bip39';
// Default is a 32 long entropy
const entropy = generateEntropy();
console.log(entropy);
// 063679ca1b28b5cfda9c186b367e271e
import { generateEntropy } from '@it-tools/bip39';
const entropy = generateEntropy(16);
console.log(entropy);
// b063679ca1b28b5c
Other languages
To use another language, just import the wordlist an use it in the function:
import { entropyToMnemonic, mnemonicToEntropy, frenchWordList } from '@it-tools/bip39';
const passphrase = entropyToMnemonic('063679ca1b28b5cfda9c186b367e271e', frenchWordList);
console.log(passphrase);
// adroit pastèque glace commande lanceur tarder forcer insigne fougère paternel label culminer
const entropy = entropyToMnemonic('adroit pastèque glace commande lanceur tarder forcer insigne fougère paternel label culminer', frenchWordList);
console.log(entropy);
// a063679ca1b28b5cfda9c186b367e271e
Available languages are:
- chineseSimplified:
import { chineseSimplifiedWordList } from '@it-tools/bip39';
- chineseTraditional:
import { chineseTraditionalWordList } from '@it-tools/bip39';
- czech:
import { czechWordList } from '@it-tools/bip39';
- english:
import { englishWordList } from '@it-tools/bip39';
- french:
import { frenchWordList } from '@it-tools/bip39';
- italian:
import { italianWordList } from '@it-tools/bip39';
- japanese:
import { japaneseWordList } from '@it-tools/bip39';
- korean:
import { koreanWordList } from '@it-tools/bip39';
- portuguese:
import { portugueseWordList } from '@it-tools/bip39';
- spanish:
import { spanishWordList } from '@it-tools/bip39';
You can event define your custom language:
import { entropyToMnemonic, IWordList } from '@it-tools/bip39';
const customWordList: IWordList = {
language: 'my-language',
spacer: ' ', // character used to split word in a sentence, mainly space
words: [
'word1',
'word2',
// ...
],
};
const passphrase = entropyToMnemonic('063679ca1b28b5cfda9c186b367e271e', customWordList);
Contribute
Pull requests are welcome ! Feel free to contribute.
Credits
Coded with ❤️ by Corentin Thomasset.
Inspired from bitcoinjs/bip39
License
This project is under the MIT license.