{
  "tool_id": "art-492-classify-settlement-finality",
  "tool_version": "1.0.0",
  "display_name": "Settlement Finality Classifier",
  "mcp_name": "classify_settlement_finality",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-492-classify-settlement-finality.html",
  "description": "Vendor-neutral settlement-finality classifier covering three settlement models, each on its own ordered tier ladder: an optimistic challenge window (soft, posted, challengeable, final), a validity proof (soft, committed, proven_unfinalized, final) and single-slot BFT consensus (soft, final). The ladders are deliberately kept separate because a posted batch on an optimistic rollup and a committed batch on a validity rollup are not the same claim, and the ladder actually used is emitted as tier_ladder so the receipt is self-describing. Validity-proof finality is treated as two gates rather than a timer, proof accepted and settlement-layer block finalised, so the in-between position is reported as proven_unfinalized. Adjudicates an asserted finality tier and flags an overstated claim. Chain identity is free text echoed verbatim: there is no chain enum, no named chain profile and no published window table, so the node cannot go stale when a network changes. Evaluation time is caller supplied and the kernel reads no clock. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-492-classify-settlement-finality.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:46e7fe0b9f14a69f3dc986d9646148d94f230f1f25765dbffe60f3082b8e7185",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-31"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FSDrEwB8OJsYSgpyvP2Y9VOCluSpUPkaak5113xxo4Mich/FuGLKgGF9Hqu2C3BybCBaa7p09M/wAHfrUUM8ISWjK/58LqNWOMjYBGOBRzh3KUb6q3T2KzzSZG5cKx/2KI2+mr83OImTwLrLKnNBMszKZaQIvwsG7HC9IBqJhxkIZyKadBg+1/vCrs58Y10c4xynlhKygYV93o13Ng1zvhdkoVTA9m/iqhRF0cBl8CofXsb7r6V/2R8+9O0NqXcqGOC6eG2qfBoDjRpGSSQesSHfFVyMmd27sBR67iBwBOMldkb2dypChGm4wn3KZSc3Z9u7eSP37X/2Zjk7abREQg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:46e7fe0b9f14a69f3dc986d9646148d94f230f1f25765dbffe60f3082b8e7185",
      "output": {
        "as_of_ts": 1753000000,
        "chain_label": "example optimistic rollup",
        "claim_verdict": "claim_overstated",
        "claimed_tier": "final",
        "draft_pinned": false,
        "earliest_final_at": 1753404800,
        "finality_tier": "challengeable",
        "meets_required_tier": false,
        "rationale": [
          "The challenge window is still open until 1753404800. Settlement inside an open window is optimistic, not final.",
          "A counterparty asserted final while the evaluated position is challengeable. The claim is overstated."
        ],
        "reorg_exposure": "low",
        "required_tier": "final",
        "settlement_model": "optimistic_challenge",
        "tier_ladder": [
          "soft",
          "posted",
          "challengeable",
          "final"
        ],
        "tier_rank": 2
      }
    }
  }
}
