{
  "tool_id": "art-587-finp2p-ledger-proof-verifier",
  "tool_version": "1.0.0",
  "display_name": "FinP2P Ledger Proof Verifier",
  "mcp_name": "verify_finp2p_ledger_proof",
  "mandate_type": "compliance_mandate",
  "wave": 98,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-587-finp2p-ledger-proof-verifier.html",
  "description": "Verifies a FinP2P Ledger Proof in Hashlist mode against a caller-supplied secp256k1 public key. Recomputes the FinP2P Hashlist digest (fixed field order, group hash then hash-of-group-hashes, per finp2p-docs.ownera.io) and reports whether it matches the receipt's stated hash, and separately whether the secp256k1 signature over that digest verifies against the supplied key. Zero network calls; the verification key is caller-supplied, never resolved by this tool. Two independently reported results, never fused into one boolean. Makes no claim about ledger finality, settlement, or acceptance. EIP-712 typed-data proofs are out of scope (Hashlist mode only).",
  "input_schema_ref": "chaingraph/art-587-finp2p-ledger-proof-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_proof_ready": "ready",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:013d4547171c799f950105160dcf639ae9f06ee466c67e2f8856ceac24217cc6",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K3TDIm2G1ecQKDsolo/gB+4NDb8RyeuQh0yYSGcVJI8IhQ4+j2HgP/xqgWPKVEN3WZEnbkD8qtOa+NMOOmPyRSF3+r0mdFRh1iyLQp0QIjXj5qAHkCE4WOvnAYv3cpT0HHgSHh6eX0P7waHpzyElBR+Bib2Jz34mSXcNeZ+T5YorhK2ncMpyeY8EUcs1yYZ7wBURfoISgfU1nfbNIWUGtAMkNQieKDFWqEw+sYn0W6cs2gNA51B9AjMeg5hLTxKlChMg67zWQ8XxprXyfsbGfhm/G/2UGnjWZYPsx9BwBosQlC2dxuPYyTesDnFMBx+AibT4j0cA0JAW0Hy/r36D1Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:013d4547171c799f950105160dcf639ae9f06ee466c67e2f8856ceac24217cc6",
      "output": {
        "hash_match": {
          "computed_hash": "0x7026457a4291c4b86aebf2c19ea04acb3420907c95292ab9b32da025f0cc0dbd",
          "expected_source": "hashListValues",
          "result": true
        },
        "hashlist_field_order": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "hashlist_values_consistent": true,
        "hashlist_values_declared": [
          "id",
          "operationType",
          "transactionOperationId",
          "srcAssetId",
          "srcAssetLedgerInfoType",
          "srcAssetLedgerInfoId",
          "srcAccount",
          "srcAccountType",
          "dstAssetId",
          "dstAssetLedgerInfoType",
          "dstAssetLedgerInfoId",
          "destAccount",
          "dstAccountType",
          "transactionId",
          "amount",
          "execPlanId",
          "instructionSeq"
        ],
        "parse_errors": [],
        "scope_note": "Signature and hash verified against supplied FinP2P material only. This node makes no assertion about ledger finality, settlement, or acceptance (FINP2P-VERIFY-BUILD-SPEC.md §6).",
        "signature_match": {
          "curve": "secp256k1",
          "hash_func": "keccak_256",
          "result": true
        },
        "verified_against": "caller-supplied verification_public_key (not independently resolved -- see FINP2P-VERIFY-BUILD-SPEC.md §2)"
      }
    }
  },
  "export_capability": [
    "pdf",
    "xlsx"
  ]
}
