pub struct Mnemonic { /* private fields */ }Expand description
The primary type in this crate, most tasks require creating or using one.
To create a new Mnemonic from a randomly generated key, call Mnemonic::new().
To get a Mnemonic instance for an existing mnemonic phrase, including
those generated by other software or hardware wallets, use Mnemonic::from_phrase().
You can get the HD wallet Seed from a Mnemonic by calling Seed::new().
From there you can either get the raw byte value with Seed::as_bytes(), or the hex
representation using Rust formatting: format!("{:X}", seed).
You can also get the original entropy value back from a Mnemonic with Mnemonic::entropy(),
but beware that the entropy value is not the same thing as an HD wallet seed, and should
never be used that way.
Mnemonic implements [Zeroize][Zeroize], so it’s bytes will be zeroed when it’s dropped.
Implementations§
Source§impl Mnemonic
impl Mnemonic
Sourcepub fn new(mtype: MnemonicType, lang: Language) -> Mnemonic
pub fn new(mtype: MnemonicType, lang: Language) -> Mnemonic
Generates a new Mnemonic
Use Mnemonic::phrase() to get an str slice of the generated phrase.
§Example
use bip39::{Mnemonic, MnemonicType, Language};
let mnemonic = Mnemonic::new(MnemonicType::Words12, Language::English);
let phrase = mnemonic.phrase();
println!("phrase: {}", phrase);
assert_eq!(phrase.split(' ').count(), 12);Sourcepub fn from_entropy(
entropy: &[u8],
lang: Language,
) -> Result<Mnemonic, ErrorKind>
pub fn from_entropy( entropy: &[u8], lang: Language, ) -> Result<Mnemonic, ErrorKind>
Create a Mnemonic from pre-generated entropy
§Example
use bip39::{Mnemonic, MnemonicType, Language};
let entropy = &[0x33, 0xE4, 0x6B, 0xB1, 0x3A, 0x74, 0x6E, 0xA4, 0x1C, 0xDD, 0xE4, 0x5C, 0x90, 0x84, 0x6A, 0x79];
let mnemonic = Mnemonic::from_entropy(entropy, Language::English).unwrap();
assert_eq!("crop cash unable insane eight faith inflict route frame loud box vibrant", mnemonic.phrase());
assert_eq!("33E46BB13A746EA41CDDE45C90846A79", format!("{:X}", mnemonic));Sourcepub fn from_phrase(phrase: &str, lang: Language) -> Result<Mnemonic, ErrorKind>
pub fn from_phrase(phrase: &str, lang: Language) -> Result<Mnemonic, ErrorKind>
Create a Mnemonic from an existing mnemonic phrase
The phrase supplied will be checked for word length and validated according to the checksum specified in BIP0039
§Example
use bip39::{Mnemonic, Language};
let phrase = "park remain person kitchen mule spell knee armed position rail grid ankle";
let mnemonic = Mnemonic::from_phrase(phrase, Language::English).unwrap();
assert_eq!(phrase, mnemonic.phrase());Sourcepub fn validate(phrase: &str, lang: Language) -> Result<(), ErrorKind>
pub fn validate(phrase: &str, lang: Language) -> Result<(), ErrorKind>
Validate a mnemonic phrase
The phrase supplied will be checked for word length and validated according to the checksum specified in BIP0039.
§Example
use bip39::{Mnemonic, Language};
let test_mnemonic = "park remain person kitchen mule spell knee armed position rail grid ankle";
assert!(Mnemonic::validate(test_mnemonic, Language::English).is_ok());Sourcepub fn into_phrase(self) -> String
pub fn into_phrase(self) -> String
Consume the Mnemonic and return the phrase as a String.
Sourcepub fn entropy(&self) -> &[u8] ⓘ
pub fn entropy(&self) -> &[u8] ⓘ
Get the original entropy value of the mnemonic phrase as a slice.
§Example
use bip39::{Mnemonic, Language};
let phrase = "park remain person kitchen mule spell knee armed position rail grid ankle";
let mnemonic = Mnemonic::from_phrase(phrase, Language::English).unwrap();
let entropy: &[u8] = mnemonic.entropy();Note: You shouldn’t use the generated entropy as secrets, for that generate a new
Seed from the Mnemonic.