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.