{
  "tool_id": "art-584-proof-of-reserves-verifier",
  "tool_version": "1.0.0",
  "display_name": "Proof-of-Reserves Verifier",
  "mcp_name": "verify_proof_of_reserves_consistency",
  "mandate_type": "compliance_mandate",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-584-proof-of-reserves-verifier.html",
  "description": "Independently recomputes an exchange or custodian's published Proof-of-Reserves data: a single-leaf Merkle-sum inclusion path, a liability-side Merkle-sum branch aggregation, and a coverage ratio between the two recomputed sums, with an optional cross-check against a caller-declared published reserve figure. Emits a per-check finding (reserve_inclusion, liability_aggregation, coverage_ratio) plus an overall CONSISTENT, INCONSISTENT, or INDETERMINATE determination. Generic Merkle-sum schema only; named-exchange export formats are a documented field-mapping reference in the page copy, not a standing per-exchange adapter. Mirrors the shipped art-280 reserve-proof-verifier (single-leaf inclusion) and art-540 por-liabilities-composer (composes a caller-asserted liabilities total); this node independently recomputes both sides from raw Merkle-sum path data rather than composing a pre-verified boolean. CONSISTENT never implies solvency, audit assurance, or that the underlying published figures are truthful, only that what was published is internally consistent with itself.",
  "input_schema_ref": "chaingraph/art-584-proof-of-reserves-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:852795237d7839b503e955db5db49f8d87ff6dc9edeb5a31687fca2e6f660b66",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state) — EDGE-PROVE-1.",
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GwpZKPsbPp8/yTZyb35Gmy52l5Ma4oApO9hE+CXSpJsUybuq/gKmpFtVgyS4WBlojbDklOnIVxYGb233K/wl7iLnmpjkm6Gm1ci9/3M19yOBmEDzp3wz6OgCGTiEIHCZAR/TWhY6qXw6BJwfqv8/VQQSJtKZfvwlRrafVkvo4BEiVwgRdaiG5QdApJ7yoPz9CIDFyhVbzH+ctOScRH38nRSHScbIWEp2K0yWiex2dotYjRAexAPGeP0uXZk1Af+gE403ON6MtlXHMKlyb4ftMzqktcWmj08hLdkss5UX1nUU1mqsqdwS54WhAvTcK0CzGfxaiCh1mhttpYhp6UzDVA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:852795237d7839b503e955db5db49f8d87ff6dc9edeb5a31687fca2e6f660b66",
      "output": {
        "computed_liability_root": null,
        "computed_reserve_root": null,
        "coverage_ratio_pct": null,
        "declared_liability_root": null,
        "declared_reserve_root": null,
        "determination_note": "Verdict language describes internal consistency of the published PoR data only, never a solvency claim or an audit opinion. The truth of the underlying published figures is the attestor's responsibility.",
        "findings": [
          {
            "check": "reserve_inclusion",
            "detail": "No reserve_proof supplied. Inclusion cannot be checked.",
            "verdict": "INDETERMINATE"
          },
          {
            "check": "liability_aggregation",
            "detail": "No liability_branch supplied. Liability aggregation cannot be checked.",
            "verdict": "INDETERMINATE"
          },
          {
            "check": "coverage_ratio",
            "detail": "Coverage ratio requires both a recomputed reserve sum and a recomputed liability sum; at least one is missing or malformed.",
            "verdict": "INDETERMINATE"
          }
        ],
        "not_proven": [
          {
            "detail": "A single liability-branch aggregation proves that branch's subtotal sums correctly; it cannot detect an issuer omitting accounts from the liability tree entirely.",
            "item": "Total liabilities completeness"
          },
          {
            "detail": "Pledges, rehypothecation, or liens against reserve assets are not visible in a Merkle-sum inclusion or aggregation proof.",
            "item": "Off-balance-sheet encumbrances"
          },
          {
            "detail": "This is a point-in-time snapshot at attestation time, not a continuous or real-time solvency guarantee.",
            "item": "Continuous solvency"
          },
          {
            "detail": "This tool checks internal consistency of the published data (do the recomputed sums and hashes match what was declared). Whether the underlying published figures are themselves true is the attestor's problem, not something this recomputation can determine.",
            "item": "Data truthfulness"
          },
          {
            "detail": "This tool performs no audit and carries no PCAOB or other audit-firm opinion; it is a cryptographic consistency check only.",
            "item": "PCAOB audit opinion"
          }
        ],
        "overall_determination": "INDETERMINATE",
        "regulatory_framework": "Voluntary Merkle-sum PoR attestation (Summa report structure); not a GENIUS Act §4 filing (see art-582/art-275/art-06) and not a PCAOB audit.",
        "reserve_figure_cross_check": null
      }
    }
  }
}
