Fonta1n3 / FullyNoded

Self sovereign, secure, powerful, easy to use wallet that utilizes your own node as a backend. Powered by PSBT's and descriptors. Acts as an offline signer using your node as a watch-only wallet. C-Lightning compatible for instant, unfairly cheap payments.
https://fullynoded.app
Other
192 stars 37 forks source link

Feature: Use a signer without associated wallet #203

Closed deepy420 closed 2 years ago

deepy420 commented 2 years ago

Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

It seems that currently the only way to use a signer to sign a transaction is to have a wallet associated with it. Otherwise the interface prompts to first create a wallet for it. I don't want to create a wallet for it as then the Bitcoin node will store the unencrypted wallet.

Describe the solution you'd like A clear and concise description of what you want to happen.

Either Fully Noded should allow the wallet to only be stored locally on the phone and perhaps use Electrum or it should allow a signer to sign a transaction without an associated wallet.

Fonta1n3 commented 2 years ago

It actually works just fine to sign any psbt you add even if there is no associated wallet.

Just add the bip39 signer as normal then tap the sign / send / join button on the active wallet view to upload a psbt. It will automatically try and sign the psbt with each signer regardless of what wallets exist.

It is very important that the psbt inputs contain the bip32 derivs, if the psbt does not contain that info then of course it won't be able to sign. It is up to whatever wallet software you used to create the psbt to add the derivation info for each input.

deepy420 commented 2 years ago

It will automatically try and sign the psbt with each signer regardless of what wallets exist.

Maybe it didn't work because I need to manually enter my passphrase? You mentioned that it will "automatically" try to sign.

No wallet existed and I tried to open the psbt, and it just prompted me saying I need to create a wallet first. Maybe at least one wallet needs to exist even if it's not the wallet for that pbst?

It is very important that the psbt inputs contain the bip32 derivs

I'm not technical enough to understand how to check this. I just downloaded and transferred the pbst via iPhone airdrop from Sparrow Wallet. Any insight on how to check would be appreciated. Thanks!

Fonta1n3 commented 2 years ago

To enter the passphrase when signing go to settings > security center > prompt for passphrase

Just create a dummy wallet to avoid that prompt, it should work fine after that. I'll test and fix that if it is the case.

Sparrow would include the bip32 derive I beleive. It basically just means that each input you are trying to sign for includes a derivation path (in the psbt itself) so that an offline signer (Fully Noded in this case) would know exactly which private key is needed to sign the psbt with.

deepy420 commented 2 years ago

It does work for me when I create any wallet (not related to the psbt). I just tested that after receiving your reply. The error message didn't make that clear and I thought I was being forced to create the wallet that matches that psbt, which I really didn't want to do because I didn't want that info on the node. Thanks for the clarification!