Two independent domains must each sign the same canonical transaction before it executes. No wallet, no real funds.
Checking this domain…
The lab is disabled on this domain. It stays off until its configuration, key, permissions and isolation checks all pass.
You get a private test session with 100.00 DEMO for Alice and 0.00 for Bob. Start a transfer, then ask each domain to approve it: each one fetches the same transaction, checks it against its own rules and signs with its own server-side key. Only when both have signed does the transfer execute and a signed receipt appear. No wallet, no administrator token, no real money.
This is an approving domain. Test transfers are started on ; when a visitor asks this domain to approve, it fetches the transfer from there, validates it under its own limits and signs it with its own key. Open a transfer here (paste its id below, or follow the link shown on the settlement domain) to see this domain's own independent verification.
| Transaction id | |
|---|---|
| Canonical payload digest (sha-256) | |
| Digest recomputed in this browser | |
| Origin / settlement authority | |
| Ledger | |
| Created / expires |
Verify it yourself: the "This browser" column is computed in your browser with Web Crypto against the public keys each domain publishes at its roster endpoint; nothing there is taken on trust from this page.
| Signing domain | Decision | Signed at | Signature | Server check | This browser |
|---|
| Account | Before | After | Change |
|---|
The separate main ledger used for administrator demonstrations. Public visitors never touch it.
Server-side events as they actually happen, including every rejected attempt.
Viewing and the public test flow need no login. Creating a transaction on the administrator ledger and signing a manual decision need this domain's demo-administrator token. It is kept in this page's memory only.
What this proves, and what it does not. One domain alone can never execute the transfer; each domain signs with its own key and verifies the other's signature against a public key it pinned in its own configuration. A single settlement authority holds the demo balances and executes, so this is not atomic settlement across two independent ledgers; that needs a separate prepare/commit/recovery protocol.
Failure cases (forged signature, wrong transaction, modified amount, duplicate approval, duplicate execution, insufficient balance, unavailable domain, restart, expiry) are exercised by the automated tests test/manual-txlab-php.js and test/manual-txlab-public-php.js, not by controls on this public page. Public sessions are limited, rate-limited and expire; the public test mode can never reset state, mint balances or sign arbitrary data.