Transaction lifecycle
Wallet approval, consensus, and finalized protocol state are different moments.
The path
The app shows preparing, wallet approval, submitted, consensus, decided, finalizing, and finalized. A wallet hash does not mean the Fact is complete.
Recovery
- Persist transaction ID, method, account, and chain.
- On reload, reconcile the existing ID before another submit.
- A timeout after approval is unknown, not safe to resend.
- After finalization, re-read request and Fact.
Contract truth
Only a finalized successful transaction followed by a finalized state read can support completed protocol copy.
Integration note
Use the transaction panel to distinguish wallet submission from durable state.