Skip to content

The Bitcoin Dev Kit

A suite of libraries for building modern, lightweight, descriptor-based wallets written in Rust!

MIT or Apache-2.0 LicensedCI StatusRustc Version 1.85.0+Chat on Discord

About

The bdk libraries aim to provide well engineered and reviewed components for Bitcoin wallets and other applications. They are built upon the excellent rust-bitcoin and rust-miniscript crates.

Architecture

The workspace in this repository contains several crates in the /crates directory:

Sub-DirectoryDescriptionBadges
chainTools for storing and indexing chain data.Chain Crate InfoChain API Docs
coreA collection of core structures used by the bdk_chain, bdk_wallet, and BDK's chain data source crates.Core Crate InfoCore API Docs
esploraExtends 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.Esplora Crate InfoEsplora API Docs
electrumExtends the electrum-client crate with methods to fetch chain data from an electrum server in the form that bdk_chain and Wallet can consume.Electrum Crate InfoElectrum API Docs
bitcoind_rpcExtends bitcoincore-rpc for emitting blockchain data from the bitcoind RPC interface in the form that bdk_chain and Wallet can consume.BitcoinD RPC Crate InfoBitcoinD RPC API Docs
file_storePersistence backend for storing chain data in a single file. Intended for testing and development purposes, not for production.File Store Crate InfoFile Store API Docs

The bdk_wallet repository and crate contains a higher level Wallet type that depends on the above lower-level mechanism crates.

Security Policy

To report a security issue, please refer to the security policy.

Minimum Supported Rust Version (MSRV)

The following BDK crates maintains a MSRV of 1.85.0. To build these crates with the MSRV of 1.85.0 you will need to pin dependencies by running the pin-msrv.sh script.

  • bdk_core
  • bdk_chain
  • bdk_bitcoind_rpc
  • bdk_esplora
  • bdk_file_store
  • bdk_electrum

Just

This project has a justfile for easy command running. You must have just installed.

To see a list of available recipes: just

License

Licensed under either of

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.

About

A modern, lightweight, descriptor-based wallet library written in Rust!

Topics

Resources

Contributing

Security policy

Stars

1.1k stars

Watchers

34 watching

Forks

Releases

Packages

Used by

Contributors

Languages