Generate Descriptors from Recovery Phrases
BDK wallets require the use of descriptors, but recovery phrases (also called seed phrases) are a common and popular backup solution. Creating descriptors from a recovery phrase is a common workflow and BDK makes this easy with its descriptor templates, which are offered for common descriptors (BIP 44/49/84/86).
Feature Flags
The current example requires the feature keys-bip39
for bdk_wallet
. Add it to your Cargo.toml
file with:
| bdk_wallet = { version = "2.2.0", features = ["keys-bip39"] }
|
Example
| let recovery_phrase: &str = "awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome awesome";
let mnemonic = Mnemonic::parse(recovery_phrase).expect("Invalid seed! Be sure to replace the value of RECOVERY_PHRASE with your own 12 word seed phrase.");
let seed = mnemonic.to_seed("");
let xprv: Xpriv = Xpriv::new_master(Network::Signet, &seed).expect("Failed to create master key");
println!("# Master Private Key\n{xprv}\nWarning: be very careful with seeds and private keys when using MainNet! We are logging these values for convenience and demonstration purposes only.\n");
let (descriptor, key_map, _) = Bip86(xprv, KeychainKind::External)
.build(Network::Signet)
.expect("Failed to build external descriptor");
let (change_descriptor, change_key_map, _) = Bip86(xprv, KeychainKind::Internal)
.build(Network::Signet)
.expect("Failed to build internal descriptor");
|