Skip to content

feat: Add support for Multipath (two-path) descriptors - #309

Merged
tvpeter merged 4 commits into
bitcoindevkit:masterfrom
tvpeter:feat/multipath-desc
Sep 11, 2026
Merged

tvpeter merged 4 commits into
bitcoindevkit:masterfrom
tvpeter:feat/multipath-desc

Conversation

@tvpeter

@tvpeter tvpeter commented Jul 29, 2026 •

Copy link
Copy Markdown
Collaborator

Description

This PR enables support for BIP389 multipath descriptors. It uses the existing external descriptor and verifies whether the provided descriptor is a multipath descriptor. If it is, a wallet will be created using the Wallet::create_from_two_path_descriptor() method. If not, the standard wallet creation logic will be applied.

Fixes #195

Replaces #238

Notes to the reviewers

  • is_multipath_descriptor helper parses the descriptor and accepts only two-path multipath descriptors (external/internal).

Changelog notice

  • Add support for BIP389 multipath descriptors

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

New Features:

  • I've added tests for the new feature
  • I've added docs for the new feature
  • I've updated CHANGELOG.md

tvpeter added 3 commits July 29, 2026 23:16
- Enable creating wallets and wallet operations
using multipath descriptors.
- Add a check for a two-paths multipath descriptors
as supported by the wallet api.
-Add tests for multipath descriptors.
- Update CHANGELOG
@tvpeter tvpeter self-assigned this Jul 29, 2026
@tvpeter
tvpeter requested a review from notmandatory July 29, 2026 22:52
@tvpeter tvpeter added the enhancement New feature or request label Jul 29, 2026
@codecov

codecov Bot commented Jul 29, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 80.64516% with 12 lines in your changes missing coverage. Please review.
✅ Project coverage is 57.78%. Comparing base (e7223e5) to head (5afbc8a).
⚠️ Report is 3 commits behind head on master.

Files with missing lines Patch % Lines
src/persister.rs 74.07% 7 Missing ⚠️
src/utils/descriptors.rs 85.29% 5 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #309      +/-   ##
==========================================
+ Coverage   57.45%   57.78%   +0.32%     
==========================================
  Files          22       22              
  Lines        3695     3733      +38     
==========================================
+ Hits         2123     2157      +34     
- Misses       1572     1576       +4     
Flag Coverage Δ
rust 57.78% <80.64%> (+0.32%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sdmg15 sdmg15 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tACK 48b3314

Comment thread src/persister.rs Outdated
- add check for int-desc as a multipath desc
@tvpeter
tvpeter force-pushed the feat/multipath-desc branch from 9f53f07 to 5afbc8a Compare September 8, 2026 17:03

@vadim-anfv vadim-anfv left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tACK 5afbc8a

Verified locally that the invalid config is no longer saved.

@tvpeter
tvpeter merged commit 20d69a1 into bitcoindevkit:master Sep 11, 2026
9 checks passed
@github-project-automation github-project-automation Bot moved this to Done in BDK-CLI Sep 11, 2026
@tvpeter
tvpeter deleted the feat/multipath-desc branch September 11, 2026 11:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Add support for BIP389 Multipath descriptors

3 participants