AER-1 Interop Results: The Matrix

Every recorded AER-1 conformance result and interop run, in one place, reproduced as recorded. The rows come from the registry data behind the public registry: the kit's implementations.json and the registry's registry.json. Where a record does not state a value, the cell says not recorded. Nothing on this page is rounded up, and every row links its record so you can check the source yourself.

Run the numbers yourself: the conformance kit and corpus live at gitlab.com/rambozambodotdev/zambo/aer-1, and the current draft is draft-zambo-aer1-23.

How to read this matrix

The status words are the records' own words:

  • conformant: the implementation passed the conformance vectors named in its recorded result.
  • parity-checked: the implementation was compared against its author's own verifier logic in large comparison runs. The record states this basis plainly: parity comparisons, not runs of the conformance kit. The matrix keeps that distinction visible instead of upgrading the claim.
  • reference: the conformance kit itself, maintained with the draft.

One boundary applies to every row. A verifiable receipt proves the saved record was not changed since it was saved. Conformance results show that an implementation reads and checks those records the way the draft specifies. Neither proves the underlying work was correct.

Independent implementations

ImplementationImplementerLanguageDraft revisionRecorded resultStatus
ARION's AER-1 verifierARIONNode.js (stdlib-only)draft-zambo-aer1-08165/165 (full suite)conformant
ARION's AER-1 Java verifierARIONJava 11+draft-zambo-aer1-10186/186conformant
aer1-perlColonistOnePerl (core modules only)draft-zambo-aer1-0968/68, zero disagreements against the Python and Node reference runnersconformant
MasterD AER-1 verifierMasterD (Arkie AI)Python (stdlib only)not recorded84/84conformant
ARION's AER-1 Ruby verifierARIONRubynot recorded24,834/24,834 parity comparisons, 0 divergencesparity-checked
ARION's AER-1 Swift verifierARIONSwiftnot recorded19,615/19,615 parity comparisons, 0 divergencesparity-checked
ARION's AER-1 PHP verifierARIONPHPnot recorded11,529 runs, 0 verdict divergencesparity-checked

Source records: implementations.json in the kit (updated 2026-10-03) and the external entries of registry.json (updated 2026-10-08). ARION's Node.js verifier was written from the draft -08 text alone, with no kit access; the record notes it was independently reproduced twice against the reference kit. The Perl verifier's record notes three spec findings it filed that were adopted by draft -10.

Reference implementation and bundled ports

ImplementationImplementerLanguageDraft revisionRecorded resultStatus
Zambo reference implementation (conformance kit)Brennan ZamboPython / JavaScriptdraft-zambo-aer1-21Corpus: 119 vectors, 122 checks per runner, including 9 Merkle vectorsreference

The kit also ships bundled ports, each recorded in registry.json at 45/45 against the frozen v1.3.2 corpus (45 vectors), tracking draft revision -10:

Interop runs

RunDateRecorded resultRecord
AER-1 x Tanilo: two-party receipt chain2026-10-08Chain verified end to end, each receipt checked under its own rules. Chain run by Joe Krausz (Tanilo): aer1_verify.py on the AER-1 example PASS, 15/15. Interop receipt anchored on GOAT mainnet, block 15948054.Interop page and kit record
AER-1 x FlyThink: physical completion claims2026-10-084/4 cases replay PASS, including the case where a valid AER-1 receipt coexists with invalid physical evidence binding: binding never causes claim inheritance.Interop page

Worked agreement: the one-step Merkle root

The strongest row in this matrix is a single value computed three independent ways. Workflow 6b6952a5-ab1f-4596-a0b3-a352c137cb41 has one step, receipt 4028dabb-3d12-4960-855c-639ce37f14cc. Under Section 8.1 of draft-zambo-aer1-21, the Merkle leaf is the SHA-256 digest of the receipt_id's UTF-8 bytes, and for a one-step workflow that leaf digest is itself the root.

SourceRoot
Spec computation: SHA-256 over the UTF-8 bytes of the receipt_id7c90f65aeccd214f8bb583bec76878d5f463d65b9b26c11e07c51dd59be814d5
Conformance corpus: the one-step vector's expected_root in merkle-vectors.json7c90f65aeccd214f8bb583bec76878d5f463d65b9b26c11e07c51dd59be814d5
Hosted server: merkle_root returned by the workflow's API record7c90f65aeccd214f8bb583bec76878d5f463d65b9b26c11e07c51dd59be814d5

Recompute the spec side yourself in one line:

printf '%s' '4028dabb-3d12-4960-855c-639ce37f14cc' | sha256sum
7c90f65aeccd214f8bb583bec76878d5f463d65b9b26c11e07c51dd59be814d5
This vector exists because the matrix also records disagreements. On 2026-10-12, implementer Iman Schrock (Emilia Protocol) reported that Sections 8.5 and 8.7 described the root over step output hashes where Section 8.1 specifies receipt identifiers. Draft -19 aligned the descriptive text to Section 8.1, the kit gained this one-step vector at his request, and the hosted server aligned the same day: before the alignment it returned 62780c8f..., the output-hash root, for this workflow. The kit record for the vector documents both values.

Check any of this yourself

See it live: zambo.dev/demo mints a verifiable receipt in about 10 seconds, no signup. Keep the receipt link and share it where the work gets reviewed. For a full day of receipt coverage, see the Day Pass.

Browse the public registry of AER-1 implementations.