Subaccounts

See https://forum.getmonero.org/6/ideas/175/subaccount

Ever wanted at your bank to separate your funds for proper management? Alas, out of three-four various formulae that each work differently (stock account, credit card account...), this is not possible. When I feel conspiracy-ish, I think this is on purpose, to prevent you to properly manage your funds. Anyway, I&#039;m rambling.

Something I would really like to see in the GUI wallet is &quot; subaccount. Use: separating money for various uses, without having to resort to various addresses, which requires transaction fees, keeping several seeds... (this doesn&#039;t invalidate extra accounts for separation of concerns or mild protection against rubber-hose cryptography).

For instance, a &quot;main subaccount&quot;, a &quot;paying taxes&quot; subaccount, a &quot;car loan&quot; subaccount... Those subaccounts would only exist within the wallet. You could get a better financial hygiene by applying rules like

Send 20% of salary to &quot;savings&quot; subaccount

IF   incoming_payment_idD = my_salary_payment_id THEN send 20%_deposit to subaccount_savings.sub

Deposit: default is main subaccount other subaccount may be chosen manually or with rules (see above)

Sending:

 option 1: if no subaccount is specified, a ranking system scan the accounts and withdraw from the lowest ranking account. The wallet uses all the money from this account and move to the the next one, until it has enough. Ranking may be changed manually (for instance, main subaccount has ranking 0, &quot;monthly errands&quot;, &quot;monthly expenses&quot; ranking 2, &quot;car loan&quot; ranking 3 and &quot;emergency&quot; ranking 100)  option 2: if no subaccount is specified, alert + no sending. Option is simpler, doesn&#039;t hide stuff but relies more on user&#039;s discipline. All in all, this is my preferred option 

All of this could be implement in CLI, of course. When I say GUI wallet, I really mean &quot;final wallet&quot; (as opposed to present simplewallet).

This could also be implemented in the unofficial wallets. It would be a nice way for them to differenciate from the official wallets (which could, eventually, integrate the idea later on). And it could happen before the official GUI and foster innovation.

A bounty could even be considered.