rustywallet_mnemonic/lib.rs
1//! # rustywallet-mnemonic
2//!
3//! BIP39 mnemonic (seed phrase) generation and management for cryptocurrency wallets.
4//!
5//! This crate provides functionality to:
6//! - Generate random mnemonic phrases (12, 15, 18, 21, or 24 words)
7//! - Validate mnemonic phrases (checksum and wordlist)
8//! - Derive seeds from mnemonics with optional passphrase
9//! - Derive private keys from seeds
10//!
11//! ## Example
12//!
13//! ```
14//! use rustywallet_mnemonic::prelude::*;
15//!
16//! // Generate a new 12-word mnemonic
17//! let mnemonic = Mnemonic::generate(WordCount::Words12);
18//! println!("Generated mnemonic: {}", mnemonic.to_phrase());
19//!
20//! // Parse an existing mnemonic
21//! let phrase = "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon about";
22//! let mnemonic = Mnemonic::from_phrase(phrase).unwrap();
23//!
24//! // Derive seed with passphrase
25//! let seed = mnemonic.to_seed("my-passphrase");
26//! println!("Seed: {}", seed.to_hex());
27//!
28//! // Derive private key
29//! let private_key = mnemonic.to_private_key("my-passphrase").unwrap();
30//! ```
31//!
32//! ## BIP39 Specification
33//!
34//! | Word Count | Entropy Bits | Checksum Bits |
35//! |------------|--------------|---------------|
36//! | 12 | 128 | 4 |
37//! | 15 | 160 | 5 |
38//! | 18 | 192 | 6 |
39//! | 21 | 224 | 7 |
40//! | 24 | 256 | 8 |
41//!
42//! ## Security
43//!
44//! - Entropy and seed bytes are zeroized on drop
45//! - Debug output is masked to prevent accidental exposure
46//! - Uses cryptographically secure random number generation
47
48pub mod error;
49pub mod mnemonic;
50pub mod prelude;
51pub mod seed;
52pub mod wordlist;
53
54pub use error::MnemonicError;
55pub use mnemonic::{Mnemonic, WordCount};
56pub use seed::Seed;
57pub use wordlist::Language;