Is full balance tracking a must?

When implementing data API, is balance tracking a must have?

By balance tracking I mean this:

  • the current implementation correctly displays the balance of the given address at the given height.
  • not all state changes that move value (coins) are represented via rosetta operations.

Hence query balance will work correctly, but doing an input/output calculation on the operations spawned when querying all transactions via data API will not represent the correct balance contained in the state.

Hi @fdymylja!

Apologies for the late response. Balance tracking indeed is a must have. In order for customers of Rosetta to have confidence in their computed balances as well as for auditing purposes, we require that Rosetta implementations provide universal balance tracking of all accounts for all native currencies.

We should be able to compute balances at a given block height using operations seen until that block and then match it with the balances returned by /account/balance endpoint at that block height.


1 Like