{ "about": "jwp-receipts sections 2.2-2.4.2, 3 and 3.3, and moq-streaming-format section 5: labelled leaves, labelled group receipts, the group total and the WAI_RECEIPT property. Every vector is synthetic: keys are Ed25519 from fixed 32-byte seeds (0x11 publisher, 0x22 meter, 0x33 relay) and attest nothing; envelopes, figures, origins and calibration references are invented. Expected outcomes are declared per vector in the generator, not copied from a verifier. Regenerate with `wai_jwp_vectors gen`.", "vectors": [ { "name": "leaf_legacy", "about": "an object with no label: the legacy leaf over the content hash alone", "procedure": "leaf", "input": { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } } }, "expected": { "leaf": "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8" } }, { "name": "leaf_labelled_unmetered", "about": "tag 0 beside a zero figure: the object is explicitly unmetered and its origin is bound", "procedure": "leaf", "input": { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 } }, "expected": { "leaf": "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93" } }, { "name": "leaf_labelled_on_chip_counter", "about": "tag 4 with its declared uncertainty and filtering state", "procedure": "leaf", "input": { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" } }, "expected": { "leaf": "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760" } }, { "name": "leaf_labelled_calibrated_instrument", "about": "tag 5 with its declared uncertainty and length-prefixed calibration reference", "procedure": "leaf", "input": { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" } }, "expected": { "leaf": "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f" } }, { "name": "leaf_labelled_model_based", "about": "tag 2, followed by nothing", "procedure": "leaf", "input": { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "leaf_version": 2, "energy_provenance": "ModelBased" } }, "expected": { "leaf": "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76" } }, { "name": "group_legacy_accept", "about": "the mixed group in the legacy payload: it signs the total and no class", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null } }, "expected": { "outcome": "accept", "link_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "signing_payload": "6d6f712d6a77703a67726f75702d7369676e010000000000000007000000000000000362ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d00000000000000050000000000000af000000014323032362d30392d33305431323a30303a30305a00000014323032362d30392d33305431323a30303a30315ad04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737000000156469643a6578616d706c653a7075626c6973686572" } }, { "name": "group_labelled_accept", "about": "the labelled payload: the total's class (OnChipCounter, the weaker of a counter and an instrument, 14,000 ppm over 2 s), coverage Partial (one part is zero) and the parent link, chained to the mixed group", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "previous": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null } }, "expected": { "outcome": "accept", "link_hash": "9c49baff6e40a5d24222e49679dad204f036e356b402449a4047e9bafcdaa7b7", "signing_payload": "6d6f712d6a77703a67726f75702d7369676e02000000000000000700000000000000045a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29000000000000000300000000000007d000000014323032362d30392d33305431323a30303a30305a00000014323032362d30392d33305431323a30303a30315ad04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737000000156469643a6578616d706c653a7075626c697368657204000036b000000000001e84800001012e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" } }, { "name": "group_bad_signature", "about": "one bit flipped in sig", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "82a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null } }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "group_signature_s_not_reduced", "about": "S replaced by S + L: the verification equation still holds, and the strict rule of jwp-receipts 3.1 step 3 refuses S >= L", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877b86d5e3e148e78a89a9431b2d2ece60f39f3fe91cb6f3c25621991914f7e341a", "parent_receipt_hash": null } }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "group_signer_key_identity", "about": "the identity point as signer_pubkey", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "0100000000000000000000000000000000000000000000000000000000000000", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null } }, "expected": { "outcome": "reject", "step": 1, "reason": "bad_signer_key" } }, { "name": "group_missing_parent_field", "about": "parent_receipt_hash absent rather than null", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a" } }, "expected": { "outcome": "reject", "step": 1, "reason": "malformed" } }, { "name": "group_signer_key_non_canonical", "about": "signer_pubkey encodes y = p + 3, a point not of small order, in a form RFC 8032 section 5.1.3 refuses (y >= p): every point has one encoding", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "f0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null } }, "expected": { "outcome": "reject", "step": 1, "reason": "bad_signer_key" } }, { "name": "group_sign_version_unknown", "about": "a labelled group whose sign_version is 3: a version this extension does not define is not the labelled form", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 3, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 1, "reason": "group_label_invalid" } }, { "name": "group_sign_version_legacy", "about": "a legacy group carrying sign_version 1 and no class: a sign_version other than 2 is refused, never read as the legacy form", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null, "sign_version": 1 } }, "expected": { "outcome": "reject", "step": 1, "reason": "group_label_invalid" } }, { "name": "group_sign_version_string", "about": "sign_version written as the string \"2\"", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": "2", "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 1, "reason": "group_label_invalid" } }, { "name": "group_legacy_with_class_members", "about": "a legacy group carrying energy_provenance: refused, never read as the legacy form", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null, "energy_provenance": "ModelBased" } }, "expected": { "outcome": "reject", "step": 1, "reason": "group_label_invalid" } }, { "name": "group_labelled_class_unknown", "about": "a labelled group naming a class energy-measurement section 2 does not define", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "Measured", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 1, "reason": "group_label_invalid" } }, { "name": "group_labelled_class_tampered", "about": "the total's declared uncertainty rewritten smaller after signing", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 1000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "group_labelled_coverage_tampered", "about": "coverage rewritten from Partial to Whole after signing", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Whole" } }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "group_labelled_parent_tampered", "about": "the parent link rewritten after signing: the labelled payload signs it", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "abababababababababababababababababababababababababababababababab", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "group_labelled_hwshunt", "about": "a labelled group whose total is classed legacy HwShunt, correctly signed", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "d0105eeb8ff38f3a6e7cea7df72f56b2dd0759a8eb81af16137a3ff376816c77ccb350a530351c2d078b457068fdc00ccdf841a3b4ba8d4ba3fafd10ff25db06", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "HwShunt", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 2, "reason": "group_label_invalid" } }, { "name": "group_labelled_class_beside_zero_total", "about": "a class beside a zero total, correctly signed", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 0, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "330fc4b15dcc7e2f4e5e78dd8f2c078326368338de10635e90691febcd1f6255e3a99ce75673791dd21710c6ec40571eeeedbc67283e51c2649c8c4b11b8150b", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 2, "reason": "group_label_invalid" } }, { "name": "group_labelled_unmetered_beside_figure", "about": "the unmetered marker beside a non-zero total, correctly signed", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "1701d1d0e0de50a5547d64109f2345982a4ac1245d96ba1847450c863e1124e90965307897fb8a67afed74147d265e903152172ef02f885d7e898393da6ab50e", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2 } }, "expected": { "outcome": "reject", "step": 2, "reason": "group_label_invalid" } }, { "name": "group_labelled_below_resolution", "about": "a 2,000 uJ total declared at 144 ppm: below the resolution floor, correctly signed", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "25118a4d5c09142f8dba83eaff7274150066cb2c47a23b9deb530e7ebd17d6669099f62f3cc45fd92a5e1259e652a81efda1366d665628b5df6f45d94b184405", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 144, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 2, "reason": "group_label_invalid" } }, { "name": "group_chain_break", "about": "the parent named is not the previous group held", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "previous": { "kind": "group", "track_alias": 7, "group_id": 2, "root_hash": "280ae8f73e196ab28c8252779d47b29ce73ddac14f59c579a34ba75fadedefdb", "leaf_count": 1, "joules_total": 1, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "a8ae8b8bec0013ee9ae6ddf30fe017173ab8fef18b40e011b73ae2669db8e21571de3748997abbb840240d415070062747fbba328c81c3560bcda749a3e79004", "parent_receipt_hash": null } }, "expected": { "outcome": "reject", "step": 3, "reason": "chain_break" } }, { "name": "group_parent_not_held", "about": "a parent the verifier does not hold is fetched, never accepted silently", "procedure": "group", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" } }, "expected": { "outcome": "reject", "step": 3, "reason": "parent_not_held" } }, { "name": "object_labelled_counter_accept", "about": "a labelled leaf: the figure, the counter's class and evidence, and the origin are under the group signature", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "accept" } }, { "name": "object_labelled_instrument_accept", "about": "a labelled leaf carrying a calibrated instrument", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, "expected": { "outcome": "accept" } }, { "name": "object_legacy_accept", "about": "a legacy leaf beside labelled ones in one group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "accept" } }, { "name": "object_labelled_unmetered_accept", "about": "tag 0 beside a zero figure", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, "expected": { "outcome": "accept" } }, { "name": "object_legacy_figure_unsigned_accept", "about": "a legacy leaf binds neither the figure nor the origin: both rewritten, the object still verifies", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 9999, "origin": "elsewhere.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "accept" } }, { "name": "object_in_labelled_group_accept", "about": "an object of the labelled group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, "expected": { "outcome": "accept" } }, { "name": "object_envelope_mutated", "about": "the envelope does not hash to content_hash", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206d75746174656420696e207472616e736974" }, "expected": { "outcome": "reject", "step": 4, "reason": "content_hash_mismatch" } }, { "name": "object_label_stripped", "about": "the class members removed from a labelled object: its leaf is computed in the legacy form and misses the root", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "step": 5, "reason": "inclusion_proof_failed" } }, { "name": "object_label_added", "about": "a class added to a legacy object", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "reject", "step": 5, "reason": "inclusion_proof_failed" } }, { "name": "object_class_restated", "about": "a labelled object's declared uncertainty rewritten smaller", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 2000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "step": 5, "reason": "inclusion_proof_failed" } }, { "name": "object_class_promoted", "about": "a labelled object's ModelBased class rewritten to Estimator", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "leaf_version": 2, "energy_provenance": "Estimator" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742034" }, "expected": { "outcome": "reject", "step": 5, "reason": "inclusion_proof_failed" } }, { "name": "object_labelled_figure_altered", "about": "a labelled object's figure rewritten", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 801, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, "expected": { "outcome": "reject", "step": 5, "reason": "inclusion_proof_failed" } }, { "name": "object_labelled_origin_altered", "about": "a labelled object's origin rewritten: the labelled leaf binds it", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "elsewhere.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, "expected": { "outcome": "reject", "step": 5, "reason": "inclusion_proof_failed" } }, { "name": "object_label_hwshunt", "about": "a leaf labelled legacy HwShunt in a correctly built group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 9, "root_hash": "47833e1e1230c5866245b7be2e34d42ebd71a664e79c2ad09e01604c90f76403", "leaf_count": 1, "joules_total": 100, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "d742de392302d506d432832a67737be95b80173f48367cb6dfb13ad610e8ce4422c8fe1e7a149c56fdcbea182892002541973a047c4ad4059fa7624038ac8101", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 9, "object_id": 0, "content_hash": "3682aa6fa34ed352628956084b932046781813b030dcc7cf4f65b576d8a25479", "joules_micro": 100, "origin": "dc-40.example", "merkle_proof": { "siblings": [], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "HwShunt" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203430" }, "expected": { "outcome": "reject", "step": 5, "reason": "object_label_invalid" } }, { "name": "object_label_beside_zero", "about": "a class beside a zero figure in a correctly built group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 9, "root_hash": "8db6b1cc8ca1811d1744f001c31d42898b7008f7ebe9cbad4b2520664c37eba1", "leaf_count": 1, "joules_total": 0, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "b18215496a534416305a39905b0d69b59644384ec457d23824dfbe89fc107ab6a400b12270189545e2622cc416cd573efcd81b1a34834a4fc7b020892b46d900", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 9, "object_id": 0, "content_hash": "f151bb3b9bccac787e44237d38993413a3f752010f4e1ab68d054e600a31f60a", "joules_micro": 0, "origin": "dc-41.example", "merkle_proof": { "siblings": [], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203431" }, "expected": { "outcome": "reject", "step": 5, "reason": "object_label_invalid" } }, { "name": "object_label_unmetered_beside_figure", "about": "tag 0 beside a non-zero figure in a correctly built group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 9, "root_hash": "c4d92b7fa856e48a1f003414e188c2d93ee15bce57dcb0ef6ee261d7b5bf3343", "leaf_count": 1, "joules_total": 100, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "174b8238b1981527b4b5911fc4baeff31b7576d9e72ff7875a1ad9e1b45bcf153c09bb0aceddaf5b8acde42ac92589b36fbe6891b6d9eb382d5006f1bb417304", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 9, "object_id": 0, "content_hash": "faf10f31c03e74ea0522bb4abd60ff0c9d1f2276a17a5edcbaaa0765536855dd", "joules_micro": 100, "origin": "dc-42.example", "merkle_proof": { "siblings": [], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203432" }, "expected": { "outcome": "reject", "step": 5, "reason": "object_label_invalid" } }, { "name": "object_label_below_resolution", "about": "a 1 uJ figure declared at 288,675 ppm in a correctly built group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 9, "root_hash": "de3bfe5c5df20f3a1f3f4cfca7b4fcb27577a8392bc89fcd8a1c6018bc28f699", "leaf_count": 1, "joules_total": 1, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "81a9198030c8fa8a757d8e16c9a0f7a26139a9d8b6e2905bfd1a8d730276e554d54018ca1ef995ecf5ad6c623196306ee142bdef84498d791d8716b72f79650b", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 9, "object_id": 0, "content_hash": "7551647b60b1df54a15e33b2febd2a26159320728df948ae106460f703260e19", "joules_micro": 1, "origin": "dc-43.example", "merkle_proof": { "siblings": [], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 288675, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203433" }, "expected": { "outcome": "reject", "step": 5, "reason": "object_label_invalid" } }, { "name": "object_label_evidence_without_class", "about": "a labelled object's class removed and its evidence kept: refused, never read as legacy", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_counter_filtering": "Unknown", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "step": 5, "reason": "object_label_invalid" } }, { "name": "object_label_members_without_leaf_version", "about": "class members on an object without leaf_version 2", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742034" }, "expected": { "outcome": "reject", "step": 5, "reason": "object_label_invalid" } }, { "name": "object_at_another_index", "about": "an object presented at its neighbour's index with its own proof, which still walks to the root", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "step": 5, "reason": "proof_position_mismatch" } }, { "name": "object_past_the_end", "about": "the last of three objects at index 3: the duplicated leaf's proof walks that position too", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 8, "root_hash": "6f4275af51849b75868f80fdb5332a387f4b22a05e91b3ae1509a8fb99078d8b", "leaf_count": 3, "joules_total": 60, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "c931bde5e7895a44d5d993bdaa3551322b11dc03bddce30f83b137811af5a3767efc7c2df8c44c4ad5ddf54bd71a088a7880b4f0cf0a633df50bb3d3430c930e", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 8, "object_id": 3, "content_hash": "7ef012d887d192c988a1b85894ed54ebeae9885a250be7e93a9b7584189f5c77", "joules_micro": 30, "origin": "dc-32.example", "merkle_proof": { "siblings": [ "412226eb14d389ee7cfd88e8a0d57ad3acb85c918d46d0be03c627a69ae4ba92", "b99f24d41ef3c99a9c76eac34087f8ebf2f49084f94d58e7054a8aa6775b84ef" ], "direction_bits": 3, "leaf_index": 3 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203332" }, "expected": { "outcome": "reject", "step": 5, "reason": "proof_position_mismatch" } }, { "name": "object_id_not_its_index", "about": "object_id other than leaf_index", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "reject", "step": 5, "reason": "proof_position_mismatch" } }, { "name": "object_proof_short", "about": "a proof one sibling short of the group's depth", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "reject", "step": 5, "reason": "proof_position_mismatch" } }, { "name": "object_other_group", "about": "an object of another group_id presented under this group", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "reject", "step": 5, "reason": "proof_position_mismatch" } }, { "name": "object_under_unverified_group", "about": "a valid proof against a group whose signature fails: no partial verification", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "82a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "object_unknown_member", "about": "a member the object receipt does not define", "procedure": "object", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 }, "note": "x" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "reject", "step": 4, "reason": "malformed" } }, { "name": "total_legacy_unlabelled_part", "about": "every object of the mixed group held; one non-zero figure is unlabelled, so the total reads as unlabelled", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742034" } ] }, "expected": { "outcome": "read", "reading": "unlabelled" } }, { "name": "total_legacy_every_part_labelled", "about": "a legacy group whose every non-zero part is labelled: the weakest class, as a name only", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 5, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "e2941e025b5118c7123e90045046934288dc8588f4f26aa725fc1f36dccf80844c4056fcb066b52352753a868a923957de2fe5dfbb5aad0b069bc20907290c0f", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 5, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 5, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 5, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "read", "reading": "weakest class=OnChipCounter coverage=Partial" } }, { "name": "total_legacy_all_zero", "about": "every figure zero: unmetered, never zero joules", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 6, "root_hash": "7df5acfc544e5effec6b8b86ac64737a17c878d13eb6939d10a9050a246598af", "leaf_count": 2, "joules_total": 0, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "d83aa322b9ab2d448d4d5877a16510c090c19b175f7b4491a87afb54d4f84f908a8876629c3256b1cac96e523d8d74bca69e1a815c4398ec55de6257e8740d05", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 6, "object_id": 0, "content_hash": "8d8357f0a07ac69eb96d9ceb376a011689316225f9b46f370f57073d3ec30c2f", "joules_micro": 0, "origin": "dc-50.example", "merkle_proof": { "siblings": [ "74fc74301cf60db5362ab0d52ece299a0b32dc4c834e8e6f325829b515077daa" ], "direction_bits": 0, "leaf_index": 0 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203530" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 6, "object_id": 1, "content_hash": "01b4370a24aebd23a6f9424a669db17f3dacad26695e6eb198d1489c7e9954ce", "joules_micro": 0, "origin": "dc-51.example", "merkle_proof": { "siblings": [ "972f079040dfe0ff3b45972f88dec15fe185ecccd3726f3e2fa9e3f485d75e24" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203531" } ] }, "expected": { "outcome": "read", "reading": "unmetered" } }, { "name": "total_legacy_object_missing", "about": "one object not held: unlabelled", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" } ] }, "expected": { "outcome": "read", "reading": "unlabelled" } }, { "name": "total_legacy_figure_altered", "about": "a legacy object's unsigned figure rewritten: each object verifies, and the sum does not match the signed total", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 501, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742034" } ] }, "expected": { "outcome": "reject", "reason": "group_total_mismatch" } }, { "name": "total_duplicate_cannot_hide_weaker_class", "about": "the counter's object presented again at the model's index: refused at its position, so the model's index is not held and the total reads unlabelled rather than as a counter's", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 7, "root_hash": "8f6690b749a2282288561f90191b5ffe173a291cdabacab47e90b0ccf90670b1", "leaf_count": 2, "joules_total": 1000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "b71b79144c59da0ee14b133c5de4be6945900f0c64f9b9a96ce475c1c8b1fef754664ef654495cb54f573f7fd9312d5d6faaf565c63f918fc8f2df6fc5c7e700", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 7, "object_id": 0, "content_hash": "a20982ddf6fac7ca596c0cb44d14ffb74a2cb143d5937a9d2a46996296f2af20", "joules_micro": 500, "origin": "dc-60.example", "merkle_proof": { "siblings": [ "555d9ed4c576f1b94a09780000a0055e7f07b0e1b79b6c3d1634f5a23bf3111b" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203630" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 7, "object_id": 1, "content_hash": "a20982ddf6fac7ca596c0cb44d14ffb74a2cb143d5937a9d2a46996296f2af20", "joules_micro": 500, "origin": "dc-60.example", "merkle_proof": { "siblings": [ "555d9ed4c576f1b94a09780000a0055e7f07b0e1b79b6c3d1634f5a23bf3111b" ], "direction_bits": 0, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203630" } ] }, "expected": { "outcome": "read", "reading": "unlabelled" } }, { "name": "total_duplicate_both_held", "about": "the same two objects held properly: the weaker class", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 7, "root_hash": "8f6690b749a2282288561f90191b5ffe173a291cdabacab47e90b0ccf90670b1", "leaf_count": 2, "joules_total": 1000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "b71b79144c59da0ee14b133c5de4be6945900f0c64f9b9a96ce475c1c8b1fef754664ef654495cb54f573f7fd9312d5d6faaf565c63f918fc8f2df6fc5c7e700", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 7, "object_id": 0, "content_hash": "a20982ddf6fac7ca596c0cb44d14ffb74a2cb143d5937a9d2a46996296f2af20", "joules_micro": 500, "origin": "dc-60.example", "merkle_proof": { "siblings": [ "555d9ed4c576f1b94a09780000a0055e7f07b0e1b79b6c3d1634f5a23bf3111b" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203630" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 7, "object_id": 1, "content_hash": "977f8380017633e746436852b1da3417bdc536c9359d4cffa912c47ada491292", "joules_micro": 500, "origin": "dc-61.example", "merkle_proof": { "siblings": [ "0d4aff60416317eb13aa7159cb04d87aa563b85d21933d3f068075a96a65c43f" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203631" } ] }, "expected": { "outcome": "read", "reading": "weakest class=ModelBased coverage=Whole" } }, { "name": "total_labelled_checked", "about": "the labelled group with every object held: its signed class is what they compose to", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "read", "reading": "signed class=OnChipCounter relative_ppm=14000 window_us=2000000 coverage=Partial parts=checked" } }, { "name": "total_labelled_part_held", "about": "the labelled group with one object held: its signed class stands, unchecked", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "cd89ea4722e276b4458604faaf7d92a2fb1286c69a62dde021dfaaed9d6fc2975150865e71dffa91526ca52e2844a74197dc87102a5f489dcf32dc3394fd6509", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" } ] }, "expected": { "outcome": "read", "reading": "signed class=OnChipCounter relative_ppm=14000 window_us=2000000 coverage=Partial parts=unchecked" } }, { "name": "total_labelled_above_least", "about": "a declaration above the least the parts compose to", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "a2ae6e3d881661d7d55e9e8695cb7ca95e92b1987deab551a125fa168b24954798576e2296f43b9794362a583e0bb6a4bdccd50b9be7d780c50bbb96b6923e03", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14001, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "read", "reading": "signed class=OnChipCounter relative_ppm=14001 window_us=2000000 coverage=Partial parts=checked" } }, { "name": "total_labelled_below_least", "about": "one ppm below the least the parts compose to", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "d06c7577f2a414b137d1f6cd630c1259b484287007c45bdb4a27280a1199ab1fb84d1bddb3d764ab222f322e830a6d21441da5ff4a2da23948302540a3f3fd01", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 13999, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "reject", "reason": "group_uncertainty_below_parts" } }, { "name": "total_labelled_window_not_the_longest", "about": "the parts' longest window is 2 s; the group declares 1 s", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "72b1007ffda39cd30d1d8ad9842b497e98bdf2a545a61955ac8a5a6f1c35f71ee89d39966e0403e0a7eb878bca4f335e1874d4f2f468bf90d33815f2b1d4f20d", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "reject", "reason": "group_uncertainty_below_parts" } }, { "name": "total_labelled_class_stronger_than_parts", "about": "the group classes its total as a calibrated instrument; one part is a counter", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "e644ab9f98db960d48403402eb722ca7306bb40e38d5592c5eda9886efe5a4df2e30c3304a215c36af7cb73113c9c2c8e569e174098acdd8be166d42867e1409", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "reject", "reason": "group_class_disagrees" } }, { "name": "total_labelled_coverage_whole", "about": "the group says Whole; one part is zero", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 4, "root_hash": "5a8870c49a7ce232b1a4cd4bced3b0ee70b33535bcb8f9f563f617279ae9ce29", "leaf_count": 3, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "f98b6324a04062fef7a583b8b2d46955e9e57ed75811ff4273a08d8fd0ced0a28da3eadd0abf2958e73724315c1823267f2c1eb9c21ffa165a2bafa28b6fb807", "parent_receipt_hash": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5", "sign_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 14000, "window_us": 2000000 }, "energy_counter_filtering": "Unknown", "energy_coverage": "Whole" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 0, "content_hash": "805138ef87f855ed95d3b7b1d6af233880735f7aff37bdbce6a04beb70a4969e", "joules_micro": 1200, "origin": "dc-10.example", "merkle_proof": { "siblings": [ "04e8700113c4c7ef527c261a8982a555e8329745144326763b99ec062819b53a", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203130" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 1, "content_hash": "3e9410265f8b97cbc296544a1625a08bc7c414a87d7f5d9c5ba6ca1772f7aaec", "joules_micro": 800, "origin": "dc-11.example", "merkle_proof": { "siblings": [ "0ca346e40f6aeefac6f4c22f1668ac477fe3a1b0565123f50ec60e15fb314cbd", "d507a5e609507a082972720179f44a746dc3b040f20da0ebd8d757b6a46d51d2" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203131" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 4, "object_id": 2, "content_hash": "8a70f1dbf741839ffecdf4da81833c9d138f5a424dfc3ce5d10688fb27343037", "joules_micro": 0, "origin": "dc-12.example", "merkle_proof": { "siblings": [ "06f4ee1788b1df78dc2ef90c8c8b7e44b09a0a4f641c5ada33f7099dc1b730f0", "e6ecd7356f041fa203ee887686493a43ac8673ac827f810b2470b4eeb7a61124" ], "direction_bits": 2, "leaf_index": 2 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203132" } ] }, "expected": { "outcome": "reject", "reason": "group_coverage_disagrees" } }, { "name": "total_labelled_over_unlabelled_part", "about": "a labelled group over parts one of which is unlabelled: it may carry no class", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "0f3d71f81f70d5ee41d4b9bd65b15d15a1cfb5e2bb9d423e2b5651f28d56d0c698be09e203bf4895b6282d2d64d4cb6ebeb45c5ac03b075a51ef35ae4c366f03", "parent_receipt_hash": null, "sign_version": 2, "energy_provenance": "ModelBased", "energy_coverage": "Partial" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742034" } ] }, "expected": { "outcome": "reject", "reason": "group_class_disagrees" } }, { "name": "total_labelled_two_certificates", "about": "two instruments under two certificates: a calibrated-instrument total needs one", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 8, "root_hash": "5053281251b86aaea8347a93cd1d1b849098db941748928ba15cdf90227330d2", "leaf_count": 2, "joules_total": 2000, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "1fe44f495bf7193fe3d92cc8b93c66c605e4c3b28fb4b03ef488a440418fb5a29c1b40b919fd12ffc30a5a446fa67581d81658f18d84cea1066911cf80c2120d", "parent_receipt_hash": null, "sign_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 300, "window_us": 1000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/a", "energy_coverage": "Whole" }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 8, "object_id": 0, "content_hash": "987e7495f9e0e3558ee23446144b639e2114754480adc0e346f3494bf84d0476", "joules_micro": 1000, "origin": "dc-70.example", "merkle_proof": { "siblings": [ "32e4569cb617c4fa87be251f1c6f320728a4c69f4187e33d57a9392c26daa7de" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 300, "window_us": 1000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/a" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203730" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 8, "object_id": 1, "content_hash": "61a454e3fc7d36563f637a01b2f94a68161cf45d159acf5b481b0aded29511d6", "joules_micro": 1000, "origin": "dc-71.example", "merkle_proof": { "siblings": [ "4990a4bf0801f29c12bc3d6f05b33230056baccbc3dc2056d367c6a5c182b18b" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 300, "window_us": 1000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/b" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203731" } ] }, "expected": { "outcome": "reject", "reason": "group_class_disagrees" } }, { "name": "total_labelled_unmetered", "about": "a labelled group of zero figures: the unmetered marker", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 6, "root_hash": "7df5acfc544e5effec6b8b86ac64737a17c878d13eb6939d10a9050a246598af", "leaf_count": 2, "joules_total": 0, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "557d3223b187de0818a1fb265ab75fcff03835301ce98cadcdc1d8c50b0b3ac2058fea33c10277a11837c59a71e7d57b3eab4a16ff40c5caf4cdde199242f20c", "parent_receipt_hash": null, "sign_version": 2 }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 6, "object_id": 0, "content_hash": "8d8357f0a07ac69eb96d9ceb376a011689316225f9b46f370f57073d3ec30c2f", "joules_micro": 0, "origin": "dc-50.example", "merkle_proof": { "siblings": [ "74fc74301cf60db5362ab0d52ece299a0b32dc4c834e8e6f325829b515077daa" ], "direction_bits": 0, "leaf_index": 0 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203530" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 6, "object_id": 1, "content_hash": "01b4370a24aebd23a6f9424a669db17f3dacad26695e6eb198d1489c7e9954ce", "joules_micro": 0, "origin": "dc-51.example", "merkle_proof": { "siblings": [ "972f079040dfe0ff3b45972f88dec15fe185ecccd3726f3e2fa9e3f485d75e24" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a656374203531" } ] }, "expected": { "outcome": "read", "reading": "unmetered" } }, { "name": "total_group_does_not_verify", "about": "the group's signature fails: no total is read", "procedure": "total", "input": { "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "82a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "delivered": [ { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 1, "content_hash": "a900d4803cc1c6cf8384e4238c3745bd6a1c3838a917b4c0a99fb77bd9ba7c1e", "joules_micro": 800, "origin": "dc-1.example", "merkle_proof": { "siblings": [ "eeb5d0cf357a3bca9437eff04cf82570a6338652c842d9a20a7670f409a80760", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 1, "leaf_index": 1 }, "leaf_version": 2, "energy_provenance": "CalibratedInstrument", "energy_uncertainty": { "relative_ppm": 5000, "window_us": 2000000 }, "energy_calibration_ref": "https://calibration.example.org/certificates/0001" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742031" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, { "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 4, "content_hash": "d328f60c60ffa2d36830838218ee22a5e31cc674b816e63526ebd74c1fe66cdc", "joules_micro": 300, "origin": "dc-4.example", "merkle_proof": { "siblings": [ "3049a2823be995b9ef123c82675c47e2df96a77b50be6a71d676246325d46a76", "c2638ebd069f911759c78d18685c71ef0791acbde44f604fe298e40448cda8c2", "5880f5698f5a1b6b230f65c481aa126e56f86e3a26e1a29d2edb79eae011a818" ], "direction_bits": 4, "leaf_index": 4 }, "leaf_version": 2, "energy_provenance": "ModelBased" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742034" } ] }, "expected": { "outcome": "reject", "step": 2, "reason": "signature_verify_failed" } }, { "name": "property_signed_by_leaf", "about": "the property restates the labelled leaf: its class is signed", "procedure": "property", "input": { "property": { "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "acquisition": "OnChipCounter", "acquisition_evidence": "00004e2000000000000f424000", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "read", "reading": "signed class=OnChipCounter by=d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737" } }, { "name": "property_evidence_differs", "about": "the property's declared uncertainty differs from the leaf's", "procedure": "property", "input": { "property": { "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "acquisition": "OnChipCounter", "acquisition_evidence": "0000271000000000000f424000", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "reason": "property_disagrees" } }, { "name": "property_figure_differs", "about": "the property's figure differs from the leaf's", "procedure": "property", "input": { "property": { "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1201, "acquisition": "OnChipCounter", "acquisition_evidence": "00004e2000000000000f424000", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "reason": "property_disagrees" } }, { "name": "property_names_another_group", "about": "the property names another group receipt", "procedure": "property", "input": { "property": { "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "acquisition": "OnChipCounter", "acquisition_evidence": "00004e2000000000000f424000", "group_receipt": "9c49baff6e40a5d24222e49679dad204f036e356b402449a4047e9bafcdaa7b7" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742030" }, "expected": { "outcome": "reject", "reason": "property_disagrees" } }, { "name": "property_class_beside_zero", "about": "a class beside a zero figure", "procedure": "property", "input": { "property": { "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "acquisition": "ModelBased", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, "expected": { "outcome": "reject", "reason": "property_invalid" } }, { "name": "property_figure_without_class", "about": "a non-zero figure with no class", "procedure": "property", "input": { "property": { "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "acquisition": "", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "reject", "reason": "property_invalid" } }, { "name": "property_legacy_leaf", "about": "the object's leaf is legacy: the property's class is outside every signature, and the figure reads as unlabelled", "procedure": "property", "input": { "property": { "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "acquisition": "ModelBased", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 2, "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "origin": "dc-2.example", "merkle_proof": { "siblings": [ "339ea521d795afe4a4ec26042a2827fc9e8052b581fdbb1636b2315ee9953e93", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 2, "leaf_index": 2 } }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742032" }, "expected": { "outcome": "read", "reading": "unsigned" } }, { "name": "property_unmetered", "about": "a zero figure and no class beside an object explicitly unmetered", "procedure": "property", "input": { "property": { "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "acquisition": "", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 3, "content_hash": "6e90ee47565591796c76e57de2b092695ba42d4e5dae585eb1503589e2b703d7", "joules_micro": 0, "origin": "dc-3.example", "merkle_proof": { "siblings": [ "65dbe4a732e01bd69de3104e03d9822107318551714d055c8a7acc45313796e8", "81b35ae562bccadd9651fe74f2669b85dd2cfe5c60fc050119ceb3277483af12", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 3, "leaf_index": 3 }, "leaf_version": 2 }, "envelope": "57414931206a77702d636f6e666f726d616e6365206f626a6563742033" }, "expected": { "outcome": "read", "reading": "unmetered" } }, { "name": "property_object_does_not_verify", "about": "the envelope does not hash to the object's content hash: nothing is read", "procedure": "property", "input": { "property": { "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "acquisition": "OnChipCounter", "acquisition_evidence": "00004e2000000000000f424000", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "group": { "kind": "group", "track_alias": 7, "group_id": 3, "root_hash": "62ceef6eff690aa495e0744b8f17dc530e69ed587f3de45fc3107992ee531f8d", "leaf_count": 5, "joules_total": 2800, "group_start": "2026-09-30T12:00:00Z", "group_end": "2026-09-30T12:00:01Z", "signer_pubkey": "d04ab232742bb4ab3a1368bd4615e4e6d0224ab71a016baf8520a332c9778737", "signer_id": "did:example:publisher", "sig": "83a54aac08476e4af1ccdf8b87db5f1685fe20e428a1ab008e596749d08bf877cb9968e1f92a6650c4f7390ff4f207fb38f3fe91cb6f3c25621991914f7e340a", "parent_receipt_hash": null }, "object": { "kind": "object", "track_alias": 7, "group_id": 3, "object_id": 0, "content_hash": "16d34babd9a027ad12b61e4d0aef877f560d87e8b4884a3a2b2d59cb54a4850d", "joules_micro": 1200, "origin": "dc-0.example", "merkle_proof": { "siblings": [ "281de97b5d3b5f872298b30812bf65f6a14d2cb223c135d17034e19e20988c9f", "59057bc02626a58b09500bf398bc79d53501ce15bb752e14be51fc3f56de8480", "9d64da32bb5321c05b43826384e2006364e5b144e765f5e7fd2da262f46d295d" ], "direction_bits": 0, "leaf_index": 0 }, "leaf_version": 2, "energy_provenance": "OnChipCounter", "energy_uncertainty": { "relative_ppm": 20000, "window_us": 1000000 }, "energy_counter_filtering": "Unknown" }, "envelope": "57414931206d757461746564" }, "expected": { "outcome": "reject", "step": 4, "reason": "content_hash_mismatch" } }, { "name": "property_signed_by_energy_claim", "about": "an energy claim about the legacy object restates the property's figure and class", "procedure": "property", "input": { "property": { "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "acquisition": "ModelBased", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":500,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"object\",\"work_units\":1},\"class\":\"energy\",\"issued_at\":\"2026-09-30T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e1b90fc2ceb247ca2e5fcf52c8763421a77b468e451d5dc9bd27c4f71be5f78596426d63f3f1a176ffae2d65b2806da872c145360f05bcf0d7c9c46d755f7200\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4\",\"subject_type\":\"object\"}" }, "expected": { "outcome": "read", "reading": "signed class=ModelBased by=a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0" } }, { "name": "property_signed_by_third_party_claim", "about": "an energy claim signed by a relay's own key restates the property: the class reads as signed by that key, not by the publisher", "procedure": "property", "input": { "property": { "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "acquisition": "ModelBased", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":500,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"object\",\"work_units\":1},\"class\":\"energy\",\"issued_at\":\"2026-09-30T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"b07414055b7bf57c16593e11e49b0b0d8422844d134c5c7db7f1bcc0057b57d3e9c394c78cb19214e9ef4e8b320154394d9bc2f1b0323448a850dd7cecdbe501\",\"signer_id\":\"did:example:relay\",\"signer_pubkey\":\"17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce\",\"subject\":\"3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4\",\"subject_type\":\"object\"}" }, "expected": { "outcome": "read", "reading": "signed class=ModelBased by=17cb79fb2b4120f2b1ec65e4198d6e08b28e813feb01e4a400839b85e18080ce" } }, { "name": "property_energy_claim_disagrees", "about": "the energy claim states another figure", "procedure": "property", "input": { "property": { "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "acquisition": "ModelBased", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":499,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"object\",\"work_units\":1},\"class\":\"energy\",\"issued_at\":\"2026-09-30T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"882d3954eb578a1eab413c195bf760f9d7c43d7892cfdebb2eedbe9800adf42fb2913fba89618819d6b2a3e4c101801f826d85e56f289e2a0199b8dfab67b108\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4\",\"subject_type\":\"object\"}" }, "expected": { "outcome": "reject", "reason": "property_disagrees" } }, { "name": "property_energy_claim_altered", "about": "an energy claim altered after signing is no signed statement: the property reads as unsigned", "procedure": "property", "input": { "property": { "content_hash": "3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4", "joules_micro": 500, "acquisition": "ModelBased", "acquisition_evidence": "", "group_receipt": "2e58ff648d74e0ad023c4efe65f69fba6103655f0be027c8cba5f4767548fea5" }, "claim": "{\"body\":{\"coverage\":\"Whole\",\"energy_calibration_ref\":null,\"energy_counter_filtering\":null,\"energy_provenance\":\"ModelBased\",\"energy_uncertainty\":null,\"grade\":\"derived\",\"joules_micro\":501,\"method\":\"https://transaction.science/wai/extensions/energy-measurement\",\"oer_receipt\":null,\"work_unit\":\"object\",\"work_units\":1},\"class\":\"energy\",\"issued_at\":\"2026-09-30T12:00:00Z\",\"kind\":\"claim\",\"parent_receipt_hash\":null,\"seq\":0,\"sig\":\"e1b90fc2ceb247ca2e5fcf52c8763421a77b468e451d5dc9bd27c4f71be5f78596426d63f3f1a176ffae2d65b2806da872c145360f05bcf0d7c9c46d755f7200\",\"signer_id\":\"did:example:meter\",\"signer_pubkey\":\"a09aa5f47a6759802ff955f8dc2d2a14a5c99d23be97f864127ff9383455a4f0\",\"subject\":\"3cb85c360e2af8f1a586389d13f0415ca90ea8ab6fa5fcdf1b3204a2dd1a44c4\",\"subject_type\":\"object\"}" }, "expected": { "outcome": "read", "reading": "unsigned" } } ] }