Package Exports
- @scintilla-network/mnemonic
Readme
@scintilla-network/mnemonic
A TypeScript/JavaScript library for generating and managing BIP39 mnemonics, with comprehensive multi-language support.
Features
- BIP39 mnemonic generation and validation
- Extensive language support:
- English (default)
- Japanese (日本語)
- Spanish (Español)
- French (Français)
- Italian (Italiano)
- Korean (한국어)
- Czech (Čeština)
- Portuguese (Português)
- Chinese (Simplified & Traditional)
- Seed generation from mnemonic phrases
- Master key derivation
- Password protection support
- Built on Noble Hashes for cryptographic operations
Installation
npm install @scintilla-network/mnemonicUsage
Basic Mnemonic Generation
import Mnemonic from '@scintilla-network/mnemonic';
import { setDefaultWordlist, wordlists } from '@scintilla-network/mnemonic/BIP39';
// Generate a new mnemonic (24 words by default, English)
const mnemonic = new Mnemonic();
console.log(mnemonic.phrase);
// Generate with custom entropy (128 bits = 12 words)
const shortMnemonic = new Mnemonic(Mnemonic.generateMnemonic(128));
console.log(shortMnemonic.phrase);Multi-Language Support
// Change default language
setDefaultWordlist('japanese');
const japaneseMnemonic = new Mnemonic();
console.log(japaneseMnemonic.phrase); // Japanese words
// Generate mnemonic in specific language
setDefaultWordlist('spanish');
const spanishMnemonic = new Mnemonic();
console.log(spanishMnemonic.phrase); // Spanish words
// Available languages
console.log(Object.keys(wordlists));
// ['EN', 'JA', 'ES', 'FR', 'IT', 'KO', 'CS', 'PT', 'ZH_CN', 'ZH_TW']Using Existing Mnemonic
const phrase = 'shrimp various silver merge kidney kitten winter pluck smooth kidney enemy bulb script plug private margin leader repair enact clever duck woman luxury muscle';
const mnemonic = new Mnemonic(phrase);Generating Seeds
const mnemonic = new Mnemonic();
// Generate seed without password
const seed = mnemonic.toSeed();
// Generate seed with password protection
const protectedSeed = mnemonic.toSeed('mypassword');Deriving Master Keys
const mnemonic = new Mnemonic();
// Generate master key without password
const masterKey = mnemonic.toMasterDerivableKey();
// Generate master key with password protection
const protectedMasterKey = mnemonic.toMasterDerivableKey('mypassword');
// Derive child keys (using BIP44 path)
const childKey = masterKey.derive("m/44'/8888'/0'/0/0");
// Generate address
const address = childKey.toAddress('sct');API Reference
Mnemonic
Constructor
new Mnemonic(mnemonic?: string): Creates a new Mnemonic instancemnemonic: Optional existing mnemonic phrase. If not provided, generates a new one
Static Methods
generateMnemonic(bytes?: number): Generates a new mnemonicbytes: Entropy bytes (128-256, must be multiple of 32). Default: 256
Instance Methods
toSeed(password?: string): Generates a seed from the mnemonicpassword: Optional password for additional security
toMasterDerivableKey(password?: string): Generates a master derivable keypassword: Optional password for additional security
BIP39 Utilities
Language Support
setDefaultWordlist(language: string): Set the default wordlist languagegetDefaultWordlist(): Get the current default wordlist languagevalidateMnemonic(mnemonic: string, wordlist?: string[]): Validate a mnemonic phrase
Security
- Seeds are generated using PBKDF2 with 2048 iterations
- Cryptographic operations use the Noble Hashes library
- Optional password protection for seeds and master keys
- Implements BIP39 specification for mnemonic generation and validation
- Supports standard wordlists for multiple languages
License
MIT
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.