{
  "tool_id": "art-583-beacon-seeded-fair-sampling-deriver",
  "note": "golden_hash filled by golden-parity.test.mjs --update. Vector 1: drand quicknet pulse, 250-item population, 10-of-250 sample, clean derivation with no rejected draws. Vector 2: NISTIR-8213 pulse, 50-item population, 5-of-50 sample -- includes two rejected draws (candidate 30 repeats before the next unique index is found), exercising the rejection-sampling walk. Vector 3: every required declared input missing/empty -- INDETERMINATE with the full reasons list, no derivation attempted.",
  "vectors": [
    {
      "name": "drand_quicknet_clean_derivation",
      "description": "drand quicknet pulse round 4321000, 250-item manifest, 10-of-250 sample -- all 10 draws accepted with no rejections.",
      "policy_parameters": {
        "beacon_source": "drand_quicknet",
        "beacon_round": "4321000",
        "beacon_randomness": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85",
        "item_manifest_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
        "item_count": 250,
        "sample_size": 10,
        "algorithm_id": "hmac-drbg-sha256-v1"
      },
      "output_payload": {
        "verdict": "DERIVED",
        "beacon_source": "drand_quicknet",
        "beacon_round": "4321000",
        "beacon_randomness": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85",
        "item_manifest_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
        "item_count": 250,
        "sample_size": 10,
        "algorithm_id": "hmac-drbg-sha256-v1",
        "seed_hex": "e15a8aa2f6d6d3318be77fe06250a10823c3caf82c7d76b94b22cd80e40ddd0a",
        "selected_indices": [
          106,
          184,
          205,
          91,
          113,
          99,
          199,
          77,
          32,
          158
        ],
        "derivation_transcript": [
          {
            "draw": 0,
            "hmac_hex": "c7c850c0be1cd7c6e88ad2f7615c1e776ffe5a9ea7a7111c0985d60417620870",
            "candidate_index": 106,
            "accepted": true
          },
          {
            "draw": 1,
            "hmac_hex": "97bfae942d8b73791460e5a672cb83d8070b090257627d11da048b79d0a1dee9",
            "candidate_index": 184,
            "accepted": true
          },
          {
            "draw": 2,
            "hmac_hex": "69ea8ff37d136f798f7a29e5a063daf44a62f0147d5f4b7d8cb92d6d0e8017d0",
            "candidate_index": 205,
            "accepted": true
          },
          {
            "draw": 3,
            "hmac_hex": "57a20d8b60b445742b5c6af56574fcf20757ca472359d700969df7c6a9b184eb",
            "candidate_index": 91,
            "accepted": true
          },
          {
            "draw": 4,
            "hmac_hex": "2707aaa70f87e79b251ac3e33ef64ca293079dedfc32da4181db305e5f3a0f7a",
            "candidate_index": 113,
            "accepted": true
          },
          {
            "draw": 5,
            "hmac_hex": "0e59d463d5cfd53b6bb40bcd851ab6e67341b5e408102036a3f2d36eba69eeea",
            "candidate_index": 99,
            "accepted": true
          },
          {
            "draw": 6,
            "hmac_hex": "27d8cc1964a825ff40092ccef8fb0e5a023e365abe683e803482e4b8c378dc12",
            "candidate_index": 199,
            "accepted": true
          },
          {
            "draw": 7,
            "hmac_hex": "955917331707246538eeda870812cb0eeadbacf016df6ef1cc6ef070a2531737",
            "candidate_index": 77,
            "accepted": true
          },
          {
            "draw": 8,
            "hmac_hex": "93229b7e5948d0ba0cfbf7c33a4ade9411c802a70d9c2feaf7d7280f819ba2a5",
            "candidate_index": 32,
            "accepted": true
          },
          {
            "draw": 9,
            "hmac_hex": "e00cc5a01fd3b8c5042b719190a6a4f7690a502ab8b85b4f7030303470e9f1ac",
            "candidate_index": 158,
            "accepted": true
          }
        ],
        "draws_used": 10
      },
      "golden_hash": "a59778a80b2a704baeb79343839ce52f1397efb7119dbe8c04702b845765bc19"
    },
    {
      "name": "nistir_pulse_with_rejected_draws",
      "description": "NISTIR-8213 pulse, 50-item manifest, 5-of-50 sample -- draws 3 and 4 repeat candidate index 30 and are rejected, exercising the no-replacement rejection walk before draw 5 finds the next unique index.",
      "policy_parameters": {
        "beacon_source": "nistir_8213",
        "beacon_round": "round-2026-08-07T12:00:00Z",
        "beacon_randomness": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd",
        "item_manifest_hash": "manifest-v2-hash",
        "item_count": 50,
        "sample_size": 5,
        "algorithm_id": "hmac-drbg-sha256-v1"
      },
      "output_payload": {
        "verdict": "DERIVED",
        "beacon_source": "nistir_8213",
        "beacon_round": "round-2026-08-07T12:00:00Z",
        "beacon_randomness": "0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcd",
        "item_manifest_hash": "manifest-v2-hash",
        "item_count": 50,
        "sample_size": 5,
        "algorithm_id": "hmac-drbg-sha256-v1",
        "seed_hex": "d873588e0a79c70e70ef6aa8cf6955b6cdc5919c659fa9e7c95b42bccace24f1",
        "selected_indices": [
          48,
          30,
          35,
          20,
          2
        ],
        "derivation_transcript": [
          {
            "draw": 0,
            "hmac_hex": "a3a06a2c6c84219e7bc3c0a1ae777e31e89add99374cbe2c21f3e849ddf39e3b",
            "candidate_index": 48,
            "accepted": true
          },
          {
            "draw": 1,
            "hmac_hex": "6ee7da92cc203e34051b5dc3de573f90d876af18cee281d5644b8f91a00cdcbb",
            "candidate_index": 30,
            "accepted": true
          },
          {
            "draw": 2,
            "hmac_hex": "f0b0f42de0f89d3c4555e771c8388b9e1824eac944b5beebe344f6f240b27b2d",
            "candidate_index": 35,
            "accepted": true
          },
          {
            "draw": 3,
            "hmac_hex": "f46b615cdf3644f2edf392bd76c48a40a1cf04965e1905223cf0f59174ba2997",
            "candidate_index": 30,
            "accepted": false
          },
          {
            "draw": 4,
            "hmac_hex": "b0147d5e6102ed4d6e7f141438f0a79fca1201a5c6044be513fde34bce70bf93",
            "candidate_index": 30,
            "accepted": false
          },
          {
            "draw": 5,
            "hmac_hex": "4f03739e2d32a22b7f605029c3550c9f19a3c1f8928312c6a91d9665e42c8b6c",
            "candidate_index": 20,
            "accepted": true
          },
          {
            "draw": 6,
            "hmac_hex": "4657a9badc6e9300dba0021bd1dfa083094c61a6fb4a6fdf1ce6c77946b66a6b",
            "candidate_index": 2,
            "accepted": true
          }
        ],
        "draws_used": 7
      },
      "golden_hash": "802c736887eb6c92421d0f84bd294f9222e2d50145effa22f804aa257170b637"
    },
    {
      "name": "missing_declared_inputs_indeterminate",
      "description": "Beacon randomness, manifest hash, algorithm id, item count and sample size all missing -- the kernel refuses to derive and returns the full reasons list rather than guessing a default.",
      "policy_parameters": {
        "beacon_source": "drand_quicknet",
        "beacon_round": "1",
        "beacon_randomness": "",
        "item_manifest_hash": "",
        "item_count": 0,
        "sample_size": 0,
        "algorithm_id": ""
      },
      "output_payload": {
        "verdict": "INDETERMINATE",
        "reasons": [
          "beacon_randomness is required (the pulse's declared randomness value, hex)",
          "item_manifest_hash is required (committed BEFORE the pulse round)",
          "algorithm_id must be hmac-drbg-sha256-v1",
          "item_count must be a positive integer",
          "sample_size must be a positive integer"
        ],
        "beacon_source": "drand_quicknet",
        "beacon_round": "1",
        "item_manifest_hash": null,
        "item_count": null,
        "sample_size": null,
        "algorithm_id": null
      },
      "golden_hash": "b9cff6fbbd08d91c40e39e94e0fa54e5f99f1c47ab5b5e7027bd23c3872eaf60"
    }
  ]
}
