Guide icon indicating copy to clipboard operation
Guide copied to clipboard

Create a page about accounts

Open Bosch-0 opened this issue 2 years ago • 2 comments

Something we haven't touched on is the guide is the concept of accounts. Its quite an overloaded term and could apply to lots of different things but I think its inevitable bitcoin apps will have accounts in some form in their apps.

I think it would be useful to have some guidance in how you could integrate accounts into a bitcoin application. As accounts are quite general and could apply to any type of bitcoin application I'd suggest creating a page in Designing Bitcoin Products section that goes over things broadly first. We can then use this page to nicely integrate some account based content into our reference designs where relevant.

Things this page could cover:

  • Payments (lightning) vs. savings (on-chain) accounts.
  • Other types of assets accounts (Taro based, liquid, slashtags etc.)
  • Pure application / UI focused accounts (such as having multiple savings (on-chain) or payments (lightning) accounts for different purposes

Accounts can also refer to different user 'profiles' which contain accounts (as detailed above) within them though I'd avoid that terminology and think of a bitcoin wallet as a collection of bitcoin accounts. Similar to how you have a physical wallet that may have bank cards for different accounts you hold at your bank.

Applications that have accounts we can check out:

  • Alby
  • Zeus
  • Bluewallet (they call them wallets but I'd call them accounts)
  • Bitcoin beach (I think Milli is working on something around this)
  • Synonyms wallet once launched
  • Green wallet (have on-chain and liquid accounts)
  • Hexa (lots of different account types)

Bosch-0 avatar Jul 08 '22 06:07 Bosch-0

Accounts are also a useful companion for unified payment requests if the user is not using a swap address (an on-chain address controlled by a LWS that conducts a swap on any received bitcoin). As the user will need an on-chain account to receive to.

An on-chain account is also needed for lightning-only wallets for channel closures.

Bosch-0 avatar Jul 08 '22 06:07 Bosch-0

And not to forget BIP 44 with the derivation path multi-account handling (also see HD wallets), which I think Blockstream Green uses here but most wallets ignore.

image

GBKS avatar Jul 08 '22 09:07 GBKS

Hey @Bosch-0, is the issue open curently? I was willing to take it up.

rupam870 avatar Mar 27 '23 12:03 rupam870

Here's a nicely executed solution via Family. Don't think it's the best approach though because it creates more onchain overhead. Want to move money from one account to another, you have to make a transaction. The use case of segmenting money into different buckets for different use cases can be just done on a UI level without this overhead. A second criticism would be (and this might just be a thing in the video demo) that wallets for different use cases should function differently. "Lunch money" is probably more in the daily spending category and can be a lightning wallet, while "Rainy day" maybe should be an external-signer setup (higher amounts need better security, convenience is less important).

GBKS avatar Apr 13 '23 06:04 GBKS

@rupam870 we are discussing this issue in the context of revising the savings wallet reference design. There's a proposal here that you are welcome to chime in on. If you're interested, let's chat in the Slack channel.

GBKS avatar Apr 13 '23 06:04 GBKS

Trezor also allows for multiple accounts. Screenshot 2023-06-21 at 12 30 05

rabbitholiness avatar Jun 21 '23 10:06 rabbitholiness

I'll tackle this one after wrapping up my open PRs. It will be a helpful foundation page for #986 and #777.

GBKS avatar Sep 11 '23 13:09 GBKS