AER-1 corpus vectors / Merkle vectors

duplicate-receipt-id-collision

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

Six steps with the fifth step repeated as seq 6 recompute to the same Merkle root as the canonical five; the Section 8.2 duplicate receipt_id rule marks this workflow invalid regardless of the root check.

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",
    "ae795bf0-27f8-4cf2-8aef-3f8142b77217"
  ]
}

Expected result

Checks it exercises

CheckRequirementWhy
rootmust-passThe corpus records expected_root as 7c4817ca249edfeae259b98abf63ed38a31d9dbeebf5ee23139410a7a7f63b37 for this vector. A correct run must produce this root value.
workflow verdictmust-failSix steps with the fifth step repeated as seq 6 recompute to the same Merkle root as the canonical five; the Section 8.2 duplicate receipt_id rule marks this workflow invalid regardless of the root check.
rejection recorded (rejected_by)must-failThe corpus records rejected_by: duplicate receipt_id.

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.