# KeyPhrase
![Key](./key.jpg "Key")
KeyPhrase generator for the [EARTH Network](https://www.earth.engineering). KeyPhrases are human readable backup phrases which contain most of the information needed to recreate your EARTH addresses.
For more info check out the [KeyPhrase Specification](https://github.com/EarthEngineering/keyphrase/wiki/KeyPhrase-Specification)
```rust
println!("English:");
let keyphrase = KeyPhrase::new(KeyPhraseType::Words12, Language::English);
let phrase: &str = keyphrase.phrase();
println!("KeyPhrase: {}", phrase);
// get the HD wallet seed
let seed = Seed::new(&keyphrase, "");
println!("Root Seed: {:X}", seed);
println!("----------");
// English:
// KeyPhrase: habit treat fringe blouse jump tomato hello become more planet list rhythm
// Root Seed: 1CD312DB19E0644921616B0E44B4051F2FB5D19567D4866B7AF6C7676746F94FE0E49355397BBF53659882FB928C4DF3AABD32327E88AD732770CE21ECC20
// ----------
println!("Korean:");
let keyphrase = KeyPhrase::new(KeyPhraseType::Words12, Language::Korean);
let phrase: &str = keyphrase.phrase();
println!("KeyPhrase: {}", phrase);
println!("----------");
// Korean:
// KeyPhrase: 안부 모니터 장애인 대출 지원 본격적 서적 다행 관점 부족 유치원 갈비
// ----------
println!("Italian:");
let keyphrase = KeyPhrase::new(KeyPhraseType::Words12, Language::Italian);
let phrase: &str = keyphrase.phrase();
println!("KeyPhrase: {}", phrase);
println!("----------");
// Italian:
// KeyPhrase: meno elevare diploma tralcio montato servire gittata certo garbo ombelico sfumare sguardo
// ----------
println!("Chinese Traditional:");
let keyphrase = KeyPhrase::new(KeyPhraseType::Words24, Language::ChineseTraditional);
let phrase: &str = keyphrase.phrase();
println!("KeyPhrase: {}", phrase);
println!("----------");
// Chinese Traditional:
// KeyPhrase: 廟 牙 錢 療 健 董 疆 胸 冊 弱 幾 凍 改 喬 叔 冷 山 慘 溝 呵 長 趨 鋪 跳
```
## Word Lengths
Variable length KeyPhrases are supported from 12 to 24 words and 128 bits to 256 bits respectively. Defaults is 12 words/128 bits.
- 12 (128 bits)
- 15 (160 bits)
- 18 (192 bits)
- 21 (224 bits)
- 24 (256 bits)
## Languages
KeyPhrase supports 8 languages and defaults to English.
- [English](./src/langs/english.txt)
- [Spanish](./src/langs/spanish.txt)
- [Italian](./src/langs/italian.txt)
- [French](./src/langs/french.txt)
- [Korean](./src/langs/korean.txt)
- [Japanese](./src/langs/japanese.txt)
- [Chinese Simplified](./src/langs/chinese_simplified.txt)
- [Chinese Traditional](./src/langs/chinese_traditional.txt)
## Documentation
Full docs are available via
```
cargo doc --no-deps --open
```
## Acknowledgments
This project was originally forked from [bip39-rs](https://github.com/infincia/bip39-rs). Thanks to that team for an amazing project! 🎩