{
  "suite": "Human Seal conformance test vectors",
  "version": "0.1",
  "canonical_form": "sorted keys (code point order), no whitespace, ASCII-only output with lowercase \\uXXXX escapes, numbers exactly as written; equal to Python json.dumps(obj, sort_keys=True, separators=(',', ':'), ensure_ascii=True)",
  "how_to_use": "For each vector, verify receipt_json (and bind action_json when present). valid must equal expect_valid and, when expect_reason_contains is set, the reason must contain it.",
  "vectors": [
    {
      "name": "valid_ascii",
      "description": "A plain valid Seal binding an ASCII action.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:a16385a1b0bf14d4142e0134b4ccdb34b052508d6d93ff96d87b39aed4b2e181\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.266712+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"cq6ogVMpsaXlGhsQwB2cIqsM2egozRF2Sk3BnywVZyVxPDk_BFVZ9qg52NDs8kovJbUZvv0fw6yjEr95HeNXBQ\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"pay\", \"amount\": 1200, \"to\": \"ACME\"}",
      "expect_valid": true,
      "expect_reason_contains": ""
    },
    {
      "name": "valid_non_ascii",
      "description": "Accents and an emoji in the action: the verifier must escape them exactly as the reference does.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:2d536210d1f2aec3d89aea1a81414e8eb3b9665882aa12b1a7c271b1fd2e5a22\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.288918+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"-qVcqG6s9qYSaoeHKXJ1lHJmGHjJqu807zkaAPfkmiOLjvGw7uEMhxkETCCIHT7xeskvSlRArc5C_1o_slPhCQ\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"note\": \"ok \ud83d\udc4d\", \"to\": \"Caf\u00e9 M\u00fcller\", \"tool\": \"pay\"}",
      "expect_valid": true,
      "expect_reason_contains": ""
    },
    {
      "name": "valid_integral_float",
      "description": "An integral float (100.0): the verifier must keep the number exactly as written.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:df958f0870eaaf7c561048a13e1e113c0cfa5d3ada565302bc32d6b37437c059\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.289171+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"QsN_8YaK3hXjcTPaWFzcqBG4q8CYbz_26Oy8Cub_DO1x96rH7cjbDPaNR08pyPrBe56PeN4uREwZgeLEERMQBg\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"amount\": 100.0, \"rate\": 0.5, \"tool\": \"pay\"}",
      "expect_valid": true,
      "expect_reason_contains": ""
    },
    {
      "name": "valid_with_oversight",
      "description": "A Level 2 Seal carrying the signed oversight evidence object.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:bd42ce63ee799c7f29d5ac5962ec3cca4d9128792b0baa877be20299806b4ff6\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.289377+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"oversight\": {\"context_hash\": \"sha256:56ccd1984f8d8d6c79ed0405a7367eeaf0f5004a8a9125b4d006755544650ede\", \"decision_latency_ms\": 8400, \"pre_ai_decision\": \"approved\", \"risk_tier\": \"high\", \"rationale\": \"checked the certificate of analysis\"}, \"signature_ed25519\": \"56Rac5IXn376U-hiRcAv3FhBIzqbbpfK35V6-QQORSVrifhQ9G5raKxxH5yJBnbf9tULZI79m8RrRN6yTYGIBw\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"release_batch\", \"batch\": \"B-2026-001\"}",
      "expect_valid": true,
      "expect_reason_contains": ""
    },
    {
      "name": "valid_refusal",
      "description": "A refusal is also a valid, signed decision.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:657261c92c75181700ea81b9e7f74dd979039c418ce81254163842b5bbf2b926\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"refused\", \"decided_at\": \"2026-09-20T07:36:45.289585+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"yHnRNgM_9LXyy0QcRbBwrezanNq39qnsQ59s3qiCXNI2khuwy9VHL_lewFTehkFkv0cL90M4svj5cZegB9JPCA\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"wire\", \"amount\": 90000, \"to\": \"unknown-payee\"}",
      "expect_valid": true,
      "expect_reason_contains": ""
    },
    {
      "name": "tampered_decision",
      "description": "The decision was changed after signing.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:a16385a1b0bf14d4142e0134b4ccdb34b052508d6d93ff96d87b39aed4b2e181\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"refused\", \"decided_at\": \"2026-09-20T07:36:45.289784+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"eNeLQ0buC4fLKs_Sv1eCuT2pp7rBB7pGQ-pKHCuVfJX7s9CewoNqBH232qkq3ZBNlvLNaZ2Ke5rktMYO8qK_Aw\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"pay\", \"amount\": 1200, \"to\": \"ACME\"}",
      "expect_valid": false,
      "expect_reason_contains": "signature"
    },
    {
      "name": "tampered_approver",
      "description": "The approver was changed after signing.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:a16385a1b0bf14d4142e0134b4ccdb34b052508d6d93ff96d87b39aed4b2e181\", \"tenant\": \"example-co\", \"approver_ref\": \"mallory@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.289784+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"eNeLQ0buC4fLKs_Sv1eCuT2pp7rBB7pGQ-pKHCuVfJX7s9CewoNqBH232qkq3ZBNlvLNaZ2Ke5rktMYO8qK_Aw\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"pay\", \"amount\": 1200, \"to\": \"ACME\"}",
      "expect_valid": false,
      "expect_reason_contains": "signature"
    },
    {
      "name": "tampered_oversight",
      "description": "A forged fast decision time inside the signed oversight evidence.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:bd42ce63ee799c7f29d5ac5962ec3cca4d9128792b0baa877be20299806b4ff6\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.290005+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"oversight\": {\"context_hash\": \"sha256:56ccd1984f8d8d6c79ed0405a7367eeaf0f5004a8a9125b4d006755544650ede\", \"decision_latency_ms\": 5, \"pre_ai_decision\": \"approved\", \"risk_tier\": \"high\", \"rationale\": \"checked the certificate of analysis\"}, \"signature_ed25519\": \"cEdx9m-4l6l2WoMRIq-2S96sHWjpI-IE_DAc-liNEEyO-8fcwJMiyPBF3oCTp_vSAnuUUWaqUXs8LCCYeXpsBQ\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"release_batch\", \"batch\": \"B-2026-001\"}",
      "expect_valid": false,
      "expect_reason_contains": "signature"
    },
    {
      "name": "swapped_action",
      "description": "The signature is valid but the action presented is not the one that was approved.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:a16385a1b0bf14d4142e0134b4ccdb34b052508d6d93ff96d87b39aed4b2e181\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.289784+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"eNeLQ0buC4fLKs_Sv1eCuT2pp7rBB7pGQ-pKHCuVfJX7s9CewoNqBH232qkq3ZBNlvLNaZ2Ke5rktMYO8qK_Aw\", \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"pay\", \"amount\": 999999, \"to\": \"attacker\"}",
      "expect_valid": false,
      "expect_reason_contains": "content_hash"
    },
    {
      "name": "unsigned",
      "description": "No signature present.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:a16385a1b0bf14d4142e0134b4ccdb34b052508d6d93ff96d87b39aed4b2e181\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.289784+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"public_key\": \"vrAyFgD-rjfuaca2uyyz4s0WgUDbT2wwDezMsicBwTU\"}",
      "action_json": "{\"tool\": \"pay\", \"amount\": 1200, \"to\": \"ACME\"}",
      "expect_valid": false,
      "expect_reason_contains": "unsigned"
    },
    {
      "name": "wrong_key",
      "description": "The signature was made by a different key than the one the receipt names.",
      "receipt_json": "{\"action_id\": \"A-001\", \"action_type\": \"pay\", \"content_hash\": \"sha256:a16385a1b0bf14d4142e0134b4ccdb34b052508d6d93ff96d87b39aed4b2e181\", \"tenant\": \"example-co\", \"approver_ref\": \"ilse@example\", \"decision\": \"approved\", \"decided_at\": \"2026-09-20T07:36:45.289784+00:00\", \"issuer\": \"did:web:humanseal.world\", \"level\": 2, \"signature_ed25519\": \"eNeLQ0buC4fLKs_Sv1eCuT2pp7rBB7pGQ-pKHCuVfJX7s9CewoNqBH232qkq3ZBNlvLNaZ2Ke5rktMYO8qK_Aw\", \"public_key\": \"vo63SubJRTjxqhN6tLy99hwNqsNr5ZR4ryqJGVOPDe8\"}",
      "action_json": "{\"tool\": \"pay\", \"amount\": 1200, \"to\": \"ACME\"}",
      "expect_valid": false,
      "expect_reason_contains": "signature"
    }
  ]
}