计划执行与检查节点
executing-plans
按既定实施计划完成工作,保持过程检查和反馈。
bitcoin-libraries-bdk【效率与协作】Bitcoin Dev Kit (BDK): high-level Rust wallet library. Descriptor-based wallets, multiple chain backends (Esplora, Electrum, RPC), PSBT, fee estimation, coin selection. Bindings to Swift / Kotlin / Python / Flutter. USE WHEN: building wallets in Rust or via BDK bindings, integrating descriptor wallets into apps.
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
High-level wallet library on top of rust-bitcoin + miniscript. Descriptor- first; modular chain backends.
Two repos, as of September 2026: github.com/bitcoindevkit/bdk_wallet
holds the bdk_wallet crate (split out of the monorepo in April 2025),
github.com/bitcoindevkit/bdk holds the chain crates (bdk_core,
bdk_chain, bdk_esplora, bdk_electrum, bdk_bitcoind_rpc,
bdk_file_store).
# latest on crates.io as of September 2026
[dependencies]
bdk_wallet = "3.1" # 3.1.0, June 2026; MSRV 1.85.0
bdk_esplora = "0.22" # 0.22.2
bdk_electrum = "0.24" # 0.24.0
bdk_bitcoind_rpc = "0.22" # 0.22.0
The backend crates all depend on bdk_core 0.6.x, which is what
bdk_wallet 3.1 pulls in via bdk_chain 0.23.x — pick versions from
one release wave or the bdk_core types will not line up.
use bdk_wallet::{Wallet, KeychainKind};
use bdk_wallet::bitcoin::Network;
use bdk_wallet::SignOptions;
let descriptor = "wpkh(xprv.../84h/0h/0h/0/*)";
let change_descriptor = "wpkh(xprv.../84h/0h/0h/1/*)";
let mut wallet = Wallet::create(descriptor, change_descriptor)
.network(Network::Bitcoin)
.create_wallet_no_persist()?;
// Sync with chain
let esplora = esplora_client::Builder::new("https://mempool.space/api").build_async()?;
let request = wallet.start_full_scan().build();
let update = esplora.full_scan(request, 5, 1).await?;
wallet.apply_update(update)?;
// Build a tx
let mut tx_builder = wallet.build_tx();
tx_builder.add_recipient(addr.script_pubkey(), Amount::from_sat(10_000));
let mut psbt = tx_builder.finish()?;
// Sign
wallet.sign(&mut psbt, SignOptions::default())?;
let tx = psbt.extract_tx()?;
lock_outpoint / unlock_outpoint,
backed by a new bdk_wallet_locked_outpoints SQLite table.apply_update_events and friends
return Vec<WalletEvent> (ChainTipChanged, TxConfirmed,
TxUnconfirmed, TxReplaced, TxDropped).NetworkKind adopted throughout the codebase.3.1 (June 2026) adds Wallet::sign_with_signers and
LoadParams::two_path_descriptor. Teams not ready for 3.0 can take
bdk_wallet 2.4.0 (April 2026), which backports the pre-1.0 SQLite
migration helper and the event-tracking methods to the 2.x line.
All generated from UniFFI bindings over bdk_wallet, so they expose
the same API surface. Swift and Android ship out of the bdk-ffi
repo; the rest were split into their own repos during Q3 2025 to make
them easier to contribute to.
bdk-ffi).bdk-ffi).bdk-rn is still 0.30.0
(November 2023) as of September 2026.bdk-ffi 3.1.0 (September 2026) is the current binding release
carrying the 3.x API.
bdk_bitcoind_rpc). For Core RPC outside a BDK
wallet, see corepc/SKILL.md.bdk-kyoto, 0.17.1 as of
September 2026).Each backend has its own start_full_scan / start_sync flow.
| Aspect | BDK | rust-bitcoin only | LDK |
|---|---|---|---|
| Level | High (wallet) | Low (primitives) | Lightning |
| Descriptors | Native | Manual | n/a |
| Coin selection | Built-in | Manual | n/a |
| Persistence | Pluggable | None | Pluggable |
bdk_wallet_locked_outpoints SQLite table —
a backwards-compatible migration, unlike earlier major bumps.