AER-1 corpus vectors / Merkle vectors
worked-example-byte-exact
Family: Merkle vectors. Source: base/merkle-vectors.json in the AER-1 corpus published at zambo.dev/aer1/corpus.json (kit 1.5.7, draft-zambo-aer1-26), file SHA-256 8c76473616ba909fab61cdb96d3e432f3e91b322833716d494e7afc92ad13a25.
What this vector covers
Byte-exact recomputation of the -05 worked example (Section 8.1): same five step receipt_ids, same root as the draft text.
Rule it exercises
draft-zambo-aer1 Section 8.1 (normative): leaf = SHA-256 over UTF-8 bytes of receipt_id; internal node = SHA-256 over raw 32-byte left || raw 32-byte right; odd node duplicated.
Input
The vector input, exactly as published in the corpus:
{
"receipt_ids": [
"e80168eb-a6a1-4ec9-8478-ac108f9397ff",
"514fe841-bbdd-4804-9ef4-6828842d8763",
"a090bdad-f2cf-48c9-bc89-e9e17700fb15",
"bf88a036-416b-456a-8e82-8c0991811d68",
"ae795bf0-27f8-4cf2-8aef-3f8142b77217"
]
}
Expected result
expected_root: 7c4817ca249edfeae259b98abf63ed38a31d9dbeebf5ee23139410a7a7f63b37
Checks it exercises
| Check | Requirement | Why |
|---|---|---|
| root | must-pass | Byte-exact recomputation of the -05 worked example (Section 8.1): same five step receipt_ids, same root as the draft text. A correct run must produce this root value. |
Try Zambo free: add Zambo to your AI to run this kind of check on your own agent work, with 20 free calls per day and a Day Pass at $0.99 for 24h when you need more. Every call returns a verifiable receipt, and a receipt proves the saved result was not changed.
See the full set in the AER-1 corpus vectors index and the AER-1 corpus checks index, or read the standard itself: draft-zambo-aer1-26.