New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

web-bip39

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

web-bip39

7kb JavaScript implementation of Bitcoin BIP39

latest
Source
npmnpm
Version
0.0.3
Version published
Weekly downloads
152
-3.18%
Maintainers
1
Weekly downloads
 
Created
Source

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);

// Converts entropy to mnemonic
await entropyToMnemonic(entropy);
// => '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

Keywords

bitcoin

FAQs

Package last updated on 07 Aug 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts