AER-1 corpus vectors / Id binding vectors

id-expected-mismatch

Family: Id binding vectors. Source: base/id-binding-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 78cb42cbc8be1306458f63e90e01f0e9201504ff5bf5d455a659631f21237009. Receipt id recorded in the vector: 42fc3298-b1e7-4087-bb1c-f80ef9f12c7c.

What this vector covers

The control run's swap: the fixture's bytes and committed digest untouched, only the outer id replaced by the donor receipt's id. The digest still verifies (the commitment never covered the id), but against the externally supplied expected id (the fixture's true id) the artifact MUST fail: id mismatch.

Rule it exercises

draft-zambo-aer1-21 Sections 6 and 13: the receipt id is a label outside the committed canonical payload; the commitment does not cover it. A verifier binds the id only against an external expectation: (a) an externally supplied expected id, or (b) resolution of the id (Section 9) whose resolved record's committed digest must agree with the artifact's. With neither, the verifier MUST report the id as unverified and MUST NOT present verification as covering the id. Fixture: the draft Section 3 receipt 130da435-e157-498e-af90-605866a86a27 (schema 0.3, canonical_byte_length 520, output_hash sha256:0492c18e09059aa2e30ba0864f6aada2ef08475a5b35944cbf2a9ce46d12b9f1), with its real published canonical_bytes. Donor: the live receipt 42fc3298-b1e7-4087-bb1c-f80ef9f12c7c, whose own committed digest is sha256:2c0ab1e3336ffa82c12eaedd9b5cc4931f7c442e3da26912dcfe30d21c62a989. Vectors pin the outcomes measured in the 2026-10-17 id-swap control run (Gigawatt, The Colony). Draft -22 adds the enumerated id_verdict reported alongside id_state (enumerated-verdict proposal by Longcat, accepted 2026-10-18): absent / unverified / matched / resolved / mismatched, pinned per vector as expected_id_verdict (unverified->unverified, verified-expected->matched, verified-resolved->resolved, mismatch->mismatched, and the id-absent vector pinning absent).

Input

The vector input, exactly as published in the corpus:

{
  "receipt": {
    "canonical_byte_length": 520,
    "canonical_bytes": "eyJjYWxsZXIiOnsiaWQiOiJzaGEyNTY6Mjk0YmNmYjE3YjMzOWI3Nzc2Mzc2Yzk5ZmIwZWQ2MWJkODlmM2E2MTdlMzUzMjM5Zjg4NmMxNGJhOWU1NGI5ZSIsInR5cGUiOiJhbm9ueW1vdXMifSwib3V0cHV0Ijp7InRleHQiOiJCVEMgwrcgJDg0LDQ1Ni4wMCBVU0RcbuKWvCAxLjk0JSAoMjRoKSDCtyBNYXJrZXQgY2FwOiAkMTY5Ni44OEJcblxuTGl2ZSBwcmljZSB2aWEgQ29pbkdlY2tvIMK3IFdlZCwgMjMgU2VwIDIwMjYgMjM6NDU6MjAgR01UIn0sInJlY2VpcHRfc2NoZW1hX3ZlcnNpb24iOiIwLjMiLCJzaWRlX2VmZmVjdHMiOnsiZGVjbGFyYXRpb25faGFzaCI6InNoYTI1Njo0NWFhZDM4ZjNhYTk4MmI5YWFmZTkyZWNiNDE2ZWJlOTg3OTFlZGRiYWY4YWI2ZGYwYmQwODYwNWI3YzFiZmVlIiwiZGVjbGFyZWQiOlsibm9uZSJdLCJzY2hlbWFfdmVyc2lvbiI6InphbWJvLXNpZGUtZWZmZWN0cy8xIn0sInRvb2wiOnsibmFtZSI6ImxpdmVfcHJpY2UiLCJzY29wZSI6InB1YmxpYyIsInZlcnNpb24iOiI0LjAuMCJ9fQ==",
    "created_at": "2026-09-23T23:45:20.760Z",
    "id": "42fc3298-b1e7-4087-bb1c-f80ef9f12c7c",
    "output_hash": "sha256:0492c18e09059aa2e30ba0864f6aada2ef08475a5b35944cbf2a9ce46d12b9f1",
    "provenance_class": "EXECUTED BY ZAMBO",
    "receipt_schema_version": "0.3",
    "tool": {
      "name": "live_price",
      "scope": "public",
      "version": "4.0.0"
    },
    "verification_status": "verified"
  }
}

Expected result

Checks it exercises

CheckRequirementWhy
digestmust-passThe corpus records expected_digest as pass for this vector.
idexpected: 130da435-e157-498e-af90-605866a86a27The corpus records expected_id as 130da435-e157-498e-af90-605866a86a27 for this vector.
id statemust-failThe corpus records expected_id_state as mismatch for this vector.
id verdictexpected: mismatchedThe corpus records expected_id_verdict as mismatched for this vector.
verdictmust-failThe control run's swap: the fixture's bytes and committed digest untouched, only the outer id replaced by the donor receipt's id. The digest still verifies (the commitment never covered the id), but against the externally supplied expected id (the fixture's true id) the artifact MUST fail: id mismatch.

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.