{
      "tool_id": "art-319-rhc-valuation-linter",
      "tool_version": "1.0.0",
      "display_name": "Valuation Double-Count / Decimal Linter",
      "mcp_name": "lint_stock_token_valuation",
      "mandate_type": "collateral_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-319-rhc-valuation-linter.html",
      "description": "Lints Robinhood Chain stock-token USD valuation expressions for the double-count bug: the Chainlink price feed already includes corporate actions, so multiplying raw balance by price and then by uiMultiplier applies the same corporate action twice. Compares the tested valuation against the correct expression and flags the double-count when present, with the corrected formula returned. High hit-rate node for any developer writing a valuation path against 18-decimal stock tokens and an 8-decimal feed. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-319-rhc-valuation-linter.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1b2549c6c23eeff309d070117288897e871490b446375f87875bd6d973e25a31","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-16"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Jp7xv2gzS/91O1n4xt5o0GHieDZwdRjTDAdpsmSvRFwPoLFN0nrH+5TS6X9+fdtLzGee5A/7TlvuNcpdUoMrShMODZfyTehkvChnGb95EDWhhj/OjHbps6NS5fTh8xmdMGIBBHbBA8Y367+W4+tHN36epO9LCuCZ4HAOka9UQ/8XTriaDsy7oQ+YkpTT1f+UZLJY/xemGcEIJdoPNo0LXBUKZqUkZ9+6pUrvLt3fjTG4x+YOkHENv5O3YSKhA8e2GlbhCBLMG3ua2+tJMrJtwovS/AP04GGfN7in9kOCIYkZCZfkQbnQixABbQVdNbXosWR3YbmUVJxksGFJOB50rQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1b2549c6c23eeff309d070117288897e871490b446375f87875bd6d973e25a31",
          "output": {
            "computed_usd_value_under_test": 2500,
            "correct_value": 2500,
            "corrected_expression": "raw_balance * chainlink_price_usd  (do not multiply by uiMultiplier — the feed already reflects it)",
            "delta": 0,
            "discrepancy": null,
            "double_counted_value": 5000,
            "verdict": "CLEAN"
          }
        }
      }
    }
