sparrowwallet / sparrow

Desktop Bitcoin Wallet focused on security and privacy. Free and open source.
https://sparrowwallet.com/
Apache License 2.0
1.32k stars 189 forks source link

Confusing BIP39 UX #52

Closed bitcoinhodler closed 3 years ago

bitcoinhodler commented 3 years ago

I'm trying to create a new wallet with keys held in Sparrow 0.9.9. I choose Policy Type: Multisignature, Cosigners: 2/4, Script Type: p2wsh. For Keystore 1, I click "New or Imported Software Wallet". Next to "Mnemonic Words (BIP39)", I click "Set Words Size" and the 24 boxes pop up. I click "Generate New" and 24 words appear in those boxes. So far, so good.

Now what?

The only buttons at the bottom are "tpub / Watch Only Wallet" and "Cancel".

How do I accept these 24 words as my new Keystore 1?

I finally figured out that clicking "Re-enter Words" did not simply clear the boxes for me to enter a different set of seed words, as I'd assumed after clicking it once. Reading the Tooltip on that button explained things. But I was very confused for a long time by this, and actually thought Sparrow was broken for a minute.

Perhaps a different text on the button would be clearer? "Verify Words"? I think "Re-enter" is misleading since I didn't enter them in the first place. And perhaps instead of clearing all the existing boxes, which makes the screen look very similar -- too similar -- to how it looked before I clicked "Generate New", the verification could be done via a new popup? You could blur out the words underneath, so the user couldn't cheat, while making it clear that the words were still there.

bitcoinhodler commented 3 years ago

One additional confusion: after I type in the words and confirm, there are now two buttons: "Import Keys..." and "Import". They both seem to do the same thing?

craigraw commented 3 years ago

This is indeed a tricky UX issue. The button was originally 'Verify' but later changed because at that stage you're not verifying the words yet. Re popups, one of the key design goals in Sparrow is to limit the number of popups, which can be confusing in their own right.

The text below the title ("Write down words before re-entering") is meant to help, along with the tooltip you found.

Perhaps the button text would be clearer with a longer name: "Next: Re-enter words"?

craigraw commented 3 years ago

One additional confusion: after I type in the words and confirm, there are now two buttons: "Import Keys..." and "Import". They both seem to do the same thing?

The one imports with the default derivation, and the other is the submit button for the textfield that allows you to change the derivation. But you're right, without editing the textfield they both do the same thing.

bitcoinhodler commented 3 years ago

Limiting popups is a good design goal.

I'm not very good at UX but I think we should find some way to make the "re-"entry of the words visually distinct from the initial blank word list, so that it's much more apparent what's happening.

For example, leaving the original word list there blurred out, and typing the words in a different place. There's not really room to put 24 new empty boxes, but how about one larger box where the user types all 24 words as one string? (Though that might complicate or preclude tab completion.)

craigraw commented 3 years ago

I agree making the re-entry of the words more visually distinct is a good goal.

What I propose is adding an interstitial step which asks the user whether they have recorded the words. At this point, they can either go back and view the generated word list again, or proceed (by clicking the default button) to the word list requiring the words they have recorded. This interstitial would create a visual break between the two word lists. The default button text for both the generated word list and the interstitial step would simply be something like "Next >>", ala familiar wizard UX.

craigraw commented 3 years ago

Added a confirmation overlay to the BIP39 word list generation process in caa7ef4:

Screenshot 2021-01-13 at 15 44 09