BDK(Bitcoin Dev Kit)是构建在 rust-bitcoin 与 miniscript 之上的高层 Rust 钱包库,采用描述符优先设计,链后端模块化。截至 2026 年 9 月分为两个仓库:bdk_wallet 存放 bdk_wallet crate(2025 年 4 月从单体仓库拆分),bdk 存放链相关 crate(bdk_core、bdk_chain、bdk_esplora、bdk_electrum、bdk_bitcoind_rpc、bdk_file_store)。
主要能力:基于描述符的钱包创建、PSBT 构建与签名、手续费估算、内置选币、可插拔持久化,以及 Esplora(HTTP REST)、Electrum(TCP/TLS)、Bitcoin Core RPC、紧凑过滤器(BIP157/158,经 bdk-kyoto)等链后端。每个后端有各自的 start_full_scan / start_sync 流程。
安装(截至 2026 年 9 月 crates.io 版本):bdk_wallet = "3.1"(3.1.0,2026 年 6 月,MSRV 1.85.0)、bdk_esplora = "0.22"、bdk_electrum = "0.24"、bdk_bitcoind_rpc = "0.22"。后端 crate 均依赖 bdk_core 0.6.x,需从同一发布批次选版本,否则类型不匹配。
3.0(2026 年 4 月)新增持久化 UTXO 锁定(lock_outpoint / unlock_outpoint,基于 bdk_wallet_locked_outpoints SQLite 表)、结构化钱包事件(apply_update_events 返回 Vec<WalletEvent>)、NetworkKind、Caravan 钱包格式导入导出及 1.0 前 SQLite 数据库迁移工具。3.1(2026 年 6 月)新增 Wallet::sign_with_signers 与 LoadParams::two_path_descriptor。
绑定均由 bdk_wallet 上的 UniFFI 生成,API 面一致:bdk-swift、bdk-android(在 bdk-ffi 仓库)、bdk-jvm(Maven Central)、bdk-python(PyPI)、bdk-rn(npm 仍为 0.30.0)、bdk-dart(pub.dev 上为候选版本,1.0 未发布)。bdk-ffi 3.1.0(2026 年 9 月)为当前绑定版本。
适用场景:移动钱包、需要成熟钱包引擎的自定义比特币应用、服务端钱包管理。
限制与注意:文档与教程多停留在 1.x,代码片段常落后两个大版本;持久化须与钱包版本匹配,跨大版本不兼容;异步与同步 API 分属不同 crate。官方未提供收费与价格信息。