{
  "notice": "Copyright 2026 My Digital Sovereignty Ltd. All rights reserved. These vectors are published with the Provenance bundle specification so that anyone may read them and check an implementation against them. Publication gives no licence to the specification, the checker or any other software of My Digital Sovereignty Ltd; anyone holding a copy on no order terms is responsible for the terms under which they hold and use it.",
  "vectors_version": 1,
  "specification": "/provenance-bundle-spec.html",
  "conventions": "Every hash is SHA-256, written as 64 lowercase hex characters. || is byte concatenation. Byte values are written 0x00.",
  "canonical_json": {
    "rules": [
      "UTF-8, no whitespace outside strings.",
      "Object keys sorted by UTF-16 code unit, compared as unsigned 16-bit numbers; duplicate keys are refused by the parser before canonicalisation.",
      "Strings: \" and \\ escaped; U+0008, U+0009, U+000A, U+000C and U+000D as \\b, \\t, \\n, \\f, \\r; every other code point below U+0020 as \\u followed by four lowercase hex digits; everything else written as itself. A lone surrogate is refused.",
      "Numbers: integers only, from -(2^53 - 1) to 2^53 - 1, written in decimal with no sign on zero, no leading zero, no exponent.",
      "No null and no boolean: a field is present or absent; a flag is the string \"true\" or \"false\".",
      "At most 64 levels of nesting."
    ],
    "accepted": [
      {
        "name": "key order is by UTF-16 code unit, not by code point",
        "input_json": "{\"\\uff21\":1,\"\\ud83d\\ude00\":2,\"\\u00e9\":3,\"b\":4,\"a\":5,\"A\":6,\"aa\":7,\"\":8}",
        "canonical": "{\"\":8,\"A\":6,\"a\":5,\"aa\":7,\"b\":4,\"é\":3,\"😀\":2,\"Ａ\":1}",
        "canonical_sha256": "0239c8b24ee8373b95cfa5a94b3dee7d918ffad8c0404d5a838b59092907cdf2"
      },
      {
        "name": "nested objects and arrays keep array order and sort every object",
        "input_json": "{\"z\":[{\"b\":1,\"a\":2},[3,2,1]],\"a\":{\"d\":{\"c\":0}}}",
        "canonical": "{\"a\":{\"d\":{\"c\":0}},\"z\":[{\"a\":2,\"b\":1},[3,2,1]]}",
        "canonical_sha256": "cec185e796686fc89506beea1a11f535b0804fedb2ddafeaefd69a225785fc4a"
      },
      {
        "name": "string escapes: quote, backslash, the five short forms, other controls as \\u00xx, and nothing else",
        "input_json": "{\"s\":\"q\\\" b\\\\ \\b\\t\\n\\f\\r \\u0001\\u001f / \\u007f \\u2028 é 😀\"}",
        "canonical": "{\"s\":\"q\\\" b\\\\ \\b\\t\\n\\f\\r \\u0001\\u001f /    é 😀\"}",
        "canonical_sha256": "2cdb9e88318e5e7cbea437a709bca37327907080b0f1c0fb0cfa5bb3830a451f"
      },
      {
        "name": "integers at the edges of the safe range, negative zero written as 0",
        "input_json": "{\"max\":9007199254740991,\"min\":-9007199254740991,\"negzero\":-0,\"zero\":0}",
        "canonical": "{\"max\":9007199254740991,\"min\":-9007199254740991,\"negzero\":0,\"zero\":0}",
        "canonical_sha256": "899a106435a78409ca9d033827dd2bfc87774d8266121b102b69979abfcc447c"
      },
      {
        "name": "flags are the strings \"true\" and \"false\"",
        "input_json": "{\"salted\":\"true\",\"other\":\"false\"}",
        "canonical": "{\"other\":\"false\",\"salted\":\"true\"}",
        "canonical_sha256": "8f1eae9d608dfc20c95bc17d289a6365715bea443e6aba0d1004702c5ba44e6c"
      },
      {
        "name": "64 levels of nesting",
        "input_json": "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]",
        "canonical": "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]",
        "canonical_sha256": "b3ff3b51ce17ef2a2a68203329ff0e73738c07df874044149c283b28841a0035"
      },
      {
        "name": "whitespace in the input is not kept",
        "input_json": " { \"b\" : [ 1 , 2 ] ,\n \"a\" : \"x\" } ",
        "canonical": "{\"a\":\"x\",\"b\":[1,2]}",
        "canonical_sha256": "721ef82f2d6c0997bffb7a8ab3f40f8fb45b0b52ce2af3afa6b0f05efbdc317f"
      }
    ],
    "refused": [
      {
        "name": "null",
        "input_json": "{\"a\":null}",
        "reason": "null refused: a field is present or absent"
      },
      {
        "name": "true",
        "input_json": "{\"a\":true}",
        "reason": "booleans are refused"
      },
      {
        "name": "a fraction",
        "input_json": "{\"a\":1.5}",
        "reason": "non-integer number refused"
      },
      {
        "name": "an exponent that is not a whole number",
        "input_json": "{\"a\":1e-3}",
        "reason": "non-integer number refused"
      },
      {
        "name": "an integer beyond 2^53 - 1",
        "input_json": "{\"a\":9007199254740992}",
        "reason": "integer out of range"
      },
      {
        "name": "a lone high surrogate in a string",
        "input_json": "{\"a\":\"\\ud800\"}",
        "reason": "lone surrogate refused"
      },
      {
        "name": "a lone low surrogate in a key",
        "input_json": "{\"\\udc00\":1}",
        "reason": "lone surrogate in key refused"
      },
      {
        "name": "65 levels of nesting",
        "input_json": "[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]",
        "reason": "nesting deeper than 64 levels"
      }
    ]
  },
  "signature": {
    "key": {
      "note": "The private key of RFC 8032 section 7.1, test 1. It is published in that RFC and must never sign anything real.",
      "secret_key_hex": "9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60",
      "public_key_hex": "d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a",
      "key_fingerprint_sha256": "21fe31dfa154a261626bf854046fd2271b7bed4b6abe45aa58877ef47f9721b9"
    },
    "rfc8032_test1": {
      "public_key_hex": "d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a",
      "message_hex": "",
      "signature_hex": "e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b",
      "valid": true
    },
    "kinds": [
      {
        "kind": "provenance_mandate",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e01",
          "receipt_kind": "provenance_mandate",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-12T20:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 1,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-12T20:00:00.000Z",
          "capture_mode": "online",
          "mandate_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5eff",
          "custody_model": "village_custodied",
          "key_id": "rfc8032-test-1",
          "scope": [
            "attestation",
            "day_root",
            "disclosure_event",
            "erasure_event",
            "handover",
            "key_event",
            "step",
            "tsa_confirmation"
          ],
          "grantor_role": "owner",
          "grantor_auth": "passkey",
          "valid_from": "2026-10-12T20:00:00.000Z",
          "mandate_status": "granted",
          "valid_until": "2027-10-12T20:00:00.000Z",
          "acknowledgements": [
            "erasure_limits",
            "legal_framing",
            "sealed_permanence"
          ],
          "privacy_note_version": 1
        },
        "canonical_bytes_base64": "eyJhY2tub3dsZWRnZW1lbnRzIjpbImVyYXN1cmVfbGltaXRzIiwibGVnYWxfZnJhbWluZyIsInNlYWxlZF9wZXJtYW5lbmNlIl0sImFsZ29yaXRobSI6IkVkMjU1MTkiLCJhdHRlc3RhdGlvbl9hdXRob3JpdHkiOiJwbGF0Zm9ybSIsImNhcHR1cmVfbW9kZSI6Im9ubGluZSIsImNhcHR1cmVkX2F0IjoiMjAyNi0xMC0xMlQyMDowMDowMC4wMDBaIiwiY3VzdG9keV9tb2RlbCI6InZpbGxhZ2VfY3VzdG9kaWVkIiwiZGVjaWRlZF9hdCI6IjIwMjYtMTAtMTJUMjA6MDA6MDAuMDAwWiIsImdyYW50b3JfYXV0aCI6InBhc3NrZXkiLCJncmFudG9yX3JvbGUiOiJvd25lciIsImtleV9pZCI6InJmYzgwMzItdGVzdC0xIiwibWFuZGF0ZV9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWVmZiIsIm1hbmRhdGVfc3RhdHVzIjoiZ3JhbnRlZCIsInByaXZhY3lfbm90ZV92ZXJzaW9uIjoxLCJyZWNlaXB0X2lkIjoiNmYxYzJhN2UtMGIzZC00YzVlLThmOTAtMWEyYjNjNGQ1ZTAxIiwicmVjZWlwdF9raW5kIjoicHJvdmVuYW5jZV9tYW5kYXRlIiwicmVjZWlwdF92ZXJzaW9uIjoxLCJzY29wZSI6WyJhdHRlc3RhdGlvbiIsImRheV9yb290IiwiZGlzY2xvc3VyZV9ldmVudCIsImVyYXN1cmVfZXZlbnQiLCJoYW5kb3ZlciIsImtleV9ldmVudCIsInN0ZXAiLCJ0c2FfY29uZmlybWF0aW9uIl0sInNpZ25lcl9kaWQiOiJkaWQ6ZXhhbXBsZTp2ZWN0b3JzI3JmYzgwMzItdGVzdC0xIiwic2lnbmluZ19tb2RlbCI6InZpbGxhZ2VfY3VzdG9kaWVkIiwidGVuYW50X2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMiLCJ0ZW5hbnRfc2VxIjoxLCJ0aW1lX2F0dGVzdGF0aW9uIjp7ImF1dGhvcml0aWVzIjpbXSwiZ3JhZGUiOiJvcGVyYXRvcl9hdHRlc3RlZCIsInF1b3J1bSI6eyJjb25maWd1cmVkIjowLCJtZXQiOiJmYWxzZSIsIm9idGFpbmVkIjowLCJyZXF1aXJlZCI6MX0sInVuYXZhaWxhYmxlX3JlYXNvbiI6InRlc3RfdmVjdG9yIn0sInZhbGlkX2Zyb20iOiIyMDI2LTEwLTEyVDIwOjAwOjAwLjAwMFoiLCJ2YWxpZF91bnRpbCI6IjIwMjctMTAtMTJUMjA6MDA6MDAuMDAwWiJ9",
        "signature_hex": "07e6ef0ec73fcc0de54e5ce937b387fcbf9ddad8dd5cdf9d0de2bf24c52c4cb09c5d0ea6b494459fd9b234b8988337f157d61d8b222465e24e199af12f988805",
        "valid": true,
        "receipt_sha256": "5db3dc86ca38f91b2ce0e459f07c23b42aab185e7d6e2b86b5e5b06d6f5d7e0a",
        "committed_under": "party leaf"
      },
      {
        "kind": "provenance_step",
        "json": {
          "receipt_id": "0f8fad5b-d9cb-469f-a165-70867728950e",
          "receipt_kind": "provenance_step",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "tsa_rfc3161",
            "authorities": [
              {
                "provider_id": "aruba",
                "status": "obtained",
                "token_digest": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
                "qualified_status": "qualified_per_trusted_list",
                "trusted_list_ref": {
                  "jurisdiction": "IT",
                  "sequence": 224,
                  "issued": "2026-09-24"
                }
              },
              {
                "provider_id": "certum",
                "status": "not_obtained",
                "unavailable_reason": "timeout",
                "qualified_status": "not_assessed"
              }
            ],
            "quorum": {
              "required": 1,
              "configured": 2,
              "obtained": 1,
              "met": "true"
            }
          },
          "tenant_seq": 2,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-12T23:59:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "step_type": "harvest",
          "occurred_at": "2026-10-12T21:00:00.000Z",
          "product_class": "honey",
          "location_class": {
            "country": "NZ",
            "region": "NZ-HKB",
            "facility_type": "apiary"
          },
          "evidence_refs": [
            {
              "evidence_kind": "seal",
              "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "salted": "true"
            }
          ],
          "attestation_source": "self",
          "hs_code": "040900"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJhdHRlc3RhdGlvbl9zb3VyY2UiOiJzZWxmIiwiY2FwdHVyZV9tb2RlIjoib25saW5lIiwiY2FwdHVyZWRfYXQiOiIyMDI2LTEwLTEyVDIzOjU5OjAwLjAwMFoiLCJkZWNpZGVkX2F0IjoiMjAyNi0xMC0xM1QwMDowMDowMC4wMDBaIiwiZXZpZGVuY2VfcmVmcyI6W3siZXZpZGVuY2Vfa2luZCI6InNlYWwiLCJzYWx0ZWQiOiJ0cnVlIiwic2hhMjU2IjoiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiJ9XSwiaHNfY29kZSI6IjA0MDkwMCIsImxvY2F0aW9uX2NsYXNzIjp7ImNvdW50cnkiOiJOWiIsImZhY2lsaXR5X3R5cGUiOiJhcGlhcnkiLCJyZWdpb24iOiJOWi1IS0IifSwibG90X3JlZiI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJtYW5kYXRlX3JlZl9zaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwib2NjdXJyZWRfYXQiOiIyMDI2LTEwLTEyVDIxOjAwOjAwLjAwMFoiLCJwcm9kdWN0X2NsYXNzIjoiaG9uZXkiLCJyZWNlaXB0X2lkIjoiMGY4ZmFkNWItZDljYi00NjlmLWExNjUtNzA4Njc3Mjg5NTBlIiwicmVjZWlwdF9raW5kIjoicHJvdmVuYW5jZV9zdGVwIiwicmVjZWlwdF92ZXJzaW9uIjoxLCJzaWduZXJfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyNyZmM4MDMyLXRlc3QtMSIsInNpZ25pbmdfbW9kZWwiOiJ2aWxsYWdlX2N1c3RvZGllZCIsInN0ZXBfdHlwZSI6ImhhcnZlc3QiLCJ0ZW5hbnRfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyIsInRlbmFudF9zZXEiOjIsInRpbWVfYXR0ZXN0YXRpb24iOnsiYXV0aG9yaXRpZXMiOlt7InByb3ZpZGVyX2lkIjoiYXJ1YmEiLCJxdWFsaWZpZWRfc3RhdHVzIjoicXVhbGlmaWVkX3Blcl90cnVzdGVkX2xpc3QiLCJzdGF0dXMiOiJvYnRhaW5lZCIsInRva2VuX2RpZ2VzdCI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiLCJ0cnVzdGVkX2xpc3RfcmVmIjp7Imlzc3VlZCI6IjIwMjYtMDktMjQiLCJqdXJpc2RpY3Rpb24iOiJJVCIsInNlcXVlbmNlIjoyMjR9fSx7InByb3ZpZGVyX2lkIjoiY2VydHVtIiwicXVhbGlmaWVkX3N0YXR1cyI6Im5vdF9hc3Nlc3NlZCIsInN0YXR1cyI6Im5vdF9vYnRhaW5lZCIsInVuYXZhaWxhYmxlX3JlYXNvbiI6InRpbWVvdXQifV0sImdyYWRlIjoidHNhX3JmYzMxNjEiLCJxdW9ydW0iOnsiY29uZmlndXJlZCI6MiwibWV0IjoidHJ1ZSIsIm9idGFpbmVkIjoxLCJyZXF1aXJlZCI6MX19fQ==",
        "signature_hex": "a84eb0d498aa733878ee81f2bf1bec16033c2a11c24ad7b509770f962f820b4be07b5bca0a97e6f4aa65881da7d3e0ea1322f8ba66ef0711a6b1498f6e00370a",
        "valid": true,
        "receipt_sha256": "aa7cddce1c9d772648ef40e3ba62d660abb6e64ff94dbbe63993ad36b25cf659",
        "committed_under": "its lot_ref"
      },
      {
        "kind": "provenance_key_event",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e03",
          "receipt_kind": "provenance_key_event",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T01:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 3,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T01:00:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "event": "withdrawn",
          "key_id": "rfc8032-test-1",
          "effective_at": "2026-10-13T01:00:00.000Z"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJjYXB0dXJlX21vZGUiOiJvbmxpbmUiLCJjYXB0dXJlZF9hdCI6IjIwMjYtMTAtMTNUMDE6MDA6MDAuMDAwWiIsImRlY2lkZWRfYXQiOiIyMDI2LTEwLTEzVDAxOjAwOjAwLjAwMFoiLCJlZmZlY3RpdmVfYXQiOiIyMDI2LTEwLTEzVDAxOjAwOjAwLjAwMFoiLCJldmVudCI6IndpdGhkcmF3biIsImtleV9pZCI6InJmYzgwMzItdGVzdC0xIiwibWFuZGF0ZV9yZWZfc2hhMjU2IjoiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIsInJlY2VpcHRfaWQiOiI2ZjFjMmE3ZS0wYjNkLTRjNWUtOGY5MC0xYTJiM2M0ZDVlMDMiLCJyZWNlaXB0X2tpbmQiOiJwcm92ZW5hbmNlX2tleV9ldmVudCIsInJlY2VpcHRfdmVyc2lvbiI6MSwic2lnbmVyX2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMjcmZjODAzMi10ZXN0LTEiLCJzaWduaW5nX21vZGVsIjoidmlsbGFnZV9jdXN0b2RpZWQiLCJ0ZW5hbnRfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyIsInRlbmFudF9zZXEiOjMsInRpbWVfYXR0ZXN0YXRpb24iOnsiYXV0aG9yaXRpZXMiOltdLCJncmFkZSI6Im9wZXJhdG9yX2F0dGVzdGVkIiwicXVvcnVtIjp7ImNvbmZpZ3VyZWQiOjAsIm1ldCI6ImZhbHNlIiwib2J0YWluZWQiOjAsInJlcXVpcmVkIjoxfSwidW5hdmFpbGFibGVfcmVhc29uIjoidGVzdF92ZWN0b3IifX0=",
        "signature_hex": "30d49f660f8950e9ab9351cfd7adc4c81b3922d7b3d4e29e8da693ef306f9f5064b0bec098403bc1ef507c34058ad59a5c87319a2cfb4b09f61b1b834515b403",
        "valid": true,
        "receipt_sha256": "04cbdb92f0273f328d2d8176ba8b521b8278eb3bff46f555f353e9207706eb0f",
        "committed_under": "party leaf"
      },
      {
        "kind": "provenance_attestation",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e04",
          "receipt_kind": "provenance_attestation",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:30:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 4,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T00:30:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "lot_ref": "eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",
          "attestation_kind": "inspection",
          "point": "origin",
          "outcome": "pass",
          "evidence_refs": [],
          "occurred_at": "2026-10-13T00:00:00.000Z",
          "location_class": {
            "country": "NZ",
            "region": "NZ-HKB",
            "facility_type": "apiary"
          },
          "attestation_source": "third_party"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJhdHRlc3RhdGlvbl9raW5kIjoiaW5zcGVjdGlvbiIsImF0dGVzdGF0aW9uX3NvdXJjZSI6InRoaXJkX3BhcnR5IiwiY2FwdHVyZV9tb2RlIjoib25saW5lIiwiY2FwdHVyZWRfYXQiOiIyMDI2LTEwLTEzVDAwOjMwOjAwLjAwMFoiLCJkZWNpZGVkX2F0IjoiMjAyNi0xMC0xM1QwMDozMDowMC4wMDBaIiwiZXZpZGVuY2VfcmVmcyI6W10sImxvY2F0aW9uX2NsYXNzIjp7ImNvdW50cnkiOiJOWiIsImZhY2lsaXR5X3R5cGUiOiJhcGlhcnkiLCJyZWdpb24iOiJOWi1IS0IifSwibG90X3JlZiI6ImVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWVlZWUiLCJtYW5kYXRlX3JlZl9zaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwib2NjdXJyZWRfYXQiOiIyMDI2LTEwLTEzVDAwOjAwOjAwLjAwMFoiLCJvdXRjb21lIjoicGFzcyIsInBvaW50Ijoib3JpZ2luIiwicmVjZWlwdF9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWUwNCIsInJlY2VpcHRfa2luZCI6InByb3ZlbmFuY2VfYXR0ZXN0YXRpb24iLCJyZWNlaXB0X3ZlcnNpb24iOjEsInNpZ25lcl9kaWQiOiJkaWQ6ZXhhbXBsZTp2ZWN0b3JzI3JmYzgwMzItdGVzdC0xIiwic2lnbmluZ19tb2RlbCI6InZpbGxhZ2VfY3VzdG9kaWVkIiwidGVuYW50X2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMiLCJ0ZW5hbnRfc2VxIjo0LCJ0aW1lX2F0dGVzdGF0aW9uIjp7ImF1dGhvcml0aWVzIjpbXSwiZ3JhZGUiOiJvcGVyYXRvcl9hdHRlc3RlZCIsInF1b3J1bSI6eyJjb25maWd1cmVkIjowLCJtZXQiOiJmYWxzZSIsIm9idGFpbmVkIjowLCJyZXF1aXJlZCI6MX0sInVuYXZhaWxhYmxlX3JlYXNvbiI6InRlc3RfdmVjdG9yIn19",
        "signature_hex": "dfd32e363105296100dbd3edcbee89a314c44abc20ca637db2e80a2dbae3d8932efade21a1887fce03826b788cf51f22f73573290303bd4c0bed88ec8d1eed01",
        "valid": true,
        "receipt_sha256": "5ad24890c595befcbf8a6f3c8912276caf884c0657ed319089116fd3200b2cd8",
        "committed_under": "its lot_ref"
      },
      {
        "kind": "provenance_tsa_confirmation",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e05",
          "receipt_kind": "provenance_tsa_confirmation",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:40:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 5,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T00:40:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "authority_id": "aruba",
          "tsu_anchor_sha256": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff",
          "trusted_list_jurisdiction": "IT",
          "trusted_list_sequence": 224,
          "trusted_list_issued": "2026-09-24",
          "status": "confirmed_qualified",
          "confirmed_at": "2026-10-13T00:40:00.000Z",
          "confirmer_role": "owner"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJhdXRob3JpdHlfaWQiOiJhcnViYSIsImNhcHR1cmVfbW9kZSI6Im9ubGluZSIsImNhcHR1cmVkX2F0IjoiMjAyNi0xMC0xM1QwMDo0MDowMC4wMDBaIiwiY29uZmlybWVkX2F0IjoiMjAyNi0xMC0xM1QwMDo0MDowMC4wMDBaIiwiY29uZmlybWVyX3JvbGUiOiJvd25lciIsImRlY2lkZWRfYXQiOiIyMDI2LTEwLTEzVDAwOjQwOjAwLjAwMFoiLCJtYW5kYXRlX3JlZl9zaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwicmVjZWlwdF9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWUwNSIsInJlY2VpcHRfa2luZCI6InByb3ZlbmFuY2VfdHNhX2NvbmZpcm1hdGlvbiIsInJlY2VpcHRfdmVyc2lvbiI6MSwic2lnbmVyX2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMjcmZjODAzMi10ZXN0LTEiLCJzaWduaW5nX21vZGVsIjoidmlsbGFnZV9jdXN0b2RpZWQiLCJzdGF0dXMiOiJjb25maXJtZWRfcXVhbGlmaWVkIiwidGVuYW50X2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMiLCJ0ZW5hbnRfc2VxIjo1LCJ0aW1lX2F0dGVzdGF0aW9uIjp7ImF1dGhvcml0aWVzIjpbXSwiZ3JhZGUiOiJvcGVyYXRvcl9hdHRlc3RlZCIsInF1b3J1bSI6eyJjb25maWd1cmVkIjowLCJtZXQiOiJmYWxzZSIsIm9idGFpbmVkIjowLCJyZXF1aXJlZCI6MX0sInVuYXZhaWxhYmxlX3JlYXNvbiI6InRlc3RfdmVjdG9yIn0sInRydXN0ZWRfbGlzdF9pc3N1ZWQiOiIyMDI2LTA5LTI0IiwidHJ1c3RlZF9saXN0X2p1cmlzZGljdGlvbiI6IklUIiwidHJ1c3RlZF9saXN0X3NlcXVlbmNlIjoyMjQsInRzdV9hbmNob3Jfc2hhMjU2IjoiZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZiJ9",
        "signature_hex": "4df4d70325456318eeac179e25ac55da5e05dfbc795c124a3eede74ca48a5dce63efef1ea46bac99508d09e837babc67c6557f9d0e4495e4c68d13a01ba80e08",
        "valid": true,
        "receipt_sha256": "7c5992c116b63dddfa44a9a2d9f00b525199736a2f3196e3abe23208ef033cb2",
        "committed_under": "party leaf"
      },
      {
        "kind": "provenance_erasure_event",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e06",
          "receipt_kind": "provenance_erasure_event",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:50:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 6,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T00:50:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "erased_class": "lot_label",
          "commitment_sha256_list": [],
          "occurred_at": "2026-10-13T00:50:00.000Z",
          "basis": "request"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJiYXNpcyI6InJlcXVlc3QiLCJjYXB0dXJlX21vZGUiOiJvbmxpbmUiLCJjYXB0dXJlZF9hdCI6IjIwMjYtMTAtMTNUMDA6NTA6MDAuMDAwWiIsImNvbW1pdG1lbnRfc2hhMjU2X2xpc3QiOltdLCJkZWNpZGVkX2F0IjoiMjAyNi0xMC0xM1QwMDo1MDowMC4wMDBaIiwiZXJhc2VkX2NsYXNzIjoibG90X2xhYmVsIiwibWFuZGF0ZV9yZWZfc2hhMjU2IjoiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIsIm9jY3VycmVkX2F0IjoiMjAyNi0xMC0xM1QwMDo1MDowMC4wMDBaIiwicmVjZWlwdF9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWUwNiIsInJlY2VpcHRfa2luZCI6InByb3ZlbmFuY2VfZXJhc3VyZV9ldmVudCIsInJlY2VpcHRfdmVyc2lvbiI6MSwic2lnbmVyX2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMjcmZjODAzMi10ZXN0LTEiLCJzaWduaW5nX21vZGVsIjoidmlsbGFnZV9jdXN0b2RpZWQiLCJ0ZW5hbnRfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyIsInRlbmFudF9zZXEiOjYsInRpbWVfYXR0ZXN0YXRpb24iOnsiYXV0aG9yaXRpZXMiOltdLCJncmFkZSI6Im9wZXJhdG9yX2F0dGVzdGVkIiwicXVvcnVtIjp7ImNvbmZpZ3VyZWQiOjAsIm1ldCI6ImZhbHNlIiwib2J0YWluZWQiOjAsInJlcXVpcmVkIjoxfSwidW5hdmFpbGFibGVfcmVhc29uIjoidGVzdF92ZWN0b3IifX0=",
        "signature_hex": "22fd0c3d3e48b4401dbb63cc719a58a22c1237f63447ca43a488c7977089026c1f008817e9c43c6c470253769840780286da870e3faffd71c3ebddc38a1d820e",
        "valid": true,
        "receipt_sha256": "37cb1cea3e96b3734ac94a4adbb220eb8b28ce3eea73fb81dd8e4d2f7c608c44",
        "committed_under": "omittable party leaf"
      },
      {
        "kind": "provenance_disclosure_event",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e07",
          "receipt_kind": "provenance_disclosure_event",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:55:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 7,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T00:55:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "disclosed_classes": [
            "lot_salt"
          ],
          "commitment_sha256_list": [
            "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
          ],
          "recipient_class": "buyer",
          "occurred_at": "2026-10-13T00:55:00.000Z"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJjYXB0dXJlX21vZGUiOiJvbmxpbmUiLCJjYXB0dXJlZF9hdCI6IjIwMjYtMTAtMTNUMDA6NTU6MDAuMDAwWiIsImNvbW1pdG1lbnRfc2hhMjU2X2xpc3QiOlsiYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYSJdLCJkZWNpZGVkX2F0IjoiMjAyNi0xMC0xM1QwMDo1NTowMC4wMDBaIiwiZGlzY2xvc2VkX2NsYXNzZXMiOlsibG90X3NhbHQiXSwibWFuZGF0ZV9yZWZfc2hhMjU2IjoiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIsIm9jY3VycmVkX2F0IjoiMjAyNi0xMC0xM1QwMDo1NTowMC4wMDBaIiwicmVjZWlwdF9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWUwNyIsInJlY2VpcHRfa2luZCI6InByb3ZlbmFuY2VfZGlzY2xvc3VyZV9ldmVudCIsInJlY2VpcHRfdmVyc2lvbiI6MSwicmVjaXBpZW50X2NsYXNzIjoiYnV5ZXIiLCJzaWduZXJfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyNyZmM4MDMyLXRlc3QtMSIsInNpZ25pbmdfbW9kZWwiOiJ2aWxsYWdlX2N1c3RvZGllZCIsInRlbmFudF9kaWQiOiJkaWQ6ZXhhbXBsZTp2ZWN0b3JzIiwidGVuYW50X3NlcSI6NywidGltZV9hdHRlc3RhdGlvbiI6eyJhdXRob3JpdGllcyI6W10sImdyYWRlIjoib3BlcmF0b3JfYXR0ZXN0ZWQiLCJxdW9ydW0iOnsiY29uZmlndXJlZCI6MCwibWV0IjoiZmFsc2UiLCJvYnRhaW5lZCI6MCwicmVxdWlyZWQiOjF9LCJ1bmF2YWlsYWJsZV9yZWFzb24iOiJ0ZXN0X3ZlY3RvciJ9fQ==",
        "signature_hex": "f0baa93dfcb8aaa7c46a3f7e22741f3bd9c6fe7ccb011fb400bf91b8bbb3e2fc45461f8ec52fd9920ecd77d3b3861108ae3403882aa7a530f92b744593cc1205",
        "valid": true,
        "receipt_sha256": "460df6745c6d3bf09a46da1870ad734f099265e543a07305b969cbe21a9f85fb",
        "committed_under": "omittable party leaf"
      },
      {
        "kind": "provenance_archive_root",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e08",
          "receipt_kind": "provenance_archive_root",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-14T00:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 2,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "covers_from_date": "2026-10-12",
          "covers_to_date": "2026-10-13",
          "day_root_hashes_root": "1111111111111111111111111111111111111111111111111111111111111111",
          "previous_archive_root_sha256": "0000000000000000000000000000000000000000000000000000000000000000",
          "hash_algorithm": "sha256"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJjb3ZlcnNfZnJvbV9kYXRlIjoiMjAyNi0xMC0xMiIsImNvdmVyc190b19kYXRlIjoiMjAyNi0xMC0xMyIsImRheV9yb290X2hhc2hlc19yb290IjoiMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMSIsImRlY2lkZWRfYXQiOiIyMDI2LTEwLTE0VDAwOjAwOjAwLjAwMFoiLCJoYXNoX2FsZ29yaXRobSI6InNoYTI1NiIsInByZXZpb3VzX2FyY2hpdmVfcm9vdF9zaGEyNTYiOiIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIiwicmVjZWlwdF9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWUwOCIsInJlY2VpcHRfa2luZCI6InByb3ZlbmFuY2VfYXJjaGl2ZV9yb290IiwicmVjZWlwdF92ZXJzaW9uIjoxLCJzaWduZXJfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyNyZmM4MDMyLXRlc3QtMSIsInRlbmFudF9kaWQiOiJkaWQ6ZXhhbXBsZTp2ZWN0b3JzIiwidGltZV9hdHRlc3RhdGlvbiI6eyJhdXRob3JpdGllcyI6W10sImdyYWRlIjoib3BlcmF0b3JfYXR0ZXN0ZWQiLCJxdW9ydW0iOnsiY29uZmlndXJlZCI6MCwibWV0IjoiZmFsc2UiLCJvYnRhaW5lZCI6MCwicmVxdWlyZWQiOjJ9LCJ1bmF2YWlsYWJsZV9yZWFzb24iOiJ0ZXN0X3ZlY3RvciJ9fQ==",
        "signature_hex": "3901da8cc71a011709c25b9b577d513d8d4cf452f6a10a4f12b9cb67d1e6779bbf41463a23c4ca0354d5c376578df40ec56fa07aeaa454b665b78868398d180c",
        "valid": true,
        "receipt_sha256": "5090d4626b9fcce09444470f3e4bb5fac0ec469b92689ed22c7d4a46e50309ef",
        "committed_under": "not committed (dated, unsequenced)"
      },
      {
        "kind": "provenance_attestation_receipt",
        "json": {
          "receipt_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e09",
          "receipt_kind": "provenance_attestation_receipt",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T01:10:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "operator_attested",
            "unavailable_reason": "test_vector",
            "authorities": [],
            "quorum": {
              "required": 1,
              "configured": 0,
              "obtained": 0,
              "met": "false"
            }
          },
          "tenant_seq": 8,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T01:10:00.000Z",
          "capture_mode": "online",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "attester_did": "did:example:certifier",
          "attestation_receipt_sha256": "7777777777777777777777777777777777777777777777777777777777777777",
          "delivery_id": "6f1c2a7e-0b3d-4c5e-8f90-1a2b3c4d5e10"
        },
        "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJhdHRlc3RhdGlvbl9yZWNlaXB0X3NoYTI1NiI6Ijc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3Nzc3NzciLCJhdHRlc3Rlcl9kaWQiOiJkaWQ6ZXhhbXBsZTpjZXJ0aWZpZXIiLCJjYXB0dXJlX21vZGUiOiJvbmxpbmUiLCJjYXB0dXJlZF9hdCI6IjIwMjYtMTAtMTNUMDE6MTA6MDAuMDAwWiIsImRlY2lkZWRfYXQiOiIyMDI2LTEwLTEzVDAxOjEwOjAwLjAwMFoiLCJkZWxpdmVyeV9pZCI6IjZmMWMyYTdlLTBiM2QtNGM1ZS04ZjkwLTFhMmIzYzRkNWUxMCIsImxvdF9yZWYiOiJhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhIiwibWFuZGF0ZV9yZWZfc2hhMjU2IjoiZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZCIsInJlY2VpcHRfaWQiOiI2ZjFjMmE3ZS0wYjNkLTRjNWUtOGY5MC0xYTJiM2M0ZDVlMDkiLCJyZWNlaXB0X2tpbmQiOiJwcm92ZW5hbmNlX2F0dGVzdGF0aW9uX3JlY2VpcHQiLCJyZWNlaXB0X3ZlcnNpb24iOjEsInNpZ25lcl9kaWQiOiJkaWQ6ZXhhbXBsZTp2ZWN0b3JzI3JmYzgwMzItdGVzdC0xIiwic2lnbmluZ19tb2RlbCI6InZpbGxhZ2VfY3VzdG9kaWVkIiwidGVuYW50X2RpZCI6ImRpZDpleGFtcGxlOnZlY3RvcnMiLCJ0ZW5hbnRfc2VxIjo4LCJ0aW1lX2F0dGVzdGF0aW9uIjp7ImF1dGhvcml0aWVzIjpbXSwiZ3JhZGUiOiJvcGVyYXRvcl9hdHRlc3RlZCIsInF1b3J1bSI6eyJjb25maWd1cmVkIjowLCJtZXQiOiJmYWxzZSIsIm9idGFpbmVkIjowLCJyZXF1aXJlZCI6MX0sInVuYXZhaWxhYmxlX3JlYXNvbiI6InRlc3RfdmVjdG9yIn19",
        "signature_hex": "1c413df0a03a3621798c378963a428b1de6055ba08f30a3d46aad96520babea51b4379541fbc55340cac7c5cd680e8477eb6895b78b28a4f4dc9e44f2255c207",
        "valid": true,
        "receipt_sha256": "1f94ed1b7c9fb0e9484d28bfa458431290161010d01d769a1d7f62460b7e7f4c",
        "committed_under": "its lot_ref"
      }
    ],
    "queued_capture": {
      "max_skew_ms": 300000,
      "valid": {
        "json": {
          "receipt_id": "0f8fad5b-d9cb-469f-a165-70867728950e",
          "receipt_kind": "provenance_step",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "tsa_rfc3161",
            "authorities": [
              {
                "provider_id": "aruba",
                "status": "obtained",
                "token_digest": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
                "qualified_status": "qualified_per_trusted_list",
                "trusted_list_ref": {
                  "jurisdiction": "IT",
                  "sequence": 224,
                  "issued": "2026-09-24"
                }
              },
              {
                "provider_id": "certum",
                "status": "not_obtained",
                "unavailable_reason": "timeout",
                "qualified_status": "not_assessed"
              }
            ],
            "quorum": {
              "required": 1,
              "configured": 2,
              "obtained": 1,
              "met": "true"
            }
          },
          "tenant_seq": 2,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T00:05:00.000Z",
          "capture_mode": "queued",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "step_type": "harvest",
          "occurred_at": "2026-10-12T21:00:00.000Z",
          "product_class": "honey",
          "location_class": {
            "country": "NZ",
            "region": "NZ-HKB",
            "facility_type": "apiary"
          },
          "evidence_refs": [
            {
              "evidence_kind": "seal",
              "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "salted": "true"
            }
          ],
          "attestation_source": "self",
          "hs_code": "040900"
        },
        "contract_error": null
      },
      "refused": {
        "json": {
          "receipt_id": "0f8fad5b-d9cb-469f-a165-70867728950e",
          "receipt_kind": "provenance_step",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "tsa_rfc3161",
            "authorities": [
              {
                "provider_id": "aruba",
                "status": "obtained",
                "token_digest": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
                "qualified_status": "qualified_per_trusted_list",
                "trusted_list_ref": {
                  "jurisdiction": "IT",
                  "sequence": 224,
                  "issued": "2026-09-24"
                }
              },
              {
                "provider_id": "certum",
                "status": "not_obtained",
                "unavailable_reason": "timeout",
                "qualified_status": "not_assessed"
              }
            ],
            "quorum": {
              "required": 1,
              "configured": 2,
              "obtained": 1,
              "met": "true"
            }
          },
          "tenant_seq": 2,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-13T00:05:00.001Z",
          "capture_mode": "queued",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "step_type": "harvest",
          "occurred_at": "2026-10-12T21:00:00.000Z",
          "product_class": "honey",
          "location_class": {
            "country": "NZ",
            "region": "NZ-HKB",
            "facility_type": "apiary"
          },
          "evidence_refs": [
            {
              "evidence_kind": "seal",
              "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "salted": "true"
            }
          ],
          "attestation_source": "self",
          "hs_code": "040900"
        },
        "contract_error": "a queued capture is never more than 5 minutes after decided_at"
      },
      "earlier": {
        "json": {
          "receipt_id": "0f8fad5b-d9cb-469f-a165-70867728950e",
          "receipt_kind": "provenance_step",
          "receipt_version": 1,
          "tenant_did": "did:example:vectors",
          "signer_did": "did:example:vectors#rfc8032-test-1",
          "algorithm": "Ed25519",
          "decided_at": "2026-10-13T00:00:00.000Z",
          "attestation_authority": "platform",
          "time_attestation": {
            "grade": "tsa_rfc3161",
            "authorities": [
              {
                "provider_id": "aruba",
                "status": "obtained",
                "token_digest": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
                "qualified_status": "qualified_per_trusted_list",
                "trusted_list_ref": {
                  "jurisdiction": "IT",
                  "sequence": 224,
                  "issued": "2026-09-24"
                }
              },
              {
                "provider_id": "certum",
                "status": "not_obtained",
                "unavailable_reason": "timeout",
                "qualified_status": "not_assessed"
              }
            ],
            "quorum": {
              "required": 1,
              "configured": 2,
              "obtained": 1,
              "met": "true"
            }
          },
          "tenant_seq": 2,
          "signing_model": "village_custodied",
          "captured_at": "2026-10-12T21:00:00.000Z",
          "capture_mode": "queued",
          "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "step_type": "harvest",
          "occurred_at": "2026-10-12T21:00:00.000Z",
          "product_class": "honey",
          "location_class": {
            "country": "NZ",
            "region": "NZ-HKB",
            "facility_type": "apiary"
          },
          "evidence_refs": [
            {
              "evidence_kind": "seal",
              "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "salted": "true"
            }
          ],
          "attestation_source": "self",
          "hs_code": "040900"
        },
        "contract_error": null,
        "note": "a queued capture may be any time before decided_at; the checker prints both times past 15 minutes (record_capture_time)"
      }
    },
    "record": {
      "json": {
        "receipt_id": "0f8fad5b-d9cb-469f-a165-70867728950e",
        "receipt_kind": "provenance_step",
        "receipt_version": 1,
        "tenant_did": "did:example:vectors",
        "signer_did": "did:example:vectors#rfc8032-test-1",
        "algorithm": "Ed25519",
        "decided_at": "2026-10-13T00:00:00.000Z",
        "attestation_authority": "platform",
        "time_attestation": {
          "grade": "tsa_rfc3161",
          "authorities": [
            {
              "provider_id": "aruba",
              "status": "obtained",
              "token_digest": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
              "qualified_status": "qualified_per_trusted_list",
              "trusted_list_ref": {
                "jurisdiction": "IT",
                "sequence": 224,
                "issued": "2026-09-24"
              }
            },
            {
              "provider_id": "certum",
              "status": "not_obtained",
              "unavailable_reason": "timeout",
              "qualified_status": "not_assessed"
            }
          ],
          "quorum": {
            "required": 1,
            "configured": 2,
            "obtained": 1,
            "met": "true"
          }
        },
        "tenant_seq": 2,
        "signing_model": "village_custodied",
        "captured_at": "2026-10-12T23:59:00.000Z",
        "capture_mode": "online",
        "mandate_ref_sha256": "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd",
        "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "step_type": "harvest",
        "occurred_at": "2026-10-12T21:00:00.000Z",
        "product_class": "honey",
        "location_class": {
          "country": "NZ",
          "region": "NZ-HKB",
          "facility_type": "apiary"
        },
        "evidence_refs": [
          {
            "evidence_kind": "seal",
            "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
            "salted": "true"
          }
        ],
        "attestation_source": "self",
        "hs_code": "040900"
      },
      "canonical_utf8": "{\"algorithm\":\"Ed25519\",\"attestation_authority\":\"platform\",\"attestation_source\":\"self\",\"capture_mode\":\"online\",\"captured_at\":\"2026-10-12T23:59:00.000Z\",\"decided_at\":\"2026-10-13T00:00:00.000Z\",\"evidence_refs\":[{\"evidence_kind\":\"seal\",\"salted\":\"true\",\"sha256\":\"bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\"}],\"hs_code\":\"040900\",\"location_class\":{\"country\":\"NZ\",\"facility_type\":\"apiary\",\"region\":\"NZ-HKB\"},\"lot_ref\":\"aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\",\"mandate_ref_sha256\":\"dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd\",\"occurred_at\":\"2026-10-12T21:00:00.000Z\",\"product_class\":\"honey\",\"receipt_id\":\"0f8fad5b-d9cb-469f-a165-70867728950e\",\"receipt_kind\":\"provenance_step\",\"receipt_version\":1,\"signer_did\":\"did:example:vectors#rfc8032-test-1\",\"signing_model\":\"village_custodied\",\"step_type\":\"harvest\",\"tenant_did\":\"did:example:vectors\",\"tenant_seq\":2,\"time_attestation\":{\"authorities\":[{\"provider_id\":\"aruba\",\"qualified_status\":\"qualified_per_trusted_list\",\"status\":\"obtained\",\"token_digest\":\"cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc\",\"trusted_list_ref\":{\"issued\":\"2026-09-24\",\"jurisdiction\":\"IT\",\"sequence\":224}},{\"provider_id\":\"certum\",\"qualified_status\":\"not_assessed\",\"status\":\"not_obtained\",\"unavailable_reason\":\"timeout\"}],\"grade\":\"tsa_rfc3161\",\"quorum\":{\"configured\":2,\"met\":\"true\",\"obtained\":1,\"required\":1}}}",
      "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJhdHRlc3RhdGlvbl9zb3VyY2UiOiJzZWxmIiwiY2FwdHVyZV9tb2RlIjoib25saW5lIiwiY2FwdHVyZWRfYXQiOiIyMDI2LTEwLTEyVDIzOjU5OjAwLjAwMFoiLCJkZWNpZGVkX2F0IjoiMjAyNi0xMC0xM1QwMDowMDowMC4wMDBaIiwiZXZpZGVuY2VfcmVmcyI6W3siZXZpZGVuY2Vfa2luZCI6InNlYWwiLCJzYWx0ZWQiOiJ0cnVlIiwic2hhMjU2IjoiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiJ9XSwiaHNfY29kZSI6IjA0MDkwMCIsImxvY2F0aW9uX2NsYXNzIjp7ImNvdW50cnkiOiJOWiIsImZhY2lsaXR5X3R5cGUiOiJhcGlhcnkiLCJyZWdpb24iOiJOWi1IS0IifSwibG90X3JlZiI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJtYW5kYXRlX3JlZl9zaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwib2NjdXJyZWRfYXQiOiIyMDI2LTEwLTEyVDIxOjAwOjAwLjAwMFoiLCJwcm9kdWN0X2NsYXNzIjoiaG9uZXkiLCJyZWNlaXB0X2lkIjoiMGY4ZmFkNWItZDljYi00NjlmLWExNjUtNzA4Njc3Mjg5NTBlIiwicmVjZWlwdF9raW5kIjoicHJvdmVuYW5jZV9zdGVwIiwicmVjZWlwdF92ZXJzaW9uIjoxLCJzaWduZXJfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyNyZmM4MDMyLXRlc3QtMSIsInNpZ25pbmdfbW9kZWwiOiJ2aWxsYWdlX2N1c3RvZGllZCIsInN0ZXBfdHlwZSI6ImhhcnZlc3QiLCJ0ZW5hbnRfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyIsInRlbmFudF9zZXEiOjIsInRpbWVfYXR0ZXN0YXRpb24iOnsiYXV0aG9yaXRpZXMiOlt7InByb3ZpZGVyX2lkIjoiYXJ1YmEiLCJxdWFsaWZpZWRfc3RhdHVzIjoicXVhbGlmaWVkX3Blcl90cnVzdGVkX2xpc3QiLCJzdGF0dXMiOiJvYnRhaW5lZCIsInRva2VuX2RpZ2VzdCI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiLCJ0cnVzdGVkX2xpc3RfcmVmIjp7Imlzc3VlZCI6IjIwMjYtMDktMjQiLCJqdXJpc2RpY3Rpb24iOiJJVCIsInNlcXVlbmNlIjoyMjR9fSx7InByb3ZpZGVyX2lkIjoiY2VydHVtIiwicXVhbGlmaWVkX3N0YXR1cyI6Im5vdF9hc3Nlc3NlZCIsInN0YXR1cyI6Im5vdF9vYnRhaW5lZCIsInVuYXZhaWxhYmxlX3JlYXNvbiI6InRpbWVvdXQifV0sImdyYWRlIjoidHNhX3JmYzMxNjEiLCJxdW9ydW0iOnsiY29uZmlndXJlZCI6MiwibWV0IjoidHJ1ZSIsIm9idGFpbmVkIjoxLCJyZXF1aXJlZCI6MX19fQ==",
      "signature_hex": "a84eb0d498aa733878ee81f2bf1bec16033c2a11c24ad7b509770f962f820b4be07b5bca0a97e6f4aa65881da7d3e0ea1322f8ba66ef0711a6b1498f6e00370a",
      "valid": true,
      "receipt_sha256": "aa7cddce1c9d772648ef40e3ba62d660abb6e64ff94dbbe63993ad36b25cf659",
      "anchored_digest_sha256": "c313d7718e6940ccea81d7c5f9e0f8d3e231952dfa91ee31b27ae07f5da43125",
      "day_tree_leaf": "14cd7dce0e260659e38686593ee61a45f4fba84f38a66729362ca15cd4159503"
    },
    "altered": {
      "what": "byte 608 of the canonical bytes changed from \"0\" to \"1\"",
      "canonical_bytes_base64": "eyJhbGdvcml0aG0iOiJFZDI1NTE5IiwiYXR0ZXN0YXRpb25fYXV0aG9yaXR5IjoicGxhdGZvcm0iLCJhdHRlc3RhdGlvbl9zb3VyY2UiOiJzZWxmIiwiY2FwdHVyZV9tb2RlIjoib25saW5lIiwiY2FwdHVyZWRfYXQiOiIyMDI2LTEwLTEyVDIzOjU5OjAwLjAwMFoiLCJkZWNpZGVkX2F0IjoiMjAyNi0xMC0xM1QwMDowMDowMC4wMDBaIiwiZXZpZGVuY2VfcmVmcyI6W3siZXZpZGVuY2Vfa2luZCI6InNlYWwiLCJzYWx0ZWQiOiJ0cnVlIiwic2hhMjU2IjoiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYmJiYiJ9XSwiaHNfY29kZSI6IjA0MDkwMCIsImxvY2F0aW9uX2NsYXNzIjp7ImNvdW50cnkiOiJOWiIsImZhY2lsaXR5X3R5cGUiOiJhcGlhcnkiLCJyZWdpb24iOiJOWi1IS0IifSwibG90X3JlZiI6ImFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEiLCJtYW5kYXRlX3JlZl9zaGEyNTYiOiJkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkZGRkIiwib2NjdXJyZWRfYXQiOiIyMDI2LTExLTEyVDIxOjAwOjAwLjAwMFoiLCJwcm9kdWN0X2NsYXNzIjoiaG9uZXkiLCJyZWNlaXB0X2lkIjoiMGY4ZmFkNWItZDljYi00NjlmLWExNjUtNzA4Njc3Mjg5NTBlIiwicmVjZWlwdF9raW5kIjoicHJvdmVuYW5jZV9zdGVwIiwicmVjZWlwdF92ZXJzaW9uIjoxLCJzaWduZXJfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyNyZmM4MDMyLXRlc3QtMSIsInNpZ25pbmdfbW9kZWwiOiJ2aWxsYWdlX2N1c3RvZGllZCIsInN0ZXBfdHlwZSI6ImhhcnZlc3QiLCJ0ZW5hbnRfZGlkIjoiZGlkOmV4YW1wbGU6dmVjdG9ycyIsInRlbmFudF9zZXEiOjIsInRpbWVfYXR0ZXN0YXRpb24iOnsiYXV0aG9yaXRpZXMiOlt7InByb3ZpZGVyX2lkIjoiYXJ1YmEiLCJxdWFsaWZpZWRfc3RhdHVzIjoicXVhbGlmaWVkX3Blcl90cnVzdGVkX2xpc3QiLCJzdGF0dXMiOiJvYnRhaW5lZCIsInRva2VuX2RpZ2VzdCI6ImNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2MiLCJ0cnVzdGVkX2xpc3RfcmVmIjp7Imlzc3VlZCI6IjIwMjYtMDktMjQiLCJqdXJpc2RpY3Rpb24iOiJJVCIsInNlcXVlbmNlIjoyMjR9fSx7InByb3ZpZGVyX2lkIjoiY2VydHVtIiwicXVhbGlmaWVkX3N0YXR1cyI6Im5vdF9hc3Nlc3NlZCIsInN0YXR1cyI6Im5vdF9vYnRhaW5lZCIsInVuYXZhaWxhYmxlX3JlYXNvbiI6InRpbWVvdXQifV0sImdyYWRlIjoidHNhX3JmYzMxNjEiLCJxdW9ydW0iOnsiY29uZmlndXJlZCI6MiwibWV0IjoidHJ1ZSIsIm9idGFpbmVkIjoxLCJyZXF1aXJlZCI6MX19fQ==",
      "signature_hex": "a84eb0d498aa733878ee81f2bf1bec16033c2a11c24ad7b509770f962f820b4be07b5bca0a97e6f4aa65881da7d3e0ea1322f8ba66ef0711a6b1498f6e00370a",
      "valid": false
    }
  },
  "day_tree": {
    "rules": "leaf = SHA-256(0x00 || receipt hash, 32 bytes); node = SHA-256(0x01 || left || right); an odd node is promoted unchanged; one leaf: the root is that leaf; no leaves: SHA-256 of no bytes. A proof lists siblings from the leaf up; side \"L\" means the sibling is on the left.",
    "receipt_hashes": {
      "r1": "82f3e9c695dc6b8d1b11818d5701919e286de8d47f7c3eb3100c485f79e57828",
      "r2": "db77fd01af957221a4989b64b3770a83a3c56068405b9f0e9408feae57fd17e4",
      "r3": "e49d63b2a8a78f048bafc4b4590029603a5a4165ee8bf98af15d62f24cd83479",
      "r4": "a2ec8adac7fd24b4b7a8edd89d06990579f6123f5724a14b47ee4bddfb2ba572",
      "r5": "5eb242aeb68552862913d602cff36deb4cafc18a46cfdea393b4bc1c6917a669"
    },
    "receipt_hash_note": "Each receipt hash here is SHA-256 of its ASCII label, standing in for SHA-256(canonical bytes || 0x00 || signature).",
    "empty_root": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
    "roots": {
      "1": "5fde6f5175bccef0df52963cade9449bf79ea12b107cccd868db89c34b57af38",
      "2": "f1195c3de19e6a6132d9b945d9a31b7d296e5b268bf828e9a7400d933fe3fd1f",
      "3": "f2b7f732d73d2612950460bb39f98e9140c33b9cc35269f607b52ed906b4be1b",
      "5": "bf8a19f45c5d2616e31431997bb34b49204e3d7bcbc8ee703b724ac17198c34c"
    },
    "proofs_of_five": [
      {
        "index": 0,
        "receipt_sha256": "82f3e9c695dc6b8d1b11818d5701919e286de8d47f7c3eb3100c485f79e57828",
        "proof": [
          {
            "hash": "e86673d599563453c8d9c9e0a240911141b643460b7a4ca6b79169e95d826ec7",
            "side": "R"
          },
          {
            "hash": "f06b11c811cb5dab7f4becc4bc2380a27fbce3287e3619388c839d904a128570",
            "side": "R"
          },
          {
            "hash": "75fdfe9707538b4835b1ce72b7ac265d16867072714135cfccff0b9b441af860",
            "side": "R"
          }
        ]
      },
      {
        "index": 1,
        "receipt_sha256": "db77fd01af957221a4989b64b3770a83a3c56068405b9f0e9408feae57fd17e4",
        "proof": [
          {
            "hash": "5fde6f5175bccef0df52963cade9449bf79ea12b107cccd868db89c34b57af38",
            "side": "L"
          },
          {
            "hash": "f06b11c811cb5dab7f4becc4bc2380a27fbce3287e3619388c839d904a128570",
            "side": "R"
          },
          {
            "hash": "75fdfe9707538b4835b1ce72b7ac265d16867072714135cfccff0b9b441af860",
            "side": "R"
          }
        ]
      },
      {
        "index": 2,
        "receipt_sha256": "e49d63b2a8a78f048bafc4b4590029603a5a4165ee8bf98af15d62f24cd83479",
        "proof": [
          {
            "hash": "59a54252f85f191460d84cd2a1d9760070f12e214b0b6520e454971ac3a337ff",
            "side": "R"
          },
          {
            "hash": "f1195c3de19e6a6132d9b945d9a31b7d296e5b268bf828e9a7400d933fe3fd1f",
            "side": "L"
          },
          {
            "hash": "75fdfe9707538b4835b1ce72b7ac265d16867072714135cfccff0b9b441af860",
            "side": "R"
          }
        ]
      },
      {
        "index": 3,
        "receipt_sha256": "a2ec8adac7fd24b4b7a8edd89d06990579f6123f5724a14b47ee4bddfb2ba572",
        "proof": [
          {
            "hash": "139f2c121c66d38baa6980b0e105e06238661a5b440b440770ed17c15591bc02",
            "side": "L"
          },
          {
            "hash": "f1195c3de19e6a6132d9b945d9a31b7d296e5b268bf828e9a7400d933fe3fd1f",
            "side": "L"
          },
          {
            "hash": "75fdfe9707538b4835b1ce72b7ac265d16867072714135cfccff0b9b441af860",
            "side": "R"
          }
        ]
      },
      {
        "index": 4,
        "receipt_sha256": "5eb242aeb68552862913d602cff36deb4cafc18a46cfdea393b4bc1c6917a669",
        "proof": [
          {
            "hash": "d4fad049a68ed286df69e4ca557d22a206a2c266713bb28ad5b92dfd2b7a20a3",
            "side": "L"
          }
        ]
      }
    ]
  },
  "party_leaf": {
    "text": "provenance:party_records:v1",
    "lot_ref": "1e9111626cca531d5772865a9c298c94b521d33ea632e281e2f41b596d4ab814",
    "rule": "Every sequenced record that is not a step, a handover, an attestation, an erasure record or a disclosure record (a mandate, key event, authority confirmation, and any party kind added later) is committed in its day root's lot tree under this reserved lot reference; a dossier always shows these records; no lot may use it. An attestation is committed under the lot it speaks about (its own lot_ref)."
  },
  "party_omittable_leaf": {
    "text": "provenance:party_omittable_records:v1",
    "lot_ref": "316f1a126fb367fd21d30a6b3529c29361885d3fc60902e5de2c2dec7aae1876",
    "kinds": [
      "provenance_erasure_event",
      "provenance_disclosure_event"
    ],
    "rule": "Erasure and disclosure records, and only they (an explicit list), are committed under this second reserved lot reference; a dossier may leave them out, and then labels the segment a selection; no lot may use it. Every included day root carries an entry or an absence proof for both reserved references."
  },
  "evidence_strength": {
    "source": "Copied from the vectors pinned in the platform's tests, printed by a separate generator that uses none of the project's code.",
    "labels": [
      {
        "name": "self_village",
        "input": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2026-11-03T00:00:00.000Z",
            "valid_until": "2027-11-03T00:00:00.000Z"
          }
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 3 November 2026, valid to 2 November 2027.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 3 November 2026, valid to 2 November 2027."
        }
      },
      {
        "name": "device_village_midday",
        "input": {
          "attestation_source": "device",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2026-10-13T21:05:09.123Z",
            "valid_until": "2027-10-13T21:05:09.123Z"
          }
        },
        "expected": {
          "attestation_source": "device",
          "signing_model": "village_custodied",
          "source_text": "Taken from an instrument file (a weighbridge ticket or a sensor log) that the party fingerprinted and supplied. The page checks the fingerprint, not the instrument.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 13 October 2026, valid to 13 October 2027.",
          "text": "Source: Taken from an instrument file (a weighbridge ticket or a sensor log) that the party fingerprinted and supplied. The page checks the fingerprint, not the instrument. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 13 October 2026, valid to 13 October 2027."
        }
      },
      {
        "name": "third_party_village_leap",
        "input": {
          "attestation_source": "third_party",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2028-02-29T00:00:00.000Z",
            "valid_until": "2029-03-01T00:00:00.000Z"
          }
        },
        "expected": {
          "attestation_source": "third_party",
          "signing_model": "village_custodied",
          "source_text": "Recorded by another party on the platform (a different organisation's DID), about a lot that party does not hold here.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 29 February 2028, valid to 28 February 2029.",
          "text": "Source: Recorded by another party on the platform (a different organisation's DID), about a lot that party does not hold here. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 29 February 2028, valid to 28 February 2029."
        }
      },
      {
        "name": "self_village_unknown_mandate",
        "input": {
          "attestation_source": "self",
          "signing_model": "village_custodied"
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation that is not shown here.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed with the organisation's key, held by its Village under a standing authorisation that is not shown here."
        }
      },
      {
        "name": "self_hybrid_2_of_3",
        "input": {
          "attestation_source": "self",
          "signing_model": "threshold_hybrid",
          "threshold": {
            "min": 2,
            "max": 3
          }
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "threshold_hybrid",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed jointly: the signature needs 2 of 3 key holders, one of them the Village. Neither the organisation nor the Village can sign alone.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed jointly: the signature needs 2 of 3 key holders, one of them the Village. Neither the organisation nor the Village can sign alone."
        }
      },
      {
        "name": "device_hybrid_unknown",
        "input": {
          "attestation_source": "device",
          "signing_model": "threshold_hybrid"
        },
        "expected": {
          "attestation_source": "device",
          "signing_model": "threshold_hybrid",
          "source_text": "Taken from an instrument file (a weighbridge ticket or a sensor log) that the party fingerprinted and supplied. The page checks the fingerprint, not the instrument.",
          "signing_text": "Signed jointly: the signature needs more than one key holder, one of them the Village. Neither the organisation nor the Village can sign alone.",
          "text": "Source: Taken from an instrument file (a weighbridge ticket or a sensor log) that the party fingerprinted and supplied. The page checks the fingerprint, not the instrument. Signing: Signed jointly: the signature needs more than one key holder, one of them the Village. Neither the organisation nor the Village can sign alone."
        }
      },
      {
        "name": "third_party_participant",
        "input": {
          "attestation_source": "third_party",
          "signing_model": "participant_held"
        },
        "expected": {
          "attestation_source": "third_party",
          "signing_model": "participant_held",
          "source_text": "Recorded by another party on the platform (a different organisation's DID), about a lot that party does not hold here.",
          "signing_text": "Signed with key shares held by the organisation's own custodians. The Village holds no share.",
          "text": "Source: Recorded by another party on the platform (a different organisation's DID), about a lot that party does not hold here. Signing: Signed with key shares held by the organisation's own custodians. The Village holds no share."
        }
      },
      {
        "name": "handover_no_source_participant",
        "input": {
          "signing_model": "participant_held"
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "participant_held",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed with key shares held by the organisation's own custodians. The Village holds no share.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed with key shares held by the organisation's own custodians. The Village holds no share."
        }
      },
      {
        "name": "self_village_new_year",
        "input": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2026-01-01T00:00:00.000Z",
            "valid_until": "2027-01-01T00:00:00.000Z"
          }
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 1 January 2026, valid to 31 December 2026.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 1 January 2026, valid to 31 December 2026."
        }
      },
      {
        "name": "self_village_future_start",
        "input": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2026-10-13T08:00:00.000Z",
            "valid_until": "2027-11-01T00:00:00.000Z"
          }
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 13 October 2026, valid to 31 October 2027.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 13 October 2026, valid to 31 October 2027."
        }
      },
      {
        "name": "device_village_ended_early",
        "input": {
          "attestation_source": "device",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2026-11-03T00:00:00.000Z",
            "valid_until": "2027-11-03T00:00:00.000Z",
            "ended_at": "2027-02-14T09:30:00.000Z"
          }
        },
        "expected": {
          "attestation_source": "device",
          "signing_model": "village_custodied",
          "source_text": "Taken from an instrument file (a weighbridge ticket or a sensor log) that the party fingerprinted and supplied. The page checks the fingerprint, not the instrument.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 3 November 2026, valid to 2 November 2027, ended early on 14 February 2027.",
          "text": "Source: Taken from an instrument file (a weighbridge ticket or a sensor log) that the party fingerprinted and supplied. The page checks the fingerprint, not the instrument. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 3 November 2026, valid to 2 November 2027, ended early on 14 February 2027."
        }
      },
      {
        "name": "self_village_end_not_early",
        "input": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "mandate": {
            "granted_at": "2026-11-03T00:00:00.000Z",
            "valid_until": "2027-11-03T00:00:00.000Z",
            "ended_at": "2027-11-03T00:00:00.000Z"
          }
        },
        "expected": {
          "attestation_source": "self",
          "signing_model": "village_custodied",
          "source_text": "Stated by the party that made the record, about its own activity.",
          "signing_text": "Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 3 November 2026, valid to 2 November 2027.",
          "text": "Source: Stated by the party that made the record, about its own activity. Signing: Signed with the organisation's key, held by its Village under a standing authorisation its owner gave on 3 November 2026, valid to 2 November 2027."
        }
      }
    ],
    "corroboration": [
      {
        "name": "two_holders_do_not_corroborate",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "pack"
              }
            },
            {
              "receipt_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:packer",
                "step_type": "transport_leg"
              }
            }
          ]
        },
        "expected": {
          "handling": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:grower",
              "did:example:packer"
            ]
          }
        }
      },
      {
        "name": "attestation_corroborates",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:certifier",
                "point": "origin",
                "outcome": "observed"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "corroborated",
            "text": "Another party on the platform, which did not hold the lot here, recorded an attestation about this point.",
            "parties": [
              "did:example:certifier",
              "did:example:grower"
            ]
          }
        }
      },
      {
        "name": "failed_attestation_contests",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:certifier",
                "point": "origin",
                "outcome": "pass"
              }
            },
            {
              "receipt_sha256": "3333333333333333333333333333333333333333333333333333333333333333",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:packer",
                "point": "origin",
                "outcome": "fail"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "contested",
            "text": "Another party on the platform, which did not hold the lot here, recorded an attestation that this point failed.",
            "parties": [
              "did:example:certifier",
              "did:example:grower",
              "did:example:packer"
            ]
          }
        }
      },
      {
        "name": "supersession_only_by_its_own_party",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "openedCommitments": [
            "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
          ],
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest",
                "quantity_commitment_sha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
              }
            },
            {
              "receipt_sha256": "4444444444444444444444444444444444444444444444444444444444444444",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:packer",
                "step_type": "pack",
                "supersedes_receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:grower"
            ]
          },
          "handling": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:packer"
            ]
          },
          "quantity": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:grower"
            ]
          }
        }
      },
      {
        "name": "own_correction_removes_the_step",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "openedCommitments": [
            "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
          ],
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest",
                "quantity_commitment_sha256": "cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
              }
            },
            {
              "receipt_sha256": "5555555555555555555555555555555555555555555555555555555555555555",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest",
                "supersedes_receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:grower"
            ]
          }
        }
      }
    ],
    "lot_corroboration": [
      {
        "name": "holder_attesting_its_own_lot_does_not_corroborate",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:grower",
                "point": "origin",
                "outcome": "pass"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:grower"
            ]
          }
        }
      },
      {
        "name": "later_holder_attesting_does_not_corroborate",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_handover",
                "tenant_did": "did:example:packer",
                "handover_role": "receiver",
                "handover_status": "accepted"
              }
            },
            {
              "receipt_sha256": "3333333333333333333333333333333333333333333333333333333333333333",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:packer",
                "point": "origin",
                "outcome": "pass"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "uncorroborated",
            "text": "Only the records of the parties that held the lot speak to this; no other party on the platform has recorded an attestation about it.",
            "parties": [
              "did:example:grower"
            ]
          }
        }
      },
      {
        "name": "holder_failing_its_own_lot_does_not_contest",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "2222222222222222222222222222222222222222222222222222222222222222",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:grower",
                "point": "origin",
                "outcome": "fail"
              }
            },
            {
              "receipt_sha256": "3333333333333333333333333333333333333333333333333333333333333333",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:certifier",
                "point": "origin",
                "outcome": "pass"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "corroborated",
            "text": "Another party on the platform, which did not hold the lot here, recorded an attestation about this point.",
            "parties": [
              "did:example:certifier",
              "did:example:grower"
            ]
          }
        }
      },
      {
        "name": "holding_another_lot_does_not_make_a_holder",
        "input": {
          "lotRef": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "rows": [
            {
              "receipt_sha256": "1111111111111111111111111111111111111111111111111111111111111111",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:grower",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "4444444444444444444444444444444444444444444444444444444444444444",
              "record": {
                "lot_ref": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
                "receipt_kind": "provenance_step",
                "tenant_did": "did:example:certifier",
                "step_type": "harvest"
              }
            },
            {
              "receipt_sha256": "5555555555555555555555555555555555555555555555555555555555555555",
              "record": {
                "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                "receipt_kind": "provenance_attestation",
                "attestation_source": "third_party",
                "tenant_did": "did:example:certifier",
                "point": "origin",
                "outcome": "pass"
              }
            }
          ]
        },
        "expected": {
          "origin": {
            "level": "corroborated",
            "text": "Another party on the platform, which did not hold the lot here, recorded an attestation about this point.",
            "parties": [
              "did:example:certifier",
              "did:example:grower"
            ]
          }
        }
      }
    ],
    "lot_corroboration_note": "The corroboration a reader is shown: the lot holders' own attestations are left out first, so a holder never corroborates its own lot. The platform reference function is evidenceStrength.corroborationOfLot; the checker applies the same rule inside its result."
  },
  "lot": {
    "commitment": {
      "rules": "sortkey = SHA-256(0x03 || lot_ref, 32 bytes || date, 10 ASCII bytes); inner = SHA-256(0x04 || count, uint32 big-endian || lot_subroot, 32 bytes); leaf = SHA-256(0x02 || sortkey || inner); lot_subroot = the day-tree root over the lot's receipt hashes in tenant_seq order; the lot tree orders leaves by sortkey bytes and combines them with node = SHA-256(0x01 || left || right), an odd node promoted; no lots: 64 zeros.",
      "source": "Copied from the vectors computed for the platform by a separate script with no project code, and recomputed by the script that wrote this file.",
      "date": "2026-10-12",
      "rows": [
        {
          "tenant_seq": 1,
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "receipt_sha256": "f55ff16f66f43360266b95db6f8fec01d76031054306ae4a4b380598f6cfd114"
        },
        {
          "tenant_seq": 2,
          "lot_ref": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
          "receipt_sha256": "7dc96f776c8423e57a2785489a3f9c43fb6e756876d6ad9a9cac4aa4e72ec193"
        },
        {
          "tenant_seq": 3,
          "lot_ref": "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
          "receipt_sha256": "d0f631ca1ddba8db3bcfcb9e057cdc98d0379f1bee00e75a545147a27dadd982"
        },
        {
          "tenant_seq": 4,
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "receipt_sha256": "2c3a4249d77070058649dbd822dcaf7957586fce428cfb2ca88b94741eda8b07"
        },
        {
          "tenant_seq": 5,
          "lot_ref": "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
          "receipt_sha256": "9c0abe51c6e6655d81de2d044d4fb194931f058c0426c67c7285d8f5657ed64a"
        },
        {
          "tenant_seq": 6,
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "receipt_sha256": "f46dd28a5499d8efef0b8fb8ee1ec1c5a5e407c9381741d576ba8deb4f59ec3f"
        }
      ],
      "lots": {
        "A": {
          "lot_ref": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "count": 3,
          "receipt_hashes": [
            "f55ff16f66f43360266b95db6f8fec01d76031054306ae4a4b380598f6cfd114",
            "2c3a4249d77070058649dbd822dcaf7957586fce428cfb2ca88b94741eda8b07",
            "f46dd28a5499d8efef0b8fb8ee1ec1c5a5e407c9381741d576ba8deb4f59ec3f"
          ],
          "lot_subroot": "a4efacd25279d7592d962b3d39810f2d48542422269a85bd66c6a0f09a774e75",
          "sortkey": "b6c2ccb91eee14ff4c0969d0a823d87b37f0d07c394a163af8a9c63ec9929971",
          "inner": "c9cb5bf80027ac4723c25711a8c066fe271f48a04f9c80c4dbf3168349240cbf",
          "leaf": "59b8d7d375bf099bc32a2ec979fd5525fc15175656c687c56b84f581caf12efb"
        },
        "B": {
          "lot_ref": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
          "count": 1,
          "receipt_hashes": [
            "7dc96f776c8423e57a2785489a3f9c43fb6e756876d6ad9a9cac4aa4e72ec193"
          ],
          "lot_subroot": "210a4604e4a4056b43276a2d336f5aa2d42425c38d4afcaf1a928fe2b1090c17",
          "sortkey": "b51d6b5f07c14a6a8583accd190411693ce581e05157f3bc95e1245adcfed981",
          "inner": "e4e368191e4587f218ceb9563914c385212576a7c2bb4a6f537ff83d6451ff4d",
          "leaf": "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35"
        },
        "C": {
          "lot_ref": "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c",
          "count": 2,
          "receipt_hashes": [
            "d0f631ca1ddba8db3bcfcb9e057cdc98d0379f1bee00e75a545147a27dadd982",
            "9c0abe51c6e6655d81de2d044d4fb194931f058c0426c67c7285d8f5657ed64a"
          ],
          "lot_subroot": "8e712e4578db67ec27119a3e94cd1c689017977bc246caa12a9bfe6a6315688a",
          "sortkey": "be63714276bb260890aacad1df3eb8d3a15180170b9bf413d8b9c81f79fabcbb",
          "inner": "687caa9600e965d7ce9b257c4250952b7f67e56be2e769c0e86f17afcea60819",
          "leaf": "2d5c8bc3f7a26a05c38b0b0bb76d8db870815043610c15792156bcf43100cbe6"
        }
      },
      "three_lot_tree": {
        "order": [
          "B",
          "A",
          "C"
        ],
        "leaves": 3,
        "root": "0f5ab84ace82c30c100c9d194d9ec66306f93606e9d220366c3b596fca237504",
        "proofs": {
          "B": [
            {
              "hash": "59b8d7d375bf099bc32a2ec979fd5525fc15175656c687c56b84f581caf12efb",
              "side": "R"
            },
            {
              "hash": "2d5c8bc3f7a26a05c38b0b0bb76d8db870815043610c15792156bcf43100cbe6",
              "side": "R"
            }
          ],
          "A": [
            {
              "hash": "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35",
              "side": "L"
            },
            {
              "hash": "2d5c8bc3f7a26a05c38b0b0bb76d8db870815043610c15792156bcf43100cbe6",
              "side": "R"
            }
          ],
          "C": [
            {
              "hash": "3d4dbac9e255e3c0396e70f3d08a0ad687be05d5ad6ea7fd274f83ebd66e1253",
              "side": "L"
            }
          ]
        },
        "index": {
          "B": 0,
          "A": 1,
          "C": 2
        }
      },
      "two_lot_tree": {
        "order": [
          "B",
          "A"
        ],
        "leaves": 2,
        "root": "3d4dbac9e255e3c0396e70f3d08a0ad687be05d5ad6ea7fd274f83ebd66e1253",
        "proofs": {
          "B": [
            {
              "hash": "59b8d7d375bf099bc32a2ec979fd5525fc15175656c687c56b84f581caf12efb",
              "side": "R"
            }
          ],
          "A": [
            {
              "hash": "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35",
              "side": "L"
            }
          ]
        }
      },
      "one_lot_tree": {
        "order": [
          "B"
        ],
        "leaves": 1,
        "root": "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35",
        "proofs": {
          "B": []
        }
      },
      "empty_tree": {
        "leaves": 0,
        "root": "0000000000000000000000000000000000000000000000000000000000000000"
      },
      "sortkey_of_A_on_2026_10_13": "cc986fcf1e62253ff866c4fd14be0c0d197a1feaa255d9c06cf7cfcf37062725",
      "inner_of_A_at_count_4294967295": "ca425fbb78458ff0c03554c30cce94cfef17c633b5a2cae368f3237ae960342c",
      "path_sides": {
        "1": [
          ""
        ],
        "2": [
          "R",
          "L"
        ],
        "3": [
          "R R",
          "L R",
          "L"
        ],
        "4": [
          "R R",
          "L R",
          "R L",
          "L L"
        ],
        "5": [
          "R R R",
          "L R R",
          "R L R",
          "L L R",
          "L"
        ]
      },
      "forged_two_leaves_for_one_lot": {
        "order": [
          "B",
          "A1",
          "A23"
        ],
        "subA1": "b0803b447bfdac73f0100d2439fe18c088e4175d7c63d2243cbb96c8a554d4b3",
        "subA23": "19845f7f5af5d4f9f3eb86cfc78652626d7d3838d24fe72421c756ca267a69db",
        "innerA1": "05483669d31f8f85c03ce3850189a8a3bb7709c25641f596260ea226a17f6762",
        "innerA23": "790460ad8ed0b8bdb76b85f38d0fd04fab255d830ecda6a378de78f8b93586e6",
        "leaves": [
          "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35",
          "98cb811020a0a08f5d4fb530bbc6769643de4cd0b072ed299869a42ee95f58bc",
          "f9c70aa2137219720a42522fc480c22d9965d4a0a7334c7e0810545dbd7d9016"
        ],
        "root": "f17c8d5ba899f9114c36df5048cf5c218b3524eba33a64c8cc07beb175c5e421",
        "proofs": [
          [
            {
              "hash": "98cb811020a0a08f5d4fb530bbc6769643de4cd0b072ed299869a42ee95f58bc",
              "side": "R"
            },
            {
              "hash": "f9c70aa2137219720a42522fc480c22d9965d4a0a7334c7e0810545dbd7d9016",
              "side": "R"
            }
          ],
          [
            {
              "hash": "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35",
              "side": "L"
            },
            {
              "hash": "f9c70aa2137219720a42522fc480c22d9965d4a0a7334c7e0810545dbd7d9016",
              "side": "R"
            }
          ],
          [
            {
              "hash": "ad520c812610f7901904ff39ca5e6a98e12a4c654637c0088455ae39da4c5105",
              "side": "L"
            }
          ]
        ]
      }
    },
    "absence": {
      "rules": "An absence names the two adjacent leaves (or one, at an end) whose sortkeys bracket the lot's sortkey strictly; each walks to the signed lot root with the flags of its index; next_index = previous_index + 1. An empty tree (0 leaves, the zero root) has neither neighbour.",
      "date": "2026-10-12",
      "root": "0f5ab84ace82c30c100c9d194d9ec66306f93606e9d220366c3b596fca237504",
      "leaves": 3,
      "neighbours_in_order": [
        {
          "sortkey": "b51d6b5f07c14a6a8583accd190411693ce581e05157f3bc95e1245adcfed981",
          "inner": "e4e368191e4587f218ceb9563914c385212576a7c2bb4a6f537ff83d6451ff4d",
          "proof": [
            {
              "hash": "59b8d7d375bf099bc32a2ec979fd5525fc15175656c687c56b84f581caf12efb",
              "side": "R"
            },
            {
              "hash": "2d5c8bc3f7a26a05c38b0b0bb76d8db870815043610c15792156bcf43100cbe6",
              "side": "R"
            }
          ]
        },
        {
          "sortkey": "b6c2ccb91eee14ff4c0969d0a823d87b37f0d07c394a163af8a9c63ec9929971",
          "inner": "c9cb5bf80027ac4723c25711a8c066fe271f48a04f9c80c4dbf3168349240cbf",
          "proof": [
            {
              "hash": "928d18114d29f76a882455e0556ae55bbdefd4158c1f52f8a18eae760df94f35",
              "side": "L"
            },
            {
              "hash": "2d5c8bc3f7a26a05c38b0b0bb76d8db870815043610c15792156bcf43100cbe6",
              "side": "R"
            }
          ]
        },
        {
          "sortkey": "be63714276bb260890aacad1df3eb8d3a15180170b9bf413d8b9c81f79fabcbb",
          "inner": "687caa9600e965d7ce9b257c4250952b7f67e56be2e769c0e86f17afcea60819",
          "proof": [
            {
              "hash": "3d4dbac9e255e3c0396e70f3d08a0ad687be05d5ad6ea7fd274f83ebd66e1253",
              "side": "L"
            }
          ]
        }
      ],
      "absent": [
        {
          "gap": 0,
          "lot": "75c2b5efd4e8ef0ac78cafe251bc10f59432d3febb50d89664babd3e8e4e4256",
          "sortkey": "0b448d4cb881562e5bc722acbc784432db769166babcf5efd2cc8f628a8946ed",
          "previous_index": null,
          "next_index": 0
        },
        {
          "gap": 1,
          "lot": "56beb707c8fac201a9d764a3a645e5f4f6124581fbd0e8b271c7fb23b93a39f3",
          "sortkey": "b65ec22ae66a92df873bace0141629ccd76a1fde882274c13e39ddb1cd984437",
          "previous_index": 0,
          "next_index": 1
        },
        {
          "gap": 2,
          "lot": "ef4599e737297eedb52f66048ec7d47c114ec31598830c1fbecf629b1affcef4",
          "sortkey": "bb61d48f457e8b6f0ccc913b3f40bd7504c33e5cf2a50caff6e1b7e5896e673b",
          "previous_index": 1,
          "next_index": 2
        },
        {
          "gap": 3,
          "lot": "0d5cf039f755869a28fa1c28bdad7832b7813a670fa626478c36fc4b68279389",
          "sortkey": "d94c47716393125f36a169edef7c68f07cbf9986ea0369eaf5071b5a69cec275",
          "previous_index": 2,
          "next_index": null
        }
      ],
      "present": {
        "A": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "B": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
        "C": "0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c"
      }
    }
  }
}
