{
  "tool_id": "art-550-reg-e-remittance-disclosure-check",
  "tool_version": "1.0.0",
  "display_name": "Reg E Remittance Disclosure Consistency Check",
  "mcp_name": "check_reg_e_remittance_disclosure",
  "mandate_type": "compliance_mandate",
  "wave": 91,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-550-reg-e-remittance-disclosure-check.html",
  "description": "Deterministic recompute of the Reg E Subpart B (12 CFR 1005.31, implementing Dodd-Frank section 1073) remittance disclosure arithmetic identity: amount_received = (send_amount - total_fees) x exchange_rate. The caller supplies a provider's already-disclosed send amount, total fees, exchange rate, and recipient amount (all as integer cents / a rate scaled by 1,000,000, no floats); this kernel recomputes the identity and reports amount_recipient_recomputed, disclosure_consistent, and the exact discrepancy amount if any. Never fetches a live rate and never generates a fresh disclosure of its own -- it verifies that numbers a provider already disclosed are internally consistent. Distinct from art-248-compute-remittance-disclosure, which computes a disclosure from scratch rather than checking one against a caller-declared recipient figure.",
  "input_schema_ref": "chaingraph/art-550-reg-e-remittance-disclosure-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8824902adca9694e5a610a35b14e2eea59ae7f67ef1a98985dea146a6ac144b9",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HF4CnmUsWa316oob+adx2I+9Xfx4amVWw1PHh7orVnoX0tzULAC65Z5F1x4A6aAcj0PwaSZwshMTADWvNCKurwZBgTYlgN07KX09qvM9H9dRwM91UPiJx9fiYOA0nJ9cIraXU3kwGsJKmTCzJ8pKmP4bf3J1kcUFzvbe1vQcKWIgIfDXPF+/jDU3Xlh+zHIZ9iWyHmPwpznuCv1Tm6qZTARgmVRcEy5lv9/mU1CRFq855JA2yPAMnbu++9byvsB1CplYZDBeY7VJTOmBoROtsEh0BMmnyonXH6bo/zeMhasqquvsL5CDeUASihNXVVelj66htxsRoGzwY5c/U3lWzQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8824902adca9694e5a610a35b14e2eea59ae7f67ef1a98985dea146a6ac144b9",
      "output": {
        "amount_recipient_disclosed_cents": 41225,
        "amount_recipient_recomputed_cents": 41225,
        "amount_recipient_recomputed_display": "412.25",
        "as_of": "2026-08-01",
        "disclosure_consistent": true,
        "discrepancy_amount_cents": 0,
        "discrepancy_amount_display": "0.00",
        "exchange_rate_disclosed_display": "0.850000",
        "exchange_rate_disclosed_e6": 850000,
        "note": "Deterministic recompute of the Reg E Subpart B (12 CFR 1005.31) disclosure arithmetic identity amount_received = (send_amount - total_fees) x exchange_rate against a caller-disclosed recipient amount. Zero live rate calls; verifies internal consistency of numbers already disclosed, never generates a fresh disclosure.",
        "rationale": [
          "Disclosed: send 500.00, total fees 15.00, exchange rate 0.850000, recipient amount 412.25.",
          "amount_received_recomputed = (send 500.00 - fees 15.00) x rate 0.850000 = 412.25.",
          "Disclosed recipient amount matches the recomputed identity exactly. disclosure_consistent = true.",
          "This is a deterministic recompute of the disclosed arithmetic identity, never a live rate lookup and never a fresh disclosure generator (see art-248-compute-remittance-disclosure for that). It issues no verdict on whether the provider must re-disclose -- only whether the numbers already disclosed are internally consistent.",
          "12 CFR §1005.31 (Reg E Subpart B, implementing Dodd-Frank §1073), disclosure arithmetic identity: amount_received = (send_amount - total_fees) x exchange_rate"
        ],
        "regulatory_basis": "12 CFR §1005.31 (Reg E Subpart B, implementing Dodd-Frank §1073), disclosure arithmetic identity: amount_received = (send_amount - total_fees) x exchange_rate",
        "rejected_inputs": [],
        "send_amount_cents": 50000,
        "total_fees_disclosed_cents": 1500
      }
    }
  }
}
