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

improvement suggestion: multiple accounts in one wallet. #92

Closed martijnw closed 3 years ago

martijnw commented 3 years ago

Many Trezor users use multiple accounts so it would be nice / make sense to have Sparrow loop through the m/84'/0'/0' till m/84'/0'/9' accounts in one wallet. This would solve having to create 10 wallets for my single TRezor and consequently enter the wallet password 10 times each time when opening sparrow. It would also make it easier to manage total wallet value.

I think this would really improve usability. Other than that there is no improvement suggestion I can think of. The built-in Tor is great, connecting to Umbrel Node works very nice, fee estimation using own node is quite nice too, the UI is clean and looks pretty. It is the best companion app for my Trezor ever!

craigraw commented 3 years ago

Thanks!

I have a question - what the the purpose of using 10 different accounts? If it is to keep funds separate, then this approach would seem contrary to that goal.

Similar to supporting multiple script types in one wallet, this would probably be confusing to introduce to the wallet UI. The addresses list for example contains a sequential list of addresses by index - introducing this would make it non-sequential.

martijnw commented 3 years ago

The multiple accounts are standard in Trezor to keep funds separate. Instead of selecting the UTXO like Sparow allows, users make several accounts. For example: You can have one for pizza and coffee money, one for savings, one for trading, etc. As such many Trezor, and possibly other HW wallet users will have multiple 'accounts' in one wallet. Yes, it keeps funds separate but only requires one password to access them all.

On Tue, Apr 6, 2021 at 7:17 AM craigraw @.***> wrote:

Thanks!

I have a question - what the the purpose of using 10 different accounts? If it is to keep funds separate, then this approach would seem contrary to that goal.

Similar to supporting multiple script types in one wallet, this would probably be confusing to introduce to the wallet UI. The addresses list for example contains a sequential list of addresses by index - introducing this would make it non-sequential.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sparrowwallet/sparrow/issues/92#issuecomment-813854348, or unsubscribe https://github.com/notifications/unsubscribe-auth/AATVAOTET6ZVEAP446MDYSTTHKROJANCNFSM42NS7HSA .

craigraw commented 3 years ago

I see. This is a different model to Sparrow, and I think poorer because of privacy implications around UTXO selection. I don't think it makes sense for Sparrow to try to support both in a single wallet - it would complicate things to have to keep different accounts in mind when selecting UTXOs, and the UI issues are considerable.

alexmat commented 3 years ago

Actually I have a similar need with another wallet. I'm interested in using sparrow to watch a wallet with several accounts. I would prefer to see them aggregated in one sparrow wallet since I have several such wallets I need to watch and it gets out of hand quickly with more than a handful of accounts per wallet.

I wouldn't mind if this was an advanced feature that required editing the wallet file json by hand as long as I could watch several accounts in one tab.

Thanks for an otherwise awesome piece of software.

ghost commented 3 years ago

I would also be reluctant to implement this - unless it can be implemented in a very intuitive and simple way into existing UI. Keep it simple is key for this wallet.

6102bitcoin commented 3 years ago

Outstanding Action: Access multiple wallets in a single file without compromising sparrow's UI architecture (as per https://github.com/sparrowwallet/sparrow/issues/57) Proposed Priority: Low

craigraw commented 3 years ago

Implemented in 58e3b9d.

Accounts 0 to 9 can be added in the Settings tab via a new "Add Account" button if they are not already present. Software wallets are added automatically, while hardware wallets will need to be imported on the new derivation via the standard wallet setup flow with the existing hardware wallet as the only option for that keystore.

The derivation for accounts will follow the BIP44/BIP49/BIP84/BIP48 standards. Legacy multisig with P2SH (m/45') does not support accounts, and therefore this functionality is disabled for those wallets.

In addition, Whirlpool accounts can also be added to BIP39 software wallets in this manner without the need for a premix transaction.

Screenshot 2021-09-29 at 10 25 14