Bitcoin Dev Kit (BDK)
An open-source Rust library offering flexible tools for building custom Bitcoin wallets with descriptor-based key management.
The Bitcoin Dev Kit (BDK) is an open-source Rust library that provides modular building blocks for constructing Bitcoin wallets. Maintained by an active community of contributors, BDK sits under a number of production wallets, including some Lightning wallets that need on-chain functionality alongside their channels.
What BDK provides:
- Descriptor-based wallet primitives. Output script descriptors (the modern way to specify "what scripts does this wallet use") let BDK handle complex setups - multisig, miniscript, custom locktime constructions - through a clean interface.
- Pluggable backends. Connect to a Bitcoin Core node, an Electrum server, an Esplora REST API, or run completely offline with PSBT-based workflows.
- Coin selection algorithms. Built-in strategies for picking UTXOs (largest-first, branch-and-bound, etc.).
- PSBT support. First-class PSBT construction and finalization.
- Cross-platform. Rust core with bindings for Swift and Kotlin, plus separately maintained ones for Python, Dart and TypeScript (React Native), so mobile and desktop wallets can use it.
Where BDK shines: anyone building a new Bitcoin wallet doesn't have to write descriptor parsing, PSBT logic, coin selection, fee estimation, and the rest from scratch. BDK handles the plumbing; the wallet builder focuses on UX and features.
BDK keeps a list of projects built on it. As of October 2026 that list includes the Bitkey, Proton Wallet, Bull Bitcoin and Liana wallets and Envoy, Foundation's companion app for its hardware wallets. It also includes infrastructure projects such as Fedimint and LDK Node.
BDK's Lightning counterpart is LDK, the Lightning Dev Kit, also written in Rust, which calls BDK its on-chain companion. LDK Node, a ready-made Lightning node library, is built on both.
See bitcoindevkit.org for documentation and Wallet for the broader landscape.
Key takeaways
- Facilitates custom wallet building with Rust's safety benefits
- Leverages descriptors for precise key/script organization
- Supports multiple backends (e.g., Electrum, Core)
Corrected
-
Was: The entry listed Mutiny Wallet, which shut down in 2024, and Cake Wallet's Bitcoin module among the notable wallets built on BDK in 2026.
Now: The examples now come from the list BDK keeps of projects built on it. As of October 2026 that list includes the Bitkey, Proton Wallet, Bull Bitcoin and Liana wallets, Foundation's Envoy app, and infrastructure such as Fedimint and LDK Node. Cake Wallet is not on it. Details
Sources (10)
- Bitcoin Dev Kit - adoption list, projects built with BDK (October 2026)
- BDK on GitHub - suite of Rust libraries for descriptor-based wallets, with Esplora, Electrum and Bitcoin Core (bitcoind RPC) chain sources
- bdk_wallet README - Wallet type built on miniscript descriptors; creates and signs transactions
- bdk_wallet source - coin_selection.rs: largest-first, oldest-first and branch-and-bound (default) coin selection
- bdk_wallet source - tx_builder.rs: building a transaction returns a PSBT per BIP 174
- bdk-ffi README - Kotlin (Android) and Swift (iOS, macOS) bindings, plus separately maintained Python, Dart, Kotlin JVM and TypeScript (React Native) bindings built on the same code
- rust-esplora-client source (used by bdk_esplora) - get_fee_estimates fetches fee-rate estimates from an Esplora server
- Lightning Dev Kit homepage - Bitcoin Dev Kit, the on-chain companion to LDK
- LDK rust-lightning README - LDK is a Rust library for building a Lightning node
- LDK Node README - a ready-to-go Lightning node library built using LDK and BDK, with an integrated on-chain wallet
External references (2)
Related terms (7)
Published . Revised . One correction logged for this page.
Edit this page on GitHub