Comments (3)
The seed is just random bytes. This library is a way to create / store entropy in the form of mnemonic words so that it can later be converted into a seed.
If you don't want to use a mnemonic, just use the entropy directly as the seed.
If you are creating a seed for use with BIP32 HD keys, there is a restriction on length.
Generate a seed byte sequence S of a chosen length (between 128 and 512 bits; 256 bits is advised) from a (P)RNG.
So in terms of bytes, 16 - 64 bytes, 32 bytes recommended.
BIP39, on the other hand, requires the entropy be 128 ~ 256 bits (16-32 bytes), and hashes the mnemonic into a 64 byte hash value for use in the BIP32 seed.
This code is verbose, but the short answer is "just use the entropy directly in bip32" with the caveat that "you can only use between 16 and 64 bytes for bip32 seed, so be careful".
const bip39 = require('bip39')
const bip32 = require('bip32')
const crypto = require('crypto')
const MAX_BITS_BIP39 = 256 // 32 bytes
const MAX_BITS_BIP32 = 512 // 64 bytes
// generate x bits of entropy (rounded up to nearest byte)
const genEntropy = x => crypto.randomBytes(Math.ceil(x / 8))
// generate seed using BIP39, returns a 64 byte Buffer
const genSeedBIP39 = () =>
bip39.mnemonicToSeedSync(
// generates a 24 word mnemonic string
bip39.entropyToMnemonic(
genEntropy(MAX_BITS_BIP39)
)
)
// generate seed without using BIP39, returns a 64 byte Buffer
const genSeedNoBIP39 = () => genEntropy(MAX_BITS_BIP32)
// bip32 library accepts both
console.log(bip32.fromSeed(genSeedBIP39()).toBase58())
console.log(bip32.fromSeed(genSeedNoBIP39()).toBase58())
from bip39.
I think it's not possible, as I've checked nativePBKDF2Sync
which is used in mnemonicToSeedSync()
and it's using mnemonic/password words directly for hashing.
from bip39.
good work!
from bip39.
Related Issues (20)
- Duplicated word
- bip39 seems to be undefined in 3.+ versions HOT 1
- Why doesn't the address console HOT 1
- Recovery using only the first four letters of each word HOT 1
- Upgrade deps HOT 1
- Runtime errors HOT 1
- Not work with rollup? HOT 1
- DevTools failed to load source map: Could not load content for file:///.../github/iancoleman/bip39/bootstrap.css.map: System error: net::ERR_FILE_NOT_FOUND HOT 1
- v3.0.4 is not working, v3.0.3 is fine HOT 2
- Invalid argument(s): Invalid mnemonic HOT 3
- ESM module support HOT 6
- Use more lightweight sha256 implementation HOT 6
- the testing is wrong!! HOT 1
- Electron + angular : how to unit test? HOT 3
- Serbian bip39 list HOT 1
- Error while using bip39.generateMnemonic(128) in react native HOT 3
- using bip39.generateMnemonic() is secure? HOT 1
- does it create a unused wallet everytime? HOT 1
- Bip39.ValidateMnemonic() always returns false in react HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from bip39.