https://github.com/protonmail/bip39
JavaScript implementation of Bitcoin BIP39
https://github.com/protonmail/bip39
Last synced: about 1 year ago
JSON representation
JavaScript implementation of Bitcoin BIP39
- Host: GitHub
- URL: https://github.com/protonmail/bip39
- Owner: ProtonMail
- Created: 2021-08-02T10:14:41.000Z (almost 5 years ago)
- Default Branch: main
- Last Pushed: 2022-02-02T11:51:00.000Z (over 4 years ago)
- Last Synced: 2024-10-16T00:32:51.722Z (over 1 year ago)
- Language: TypeScript
- Homepage:
- Size: 896 KB
- Stars: 8
- Watchers: 14
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# BIP39
JavaScript implementation of [Bitcoin BIP39](https://github.com/bitcoin/bips/blob/master/bip-0039.mediawiki).
## Installation
Add the following to dependencies in `package.json`
```json
"bip39": "github:ProtonMail/bip39#semver:PACKAGE_VERSION",
```
## Example Usage
```ts
import { entropyToMnemonic, mnemonicToEntropy, validateMnemonic } from 'bip39';
const entropy = new Uint8Array(16); // Use a CSPRNG to generate the random bytes
// => Uint8Array(16) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … ]
const mnemonic = await entropyToMnemonic(entropy);
// => abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about
const recoveredEntropy = await mnemonicToEntropy(mnemonic);
// => Uint8Array(16) [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, … ]
const isValid = await validateMnemonic(mnemonic);
// => true
```
## API
### `entropyToMnemonic`
Takes `Uint8Array` entropy and outputs a mnemonic based on the wordlist.
### `mnemonicToEntropy`
Takes a mnemonic and outputs the `Uint8Array` entropy.
### `validateMnemonic`
Validates a given mnemonic. Returns `true` if valid and `false` if invalid.
### wordlist
Each function can take a wordlist - a string array of length 2048. If a wordlist is not specified, it will default to [English](https://github.com/ProtonMail/bip39/blob/main/src/wordlists/english.json).