{
      "tool_id": "art-208-royalty-split-validator",
      "tool_version": "1.0.0",
      "display_name": "Royalty Split Validator",
      "mcp_name": "validate_royalty_split",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-208-royalty-split-validator.html",
      "description": "Validates a royalty-split configuration against ERC-2981 and 0xSplits rules: share sum, per-recipient cap, no duplicate or zero addresses, basis-point range, and address format. Reports per-rule pass/fail and a deterministic config fingerprint. Validation only; no on-chain calls, no distribution. Not legal advice.",
      "input_schema_ref": "chaingraph/art-208-royalty-split-validator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e264583d242ab0d715775d7f1ac1a87d7a26916f3fa44a5082a6c2facfa61705","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DMgIwhGSP8Pr2bFmU6bjaWkMR5x1jPUdQsyu+ECdajMCf8ULR8zyZMEfFQo/3X+RrekQU83LSQqGUl0UTE7mXBN69BmJttJufwpAPoPWRgq9ZCubrPP6QqH0zfqLe6hfBwrnNwhpOiJ0GW1aGxwH78EUW3NditHiRsux8Gw70ZYmoXx8arXlBS6nYXYKCTZ758touLm7EKIJBQauVaafry2ghbu+RaD7NKcGLGyiX1tdqm5Ev/Dqg4y9QiK7tUmnCw7609y3BkYdGmjCnvsrrcHchnBO1eyDB4b6ci98xAoJ9cau+MoCUYKApU2YQyGMfUA7dlNIGjiQGr9Js9YIIQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2557aa246acd58ad2bc959114d9e9bac628b76e313a687a08348a16c33972955",
          "output": {
            "cap_bps": 5000,
            "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.",
            "mode": "bps",
            "recipient_count": 2,
            "rules": [
              {
                "detail": "Sum: 10000 bps (must equal 10000)",
                "id": "sum",
                "label": "Share sum",
                "pass": true
              },
              {
                "detail": "Cap: 5000 bps (50%) -- all entries within cap",
                "id": "cap",
                "label": "Per-recipient cap",
                "pass": true
              },
              {
                "detail": "All addresses are unique",
                "id": "dups",
                "label": "No duplicate addresses",
                "pass": true
              },
              {
                "detail": "No blank or zero addresses",
                "id": "no_blank",
                "label": "No zero/blank addresses",
                "pass": true
              },
              {
                "detail": "All values in range",
                "id": "range",
                "label": "Share values 0-10000 bps",
                "pass": true
              },
              {
                "detail": "All addresses pass format check",
                "id": "addr_fmt",
                "label": "Address format (0x + 40 hex chars)",
                "pass": true
              }
            ],
            "sum": 10000,
            "valid": true
          }
        }
      }
    }
