{
      "tool_id": "art-289-lint-besu-settlement-contract",
      "tool_version": "1.0.0",
      "display_name": "Besu Settlement Contract Linter",
      "mcp_name": "lint_besu_settlement_contract",
      "mandate_type": "compliance_mandate",
      "wave": 53,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-289-lint-besu-settlement-contract.html",
      "description": "Static conformance lint of a permissioned-EVM settlement contract (Solidity source or ABI) against six invariants: atomic PvP/DvP (paired-or-revert), no native-token/msg.value settlement dependence, a finality-hook/settlement event, a compliance-gate modifier preceding every value transfer, bounded participant-set loops, and upgradeability disclosure. Lightweight in-browser parse only, never solc, never a network call. v1 scope is source + ABI; bytecode/opcode heuristics are deferred. Not a security audit.",
      "input_schema_ref": "chaingraph/art-289-lint-besu-settlement-contract.html#manifest",
      "deadline": null,
      "deadline_note": "Swift shared-ledger MVP live 2026-07-09; bank settlement contracts moving from design to production review.",
      "consumes": [],
      "feeds": [
        "art-292-attest-settlement-orchestrator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8452fcfb980e34593a3e46cab2d75a620d9e598ea12e618b94c74b04ff1f4ce7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-13"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LGv28MjYwvkciIV4MTOtsqM9cKlImvPNV9vXHf1K4Ncmy3biacp8soX+bDW3Mf7WFKqMOCkENFILZlqiqbhGEwTBPo9J40yglpAfIcmmp+yopoU2xW8tV6i0n1VDi9l2GMbAskJZR1u1sUjH/dAtkc0bdp2rq96H7iFcvifOlx4lZSBx78K13X0LlyzWEv1UeIscaC7ohzQroySXW+RICA36pFzRfclkDvkBmPohZ8R2E7+PIBb6SQ8O30m4uD7hLef7VwrLvLjBay+UJ9Q8w572lMZ1UY1tMS7IheSN0mwFFjKl0gHoDO+JfWV7rv1WCy6LSuZRsbY7bL11s94lWA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8452fcfb980e34593a3e46cab2d75a620d9e598ea12e618b94c74b04ff1f4ce7",
          "output": {
            "artifact_kind": "solidity",
            "fail_count": 0,
            "findings": [
              {
                "locus": "contract body",
                "rationale": "Two or more paired transfer calls guarded by require(...) found (atomic PvP/DvP heuristic).",
                "rule_id": "R1",
                "severity": "pass"
              },
              {
                "locus": "function modifiers/body",
                "rationale": "No payable functions or msg.value reads; settlement does not depend on the native token.",
                "rule_id": "R2",
                "severity": "pass"
              },
              {
                "locus": "event declarations",
                "rationale": "A Settled/Finalized/Settlement-named event declaration is present.",
                "rule_id": "R3",
                "severity": "pass"
              },
              {
                "locus": "transfer function signatures",
                "rationale": "Every transfer-named function carries a compliance-gate modifier (onlyCompliant/whenNotPaused/complianceGate).",
                "rule_id": "R4",
                "severity": "pass"
              },
              {
                "locus": "loop bounds",
                "rationale": "No unbounded participant-set loop pattern detected.",
                "rule_id": "R5",
                "severity": "pass"
              },
              {
                "locus": "upgradeability pattern",
                "rationale": "No upgradeable-proxy pattern (delegatecall/UUPS/TransparentUpgradeableProxy) detected.",
                "rule_id": "R6",
                "severity": "pass"
              }
            ],
            "invariants_pass": {
              "R1": true,
              "R2": true,
              "R3": true,
              "R4": true,
              "R5": true,
              "R6": true
            },
            "overall": "pass",
            "ruleset_profile": "sli-besu-settlement-v1",
            "warn_count": 0
          }
        }
      }
    }
