JSPM

  • Created
  • Published
  • Downloads 15
  • Score
    100M100P100Q95635F
  • License MIT

Mnemonic for Scintilla

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/mnemonic

Usage

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 instance
    • mnemonic: Optional existing mnemonic phrase. If not provided, generates a new one

Static Methods

  • generateMnemonic(bytes?: number): Generates a new mnemonic
    • bytes: Entropy bytes (128-256, must be multiple of 32). Default: 256

Instance Methods

  • toSeed(password?: string): Generates a seed from the mnemonic

    • password: Optional password for additional security
  • toMasterDerivableKey(password?: string): Generates a master derivable key

    • password: Optional password for additional security

BIP39 Utilities

Language Support

  • setDefaultWordlist(language: string): Set the default wordlist language
  • getDefaultWordlist(): Get the current default wordlist language
  • validateMnemonic(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.