Two claim classes report on one energy figure without changing the receipt that seals it. `measurement` carries a bracket's values as integers with each bracket's liveness facts, the build and the power reader, and is accepted only against the receipt that carries its figure. `operating-point` records the requested, committed and delivered operating points and a prediction. The ratio, verdict and residual are derived by every reader, never stated. energy-measurement §6.2 gives the figure and the least declaration a report's integers support as exact integer formulas; wai-rs `energy_report` implements them with no floating-point arithmetic. §3.1 defines a live power reader: a rail must advance in two consecutive intervals, in at least five and in at least four of every five, over at least 300 ms. A frozen or held rail is refused rather than sealed under a hardware class. An unmetered `0` is never a figure of zero joules. A JWP object's figure, class and origin are bound into its Merkle leaf (`\x02`), and a labelled group payload signs the total's class, its coverage and the parent link. An object must sit at the position its inclusion proof walks, and group signatures follow the strict Ed25519 rule claims use. `jwp_delivery` and `energy_figure` implement this in wai-rs; joule-moq 0.2.0 builds and verifies both labelled forms. New corpus `jwp-conformance/` with `jwp_verify.py`, more claim vectors with the earlier ones pinned, and a CI job that runs claim_verify.py, differential.py and jwp_verify.py. Legacy receipts keep their bytes. External JWP implementations must adopt the `\x02` leaf and the labelled group payload before verifying objects or groups that use them. Co-Authored-By: Claude Opus 5.5 <[email protected]>
4295 lines
404 KiB
JSON
4295 lines
404 KiB
JSON
{
|
||
"about": "jwp-receipts section 2.4.3-2.4.9, 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"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_accept",
|
||
"about": "a report on the meter's own energy claim: ten workers from rest, sixty completions over 3 s, a 10 W marginal; the figure and the declaration are the least the bracket's integers give, every sample live",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"1e3f79ad3571073e64b4ff97733c472c030d241377367a511e2a7be4f5975ea0fb34f2612fc78271941281fa185c3ba1252e8b8c96e3b3c61ee7854580e56e0f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "31cfac4ec8c104a7db59c4156cd7968f539c690c7b5df0c69e34cf2c48529db9"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_running_accept",
|
||
"about": "the same bracket opened on running workers: the work is C, not C + N/2",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"running\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":96344,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":500000,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"eabce776312d55a29506d7a9d426d0d53a12240c1ecb763c5b0c69adf173384ef5637d267027d55fdf4ab0ddf3b30830f71c4d90560fc56819eb1e4eee38e203\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"e8736d864cd715c5a50527390cd9f8f3dfc8409aecc46090fa26e6cdc38fe5ec\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":96344,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":500000,\"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\":\"5bb5d00aed33f28d1a8435bfad14dc80b6e31b3447e819803db0c5958ae043763490f43ef7e7e0e98f999d57f3241553059282edcf239272faf08d074863710d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "a9501d42ed88da48e7e4fa6c90d304041bddc93fd0c396a7a42f2524d4cd7c56"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_one_microjoule_accept",
|
||
"about": "a 0.563 uJ estimate sealed as 1 uJ: its declaration is dominated by the rounding, and its products exceed 128 bits",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":500000},\"completions\":50000000,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":200000},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":2815000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288796,\"window_us\":2815000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":1,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"c4da40a84d34bd6caca1fe0abeb0fd73cd0bb0e7112cc5be0b3149f5df154adf77d1a2d6fc6d7ddfc5d1167b216e3ec08185b82782e185c22883500b32429e0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"0333fccf983324e5bdb71c2b3c66ae4a136760c0677f34213020bb8079570372\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288796,\"window_us\":2815000},\"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\":\"8315cdbc7849c5e9df31fb5306474abd93ae6e605bcf035d04f5230221813d5b5cc4eff76e29ba6fa92d75b3437eb6596f3464e8d11385be0a775a1cf662420c\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "f1192ec4089fd7522d4e2d25dcee337116da5d27af5974ee94463e6743612ff3"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_half_up_accept",
|
||
"about": "an estimate of exactly 2.5 uJ: a half rounds up, to 3",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":21000000,\"n\":14,\"sd_uw\":1000},\"completions\":1000000,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":1000},\"in_flight\":1,\"opening\":\"running\",\"window_us\":2500000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":96226,\"window_us\":2500000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":3,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"fd7360b82ff38b1bf97c9242e7fca6742b65d0658e181db52b65b2ba8e2126c0a1c45b444a919e2a3d5201899d9ee9eedafe864402f4ed161f9f90905325750d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"9eb58773fccef67a99e96c1c4d5212afaf5151b0c311c9647dd20b9615267d84\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":96226,\"window_us\":2500000},\"grade\":\"measured\",\"joules_micro\":3,\"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\":\"a83ae8b8b013296d14641f5dd6864743d33d7f7c44b9468540ad836136f00a8475bea5222adba19d279818536491e1c1105c52668f35df09dc794eb69625e70a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "aa4a132e9a381c3b8d03c8c3e3dd9cae22db5262777a66695a8bb79f5238162e"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_wide_accept",
|
||
"about": "a window of 10^11 us and 10^12 completions: products past 200 bits",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":1000000000000,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":100000000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288715,\"window_us\":100000000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":1,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"597740325e6e5600a70028d3e027e01030301acbf5df5594110a46ba06ccbe3a036e7a451016d55b08e53ffa726845ffe491ead5eb703606446930b24587da09\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"a2104c02f0556626cce21a9af66529c73c37a3cef0a7ab7c3364180002f8fcf9\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288715,\"window_us\":100000000000},\"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\":\"9dfdc75e41137c9be555aa2fe571a29911211a27fac06535e319d2ea36b80d2739d883ddbc8ed723a2615db57d4357424040ff71e5104925e751570f8d9b9a0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "93a20b0a6d6f0a1fc8acbae65b92ede02b50c45c41a77acf47bf43787b146a78"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_declared_above_least_accept",
|
||
"about": "a calibrated instrument declaring more than the bracket's least: its calibration covers more than the bracket does",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":\"https://calibration.example.org/certificates/0001\",\"energy_counter_filtering\":null,\"energy_provenance\":\"CalibratedInstrument\",\"energy_uncertainty\":{\"relative_ppm\":45669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"90b755c7c9fbe7b25a0e3de149a8e05f945dc701614470af787a2064d355d0620ec2a5d50c6b1cfc7dadba464f9255d7072d2e6788bbe744885ec592b77c7202\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"a6d676c805901d84d6797d60c862619ee4c1160df0eeb97a58c10bc83da73031\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":\"https://calibration.example.org/certificates/0001\",\"energy_counter_filtering\":null,\"energy_provenance\":\"CalibratedInstrument\",\"energy_uncertainty\":{\"relative_ppm\":45669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"63b4c4975ee05e58715c96faead6623dfc860f9ec06a6998b400df8c0471ea4f6d12bfa945ead835dd1e640e5291729a007a2ec1f088d7859cf1ff2feca4c906\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "fcac38966a4ec4ebce5153aaf515c3919adf19b98a561d4f9c5b241bad9fcb79"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_model_based_bracket_accept",
|
||
"about": "a ModelBased figure with a bracket of four samples each: no declaration to check, and liveness binds the hardware classes only",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":4,\"longest_live_run\":4,\"mean_uw\":30000000,\"n\":4,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":4,\"longest_live_run\":4,\"mean_uw\":20000000,\"n\":4,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"4b97fcbd81fd8f2e2fbea5cdc21dc0d7eb422c42c372d34fc2dc76a170a03d524735d88a4276f126148cba2c1690fd4b4ecf4ce351f42106070a6237aadea60d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"8fa4deea6e8c07b3d762aff6a998238a4bfbe88b3f2f03a30e7fb5637db09700\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":461538,\"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\":\"d59e5b819800812917ab3023ef4c015c1ac77a18b00601922359e98555a051413ba908d50ae306cdb7510f3021e94b8b1188ced8bf49c3c6b63f60872fa28e04\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "a3beac76f237b03ee42f9eec93881e96f07dea0ce752702bd441dcfd60166372"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_model_based_dead_rail_accept",
|
||
"about": "a ModelBased figure whose bracket shows a rail that was not live: a model's figure is not a reading, so liveness is not its rule",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":1,\"longest_live_run\":1,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":0,\"longest_live_run\":0,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"e70d483679d77025e2b0be1bb0a846c2eaeefd0a1b45fbbd5cf37710ce97145641114017ed3dc4d6d780c70254df5041f2c932631e76e2299b8fd2a13cd4d408\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"8fa4deea6e8c07b3d762aff6a998238a4bfbe88b3f2f03a30e7fb5637db09700\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":461538,\"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\":\"d59e5b819800812917ab3023ef4c015c1ac77a18b00601922359e98555a051413ba908d50ae306cdb7510f3021e94b8b1188ced8bf49c3c6b63f60872fa28e04\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "c4e6d317be47bc126bd6fb30521fc6426ff2dcb8836d27b2062013f365b47fcf"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_no_bracket_accept",
|
||
"about": "an Estimator figure obtained under no bracket: the report states the build alone, a debug build, its toolchain, target and reader unknown",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"debug\",\"target\":null,\"toolchain\":null},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":9000,\"power_reader\":null},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"736932eac49fcaacdaf93ef2baf563f0167e5c594bcd6c99b9a079b9a8ff29d60a3e6ff6c1e92aecd40ecafa7e896fcadb7b6dd2a798f19eaada4ee7dc80dc0a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4f17f1bd9380d3758551f1975e0e9a5b8838d634d97611790bcfc72ce04499a7\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"Estimator\",\"energy_uncertainty\":null,\"grade\":\"projected\",\"joules_micro\":9000,\"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\":\"a808cee408e0f73c8852a581cc487a791333dbb26feba9e02bf1720e4650c26145e9be23be2bc9e118338ce3930550001436cda4b3ea8329aec6b7f452989f06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "f1a607e8617c465ab84d95502f2b196b30d4b08091fbb2d3a96d5773bb3a27a4"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_counter_no_bracket_accept",
|
||
"about": "an OnChipCounter figure not obtained under a bracket (a counter read through its span): the report names the reader and carries no bracket, so the rail's liveness rests on its producer, and no verdict is derived",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":20000,\"window_us\":1000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":9000,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"2bc40664cf691d9ad903703895ace1d340c1148b235788d0c6e8b81e2851c5055db5c93bf26ae96b557f92730a9ce7197166147b4b7961b8537facc3d58c6509\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"96825459681c70064d27722850b4f269be31d0dafa47c71155df88781dacf0b3\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"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\":9000,\"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\":\"e33fa31adb9ce8372eee85500de189cc437ded7b1c52c3d6cba0c4784ee1b6c6a151fc1c550d68d89c15e709c93df08be0bb6f968b8954b498f32fa0e059ec0f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "7c617b37f8502db82afe457d0b706568311e633859586015b7b3f9ce57d31864"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_step_accept",
|
||
"about": "a report on step 1 of a provenance receipt, given as the view of a receipt the verifier has verified",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":1,\"figure_profile\":\"wai:asset-receipt-id\",\"group\":null,\"joules_micro\":4200,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"86364996bbe532596bc9b4971b5edac37da55a585bef2d502f147e27df4f079bb60b37d4915bcab5684b06a699f1068daf7af5f884d157e4e30a5eb9ee8e8109\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "wai:asset-receipt-id",
|
||
"identity": "ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": 0,
|
||
"joules_micro": 0
|
||
},
|
||
{
|
||
"index": 1,
|
||
"joules_micro": 4200,
|
||
"energy_provenance": "ModelBased"
|
||
},
|
||
{
|
||
"index": 2,
|
||
"joules_micro": 90
|
||
}
|
||
],
|
||
"signer": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "85dfa4e6a78ce0b567f252cdd89b70867fad0d9994842d51b91b60eee48abbe7"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_object_accept",
|
||
"about": "a report on a delivered object: its subject is the object's content hash, its index the object's leaf, its group the group receipt's link hash, and the publisher who signed the leaf signs it",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":2,\"figure_profile\":\"moq-jwp:object\",\"group\":\"000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261\",\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"c1760a152995a802acddb2f0b8582f63bb733841b3da71416eaeb830ecb7c9b50f4db78bdd210e4ea484c86d42bc5e6e6f695a8c1b8fab0e147286e7cc85b80f\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "moq-jwp:object",
|
||
"identity": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"group": "000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261",
|
||
"figures": [
|
||
{
|
||
"index": 2,
|
||
"joules_micro": 461538,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 44669,
|
||
"window_us": 3000000
|
||
},
|
||
"energy_counter_filtering": "Unknown"
|
||
}
|
||
],
|
||
"signer": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "9325d323c6fe2d20a48ae6905a776637879d429c5f135805453d1f4bfb4a7843"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_accept",
|
||
"about": "requested, committed and delivered the same point, and the energy a declared descriptor predicted: the commitment was met, which no claim states",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":{\"descriptor_hash\":\"1122437cacd17ba56225e487fcb4f5350858024b1fa7051cdd09dd526cba2f32\",\"predicted_joules_micro\":450000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"33b1b8ada30b658abc288e09346d904b570b3f7ba95a4b74f7858d494dbd0d400a261ec371b3e98a6b9a37b2a45d96288600bbb1af496b4d1513e65c9d416001\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "1add710393534d82433f29bade194d1bebf899759cfbfc4447ea58ce7b7cca4c"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_not_met_accept",
|
||
"about": "committed 1080 lines, delivered 720: both are recorded, and a reader derives that the commitment was not met",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"ee58e9673e6ed767a25916a6cac7814862a43e83e592fbb9201e21c1af7e81fcd6cf35a4443a7b3a1f6a55fe925198735ed3b9a8dd2031b4d312b73ee5f76f06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "fab835014e0b5c6d436b21e73add65d399fed640d7cfc4d9d4a55b0b8ace0274"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_own_account_accept",
|
||
"about": "no request: the acting party's own commitment and what it delivered",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":720},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"8ea1a1fe049f31616ea4b02149e6f5d4b0494dd7c677adcf2ccc2a21133931217fc69617c740360de188b85bf81e9451453b58df4d5685f62d86f9f461b95502\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "23665602489e4918c7519ac8122162ad59eecc25a38af870a625065cfc0d8860"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_prediction_only_accept",
|
||
"about": "a prediction alone, above the figure: the residual a reader derives is negative",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"prediction\":{\"descriptor_hash\":\"1122437cacd17ba56225e487fcb4f5350858024b1fa7051cdd09dd526cba2f32\",\"predicted_joules_micro\":500000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"2a58588c91788e5ef6d2c1643d216096fff5aa1abbaf2159b9a876dd71480c3baa1880844b2ea411fa381b750db450549be13c0f70b196077ecfb6f649a8650c\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "0b23db31f16ae8ddb46375b05152bc63a1a8b2ccf5ce9836091aee25d2989763"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_acting_party_accept",
|
||
"about": "recorded by the operator, not by the meter that signed the figure: an operating-point claim may be",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"6d4146281934a7f8c00932098eaa910bd93c4ca61da058667114a6f846b1f86eb42ee3a5fb3fb01beb32f44f0b162b78e454de93111d3a8f6a46d1a89deb570d\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "9ddda7105a88f29d4408fe36a6c658562fec67fd9050b57c8bbd9d44efb40340"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_on_binding_accept",
|
||
"about": "an operating point recorded against an energy binding's figure, which no Ed25519 key signs",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"wai:energy-binding-id\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":720},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"1183095b52b632307a477346e313055425d24b7c6c9e778d418dab9812526d2222154e0e039de94afd2bb5271d0cb43cf9a8116e359530e42c93b6280f963d00\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"1b03d02ea38bba751f7afbaac147f98bb493271a8e29494f5fee5e0e4ec6a940\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "wai:energy-binding-id",
|
||
"identity": "1b03d02ea38bba751f7afbaac147f98bb493271a8e29494f5fee5e0e4ec6a940",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": null,
|
||
"joules_micro": 461538,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 44669,
|
||
"window_us": 3000000
|
||
},
|
||
"energy_counter_filtering": "Unknown"
|
||
}
|
||
],
|
||
"signer": null
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "3bec775a94182a755d917491b80555f7110a5c1451a7b1ba586b4f5c7e719fd8"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_matches_labelled_delivery_accept",
|
||
"about": "the object's leaf is labelled, and the claim restates the leaf's figure, class and evidence",
|
||
"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\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 12000,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 20000,
|
||
"window_us": 1000000
|
||
},
|
||
"energy_counter_filtering": "Unknown"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "2835bfa8d59cfacbc89cf2eb3a54c91cc114b78198e5830d84ee295dd2659eb0"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_filtering_absent_reads_unknown_accept",
|
||
"about": "the leaf's OnChipCounter label states no filtering state, which reads as Unknown, as the claim writes it",
|
||
"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\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 12000,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 20000,
|
||
"window_us": 1000000
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "accept",
|
||
"link_hash": "2835bfa8d59cfacbc89cf2eb3a54c91cc114b78198e5830d84ee295dd2659eb0"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_class_disagrees_with_labelled_delivery",
|
||
"about": "the leaf labels the figure ModelBased; the claim says OnChipCounter",
|
||
"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\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 12000,
|
||
"energy_provenance": "ModelBased"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_class_disagrees_with_delivery"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_evidence_disagrees_with_labelled_delivery",
|
||
"about": "the leaf's declared uncertainty is 20,001 ppm; the claim's is 20,000",
|
||
"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\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 12000,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 20001,
|
||
"window_us": 1000000
|
||
},
|
||
"energy_counter_filtering": "Unknown"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_class_disagrees_with_delivery"
|
||
}
|
||
},
|
||
{
|
||
"name": "energy_labelled_delivery_figure_disagrees",
|
||
"about": "the labelled leaf's figure differs: the figure is compared before the 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\":\"b4b6fc41b35a63093bb6e7fb0ee9c426cfb96dcda04dd0e2ccd3ee221a2414a33edc038515da39efba721695f3480c1fa4a875c64d14b83269af355a895e3100\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"object": {
|
||
"content_hash": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"joules_micro": 11000,
|
||
"energy_provenance": "ModelBased"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "energy_disagrees_with_delivery"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_missing_member",
|
||
"about": "a report without power_reader: a nullable member is present and null",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"dbfc80b2eadd82f7723e7ff4eb4c0f38fc7c7335abdd111ca8df17cd6771ba457b06b397f915831f5db4dd9b9c764ab89f8f65e47734048d56eeaf80c36c090d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "missing_required_field"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_bracket_unknown_member",
|
||
"about": "a bracket carrying its ratio: derived quantities are never carried",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"ratio_milli\":86602,\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"e50e69d760956cd228574ed3a060970818a58b7770e30c7dd3c3baf4fbcc596cf5c8b8faad70c4953d4963594aac93891e99f24f1111147babc88639c453c307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "unknown_member"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_summary_missing_liveness",
|
||
"about": "an idle summary without live_intervals",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"3460fc6cefd32685c97908b60154120fd71170a140c722f8ac7f320024dfbb09505ec942c7c40cbdcf2575bc0cb8468cc87cfeb8ddb39a199050914d3824d509\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "missing_required_field"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_opening_outside_enumeration",
|
||
"about": "opening is from-rest or running",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"a0cf180a392dac57bab37fc304018a68420bf929005153bbd7380575abcc2aff2c532a542c410c533efe52f04ac8f7a266da8827486961917669904a2a0c3f08\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_build_profile_outside_enumeration",
|
||
"about": "a build profile is release or debug, in that case",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"Release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"9555f75f6a5f810cfaf5a89649007a2fec4e04124f0f4b52c96ec1683c04f7c50ab8778f994920d4307e824735a206d6ef5cc6986d719668ca5b9052131a270f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_mean_fractional",
|
||
"about": "a mean in microwatts written as a string: a bracket carries integers",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":\"30000000.5\",\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"fe1847cbd285ccd693349b7fbf10c11f59523a19714da25d987ee660b6c33cb6b59bbc3bbef8207f9448d861a4b23f29c58b7693f62d2d7a6734d49b657a6002\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_profile_not_a_term",
|
||
"about": "a figure profile holding a space",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp: claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"ce3385a46e72dfb687a0aac0670ee9803fa9d64adb9c394eaf0c003a728ef5a09ac7c49197d8a61893e09dbc9edc06eb5b70d13ebd5b6f1eac5c8bd20c92770f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_target_not_a_term",
|
||
"about": "a target holding a space",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86 64\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"7d04f6790efae4f741112d95f12f6e28b626d2a333a84db5a610160b4d4feda79d23e5e5cf9e0b29c3e6d8656e84f64ae935956933121cf27cf2e4f9b4dfcc09\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_key_not_a_term",
|
||
"about": "a parameter name holding a space",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"frame rate\":30000},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":{\"descriptor_hash\":\"1122437cacd17ba56225e487fcb4f5350858024b1fa7051cdd09dd526cba2f32\",\"predicted_joules_micro\":450000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"5de0d20ae6a8e49b7f3527fe5e55e8cfeb3c7cca06305a2d0810329f9df0e4620a4dd907e9602cc0b6b17341ce236adbbe396d9163e7634b02a9d568820acb08\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_value_not_integer",
|
||
"about": "a parameter value written as a string",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"height\":\"1080\"},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":{\"descriptor_hash\":\"1122437cacd17ba56225e487fcb4f5350858024b1fa7051cdd09dd526cba2f32\",\"predicted_joules_micro\":450000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"3bac08ce2d7048174dde21a87e69e733252c8557d7fad64c45912dfffa9e03edac6b3c9704cc2523c47373ff62de866a88cb797939c16ccbde31c49cfd921400\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_descriptor_hash_not_hex",
|
||
"about": "a descriptor hash in uppercase hex",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":{\"descriptor_hash\":\"1122437CACD17BA56225E487FCB4F5350858024B1FA7051CDD09DD526CBA2F32\",\"predicted_joules_micro\":450000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"f46510f1c99c9c01904ba4817bc3936ab139a56ef6cc4ff5794f01d339b2e13dada3a665627a17dbe078ed1dd6e4b5387908aed56d95cfd0408b3ac707d58b09\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_vocabulary_not_absolute",
|
||
"about": "a vocabulary with no scheme",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":{\"descriptor_hash\":\"1122437cacd17ba56225e487fcb4f5350858024b1fa7051cdd09dd526cba2f32\",\"predicted_joules_micro\":450000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"7bf6462e2923e9beea1a885058a0a99730349c5a74a11c6bbc3796897ef79d964744aeb400282302d84014d72968682a7e9df129ee218c7d29b2afd1be9fed06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 2,
|
||
"reason": "field_type"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_values_rewritten",
|
||
"about": "the busy mean rewritten after signing: every value is inside the signature",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":31000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"1e3f79ad3571073e64b4ff97733c472c030d241377367a511e2a7be4f5975ea0fb34f2612fc78271941281fa185c3ba1252e8b8c96e3b3c61ee7854580e56e0f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 3,
|
||
"reason": "signature_verify_failed"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_zero_figure",
|
||
"about": "a zero figure is the unmetered marker or a failed measurement; it gets no report",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":0,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"71ff37a8dd19e2151df2a0060838b5196b3600a9dc7ece2406cfb487a1bfd4acf12340d8c76b38380d000134e689a4a7ea1b9e89abc8056bc5cc36c4298d7d02\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_zero_figure"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_unknown_profile",
|
||
"about": "a figure profile energy-measurement section 6.1 does not define",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"wai:nonexistent-id\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"0b518d76c88d586ffe51ee9d80cd1cdf2bdef05cf2a8fc1a44b1ae404459a24fd510fcd2f53b2b29c5652ce780beeb5069ce24ebd3785580cd40c84387714003\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "figure_unknown_profile"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_object_profile_as_receipt",
|
||
"about": "moq-jwp:object names an object; a report naming it about a receipt names no profile",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":0,\"figure_profile\":\"moq-jwp:object\",\"group\":\"000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261\",\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"f20c51bbd9e27590b2369276658b41eb26fd26b08d430eadfbdd10512ad61fdb8249620a2e78e232a977a479ddff51bdfd734c11383e9ab14c53d01ca665f80b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "figure_unknown_profile"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_index_for_single_figure",
|
||
"about": "an index under a profile that carries one figure",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":0,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"330d4ca0dc8c96e156267898399340350c785accca40f5fc17c3fd2a2a4ace92be8225969fdc95348fa91164b919c46ddb887d3bb0b5ef953ab138c7687d1502\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "figure_index_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_no_index_for_steps",
|
||
"about": "no index under a profile that carries a figure per step",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"wai:asset-receipt-id\",\"group\":null,\"joules_micro\":4200,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"4c382ceec0f6205f038bec777b4f72bee0f7321dcaf28258975e29d2c1bf34c8fee5e67183ff1839bb7901985e16664820ee8cc5d76932b23f6c6e15dee56b06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "figure_index_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_group_outside_object_profile",
|
||
"about": "a group under a profile that names none",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":\"000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261\",\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"06ccf95397fe7593b2c7f63d2d4d94a174e8eefb157b252e61334e807517cd86782a7763b21141ebd78e3d94c46e2b7d68e32c0829dd62813dc2ca7f794a6006\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "figure_group_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_object_without_group",
|
||
"about": "a delivered object named with no group: one content hash can be delivered in more than one",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":2,\"figure_profile\":\"moq-jwp:object\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"2c078bce70ff6aa1843bbfa1537744e972b4b320ace5066923dff2c4574dacbed67ba78c4928da3295d10b787f195f48515eaf487c3747bc115b7bd2584b2d07\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "figure_group_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_legacy_class",
|
||
"about": "a report never restates the legacy HwShunt",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"HwShunt\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"ec439d6edba6b19c08d2efea9f6e8175e7d1218d008c497268b8731d5e8ef67f78fd83cc6779b4e0994ded81905207ddea5760d479c3b4c70c219e268f06f409\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_legacy_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_class_without_evidence",
|
||
"about": "an OnChipCounter with no declared uncertainty",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"68fc896b666b83f1e8fe934fbd391e9d9a383f300af95efe11a76f9e48ffc8bf114bba9a4dc5d7d78c9383987bbbf337fd9c7874534b379f87c281cc8255c90f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_acquisition_evidence"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_no_power_reader",
|
||
"about": "an OnChipCounter report that names no power reader: a hardware figure is a reading, and its report names what read it",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":null},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"4d21555d9a7d5a002bf040f49a9240367d03e8efc462ad3816f66ef3f5c0a24c46ba1b66b92fb1be9bb8994f812736fc4655b8e7e83786b3bbfc470f54e4bc07\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_no_power_reader"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_no_power_reader_no_bracket",
|
||
"about": "an OnChipCounter report with neither a bracket nor a reader: omitting the bracket does not excuse the reader",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":null},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"98fa24fb9bbc347d7bd54bb7333848a14ff285dfba362e1ae1d3c08e412f280af22f04b8b27975ef9e2445ce6e7e1e0c6275c5fedacd994284512062b1033d07\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_no_power_reader"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_one_idle_sample",
|
||
"about": "an idle bracket of one sample has no standard deviation",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":1,\"longest_live_run\":1,\"mean_uw\":20000000,\"n\":1,\"sd_uw\":0},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"fb44d1074d23371bc7bb1053c4994ace5d311474048283a5de469286686f8e17c430e86707c0ca80947751bf6bfd23cfff6a3686250cccc6be79c67021961c08\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_too_few_samples"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_rail_not_live",
|
||
"about": "the busy bracket's rail advanced in 4 samples of 14: below five, and below four in five",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":4,\"longest_live_run\":2,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"382ebd7e849a2a0e6129b8e205ee708cee1f2b55236b656d8901fcfd28e73ba9da807aa0d9abcda151859b4dd3e6a755bdc2f21d6f09762644a4c09d5af81109\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_flat_idle_frozen_rail",
|
||
"about": "a frozen rail refreshed once: an idle bracket of zeros and one busy sample holding the refresh. The flat idle gives an infinite ratio; the rail was not live",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":1,\"longest_live_run\":1,\"mean_uw\":10000000,\"n\":14,\"sd_uw\":37416574},\"completions\":60,\"idle\":{\"live_intervals\":0,\"longest_live_run\":0,\"mean_uw\":0,\"n\":10,\"sd_uw\":0},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"ca77f5458df0d8739a93f368a7636c382abb82fa7d64dd85dbf960430c7644b9100096276c0fc343301f9179bbac2622501b6a292d5275515f7742f2d829a803\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_flat_idle_claimed_live",
|
||
"about": "an idle bracket whose samples are all equal (sd 0), its facts claiming the rail advanced in every sample: a repeated sample is not an advance, so a flat bracket is never a live rail, whatever facts it carries",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":0},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"c4261c0137db7cc1e06c7280d3397c4a241bae37eb4322c1d9a600e8fdb568481409895f901a52acd785a1f97ecf1c350b828fe95979e961a30e4dd68a9f380d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_rail_stuck_at_held_value",
|
||
"about": "a reader that holds its last value on a rail that is not refreshed: idle reads 5 W in all ten samples, busy 5 W three times and then 12 W, where one batch landed. Every sample is above zero and the flat idle gives an infinite ratio; the rail advanced once in the idle bracket and twice, never consecutively, in the busy one",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":2,\"longest_live_run\":1,\"mean_uw\":10500000,\"n\":14,\"sd_uw\":2980708},\"completions\":60,\"idle\":{\"live_intervals\":1,\"longest_live_run\":1,\"mean_uw\":5000000,\"n\":10,\"sd_uw\":0},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"dad5f99996ae8f27a8fb8967a4338bc8a784e5001c36f79c972b34b8a7fcd4768c097acda0a8e4690d85734c46964d6acf88fc4f762548ee6a0bf56a944be504\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_rail_stuck_claimed_live",
|
||
"about": "the same held-value brackets, their facts claiming the rail advanced in every sample: the flat idle bracket still refuses them",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":10500000,\"n\":14,\"sd_uw\":2980708},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":5000000,\"n\":10,\"sd_uw\":0},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"a315963a4e7aa9664a0572be9217cb6ee418581f6d4b66b1abab4796796242e0f894820b1e04ef243c596a347cc43fb5a7ce877d7f06451f7f71a617da5d6b09\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_two_step_refresh",
|
||
"about": "a refresh published in two steps in each bracket: two consecutive advances, and nothing else",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":2,\"longest_live_run\":2,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":2,\"longest_live_run\":2,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"579c7c4494d33c7371238bb6ab7a59fee749694ad6bb612357cb705f94107da7f298f59b61b12f416d9a4a4ede83684b4dfbee54d7372f1f37a95fdabcc26c05\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_liveness_facts_inconsistent",
|
||
"about": "15 live intervals in a bracket of 14 samples",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":15,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"85b058ba193929dfb8a971829bc9336e73631d1e023875582b251dfd1eb73e47e1050cdfbfc8d2045e126c5543302a41dd8e9a57e270dc50a974abc41e1b7804\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_rail_not_live"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_no_completion",
|
||
"about": "no completion inside the window",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":0,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"e526b836e3679eedeba603a93f9f2d2a56a0f063e6a8398e7f4b71ad4bb8b5a5cbdb0b071e855f2e5eb385952a6c8b1b2694d642a4ad864c09a6c9283572810d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_empty_burst"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_busy_not_above_idle",
|
||
"about": "the burst never rose above idle",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":20000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"846004dd2af10e1497f028d82613442fabc6d96561e5436439e09443b8cca5ae6885af31179c0d00e2e39e38921fc821ccae7b846d90877ed80dc7d84ead2b01\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_no_marginal"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_ratio_below_one",
|
||
"about": "a 10 W marginal against an idle standard deviation of 10.000001 W",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":10000001},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"e73e59c0c9a221d2c02c6e2254fe5813c4d6742428683fa8b1096737a7e58664170eb8a95c65a977ff90b37762c6e8a6ebb083ce9dd835ca71647eae9fda8f0d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_below_attribution_floor"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_half_up_rounded_down",
|
||
"about": "the 2.5 uJ estimate sealed as 2: a half rounds up",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":21000000,\"n\":14,\"sd_uw\":1000},\"completions\":1000000,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":1000},\"in_flight\":1,\"opening\":\"running\",\"window_us\":2500000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":200000,\"window_us\":2500000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":2,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"b2136d7bcd4b4678a88b9e5735366d689adfae0e7f1dc5ffd1e3c3b968e9f025e424e4d5127e38da3895700431cf81d42c8c0cc539486f953118bbe749e9ca00\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_figure_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_window_differs",
|
||
"about": "the declared window is one microsecond longer than the bracket's",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000001},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"6d0ab364a1c0491178fe7c77122c4d76961e6075fc88c97d4be44121f2823132d979fdd1109c114406f00ea381182e9828f0b159c8196035adae360ec257de06\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_window_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_least_minus_one",
|
||
"about": "one ppm below the least the bracket supports",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44668,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"0ed955bcd8a2b8e9a4a4e8ecdc2badc5b2879ebd35a7f0f8f9a20b5cec4c1d08568ca46242e3a806b1693c84a688caac0f9bd83b3cf503187c8c2ea74b3eb702\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_declaration_below_bracket"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_sealed_from_samples",
|
||
"about": "the declaration a sealing path computes from the unrounded samples: one ppm below what the published integers support",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":29910000,\"n\":14,\"sd_uw\":176418},\"completions\":1301,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":105410},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":2007000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":6232,\"window_us\":2007000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":15229,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"3d7c50381569bf741031dabdafcad318c14c769d8c07bd190d233989671018a2cc27f53476681daa6a222e92fc1018c1ddffd81f712e41b83051d4a9e1a9d404\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_declaration_below_bracket"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_wide_least_minus_one",
|
||
"about": "one ppm below the least, at products past 200 bits",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":1000000000000,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":100000000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":288714,\"window_us\":100000000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":1,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"6e6e53a48fa5e4f25043e23d4d420e21d52cf753177f94d8e3392a9e8b8cce5f528b353bb05db10bcc9a39ebbd76e0e98e692b9d67a18e54159c6416fa61e50a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_declaration_below_bracket"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_two_defects",
|
||
"about": "one idle sample and no completion: the earlier rule is reported",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":0,\"idle\":{\"live_intervals\":1,\"longest_live_run\":1,\"mean_uw\":20000000,\"n\":1,\"sd_uw\":0},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"58f22d79d66ec53da05ca463691d46d7cbd2a87512c6e1df1d9eb48554039fed44b6667ebd537027f822cc8bdf200c094b86a5f1ef915685080e865608365d01\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "measurement_too_few_samples"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_empty_point",
|
||
"about": "a committed point with no member",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"a680a7b01760b54728f1d71c9b5fe8389ad2273352b7e4d6defe24b9bcac1040c0285bae29201774089f4820d150a09807933647e0eccb439121ca3a8d2b380b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "operating_point_empty_point"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_delivered_alone",
|
||
"about": "a delivered point with nothing committed to score it against",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":null,\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"3fed075abd8ea46c7bfc87c3a646f84550bd0acf4972c3d09228a192af71e2c395b416fb2cc7f314bfad816d8afd4b871b42299e1dcdcb2f2e3b1e30cfe25900\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "operating_point_delivered_alone"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_request_without_delivery",
|
||
"about": "a request and a commitment with no delivery",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":1080},\"op_delivered\":null,\"op_requested\":{\"frame_rate_milli\":30000,\"height\":1080},\"prediction\":{\"descriptor_hash\":\"1122437cacd17ba56225e487fcb4f5350858024b1fa7051cdd09dd526cba2f32\",\"predicted_joules_micro\":450000,\"predictor\":\"https://models.example.org/complexity-to-energy\"},\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"d970c4dc1cd7535187aef63604620a0cd24edc159194109420e0ea541bd248f6d38b95787396ec944ca09180505f332de845765c46b4c3bfdcb50d543c84f603\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "operating_point_incomplete"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_nothing",
|
||
"about": "no delivery and no prediction: nothing recorded",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":null,\"op_delivered\":null,\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"fee14c732e57350f8ac9f619a02636051753cd828b91c1dde0200330ec859dbc33ac80d0cb3987127094bce32c22fa4437967c6b8f2c89dcf48b3cebb069b409\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "operating_point_empty"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_against_hwshunt_figure",
|
||
"about": "an operating point recorded against a figure restated as legacy HwShunt",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"HwShunt\",\"energy_uncertainty\":null,\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":720},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"902bc56695f8d2f6184d48448d5e80ea1e73a87661a4faedb9c44ffe225ca474ad9d06fea2bb1da99f9327f778c9daf793a51502bcccc836166d59b47276d103\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 4,
|
||
"reason": "energy_legacy_acquisition"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_identity_mismatch",
|
||
"about": "the receipt held is not the one the report names",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"344dac742dd2a315f00c020120f42e74d153e898d959b708621da09ec76628b8e27ca3ca07cb212c02dadb4a2a41c905ce0f79f99d4ce904b5fdb4047138ca07\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"4067f884c1e93c4c86ef0ef3c1a22b2c7bdd405c5e2e51681bb644ac749d7e15\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_index_out_of_range",
|
||
"about": "step 7 of a provenance receipt with three",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":7,\"figure_profile\":\"wai:asset-receipt-id\",\"group\":null,\"joules_micro\":4200,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"09206a23ead41355e1bf69622b1be658f2e72da730a818d67f449081a198157d2fbd3cb47798d503885bb7d7b4af120f6804781e288162b8e2ecb617b430ce03\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "wai:asset-receipt-id",
|
||
"identity": "ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": 0,
|
||
"joules_micro": 0
|
||
},
|
||
{
|
||
"index": 1,
|
||
"joules_micro": 4200,
|
||
"energy_provenance": "ModelBased"
|
||
},
|
||
{
|
||
"index": 2,
|
||
"joules_micro": 90
|
||
}
|
||
],
|
||
"signer": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_object_other_group",
|
||
"about": "the same object delivered in another group: the report names this group, the view holds another",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":2,\"figure_profile\":\"moq-jwp:object\",\"group\":\"9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c9c\",\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"d93ac7627a7c2ff551ba50bb4820c122646789447b6825a8bf171a1e3122f38c032e1066f50460f9e1379042efd36162e9dd870c2eda6bf412bd499fb3ef0406\",\"signer_id\":\"did:example:publisher\",\"signer_pubkey\":\"d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "moq-jwp:object",
|
||
"identity": "5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e",
|
||
"group": "000b73b044437005c34711736a91e1d99fb9513d4052378e43f947c75d3b5261",
|
||
"figures": [
|
||
{
|
||
"index": 2,
|
||
"joules_micro": 461538,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 44669,
|
||
"window_us": 3000000
|
||
},
|
||
"energy_counter_filtering": "Unknown"
|
||
}
|
||
],
|
||
"signer": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_of_tampered_energy_claim",
|
||
"about": "the energy claim the report names was altered after it was signed: it is no context",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"65096b098cd608f4b95e4291de03328c1b74f97d2b0eb082992658c2d9942db19fd86a5301f0c11b6b36e1d6f7e3413aaac2912ddb030f92248c9e47633d3c01\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"6d80143004ebf7b437eb6703e810b3c430a0048986bc8af9343a7de625e8b577\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e21eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_invalid"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_figure_differs",
|
||
"about": "the energy claim states 5 uJ more than the report restates",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"fd2b163d70b75adf450f3510bf0598375c8fd0eec6614cde5b6967fbd7a8811f52f995be0acba7123d65b6a74b9134a965fba5b6f0d7fa295cbea56c4b435005\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"92715ea5763a9c0b53f390726744ae50b3e1a41f8b9b3278c827e56b554fce3a\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461543,\"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\":\"1395b52fd47bdf3a22f6021244e90f33514f12789af8e8d4fa403b9d827756ea6a02d1655feac7eb3fcb57752658a04fb701469bdeae4b535bb524b97337e60a\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_disagrees"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_of_unlabelled_figure",
|
||
"about": "a step whose figure carries no class: a report does not supply one",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":null,\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":1,\"figure_profile\":\"wai:asset-receipt-id\",\"group\":null,\"joules_micro\":4200,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"86364996bbe532596bc9b4971b5edac37da55a585bef2d502f147e27df4f079bb60b37d4915bcab5684b06a699f1068daf7af5f884d157e4e30a5eb9ee8e8109\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "wai:asset-receipt-id",
|
||
"identity": "ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": 0,
|
||
"joules_micro": 0
|
||
},
|
||
{
|
||
"index": 1,
|
||
"joules_micro": 4200
|
||
}
|
||
],
|
||
"signer": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_unclassified"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_class_differs",
|
||
"about": "the energy claim's counter reads Off; the report restates Unknown",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"a6faf89b32932f553e938daefd2c17296402f5373111edd66cb46485fded48f16afd0412b6a092f2ad381ad3af139d1f32a6c8d2e259d57389e914572f56d30d\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"42302e2afd55e6a0babfbf7fccd5c16b178bd862b4769a6aa95deb9e1388fb70\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Off\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"98013a5ebffcf258f62ae0bdd4f31ffc39985994c8ab8dcb7ff8b7775bfaeb988b1ae28a717569da065f5d0a489516386168b9ee3de4f87a432f952bd693ef08\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_class_disagrees"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_figure_not_held",
|
||
"about": "the operator's report on the meter's figure, checked without the receipt that carries the figure: it passes steps 1-5, but nothing shows its signer signed the figure, so it is not accepted as the figure signer's report",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"ab9a1c65a688ab4a935a10e6fc917158bf323d62500418981266c4d38f10d4ceff76df0ba14f17ab283b5556537f8c96b9cbe13574de7dbe6210a7538143e407\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_not_held"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_own_figure_not_held",
|
||
"about": "the meter's own report, checked without the figure: the same outcome; a report is accepted only against its figure",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"1e3f79ad3571073e64b4ff97733c472c030d241377367a511e2a7be4f5975ea0fb34f2612fc78271941281fa185c3ba1252e8b8c96e3b3c61ee7854580e56e0f\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_not_held"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_other_signer",
|
||
"about": "the operator reports on the meter's figure: only the key that signed a figure signs its report",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"ab9a1c65a688ab4a935a10e6fc917158bf323d62500418981266c4d38f10d4ceff76df0ba14f17ab283b5556537f8c96b9cbe13574de7dbe6210a7538143e407\",\"signer_id\":\"did:example:operator\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_signer_mismatch"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_of_binding",
|
||
"about": "a report on an energy binding's figure, which no Ed25519 key signs: nobody's report can be the figure signer's",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"bracket\":{\"busy\":{\"live_intervals\":14,\"longest_live_run\":14,\"mean_uw\":30000000,\"n\":14,\"sd_uw\":115471},\"completions\":60,\"idle\":{\"live_intervals\":10,\"longest_live_run\":10,\"mean_uw\":20000000,\"n\":10,\"sd_uw\":115471},\"in_flight\":10,\"opening\":\"from-rest\",\"window_us\":3000000},\"build\":{\"profile\":\"release\",\"target\":\"x86_64-unknown-linux-gnu\",\"toolchain\":\"rustc 1.98.0 (example)\"},\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"wai:energy-binding-id\",\"group\":null,\"joules_micro\":461538,\"power_reader\":\"reader:example\"},\"class\":\"measurement\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":1,\"sig\":\"1bb13bc6a7cd59f49b410397f73016e76fd6151f488f111aa0ace316aa5344d9648a1cae9ecfedf76c5aa5ce1149c7b06711339577072fac18c0c31790a6360b\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"1b03d02ea38bba751f7afbaac147f98bb493271a8e29494f5fee5e0e4ec6a940\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "wai:energy-binding-id",
|
||
"identity": "1b03d02ea38bba751f7afbaac147f98bb493271a8e29494f5fee5e0e4ec6a940",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": null,
|
||
"joules_micro": 461538,
|
||
"energy_provenance": "OnChipCounter",
|
||
"energy_uncertainty": {
|
||
"relative_ppm": 44669,
|
||
"window_us": 3000000
|
||
},
|
||
"energy_counter_filtering": "Unknown"
|
||
}
|
||
],
|
||
"signer": null
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_signer_unknown"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_against_unmetered_figure",
|
||
"about": "the figure the claim names carries the unmetered marker: a zero is not a figure to record an operating point against",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"figure_index\":null,\"figure_profile\":\"moq-jwp:claim-link\",\"group\":null,\"joules_micro\":461538,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":720},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"8ea1a1fe049f31616ea4b02149e6f5d4b0494dd7c677adcf2ccc2a21133931217fc69617c740360de188b85bf81e9451453b58df4d5685f62d86f9f461b95502\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "moq-jwp:claim-link",
|
||
"identity": "c857bdf859edf4041541d2507611c4205435be54f47ec38fc6ab4350feaf6b4c",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": null,
|
||
"joules_micro": 0
|
||
}
|
||
],
|
||
"signer": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_disagrees"
|
||
}
|
||
},
|
||
{
|
||
"name": "operating_point_of_unlabelled_figure",
|
||
"about": "a step whose figure carries no class",
|
||
"procedure": "claim",
|
||
"receipt": "{\"body\":{\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"figure_index\":1,\"figure_profile\":\"wai:asset-receipt-id\",\"group\":null,\"joules_micro\":4200,\"op_committed\":{\"frame_rate_milli\":30000,\"height\":720},\"op_delivered\":{\"frame_rate_milli\":30000,\"height\":720},\"op_requested\":null,\"prediction\":null,\"vocabulary\":\"https://vocabulary.example.org/operating-points\"},\"class\":\"operating-point\",\"issued_at\":\"2026-09-27T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":2,\"sig\":\"ef050f2252d58f0ec718e1455e18085d3d2beb2adb641b731cd0aa451d9ee49c6fb3e662d2b8d3269b0207c28a7c81ae01aa416babe17ea95d81b8d53d33b40e\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea\",\"subject_type\":\"receipt\"}",
|
||
"context": {
|
||
"figure": {
|
||
"view": {
|
||
"profile": "wai:asset-receipt-id",
|
||
"identity": "ac0a2d0072577e64b8350c275d7b0e4e57aab6550fb3958ad9959a58bc258fea",
|
||
"group": null,
|
||
"figures": [
|
||
{
|
||
"index": 0,
|
||
"joules_micro": 0
|
||
},
|
||
{
|
||
"index": 1,
|
||
"joules_micro": 4200
|
||
}
|
||
],
|
||
"signer": "a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0"
|
||
}
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "figure_unclassified"
|
||
}
|
||
},
|
||
{
|
||
"name": "measurement_figure_given_to_an_energy_claim",
|
||
"about": "a figure context given to a claim that reports on no figure",
|
||
"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\"}",
|
||
"context": {
|
||
"figure": {
|
||
"claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":\"Unknown\",\"energy_provenance\":\"OnChipCounter\",\"energy_uncertainty\":{\"relative_ppm\":44669,\"window_us\":3000000},\"grade\":\"measured\",\"joules_micro\":461538,\"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\":\"e31eb3b79ac562baf7d65c207ac1fbc39be6ae444f1fa2686e01356ccc68b9d462a3d2860b4303baa5f4dcd4933c0a9a64085f7ae349123bf872e5f88b66a307\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"5bb20a10b980be8c6d95915394f6e89cd49c16d0f5e94cd87c0ec6ce37bcfc5e\",\"subject_type\":\"object\"}"
|
||
}
|
||
},
|
||
"expected": {
|
||
"outcome": "reject",
|
||
"step": 6,
|
||
"reason": "context_mismatch"
|
||
}
|
||
}
|
||
]
|
||
}
|