Author

Topic: Handling multiple wallets in one app (UX discussion) (Read 2670 times)

sr. member
Activity: 378
Merit: 325
hivewallet.com
That's pretty much where I was going. Most people I speak with are happy with 1 wallet. I would consider myself a power user, I'd like to manage multiple addresses the way I said initially above, but I wouldn't want to think of it as multiple wallets really. Sorry I was trying to make it a UX point, honestly!

Sorry, we certainly don't mean to sound ungrateful. Multiple currencies in a single wallet is an easy to understand idea in the tangible world, but Bitcoin-based cryptocurrencies are by no means really that simple, at least when you consider inputs and outputs and key management etc. It makes us question whether "wallet" was ever a very good analogy to begin with.

Still, in that regard, what you say makes perfect sense. A friendly user experience is only going to come from discovering the bridge between some analogy the user is already familiar with, and the New Idea. That's what we're trying to figure out here, and that's why we're asking ourselves how we can introduce multiple wallets, without sacrificing power or (perhaps more importantly) clarity.

So to reiterate, the two "competing" ideas right now are:

Change the context of the whole app based on the wallet selected.
This would eliminate buttons in the SEND window to change wallets, etc. It would only ever be done from one area in the app. Transfers between wallets would happen as a normal SEND action (with the other wallets being conveyed as Contact List entries)

Give the impression of one "wallet" across the entire app.
Presumably this would involve giving a lot of control to the user about inputs/outputs, and would therefore involve much more complex dialogs. It would be nice for someone (Gaff?) to create a mockup of this so we can understand it better.
hero member
Activity: 924
Merit: 502
Are you suggesting that the average user may never even desire to have more than one wallet?

That's pretty much where I was going. Most people I speak with are happy with 1 wallet. I would consider myself a power user, I'd like to manage multiple addresses the way I said initially above, but I wouldn't want to think of it as multiple wallets really. Sorry I was trying to make it a UX point, honestly!
sr. member
Activity: 382
Merit: 253
Are you suggesting that the average user may never even desire to have more than one wallet? Minus the bit about addresses which can be dealt with in other ways, do you realize that you are essentially describing Ripple? :-)

What is a wallet? In my thinking, a wallet is a tool to hold money. My wallet might hold some dollar bills, a few Shire Silver cards, a couple coupons, some loose change, and a debit card. When its time to pay I pull out my wallet. I don't carry multiple wallets with each one holding different currencies. I do still have to decide which currency to pull out of the wallet to give to my payee, but often that decision is made at the last second.

For example, I'm at the grocery store buying $23 worth of cheetos. Man I love cheetos. Anyway, at the register I pull out my wallet and see that I have $34 in dollars, but I also have $50 on my debit card. I make the decision then which one to use. Maybe I'm making an online purchase later that night so I want to preserve the amount in the debit card. Maybe I'm going out later and will want to have cash handy. In this case the store probably doesn't care how it gets the dough as its all the same base currency.

From another angle, I run an online store. When someone buys from me I need to have most of it in dollars in an account I can use to buy supplies. I love bitcoin, and I give a 3% discount for using it because its less headaches, but I do need to quickly convert most of it to dollars. But the person buying my goods doesn't care, nor do they need to know what I do with their payment. So whatever currency a user chooses to send me money isn't all that important. If I have more dollars than I want/need I can convert it to bitcoins myself.

So really, an online wallet is simply a way to keep track of balances and create transactions. Of course it should hold different currencies.

How about this for a dream wallet. It keeps your balance divided up between your preferred currencies in roughly the proportion you specify. Maybe 10% dollars (in PayPal or whatever), 60% in bitcoins, and 30% in litecoins. When you make a payment, it sends it using the payee's preferred currency, converting from the others as needed and rebalancing the portfolio automatically. But all the user sees is "Sending $50 to Joe" or "Sending 1.3btc to Alice".

But the main point is that most people don't care about choosing between currencies. They use their local fiat because that's what everyone else uses.

Somewhat off topic, but I'm still pissed that Peter Schiff's gold based debit card can't be sold/used in the U.S. because of stupid regs.
sr. member
Activity: 378
Merit: 325
hivewallet.com
IMHO, the point of an app is to make it easy to send money to a friend or a store. Users probably don't care what currency they're using, they just want to settle their debts.

So one use case would be you want to send some money to a friend. You look them up on your app, and it says "Joe accepts bitcoin, litecoin, and paypal" (It wouldn't mention litecoin if you don't have any). You input the amount to send in your local currency, and the app shows three buttons: "Send BTC", "Send LTC", and "Send PayPal". You click "Send BTC" and it handles the rest. You never see a bitcoin address, and neither does Joe. In an advanced case, your app connects to Joe's app to ask for a green address to send to so you don't even need to keep track of that.

Most of the folks here are giving very tech driven answers. Not all that helpful for a user interface discussion  Cheesy

Just saw this today, and its pretty cool.
http://vimeo.com/52354666

Somewhat back on track.

Are you suggesting that the average user may never even desire to have more than one wallet? Minus the bit about addresses which can be dealt with in other ways, do you realize that you are essentially describing Ripple? :-)
sr. member
Activity: 382
Merit: 253
IMHO, the point of an app is to make it easy to send money to a friend or a store. Users probably don't care what currency they're using, they just want to settle their debts.

So one use case would be you want to send some money to a friend. You look them up on your app, and it says "Joe accepts bitcoin, litecoin, and paypal" (It wouldn't mention litecoin if you don't have any). You input the amount to send in your local currency, and the app shows three buttons: "Send BTC", "Send LTC", and "Send PayPal". You click "Send BTC" and it handles the rest. You never see a bitcoin address, and neither does Joe. In an advanced case, your app connects to Joe's app to ask for a green address to send to so you don't even need to keep track of that.

Most of the folks here are giving very tech driven answers. Not all that helpful for a user interface discussion  Cheesy

Just saw this today, and its pretty cool.
http://vimeo.com/52354666
sr. member
Activity: 378
Merit: 325
hivewallet.com
Indeed, interesting but off-topic.

Does anyone besides gweedo want to comment on the stated user experience question? :-)
legendary
Activity: 1470
Merit: 1001
Use Coinbase Account almosanywhere with Shift card
Different users different needs. Smiley

I want a app I can use to access lots of different coins some that have no value as of yet. Like Cubits an GPL

I enter coin type (ASIC,Scrypt,Blake) Port number and network code

Not exactly new user stuff not that hard to enter

That is taking an insanely difficult path, especially for new alt-coins that are looking for adoption, that would even scare me off. Also considering that Hive pretty modular with their use of the bitcoinj library inside objective-c and it would only take one good java developer to make bitcoinj to work with altcoins. I have read the source code of both, not terrible difficult stuff, just middleware problems.


For multiple wallets, I would just have on the menu bar a "wallet" menu, which is a drop down listing all the wallets that are available to that Hive instance, and probably a create new. I would also have a check mark next to the currently open wallet. I would also set a default wallet, that can always be opened on startup.



that would work for me. i just don't want to have a android launcher page full of wallet apps each with an install folder with 9 out 10 identical files taking up space
legendary
Activity: 1498
Merit: 1000
- If I have the right unspent outputs for it, I'd like transactions to be paid for from a single addresses and the change to go back to that addresses.

Horrible bitcoin practice, once an address is spent it should be considered disposed. Remember when the android, had that random number issue, and people were able to get to bitcoin addresses, thru the signatures in the transaction, that is why.

Understood. But:
 - You have to backup your wallet regularly - which for a mobile platform is a far worse prospect.
 - This confuses the hell out of newbies.
 - The current Schildbach wallet does this already anyway, so it's no worse than the status-quo Wink

You'd have to go down the deterministic wallet route (there's a BIP for that somewhere right?). I don't mind that, but I think it should be an option.

This is becoming so off-topic, open a new thread and be happy to explain to you all the issues of sending coins back to a used address and what new techniques are coming up in the bitcoin community to fixed those issues. But I am done hijacking hivewallet's thread.
hero member
Activity: 924
Merit: 502
- If I have the right unspent outputs for it, I'd like transactions to be paid for from a single addresses and the change to go back to that addresses.

Horrible bitcoin practice, once an address is spent it should be considered disposed. Remember when the android, had that random number issue, and people were able to get to bitcoin addresses, thru the signatures in the transaction, that is why.

Understood. But:
 - You have to backup your wallet regularly - which for a mobile platform is a far worse prospect.
 - This confuses the hell out of newbies.
 - The current Schildbach wallet does this already anyway, so it's no worse than the status-quo Wink

You'd have to go down the deterministic wallet route (there's a BIP for that somewhere right?). I don't mind that, but I think it should be an option.
legendary
Activity: 1498
Merit: 1000
Different users different needs. Smiley

I want a app I can use to access lots of different coins some that have no value as of yet. Like Cubits an GPL

I enter coin type (ASIC,Scrypt,Blake) Port number and network code

Not exactly new user stuff not that hard to enter

That is taking an insanely difficult path, especially for new alt-coins that are looking for adoption, that would even scare me off. Also considering that Hive pretty modular with their use of the bitcoinj library inside objective-c and it would only take one good java developer to make bitcoinj to work with altcoins. I have read the source code of both, not terrible difficult stuff, just middleware problems.


For multiple wallets, I would just have on the menu bar a "wallet" menu, which is a drop down listing all the wallets that are available to that Hive instance, and probably a create new. I would also have a check mark next to the currently open wallet. I would also set a default wallet, that can always be opened on startup.

hero member
Activity: 924
Merit: 502
I've actually thought about this a little since it irks me how the Schildbach wallet handles addresses. Essentially I want the following (in order of preference):
 - If I have the right unspent outputs for it, I'd like transactions to be paid for from a single addresses and the change to go back to that addresses.
 - Sometimes, when sending coins, I'd like to choose which wallet(s) my coins are sent from. Blockchain.info handles this well with a multiselect list.
 - When receiving coins I want to choose which wallet I display a QR code for.
 - An advanced option that warns / prevents me from sending coins from multiple addresses in a single transaction.

All this assumes that the private keys for all addresses are held together. If they aren't then it becomes a little more complicated but I'd hope the above ideas would cover most of the workflows.
legendary
Activity: 1470
Merit: 1001
Use Coinbase Account almosanywhere with Shift card
Different users different needs. Smiley

I want a app I can use to access lots of different coins some that have no value as of yet. Like Cubits an GPL

I enter coin type (ASIC,Scrypt,Blake) Port number and network code

Not exactly new user stuff not that hard to enter

sr. member
Activity: 378
Merit: 325
hivewallet.com
Just my opinion but multiple wallets and currencies for a small application is not a good idea. This application excels at being very small and quick when I need to send <$100. So packing it with this extra baggage wouldn't be good. Instead make the application fork into each currency build.

Noted, and that may indeed be the direction we take. We will not implement anything that depletes the user experience, whether it be tech that introduces performance bottlenecks or options that cause user confusion. You have our promise on that, so let's allow ourselves to proceed into the idea without dismissing it outright. We will not write any code until it is generally obvious what the direction should be.

To keep things simple, I would suggest that we begin with the simple idea of multiple BTC wallets.
sr. member
Activity: 378
Merit: 325
hivewallet.com
Hi everyone,

We're having a discussion over here in the Hive camp, about how best to handle the user experience of juggling multiple wallets, which could also theoretically involve handling multiple currencies and hosted, remote wallets.

Right now, the approach looks like this:



Selecting a wallet from the main interface changes the context of the whole application -- and by context we mean everything from balance to the fact that we no longer see Apps not related to that currency when switching to another (tl;dr: if a BTC wallet were active, and an LTC wallet is selected, we only see LTC-supporting apps in the menu). We think that to keep user confusion to a minimum, there should be no other way to switch wallets, so it should not appear in the Send window.

In the case where the currencies were compatible, we would include that wallet as a "contact" in the other wallets, to facilitate easy transfer from wallet to wallet (but please note that we may not otherwise make Contacts context-aware):



What do you all think of this? Does anyone have any brighter UX insights? Keep in mind that Hive in particular should be easy to use for an inexperienced user.

We haven't before opened such a discussion to the general Bitcoin community, so we thought we would try it as an experiment and see what happens. Please keep it friendly and on-topic. If this devolves into a fight about Lightcoin vs Bitcoin or other nonsense, we'll make this decision on our own and probably not bother with this exercise again.

FYI, the original post about this was on our GitHub, which is where the final decisions will be made:
https://github.com/hivewallet/hive-osx/issues/45

Thanks!
Jump to: