Lifecycle Shape
Use the same readable shape across Core, Infra, Bridge, Liquid, support, wallets, and product screens.
QUADPublic Accountability
Use the same readable shape across Core, Infra, Bridge, Liquid, support, wallets, and product screens.
Good product screens should make the next state obvious without exposing private mechanics.
Name owner, action, asset/object/route, and status.
Name expected denom, amount, fee classes, expiry, and route or service class.
Show payment proof, signature, transaction hash, or accepted acknowledgement where required.
Show confirmation, proof, finality, review, recovery, or expiry state.
Give the public id, proof class, owner, status, and boundary.
Completed, refused, refunded, quarantined, expired, recovered, stale, or terminal.
The lane decides which lifecycle labels matter most.
A receipt should close a loop, not open an unlimited story.
The owner records the action, result, fee or amount, finality label, receipt id, and boundary.
The owner records a refusal reason and public next check without implying retry will pass.
The owner records expected amount, actual amount, refund state, and receipt id where public.
The owner records what is held, why public action is blocked, and what public state can clear or terminalize it.
The owner or main site shows last known state and says current state cannot be verified.
The record has no further public action available unless a new owner-published route begins.
Some evidence should survive after payload access ends. The public state should say whether a record is retained, pruned, tombstoned, restored, reissued, cold, expired, or terminal.
Machine-readable retention rules are published at data/retention-policy.json.
Any action screen should answer these before it asks a user to act.