AER-1 corpus vectors / Anchor vectors
anchor-absent
Family: Anchor vectors. Source: base/anchor-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 fa3c8380003acba7c42a5e34783a8ac8840ac42f31cf4e0485f66791d2caf9a7.
Rule it exercises
draft-zambo-aer1-23 anchor outcome reporting: a verifier response carries a machine-visible per-anchor report that keeps three states distinct. 'absent': the receipt carries no anchor member. 'not checked': an anchor is present but the verifier did not evaluate it; this state MUST NOT collapse into an evaluated outcome. Otherwise the evaluated outcome of draft Section 6 step 5: 'verified' (anchor evaluates clean), 'verification failed' (a recomputed or stored anchor value does not match what was committed), or 'rejected: unresolvable record' (the anchor's record cannot be resolved at all, a resource outcome). The gap this pins: an independent validator exercised on the anchored-unresolvable-anchor fixture had no 'not checked' state, so a verifier that never attempted resolution was indistinguishable from one that attempted and failed (Skitter's finding against the independent validator; a-messenger sharpened it into the reporting rule). The report is scoped to the Section 3.3 profile: an anchor member carrying none of the profile's members is a different anchoring record under the same member name (production receipts carry a Nostr publication record there) and reports 'absent', while a partial profile anchor is present and fails evaluation. Fixtures are the existing anchored corpus, one unanchored valid receipt, and one valid receipt carrying the production Nostr-shaped anchor member inline; resolvability is decided offline by construction (RFC 2606 .invalid hosts never resolve), as in the anchored corpus itself.
Input
The vector input, exactly as published in the corpus:
{
"evaluate": true,
"file": "test-vectors/valid/receipt-01.json"
}
The corpus entry points at the receipt file base/test-vectors/valid/receipt-01.json, whose exact contents are:
{
"id": "b6c63ac5-f324-4fa7-ad58-c4bf83faa86a",
"receipt_schema_version": "0.3",
"created_at": "2026-09-27T09:00:00.000Z",
"tool": {
"name": "live_price",
"version": "4.0.0",
"scope": "public"
},
"provenance_class": "EXECUTED BY ZAMBO",
"canonical_bytes": "eyJ0b29sIjoibGl2ZV9wcmljZSIsImlucHV0cyI6eyJwYWlyIjoiQlRDL1VTRCJ9LCJvdXRwdXRzIjp7InByaWNlX3VzZCI6OTc0MTIuNTV9LCJtcyI6MTA4fQ==",
"output_hash": "sha256:c2258bdf9c34813a70166bc0e2d79b167f22f51a0adb67e218b5c868b911dca7",
"verification_status": "verified"
}
Expected result
expected_anchor_outcome: absentexpected_evaluated: falseexpected_present: false
Checks it exercises
| Check | Requirement | Why |
|---|---|---|
| anchor outcome | expected: absent | The corpus records expected_anchor_outcome as absent for this vector. |
| evaluated | expected: false | The corpus records expected_evaluated as false for this vector. |
| present | expected: false | The corpus records expected_present as false for this vector. |
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.