What is the exact process for importing bitcoincore descriptor wallet to Sparrow Wallet
What is the exact process for importing bitcoincore descriptor wallet to Sparrow Wallet
Loading saved threads...
arrrrrg · External communityPost link
External question — Bitcoin Stack Exchange
Author: arrrrrg
Original post: https://bitcoin.stackexchange.com/questions/130722
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
I recently converted a legacy wallet to a bitcoincore descriptor wallet.
Now I'd like to create a new Sparrow wallet and import (not sweep!) the transaction history and balances to it.
The Sparrow client is already configured to connect to a Raspiblitz full node over Tor.
I'm finding difficulty specifically with how to import the descriptors fully and correctly (with included transaction history).
I'm willing to entertain interim steps as long as the at the end I end up with a functional (non-watch) wallet in sparrow that is a duplicate of the bitcoincore wallet.
Quote
Report
Pol Espinasa · External communityPost link
External answer — Bitcoin Stack Exchange
Author: Pol Espinasa
Original post: https://bitcoin.stackexchange.com/a/130736
License: CC BY-SA 4.0 — https://creativecommons.org/licenses/by-sa/4.0/
Adaptation: HTML converted to plain text; contact email addresses removed.
In order to import the descriptors of your Bitcoin Core wallet to your new Sparrow wallet, you first need to list the descriptors using the RPC call
listdescriptors
:
$ ./build/bin/bitcoin-cli -testnet4 -rpcwallet=descriptorstest listdescriptors
{
"wallet_name": "descriptorstest",
"descriptors": [
{
"desc": "pkh([e0ffb904/44h/1h/0h]tpubDDXbj9wYQeG5c1syaE1faUQv85PRadQ9Hc4AqvurD41LM7Xx21KkZdnp5w9nKoSkrsSzUsZnYzrFTAViuV7jZLo3BMoZr4hyfud3QAEVMud/0/*)#z9wy65u0",
"timestamp": 1779473837,
"active": true,
"internal": false,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "pkh([e0ffb904/44h/1h/0h]tpubDDXbj9wYQeG5c1syaE1faUQv85PRadQ9Hc4AqvurD41LM7Xx21KkZdnp5w9nKoSkrsSzUsZnYzrFTAViuV7jZLo3BMoZr4hyfud3QAEVMud/1/*)#n3t98pvh",
"timestamp": 1779473837,
"active": true,
"internal": true,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "sh(wpkh([e0ffb904/49h/1h/0h]tpubDDV762GtRNWzcoCHRhbzRBY5PRG2Ncdb23DxhosjLyWPSwvcbME1BzDrUA7yRr7CUBaAjv2SYxunx2bqqN22C6t3FtU1UBiPv99UeZvR1cS/0/*))#drugahd0",
"timestamp": 1779473837,
"active": true,
"internal": false,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "sh(wpkh([e0ffb904/49h/1h/0h]tpubDDV762GtRNWzcoCHRhbzRBY5PRG2Ncdb23DxhosjLyWPSwvcbME1BzDrUA7yRr7CUBaAjv2SYxunx2bqqN22C6t3FtU1UBiPv99UeZvR1cS/1/*))#czj79gcs",
"timestamp": 1779473837,
"active": true,
"internal": true,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "tr([e0ffb904/86h/1h/0h]tpubDCEmL2pTBL343hXGaT1w2MEVGjdNpSCEshqNv4iouzP7YDUPkaPofzH3vWvoeM5qtB2it8KNJTpjbRrVYLcsQYaWg4m5K8azD5nDJML6WRo/0/*)#rp2a30h8",
"timestamp": 1779473837,
"active": true,
"internal": false,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "tr([e0ffb904/86h/1h/0h]tpubDCEmL2pTBL343hXGaT1w2MEVGjdNpSCEshqNv4iouzP7YDUPkaPofzH3vWvoeM5qtB2it8KNJTpjbRrVYLcsQYaWg4m5K8azD5nDJML6WRo/1/*)#j40uv68l",
"timestamp": 1779473837,
"active": true,
"internal": true,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "wpkh([e0ffb904/84h/1h/0h]tpubDCGh2f3tu6sVYbmjKXwxPsZ2nf6xmowoWRgiVXzULMcpwjh1abxE2KWiVc8a2kTjWLiJ9JnJESnsXq6kKfR8HwppLrpeAmKSKbtTYPc9JZB/0/*)#h2def08c",
"timestamp": 1779473837,
"active": true,
"internal": false,
"range": [
0,
999
],
"next": 0,
"next_index": 0
},
{
"desc": "wpkh([e0ffb904/84h/1h/0h]tpubDCGh2f3tu6sVYbmjKXwxPsZ2nf6xmowoWRgiVXzULMcpwjh1abxE2KWiVc8a2kTjWLiJ9JnJESnsXq6kKfR8HwppLrpeAmKSKbtTYPc9JZB/1/*)#x7gc56hq",
"timestamp": 1779473837,
"active": true,
"internal": true,
"range": [
0,
999
],
"next": 0,
"next_index": 0
}
]
}
The list of descriptors should be copied in a file (I am not sure if the extension matters, but
.txt
works fine).
Note that
Sparrow is a single-type wallet
, so you cannot have in the same wallet different types of addresses, such as P2PKH, P2TR, P2WPKH,... So you will need a different file for each descriptor type and you will need to create a new Sparrow wallet for each one of them.
Then the file should be imported into Sparrow.
Regarding the error OP was reporting, that is because he likely copied in the import file the entire
listdescriptors
json output.
Sparrow is expecting a descriptor, not a json object. This is why it returns
unrecognized extended key header for...
:
The content of the file must be the single descriptors that are indicated with the key
"desc"
in
listdescriptors
output.
For my previous example if I want to import my P2PKH wallet (the first two descriptors) I will only add those to my file:
pkh([e0ffb904/44h/1h/0h]tpubDDXbj9wYQeG5c1syaE1faUQv85PRadQ9Hc4AqvurD41LM7Xx21KkZdnp5w9nKoSkrsSzUsZnYzrFTAViuV7jZLo3BMoZr4hyfud3QAEVMud/0/*)#z9wy65u0
pkh([e0ffb904/44h/1h/0h]tpubDDXbj9wYQeG5c1syaE1faUQv85PRadQ9Hc4AqvurD41LM7Xx21KkZdnp5w9nKoSkrsSzUsZnYzrFTAViuV7jZLo3BMoZr4hyfud3QAEVMud/1/*)#n3t98pvh
After importing that file you can check the import was correct by checking the master-fingerprint and derivation path:
It matches the original one
[e0ffb904/44h/1h/0h]
so the import was successful.
Quote
Report
Post Reply
Checking account access…