BDK

A modern, lightweight, descriptor-based wallet library written in Rust!
Project Homepage | Documentation
bdk
The bdk
crate provides the Wallet
type which provides a high level interface to most of the low level mechanisms included in bdk
.
Wallet
is the appropriate starting point for many simple applications as well as a good demonstration of how to use the other mechanisms to construct a wallet.
It's simple. It has an external and internal keychain which both defined by two miniscript descriptors and uses them to generate addresses.
When you give it chain data it also uses the descriptors to find transaction outputs owned by them.
From there you can create transactions to spend the funds and even sign them
For more information see Wallet
's documentation.
Chain data
In order to get the chain data for Wallet
to consume you have to put it into particular form.
Right now this the KeychainScan
which defined in bdk_chain
.
This can be created manually or from some of the chain data libraries provided in the bdk
repo like bdk_esplora
and bdk_electrum
.
See [example-crates
] for examples on how to do this.
TODO: make a short no_run
example here
Testing
Unit testing
cargo test
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.