Demo guide
Party selection
Choosing a party opens a view scoped by that party's own Ledger API projection. Available roles: Participant A, Participant B, Participant C, Operator, and Regulator (A). Nothing about which party you act as changes what the interface shows you — it only changes which party's own projection is being read.
Compression Console
The main action, Run compression cycle, drives the real off-ledger client against the live ledger: it writes an offsetting three-party ring of encrypted bilateral trades, runs the real matching algorithm to compute the teardown and replacement topology, has each participant run its real per-node risk check before committing, discloses the nominated trades for the operator's execute, and reports what the ledger actually returns — the replacement-leg count, the operator's own trade count, and each participant's post-cycle trade count.
A second action, Run operator-blindness check, writes a single persistent encrypted trade between two participants. Because the compression cycle's offsetting ring fully compresses (nothing is left to read once it completes), this second, persistent trade is what feeds the privacy matrix and the "try to cheat" control below.
Ledger / X-ray
Switch to the acting party's own ledger activity feed: every CREATE and ARCHIVE event in that party's projection, in order, with a contract-detail drawer. Every economic field renders exactly as it exists on-ledger — ciphertext, never a simulated redaction.
"Try to cheat"
Visible when acting as the Operator, on the Ledger tab. This genuinely attempts, as the operator, to read and decrypt a participant's trade from the operator's own ledger view. It reads the operator's real projection — empty by construction — and reports the real outcome: the attempt fails because there is no trade in the operator's own view to open.
Privacy matrix
Fills in cell by cell as each underlying live projection read resolves. Each cell is computed from a real read of that party's own active-contract set — the same table published in the privacy modelpage, made runnable and falsifiable. A cell the running scenario has no basis to measure (for example, a regulator row when no regulator was allocated) shows honestly as "n/a" rather than a guessed value.
Live counter
"Positions seen by the operator" and each counterparty's own trade count, read live rather than asserted as zero.