When the contract, the indexer and the frontend each keep their own version of state, users see numbers that don't match their wallet
We treat contract events as the only source of truth and derive everything above them from the same indexed history
New features then extend the data layer instead of re-deriving it a slightly different way








