Bitcoin Dev Kit

BDK is a Rust library for building Bitcoin wallets. It handles key management, coin selection, transaction construction, and blockchain syncing. Developers use it so they don't have to rewrite this low-level Bitcoin logic for every new wallet project.

The library uses output descriptors and miniscript to express spending conditions. Complex setups like multisig or time-locked vaults work without writing custom Bitcoin scripts. Developers choose their own blockchain backend (a local full node, Electrum, Esplora, or compact block filters), their own database, and their own signing setup. Through bdk-ffi, the same Rust core is available in Swift, Kotlin, and Python, running on iOS, Android, and desktop. Experimental bindings for Dart and React Native are also in progress, with Go on the horizon. A separate bdk-wasm project brings BDK to browser environments via WebAssembly.

The mission of the BDK team is to provide the best FOSS libraries for building secure, modern bitcoin apps and services. [...] If there is a bitcoin project you want to see in the world, BDK will help you build it.

Steve Myers

BDK reached its 1.0 release in December 2024 after a full redesign that stabilized the API under semantic versioning, and has since shipped 2.0 and beyond on an 8-week release cadence. Projects like Bitkey, ProtonWallet, AnchorWatch, Cove, Alby, Fedimint, Bull Bitcoin, and MetaMask (via bdk-wasm) already ship with BDK.

Why fund it?

A lot of wallets depend on BDK. When someone finds and fixes a bug in transaction building or coin selection, that fix ships to every project built on top of it. The same goes for new features: silent payments, compact block filters, Tor connectivity, and other protocol upgrades land once in BDK and become available to all downstream wallets without each team having to implement them separately.

Building a Bitcoin wallet from scratch is hard to get right. Subtle mistakes in key derivation, fee estimation, or change output handling can lose people money. BDK lets wallet teams lean on code that has been reviewed, tested, and used in production by many projects, rather than rolling their own.

OpenSats has supported BDK-related work through multiple grants: the initial BDK grant in August 2023, Tor support for BDK & Fedimint in July 2024, and a grant for the Kyoto light client in September 2024.

What's next?

Recent releases have added Tor connectivity, a compact block filter light client (Kyoto), Testnet4 support, and a dedicated Silent Payments experimental crate (BIP352). An experimental bdk-tx project is decoupling transaction building from the wallet, and BDK is becoming a building block for layer-two projects like ldk-node and bark.

The team is currently working towards BDK 3.0. For a detailed look at recent progress, see the Advancements in Developer Libraries impact report. Or keep an eye out for updates on the BDK blog.

Further Reading