{
  "tool_id": "art-208-royalty-split-validator",
  "note": "golden_hash filled by node golden-parity.test.mjs --update.",
  "vectors": [
    {
      "name": "valid_50_50_bps",
      "policy_parameters": {
        "entries": [
          {
            "address": "0xABCDEF1234567890ABCDEF1234567890ABCDEF12",
            "basis_points": 5000
          },
          {
            "address": "0x1234567890ABCDEF1234567890ABCDEF12345678",
            "basis_points": 5000
          }
        ],
        "cap_bps": 5000
      },
      "output_payload": {
        "valid": true,
        "mode": "bps",
        "recipient_count": 2,
        "sum": 10000,
        "cap_bps": 5000,
        "rules": [
          {
            "id": "sum",
            "label": "Share sum",
            "pass": true,
            "detail": "Sum: 10000 bps (must equal 10000)"
          },
          {
            "id": "cap",
            "label": "Per-recipient cap",
            "pass": true,
            "detail": "Cap: 5000 bps (50%) -- all entries within cap"
          },
          {
            "id": "dups",
            "label": "No duplicate addresses",
            "pass": true,
            "detail": "All addresses are unique"
          },
          {
            "id": "no_blank",
            "label": "No zero/blank addresses",
            "pass": true,
            "detail": "No blank or zero addresses"
          },
          {
            "id": "range",
            "label": "Share values 0-10000 bps",
            "pass": true,
            "detail": "All values in range"
          },
          {
            "id": "addr_fmt",
            "label": "Address format (0x + 40 hex chars)",
            "pass": true,
            "detail": "All addresses pass format check"
          }
        ],
        "config_hash": "0xdda8f343",
        "disclaimer": "Not legal advice. Validation only; no on-chain calls, no royalty distribution. ERC-2981 is advisory. Consult a licensed attorney and review the 0xSplits documentation for your deployment."
      },
      "golden_hash": "aedb5d380d2fc120c7f939464dd34550f8c732907b76446b07efc6c8a65426d1"
    },
    {
      "name": "invalid_sum_bps",
      "policy_parameters": {
        "entries": [
          {
            "address": "0xABCDEF1234567890ABCDEF1234567890ABCDEF12",
            "basis_points": 6000
          },
          {
            "address": "0x1234567890ABCDEF1234567890ABCDEF12345678",
            "basis_points": 3000
          }
        ]
      },
      "output_payload": {
        "valid": false,
        "mode": "bps",
        "recipient_count": 2,
        "sum": 9000,
        "cap_bps": 5000,
        "rules": [
          {
            "id": "sum",
            "label": "Share sum",
            "pass": false,
            "detail": "Sum: 9000 bps (must equal 10000) -- off by 1000"
          },
          {
            "id": "cap",
            "label": "Per-recipient cap",
            "pass": false,
            "detail": "Cap: 5000 bps (50%) -- exceeds cap: 0xABCDEF1234... (6000)"
          },
          {
            "id": "dups",
            "label": "No duplicate addresses",
            "pass": true,
            "detail": "All addresses are unique"
          },
          {
            "id": "no_blank",
            "label": "No zero/blank addresses",
            "pass": true,
            "detail": "No blank or zero addresses"
          },
          {
            "id": "range",
            "label": "Share values 0-10000 bps",
            "pass": true,
            "detail": "All values in range"
          },
          {
            "id": "addr_fmt",
            "label": "Address format (0x + 40 hex chars)",
            "pass": true,
            "detail": "All addresses pass format check"
          }
        ],
        "config_hash": "0xd4332466",
        "disclaimer": "Not legal advice. Validation only; no on-chain calls, no royalty distribution. ERC-2981 is advisory. Consult a licensed attorney and review the 0xSplits documentation for your deployment."
      },
      "golden_hash": "429aa9cdda28141b1a003f6761373141129dd95c2c55e2b4141dd2c251a18da1"
    },
    {
      "name": "valid_percent_three_way",
      "policy_parameters": {
        "entries": [
          {
            "address": "0xAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
            "percent": 50
          },
          {
            "address": "0xBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
            "percent": 30
          },
          {
            "address": "0xCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC",
            "percent": 20
          }
        ],
        "cap_bps": 5000
      },
      "output_payload": {
        "valid": true,
        "mode": "percent",
        "recipient_count": 3,
        "sum": 100,
        "cap_bps": 5000,
        "rules": [
          {
            "id": "sum",
            "label": "Share sum",
            "pass": true,
            "detail": "Sum: 100% (must equal 100)"
          },
          {
            "id": "cap",
            "label": "Per-recipient cap",
            "pass": true,
            "detail": "Cap: 5000 bps (50%) -- all entries within cap"
          },
          {
            "id": "dups",
            "label": "No duplicate addresses",
            "pass": true,
            "detail": "All addresses are unique"
          },
          {
            "id": "no_blank",
            "label": "No zero/blank addresses",
            "pass": true,
            "detail": "No blank or zero addresses"
          },
          {
            "id": "range",
            "label": "Share values 0-100%",
            "pass": true,
            "detail": "All values in range"
          },
          {
            "id": "addr_fmt",
            "label": "Address format (0x + 40 hex chars)",
            "pass": true,
            "detail": "All addresses pass format check"
          }
        ],
        "config_hash": "0xd2cd79fe",
        "disclaimer": "Not legal advice. Validation only; no on-chain calls, no royalty distribution. ERC-2981 is advisory. Consult a licensed attorney and review the 0xSplits documentation for your deployment."
      },
      "golden_hash": "24a59d80516ae3cd3dee00550c8648c47978ef266f539ced9fce77c4cb362ea2"
    },
    {
      "name": "empty_input",
      "policy_parameters": {},
      "output_payload": {
        "valid": false,
        "mode": "bps",
        "recipient_count": 0,
        "sum": 0,
        "cap_bps": 5000,
        "rules": [
          {
            "id": "input",
            "label": "Input entries",
            "pass": false,
            "detail": "No entries provided (empty-input mode)."
          }
        ],
        "config_hash": "0x005975e3",
        "disclaimer": "Not legal advice. Validation only; no on-chain calls. Consult a licensed attorney and review ERC-2981 / 0xSplits documentation for your deployment."
      },
      "golden_hash": "b402ed443d7360584e820c599b7e0c1cd97f7b2a8f15aa8d42d3aaeb1f62dd43"
    }
  ]
}
