@@ -120,4 +120,29 @@ After that, `getwalletinfo` can be used to check if the wallet has been fully re
120
120
$ bitcoin-cli -rpcwallet="restored-wallet" getwalletinfo
121
121
```
122
122
123
- The restored wallet can also be loaded in the GUI via ` File ` ->` Open wallet ` .
123
+ The restored wallet can also be loaded in the GUI via ` File ` ->` Open wallet ` .
124
+
125
+ ## Migrating Legacy Wallets to Descriptor Wallets
126
+
127
+ Legacy wallets (traditional non-descriptor wallets) can be migrated to become Descriptor wallets
128
+ through the use of the ` migratewallet ` RPC. Migrated wallets will have all of their addresses and private keys added to
129
+ a newly created Descriptor wallet that has the same name as the original wallet. Because Descriptor
130
+ wallets do not support having private keys and watch-only scripts, there may be up to two
131
+ additional wallets created after migration. In addition to a descriptor wallet of the same name,
132
+ there may also be a wallet named ` <name>_watchonly ` and ` <name>_solvables ` . ` <name>_watchonly `
133
+ contains all of the watchonly scripts. ` <name>_solvables ` contains any scripts which the wallet
134
+ knows but is not watching the corresponding P2(W)SH scripts.
135
+
136
+ Migrated wallets will also generate new addresses differently. While the same BIP 32 seed will be
137
+ used, the BIP 44, 49, 84, and 86 standard derivation paths will be used. After migrating, a new
138
+ backup of the wallet(s) will need to be created.
139
+
140
+ Given that there is an extremely large number of possible configurations for the scripts that
141
+ Legacy wallets can know about, be watching for, and be able to sign for, ` migratewallet ` only
142
+ makes a best effort attempt to capture all of these things into Descriptor wallets. There may be
143
+ unforeseen configurations which result in some scripts being excluded. If a migration fails
144
+ unexpectedly or otherwise misses any scripts, please create an issue on GitHub. A backup of the
145
+ original wallet can be found in the wallet directory with the name ` <name>-<timestamp>.legacy.bak ` .
146
+
147
+ The backup can be restored using the ` restorewallet ` command as discussed in the
148
+ [ Restoring the Wallet From a Backup] ( #16-restoring-the-wallet-from-a-backup ) section
0 commit comments