How did you create your private keys and corresponding public keys and corresponding addresses? And are you talking about individual private keys or an hd wallet with a seed phrase that can create many private public key pairs?
When you create a private public key pair you can sign a message with the private key using the ecdsa or Schnorr algorithm that proves you have the key without revealing it. Anybody with the corresponding public key and signature can verify the message was signed only by someone with the private key. This message could be anything. So one way to prove to your self that you have a private key without sending a bitcoin transaction is to sign any message and then verify it was signed correctly with the public key and signature.
Thanks. Is it possible to do this on Sparrow?
reply
Yes. Click tools and then sign/verify message.
reply
Looks good, thanks!
Is this better or worse than creating a partially signed bitcoin transaction, signing it, and then just not broadcasting it?
Also - if you had something screwed up like script type or derivation - would that be exposed if you used Tools -> Sign/Verify message?
If anyone else would like a few more details, here's an article with a few more details: Signing Messages with Sparrow Wallet
reply
It’s exactly the same as signing a psbt. Sparrow makes it easy for the user to not mess up. As long has you write down your seed phrase and derivation path you are good. One thing I like to do is export the wallet in different formats(specter, blue wallet, other software etc..) and saving it as a backup so I can always restore my wallet in another software easily. This helps avoid the problem of having a seed phrase but not belong able to find the addresses with balances. It also helps you restore the wallet if for whatever reason sparrow is not an option anymore. The backups store xpubs and derivation paths so if exposed will be bad for privacy but does not risk losing funds.
reply