Some checks failed
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 1m39s
standards workspaces build + test / aac-rs (pull_request) Successful in 32s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 1m8s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 37s
standards workspaces build + test / map-rs (pull_request) Successful in 40s
standards workspaces build + test / mesh-rs (pull_request) Successful in 35s
standards workspaces build + test / openpay (pull_request) Successful in 2m53s
wai cross-architecture byte-equality / linux-aarch64 (pull_request) Successful in 24s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Failing after 42s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 26s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 50s
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 3s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m48s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m17s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m12s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m6s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m48s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 2m34s
wai cross-architecture byte-equality / linux-x86_64 (pull_request) Successful in 22s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 2m0s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 2m20s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 26s
standards workspaces build + test / jouledesk-rs (pull_request) Successful in 1m58s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 44s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 44s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 2m5s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m53s
wai formal verification (integer core) / kani (pull_request) Successful in 4m4s
standards workspaces build + test / macOS energy backend (jcp-energy) (pull_request) Successful in 1m50s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 54s
wai cross-architecture byte-equality / macos-arm64 (reference) (pull_request) Successful in 22s
WAI neural decoders end-to-end / synthetic fixtures → Rust decode → reference (±4) (pull_request) Failing after 1m11s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 26s
WAI conformance / cargo-class corpora · macos (pull_request) Successful in 2m29s
WAI conformance / cross-arch byte-equality · macos (pull_request) Successful in 22s
WAI energy receipts / energy receipts · macos (pull_request) Successful in 58s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 2m35s
wai cross-architecture byte-equality / windows-x86_64 (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · windows (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · windows (pull_request) Has been cancelled
A JWP receipt says what was delivered, by whom and at what energy cost, and binds to its object one way. Other statements about the same objects had nowhere to go, and energy-measurement §2 requires an acquisition class beside every non-zero figure, which the object receipt has no member for. jwp-receipts §2.4.3-§2.4.7 adds a `claim` kind with one envelope, one canonical form (RFC 8785) and one signature rule for the classes energy, lawful-basis and log-inclusion. §2.6 and §3.2 add a second, deliberately weaker binding class: a publisher-signed soft binding with a resolution endpoint, under the ancestor rule. §3.1 step 3 fixes a strict Ed25519 rule. A declaration that a decision or a recovery record is checked against is verified before anything is compared with it (`context_invalid`). OER as settled on main is authoritative: this adds no second OER reader and changes no OER rule, vector, verifier or document. An OER receipt an energy claim names is read by oer::load under the document profile, verified by oer::verify_receipt, and its figure read by the exact quantity reader the composition checks use, through a new crate-private oer::rounds_to_micro. claim_verify.py does the same with the OER reference's load, verify_receipt and dec. The claim envelope keeps its own step-1 reader (claim_text.rs), which reads claims only. - Acquisition classes are the refined ones. The energy body carries the class as energy-measurement §2.7 writes it in JSON (energy_provenance, energy_uncertainty, energy_counter_filtering, energy_calibration_ref), present and null where a class has none, so a claim keeps one canonical form. Legacy HwShunt is refused, since no claim predates the refinement (energy_legacy_acquisition); missing, misplaced or sub-floor evidence is energy_acquisition_evidence. The grade correspondence is oer-receipts §2's, an exhaustive match over all five variants. - §3.1 step 2's member tables give exactly the type step 2 checks, and step 2 lists what the class rules add to a type as step 4's, never field_type. Both verifiers read a declaration in its table's order (they had read purposes before vocabulary and fragment, and every encoding after every member, so a declaration with two defects gave another reason than the text). - oer::py_float_repr writes a double at a tie between two shortest decimals as CPython's repr does (round half to even at the shortest length). No content address or verdict depended on it: main's number profile keeps floats out of every receipt body. It changed the printed name of a vector named by such a number, which both OER verifiers print and the OER fuzzer compares. Fourteen doubles CPython 3.14.7 wrote are pinned. - claim-conformance/: 154 vectors covering all 40 reasons, the canonical fixture recomputed by claim_verify.py and pinned, a second verifier (claim_verify.py) that shares no code with wai-rs, and differential.py, which runs both on inputs the corpus does not hold. receipt_claims joins the conformance library tests and both corpus loops. Checked on this machine (macOS arm64) on the stream's tree: - library tests with receipt_claims (dev; oer + receipt_claims also release); - wai_claim_vectors and wai_oer_vectors verify their corpora; - claim_verify.py reports every vector's declared outcome; - differential.py: its default families and 20,000 random inputs (seed 7): no verdict differs and nothing crashes; - oer2_verify.py passes every OER vector file and refuses every unreadable document, the C kernel's output equals firmware_vectors.json, and fuzz_differential.py (seed 1, 20,000 documents) finds no divergence. And on this commit's tree, the per-link gate: build, library tests, carriage, every corpus in the conformance loop, byte-exact, wasm32. Not run here: the Linux and Windows legs (CI runs Linux; the Windows runner is offline). The Python scripts are run by hand, not in CI. Not done: key discovery (every claim signature presumes the verifier holds the key), an authority class for who may sign which class, region- or time-scoped soft bindings, and checking a log's receipt under its profile. Co-Authored-By: Claude Opus 5.5 <[email protected]>
3054 lines
255 KiB
JSON
3054 lines
255 KiB
JSON
{
|
||
"about": "jwp-receipts section 2.4.3-2.4.7, 2.6 and 3.1-3.2: typed claim receipts and the soft binding class. Every vector is synthetic: keys are Ed25519 from fixed 32-byte seeds (0x11 publisher, 0x22 meter, 0x33 operator, 0x44 sink, 0x55 resolver) and attest nothing; figures are invented; algorithm names, endpoints, logs and registries use reserved example domains; vocabulary terms are illustrative and are not checked against the vocabulary. Expected outcomes are declared per vector in the generator, not copied from a verifier. Regenerate with `wai_claim_vectors gen`.",
|
||
"vectors": [
|
||
{
|
||
"name": "energy_accept",
|
||
"about": "an energy claim binding an acquisition class, coverage and grade to a subject's figure",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "797a6d60712bb66270be3683546ed9d92c7134d3a3cfa34f304e6fdad886046f"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_chain_accept",
|
||
"about": "a second claim by the same signer, linked to the first",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Partial\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"projected\",\"joules_micro\":3000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"797a6d60712bb66270be3683546ed9d92c7134d3a3cfa34f304e6fdad886046f\",\"seq\":1,\"sig\":\"f5628ae10f7ffd6e16b0b303ee2d535ad35a4b53d2259caa894974a2b2bbb9111d3f8d6aae2ece8478eeccc2e9949b2ab5e82eda0d38f660e49773effd5cd70b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "c14a2816565d6e261110df6da3feee179d2ac21574f2163d1416284fe7ca69e9"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_delivery_accept",
|
||
"about": "the claim repeats the delivery receipt's figure exactly",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 12000
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "797a6d60712bb66270be3683546ed9d92c7134d3a3cfa34f304e6fdad886046f"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_accept",
|
||
"about": "the OER receipt the claim names verifies and states the same figure and grade",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:f33e7e0bfa42e085a0dc77cbcc572ed53ab173abbfc204815b88b280dd45b1b9",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "58ce164fe947fac98cebd69d3383ae54a9eaf5ab4fd6870b6dad4f20b669bdacad354d826215ea0a71484a1536ece4ea4d2412072e7d85579975507ca05c910b"
|
||
},
|
||
"receipt_id": "sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "797a6d60712bb66270be3683546ed9d92c7134d3a3cfa34f304e6fdad886046f"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_rounded_accept",
|
||
"about": "0.0120004 J is 12,000 uJ at microjoule resolution",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:f3b395bcd1c12c641abf8e2bea5a77f1d741fd94075b94e29aab90ae2b41a40f\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b9121083b2b99c9a38ea131ce4b3bfea6bc363303b7d8cc8b2b400151209eeee9cf20f1a096695ff9b35ccd0d98eb3ef888c3ab07f64b1d872bd988d2b43b20d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.0120004",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.0120004",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:d128f90514adb2f1a99246054944cd0d25b5cf46f111911dbe659ada9decad96",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "00a637cdcc58adc5e9067081f731952dc79440488a1c704f3ce82988f9ea0f943c489bb6bf2da581974f84b4dd6ae60d04f5962eb08c09f2537fb9f5e56bc003"
|
||
},
|
||
"receipt_id": "sha256:f3b395bcd1c12c641abf8e2bea5a77f1d741fd94075b94e29aab90ae2b41a40f"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "f60a918702caf8fd879f30398deb649f376a0b3718148b791d9bfe3bb00a3308"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_undergraded_accept",
|
||
"about": "an OnChipCounter figure graded derived: claiming less standing than the class supports is allowed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c206a7df89cd2a9c6d6c2af48a4ef57c73646be2725572cca555f4ee2020d3afc519997d860bf4f3932ed3f82d647fef29acd6f4282637680891d298eeafdb06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "9f2129fef510d9b8477671f5251c133c3f4058307cdbeae930e5bd5c977ab142"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_declaration_accept",
|
||
"about": "each purpose carries its own basis",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "3b61a61fc9fce4c55346426ca2a79a52ec9e817a7acde4dde3d1bd845cc79057"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_decision_accept",
|
||
"about": "a decision on a declared purpose",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"declaration\":\"3b61a61fc9fce4c55346426ca2a79a52ec9e817a7acde4dde3d1bd845cc79057\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:ServiceOptimisation\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ec53482c540cc6fe535f48fc583bec1f2c0643ace63c6c4e17ed16fdb1824d173101d8052d9054a0d9e849794c9b7976bac99dc1ab2ddf60702f37db38290402\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "8bceb8c02f63daa9b07e1bd32284b1d01393442267b1c876db306ac48e712fa8"
|
||
}
|
||
},
|
||
{
|
||
"name": "log_inclusion_accept",
|
||
"about": "subject is a receipt; the log's own receipt is carried opaque and not checked here, so accepting it establishes that the signer asserted inclusion, not that inclusion holds; chained to the same signer's soft-binding claim, because a signer's claims form one chain",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"entry\":\"entry-0001\",\"log\":\"https://log.example.org/\",\"log_receipt\":\"6f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e206f70617175653a206e6f74206120434f534520726563656970743b206e6f20696e636c7573696f6e2069732065737461626c6973686564206279207468697320766563746f722e20\",\"profile\":\"urn:ietf:rfc:9942\"},\"class\":\"log-inclusion\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"seq\":1,\"sig\":\"b82d68fe8050f931d41c290a46b3f50f2657395f0360fb8661d76d71f81f415c701011b8a8c4055fc44341c53b30037d579b8f5ff87e65d05dd35164df343a0a\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "a4c6a2ab0198f7717b5ade0441d5889389245eda7f3cdebb5f794610961d750c"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_accept",
|
||
"about": "the publisher's soft-binding declaration with a resolution endpoint",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_accept",
|
||
"about": "a recovery claim whose subject is the ancestor, naming the declaration the ancestor's publisher signed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c3352da4e95f9bd206d4a45b29e3ceed9f72c9f5c88ec8ceb287485234fe613f59cf1899571037584f54c6847269b3d2098161995ec2647bcfac2e4744f21905\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "cec0956694775399f2ea5a8552672582eb07909231031c2e70627db4ae96fd7b"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_attests_ancestor",
|
||
"about": "a match yields the ancestor, never the object in hand",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"attests": "ancestor",
|
||
"ancestor": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_object_in_hand_not_an_envelope",
|
||
"about": "the object in hand has no content hash (it is no longer a WAI envelope); the match still yields only the ancestor",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": null,
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"attests": "ancestor",
|
||
"ancestor": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_value_mismatch",
|
||
"about": "a different watermark payload does not recover",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"observed_value": "616e6f74686572207061796c6f6164",
|
||
"observed_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_value_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_no_matcher",
|
||
"about": "with no matcher for the algorithm the match cannot be evaluated, so nothing is recovered",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"exact_match_algs": [
|
||
"org.example.fingerprint.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_no_matcher"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_signer_mismatch",
|
||
"about": "a soft binding declared by someone other than the ancestor's publisher",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_signer_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_of_hard_bound_object",
|
||
"about": "an object whose hard binding holds is verified by it, not recovered",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_of_hard_bound_object"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_declaration_invalid",
|
||
"about": "a declaration that fails 3.1 is not recovered from; its own rejection is reported",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1810f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "signature_verify_failed"
|
||
}
|
||
},
|
||
{
|
||
"name": "recover_declaration_not_soft_binding",
|
||
"about": "the endpoint returned a valid claim of another class",
|
||
"procedure": "recover",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0",
|
||
"observed_value": "636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164",
|
||
"observed_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "malformed_duplicate_member",
|
||
"about": "a duplicate member name",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "malformed"
|
||
}
|
||
},
|
||
{
|
||
"name": "malformed_not_an_object",
|
||
"about": "a receipt must be a JSON object",
|
||
"procedure": "claim",
|
||
"receipt": "[{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}]",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "malformed"
|
||
}
|
||
},
|
||
{
|
||
"name": "wrong_kind",
|
||
"about": "a group receipt is not a claim",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"group\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "wrong_kind"
|
||
}
|
||
},
|
||
{
|
||
"name": "missing_parent_field",
|
||
"about": "parent_receipt_hash absent rather than null",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "missing_required_field"
|
||
}
|
||
},
|
||
{
|
||
"name": "unknown_member",
|
||
"about": "a member the envelope does not define",
|
||
"procedure": "claim",
|
||
"receipt": "{\"note\":\"x\",\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "unknown_member"
|
||
}
|
||
},
|
||
{
|
||
"name": "uppercase_hex",
|
||
"about": "one byte string, one signed encoding",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5BB20A10B980BE8C6D95915394F6E89CD49C16D0F5E94CD87C0EC6CE37BCFC5E\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "seq_beyond_exact_integer",
|
||
"about": "2^53 is outside the canonical subset",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":9007199254740992,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_not_rfc3339",
|
||
"about": "a timestamp that is not an RFC 3339 date-time",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27 12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ff9680e6263a2de40c14a396efc763a292f920af43d57ffebca2e3b715df518b2de10d7953e589c83fb56b3c472cfa67cbcd307c00a1782587df3e7b535bef06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "unknown_class",
|
||
"about": "a class nobody registered is rejected, not ignored",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"provenance-grade\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ca4e32e552383e7723ee03838c0bc1ff0ba160d5de5ee403079e4d37df33baf79968083df26aecafc0e495bfbf78a1823834189e43d2478e502c5481d4ab907\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "unknown_class"
|
||
}
|
||
},
|
||
{
|
||
"name": "delivery_class_reserved",
|
||
"about": "delivery belongs to group/object",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"delivery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"34713278cad97b3d545a8f8e735256ccbc7f1badc141d68610a4b54098e0ab1b9a9e1151255ebd9d8163243544a1ba9927f9144a549538a513efa6c397d6a003\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "class_reserved"
|
||
}
|
||
},
|
||
{
|
||
"name": "log_inclusion_of_an_object",
|
||
"about": "a log registers receipts, never objects",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"entry\":\"entry-0001\",\"log\":\"https://log.example.org/\",\"log_receipt\":\"01\",\"profile\":\"urn:ietf:rfc:9942\"},\"class\":\"log-inclusion\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"63d200f41c80d437811c90b74a8be6c9984165bea7f383a0649c1b143599479b07344d962d2424646de8341369182f59e3fb15707945897e0345720950b8af06\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "subject_type_not_admitted"
|
||
}
|
||
},
|
||
{
|
||
"name": "body_unknown_member",
|
||
"about": "a class fixes its body; an extra figure is not carried",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"carbon_g\":1,\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "unknown_member"
|
||
}
|
||
},
|
||
{
|
||
"name": "body_missing_member",
|
||
"about": "a soft binding without its resolution endpoint",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "missing_required_field"
|
||
}
|
||
},
|
||
{
|
||
"name": "body_oer_receipt_bad_form",
|
||
"about": "an OER reference must be a sha256: or blake3: receipt id",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"md5:0123\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "bad_signer_key",
|
||
"about": "a signer key that is not a curve point",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"0202020202020202020202020202020202020202020202020202020202020202\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "bad_signer_key"
|
||
}
|
||
},
|
||
{
|
||
"name": "bad_signature",
|
||
"about": "one bit flipped in sig",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"59ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "signature_verify_failed"
|
||
}
|
||
},
|
||
{
|
||
"name": "signer_key_identity",
|
||
"about": "the identity point as a key: R = [s]B, S = s passes RFC 8032's equation with no private key",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58666666666666666666666666666666666666666666666666666666666666660100000000000000000000000000000000000000000000000000000000000000\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"0100000000000000000000000000000000000000000000000000000000000000\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "bad_signer_key"
|
||
}
|
||
},
|
||
{
|
||
"name": "signer_key_order_eight",
|
||
"about": "a key of order 8, with a signature ground until RFC 8032's equation holds with no private key",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d4b4f5784868c3020403246717ec169ff79e26608ea126a1ab69ee77d1b167120300000000000000000000000000000000000000000000000000000000000000\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"c7176a703d4dd84fba3c0b760d10670f2a2053fa2c39ccc64ec7fd7792ac037a\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "bad_signer_key"
|
||
}
|
||
},
|
||
{
|
||
"name": "signer_key_identity_sign_bit",
|
||
"about": "the identity with its sign bit set: RFC 8032 decoding refuses x = 0 with the sign bit set",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58666666666666666666666666666666666666666666666666666666666666660100000000000000000000000000000000000000000000000000000000000000\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"0100000000000000000000000000000000000000000000000000000000000080\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "bad_signer_key"
|
||
}
|
||
},
|
||
{
|
||
"name": "signer_key_identity_y_not_reduced",
|
||
"about": "the identity written with y = p + 1: RFC 8032 decoding refuses y >= p; decoded leniently it is the identity, and R = [s]B, S = s satisfies the equation with no private key",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58666666666666666666666666666666666666666666666666666666666666660100000000000000000000000000000000000000000000000000000000000000\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"eeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "bad_signer_key"
|
||
}
|
||
},
|
||
{
|
||
"name": "signer_key_y_not_reduced",
|
||
"about": "a key of large order written with y = p + j, which RFC 8032 decoding refuses; nobody can sign for that point, so it carries another key's signature, which fails the equation under any decoding: the vector pins the reason, bad_signer_key, not signature_verify_failed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"318b40642268b78236a12436ddb3c04103098051cc1a2a7a241b1a0caefad47dbbf0ef55103bafa4d7162c3c239ae49e4d9b814ed31ff59ac16ebb5fe636a803\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "bad_signer_key"
|
||
}
|
||
},
|
||
{
|
||
"name": "signature_s_not_reduced",
|
||
"about": "S replaced by S + L: the equation still holds; RFC 8032 refuses S >= L",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447df6cef92c40581df64319848ee9dd4fc6b83cb48376e081c4f761596d94c4f1a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "signature_verify_failed"
|
||
}
|
||
},
|
||
{
|
||
"name": "signature_r_small_order",
|
||
"about": "a genuine key signing with R the identity: the equation holds; step 3 refuses an R of small order",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"010000000000000000000000000000000000000000000000000000000000000038b010a192be15dbfab46095508dd76c53ef39e80804ede5d015194793dfce01\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "signature_verify_failed"
|
||
}
|
||
},
|
||
{
|
||
"name": "acquisition_promoted",
|
||
"about": "ModelBased rewritten in transit to OnChipCounter, with an uncertainty and a filtering state: the class and its evidence are inside the signature",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Off\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "signature_verify_failed"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_zero_figure",
|
||
"about": "a zero figure is a failed measurement; it gets no claim",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":0,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a509128cb7dfd1f569d426718a40e2e5d0310945117cbec771a3b1fece72469682bc1f95080301fcad883e3559f3b913a1a3eb38a710322e6aa5b4e64fd62c07\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_zero_figure"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_unknown_acquisition",
|
||
"about": "a label outside energy-measurement section 2",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Measured\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"25ad33e3a5743784838a5af59a8033abc77e6fa24ae9d50fb5becd2c8bbee6dbc22a041b22cf6ee15acbd749391d491a14b3051cdae5054d74c5526c985cd906\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_unknown_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_unknown_coverage",
|
||
"about": "a coverage outside energy-binding section 4",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Most\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7936fd3941613e48452fb211a8194946123f31505102dca01e25eb48720051e306807dc22677384679b0de48b04070a8f571b5d690a4478df405395178aa4f0d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_unknown_coverage"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_unknown_grade",
|
||
"about": "a grade outside oer-receipts section 2",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"certified\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8ec287ed60ff0db4f45db8008896d6fd6628da1276a9e7c3c4e5621c22e64a3c637452024c98a0156e14293bd5735577aee0732a64da2664474b62c2cf92c907\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_unknown_grade"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_grade_exceeds_acquisition",
|
||
"about": "an Estimator figure graded measured",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d5aeb1d5bd7236807adcec046d5faf45adf5bcaccee02c747a707cf96fee7f94f6bb451c37b412dccb37a8c14e3317b17f73bde2488c5250977df653163f290e\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_grade_exceeds_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_model_graded_measured",
|
||
"about": "a ModelBased figure is derived at most",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c606e5a920f74c40896d674b29a1762d4c25be6585c6b57da11241dbd74798ce37194b130d7f35fc8b325ae005a87962ed5156b2a54f7efec885198f41ac2e03\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_grade_exceeds_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_zero_work",
|
||
"about": "a figure with no recomputable work to express a rate against",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":0},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"aa273f50467dae958eee511a4ead2ee30c01b55acf79e88c462a90d7a598d4de4a7d897976f98d19953c0781db8f74e958d8977cc20237a687c840fbdc090f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_zero_work"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_no_purposes",
|
||
"about": "a declaration that declares nothing",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"682191c3de9e536635e25338b5479fabada53b3299117d0bddfe67d3246720b06b20c0a5b66e591dc85905a83e87341c2de1fb930ddf70dd51bba87c7966ca05\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "lawful_basis_no_purposes"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_purpose_without_basis",
|
||
"about": "a purpose with an empty basis",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"392b119b3304f8b3f3c6748c94f83b805cd6b83c0aba604a46966ec4e3fa60219f3cba68a3bce791c58f9a584506bf00cdd3645982e77dce4f3c070d36b62201\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "lawful_basis_purpose_without_basis"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_duplicate_purpose",
|
||
"about": "one purpose declared twice, on two bases",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"80a6d0141bf184a73690c5e3f69f23ed57c7a07d9fd94f9e42338036901dea4cffba2d434e790692117469b3b00f07215d5228546609cd1ee518643e02fab20a\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "lawful_basis_duplicate_purpose"
|
||
}
|
||
},
|
||
{
|
||
"name": "log_inclusion_no_evidence",
|
||
"about": "an inclusion claim with none of the log's own evidence",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"entry\":\"entry-0001\",\"log\":\"https://log.example.org/\",\"log_receipt\":\"\",\"profile\":\"urn:ietf:rfc:9942\"},\"class\":\"log-inclusion\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"49112138d3b9ac9854f39cd351ade6be1cdaa068ba8bf58409ef5f08f343d16c551d54bbd791c3a2690ae12781e9348b2445d197bec4a1a18688016f7c27720c\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "log_inclusion_no_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_alg_not_registry_form",
|
||
"about": "a bare name is not a registry identifier",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"SomeMark\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1be5ac4f11b18881652734bc043cd634984da5f48585a95d8e6a69641b3015988b0d34930dcca22cb74b2a09fc9cfa514bb39973115423c3e4427c67e508db0f\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "soft_binding_alg_not_registry_form"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_empty_value",
|
||
"about": "a soft binding with no value binds nothing",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5ddca2404ab3122dfbddc6b2bd2938924d7731198ac5687732abbb25e73d5e3e39f9d47dccda8f1abe20fe65b4aef8be54875886bda3b8c0fae0199f2f7f5f07\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "soft_binding_empty_value"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_endpoint_not_https",
|
||
"about": "a resolution endpoint over plain http",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"http://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e7c2a1376fcc932caca2576665fca0ff27347ef753d9cdf3c3bccac4272aae2940db3db5ade4fa15fcb31bc38a5dfd64046884772eebf1eaed3bd02fbec82f01\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "soft_binding_endpoint_not_https"
|
||
}
|
||
},
|
||
{
|
||
"name": "recovery_not_ancestor",
|
||
"about": "a recovery claim asserting the object in hand",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"object\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"537d0d362f257082a3317f3fcf9d57a2e225d140106a68865fc466e1386e7e3023fb68623b8024ac4f4a16a421d1d6f5cfd226c1914920ba73bd35f157ee3909\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "recovery_not_ancestor"
|
||
}
|
||
},
|
||
{
|
||
"name": "recovery_of_hard_bound_object",
|
||
"about": "the object in hand still hashes to the subject",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4d3c22fbd160ce01acffef02e84c1cd66062494eb114d882deba09bd6e8c00ab499c1a3c6636a631d2615ec114335bc9dfde94f3caddaea4e169b6998afaec0c\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "recovery_of_hard_bound_object"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_on_chip_counter_accept",
|
||
"about": "an OnChipCounter figure with its declared uncertainty (2 % over 1 s) and filtering state, graded measured",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "2835bfa8d59cfacbc89cf2eb3a54c91cc114b78198e5830d84ee295dd2659eb0"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_counter_filtering_off_accept",
|
||
"about": "a counter its reader found unfiltered (Off): the state is evidence, and every state is a reading",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Off\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"77728326f434d2a469194d71cda9eb2f3913bb5f7aab5e2867747889bd10b2bbecdd6c266c7e9111c8b4f1f6517d527ff74fca0267f6d23b507168814c6a7a05\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "bf21721ce58cb983f7f6bced633eeecb5b76ac40f759f11174554c6df3c63231"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_calibrated_instrument_accept",
|
||
"about": "a CalibratedInstrument figure with its declared uncertainty (0.5 % over 1 s) and calibration reference, graded measured",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":\"https://calibration.example.org/certificates/0001\",\"energy_counter_filtering\":null,\"energy_provenance\":\"CalibratedInstrument\",\"energy_uncertainty\":{\"relative_ppm\":5000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b60889bb04cb43794501949ed2e5ac33f7974e266b945aaa77c127c0d0b958767a57020a776dccff13e3f2196e2c46a75a101974bd0772487697d786c7f2d90a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "4200815c853bb89b611dd70614e0eb914864a6dd2ebf766fd35d98042cf826e6"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_resolution_floor_accept",
|
||
"about": "a 1 uJ figure declared at 288,676 ppm: exactly the resolution floor, 0.5/sqrt(3) uJ rounded up",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288676,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":1,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"868db23b86b8bb7327f956b873ffb17b5bdde43f77cbb225b65166df39e355f4de6f9525656992056b20a8561b2ba2e5bb448f96bb2e482c807b8a951dd4600f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "e0d1b71bc19f89613dd624557abcbf8e452591c6b783e1a7cc2d0d0455bde1a3"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_counter_matches_oer_accept",
|
||
"about": "an OnChipCounter figure graded measured, naming an OER receipt that grades the same figure measured",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:d949948cdd024066e8db3c4ebcdb1e4da6fc147d30e918000914e465225fbc9e\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"f054d928bd0d2b5ba69a5d4474fd6200074fa31173d7eab16d538e958b0a4a7fc81248e641c715fdc64c2e8787b17a2d17db78919b9cc070c48dccec940cde0d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "measured",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:78e3631a13533ccfa5772aa8ae023432e76cde74662060e4a2439655fae6ecf0",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "67c9fb0fb06352cda30eb35e3fc4d378e5db4cfcc7f45f5c227d699c4956cef76b9afee4a7a1386bfb4bd2c8dc72bde350a4d49879147c2d03c3666720f4c805"
|
||
},
|
||
"receipt_id": "sha256:d949948cdd024066e8db3c4ebcdb1e4da6fc147d30e918000914e465225fbc9e"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "32b5bfa327d71c5c3d0075eac98079b9a655ca36a96d92a0a3b218f2484c7945"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_legacy_acquisition",
|
||
"about": "HwShunt is legacy: energy-measurement section 2.6 forbids it in a new receipt, and every claim is new",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"HwShunt\",\"energy_uncertainty\":null,\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"91ad8690e260ff609844d2d088d6109094c50802305cd6c736431e72ed1c031f50f63ec4796e20b7eb5545403b8a182361a4a5f3a9a414305a235e222ce29209\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_legacy_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_legacy_acquisition_with_evidence",
|
||
"about": "HwShunt with an uncertainty beside it: refused as legacy before its evidence is read",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"HwShunt\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b77e30c1901fdd569f361708eb0002ed3ffa209599abf8baa55193582f16e2c3333dff2ee2f8b70137eb94978d80371c5da34c40f5435248e52ca74b4e047506\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_legacy_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_label_other_case",
|
||
"about": "a class label is verbatim: onchipcounter names no class",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"onchipcounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"331a742f1004340f46ec7d7fc8d59d56f5e7f6e0a94d217c3a771926476835c401f5f88c20221f70a0f8a9a04b7bf0c5aed7927337f8a6b13bea9e0658c9900e\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_unknown_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_counter_without_uncertainty",
|
||
"about": "an OnChipCounter with no declared uncertainty",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":null,\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"848bcf60b83f43700f9e34a0324f9dfa40fb3c905f00f43f39e99d932a98f415a3ee02ab20aa645c1f6132d65674eb91c7e386f5cbc374755ad5eb5304fe4a08\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_counter_without_filtering",
|
||
"about": "an OnChipCounter with its filtering state null: a claim writes Unknown, so one class has one spelling",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8a104cd95cc4da669c39bb6053f5b4d59338968c4c7ae1dacf7f03b7391e3c7c2c3f007ddf4d702a2ff6dd2f930cd4aa1bcff43d9fa85c05bfae06491504f90c\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_counter_filtering_not_a_state",
|
||
"about": "a filtering state outside On, Off and Unknown",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Maybe\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"369c8f7551b1b6d6d3f69b89c92b0b9040eb9d6c78239b697e032a248f96b96119c02ec7b112ef4434d57f4aae29ea666a7fdc09783af506e2814d0c76e2d701\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_counter_with_calibration_ref",
|
||
"about": "an OnChipCounter carrying a calibration reference, which only a calibrated instrument has",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":\"https://calibration.example.org/certificates/0001\",\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"811fa420b47bfb4894a8e851f358d6d130c98876a7f0c87a55844b62ab49a0fe2422fac29ab6d26462cc7bf66881a1ec3f86bad56020f4110c003fc5392ad405\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_instrument_without_calibration_ref",
|
||
"about": "a CalibratedInstrument with no calibration reference",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"CalibratedInstrument\",\"energy_uncertainty\":{\"relative_ppm\":5000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c05b963111dff75a47d4dc4f2ea7096fe6fe4d6c28b70764deb60f3c799ca76adbcf3f079af64ee71462b90e1297aed0dd253bdbc45c87c60be40ba982da1801\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_instrument_blank_calibration_ref",
|
||
"about": "a calibration reference of white space only (a space and U+3000): no reference",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":\" \",\"energy_counter_filtering\":null,\"energy_provenance\":\"CalibratedInstrument\",\"energy_uncertainty\":{\"relative_ppm\":5000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cd5a014d07656972313e887148019e9cd3ce4955f7c52005369de7f22a8103fe47be48902a205898c89ac5daf5dac6553bcee70f5d6b82da6c67b1f1c622830f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_instrument_with_filtering",
|
||
"about": "a CalibratedInstrument carrying a filtering state: an external instrument has no counter filter",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":\"https://calibration.example.org/certificates/0001\",\"energy_counter_filtering\":\"Off\",\"energy_provenance\":\"CalibratedInstrument\",\"energy_uncertainty\":{\"relative_ppm\":5000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c77bcc43281d8b2698a4f1f870023b3644bd1f170ec039d030db1718009042c8e28222321436642f1aeb5148942a5bcde5afaba2a1893db632c0b1d20dbf8e05\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_model_with_uncertainty",
|
||
"about": "a ModelBased figure carrying a declared uncertainty, which only the hardware classes carry",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"85f89543b8505631b5b8da6e520ca5285c86932c78aea59c50cd896436c2bbc799c55786e5ca0ef0e927497960667bbf86c758e6783859a87d7f04e863962604\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_zero_ppm",
|
||
"about": "a relative uncertainty of zero claims a perfect measurement",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":0,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0e74ac388786b3caf0fecbbcf48feaeb4051d4ab7d4a4a81b7bccbc12e4b798da369204fad9a68a7cad8e49abe6c88c37c065be04b997fa8f65c9655a250810f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_zero_window",
|
||
"about": "a window of zero is not an integration",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":0},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"8490d3b2b6f02e225ea426f3be197f62decdd3f41eb0305dfafae421e834268fb0374d3d8956fda260581877a9e642bd3d0e51a8339898b3f423e16a33208709\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_beyond_u32",
|
||
"about": "4,294,967,296 ppm does not fit the u32 the signed encoding holds",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":4294967296,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"247f3b0f263246f3e56d39f363c07cf6b2981c5fbfdbf13689b298562dba512f467fa7587e80cbb9a1a8af58c5e94a5157b2292e8d53a9cad170704b376abc0c\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_below_resolution_floor",
|
||
"about": "a 1 uJ figure declared at 288,675 ppm states less uncertainty than its own rounding carries",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288675,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":1,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3161f8261471b3e155ec874aed0b6cc74a51b5602db1859d262ec06584649ea36606cb27dff7c642d0b709b8ae97b74675ec900b20c30e78c1c6e43db11edc00\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_estimator_graded_simulated",
|
||
"about": "an Estimator figure is projected at most",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"simulated\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4ff1794eb16e226006af2ab420cef4816feaec9fbe7c18eae416601eedeac30f76eb39854bd244214d08523b87d194c9201e6ea8268f9b7cd7946ee20e921905\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_grade_exceeds_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_missing_member",
|
||
"about": "a declared uncertainty without its window",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "missing_required_field"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_unknown_member",
|
||
"about": "a declared uncertainty with a coverage factor beside it: the uncertainty is standard, k = 1",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"coverage_factor\":2,\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "unknown_member"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_not_integers",
|
||
"about": "a relative uncertainty written as a string",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":\"20000\",\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_uncertainty_not_an_object",
|
||
"about": "a declared uncertainty written as an array",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":[20000,1000000],\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_filtering_not_a_string",
|
||
"about": "a filtering state written as a number",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":0,\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"measured\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "malformed_unpaired_surrogate",
|
||
"about": "a \\u escape that leaves a surrogate unpaired denotes no Unicode text",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\\ud800\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "malformed"
|
||
}
|
||
},
|
||
{
|
||
"name": "malformed_unpaired_surrogate_in_member_name",
|
||
"about": "the same in a member name: malformed, before any member is looked at",
|
||
"procedure": "claim",
|
||
"receipt": "{\"\\udc00\":1,\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "malformed"
|
||
}
|
||
},
|
||
{
|
||
"name": "malformed_nested_too_deeply",
|
||
"about": "arrays nested 33 levels deep, counting the receipt as the first",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "malformed"
|
||
}
|
||
},
|
||
{
|
||
"name": "nested_within_bound",
|
||
"about": "32 levels parse; the member then has the wrong type",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "seq_beyond_double_range",
|
||
"about": "1e400 is a JSON number no double holds, and not an integer the subset holds: a type question, not a parse failure",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1e400,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "seq_integer_of_four_hundred_digits",
|
||
"about": "an integer far beyond 2^53 - 1, written without an exponent",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "seq_negative_zero",
|
||
"about": "-0 carries a sign; a claim's integers are unsigned",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":-0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "seq_fraction",
|
||
"about": "0.0 is not an integer, though its value is one",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0.0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_fullwidth_digits",
|
||
"about": "RFC 3339 digits are ASCII; U+FF10 to U+FF19 are not",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"db2144fab024c1c05649a1fa2dc6655b910b6279bdd84aaf743d47d3502efb5412a82e86cb385bedaf7699d2f8315c9525287ded60bd20b854e26680f771f30d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_day_not_in_month",
|
||
"about": "2026 is not a leap year, so it has no 29 February (RFC 3339 section 5.7)",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-02-29T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5c275c4f47f87585cc0dc2b496de7ed3841abf8f4f36b66ce575435f2cd4f3d981d3d2f4a926a3d08eccd7d6c4251dc368ebcdb117598cc213b2a923d0774f06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_31_april",
|
||
"about": "April has 30 days",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-04-31T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"743a919f34738e11f3130ead4bc317b815ee0c3bc1cd107998ad3662abcc3e5316d6ad503b97306cbdad44243f64dfef9dffc80cd831ea0ef2129565b31f7d06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_century_not_leap",
|
||
"about": "2100 is divisible by 100 and not by 400",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2100-02-29T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"559d37c949cc0857abbccb3c3abb043ce11da2c0c1ed82294a1189465f8cfbaba80b7e88ef74cc215f04bcc756fb445b734d17b25bfe7b89ce7813e568127e0d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_leap_day_accept",
|
||
"about": "2000 is divisible by 400, so 29 February 2000 exists",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2000-02-29T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"aa98e0d4f16663f14c119c275ecb5f800369f123c6d3b10076bd276211629204fe4182d5d57a17144f51cacba02b94b705525c16f28271b1b5187fc83e339a00\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "0913f2ee6577c39194b9a9f53600dbf294e701ea2264829e57ffd6f5a993f899"
|
||
}
|
||
},
|
||
{
|
||
"name": "issued_at_leap_second_accept",
|
||
"about": "a second of 60 is RFC 3339 syntax; whether a leap second was inserted then is not checked",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-06-30T23:59:60Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1dbcf8f925ef04c4acb036838191b8df50f198c38a2d23531770e6ff18dbbe9a96b8273c160542ed73657cfdd8da8f3aaa9a07446662f98852c18ad3d296d10d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "bbb703886fe29551ecbd2d16f11afd25c59fb8c39ac7ff52017c770f631ee81b"
|
||
}
|
||
},
|
||
{
|
||
"name": "escaped_text_accept",
|
||
"about": "a character outside the BMP sent as an escaped surrogate pair, an escaped U+00E9 and escaped solidi: canonicalisation writes each as itself",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https:\\/\\/transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"21ece9fcf340500f0e01dc41c52c4b30c1e36a82ddb4ecdfdc0ca90f366189193fee5f8176bfad5607299ff1a8e1ee8d0333c1b291d57124a20068e076790c01\",\"signer_id\":\"did:example:meter\\ud83d\\ude00\\u00e9\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "2c20d7e6e8dd8e46cc3eb66f8c69e22e90515288ed306ff42a89e5358b302081"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_endpoint_empty_host",
|
||
"about": "an authority that is only a port names no host",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://:443/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b617466d3166a31caeaf58a53d55bbecca417c8bf64fecbc1a898d31dd7b3ca5d3b70f68809e6f59d5ddc310354c6739297f2a05e6a5b111e7d53702873d1c0a\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "soft_binding_endpoint_not_https"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_endpoint_port_not_digits",
|
||
"about": "a port is ASCII digits",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org:x/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ca02e4371348f6d738ec81103334a69f2848e0e0ba8d142eb41d4533df375f5846a35ea4cf4e07320031f0b997882d743c689b6bdfd6bdb63f8212e248e32f0e\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "soft_binding_endpoint_not_https"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_endpoint_empty_ip_literal",
|
||
"about": "brackets with nothing inside them name no host",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://[]/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4fe3ea3bd1582ca771a162a770310e413d3fccf68a787baf747c31f63dd81f6c2ad86e8f1a77661ed0bbfd560145fc82d8a9ce7a286af8da50035ff3bd9e560c\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "soft_binding_endpoint_not_https"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_endpoint_ip_literal_accept",
|
||
"about": "an IP literal with a port is a host",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://[2001:db8::1]:8443/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"76d8715037861005f3ffae6e08bf032be81a561cf66c9b242fda4131c5df1f82ff92b4e9d42ade790e97e41e8f6679a911412949bf8f08a96d7dde153832650a\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "02d8b227b38474a5ea6c3d915019616ec58ae7df802a98566468e52fbfca7d37"
|
||
}
|
||
},
|
||
{
|
||
"name": "chain_break",
|
||
"about": "the parent names a claim that is not the previous one",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Partial\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"projected\",\"joules_micro\":3000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"abababababababababababababababababababababababababababababababab\",\"seq\":1,\"sig\":\"c16948f92c773efd2661d668c5e8f6b6f0195e945e4f21d7019df80af49ca085292238b9b900e9d65e6f6b6e07c61983bd3f674a3119d50f507d94d9307a2503\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 5,
|
||
"reason": "chain_break"
|
||
}
|
||
},
|
||
{
|
||
"name": "chain_seq_not_advancing",
|
||
"about": "the parent is right but seq did not advance",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Partial\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"projected\",\"joules_micro\":3000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"797a6d60712bb66270be3683546ed9d92c7134d3a3cfa34f304e6fdad886046f\",\"seq\":0,\"sig\":\"ae651fc9668f7eb96d404d1c4fca54a8d0a2c23cbe304dae989c47f579aee98fcfe0a7624496c6e93f8764e5278acf1b214b07cf064db6090da225534ec9c50e\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 5,
|
||
"reason": "chain_break"
|
||
}
|
||
},
|
||
{
|
||
"name": "chain_fork",
|
||
"about": "a previous claim is held and this one says it is a chain head",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c206a7df89cd2a9c6d6c2af48a4ef57c73646be2725572cca555f4ee2020d3afc519997d860bf4f3932ed3f82d647fef29acd6f4282637680891d298eeafdb06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 5,
|
||
"reason": "chain_break"
|
||
}
|
||
},
|
||
{
|
||
"name": "parent_not_held",
|
||
"about": "a parent the verifier does not hold is fetched, never accepted silently",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Partial\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"projected\",\"joules_micro\":3000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"797a6d60712bb66270be3683546ed9d92c7134d3a3cfa34f304e6fdad886046f\",\"seq\":1,\"sig\":\"f5628ae10f7ffd6e16b0b303ee2d535ad35a4b53d2259caa894974a2b2bbb9111d3f8d6aae2ece8478eeccc2e9949b2ab5e82eda0d38f660e49773effd5cd70b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 5,
|
||
"reason": "parent_not_held"
|
||
}
|
||
},
|
||
{
|
||
"name": "previous_not_verifying_not_held",
|
||
"about": "the parent named is a copy altered after signing, so it is not held and the real parent is fetched",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Partial\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"projected\",\"joules_micro\":3000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":\"bece952a53e9c4b1606622f6737202f43a4a84d0fa1afbf0769bda96b5aebe39\",\"seq\":1,\"sig\":\"63c52af8f96a954c6b0253312d601d525bf0995e5eb8a96ed6b604a31e47877478ae52f948f82b18a572ee7446d4f20bffe17d6c69933f6627826123020df300\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 5,
|
||
"reason": "parent_not_held"
|
||
}
|
||
},
|
||
{
|
||
"name": "previous_not_verifying_ignored_accept",
|
||
"about": "a chain head beside a previous claim that does not verify: nothing is held, so there is no fork",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c206a7df89cd2a9c6d6c2af48a4ef57c73646be2725572cca555f4ee2020d3afc519997d860bf4f3932ed3f82d647fef29acd6f4282637680891d298eeafdb06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"previous": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:01Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "9f2129fef510d9b8477671f5251c133c3f4058307cdbeae930e5bd5c977ab142"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_disagrees_with_delivery",
|
||
"about": "two signed figures for one subject; the verifier rejects rather than chooses",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 11000
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_disagrees_with_delivery"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_delivery_other_subject",
|
||
"about": "a delivery receipt for another object is not context for this claim",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15",
|
||
"joules_micro": 12000
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_disagrees_with_oer_figure",
|
||
"about": "the named OER receipt states 12,500 uJ",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:31fe6cd433356ff1e427c0aabd6328407d0a81c83b9dac59aab98dd1ec19ebfc\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cd58eabbb11738c2b8581806d8dea731f5a14a1439fae6c67a15178bf746e2ea403ddb85db1e054040590183b02f6851bc96e1cec7731b67540079e361619303\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012500",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012500",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:4352c25157254dbe50b231da7ae6ca49be1151fcdb202a93ceceea67cc38da2b",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "c543bc2e3ce3a5057b1f909ec0900a3266123141c7d664ea6e36028bd50d9ca9fb19a3363cf8349978669700a99ccdfaaaef31fd24bab53a3c9d12961b4eef0f"
|
||
},
|
||
"receipt_id": "sha256:31fe6cd433356ff1e427c0aabd6328407d0a81c83b9dac59aab98dd1ec19ebfc"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_disagrees_with_oer"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_disagrees_with_oer_grade",
|
||
"about": "the named OER receipt grades the figure projected",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:1d353d35108ccba8862707f66a324502bbcfe0a3566e361f346eac2e72fda029\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"faa16c17ae09d6699ded85a052d40d7e6fd1d1885d56b945c2d8de9bdacb22acd292eb1ed432ea96d5c4eb55ecd36496c62ea9abf8234f27db53c82889d2d80b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "projected",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:a2556ddadc00e88c304edc521481b7a16d340175e0d2f3ba408a02a73fe2fc79",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "9f6bb294306755f60741f6834e0d4822833c1884780bd7122ecec232e2eb2541a59922fc41603f99e12d5ef503ac035fbeeb2e6b713ebf7e49704f4b594e9400"
|
||
},
|
||
"receipt_id": "sha256:1d353d35108ccba8862707f66a324502bbcfe0a3566e361f346eac2e72fda029"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_disagrees_with_oer"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_invalid",
|
||
"about": "the named OER receipt was altered after it was sealed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.013000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.013000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:f33e7e0bfa42e085a0dc77cbcc572ed53ab173abbfc204815b88b280dd45b1b9",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "58ce164fe947fac98cebd69d3383ae54a9eaf5ab4fd6870b6dad4f20b669bdacad354d826215ea0a71484a1536ece4ea4d2412072e7d85579975507ca05c910b"
|
||
},
|
||
"receipt_id": "sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_not_named",
|
||
"about": "an OER receipt the claim does not name is not its context",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012500",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012500",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:4352c25157254dbe50b231da7ae6ca49be1151fcdb202a93ceceea67cc38da2b",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "c543bc2e3ce3a5057b1f909ec0900a3266123141c7d664ea6e36028bd50d9ca9fb19a3363cf8349978669700a99ccdfaaaef31fd24bab53a3c9d12961b4eef0f"
|
||
},
|
||
"receipt_id": "sha256:31fe6cd433356ff1e427c0aabd6328407d0a81c83b9dac59aab98dd1ec19ebfc"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_other_subject",
|
||
"about": "the named OER receipt verifies and states the same figure and grade, about an unrelated object",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:32ca1c708d43f848af89069746dc9f7ed977538ef78ee758ebc25dff2c23bfef\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"fce1a2c237c831e496561df8a04ed7b3b277c3717ee33326c3a9c4a2a7103ae30e88f0ca3437816ce5610db512a157981bab41538ed996e136a7a8cc7b4b030f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "2412e6ec3164598b027b40ea8cfa83ef8785bce4b6d762d1a086eda92673b03e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:e80bd3c409d6de7e0262aed274fbf82a3706bac98561bd7b816e85acbd344aec",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "d316491bd3269b3260f3205a10fec15bea82665ab0bf456631d646118e71426a3b9add954cddf75e6c3c6e6890b31bbaea35c8e58cc5975efa04993abb35bc08"
|
||
},
|
||
"receipt_id": "sha256:32ca1c708d43f848af89069746dc9f7ed977538ef78ee758ebc25dff2c23bfef"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_subject_spelt_otherwise",
|
||
"about": "the named OER receipt writes the claim's subject in uppercase hex, not as the claim writes it",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:079b0c89885ccf13355652a314a99bf025b7a68cbfbb500c2e47f9a2541366e6\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0f5085b77596cdd56e8bf86da5846b57db329349ddb7f02acb5136e962d6382957486f4bd04a61364978fa33fc1dd23e6d91f2184de5af32d93277f800457103\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5BB20A10B980BE8C6D95915394F6E89CD49C16D0F5E94CD87C0EC6CE37BCFC5E"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:246d8decc51d7c8c66bad540fd23dd6919bcadc5e984974dd4dc0af28302f4c8",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "a6e15103ed2a1850adb4c01a81de1cdbe4f1c4f2a82e3422855f1b0ad508c9de22386e319193e68ab4132019fdea5e80d82239e234b25c46e04d0c43aeb0b80a"
|
||
},
|
||
"receipt_id": "sha256:079b0c89885ccf13355652a314a99bf025b7a68cbfbb500c2e47f9a2541366e6"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_value_mismatch",
|
||
"about": "the recorded value does not match the declaration under its algorithm",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"616e6f74686572207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"804e450135624b0cba99a3a6b9d6d86dedd9e30cab64a96da801ae14169757eb94cb09ca1188a416d09d435a66e8dea3b29a19481acce6f9797e47c2620ac80b\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_value_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_about_object_in_hand",
|
||
"about": "a recovery recorded against the object in hand instead of the ancestor",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":null,\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3e8e06e8c9efb78263223bd1a3737cab5df665ad3332f526856fc2cdbf4fe4a0452d7f45dcd6f660db857faac33607516950180b28dbddd44293010f879ac700\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_declaration_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_declaration_not_publishers",
|
||
"about": "a recovery record naming a declaration with the publisher's subject and body but signed by the resolver: a declaration counts only if the ancestor's publisher signed it, as in the recover procedure's recover_signer_mismatch",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"ab54246385846b97bf3759b185237fa4e6b4fc9801b974807421d51676d7e9b0\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"3d37cf73b315f886e73aab8ed484114726f8de58a0dcc661f93dc0bd825c78d81f1c1cc62da46941be0c9b3d0d31e76269a2a4050a262a6f8610f5b6c9737209\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a1cff9ed136eb02ef0c5d39c46ed9bce066b22645e73715247a31f0c4ba43a23f0d7a6dd4ce941d9d79abd71f7b5b3b51835a7f1173cbd88b6a9e561776d8007\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_signer_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "decision_purpose_not_declared",
|
||
"about": "a decision about a purpose the declaration never listed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"declaration\":\"3b61a61fc9fce4c55346426ca2a79a52ec9e817a7acde4dde3d1bd845cc79057\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:PersonalisedAdvertising\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"90c6aa2a47db644d63620e899a8e825e90d8dc3466e69c8ac5464a45f9c5dd7a90664d01c103680e97a9b14cfd4e81c3a949acdf5ca8bd62152c4f63f719bf08\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "decision_purpose_not_declared"
|
||
}
|
||
},
|
||
{
|
||
"name": "decision_declaration_mismatch",
|
||
"about": "a decision naming another declaration",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"declaration\":\"cdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcdcd\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:ServiceOptimisation\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"eb5fd11983f0e2560a145ab8e47d47d9288813dfb4df260d1903a53dba9fd1fe3f35242de6f77f305b2d2f14e4cd9bb6f45e31bcea78671c257fd45645bae30b\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "decision_declaration_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_declaration_forged",
|
||
"about": "the declaration names the publisher's key but the resolver signed it: the key is the signer's only once the signature over it is checked, so the declaration is verified before its key is compared",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"167446343225debd0559ba1be4beca179fbfc9c61ec74695bc40fa30431e79b0\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7c1924e8b8e530ecd1096a2f2efddc8f07930ed2362df1fa18d3d6003b8a6fd7965ff83a0766a0d53e6ea24b5e69318ff7859f71906adbcc83985943aca3f90f\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a1cff9ed136eb02ef0c5d39c46ed9bce066b22645e73715247a31f0c4ba43a23f0d7a6dd4ce941d9d79abd71f7b5b3b51835a7f1173cbd88b6a9e561776d8007\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_declaration_not_json",
|
||
"about": "a declaration that does not parse is no context",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c3352da4e95f9bd206d4a45b29e3ceed9f72c9f5c88ec8ceb287485234fe613f59cf1899571037584f54c6847269b3d2098161995ec2647bcfac2e4744f21905\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "not json",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "decision_declaration_altered",
|
||
"about": "a declaration with a purpose added after the operator signed it, and a decision on that purpose",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"declaration\":\"9f858a8865ad63376143cca761c818d1e0c2d2121c598f709aadc17dff394108\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:PersonalisedAdvertising\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4f2e6ba55026b3c4e72b16412bf30edb22a433b96b4b0db764bca8cc450aef9b187bc22d3d713fb2ba24db1d886687624be7eec0680efc1e938d68c2de5bb509\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"},{\"basis\":\"dpv:Consent\",\"data\":[],\"purpose\":\"dpv:PersonalisedAdvertising\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_declaration_other_class",
|
||
"about": "a valid lawful-basis declaration given as a recovery record's declaration",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c3352da4e95f9bd206d4a45b29e3ceed9f72c9f5c88ec8ceb287485234fe613f59cf1899571037584f54c6847269b3d2098161995ec2647bcfac2e4744f21905\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_alg_mismatch",
|
||
"about": "a record naming the declaration but another algorithm",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.2\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"db4d66cab4dad252e97108bd8bb8de906c265f1a7c4e2013a8497a43233979da0575c270128bde03b9e9dd2aa1fde4554910c14d6a4914e7fd492ca008d77c0b\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_declaration_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_binding_type_mismatch",
|
||
"about": "a record naming the watermark declaration as a fingerprint",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"fingerprint\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7addb2c2c3f15ed99e2d75342e9ffe04e6320d5986026f2a528a07a9b006f83c24cdedae09795b8c4f66f6e84c7c45146173894ad8f77db8fa757a1a531eb807\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.watermark.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_declaration_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "binding_recovery_no_matcher",
|
||
"about": "a verifier with no matcher for the declaration's algorithm cannot check the record's value",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"attests\":\"ancestor\",\"binding_type\":\"watermark\",\"declaration\":\"dd748e836a7d04f32681ddd68316f50b856816100c7e5623bef87ea85e310176\",\"observed\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"binding-recovery\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c3352da4e95f9bd206d4a45b29e3ceed9f72c9f5c88ec8ceb287485234fe613f59cf1899571037584f54c6847269b3d2098161995ec2647bcfac2e4744f21905\",\"signer_id\":\"did:example:resolver\",\"signer_pubkey\":\"c6822637c7d310ec57627be00ba259d253749f4aaf644470cffbe53a35f73242\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"1910f9511d560f9b30a03956ba02aa9ba8b5708138fe76ec307ccd8c671d3bd412f9139d0fa39ce23e5a4e4e8aa73eaceed625a331457e7d321a1e8a10e84c03\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"publisher": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737",
|
||
"exact_match_algs": [
|
||
"org.example.fingerprint.1"
|
||
]
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "recovery_no_matcher"
|
||
}
|
||
},
|
||
{
|
||
"name": "decision_declaration_is_a_decision",
|
||
"about": "a decision given another decision as its declaration",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"declaration\":\"8bceb8c02f63daa9b07e1bd32284b1d01393442267b1c876db306ac48e712fa8\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:ServiceOptimisation\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0c00e1a16ea27e945dd941ec80d9911010cc0fb7beaf2976db8cd0abf8ee9fa4a60afc45a9bf30baa71b199bb4a7b1dfd3bea07f451057fed0b9f19c0ffdc10d\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"declaration\":\"3b61a61fc9fce4c55346426ca2a79a52ec9e817a7acde4dde3d1bd845cc79057\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:ServiceOptimisation\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ec53482c540cc6fe535f48fc583bec1f2c0643ace63c6c4e17ed16fdb1824d173101d8052d9054a0d9e849794c9b7976bac99dc1ab2ddf60702f37db38290402\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "decision_subject_type_mismatch",
|
||
"about": "the declaration's subject read as a receipt rather than an object",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"declaration\":\"3b61a61fc9fce4c55346426ca2a79a52ec9e817a7acde4dde3d1bd845cc79057\",\"outcome\":\"dpv:ConsentGiven\",\"purpose\":\"dpv:ServiceOptimisation\",\"record\":\"decision\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4a22fa49a62dd67bc3cd3760880c46a22cf84b6eaed56d18cb26dcd5fb0271072198c13283c8f277143031464afb44c9dadc7874a4df7375fc13d09e14070900\",\"signer_id\":\"did:example:sink\",\"signer_pubkey\":\"d759793bbc13a2819a827c76adb6fba8a49aee007f49f2d0992d99b825ad2c48\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "decision_declaration_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "declaration_given_to_a_declaration",
|
||
"about": "a claim that names no declaration has none as context",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"declaration": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"89de9561b1548348a17ea148ced91f671bd2d62436e33bd97c982db016261a29beb56f75b0b0282063723cf70fe754d1ba911779911fdf6ad4158aa9e8a3e804\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_tie_accept",
|
||
"about": "joules_total is the decimal string 0.0120005: exactly half-way, so 12,000 uJ agrees",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:ece8e726e8a2139b3f398fd120204c919a957ed4e465b59c705a7da0eeb7d98f\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"c0f700dbc37218fa8279a716e1400e241b6f5f39485e3c24628dbc5c99cf94be0ce3523642629b28ae71173d9f87536c468be456751bf89324dea7104263f703\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.0120005",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.0120005",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:e8592d661d6d46331fc6de4c717b191a23ada44756a10d9c5893b6188117e93b",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "f708c8257c3d9a8f81bbd8a88ae9e2314334cf5b99a58f670fefd8c04ca9dac9df879e6d1eb2afbcade13405c2f862cf6ddc1970e5323c77d1d675d17ef6f309"
|
||
},
|
||
"receipt_id": "sha256:ece8e726e8a2139b3f398fd120204c919a957ed4e465b59c705a7da0eeb7d98f"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "35888f452c553b95769afb0cfb4d777271c73998ff62f99ab8244f4900cba9ee"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_tie_upper_accept",
|
||
"about": "the same figure: 12,001 uJ agrees too",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12001,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:ece8e726e8a2139b3f398fd120204c919a957ed4e465b59c705a7da0eeb7d98f\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"6bf01ea57c0ae9dc960c7ff9814e98fcfcd92b36f0f14bb470641b9e5882a13d33f7b8597ef6295b0ac6dffe7f3eaa78f81dbb0ddd46417226688f35340a5a0c\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.0120005",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.0120005",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:e8592d661d6d46331fc6de4c717b191a23ada44756a10d9c5893b6188117e93b",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "f708c8257c3d9a8f81bbd8a88ae9e2314334cf5b99a58f670fefd8c04ca9dac9df879e6d1eb2afbcade13405c2f862cf6ddc1970e5323c77d1d675d17ef6f309"
|
||
},
|
||
"receipt_id": "sha256:ece8e726e8a2139b3f398fd120204c919a957ed4e465b59c705a7da0eeb7d98f"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "8fdd91a8026f089e4add0cee08e3b05d7d2d72e88b414641d674ad69f31d6783"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_exponent_accept",
|
||
"about": "joules_total 1.20005e-2, the same decimal with an exponent: 12,001 uJ agrees",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12001,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:e39cae42285fd9df2561355018ce1dde6fb62afb7d2019516c4eb12c4c13d292\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"71cfef5aa10176cf7640dc96c165a280c91e7b66f1e5a51d296e5e4aac8e755d7c2fb6fa694cc381e8d9436d8bf683fb786ae6d379e3abca49726937345c3c05\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "1.20005e-2",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "1.20005e-2",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:a964b9a6f6ea533b1c83bfd2a37aced35da6b720f7236832c21c39e6d19a4cd7",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "d52c78a642a5b7db5bd97b5f6deeab3b6e408ae2f18336e5e27944bab3b83c2b5acdfba5efb3b836cbc6a6b7ce2b5f8401f700d5f2df7f6cf9fc217871dfdf01"
|
||
},
|
||
"receipt_id": "sha256:e39cae42285fd9df2561355018ce1dde6fb62afb7d2019516c4eb12c4c13d292"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "23c97bb53a98bb20a85acde1d053a52ed4832096dd3c92eb07f74c90f142acfa"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_integer_accept",
|
||
"about": "joules_total the integer 1: one joule is 1,000,000 uJ",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":1000000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:73d30f02cf66f18e99aa75521c6e22ad640ee30036526cf248768e0811d125d4\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"9ad5f8812c2111e33719e46d0d04af0c0d118f7f6da3b018d7002bf5e2aecfdc71aa1a1a04c93050f2d80ac45b166b5ffeca91dea884df8c3a56718c9ab4780c\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": 1,
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": 1,
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:9585030c813aaa722e775e5b5a681a68c0da0d5a47bc3c124ef25fd410d2b3a5",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "b9145e59ebf527d2f9a0bc3f339878e54116b871d151e6d2a4f4ca964da0f7ec01b9975997f6f438d351b0d12b48513568d572250861c9fb6c60ad9a4852120b"
|
||
},
|
||
"receipt_id": "sha256:73d30f02cf66f18e99aa75521c6e22ad640ee30036526cf248768e0811d125d4"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "07de859abeafa4d9e3c29932a488a2bc193c6d0d176b03fcff6f59748965fb38"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_long_tie_accept",
|
||
"about": "0.0120005 followed by 26 zeros, 34 significand digits: still exactly half-way",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12001,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:b0b93324ce5e270ed6387581156ee268b3ea8f8260dea59f87e96572aea6f101\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b4385d5cabd21aafc381f06228fd9cd0e13e40ad09b4691b83dbb459670f15809954a72021a8ee1860e1530a0d1379472b71726cc85950a2c355decca1d4e108\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000500000000000000000000000000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000500000000000000000000000000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:99e3c481ebe6bf8feaedd0561132ce06e98965b2f69f5c879b72ba8ce18a1011",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "05cedba8790407155e571a4535d41cd10a07a13784d6ed5bc0cd466f1dd11e8c9dade24a6ecc12a2baada88dc7d901bc8cded536203d391969691eadc71b300d"
|
||
},
|
||
"receipt_id": "sha256:b0b93324ce5e270ed6387581156ee268b3ea8f8260dea59f87e96572aea6f101"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "2a129cd87042254bd40e109acbc9779a3142f112396947f7981ec7fd1744e0a3"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_oer_long_figure_accept",
|
||
"about": "0.0120004 followed by 26 nines, 34 significand digits, is below half-way: 12,000 uJ",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:39006b5bebf4d89a836564a1830841e6450636cd1273c4be17ce16b5bea1f186\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"78eefd2fcd0dbec3ba886da97b88a208fe2046ddbc3427df0a78cb27e704c48b859ede02294577c59b35399757a9e0e37efffd3838fc16b2cd297d077c732200\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000499999999999999999999999999",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000499999999999999999999999999",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:168094124c7c860120f7cde4735d9a04632898a2f542a313927539ba1f76f171",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "af394ea04034ec868dea7590aac72e806ecbb66827d5c214ff79dd5af392ad94263ef845ab4623cfcb076fa749cac46202e1f8459762d2cd3665d87ffd18570e"
|
||
},
|
||
"receipt_id": "sha256:39006b5bebf4d89a836564a1830841e6450636cd1273c4be17ce16b5bea1f186"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "3d5f61c59107353ee075fddf8ee16de4e7c2d3ac1056716b7551ef4b17f385da"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_long_figure_below_half",
|
||
"about": "the same figure is not 12,001 uJ, though rounding it to 28 significant digits first would make it a tie",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12001,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:39006b5bebf4d89a836564a1830841e6450636cd1273c4be17ce16b5bea1f186\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"7ef8153ee288055f8a17194961df7ee829e40dcfe9c6a5cecc2c4ca653b676213e8a88c26662d5f83fe1df1375081a73738f5f0bfadaf4a1e2f5ada78298bc04\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.012000499999999999999999999999999",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.012000499999999999999999999999999",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:168094124c7c860120f7cde4735d9a04632898a2f542a313927539ba1f76f171",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "af394ea04034ec868dea7590aac72e806ecbb66827d5c214ff79dd5af392ad94263ef845ab4623cfcb076fa749cac46202e1f8459762d2cd3665d87ffd18570e"
|
||
},
|
||
"receipt_id": "sha256:39006b5bebf4d89a836564a1830841e6450636cd1273c4be17ce16b5bea1f186"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_disagrees_with_oer"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_figure_too_many_digits",
|
||
"about": "a decimal string of 35 significand digits is not a quantity oer-receipts section 4 reads: the OER receipt is malformed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12001,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:331508cd537e78ba6e820abaceb7aa4d390c3e156f3edc0d3048347ef78c33a5\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"ad15d7356febf325e6634c96a26c095cce4c38d6d2e41c1baefff7a3ecc82f10f7ac3123d6e4087afcac805deb2f3fcd116342701970b1efda2207d42b279e0f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "0.0120005000000000000000000000000000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "0.0120005000000000000000000000000000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:a1650e824168af4e08d574070147d0614780fd594b14cb33157c878dd5ae5b15",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "7c130c47ca2b7f4a693e96528c1e06a3546dd6e3a557cad670ead528c8ffe251c85b98ddab6503963c30eeb80a91fdfa53462cb73544a16cd11bd9477d78f80c"
|
||
},
|
||
"receipt_id": "sha256:331508cd537e78ba6e820abaceb7aa4d390c3e156f3edc0d3048347ef78c33a5"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_figure_json_number",
|
||
"about": "joules_total the JSON number 0.0120005: oer-receipts section 4 admits no fraction in a receipt body, so the OER receipt is malformed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:a577c6244757aaeacfa923568d61c249dc997738f3e2c78826293efb96ba67ee\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"687c661df749f0ece5c17dfe47bd3862d5f87bc7bd773681ad69718a30250dadd295c0271568d4e714f7c29dce0201b4cf7ea002c1ffe450ac8dd5c815640307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": 0.0120005,
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": 0.0120005,
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:313feb4e237f3258f710a6c7d9d6fe30b5d289e143cd721218e33c4efb34df67",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "85feb16721910e533d01f4d36eb7926243124d113ea8582e60b5a6c5c78619ab1873b470edf2b9fee933213ffb0de3ebe710f896cc137774acbd997b9d64980a"
|
||
},
|
||
"receipt_id": "sha256:a577c6244757aaeacfa923568d61c249dc997738f3e2c78826293efb96ba67ee"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_figure_negative_zero",
|
||
"about": "joules_total -0.0, which section 4 forbids in a receipt body: the OER receipt is malformed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":1,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:e1a97eba8f695c05e00b8e0bda0dbff4c49df0630c818c5190127e2d91806617\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"971afa550f202f6f347999f90b2ac1e14d6996eefa73c5288a2c84dd337d80c87f1937c6350b9ae4a789c7e5fcbf789355df1a29f584cc5415f31c03c45db000\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": -0.0,
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": -0.0,
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:c51fe722f365fb07f1dffa8ed28a9a55086e2e6dfaf216df959d7db9443cab58",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "a1ee7054b8ebb288783e7e355b78a1d91e282e52c4d05895e577705b0a61822d1ea552a133df97c4c2070e2c92b947e7d6bb3a079fe74da3268bc86dea4b5207"
|
||
},
|
||
"receipt_id": "sha256:e1a97eba8f695c05e00b8e0bda0dbff4c49df0630c818c5190127e2d91806617"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_figure_beyond_i_json",
|
||
"about": "joules_total 2^53, an integer beyond I-JSON's range: the OER receipt is malformed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":1,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:6238babb6bd8be8803f39aa618351564573b0d3234081b00672d2010b1ca9263\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"cdfadef81b4acfcb3c92ab714de4fbc71f7760142d02ff3f53b651b27c8dc1f6ea8b206fe3cab6cf28cd0a628acafe7e055d209a93251eaa5878cc0c625bbe0e\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": 9007199254740992,
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": 9007199254740992,
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:5a112980c2c8641b5fbc113d44429b0b7efbeac882b1b7e05646c297b0f22247",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "bb62f1133c5b469304c2f9a1e1bb12a51a8f4811901937d4ba3d90a3e1e8acf93767d96c7a899b9cee573bc83e7e139366fbc1f5502c5cccbae54eddf52f7d03"
|
||
},
|
||
"receipt_id": "sha256:6238babb6bd8be8803f39aa618351564573b0d3234081b00672d2010b1ca9263"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_figure_not_json_number",
|
||
"about": "a figure spelt +0.012000 is not a decimal string: the OER receipt is malformed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:2f78ddbb05d7880d463673121e4c018b223e6aafcb096e24c356b3644cecc183\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"71f06a056bede252e14e997e6620b5a9f0d33a331517f28270baa069428aa384ef5ab56ee88f17bbe3671b3854c674808e0d15a04c81c530e8d0aecb0894f107\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": "+0.012000",
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": "+0.012000",
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:a9ef58dc6e15d19f7aba38ad3266155711776bdac662bf687d37b0c7a31231e3",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "2daae8614bc6d9796167644cd7160c87ba3ce87616edfd072e5fc6998a2fb3a8b247825ce152fd0d5baedabcbd6f8bd79f0e52cfb3c35cbc32efc838c4f81e06"
|
||
},
|
||
"receipt_id": "sha256:2f78ddbb05d7880d463673121e4c018b223e6aafcb096e24c356b3644cecc183"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_oer_figure_boolean",
|
||
"about": "joules_total true is not a quantity: the OER receipt is malformed",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":1000000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:8cea3ee01787ffc0ad421a0c4467ad5330308ceac3f0e0ddb93b4dc7bbbc7d43\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"5b030b7aecdc7899fb6e2d3a90f15de2854d37d9ad8bea91fd91730301024566ac0f8b293e2cba90de20bbffd21d2104f42cd0731379f091aa97dacd2f5d6b0b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"oer": {
|
||
"receipt": {
|
||
"oer": "2.0",
|
||
"kind": "job",
|
||
"capability": "wai.text.zstd",
|
||
"intent": "replicate",
|
||
"subject": {
|
||
"inputs": [],
|
||
"output": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e"
|
||
},
|
||
"work": {
|
||
"status": 1,
|
||
"outcome": "encoded",
|
||
"latency_s": "1.000000e-03"
|
||
},
|
||
"energy": {
|
||
"joules_total": true,
|
||
"boundary": "one publisher process producing one object (synthetic conformance vector)",
|
||
"breakdown": {
|
||
"compute_j": true,
|
||
"movement_j": "0",
|
||
"idle_alloc_j": "0",
|
||
"shared_alloc_j": "0",
|
||
"upstream_j": "0"
|
||
},
|
||
"method": "calibrated per-operation model (synthetic conformance vector)",
|
||
"temperature_k": "300"
|
||
},
|
||
"provenance": {
|
||
"how": "derived",
|
||
"device": "synthetic conformance vector"
|
||
},
|
||
"floor": {
|
||
"bits_committed": 256,
|
||
"bits_delivered": "256",
|
||
"floor_j": "7.349706e-19",
|
||
"decades_above_floor": "1.6e+01"
|
||
},
|
||
"hash_alg": "sha-256",
|
||
"sig_alg": "ed25519",
|
||
"chain": {
|
||
"prev_hash": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
|
||
"receipt_hash": "sha256:a58cbfa8dae535b4e6e1f92b50efd1cbd59c6dde50a5df45759d95a86d9cd7f8",
|
||
"signer": "ed25519:claim-conformance-meter",
|
||
"signature": "bf0d8ae61f535c68e3595e423ca800805ade1c184e5432be136a6931b1c856fa688d70ed6fa552ff6e316d35c2c0a0b984b087aae2fb12ace1c59ed910646908"
|
||
},
|
||
"receipt_id": "sha256:8cea3ee01787ffc0ad421a0c4467ad5330308ceac3f0e0ddb93b4dc7bbbc7d43"
|
||
},
|
||
"keys": {
|
||
"ed25519:claim-conformance-meter": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_oer_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "malformed_byte_order_mark",
|
||
"about": "a byte-order mark before the text: RFC 8259 lets a parser ignore one, and step 1 does not",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"58ab60212898afda4315a8f864769aa3378f8b6afd3ddaa77ea4d0061e64a447f298f935aaa26e878e94a0a50fa4f5e76b83cb48376e081c4f761596d94c4f0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "malformed"
|
||
}
|
||
},
|
||
{
|
||
"name": "class_not_a_string",
|
||
"about": "a class written as a number is a type error, not a class nobody registered",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":\"sha256:970afc417e8a310929f3cdcd65ac989a477f240b5a7f27435139261da73288ea\",\"work_unit\":\"subpixel\",\"work_units\":49152},\"class\":5,\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"d789eaa93445157bd7551f5b8759fd55860f51b05a9c06c18170920d477eaa047f5afa33315cb9684874bbe83b96c8a078ede566ead87252874ec068957eda0b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 1,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_record_outside_enumeration",
|
||
"about": "record is read first: a record naming neither a declaration nor a decision is a type error, not a body missing the members of either",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"record\":\"consent\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a3172888c76e8d73a86761fad4716ab789329fa16b446de84e89a70360c8a34aecd79def438188565808912b005d6a336e804f6f50bdad2928a3cb3e413f8206\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_vocabulary_before_purposes",
|
||
"about": "a vocabulary without its scheme, and a purpose without its basis: the table reaches vocabulary first, and its encoding is checked as it is read",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"data\":[],\"purpose\":\"dpv:ServiceProvision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"0f620f3f9fc886161683399b2293ed6ac5a9b583315edb7933d58c44e3499ef63616097a5145a9a75cb7aded89fea7e7f8b2e1cc11e4a522b1333bd05428200b\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "lawful_basis_purposes_in_order",
|
||
"about": "the first purpose's term holds a space and the second carries a member no purpose has: each purpose is read whole before the next",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"fragment\":\"9109aa1bee9f220a0cfb9bf4c5794f4c11027b8f20f6a804462b8b0b86463376\",\"purposes\":[{\"basis\":\"dpv:Contract\",\"data\":[],\"purpose\":\"dpv:Service Provision\"},{\"basis\":\"dpv:Consent\",\"data\":[\"pd:Location\"],\"note\":\"x\",\"purpose\":\"dpv:ServiceOptimisation\"}],\"record\":\"declaration\",\"vocabulary\":\"https://w3id.org/dpv\"},\"class\":\"lawful-basis\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"14a2e1db096289e6a9f5f3b16655e377d783615faddaf4b168fabf22b8bd7263791fbdc45ffb2ca4d572380551d870a69a3df8977ca60849fca899f8cae6b908\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_alg_not_a_term",
|
||
"about": "an empty algorithm identifier is not a term: a type error at step 2, before its registry form is looked at",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"https://resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"4f492a78174c6c81dc4275912c4f0634a90181e47d2ca1087ae6aa4d24896a1b4d1d42015789e35f2bf8815bf7a3b3410303a9402e7eb19404adac2090ec4807\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "soft_binding_endpoint_not_absolute",
|
||
"about": "an endpoint with no scheme is not an absolute URI, a type error at step 2; an absolute URI that is not https is refused at step 4",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"alg\":\"org.example.watermark.1\",\"binding_type\":\"watermark\",\"registry\":\"https://registry.example.org/soft-binding-algorithms\",\"resolution_endpoint\":\"resolver.example.org/matches\",\"value\":\"636c61696d2d636f6e666f726d616e63652077617465726d61726b207061796c6f6164\"},\"class\":\"soft-binding\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e7a6c79abb216a29c4e65ceb6ad4ca8e0feeb5b0c045abe8121f1fcc4d36219527e680de85c7cf90870ab3ed021d42526191de2dde971cf9661420f4d2b3500a\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_work_unit_unicode_white_space",
|
||
"about": "a work unit holding U+3000, a White_Space character outside ASCII: not a term",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":12000,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"sub pixel\",\"work_units\":49152},\"class\":\"energy\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"a7b126ce9cadd94faf3b314ad727677875d8e9e462c48c10b246d32324b83182734b90809723b9e8d8639807e0ab622ba949879de36e31d5f31f4595437abb0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
}
|
||
]
|
||
}
|