23 releases
0.1.23 | Oct 4, 2022 |
---|---|
0.1.22 | Oct 4, 2022 |
0.1.21 | Sep 29, 2022 |
#155 in #wallet
83 downloads per month
Used in create-bitcoin-transactio…
100KB
3.5K
SLoC
☠️⚠️ Work In Progress ⚠️☠️
Bitcoin HD Keys
Key generation for Hierarchical-Deterministic (HD) Wallets
Install
Add package to Cargo.toml file
[dependencies]
bitcoin-hd-keys= "0.1.23"
Usage:
use bitcoin_hd_keys::{
generate_bip32_hd_wallet_from_mnemonic_words, generate_bip44_hd_wallet_from_mnemonic_words,
generate_bip49_hd_wallet_from_mnemonic_words, generate_bip84_hd_wallet_from_mnemonic_words,
get_128_bits_of_entropy, get_mnemonic_words, AddressType, Network,
};
// Generate entropy
let entropy_array = get_128_bits_of_entropy();
// Get mnemonic words from entropy
let mnemonic_words = get_mnemonic_words(entropy_array.to_vec());
// Generate HD Wallet Keys (bip32) from mnemonic words
let bip32_hd_wallet = generate_bip32_hd_wallet_from_mnemonic_words(
mnemonic_words.clone(),
None,
"m/0'/0'".to_string(),
5,
true,
Network::Testnet,
);
println!("{:#?}", bip32_hd_wallet);
bip32_hd_wallet.pretty_print_derived_addressed(Network::Testnet, AddressType::P2PKH);
// Generate Multi-Account Hierarchy HD Keys (bip44) from mnemonic words.
let bip44_hd_wallet = generate_bip44_hd_wallet_from_mnemonic_words(
mnemonic_words.clone(),
None,
0,
5,
true,
Network::Testnet,
);
println!("{:#?}", bip44_hd_wallet);
bip44_hd_wallet.pretty_print_derived_addressed(Network::Testnet, AddressType::P2PKH);
// Generate Derivation scheme for P2WPKH-nested-in-P2SH based accounts HD Keys (bip49) from mnemonic words.
let bip49_hd_wallet = generate_bip49_hd_wallet_from_mnemonic_words(
mnemonic_words.clone(),
None,
0,
5,
true,
Network::Testnet,
);
println!("{:#?}", bip49_hd_wallet);
bip49_hd_wallet.pretty_print_derived_addressed(Network::Testnet, AddressType::P2SH);
// Generate HD Keys using Deterministic Entropy From BIP32 Keychains (bip85) from mnemonic words.
let bip84_hd_wallet = generate_bip84_hd_wallet_from_mnemonic_words(
mnemonic_words.clone(),
None,
0,
5,
true,
Network::Testnet,
);
println!("{:#?}", bip84_hd_wallet);
bip84_hd_wallet.pretty_print_derived_addressed(Network::Testnet, AddressType::Bech32);
Related
- bitcoin-node-query - Query Bitcoin Node for information
- bitcoind-request - Type-safe wrapper around bitcoind RPC commands
- bitcoin-terminal-dashboard - Bitcoin Dashboard in the terminal
Learn about HD Wallets
To learn more about HD Wallets and explore the resource material that was used to create this packacge, see Resources.md
License
MIT © Joe Gesualdo
Dependencies
~15MB
~329K SLoC