Skip to content

Project Organization

Within the bitcoindevkit GitHub organization, the BDK team maintains a suite of Rust crates which provide both easy-to-use high level APIs and powerful lower level components to use when building more advanced bitcoin software.

Source Code

The core project is split up into several crates:

  • bdk_wallet: Contains the central high level Wallet type that is built from the low-level mechanisms provided by the other components.
  • bdk_chain: Tools for storing and indexing chain data.
  • bdk_sqlite: A simple SQLite relational database client for persisting bdk_chain data.
  • bdk_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.
  • bdk_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.
  • bdk_bitcoind_rpc: For extracting and emitting blockchain data from bitcoind RPC interface.
  • bdk-ffi: The wrapper library that exposes the Rust APIs to our target language bindings through uniffi.