grin-web-wallet
grin-web-wallet copied to clipboard
Define user stories for mainnet
Motivation
As we get ready for main net, there's a need to finalise a baseline flow and design for the wallet user interface. These will be dictated by the core use cases that the wallet is expected to handle. We define the user stories to guide a future brief to designers.
User stories
# | A | wants to | so they can |
---|---|---|---|
1 | User | build file-based transactions | transact with others |
2 | User | use different wallets from the same client | handle multiple sources of funds |
... |
Ping @ignopeverell @yeastplume @hashmap @quentinlesceller @gavinmcdermott @jaspervdm @tromp @garyyu and any others - put in suggestions in the comments and I'll update.
A User wants to review previous transactions, so they can check details of an earlier payment.
A User wants to label transactions, so they can categorise and annotate payments.
a User wants to create a proof of tx ownership, so they can do their taxes/warranty claims
a User wants to see the sum of currently spendable + still maturing grins so they can know how much they can spend and when
a User wants to backup their wallet so they can protect their funds from loss
a User wants to verify a wallet backup so they can be sure the backup is correct
a User wants to restore a wallet backup so they can migrate their wallet to another device
a User wants to only temporarily unlock a wallet with a passphrase to be sure funds are not quick and easy to steal by someone borrowing their logged in computer/device
a User wants to hide the existence of currently closed/locked wallets to protect their privacy and safety
A User wants to enable 2FA, so they can increase their wallet security.
A user wants to keep a history of recent contacts, that the user transfered money to.
A user wants to have a quick solution to convert other coins to grin, like depositing and convert something to work with.
A user wants to have a quick solution to convert other coins to grin, like depositing and convert something to work with.
I think this is outside the scope of the wallet
a User wants to create a contact so they can easily send Grin to specific contact
A user wants to have a quick solution to convert other coins to grin, like depositing and convert something to work with.
I think this is outside the scope of the wallet
Maybe, but wouldn’t it be cool to have something like that in the future? Deposit any kind of money/ crypto and auto convert it instantly to grin to use it immediately
A user wants to track the confirmations for the last/ all active transfers so they can be sure when the transfer arrived at the destination.
Remember everyone that a wallet contains multiple accounts now, so you may want to mine into one account, receive transactions on another, transfer funds between accounts, view a summary of all accounts in the wallet, etc
Also, for moving forward and collaborating, what tools is everybody using for user flows, wireframing, prototyping, version control and handoff?
sketch, invision, open to others
sketch, invision, open to others
Same, along with Framer for higher fidelity prototypes. @lehnberg We'll need a GrinVision account setup for UX / UI guys to collaborate and upload prototypes / assets.
FYI @phenomeus @darsmith I've created a separate issue to track and discuss UX and design tools (https://github.com/mimblewimble/grin-pm/issues/13), and we can focus on the user stories here.
Will update the ticket description soon btw, just having a busy week. Meanwhile, please keep suggestions coming, with focus put on the existing functionality of CLI wallet as well as what we need for mainnet MVP.
My notes now for the kinds of features I think we need in a web application:
Show prominently:
- Wallet summary info
- current block height
- Option to Refresh all data from node
Wallet account management:
- Show/Select from list of accounts
- Show detail on particular account (is there a concept of ‘active account’?
- Display accounts + paths
- Create new accounts / Manage accounts
Wallet management:
- Show summary info for all accounts
- Show summary info detail for a particular account
- Show recent transactions for account
- Show outputs for account + output detail (advanced)
- Outstanding transactions (that haven’t been finalised)
Sending, Receiving… (perhaps one transaction wizard)
- ‘Send wizard’ Defaults to file Creates file, saves to desktop (or emails somewhere?) Displays outputs that have been locked (link to tx that was created) Or tries the direct Https connection
- ‘Receive wizard’ Import file, finalise transaction, save back to desktop for giving to sender to finalise Link to created transaction
- ‘Finalise Wizard’ Finalise and store transaction then post to chain
- ‘Cancel Transaction Wizard’ For careful and thoughtful unlocking of outputs associated with transactions that the user believes aren’t going to ever hit the chain.
Error management:
- Active node not in place
- Can’t reach wallet
- ‘Normal’ Wallet errors (not enough funds, etc) propagated into client.
Adding a few ideas:
A user wants to see time to confirmation so they know the progress on a transaction
A user wants to create a wallet with one click so they can easily start transacting
As a general thought, I think it's important to make the wallet ux feel similar to other existing payment transfer systems (e.g. venmo) so that the user barrier is as low as possible and it's not intimidating for users new to crypto.