Releases: bitcoindevkit/bdk_wallet
Release 3.0.0
Summary
BDK Wallet 3.0.0 includes documentation enhancements and important updates to continuous integration and developer workflows. This is a major release that includes changes from the latest release candidates, summaries of which are also linked to below.
What's Changed
- Bump Rust compiler version to stable (1.94.0) by @thunderbiscuit in #407
- build(deps): bump actions/upload-artifact from 6 to 7 by @dependabot[bot] in #389
- build(deps): bump Swatinem/rust-cache from 2.8.2 to 2.9.1 by @dependabot[bot] in #406
- build(deps): bump codecov/codecov-action from 5.5.2 to 6.0.0 by @dependabot[bot] in #424
- ci: add docs check job by @oleonardolima in #416
Full Changelog: v3.0.0-rc.2...v3.0.0
3.0.0-rc.2
BDK Wallet 3.0.0-rc.2 features enhanced ergonomics and type safety of the pre version 1.0 wallet migration utility and fixes a panic in the descriptor! macro when provided with invalid locktime values. The macro now handles improperly constructed AbsLockTime and RelLockTime values by propagating an error back to the caller.
Release notes: https://github.com/bitcoindevkit/bdk_wallet/releases/tag/v3.0.0-rc.2
3.0.0-rc.1
BDK Wallet 3.0.0-rc.1 introduces major API changes including persistent UTXO locking, structured wallet events, and adopts NetworkKind throughout the codebase for improved network handling. This release also adds support for Caravan wallet format import/export and includes a special migration utility for SQLite databases existing prior to version 1.0. Documentation and test coverage have been expanded, along with several quality of life improvements.
Important
Changes to persisted data
This release includes a SQLite migration which adds a new table to the wallet database bdk_wallet_locked_outpoints used for tracking UTXO lock statuses. This change is backwards compatible.
Release notes: https://github.com/bitcoindevkit/bdk_wallet/releases/tag/v3.0.0-rc.1
Release 3.0.0-rc.2
Summary
BDK Wallet 3.0.0-rc.2 features enhanced ergonomics and type safety of the pre version 1.0 wallet migration utility and fixes a panic in the descriptor! macro when provided with invalid locktime values. The macro now handles improperly constructed AbsLockTime and RelLockTime values by propagating an error back to the caller.
What's Changed
- fix(dsl): handle invalid
RelLockTimewithout panicking by @AmosOO7 in #404 - fix(dsl): handle invalid
AbsLockTimewithout panicking by @AmosOO7 in #409 - fix(rusqlite): fix get_pre_v1_wallet_keychains migration helper by @notmandatory in #411
- chore: bump version to
3.0.0-rc.2by @ValuedMammal in #417
New Contributors
Full Changelog: v3.0.0-rc.1...v3.0.0-rc.2
Release 3.0.0-rc.1
Summary
BDK Wallet 3.0.0-rc.1 introduces major API changes including persistent UTXO locking, structured wallet events, and adopts NetworkKind throughout the codebase for improved network handling. This release also adds support for Caravan wallet format import/export and includes a special migration utility for SQLite databases existing prior to version 1.0. Documentation and test coverage have been expanded, along with several quality of life improvements.
Important
Changes to persisted data
This release includes a SQLite migration which adds a new table to the wallet database bdk_wallet_locked_outpoints used for tracking UTXO lock statuses. This change is backwards compatible.
What's Changed
- ci: bump rust-cache to 2.8.0 by @ValuedMammal in #305
- Add docs + test on required use of xpub for multipath constructor by @thunderbiscuit in #306
- Add utilities to test persistence by @110CodingP in #300
- chore: bump dev version to 3.0.0-alpha.0 by @ValuedMammal in #308
- refactor: have a structured IndexOutOfBoundsError type by @chaitika in #302
- chore(just): add a
_defaultrecipe by @luisschwab in #313 - chore: bump MSRV to 1.85.0 by @ValuedMammal in #317
- Add
rust-toolchain.tomlfile by @thunderbiscuit in #315 - feat!: use
NetworkKindby @luisschwab in #250 - build(deps): bump actions/upload-artifact from 4 to 5 by @dependabot[bot] in #333
- Replace Coveralls with Codecov for coverage reporting by @GideonBature in #327
- build(deps): bump actions/checkout from 5 to 6 by @dependabot[bot] in #346
- build(deps): bump Swatinem/rust-cache from 2.7.8 to 2.8.2 by @dependabot[bot] in #347
- fix(wallet): Don't fail in
build_fee_bumpfor missing parent txid by @ValuedMammal in #337 - build(deps): bump github/codeql-action from 3 to 4 by @dependabot[bot] in #329
- Update README with new codecov badge by @notmandatory in #341
- Bump Rust compiler version to stable (1.91.1) by @thunderbiscuit in #350
- Bump Rust compiler version to stable (1.92.0) by @thunderbiscuit in #356
- feat!: Persist utxo lock status by @ValuedMammal in #259
- chore: Update example links in README by @Randy808 in #363
- chore(descriptor): justify ignored tests and add missing assertions by @luisschwab in #369
- Make
FutureResultnon-Sendwhen no-stdby @Fedeparma74 in #335 - fix(doc): fix
TxOrdering::Untoucheddoc comment by @luisschwab in #372 - build(deps): bump actions/upload-artifact from 5 to 6 by @dependabot[bot] in #354
- Return wallet events when applying updates and blocks (3.0 milestone) by @notmandatory in #319
- Bump Rust compiler version to stable (1.93.0) by @thunderbiscuit in #377
- Refactor: Move
Walleterrors into their dedicated file by @thunderbiscuit in #378 - refactor: rename
Wallet::indexed_graphfield by @110CodingP in #373 - refactor(wallet)!: Remove unused
ApplyBlockErrorby @thunderbiscuit in #382 - Pass
bitcoind_rpcexample name on therunrecipe by @luisschwab in #384 - feature: Add Caravan wallet format import/export support by @vkprogrammer-001 in #205
- chore: update CODEOWNERS with ValuedMammal and oleonardolima by @notmandatory in #385
- build(deps): bump codecov/codecov-action from 5.5.1 to 5.5.2 by @dependabot[bot] in #353
- Switch to cargo-llvm-cov for code coverage by @Copilot in #371
- Add get_pre_1_wallet_keychains migration helper by @notmandatory in #364
- fix(tx_builder)!: Remove
include_output_redeem_witness_scriptby @Dmenec in #392 - refactor(wallet)!: Remove
Wallet::cancel_txfunction by @notmandatory in #393 - Add apply_unconfirmed_txs_events and apply_evicted_txs_events by @notmandatory in #388
- docs(changeset): Add section on version compatibility by @ValuedMammal in #391
- Replace
std::error::Errorwithcore::error::Errorby @luisschwab in #397 - Release 3.0.0-rc.1 by @ValuedMammal in #398
New Contributors
- @110CodingP made their first contribution in #300
- @chaitika made their first contribution in #302
- @GideonBature made their first contribution in #327
- @Randy808 made their first contribution in #363
- @Fedeparma74 made their first contribution in #335
- @Dmenec made their first contribution in #392
Full Changelog: wallet-2.3.0...v3.0.0-rc.1
Release wallet-2.3.0
Summary
This minor release of BDK Wallet v2.3.0 includes a new feature for returning events upon applying blocks to the Wallet. It also fixes a TxBuilder::build_fee_bump error when a parent of the transaction being fee-bumped isn't found in the wallet.
Changelog
Added
- feat: add
apply_block_eventsandapply_block_connected_to_events#336
Fixed
- fix: (backport #337) - don't fail in
build_fee_bumpfor missing parent txid #349 - ci: pin syn crate to 2.0.106 #338
What's Changed
- ci(msrv): pin syn crate to 2.0.106 by @notmandatory in #338
- Add
apply_block_eventsandapply_block_connected_to_eventsby @tnull in #336 - Backport #337 - fix(wallet): Don't fail in
build_fee_bumpfor missing parent txid by @ValuedMammal in #349 - Bump version to 2.3.0 by @notmandatory in #351
Full Changelog: wallet-2.2.0...wallet-2.3.0
Release wallet-2.2.0
Summary
This minor release of BDK Wallet v2.2.0 includes a new feature for returning events upon applying an update to the Wallet. It also includes new test facilities for testing persistence, as well as documentation improvements.
Important
Note that the signer module has been deprecated and is planned to be removed in a future release.
The current PSBT signing logic can be found in bitcoin::psbt module, most notably Psbt::sign.
What's Changed
- docs: add metadata fields to issue templates for triage by @LagginTimes in #296
- ci: automated update to rustc 1.89.0 by @create-pr-actions[bot] in #298
- docs: (Backport #306) - add wording on required use of xpub for multipath constructor by @thunderbiscuit in #309
- feat: (Backport #300) - Add utilities to test persistence by @ValuedMammal in #311
- feat: Return wallet events when applying updates by @notmandatory in #310
New Contributors
- @LagginTimes made their first contribution in #296
- @110CodingP made their first contribution in #300
Full Changelog: wallet-2.1.0...wallet-2.2.0
Release wallet-2.1.0
Summary
This release of bdk_wallet v2.1.0 introduces two significant features: comprehensive support for BIP-389 two-path multipath descriptors with automatic receive/change separation through new Wallet::create_from_two_path_descriptor, and enhanced transaction building capabilities with TxBuilder::exclude_unconfirmed and TxBuilder::exclude_below_confirmations for filtering UTXOs by confirmation status. The release also includes important fixes related to coin selection and script pubkey (SPK) cache recovery.
What's Changed
- chore: bump dev version to 2.1.0-alpha.0 by @ValuedMammal in #256
- ci: automated update to rustc 1.87.0 by @create-pr-actions[bot] in #242
- Bump
bitcoindependency requirement to v0.32.6 to reflect used API by @tnull in #266 - feat: add
justfileby @luisschwab in #268 - Prefer Utxo::Local over Utxo::Foreign in OldestFirstCoinSelection by @nymius in #265
- Preserve insertion order of manually selected utxos if
TxOrdering::Untouchedby @nymius in #262 - feat: Add
exclude_unconfirmedandexclude_below_confirmationsby @evanlinjin in #258 - test: Move bump fee + foreign utxo tests by @ValuedMammal in #199
- chore: add CODEOWNERS file by @luisschwab in #233
- Multipath descriptor support (BIP 389) by @schjonhaug in #275
- clippy: fix uninlined format args by @ValuedMammal in #287
- docs(wallet): expand docs for
apply_evicted_txsby @ValuedMammal in #270 - Fix
KeychainTxOutIndexrecovery logic when spk-cache is enabled by @evanlinjin in #288 - docs(wallet): add
syncoperation tobdk_walletexamples by @tvpeter in #274 - chore(deps): bump
bdk-chainto0.23.1by @oleonardolima in #292 - Release 2.1.0 by @oleonardolima in #293
New Contributors
- @create-pr-actions[bot] made their first contribution in #242
- @tnull made their first contribution in #266
- @nymius made their first contribution in #265
- @schjonhaug made their first contribution in #275
- @tvpeter made their first contribution in #274
- @oleonardolima made their first contribution in #292
Full Changelog: wallet-2.0.0...wallet-2.1.0
Release wallet-2.0.0
Summary
This release includes a bug fix for handling stuck or evicted transactions, performance enhancements for large wallets, more extensive test coverage, and the return of TxDetails. This is the first stable release since the bdk_wallet crate moved to a new repository.
The below bdk chain client crate versions are compatible with this bdk_wallet release:
bdk_bitcoind_rpc0.20.0bdk_electrum0.23.0bdk_esplora0.22.0bdk_kyoto0.11.0
Changes to persisted data
The wallet ChangeSet is extended to include the following (sub-)fields. This change is backwards compatible.
tx_graph::ChangeSet::first_seentx_graph::ChangeSet::last_evictedkeychain_txout::ChangeSet::spk_cache
What's Changed
- chore: split bdk_wallet into it's own repository by @notmandatory in #2
- chore: remove
lazy_staticfrom Cargo.toml by @luisschwab in #218 - chore(example_wallet_rpc): bump
ctrlcto 3.4.6 by @luisschwab in #217 - chore(example_wallet_esplora_async): bump tokio to 1.38.1 by @luisschwab in #219
- deps!: update
bdk_chainto 0.22.0 by @ValuedMammal in #208 - Chore: migrate library version naming convention on master by @thunderbiscuit in #215
- docs(wallet): provide guidance on use of
ChangeSetby @ValuedMammal in #198 - ci: Add Ubuntu 24.04 ARM support for build-test job by @vkprogrammer-001 in #200
- Add zizmor github actions security analysis workflow by @notmandatory in #8
- fix: no
DebugonDisplayimplementations by @luisschwab in #12 - chore: create and apply rustfmt.toml by @luisschwab in #213
- feat(test): add legacy descriptor tests by @luisschwab in #214
- feat(test-utils)!: use
bitcoin::Amountinstead ofu64on tests by @luisschwab in #223 - fix(wallet): fix
into_descriptor_keyfor DescriptorPublicKey by @ValuedMammal in #241 - fix: Validate prevouts in
get_psbt_inputby @evanlinjin in #232 - Bring back TxDetails by @thunderbiscuit in #201
- deps: Update
bdk_chainto 0.23.0 by @ValuedMammal in #247
Full Changelog: wallet-1.2.0...wallet-2.0.0
Release wallet-2.0.0-beta.0
Summary
This is a beta release in preparation for a final v2.0.0 of BDK wallet. We encourage users to test the release and report any issues.
The release includes a bug fix for handling stuck or evicted transactions, performance enhancements for large wallets, more extensive test coverage, and the return of TxDetails. This is the first release since the bdk_wallet crate moved to a new repository.
Changes to persisted data
The wallet ChangeSet is extended to include the following (sub-)fields. This change is backwards compatible.
tx_graph::ChangeSet::first_seentx_graph::ChangeSet::last_evictedkeychain_txout::ChangeSet::spk_cache
What's Changed
- chore: split bdk_wallet into it's own repository by @notmandatory in #2
- chore: remove
lazy_staticfrom Cargo.toml by @luisschwab in #218 - chore(example_wallet_rpc): bump
ctrlcto 3.4.6 by @luisschwab in #217 - chore(example_wallet_esplora_async): bump tokio to 1.38.1 by @luisschwab in #219
- deps!: update
bdk_chainto 0.22.0 by @ValuedMammal in #208 - Chore: migrate library version naming convention on master by @thunderbiscuit in #215
- docs(wallet): provide guidance on use of
ChangeSetby @ValuedMammal in #198 - ci: Add Ubuntu 24.04 ARM support for build-test job by @vkprogrammer-001 in #200
- Add zizmor github actions security analysis workflow by @notmandatory in #8
- fix: no
DebugonDisplayimplementations by @luisschwab in #12 - chore: create and apply rustfmt.toml by @luisschwab in #213
- feat(test): add legacy descriptor tests by @luisschwab in #214
- feat(test-utils)!: use
bitcoin::Amountinstead ofu64on tests by @luisschwab in #223 - fix(wallet): fix
into_descriptor_keyfor DescriptorPublicKey by @ValuedMammal in #241 - fix: Validate prevouts in
get_psbt_inputby @evanlinjin in #232 - Bring back TxDetails by @thunderbiscuit in #201
- deps: Update
bdk_chainto 0.23.0 by @ValuedMammal in #247
New Contributors
- @notmandatory made their first contribution in #2
- @luisschwab made their first contribution in #218
- @ValuedMammal made their first contribution in #208
- @thunderbiscuit made their first contribution in #215
- @vkprogrammer-001 made their first contribution in #200
- @evanlinjin made their first contribution in #232
Full Changelog: wallet-1.2.0...wallet-2.0.0-beta.0
Release wallet-1.2.0
Summary
In this release of bdk_wallet 1.2.0 The TxBuilder add_recipient function now accepts anything that implements Into<ScriptBuf>. The wallet considers a coinbase output eligible for selection if it will mature in the next block. Wallets persisted with a rusqlite::Connection are checked to be thread-safe. The bdk_chain dependency is updated to version 0.21.1, plus a number of internal cleanups.
What's Changed
- Fix off-by-one error checking coinbase maturity in optional UTxOs by @nymius in bitcoindevkit/bdk#1830
- wallet: Bump bitcoin dependency to v0.32.4 by @stevenroose in bitcoindevkit/bdk#1853
bdk_wallet: Pinbdk_chainversion to latest release by @evanlinjin in bitcoindevkit/bdk#1860- Refactor/use iterators to preselect utxos by @nymius in bitcoindevkit/bdk#1798
- Refactor file store by @nymius in bitcoindevkit/bdk#1684
- docs: update CONTRIBUTING.md with section for new contributors by @notmandatory in bitcoindevkit/bdk#1871
- fix(examples): make regtest default on wallet_example_rpc by @luisschwab in bitcoindevkit/bdk#1872
- chore(examples): make change descriptor optional on example_wallet_rpc by @luisschwab in bitcoindevkit/bdk#1865
- Generalize
add_recipientto acceptAddressby @rustaceanrob in bitcoindevkit/bdk#1841 - doc: remove 1.0 roadmap stuff and fix broken links from README by @luisschwab in bitcoindevkit/bdk#1882
- doc: remove persist crate from README by @luisschwab in bitcoindevkit/bdk#1884
- fix(wallet): allow PersistedWallet to be Send + Sync by @notmandatory in bitcoindevkit/bdk#1874
- example_cli: add feerate option to psbt new cmd by @ValuedMammal in bitcoindevkit/bdk#1840
- chore: bump
miniscriptto12.3.1by @LagginTimes in bitcoindevkit/bdk#1924 - chore: bump bdk_wallet to 1.2.0 by @ValuedMammal in bitcoindevkit/bdk#1925
New Contributors
- @Musab1258 made their first contribution in bitcoindevkit/bdk#1895
Full Changelog: bitcoindevkit/bdk@wallet-1.1.0...wallet-1.2.0
Release wallet-1.1.0
Summary
In this release of bdk_wallet v1.1.0 the tx builder is updated to use transaction version 2 by default, and support for wallets using testnet4 is now live. This release also includes important updates to bdk_electrum which has a new MSRV of 1.75.0 to stay current with the latest security fixes, bdk_bitcoind_rpc introduces a new compact block filter module, as well as various bug fixes and improvements.
What's Changed
- test(wallet): small cleanups to test_wallet_transactions_relevant by @notmandatory in bitcoindevkit/bdk#1785
- refactor(wallet): cleanup and remove unused code in create_tx by @notmandatory in bitcoindevkit/bdk#1768
- docs: add architectural decision records (ADR) by @ValuedMammal in bitcoindevkit/bdk#1592
- fix(wallet): improve safety on finalize psbt by @f3r10 in bitcoindevkit/bdk#1790
- feat(wallet): change default tx to version 2 by @benalleng in bitcoindevkit/bdk#1789
- test(wallet): create tx locktime cltv for a specific time by @f3r10 in bitcoindevkit/bdk#1682
- feat(wallet): support Testnet4 in valid networks by @ValuedMammal in bitcoindevkit/bdk#1805
- fix(wallet): use
map_keychaininWallet::build_fee_bumpby @ValuedMammal in bitcoindevkit/bdk#1812 - ci: add secondary MSRV job of 1.75.0 by @oleonardolima in bitcoindevkit/bdk#1803
- ci: apply zizmor security audit by @oleonardolima in bitcoindevkit/bdk#1778
New Contributors
- @f3r10 made their first contribution in bitcoindevkit/bdk#1790
- @benalleng made their first contribution in bitcoindevkit/bdk#1789
- @pluveto made their first contribution in bitcoindevkit/bdk#1738
Full Changelog: bitcoindevkit/bdk@wallet-1.0.0...wallet-1.1.0