But basically, if I use Migrate on the 2013 wallet, then can't I just export what I need for the watch-only wallet using importdescriptors false -snip-
You probably meant: "
listdescriptors false"
Yes, that's if you already know which descriptors to pick, otherwise you may miss one with associated UTXO if you wont export all since it's offline and not synced.
Yeah, I meant
listdescriptors false. I don't understand what you mean to. What does it mean that I may "miss one with associated UTXO"?
And doesn't this command export all? It gives you every single public key descriptor so you can then put this into a .json file and import it into the watch only wallet. Could you see if this is correct? someone mentioned these steps to do it:
Build the online watch-only wallet
On Laptop 1 (online):
Create a new empty wallet (GUI: “Create wallet” > disable private keys / “watch-only”).
Import the public descriptors you exported from offline:
GUI import (if present), or RPC importdescriptors with the JSON from your file.
Make sure the active, internal, range (for HD paths), and timestamp fields are preserved so Knots rescans correctly.
Let it rescan the chain (can take a while). When done, balances and UTXOs should show as watch-only.
Sanity check:
On the offline wallet, generate a receive address and write it down.
On the online watch-only wallet, derive/show a receive address. It should match. (Matching here proves the descriptors line up.)
PSBT flow
Create (online):
In the online watch-only wallet, enable Coin Control. Pick the UTXOs, set outputs, and choose “Create PSBT” (GUI) or walletcreatefundedpsbt (RPC). Save the .psbt to USB.
Sign (offline):
On the offline wallet, open/sign the PSBT (GUI: “Load PSBT” > “Sign”; RPC: walletprocesspsbt). Save the partially or fully signed PSBT back to USB.
Broadcast (online):
On the online node, Finalize & Broadcast (GUI) or finalizepsbt then sendrawtransaction with the hex.
Verify the txid and watch it confirm.
So what I was saying about the .json file is this:
Make sure the active, internal, range (for HD paths), and timestamp fields are preserved so Knots rescans correctly.
So apparently, there is a problem when you use listdescriptors false to get the output that you copypaste into a .json file to then import this into the watch-only wallet?
Why isn't there a way to just generate a .json file ready to be imported in the watch-only wallet? Looks like this is not properly implemented since you shouldn't need to be copypasting things around and even tweaking things because they don't match the expected import format.
Im really going to need to test with testnet coins but the thing is the wallet would be a modern version 28 wallet so I wouldn't encounter the initial migrate step.
You can download an
old version of Bitcoin Core (
pre-descriptor), start it with datadir pointing to your preferred temporary test datadir.
Even if it's done in the same machine, that shouldn't interfere with your current setup unless you overwrite something by using the same directories.
[/quote]Yeah but that means I have to redownload the blockchain and spend a ton of time again on this, on an old version which probably means even slower. And I would need a version that's older than the oldest one on that list, probably 0.8.6. And syncing the blockchain is so damn slow on my laptop, so I would need to leave my desktop syncing at night again.. what a nightmare.