Fetchable balances for accounts and currencies
Any account or currency present in a block must be retrievable from the /account/balance
endpoint. If either is not retrievable, it will not be possible to compare the computed balance of an account with the balance reported by the node itself (needed for rosetta-cli validation).
If a certain type of account does not have a notion of balance, it should never have a populated amount in any operation it is contained in.
Multiple Balance Types
In many cases, blockchains allow an account to have different types of balances with different restrictions on how funds may be used. To specify that a balance change affects a certain type of account balance, implementers should populate the SubAccount field in the AccountIdentifier. The sub-account identified here can be used to describe different types of balances that belong to an account. As noted, make sure any sub-accounts used can be used in balance lookup on the /account/balance
endpoint.