{
  "description": "OptProof ledger test vectors (spec: docs/verification/spec.md). The seeds are public test keys derived from fixed strings: never trust them in production.",
  "canonical_json": [
    {
      "name": "key order",
      "input": {
        "b": 1,
        "a": 2,
        "A": 3,
        "_": 4,
        "aa": 5
      },
      "canonical": "{\"A\":3,\"_\":4,\"a\":2,\"aa\":5,\"b\":1}",
      "utf8_hex": "7b2241223a332c225f223a342c2261223a322c226161223a352c2262223a317d"
    },
    {
      "name": "nested objects and arrays",
      "input": {
        "z": [
          3,
          1,
          {
            "y": null,
            "x": true
          }
        ],
        "a": {
          "d": [],
          "c": {}
        }
      },
      "canonical": "{\"a\":{\"c\":{},\"d\":[]},\"z\":[3,1,{\"x\":true,\"y\":null}]}",
      "utf8_hex": "7b2261223a7b2263223a7b7d2c2264223a5b5d7d2c227a223a5b332c312c7b2278223a747275652c2279223a6e756c6c7d5d7d"
    },
    {
      "name": "escapes",
      "input": {
        "s": "quote \" backslash \\ slash / newline \n tab \t nul \u0000 unit-sep \u001f del "
      },
      "canonical": "{\"s\":\"quote \\\" backslash \\\\ slash / newline \\n tab \\t nul \\u0000 unit-sep \\u001f del \"}",
      "utf8_hex": "7b2273223a2271756f7465205c22206261636b736c617368205c5c20736c617368202f206e65776c696e65205c6e20746162205c74206e756c205c753030303020756e69742d736570205c75303031662064656c207f227d"
    },
    {
      "name": "non-ascii",
      "input": {
        "hi": "सहमति",
        "emoji": "✓ 😀",
        "é": "e-acute key"
      },
      "canonical": "{\"emoji\":\"✓ 😀\",\"hi\":\"सहमति\",\"é\":\"e-acute key\"}",
      "utf8_hex": "7b22656d6f6a69223a22e29c9320f09f9880222c226869223a22e0a4b8e0a4b9e0a4aee0a4a4e0a4bf222c22c3a9223a22652d6163757465206b6579227d"
    },
    {
      "name": "utf-16 code unit key order (U+1F600 sorts before U+FF61)",
      "input": {
        "｡": 1,
        "😀": 2,
        "z": 3
      },
      "canonical": "{\"z\":3,\"😀\":2,\"｡\":1}",
      "utf8_hex": "7b227a223a332c22f09f9880223a322c22efbda1223a317d"
    },
    {
      "name": "integers",
      "input": {
        "zero": 0,
        "neg": -42,
        "max": 9007199254740991
      },
      "canonical": "{\"max\":9007199254740991,\"neg\":-42,\"zero\":0}",
      "utf8_hex": "7b226d6178223a393030373139393235343734303939312c226e6567223a2d34322c227a65726f223a307d"
    }
  ],
  "keys": [
    {
      "kid": "opk_2026_10_testvec1",
      "seed_base64": "qFYe0wJoN8G/9xjCRU6N9feR1KgYP5qqixxdIl9xg5g=",
      "public_key_hex": "981d2e75764af301856e26f46ba6eac54b305922cb829dede145b73ce51c29b6",
      "status": "active"
    },
    {
      "kid": "opk_2025_10_testvec0",
      "seed_base64": "J92wMVadkIOr/EWCO9FueFJrbOGv9l/2UzHZTfj7nKY=",
      "public_key_hex": "ae5ea7401d9972118c9594a6b202571a73b4ea1c50ecbdd283775386c241e831",
      "status": "retired"
    }
  ],
  "jwks": {
    "keys": [
      {
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "mB0udXZK8wGFbib0a6bqxUswWSLLgp3t4UW3POUcKbY",
        "kid": "opk_2026_10_testvec1",
        "use": "sig",
        "alg": "EdDSA",
        "status": "active",
        "created_at": "2026-10-01T00:00:00.000Z",
        "retired_at": null
      },
      {
        "kty": "OKP",
        "crv": "Ed25519",
        "x": "rl6nQB2ZchGMlZSmsgJXGnO06hxQ7L3Sg3dThsJB6DE",
        "kid": "opk_2025_10_testvec0",
        "use": "sig",
        "alg": "EdDSA",
        "status": "retired",
        "created_at": "2025-10-01T00:00:00.000Z",
        "retired_at": "2026-10-01T00:00:00.000Z"
      }
    ]
  },
  "genesis_hash": "0000000000000000000000000000000000000000000000000000000000000000",
  "events": [
    {
      "event": {
        "id": "evt_01JBTT8000E008000000000081",
        "tenant_id": "ten_01JBTT8000E008000000000001",
        "property_id": "prp_01JBTT8000E008000000000002",
        "seq": "1",
        "principal_ref": null,
        "device_ref": "6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b",
        "action": "grant",
        "purpose_keys": [
          "analytics",
          "marketing"
        ],
        "notice_id": "ntc_01JBTT8000E008000000000003",
        "notice_version": 3,
        "language": "en",
        "channel": "web",
        "context": {
          "ui_variant": "default",
          "page_url": "https://example.in/signup?ref=a&b=1",
          "choices": {
            "analytics": true,
            "marketing": true,
            "whatsapp_updates": false
          },
          "ua_hash": "1066b48224bb188ceb955605f4fcff98",
          "ip_prefix": "203.0.113.0/24"
        },
        "occurred_at": "2026-09-25T09:15:30.123Z",
        "recorded_at": "2026-09-25T09:15:30.456Z",
        "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
        "is_test": false
      },
      "canonical": "{\"action\":\"grant\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ip_prefix\":\"203.0.113.0/24\",\"page_url\":\"https://example.in/signup?ref=a&b=1\",\"ua_hash\":\"1066b48224bb188ceb955605f4fcff98\",\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000081\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"analytics\",\"marketing\"],\"recorded_at\":\"2026-09-25T09:15:30.456Z\",\"seq\":\"1\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}",
      "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
      "hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793"
    },
    {
      "event": {
        "id": "evt_01JBTT8000E008000000000082",
        "tenant_id": "ten_01JBTT8000E008000000000001",
        "property_id": "prp_01JBTT8000E008000000000002",
        "seq": "2",
        "principal_ref": null,
        "device_ref": "6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b",
        "action": "deny",
        "purpose_keys": [
          "whatsapp_updates"
        ],
        "notice_id": "ntc_01JBTT8000E008000000000003",
        "notice_version": 3,
        "language": "en",
        "channel": "web",
        "context": {
          "ui_variant": "default",
          "choices": {
            "analytics": true,
            "marketing": true,
            "whatsapp_updates": false
          }
        },
        "occurred_at": "2026-09-25T09:15:30.123Z",
        "recorded_at": "2026-09-25T09:15:30.457Z",
        "prev_hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
        "is_test": false
      },
      "canonical": "{\"action\":\"deny\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000082\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"whatsapp_updates\"],\"recorded_at\":\"2026-09-25T09:15:30.457Z\",\"seq\":\"2\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}",
      "prev_hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
      "hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb"
    },
    {
      "event": {
        "id": "evt_01JBTT8000E008000000000083",
        "tenant_id": "ten_01JBTT8000E008000000000001",
        "property_id": "prp_01JBTT8000E008000000000002",
        "seq": "3",
        "principal_ref": "b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9",
        "device_ref": null,
        "action": "grant",
        "purpose_keys": [
          "appointment_reminders"
        ],
        "notice_id": "ntc_01JBTT8000E008000000000003",
        "notice_version": 3,
        "language": "hi",
        "channel": "kiosk",
        "context": {
          "location_id": "loc_reception_1",
          "staff_id": "staff-7",
          "note": "सहमति दी गई — \"✓\"\nline 2"
        },
        "occurred_at": "2026-10-25T12:50:00.000Z",
        "recorded_at": "2026-10-25T12:50:01.000Z",
        "prev_hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
        "is_test": false
      },
      "canonical": "{\"action\":\"grant\",\"channel\":\"kiosk\",\"context\":{\"location_id\":\"loc_reception_1\",\"note\":\"सहमति दी गई — \\\"✓\\\"\\nline 2\",\"staff_id\":\"staff-7\"},\"device_ref\":null,\"id\":\"evt_01JBTT8000E008000000000083\",\"is_test\":false,\"language\":\"hi\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-25T12:50:00.000Z\",\"prev_hash\":\"82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"appointment_reminders\"],\"recorded_at\":\"2026-10-25T12:50:01.000Z\",\"seq\":\"3\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}",
      "prev_hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
      "hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512"
    },
    {
      "event": {
        "id": "evt_01JBTT8000E008000000000084",
        "tenant_id": "ten_01JBTT8000E008000000000001",
        "property_id": "prp_01JBTT8000E008000000000002",
        "seq": "4",
        "principal_ref": "b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9",
        "device_ref": "6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b",
        "action": "withdraw",
        "purpose_keys": [
          "marketing"
        ],
        "notice_id": "ntc_01JBTT8000E008000000000003",
        "notice_version": 3,
        "language": "en",
        "channel": "portal",
        "context": {},
        "occurred_at": "2026-10-26T04:00:00.000Z",
        "recorded_at": "2026-10-26T04:00:00.250Z",
        "prev_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
        "is_test": false
      },
      "canonical": "{\"action\":\"withdraw\",\"channel\":\"portal\",\"context\":{},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000084\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-26T04:00:00.000Z\",\"prev_hash\":\"9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"marketing\"],\"recorded_at\":\"2026-10-26T04:00:00.250Z\",\"seq\":\"4\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}",
      "prev_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
      "hash": "00c54f77a49a52d83d72709bb3a3f4f1bd50ba4c8070d0af3b79d511ddeef4ca"
    }
  ],
  "receipts": [
    {
      "kid": "opk_2025_10_testvec0",
      "payload": {
        "rc": "OP-7K3M-9Q2X",
        "evt": "evt_01JBTT8000E008000000000081",
        "prp": "prp_01JBTT8000E008000000000002",
        "seq": "1",
        "h": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
        "act": "grant",
        "pur": [
          "analytics",
          "marketing"
        ],
        "nv": 3,
        "lang": "en",
        "ch": "web",
        "ts": "2026-09-25T09:15:30.123Z"
      },
      "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI1XzEwX3Rlc3R2ZWMwIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJncmFudCIsImNoIjoid2ViIiwiZXZ0IjoiZXZ0XzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDgxIiwiaCI6IjY5YjBmNzM0ZTE3MTY0MzQ3YWY3MTI1ODIxZGE0ZmJlZDU5Zjc3MGNjODViYWQ2MjBhYWMyY2U1MTliYmQ3OTMiLCJsYW5nIjoiZW4iLCJudiI6MywicHJwIjoicHJwXzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDAyIiwicHVyIjpbImFuYWx5dGljcyIsIm1hcmtldGluZyJdLCJyYyI6Ik9QLTdLM00tOVEyWCIsInNlcSI6IjEiLCJ0cyI6IjIwMjYtMDktMjVUMDk6MTU6MzAuMTIzWiJ9.lzkRn1Fgsjbmu6mLjAgIHZ7mdTKiI4VBTWFcJIPXBS3bxCXg0dQsMh_iJH1dmz3xhrRhk0b3MEMl3_eppI0JBQ"
    },
    {
      "kid": "opk_2025_10_testvec0",
      "payload": {
        "rc": "OP-A1B2-C3D4",
        "evt": "evt_01JBTT8000E008000000000082",
        "prp": "prp_01JBTT8000E008000000000002",
        "seq": "2",
        "h": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
        "act": "deny",
        "pur": [
          "whatsapp_updates"
        ],
        "nv": 3,
        "lang": "en",
        "ch": "web",
        "ts": "2026-09-25T09:15:30.123Z"
      },
      "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI1XzEwX3Rlc3R2ZWMwIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJkZW55IiwiY2giOiJ3ZWIiLCJldnQiOiJldnRfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwODIiLCJoIjoiODJmY2IxMzcxNmU1Yzg3ZjU5ZmI5ZmJkYzU1ZTY1YmU1YzM5ZTNhN2VjYzFmN2Y5NWJjMjVjNzg1YjJjZGNlYiIsImxhbmciOiJlbiIsIm52IjozLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIiLCJwdXIiOlsid2hhdHNhcHBfdXBkYXRlcyJdLCJyYyI6Ik9QLUExQjItQzNENCIsInNlcSI6IjIiLCJ0cyI6IjIwMjYtMDktMjVUMDk6MTU6MzAuMTIzWiJ9.vIidgQyzKjmRxtxsuMMEBAAx2lHVsqhTSp6QSm3LeDXB8og-Rx5eWwhcEN14UJPMnYBe304Yj837zXiVobxiCg"
    },
    {
      "kid": "opk_2026_10_testvec1",
      "payload": {
        "rc": "OP-H8J9-K0M1",
        "evt": "evt_01JBTT8000E008000000000083",
        "prp": "prp_01JBTT8000E008000000000002",
        "seq": "3",
        "h": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
        "act": "grant",
        "pur": [
          "appointment_reminders"
        ],
        "nv": 3,
        "lang": "hi",
        "ch": "kiosk",
        "ts": "2026-10-25T12:50:00.000Z"
      },
      "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJncmFudCIsImNoIjoia2lvc2siLCJldnQiOiJldnRfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwODMiLCJoIjoiOWQ0MjUyYjk1ZGQ5MzhmNWJiOGEwZWQ3YWZiNTJiZWZmNzA2ODVjNjU5MjJiZDc4MGU0OWNiZDhlODAxMTUxMiIsImxhbmciOiJoaSIsIm52IjozLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIiLCJwdXIiOlsiYXBwb2ludG1lbnRfcmVtaW5kZXJzIl0sInJjIjoiT1AtSDhKOS1LME0xIiwic2VxIjoiMyIsInRzIjoiMjAyNi0xMC0yNVQxMjo1MDowMC4wMDBaIn0.cJOu05sZcql7RpElpcenDf-llcMbw1Yfvz5aDhMJ7glBFXCy_hHySpNIJpgvEQes246i15hzjiXnZCrZb7BbDQ"
    },
    {
      "kid": "opk_2026_10_testvec1",
      "payload": {
        "rc": "OP-N2P3-Q4R5",
        "evt": "evt_01JBTT8000E008000000000084",
        "prp": "prp_01JBTT8000E008000000000002",
        "seq": "4",
        "h": "00c54f77a49a52d83d72709bb3a3f4f1bd50ba4c8070d0af3b79d511ddeef4ca",
        "act": "withdraw",
        "pur": [
          "marketing"
        ],
        "nv": 3,
        "lang": "en",
        "ch": "portal",
        "ts": "2026-10-26T04:00:00.000Z"
      },
      "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJ3aXRoZHJhdyIsImNoIjoicG9ydGFsIiwiZXZ0IjoiZXZ0XzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDg0IiwiaCI6IjAwYzU0Zjc3YTQ5YTUyZDgzZDcyNzA5YmIzYTNmNGYxYmQ1MGJhNGM4MDcwZDBhZjNiNzlkNTExZGRlZWY0Y2EiLCJsYW5nIjoiZW4iLCJudiI6MywicHJwIjoicHJwXzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDAyIiwicHVyIjpbIm1hcmtldGluZyJdLCJyYyI6Ik9QLU4yUDMtUTRSNSIsInNlcSI6IjQiLCJ0cyI6IjIwMjYtMTAtMjZUMDQ6MDA6MDAuMDAwWiJ9.4-C6Sq20BFjiEiroWTmt40H2OIz9UgmJ9KMCg_6X_YY_YddIMmQnSj84cGTWoYVTxsvOTm38DsWkM5yIuZd9DA"
    }
  ],
  "anchor": {
    "payload": {
      "prp": "prp_01JBTT8000E008000000000002",
      "date": "2026-10-25",
      "last_seq": "3",
      "last_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512"
    },
    "kid": "opk_2026_10_testvec1",
    "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtYW5jaG9yK2p3cyJ9.eyJkYXRlIjoiMjAyNi0xMC0yNSIsImxhc3RfaGFzaCI6IjlkNDI1MmI5NWRkOTM4ZjViYjhhMGVkN2FmYjUyYmVmZjcwNjg1YzY1OTIyYmQ3ODBlNDljYmQ4ZTgwMTE1MTIiLCJsYXN0X3NlcSI6IjMiLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIifQ.1X_eU_NRTF6T6mkg95Bv5bBtlaxKjB6XRoOh9xD0pOlAIFN75cZe_mYmFiwCLcVuVMwXBQxv0ATGmWu2RyoWBg"
  },
  "verifications": [
    {
      "name": "receipt 1 (retired key), anchored",
      "receipt_jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI1XzEwX3Rlc3R2ZWMwIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJncmFudCIsImNoIjoid2ViIiwiZXZ0IjoiZXZ0XzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDgxIiwiaCI6IjY5YjBmNzM0ZTE3MTY0MzQ3YWY3MTI1ODIxZGE0ZmJlZDU5Zjc3MGNjODViYWQ2MjBhYWMyY2U1MTliYmQ3OTMiLCJsYW5nIjoiZW4iLCJudiI6MywicHJwIjoicHJwXzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDAyIiwicHVyIjpbImFuYWx5dGljcyIsIm1hcmtldGluZyJdLCJyYyI6Ik9QLTdLM00tOVEyWCIsInNlcSI6IjEiLCJ0cyI6IjIwMjYtMDktMjVUMDk6MTU6MzAuMTIzWiJ9.lzkRn1Fgsjbmu6mLjAgIHZ7mdTKiI4VBTWFcJIPXBS3bxCXg0dQsMh_iJH1dmz3xhrRhk0b3MEMl3_eppI0JBQ",
      "data": {
        "receipt_code": "OP-7K3M-9Q2X",
        "property": {
          "id": "prp_01JBTT8000E008000000000002",
          "name": "Example Clinic website",
          "tenant_name": "Example Clinic"
        },
        "segment": [
          {
            "seq": "1",
            "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
            "hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
            "canonical": "{\"action\":\"grant\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ip_prefix\":\"203.0.113.0/24\",\"page_url\":\"https://example.in/signup?ref=a&b=1\",\"ua_hash\":\"1066b48224bb188ceb955605f4fcff98\",\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000081\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"analytics\",\"marketing\"],\"recorded_at\":\"2026-09-25T09:15:30.456Z\",\"seq\":\"1\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          },
          {
            "seq": "2",
            "prev_hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
            "hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
            "canonical": "{\"action\":\"deny\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000082\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"whatsapp_updates\"],\"recorded_at\":\"2026-09-25T09:15:30.457Z\",\"seq\":\"2\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          },
          {
            "seq": "3",
            "prev_hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
            "hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
            "canonical": "{\"action\":\"grant\",\"channel\":\"kiosk\",\"context\":{\"location_id\":\"loc_reception_1\",\"note\":\"सहमति दी गई — \\\"✓\\\"\\nline 2\",\"staff_id\":\"staff-7\"},\"device_ref\":null,\"id\":\"evt_01JBTT8000E008000000000083\",\"is_test\":false,\"language\":\"hi\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-25T12:50:00.000Z\",\"prev_hash\":\"82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"appointment_reminders\"],\"recorded_at\":\"2026-10-25T12:50:01.000Z\",\"seq\":\"3\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          }
        ],
        "anchor": {
          "date": "2026-10-25",
          "last_seq": "3",
          "last_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
          "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtYW5jaG9yK2p3cyJ9.eyJkYXRlIjoiMjAyNi0xMC0yNSIsImxhc3RfaGFzaCI6IjlkNDI1MmI5NWRkOTM4ZjViYjhhMGVkN2FmYjUyYmVmZjcwNjg1YzY1OTIyYmQ3ODBlNDljYmQ4ZTgwMTE1MTIiLCJsYXN0X3NlcSI6IjMiLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIifQ.1X_eU_NRTF6T6mkg95Bv5bBtlaxKjB6XRoOh9xD0pOlAIFN75cZe_mYmFiwCLcVuVMwXBQxv0ATGmWu2RyoWBg",
          "key_id": "opk_2026_10_testvec1"
        }
      },
      "expected_outcome": "verified"
    },
    {
      "name": "receipt 3 (active key), anchored",
      "receipt_jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJncmFudCIsImNoIjoia2lvc2siLCJldnQiOiJldnRfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwODMiLCJoIjoiOWQ0MjUyYjk1ZGQ5MzhmNWJiOGEwZWQ3YWZiNTJiZWZmNzA2ODVjNjU5MjJiZDc4MGU0OWNiZDhlODAxMTUxMiIsImxhbmciOiJoaSIsIm52IjozLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIiLCJwdXIiOlsiYXBwb2ludG1lbnRfcmVtaW5kZXJzIl0sInJjIjoiT1AtSDhKOS1LME0xIiwic2VxIjoiMyIsInRzIjoiMjAyNi0xMC0yNVQxMjo1MDowMC4wMDBaIn0.cJOu05sZcql7RpElpcenDf-llcMbw1Yfvz5aDhMJ7glBFXCy_hHySpNIJpgvEQes246i15hzjiXnZCrZb7BbDQ",
      "data": {
        "receipt_code": "OP-H8J9-K0M1",
        "property": {
          "id": "prp_01JBTT8000E008000000000002",
          "name": "Example Clinic website",
          "tenant_name": "Example Clinic"
        },
        "segment": [
          {
            "seq": "3",
            "prev_hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
            "hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
            "canonical": "{\"action\":\"grant\",\"channel\":\"kiosk\",\"context\":{\"location_id\":\"loc_reception_1\",\"note\":\"सहमति दी गई — \\\"✓\\\"\\nline 2\",\"staff_id\":\"staff-7\"},\"device_ref\":null,\"id\":\"evt_01JBTT8000E008000000000083\",\"is_test\":false,\"language\":\"hi\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-25T12:50:00.000Z\",\"prev_hash\":\"82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"appointment_reminders\"],\"recorded_at\":\"2026-10-25T12:50:01.000Z\",\"seq\":\"3\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          }
        ],
        "anchor": {
          "date": "2026-10-25",
          "last_seq": "3",
          "last_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
          "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtYW5jaG9yK2p3cyJ9.eyJkYXRlIjoiMjAyNi0xMC0yNSIsImxhc3RfaGFzaCI6IjlkNDI1MmI5NWRkOTM4ZjViYjhhMGVkN2FmYjUyYmVmZjcwNjg1YzY1OTIyYmQ3ODBlNDljYmQ4ZTgwMTE1MTIiLCJsYXN0X3NlcSI6IjMiLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIifQ.1X_eU_NRTF6T6mkg95Bv5bBtlaxKjB6XRoOh9xD0pOlAIFN75cZe_mYmFiwCLcVuVMwXBQxv0ATGmWu2RyoWBg",
          "key_id": "opk_2026_10_testvec1"
        }
      },
      "expected_outcome": "verified"
    },
    {
      "name": "receipt 4, not anchored yet",
      "receipt_jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJ3aXRoZHJhdyIsImNoIjoicG9ydGFsIiwiZXZ0IjoiZXZ0XzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDg0IiwiaCI6IjAwYzU0Zjc3YTQ5YTUyZDgzZDcyNzA5YmIzYTNmNGYxYmQ1MGJhNGM4MDcwZDBhZjNiNzlkNTExZGRlZWY0Y2EiLCJsYW5nIjoiZW4iLCJudiI6MywicHJwIjoicHJwXzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDAyIiwicHVyIjpbIm1hcmtldGluZyJdLCJyYyI6Ik9QLU4yUDMtUTRSNSIsInNlcSI6IjQiLCJ0cyI6IjIwMjYtMTAtMjZUMDQ6MDA6MDAuMDAwWiJ9.4-C6Sq20BFjiEiroWTmt40H2OIz9UgmJ9KMCg_6X_YY_YddIMmQnSj84cGTWoYVTxsvOTm38DsWkM5yIuZd9DA",
      "data": {
        "receipt_code": "OP-N2P3-Q4R5",
        "property": {
          "id": "prp_01JBTT8000E008000000000002",
          "name": "Example Clinic website",
          "tenant_name": "Example Clinic"
        },
        "segment": [
          {
            "seq": "4",
            "prev_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
            "hash": "00c54f77a49a52d83d72709bb3a3f4f1bd50ba4c8070d0af3b79d511ddeef4ca",
            "canonical": "{\"action\":\"withdraw\",\"channel\":\"portal\",\"context\":{},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000084\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-26T04:00:00.000Z\",\"prev_hash\":\"9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"marketing\"],\"recorded_at\":\"2026-10-26T04:00:00.250Z\",\"seq\":\"4\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          }
        ],
        "anchor": null
      },
      "expected_outcome": "pending_anchor"
    },
    {
      "name": "receipt 1 with history truncated before the anchor",
      "receipt_jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI1XzEwX3Rlc3R2ZWMwIiwidHlwIjoib3B0cHJvb2YtcmVjZWlwdCtqd3MifQ.eyJhY3QiOiJncmFudCIsImNoIjoid2ViIiwiZXZ0IjoiZXZ0XzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDgxIiwiaCI6IjY5YjBmNzM0ZTE3MTY0MzQ3YWY3MTI1ODIxZGE0ZmJlZDU5Zjc3MGNjODViYWQ2MjBhYWMyY2U1MTliYmQ3OTMiLCJsYW5nIjoiZW4iLCJudiI6MywicHJwIjoicHJwXzAxSkJUVDgwMDBFMDA4MDAwMDAwMDAwMDAyIiwicHVyIjpbImFuYWx5dGljcyIsIm1hcmtldGluZyJdLCJyYyI6Ik9QLTdLM00tOVEyWCIsInNlcSI6IjEiLCJ0cyI6IjIwMjYtMDktMjVUMDk6MTU6MzAuMTIzWiJ9.lzkRn1Fgsjbmu6mLjAgIHZ7mdTKiI4VBTWFcJIPXBS3bxCXg0dQsMh_iJH1dmz3xhrRhk0b3MEMl3_eppI0JBQ",
      "data": {
        "receipt_code": "OP-7K3M-9Q2X",
        "property": {
          "id": "prp_01JBTT8000E008000000000002",
          "name": "Example Clinic website",
          "tenant_name": "Example Clinic"
        },
        "segment": [
          {
            "seq": "1",
            "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
            "hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
            "canonical": "{\"action\":\"grant\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ip_prefix\":\"203.0.113.0/24\",\"page_url\":\"https://example.in/signup?ref=a&b=1\",\"ua_hash\":\"1066b48224bb188ceb955605f4fcff98\",\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000081\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"analytics\",\"marketing\"],\"recorded_at\":\"2026-09-25T09:15:30.456Z\",\"seq\":\"1\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          },
          {
            "seq": "2",
            "prev_hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
            "hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
            "canonical": "{\"action\":\"deny\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000082\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"whatsapp_updates\"],\"recorded_at\":\"2026-09-25T09:15:30.457Z\",\"seq\":\"2\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
          }
        ],
        "anchor": {
          "date": "2026-10-25",
          "last_seq": "3",
          "last_hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
          "jws": "eyJhbGciOiJFZERTQSIsImtpZCI6Im9wa18yMDI2XzEwX3Rlc3R2ZWMxIiwidHlwIjoib3B0cHJvb2YtYW5jaG9yK2p3cyJ9.eyJkYXRlIjoiMjAyNi0xMC0yNSIsImxhc3RfaGFzaCI6IjlkNDI1MmI5NWRkOTM4ZjViYjhhMGVkN2FmYjUyYmVmZjcwNjg1YzY1OTIyYmQ3ODBlNDljYmQ4ZTgwMTE1MTIiLCJsYXN0X3NlcSI6IjMiLCJwcnAiOiJwcnBfMDFKQlRUODAwMEUwMDgwMDAwMDAwMDAwMDIifQ.1X_eU_NRTF6T6mkg95Bv5bBtlaxKjB6XRoOh9xD0pOlAIFN75cZe_mYmFiwCLcVuVMwXBQxv0ATGmWu2RyoWBg",
          "key_id": "opk_2026_10_testvec1"
        }
      },
      "expected_outcome": "failed"
    }
  ],
  "tampered_segments": [
    {
      "name": "edited record 2 (deny changed to grant)",
      "segment": [
        {
          "seq": "1",
          "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
          "hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
          "canonical": "{\"action\":\"grant\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ip_prefix\":\"203.0.113.0/24\",\"page_url\":\"https://example.in/signup?ref=a&b=1\",\"ua_hash\":\"1066b48224bb188ceb955605f4fcff98\",\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000081\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"analytics\",\"marketing\"],\"recorded_at\":\"2026-09-25T09:15:30.456Z\",\"seq\":\"1\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
        },
        {
          "seq": "2",
          "prev_hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
          "hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
          "canonical": "{\"action\":\"grant\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000082\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"whatsapp_updates\"],\"recorded_at\":\"2026-09-25T09:15:30.457Z\",\"seq\":\"2\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
        },
        {
          "seq": "3",
          "prev_hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
          "hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
          "canonical": "{\"action\":\"grant\",\"channel\":\"kiosk\",\"context\":{\"location_id\":\"loc_reception_1\",\"note\":\"सहमति दी गई — \\\"✓\\\"\\nline 2\",\"staff_id\":\"staff-7\"},\"device_ref\":null,\"id\":\"evt_01JBTT8000E008000000000083\",\"is_test\":false,\"language\":\"hi\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-25T12:50:00.000Z\",\"prev_hash\":\"82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"appointment_reminders\"],\"recorded_at\":\"2026-10-25T12:50:01.000Z\",\"seq\":\"3\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
        }
      ],
      "expected_failed_check": "chain_hashes",
      "expected_broken_seq": "2"
    },
    {
      "name": "record 2 deleted",
      "segment": [
        {
          "seq": "1",
          "prev_hash": "0000000000000000000000000000000000000000000000000000000000000000",
          "hash": "69b0f734e17164347af7125821da4fbed59f770cc85bad620aac2ce519bbd793",
          "canonical": "{\"action\":\"grant\",\"channel\":\"web\",\"context\":{\"choices\":{\"analytics\":true,\"marketing\":true,\"whatsapp_updates\":false},\"ip_prefix\":\"203.0.113.0/24\",\"page_url\":\"https://example.in/signup?ref=a&b=1\",\"ua_hash\":\"1066b48224bb188ceb955605f4fcff98\",\"ui_variant\":\"default\"},\"device_ref\":\"6f1c2a9e-3b4d-4e5f-8a7b-9c0d1e2f3a4b\",\"id\":\"evt_01JBTT8000E008000000000081\",\"is_test\":false,\"language\":\"en\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-09-25T09:15:30.123Z\",\"prev_hash\":\"0000000000000000000000000000000000000000000000000000000000000000\",\"principal_ref\":null,\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"analytics\",\"marketing\"],\"recorded_at\":\"2026-09-25T09:15:30.456Z\",\"seq\":\"1\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
        },
        {
          "seq": "3",
          "prev_hash": "82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb",
          "hash": "9d4252b95dd938f5bb8a0ed7afb52beff70685c65922bd780e49cbd8e8011512",
          "canonical": "{\"action\":\"grant\",\"channel\":\"kiosk\",\"context\":{\"location_id\":\"loc_reception_1\",\"note\":\"सहमति दी गई — \\\"✓\\\"\\nline 2\",\"staff_id\":\"staff-7\"},\"device_ref\":null,\"id\":\"evt_01JBTT8000E008000000000083\",\"is_test\":false,\"language\":\"hi\",\"notice_id\":\"ntc_01JBTT8000E008000000000003\",\"notice_version\":3,\"occurred_at\":\"2026-10-25T12:50:00.000Z\",\"prev_hash\":\"82fcb13716e5c87f59fb9fbdc55e65be5c39e3a7ecc1f7f95bc25c785b2cdceb\",\"principal_ref\":\"b6fead95700bfff23f4875334a2928ee2fcf4b7cbc4c33405a7d594f8a32ccf9\",\"property_id\":\"prp_01JBTT8000E008000000000002\",\"purpose_keys\":[\"appointment_reminders\"],\"recorded_at\":\"2026-10-25T12:50:01.000Z\",\"seq\":\"3\",\"tenant_id\":\"ten_01JBTT8000E008000000000001\"}"
        }
      ],
      "expected_failed_check": "chain_links",
      "expected_broken_seq": "3"
    }
  ]
}
