|
1 | | -# The Bitcoin Dev Kit |
| 1 | +# The Bitcoin Dev Kit Wallet |
2 | 2 |
|
3 | 3 | <div align="center"> |
4 | | - <h1>BDK</h1> |
| 4 | + <h1>BDK Wallet</h1> |
5 | 5 |
|
6 | 6 | <img src="./static/bdk.png" width="220" /> |
7 | 7 |
|
|
11 | 11 |
|
12 | 12 | <p> |
13 | 13 | <a href="https://crates.io/crates/bdk_wallet"><img alt="Crate Info" src="https://img.shields.io/crates/v/bdk_wallet.svg"/></a> |
14 | | - <a href="https://github.com/bitcoindevkit/bdk/blob/master/LICENSE"><img alt="MIT or Apache-2.0 Licensed" src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg"/></a> |
15 | | - <a href="https://github.com/bitcoindevkit/bdk/actions?query=workflow%3ACI"><img alt="CI Status" src="https://github.com/bitcoindevkit/bdk/workflows/CI/badge.svg"></a> |
16 | | - <a href="https://coveralls.io/github/bitcoindevkit/bdk?branch=master"><img src="https://coveralls.io/repos/github/bitcoindevkit/bdk/badge.svg?branch=master"/></a> |
| 14 | + <a href="https://github.com/bitcoindevkit/bdk_wallet/blob/master/LICENSE"><img alt="MIT or Apache-2.0 Licensed" src="https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg"/></a> |
| 15 | + <a href="https://github.com/bitcoindevkit/bdk_wallet/actions?query=workflow%3ACI"><img alt="CI Status" src="https://github.com/bitcoindevkit/bdk_wallet/workflows/CI/badge.svg"></a> |
| 16 | + <a href="https://coveralls.io/github/bitcoindevkit/bdk_wallet?branch=master"><img src="https://coveralls.io/repos/github/bitcoindevkit/bdk_wallet/badge.svg?branch=master"/></a> |
17 | 17 | <a href="https://docs.rs/bdk_wallet"><img alt="Wallet API Docs" src="https://img.shields.io/badge/docs.rs-bdk_wallet-green"/></a> |
18 | 18 | <a href="https://blog.rust-lang.org/2022/08/11/Rust-1.63.0.html"><img alt="Rustc Version 1.63.0+" src="https://img.shields.io/badge/rustc-1.63.0%2B-lightgrey.svg"/></a> |
19 | 19 | <a href="https://discord.gg/d7NkDKm"><img alt="Chat on Discord" src="https://img.shields.io/discord/753336465005608961?logo=discord"></a> |
|
28 | 28 |
|
29 | 29 | ## About |
30 | 30 |
|
31 | | -The `bdk` libraries aims to provide well engineered and reviewed components for Bitcoin based applications. |
| 31 | +The `bdk_wallet` project provides a high level descriptor based wallet API for building Bitcoin applications. |
32 | 32 | It is built upon the excellent [`rust-bitcoin`] and [`rust-miniscript`] crates. |
33 | 33 |
|
34 | 34 | ## Architecture |
35 | 35 |
|
36 | | -The project is split up into several crates in the `/crates` directory: |
| 36 | +There is currently only one published crate in this repository: |
37 | 37 |
|
38 | | -- [`wallet`](./crates/wallet): Contains the central high level `Wallet` type that is built from the low-level mechanisms provided by the other components |
39 | | -- [`chain`](./crates/chain): Tools for storing and indexing chain data |
40 | | -- [`file_store`](./crates/file_store): Persistence backend for storing chain data in a single file. Intended for testing and development purposes, not for production. |
41 | | -- [`esplora`](./crates/esplora): Extends the [`esplora-client`] crate with methods to fetch chain data from an esplora HTTP server in the form that [`bdk_chain`] and `Wallet` can consume. |
42 | | -- [`electrum`](./crates/electrum): Extends the [`electrum-client`] crate with methods to fetch chain data from an electrum server in the form that [`bdk_chain`] and `Wallet` can consume. |
| 38 | +- [`wallet`](./wallet): Contains the central high level `Wallet` type that is built from the low-level mechanisms provided by the other components. |
| 39 | + |
| 40 | +Crates that `bdk_wallet` depends on are found in the [`bdk`] repository. |
43 | 41 |
|
44 | | -Fully working examples of how to use these components are in `/example-crates`: |
45 | | -- [`example_cli`](./example-crates/example_cli): Library used by the `example_*` crates. Provides utilities for syncing, showing the balance, generating addresses and creating transactions without using the bdk_wallet `Wallet`. |
46 | | -- [`example_electrum`](./example-crates/example_electrum): A command line Bitcoin wallet application built on top of `example_cli` and the `electrum` crate. It shows the power of the bdk tools (`chain` + `file_store` + `electrum`), without depending on the main `bdk_wallet` library. |
47 | | -- [`example_esplora`](./example-crates/example_esplora): A command line Bitcoin wallet application built on top of `example_cli` and the `esplora` crate. It shows the power of the bdk tools (`chain` + `file_store` + `esplora`), without depending on the main `bdk_wallet` library. |
48 | | -- [`example_bitcoind_rpc_polling`](./example-crates/example_bitcoind_rpc_polling): A command line Bitcoin wallet application built on top of `example_cli` and the `bitcoind_rpc` crate. It shows the power of the bdk tools (`chain` + `file_store` + `bitcoind_rpc`), without depending on the main `bdk_wallet` library. |
49 | | -- [`example_wallet_esplora_blocking`](./example-crates/example_wallet_esplora_blocking): Uses the `Wallet` to sync and spend using the Esplora blocking interface. |
50 | | -- [`example_wallet_esplora_async`](./example-crates/example_wallet_esplora_async): Uses the `Wallet` to sync and spend using the Esplora asynchronous interface. |
51 | | -- [`example_wallet_electrum`](./example-crates/example_wallet_electrum): Uses the `Wallet` to sync and spend using Electrum. |
| 42 | +Fully working examples of how to use these components are in `/examples`: |
52 | 43 |
|
| 44 | +- [`example_wallet_esplora_blocking`](examples/example_wallet_esplora_blocking): Uses the `Wallet` to sync and spend using the Esplora blocking interface. |
| 45 | +- [`example_wallet_esplora_async`](examples/example_wallet_esplora_async): Uses the `Wallet` to sync and spend using the Esplora asynchronous interface. |
| 46 | +- [`example_wallet_electrum`](examples/example_wallet_electrum): Uses the `Wallet` to sync and spend using Electrum. |
| 47 | + |
| 48 | +[`bdk`]: https://github.com/bitcoindevkit/bdk |
53 | 49 | [`rust-miniscript`]: https://github.com/rust-bitcoin/rust-miniscript |
54 | 50 | [`rust-bitcoin`]: https://github.com/rust-bitcoin/rust-bitcoin |
55 | | -[`esplora-client`]: https://docs.rs/esplora-client/ |
56 | | -[`electrum-client`]: https://docs.rs/electrum-client/ |
57 | | -[`bdk_chain`]: https://docs.rs/bdk-chain/ |
58 | 51 |
|
59 | 52 | ## Minimum Supported Rust Version (MSRV) |
60 | | -The BDK library maintains a MSRV of 1.63.0. This includes the following crates: |
61 | | - |
62 | | -- `bdk_core` |
63 | | -- `bdk_chain` |
64 | | -- `bdk_bitcoind_rpc`. |
65 | | -- `bdk_esplora`. |
66 | | -- `bdk_wallet`. |
67 | 53 |
|
68 | | -The MSRV of `bdk_electrum` is 1.75.0. |
| 54 | +The libraries in this repository maintain a MSRV of 1.63.0. |
69 | 55 |
|
70 | 56 | To build with the MSRV of 1.63.0 you will need to pin dependencies by running the [`pin-msrv.sh`](./ci/pin-msrv.sh) script. |
71 | 57 |
|
|
0 commit comments