|
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