A buyer on an Ariba-shaped system and a seller on an Alibaba-shaped system trade at machine speed, each keeping its own book, never exchanging a message — and every deal is provable on one neutral rail, by both sides, offline. One 32-byte commitment per period is all that leaves a company. Everything on this page was measured on 4–5 September 2026 and every number links to the file it was read from.
ai.decision, subject reference, inputs digest — pseudonymised). API description: apeirora.cotrugli.tech/docs.POST /v1/seals/receipt/lookup; MCP tool proof_by_commitment at mcp.cotrugli.tech). What it gives: operator-free reading for whoever holds the commitment. What it does not give: isolation between companies — commitments are deterministic hashes of content.A deal is a trading relation named from the contract number alone — both edges derive the same relation_ref without talking — plus the buyer's purchase order in cXML vocabulary on one side and the seller's confirmation in trade-order vocabulary on the other. Each side seals every second: one 32-byte commitment in one frame. The kits carry a deterministic random sample of deals with full proof material; the same deals are sampled on both sides, so a verifier can show the two books agree on the relation and both reach a witnessed position. Deals one side reached in a second the other did not (353 buyer-only, 180 seller-only in the sample) are reported as one-sided, never paired. Verdict PASS, 0 failures — verify_trade.json · summary.json.
Example deal D-p1-1788605447-0-1142: relation 06ced47638e57546… in both books; buyer's commitment 9d83404603592fee… at position 476, seller's c799ac842c2eef7f… at position 476.
One deal, three shapes. What each system hands over, what the edge writes, and what leaves:
| Ariba-shaped buyer | Alibaba-shaped seller | |
|---|---|---|
| the system's document | {"ItemOut": [{"SupplierPartID": "SKU-2MP-1", "UnitOfMeasure": "PCE", "quantity": "10"}], "NetworkID": "C001", "currency": "EUR", "documentType": "OrderRequest", "fiscalYear": "2026", "orderDate": "2026-09-05", "orderID": "PO-D-p1-1788590677-0-1016", "total": "1250.00"} | {"companyId": "C002", "currency": "EUR", "documentType": "ORDER_CONFIRM", "orderId": "OC-D-p1-1788590677-0-1016", "orderTime": "2026-09-05", "orderYear": "2026", "productList": [{"productId": "SKU-2MP-1", "quantity": "10", "unit": "PCE"}], "totalAmount": "1250.00"} |
| the book's record (same grammar both sides) | doc_kind=PURCHASE_ORDER · relation 8a53b61f71706014… | doc_kind=ORDER_CONFIRMATION · relation 8a53b61f71706014… |
| what leaves the company | d141a0c74a4e301ed180eff2cca40774c9cdedee433aace85171f718c2a655b332 bytes | f0364b7c2054122941eb23bdf3199f6b82c37925edb765a58ab0e04270df2b9132 bytes |
Illustrative single-record period built with the same code the kits use (one_deal_three_shapes.json); the run's real commitments are in the kits.
Shapes, not connections: the documents are shaped like those networks' documents so the pairing across marketplaces is real; neither Ariba nor Alibaba is connected. That is the ask for the General Assembly. Live view while a run is on: demo/8ra/live.
What happened, act by act (screenplay.log):
{}{'sent': 50, 'attested': 50}{'snapshots': 2, 'edge_id': 7101, 'epoch': 9, 'frames': [1, 1]}{'sealed_or_anchored': 2, 'pending': 0, 'statuses': {'sealed': 2}}{'bundles': 1, 'roots_pending': 0, 'positions': [39]}{'hours': [3720], 'roots_without_hour': 0}{'issuer_alive': False}{'rc': 0}Self-test inside the verifier: a tampered copy of one decision fails (content_rehash, era_sealed); a fabricated decision fails (content_rehash, snapshot_present, neof_receipt_present, neocl_receipt_present, bundle_present). Full result: verify.json. Kit samples: events, paths, snapshots, door receipts, ledger receipts, proof bundles, hourly unit.
Not proven here, by design: the era seal (the bundles say eraseal: null; witnessed ≠ sealed). Verified ≠ business success; verified ≠ content-authenticated.
| edge | box | ledger request | NEOva2 position | witnesses | seal → witnessed | hourly unit | offline verdict |
|---|---|---|---|---|---|---|---|
| 7102 | hvar1 | fx.7102.2.1.0 anchored | 26 | neo-5, neo-6 | 188.2 s | 3623 | PASS 14/14 · verify.json |
| 7103 | hvar2 | fx.7103.1.1.0 sealed | 27 | neo-5, neo-6 | 62.0 s | 3626 | PASS 14/14 · verify.json |
Each edge proves its own period from its own kit: records → record hashes → snapshot root → commitment == door payload → ledger leaf recomputed → beat root → bundle → hourly unit. Real iron: Telemach (hvar1, hvar2) → production door → production ledger → production archive.
A relation opening is a trading relation named between two companies plus one durable book record of it; nothing crosses the network per opening. Each process seals once per second: one 32-byte commitment in one frame, whatever the second held. Every second of the run was above 10,000 openings/s (59/59). The door admitted all 1,320 frames offered, 22 per second on average; every snapshot root was recomputed from its record hashes and every downstream proof checked; 3,960 randomly sampled records were recomputed from the record itself — all passed. Every record can be verified the same way; we did not recompute all 935,279. Where the limit lies was profiled only on the edge side (pure-Python canonicalisation 57 %, one fsync per record 24 %, small virtual machines); rail-side load and latency under this test were not measured against a baseline, so we make no claim about the rail's headroom from it. Files: summary.txt · verdict per kit · one kit's verification.
The NEO Chamber (membership, bind, decisions as attested records) witnesses every checkpoint root of its own chain to the same ledger — 2 checkpoints proven on 4 September: position [37], witnesses neo-5, neo-6, bundle and hourly unit valid offline (chamber_verify.json). Overlays add records; they never rewrite the core.
The package below holds the demonstration data of demo 1 and our reference verifier, designed to check the chain from each record to its witnessed position and public unit offline. What the verification relies on, stated plainly: the verifier and its vendored code (ours — read it; run.sh runs it with sockets disabled, so a PASS was computed from the files alone), the protocol rules it encodes, the member value you pass, and a witness registry you obtained from a source you trust — from this zip alone you check our claim with our keys, which shows the mechanics, not an independent confirmation of the witnesses. Requirements: Python 3.11+ and the cryptography library. We are the bookkeeper: this proves what was recorded and witnessed, and when — not that a record's business content is true.
unzip neo-trade-verifier-2026-09-05.zip && cd neo-trade-verifier # or neo-verifier-2026-09-04.zip
python3 -m venv .venv && . .venv/bin/activate && pip install cryptography
bash run.sh
# last line: {"verdict": "PASS", "events": 50, "passed": 50, "failed": 0, ..., "positions": [39], "hour_periods": [3720], "omission_gaps": []}
Then change one byte in kit/events/*.json and run again: that decision fails, the others pass. Duplicate a record under another name: the kit-completeness check names the gap. The public unit named HOUR spans 60 seconds in the current epoch; the era seal is not proven.
Bounded on purpose: one workload, semantics before scale; 10,000 nodes is multiplication of the same container. Nothing on this page is a promise about the 8ra General Assembly; it is what runs today.