So I did a little test and need some help. I created a wallet on an airgapped PC using Bitcoin Core. I made a receiving address and sent some sats there. Now, I’ve got this encrypted wallet backed up but I’m confused about how these addresses work.
I think it boils down to how each wallet handles address generation. Like, Bitcoin Core clearly separates receiving and change addresses based on specific paths. But in Sparrow, if you use a combined path like <0;1>, it might not distinguish between them the same way.
Try just importing the receiving descriptor into Sparrow. No need for the change descriptor; Sparrow calculates that automatically using the extended public key. I tested this and it worked fine for me!
Thanks for the tips! I switched my descriptor to one without <0;1> at the end and that fixed the issue. Looks like the info I found online wasn’t correct. Still searching for it, but I’ll probably lock this up soon.
Seems like there’s a glitch reversing the internal and external chain on some descriptors. I tested with the latest version, and it got inconsistent results. It might be worth flagging this as a problem with Sparrow’s BIP389 implementation.
I’ll report it, but I might have messed up on my end too. My Core watch-only wallet is showing some weird flags. The first descriptor says "active": false, which doesn’t make sense to me.
That happens when you import a descriptor with the same "internal" flag that has "active" set to true. The old one gets marked false. Try another watch-only wallet and make sure you didn’t skip the "internal" flag.
I figured it out! I set the internal flag incorrectly, switching it up worked in another wallet. Thanks a lot, everyone. Feels good to finally sort this out, gonna lock the thread now.