5 releases (breaking)
| 0.6.0 | Sep 30, 2021 |
|---|---|
| 0.5.0 | Aug 9, 2021 |
| 0.4.0 | Mar 17, 2021 |
| 0.3.0 | Feb 17, 2021 |
| 0.2.0 | Dec 21, 2020 |
#18 in #bdk
9,044 downloads per month
Used in 43 crates
(6 directly)
6KB
103 lines
The Bitcoin Dev Kit
BDK
A modern, lightweight, descriptor-based wallet library written in Rust!
Project Homepage | Documentation
About
The bdk libraries aims to provide well engineered and reviewed components for Bitcoin based applications.
It is built upon the excellent rust-bitcoin and rust-miniscript crates.
Architecture
The project is split up into several crates in the /crates directory:
wallet: Contains the central high levelWallettype that is built from the low-level mechanisms provided by the other componentschain: Tools for storing and indexing chain datafile_store: Persistence backend for storing chain data in a single file. Intended for testing and development purposes, not for production.esplora: Extends theesplora-clientcrate with methods to fetch chain data from an esplora HTTP server in the form thatbdk_chainandWalletcan consume.electrum: Extends theelectrum-clientcrate with methods to fetch chain data from an electrum server in the form thatbdk_chainandWalletcan consume.
Fully working examples of how to use these components are in /example-crates:
example_cli: Library used by theexample_*crates. Provides utilities for syncing, showing the balance, generating addresses and creating transactions without using the bdk_walletWallet.example_electrum: A command line Bitcoin wallet application built on top ofexample_cliand theelectrumcrate. It shows the power of the bdk tools (chain+file_store+electrum), without depending on the mainbdk_walletlibrary.example_esplora: A command line Bitcoin wallet application built on top ofexample_cliand theesploracrate. It shows the power of the bdk tools (chain+file_store+esplora), without depending on the mainbdk_walletlibrary.example_bitcoind_rpc_polling: A command line Bitcoin wallet application built on top ofexample_cliand thebitcoind_rpccrate. It shows the power of the bdk tools (chain+file_store+bitcoind_rpc), without depending on the mainbdk_walletlibrary.example_wallet_esplora_blocking: Uses theWalletto sync and spend using the Esplora blocking interface.example_wallet_esplora_async: Uses theWalletto sync and spend using the Esplora asynchronous interface.example_wallet_electrum: Uses theWalletto sync and spend using Electrum.
Minimum Supported Rust Version (MSRV)
The BDK library maintains a MSRV of 1.63.0. This includes the following crates:
bdk_corebdk_chainbdk_bitcoind_rpc.bdk_esplora.bdk_wallet.
The MSRV of bdk_electrum is 1.75.0.
To build with the MSRV of 1.63.0 you will need to pin dependencies by running the pin-msrv.sh script.
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.
Dependencies
~1.5MB
~38K SLoC