Skip to content

hujiulong/web-bip39

Repository files navigation

Web BIP39

JavaScript implementation of Bitcoin BIP39: Mnemonic code for generating deterministic keys

Compared with most JavaScript implementations of BIP39, web-bip39:

  • No external dependencies
  • Only 8kb (lib<2kb> + wordlist<~6kb>) after gzip

web-bip39 depends on Web Crypto and other browser environment APIs, so it can only run in the browser environment.

Playground

Playground

What is BIP39?

BIP39 describes the implementation of a mnemonic code or mnemonic sentence -- a group of easy to remember words -- for the generation of deterministic wallets.

For more info see the BIP39 spec.

Installation

npm install web-bip39

Usage

import {
  generateMnemonic,
  mnemonicToEntropy,
  entropyToMnemonic,
  validateMnemonic,
  mnemonicToSeed
} from 'web-bip39';
import wordlist from 'web-bip39/wordlists/english';

// Generate a random mnemonic
const mnemonic = await generateMnemonic(wordlist);
// => 'crash lottery basket zero leg rice crunch force volcano toilet nasty baby'

// Uses KDF to derive 64 bytes of key data from mnemonic + optional password.
const seed = await mnemonicToSeed(mnemonic, 'password');
// => 'd5346e622570b6a82a182f694dd39c0108cad8e0c87936add0cb1a495b738a1896154100b0f479b3f03c236681076b1ef140ff303c95ddd3286b586f395b2d42'

// Converts mnemonic to entropy
const entropy = await mnemonicToEntropy(mnemonic, wordlist);

// Converts entropy to mnemonic
await entropyToMnemonic(entropy, wordlist);
// => 'crash lottery basket zero leg rice crunch force volcano toilet nasty baby'

// Validates mnemonic
const valid = await validateMnemonic(mnemonic, wordlist);
// => true

All wordlists:

import wordlist from 'web-bip39/wordlists/chinese-simplified';
import wordlist from 'web-bip39/wordlists/chinese-traditional';
import wordlist from 'web-bip39/wordlists/czech';
import wordlist from 'web-bip39/wordlists/english';
import wordlist from 'web-bip39/wordlists/french';
import wordlist from 'web-bip39/wordlists/italian';
import wordlist from 'web-bip39/wordlists/japanese';
import wordlist from 'web-bip39/wordlists/korean';
import wordlist from 'web-bip39/wordlists/portuguese';
import wordlist from 'web-bip39/wordlists/spanish';

Credits

The implementation of this module is inspired by the following projects:

License

MIT

Copyright (c) 2022-present, Jiulong Hu

About

8kb JavaScript implementation of Bitcoin BIP39

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 3

  •  
  •  
  •  
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy