Skip to content

feat: new RPC migratewallet to migrate legacy wallets to backport wallets - #7275

Merged
PastaPastaPasta merged 14 commits into
dashpay:developfrom
knst:bp-descriptor-migrate
May 28, 2026
Merged

feat: new RPC migratewallet to migrate legacy wallets to backport wallets#7275
PastaPastaPasta merged 14 commits into
dashpay:developfrom
knst:bp-descriptor-migrate

Conversation

@knst

@knst knst commented Apr 7, 2026

Copy link
Copy Markdown
Collaborator

Issue being fixed or feature implemented

Legacy wallets is subject to be removed in Bitcoin Core, here's bitcoin's timeline for reference: bitcoin#20160

Descriptor wallets is going to be created by default from Dash Core v24: #7204

What was done?

Backports:

And more to be done in further PR

There are several key differences with Bitcoin Core:

  • bitcoin uses multiple path derivation and paths for legacy bip44 and descriptor bip44 is not matched; while Dash Core always uses the same derivation path for all HD wallets
  • combo descriptors can not be used as "active" descriptors so, they added as "inactive" descriptors
  • there's added 1 more coinjoin derivation path for compability with mobile. It covers a case if used used the same once on mobile wallet and run coinjoin
  • implementation of HD wallet in our legacy wallets and bitcoin's are not exactly same because this code hasn't been backported. Beside lookup of mapKeys and mapCryptedKeys there should be done extra lookup over mapHdPubKeys in migration code

How Has This Been Tested?

See updates for new functional test wallet_migration.py

Also all my own legacy wallets (mainnet, testnet) has been successfully migrated to descriptor during testing of this PR, including coinjoin-status of mixed coins.

One of my wallet on testnet highlighted existing bug of mainstream. This bug with watch-only addresses has been fixed by bitcoin#28868 and this fix will be included in the next batch of backports.

Breaking Changes

N/A

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have made corresponding changes to the documentation
  • I have assigned this pull request to a milestone

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

RPC Some notable changes to RPC params/behaviour/descriptions

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants