open-standards/jcp/conformance/v1
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 01128aed3e
Some checks failed
repository checks / lockfiles, advisories, tests in CI, workflow hygiene, spec and section references, public text (push) Failing after 6m0s
jcp: the hold's life gets a published log and a second reader, and the profile spans it
Five receipt members added in the last two days — `held_minor`,
`known_through`, `captures`, `reclaims`, `refunded_minor` — had no published
vector and no independent reader. By this repository's own bar that means their
canonical form was pinned by nothing but the implementation that wrote them.

`conformance/v1/lifecycle.json` is one hash-chained log holding the life of a
money hold: a hold captured in part and then reclaimed past its deadline, a
hold captured and settled, a spend refunded by its issuer, a refund refused to
its subject, and a point that states its revocation marker on some receipts and
not others. It publishes the joules, gross money and refunds a reader must
restore. `verify_lifecycle.py` reads it by the specification's rules, sharing
no code with the reference implementation, and restored the same ledger on its
first run. Its selftest re-reads the log with each rule broken — restoring a
captured hold's whole reservation, restoring a reclaimed hold's money,
subtracting a refund from the gross debit — and requires every one refused, so
a pass means the log distinguishes the rules. It runs in CI beside the replay
reader, and a Rust test reads the committed pack through the library.

Regenerating the vectors produced exactly one new file. Every existing pack
came out byte-identical, which is independent confirmation that none of the
receipt changes altered a published vector.

The x402 profile now spans the lifecycle, and this is where our side differs
from the wire it rides: **every capture seals its own measurement.** A stream
paid per chunk gets a receipt per chunk, each committing to that draw's amount
and the energy metered since the last — so a dispute over the third step has
the third step's evidence, not one total sealed afterwards. `capture`,
`reclaim` and `refund` are on the profile; ingest reads `auth-capture` and
`batch-settlement` and takes the capture deadline from the requirement; and the
refund goes through the runtime's rule, so the agent cannot refund itself.

Co-Authored-By: Claude <[email protected]>
2026-11-10 15:24:37 -05:00
..
action_receipt.json jcp-action-receipt: AR-1, the composition envelope 2026-08-28 08:44:07 -04:00
action_receipt_meta.json jcp-action-receipt: AR-1, the composition envelope 2026-08-28 08:44:07 -04:00
dual_ceilings.json jcp §8.1: a restart no longer hands back money or a tainted wallet 2026-11-07 09:47:46 -05:00
efficiency.json efficiency/1: a partial energy figure is sealed as partial and never headlines as a task total 2026-10-20 13:58:36 -04:00
energy_trace.json jcp: publish the energy_trace/1 conformance pack, and replay it 2026-10-02 00:06:10 -04:00
legacy_jcp1.json jcp: JCR-1 receipts bind their payload — jcp/2 + version dispatch (SPEC §8, C23) 2026-07-18 03:04:19 -04:00
lifecycle.json jcp: the hold's life gets a published log and a second reader, and the profile spans it 2026-11-10 15:24:37 -05:00
meta.json loader-gguf wave 39: Intel OpenVINO IR (.xml + .bin) 2026-06-09 11:07:50 -04:00
replay.json jcp §4.6: a restart no longer hands back a standing grant's firings 2026-11-07 09:47:46 -05:00
standing.json jcp §4.7: an amendment may only tighten against what the grant has LEFT 2026-10-08 10:27:01 -04:00
vectors.json jcp: JCR-1 receipts bind their payload — jcp/2 + version dispatch (SPEC §8, C23) 2026-07-18 03:04:19 -04:00