Event reconciliation
Verify that a finalized transaction produced the exact reviewed outcome.
Trust Stack does not equate receipt.status === success with product success. A transaction may
execute successfully while calling the wrong function, emitting an unexpected entity, or producing
an outcome that does not match the user's reviewed intent.
Client-side reconciliation
For each workflow, the parser:
- selects the exact event type at the approved package and module;
- rejects missing, duplicate, malformed, or ambiguous events;
- canonicalizes addresses and parses integers without precision loss;
- compares every security-relevant field with the intent snapshot;
- returns a typed result only after all comparisons pass.
For custody flows, the client then reads the object and vault. Examples include checking that a new lock owns the funded amount, a claim is terminal, a Digital Asset's owner changed to the beneficiary, or a cancelled stream's vault is empty.
Indexer-side reconciliation
The indexer independently validates the fixed event schema and Supra emission proof before writing a record. The original payload and normalized search dimensions remain linked to the event hash.
Failure handling
If submission has a transaction hash but reconciliation fails:
- do not ask the user to blindly resubmit;
- show the hash and explain that outcome verification is incomplete;
- inspect the receipt in SupraScan;
- read current state by the intended object address;
- determine whether the operation finalized before constructing a recovery or retry.
This avoids duplicate value movement after a UI, RPC, or indexer error.
Two independent questions
Event reconciliation answers “did this transaction emit the reviewed transition?” Current state answers “what is authorized now?” Claim and management actions require both.