By looking at Moneropedia, words Account and Wallet may seem to be interchangeable, yet there are different methods for each at monero-wallet-rpc (e.g. create_wallet and create_account). So what's the difference between these two? I obviously cannot use Monero without having a wallet. But do I have to get an account as well?
2 Answers
Accounts were created as part of the subaddress scheme.
A wallet has a seed. From this seed, the primary address private spend and view keys are derived. From these private keys, subaddresses are derived. Subaddresses are grouped into accounts.
This primary address is the first address in the first account in the wallet.
Each account has its own balance, and can have multiple subaddresses associated with it. Since accounts are only groupings of subaddresses, there is no such thing as an account address (unless you count the first subaddress in the account as the "account address").
So a wallet can have multiple accounts, and each account can have multiple subaddresses.
Since accounts and subaddresses are deterministically derived from the seed, you only need to know the seed in order to restore the account/subaddress structure when restoring a wallet (although any labels you assign to the accounts/subaddresses will need to be noted separately).
-
1This is a good place for an infographic :) ( I know people rip on them, but I've typically liked them for quick overviews)– DaveCommented Aug 31, 2018 at 16:55
Originally, the term "account" was thought to be more user friendly, especially for people without prior exposure to cryptocurrencies, so there was a plan to migrate from "wallet" to "account", and from "address" to "account number". This was never done in the end, but some text, such as the one you spotted, uses those terms.
-
Could you perhaps be talking about terminology that existed somewhere else in the codebase? The wallet-rpc commands get_accounts/create_account/label_account all look to me like they apply to subaddress groupings.– knacccCommented Aug 30, 2018 at 23:12
-
I don't think this made it anywhere in the codebase. If it had stuck, only user level messages would have changed. You are correct about the RPC commands, it's a different use of "account" that's recent (subaddresses being a recent addition to Monero). I added a link to the original discussion for reference. Commented Aug 31, 2018 at 9:07