{
  "$schema": "https://ainumbers.co/schema/chaingraph-v1.0.json",
  "version": "1.67.0",
  "updated": "2026-07-14",
  "spec_version": "0.8.13",
  "maintainer": "Post Oak Labs",
  "description": "Machine-readable index of the AINumbers ChainGraph suite. Every tool's MCP name, mandate_type, inputSchema pointer, and chain edges (consumes/feeds). Linked from llms.txt and embedded as JSON-LD on the hub. Internal mandate_type taxonomy — not AP2 v0.2 spec vocabulary.",
  "hub_url": "https://ainumbers.co/chaingraph/chaingraph-hub.html",
  "mcp_server": "https://mcp.ainumbers.co/mcp",
  "license": "CC BY 4.0",
  "contexts": [
    "https://ainumbers.co/chaingraph/context/v0.3/context.jsonld",
    "https://ainumbers.co/chaingraph/context/v0.3/iso20022-context.jsonld"
  ],
  "okf_bundle": "https://ainumbers.co/chaingraph/okf/index.md",
  "publisher": {
    "name": "Post Oak Labs",
    "url": "https://postoaklabs.com",
    "lei": null
  },
  "v0_3_note": "Optional v0.3 additions: ISO 20022-aligned semantic_profile markers on payment/settlement nodes, did:key keyid + optional LEI party identity, and an auto-generated OKF companion bundle (okf/). All additive — hash preimage and internal IDs unchanged.",
  "suite_claim": "Client-side, zero-egress, Policy-Mandate-emitting decision tools with verifiable execution hashes — connective tissue for the agentic-finance stack.",
  "five_tests": [
    "Exports a valid Policy-Mandate-style artifact JSON (ap2_version, mandate_type, tool_id, execution_hash, chain block, policy_parameters, output_payload, compliance_flags, audit_signature)",
    "Exposes an MCP tools/call endpoint — typed inputSchema, deterministic output parseable without vision",
    "Exports a decision, not context — a breach probability, a conformity verdict, a verified mandate",
    "Is chainable — output is a valid input or precondition for at least one other tool in the suite",
    "Carries a verifiable anchor — execution_hash traceable to a reproducible client-side computation via WebCrypto SHA-256"
  ],
  "ap2_schema_note": "The mandate_type values are an internal AINumbers taxonomy, not fields of the official AP2 v0.2 spec (FIDO Alliance-governed Intent/Cart/Payment Mandates). ART-01 validates real AP2 v0.2 structures; all other tools emit AINumbers-typed artifacts about their respective decision domains.",
  "chain_block_spec": {
    "parent_hashes": "sha256:<execution_hash> strings from upstream artifacts consumed in this run",
    "parent_tool_ids": "tool_id strings matching each parent hash",
    "chain_depth": "0 for root; max(parent depths) + 1 for chained artifacts",
    "verification": "Re-run the parent tool with the same inputs, recompute SHA-256 over sorted-key JSON of policy_parameters + output_payload via WebCrypto, and confirm the hash cited in the child artifact."
  },
  "nodes": [
    {
      "tool_id": "503-canton-tokenization-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Canton Tokenization Readiness Diagnostic",
      "mcp_name": "diagnose_canton_readiness",
      "mandate_type": "readiness_diagnostic",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/503-canton-tokenization-readiness-diagnostic.html",
      "semantic_profile": "iso20022:party-identification",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/party-identification.jsonld",
      "description": "12-question weighted diagnostic across six readiness domains for Canton Network pilots: settlement ops, custody, cash-leg, privacy, AML/KYA, and capital. Routes to the correct workflow chain based on gap scores.",
      "input_schema_ref": "tools/503-canton-tokenization-readiness-diagnostic.html#manifest",
      "deadline": null,
      "deadline_note": "Canton/TMI. Root D0 diagnostic for the Canton Capital Efficiency chain.",
      "consumes": [],
      "feeds": [
        "504-settlement-risk-capital-optimizer"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:cd83aaa98a7055cdc55b74bf14d81e559e4797625a9796e5d8deaa43a9021157","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AyYBkZXQjvmSkBpxbsPuDD8b83LnESoc4eTuwCUu2+0nZz4y/l5Yu/1n0yN4wSyS8Y6bIqQoDjYzVXfxap93SQ1/jvvfx7tA+iyfsKq364JqH3wrPSViqigHOHPiUqT6FwpeeK0Z3jEzLxr0ur9Jc+clK7SoVmAXxv02brNL3kwq+UsWDEVRvMrPyMGjx7dwDI50vpmh4pbZ6mobSvU14S7Dnh51j2IiguoJKlC/HnYTVCAVomwqjNlykOPMYTu9LuSR0OD2iSTOt5UqYFO/F/1ry6bK1aTCYdxdUKLxBu4qdxNwGrOSqoe7da26go++Z0eMay8LDTFfViTXQxMoUw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:da4585f3af8737c4926616fe22ee21a3355c1d943dc3cd8f630f95ca794b2ca8",
          "output": {
            "domain_scores": {
              "aml_kya": 0,
              "capital_governance": 0,
              "cash_leg": 0,
              "custody_eligibility": 0,
              "privacy_disclosure": 0,
              "settlement_ops": 20
            },
            "gaps": [
              "custody_eligibility",
              "cash_leg",
              "privacy_disclosure",
              "aml_kya",
              "capital_governance"
            ],
            "total_score": 20,
            "verdict": "F"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "504-settlement-risk-capital-optimizer",
      "tool_version": "1.0.0",
      "display_name": "Settlement-Risk Capital Efficiency Optimizer",
      "mcp_name": "optimize_settlement_capital",
      "mandate_type": "capital_assessment",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/504-settlement-risk-capital-optimizer.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Quantify RWA and capital savings from moving to Canton atomic DvP. Outputs bps-of-notional saved per year under BCBS CRE70/CRE52 SA-CCR. Stage 2 of the Canton Capital Efficiency chain.",
      "input_schema_ref": "tools/504-settlement-risk-capital-optimizer.html#manifest",
      "deadline": null,
      "deadline_note": "Canton capital efficiency chain. CRE70 settlement-risk capital relief; CRE52 SA-CCR netting.",
      "consumes": [
        "503-canton-tokenization-readiness-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:57a3a1bd70235be6b46ba6d177b784665e1480eb8f0c59047d84f3498611cfe8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JAe5wHiJyv6BoYU2dOG/8xnIGZ9TBngYJJ7zqDCrE5ck/gkWK/QyJ+Nf+wKBoqK3KauA2W4agGH2LMrFDT5SlA9szP1yhhQslGu/swVTFB2EzT6Js+kQ4W9UfDi7yTGXMCB01mIhxBj69H+2yJFTMPfxeUaNoBSQNuL7c9cqQ3onEapGmE8F8xYbZ5X8c4r5birTFVQM6oucOr3dHHR5XytznQcKZ2uREpzWn/rU00WuE7HDJ15R8SHCcUuqh1M6BIHeeAoNHlIsiJsnOmGAWxbdGeHctioMoQae+YAn0h4P+xZSYSk8hXpQ3MvAWHf7BcNL7T8sVf9K+tD8LsD28w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:57a3a1bd70235be6b46ba6d177b784665e1480eb8f0c59047d84f3498611cfe8",
          "output": {
            "cet1_ratio": 0.125,
            "cost_of_capital": 0.1,
            "portfolio_bps": 0,
            "rows": [
              {
                "annual_saving_usd": 0,
                "asset_class": "ir",
                "capital_freed_usd": 0,
                "capital_legacy_usd": 0,
                "ead_atomic_usd": 0,
                "ead_legacy_usd": 0,
                "flags": [
                  "IMMATERIAL_SAVING"
                ],
                "instrument": "IR Swap 5Y",
                "notional_usd": 10000000,
                "pfe_legacy_usd": 0,
                "rating": "aaa",
                "risk_weight": 0.2,
                "rwa_delta_usd": 0,
                "rwa_legacy_usd": 0,
                "saving_bps": 0,
                "settle_days": 0,
                "settlement_type": "t0"
              }
            ],
            "total_annual_saving": 0,
            "total_capital_freed": 0,
            "total_notional_usd": 10000000,
            "total_rwa_delta_usd": 0,
            "verdict": "IMMATERIAL"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "505-tokenized-collateral-eligibility-checker",
      "tool_version": "1.0.0",
      "display_name": "Tokenized Collateral Eligibility Checker",
      "mcp_name": "check_tokenized_collateral_eligibility",
      "mandate_type": "collateral_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/505-tokenized-collateral-eligibility-checker.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Classify tokenized assets for DTC/Fed eligibility and Basel HQLA tier (L1/L2A/L2B/non-HQLA). Shared eligibility layer consumed by DvP, repo, margin, and fund workflows. BCBS d349/SCO60.",
      "input_schema_ref": "tools/505-tokenized-collateral-eligibility-checker.html#manifest",
      "deadline": null,
      "deadline_note": "shared collateral eligibility node. DTC/Fed eligibility + Basel HQLA tier; consumed by T506, T508, T513, T514.",
      "consumes": [],
      "feeds": [
        "506-onchain-cash-leg-finality-checker",
        "513-margin-call-collateral-mobilizer",
        "514-tokenized-fund-collateral-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:37bbe20bf9c7e913038c93cc07f1425e4956c47da12a2663b58e35f50c3173c2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BMbYXehEz5SKcl+U1lUQ5SD/hZ8M6AegydDm9psHMuQnGV9lLpKXczJC1U19mA3u3Qaj3UCTOGUpAfl25ZKMxy85KFZvYsj/0/qmGof9vG5JOwg+GiuC/APETl0KK+mkLX/FsZIv0ydXhvhwQkptuxc++KhfTyZl52J2GWDhJZUb20dV8AEyjbH0FbmKxPgLftqu6rwy4SgQ+yh94+NWSQOEsRNLx9xv8nuT/OXCE7ElBlZ0gY2AfBs0fpFF2isSEVZvbIGBGyx8ayQ1+7nqUANnUrB3opCnho/P+waXb1EmkwQz+TYDpcQyy18R77atTJWxvbgEIwOc9M+e6lM4Dw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e967bfa86d87e1d11547a72a5d3c0eaad5264c87d8114cdcfb28f0e604061d4c",
          "output": {
            "adjusted_value": 1000000,
            "base_haircut": 0,
            "dtc_status": "DTC_ELIGIBLE",
            "final_haircut": 0,
            "haircut_adj": 0,
            "hqla_tier": "HQLA_LEVEL_1"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "506-onchain-cash-leg-finality-checker",
      "tool_version": "1.0.0",
      "display_name": "On-Chain Cash-Leg Finality Checker",
      "mcp_name": "check_cash_leg_finality",
      "mandate_type": "attestation_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/506-onchain-cash-leg-finality-checker.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Validate USDC/deposit-token cash-leg finality, reserve attestation, and GENIUS Act / MiCA compliance for Canton settlement. Emits a finality_verdict and GENIUS PPSI / MiCA EMT conformance flags.",
      "input_schema_ref": "tools/506-onchain-cash-leg-finality-checker.html#manifest",
      "deadline": null,
      "deadline_note": "cash-leg finality. GENIUS Act enacted; GENIUS PPSI AML NPRM (Fed. Reg. 2026-06963); MiCA EMT Art. 48.",
      "consumes": [
        "505-tokenized-collateral-eligibility-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a8dc570f0262a6be9c06dc3b094353f70b4e87b7b379e93f7113086935456dbc","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IBi4eGXOuYDTRGvG5F+3A6d8Ula2n1/SOJcX39pG4CcmtJXJN6ch6hbTmbbi36ePhSoctQ3e0+CqKDz65PawZTAJBaIqxGMZWyQP3eFLhgBf2/lYtD0jtpFzNUiim7huAM6tO09cF2aeo6lSQmRmFZzd7lB4YVn4NxhxGbqg8kEVoRXT45vrURbmfAAuKGGDl6REJyCYIcs+nXUWFMQGqAdwyV/sPRdo5homtUZ5MlY/CmUEX9QIIwLlHWDf2p5uAGNzwN8WMScZJFhu2rBLUG0FAlbeFQ1GSyynqQkFicgIq+NUQi0B6rArZB01E+A1wFMF1owqRkfovIhKlZK7+w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:409045ca43315adeee677c601bc8faeb03ec9207db17e2614c7fe56ce41c5b92",
          "output": {
            "depeg_wide": false,
            "finality_flag": "FINALITY_ATOMIC",
            "finality_pass": true,
            "genius_sum": 100,
            "has_critical": false,
            "has_gaps": false,
            "mica_gap": false,
            "verdict": "PASS"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "507-canton-dvp-atomicity-validator",
      "tool_version": "1.0.0",
      "display_name": "Canton DvP Atomicity Validator",
      "mcp_name": "validate_canton_dvp_atomicity",
      "mandate_type": "settlement_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/507-canton-dvp-atomicity-validator.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Validate atomic DvP settlement on Canton Network against PFMI Principle 12. Generate a counterparty-verifiable settlement-readiness attestation with execution_hash. Eliminates Herstatt risk.",
      "input_schema_ref": "tools/507-canton-dvp-atomicity-validator.html#manifest",
      "deadline": null,
      "deadline_note": "Canton DvP chain. PFMI P12 atomic DvP; BCBS CRE70 settlement risk capital relief.",
      "consumes": [],
      "feeds": [
        "505-tokenized-collateral-eligibility-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e8b30471c1feafecb89b5283df71ad9b4f2aeafe3b4606af46ae14e48849f55c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Csa2KfasKRysHKHzWSiQD+p50/1dPkSnZBdQwPgF8/sEdnZr5TjZluJRHoAkVOgIHPxV+C+d/nc0pI5symeyWCbqMdDs6IXiBtJIynr69Pd8NxB1PB/eo9e8Tx18dAfnKboSLxFisV1PPPzw248tIiV8qQVPejcau1EJ7W/rEP0k9hMAZkZPz2bffHPlFDZuSacQ/X0i+BJzeR2+nuPQJiAkmDAjtWKFb7juxmtAvLdmersrCHSKxQ/gYLdLaKKdGuPxqPbmBnOy72y/iNvZiTkMVAeez0f/Sa6f4FDue7cGBv8MhFLKtS3NK6NAzbEAzJNhpkOGHyaB1wQEOqs0tw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2cfaef75317d0f205a82a59d73641189ebd85050150f798dfd220a8252697a80",
          "output": {
            "atomicity_flag": "ATOMICITY_PFMI_P12_COMPLIANT",
            "atomicity_status": "COMPLIANT",
            "currency": "USD",
            "finality_flag": "FINALITY_IRREVOCABLE_REALTIME",
            "herstatt_eliminated": true,
            "settlement_amount": 1000000,
            "verdict": "PASS"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "508-repo-haircut-collateral-calculator",
      "tool_version": "1.0.0",
      "display_name": "On-Chain Repo Haircut Calculator",
      "mcp_name": "calculate_repo_haircut",
      "mandate_type": "collateral_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/508-repo-haircut-collateral-calculator.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Compute repo haircut with Canton 24/7 collateral valuation versus legacy weekend gap. Applies Basel CRE22 supervisory haircuts and BCBS d349 SFT minimum haircut floors. GMRA/SFTR reporting output.",
      "input_schema_ref": "tools/508-repo-haircut-collateral-calculator.html#manifest",
      "deadline": null,
      "deadline_note": "Canton repo mobility chain. CRE22 supervisory haircuts; d349 SFT minimum haircut floors; 24/7 valuation advantage.",
      "consumes": [],
      "feeds": [
        "505-tokenized-collateral-eligibility-checker",
        "506-onchain-cash-leg-finality-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7acd49f6f660a85da84398f65f694822d18b97e1241d8b3fc15fc177b11285a5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ApnRKejsHZv0uoeOD8YfRT1FmaQHfffK29K2/5lN3H8nVeAEdANpIUK4X+r24yNAfpJ6DaaEgrsXne1x4ypjWwAHkz7j9m1O4om8zD6kDkkPgrHqcjQHC/0OWf0DS5HmDTwVFAC/3EP/pcPRZn1Jvf0pkXB8lP3E4S5ag6L8V4EGEKGEs4Yil/95MdJUuPzSYRYfQiMgj65rumEwQ+PqVAJmFpg06yvROy9NsOJ1M1CuJnN5IRJR7cSjBfdTumx3HUuLybDIMxtT5+UcMfXPjCnOICU12DyCVIBpQQVj/a8mW4rh6IdGlVKxa+1jJ+iWse3RRbWzNjm3SDnsnA82YQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7acd49f6f660a85da84398f65f694822d18b97e1241d8b3fc15fc177b11285a5",
          "output": {
            "active_haircut_pct": 4,
            "adjustments": [
              {
                "delta": 1.5,
                "reason": "weekend_valuation_gap_legacy"
              }
            ],
            "base_haircut_pct": 4,
            "canton247": true,
            "canton_haircut_pct": 4,
            "collateral_type": "ust_10y",
            "d349_floor_pct": 0.5,
            "haircut_tier": "teal",
            "initial_margin_usd": 400000,
            "legacy_haircut_pct": 5.5,
            "notional_usd": 10000000,
            "tenor": "overnight",
            "vm_threshold_usd": 20000,
            "weekend_saving_pp": 1.5
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "509-canton-party-allowlist-validator",
      "tool_version": "1.0.0",
      "display_name": "Canton Party Allowlist Validator",
      "mcp_name": "validate_canton_party_allowlist",
      "mandate_type": "compliance_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/509-canton-party-allowlist-validator.html",
      "semantic_profile": "iso20022:party-identification",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/party-identification.jsonld",
      "description": "Screen counterparties against FATF Travel Rule, AML/KYA requirements, and canton allowlist rules for Canton Network onboarding. Emits allowlist_verdict, FATF flags, and approved party list.",
      "input_schema_ref": "tools/509-canton-party-allowlist-validator.html#manifest",
      "deadline": null,
      "deadline_note": "Canton counterparty onboarding. FATF Recommendation 16 Travel Rule; AMLAR/6AMLD KYA requirements.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:83887e461c79e0e1d5966dc6ad1887b4f0e205494e6dda2381001970b364930a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Kl8PGKF+sVx0YTRmGORM0jQGm9OlCHkLzuEEoOvPcG4MAGvq/1eA3ghRY6u+FCJMIlqzC+wkWhvp7YYzVamRiSicLEb3oA8CzgWcbBe79aaKHSzthrolVCZPrUpmgrfWCHGLoPJ39PtO4+RuCtAr33L1HCa6YaRGtPPmIg5JQAQOI7yfZ5bKSGmUOkqjGCXgsPEL4ujo6aU8G96rgv3O0C3UMocUOCgVuPM/3i6+rzwMVNVxxpXiyoDS6cfAk1RtJJtG+owW7FQPR1rWFgDPfsqRtsOcZcYxoCOiVUxTurIe+dgne6hxXdL1LEPixdbLMyVHNqcoFG9WHqMeVkGzlQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c10e99df22335aa474e0009685d7b5906b3f09b79c2490bf9b89c51753ea4d79",
          "output": {
            "parties": [
              {
                "decision": "APPROVED",
                "flags": [],
                "party_name": "Test Bank Ltd"
              }
            ],
            "party_count": 1,
            "portfolio_verdict": "ALL_APPROVED"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "510-digital-asset-regulatory-classifier",
      "tool_version": "1.0.0",
      "display_name": "Digital Asset Regulatory Classifier",
      "mcp_name": "classify_digital_asset_regulatory",
      "mandate_type": "compliance_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/510-digital-asset-regulatory-classifier.html",
      "semantic_profile": "iso20022:party-identification",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/party-identification.jsonld",
      "description": "Classify tokenized assets under GENIUS Act, MiCA, MiFID II, and EU DLT Pilot Regime. Outputs applicable frameworks, MiFID II instrument type, and DLT Pilot eligibility flag.",
      "input_schema_ref": "tools/510-digital-asset-regulatory-classifier.html#manifest",
      "deadline": null,
      "deadline_note": "digital asset classification. GENIUS Act enacted; MiCA Arts. 3/17/48; MiFID II Annex I; EU DLT Pilot Reg. 2022/858.",
      "consumes": [],
      "feeds": [
        "512-tokenized-security-lifecycle-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e70b5a1adf38189f6a6f09d6b4b0dcfaf16394beb5f30f8b397cadbb0ffa2a5f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G/Plj1MoQkU1QFIskwTU7F9JPSZ5rUuDGIYcFszzbzMYRpqZdKJ0BgvMJ6TJySR1hkwA+1XRgLlWdP6Pz6ZO0h07scNgO+/ZQF63Tf+AC7GkoDlhi0If30q/ZwyqUY43BG+FN2UKh+PBTWSKV/hiYdJZ+dYtWj7TnyAE5has7ukpKs6HHHhuiZaGLSboYpWpNa0qCoFFEG51UCKt/hhPySG1AYcSIj3zbx9KAWVzSVRFvIGyt+bTj4vopbDKcrA6CQMDJQSEvSOd/R7f8DeqyiYnl1eLzxIePOODEI8DVqIhaYGP4k5MDXu/afAI4p34a0WaL/L8CpElK/Yo3drm+w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a686291c78e974bd40f11476795f779898da4ccd37d010a5d5d5ce06bbb27fe5",
          "output": {
            "classification_results": [
              {
                "applies": "APPLIES",
                "flag": "GENIUS_ACT_APPLIES",
                "framework": "GENIUS Act"
              },
              {
                "applies": "NOT APPLICABLE",
                "flag": null,
                "framework": "MiFID II"
              },
              {
                "applies": "NOT APPLICABLE",
                "flag": null,
                "framework": "MiCA"
              },
              {
                "applies": "N/A",
                "flag": null,
                "framework": "EU DLT Pilot Regime"
              }
            ]
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "511-multi-currency-pvp-validator",
      "tool_version": "1.0.0",
      "display_name": "Multi-Currency PvP Validator",
      "mcp_name": "validate_pvp_settlement",
      "mandate_type": "settlement_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/511-multi-currency-pvp-validator.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Validate atomic cross-currency PvP settlement on Canton to eliminate Herstatt risk in FX and multi-currency repo. Covers PFMI P12 PvP model compliance, FX netting, and repo pre-funding windows.",
      "input_schema_ref": "tools/511-multi-currency-pvp-validator.html#manifest",
      "deadline": null,
      "deadline_note": "multi-currency PvP. PFMI P12; BIS/FSB PvP guidance; BCBS CRE70 Herstatt risk elimination.",
      "consumes": [
        "507-canton-dvp-atomicity-validator",
        "505-tokenized-collateral-eligibility-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2675f0d22096ace35e1dfb500c6f332c77fc66bba78a1e3878575bb466267925","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L9+CAL+Zj+DaHZO94sq7yPuA17FzE3vueocWRO8sQ3EgxG5O1saMf4LHpvq4eHtzTf+i8dA/Mf6D3oGlr/XnAiK7W8V7+eGryG3ucjWgR++2SI2FW7f0dwyRDNiCJFn6LyY6cFXmjLeOXJbpdj+7BjB2DrSMQWgWwC9XDIHho80t/lbd8MWvgX5In5jUsgWEly16+G7pizo1GfsUxCYhUyj0chxIO4VwYI51qI8oo1lYNmkmvjz/jHNZALA5wh0QEiLHZ9iqDcuFlIHasOpj/p2sauLDDyb4RL5Tp3yxxMMkUFWgS7ZASDyfYBa5oSwW7SeEjchl3jzGcbQGElvdOw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2675f0d22096ace35e1dfb500c6f332c77fc66bba78a1e3878575bb466267925",
          "output": {
            "atomicity_type": "atomic_pvp",
            "finality_status": "FINALITY_CONFIRMED",
            "has_canton_leg": true,
            "has_unwind_procedure": true,
            "herstatt_risk_status": "HERSTATT_RISK_ELIMINATED",
            "leg_count": 1,
            "legs": [
              {
                "ccy_bought": "EUR",
                "ccy_sold": "USD",
                "implied_rate": 0.92,
                "notional": 1000000,
                "notional_usd": 1000000,
                "rate_flag": null,
                "ref_rate": 1.086957
              }
            ],
            "pfmi_p12_status": "PFMI_P12_COMPLIANT",
            "saccr_fx_addon_usd": 40000,
            "total_notional_usd": 1000000,
            "verdict": "PASS"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "512-tokenized-security-lifecycle-validator",
      "tool_version": "1.0.0",
      "display_name": "Tokenized Security Lifecycle Validator",
      "mcp_name": "validate_tokenized_security_lifecycle",
      "mandate_type": "compliance_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/512-tokenized-security-lifecycle-validator.html",
      "semantic_profile": "iso20022:party-identification",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/party-identification.jsonld",
      "description": "Validate Daml lifecycle coverage for tokenized securities: issuance, coupon/dividend, corporate actions (splits, mergers), and maturity/redemption events. EU DLT Pilot Regime and MiFID II compliance.",
      "input_schema_ref": "tools/512-tokenized-security-lifecycle-validator.html#manifest",
      "deadline": null,
      "deadline_note": "Canton securities issuance chain. Daml lifecycle contracts; EU DLT Pilot Reg. 2022/858; MiFID II.",
      "consumes": [
        "510-digital-asset-regulatory-classifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f17b5982d127f5ae1fcc3d3dc4be5844c49a6c73de4e12e41815b25215350270","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GHC+VSoCLOClEa9f//DjuBYJ4zNmCOlhP79cipMcf9oaQ1b9c0CgBknZT3GH96EF4YkhcclZRgZuIEuzJ5n3Ih1ydpqgedYzrVpleqNGrlaOUDvwf/L6pX+d9wmEwF45GCzjqZ2PIBZvDSLxC9hgrN5ni5q/sk9sQSGFoVSY21Ae+dVIdMiBXI8hnr8sl7RO4zKOG++wyvI7STnr6KF1XQaDmWphPQJnPxFPJ5WZXqohEgJM82OkARBFqSnNMu14KiIjf/hGkJd7HBU2V3AwHROt93f3J5wUHHpc/y5HKScOYpNara9haQspfep8PZXZbrmBcTe4QgVQgcJWn2HPdg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c4ea2bad02c1ae69b1e0dc69c2483d6271f8d398ef9c37752ae412966278cb58",
          "output": {
            "all_gaps": [],
            "critical_gaps": [],
            "event_matrix": {
              "coupon_payment": "ok",
              "issuance": "ok",
              "maturity_redemption": "ok"
            },
            "verdict": "compliant",
            "verdict_badge": "LIFECYCLE_COMPLIANT"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "513-margin-call-collateral-mobilizer",
      "tool_version": "1.0.0",
      "display_name": "Margin Call Collateral Mobilizer",
      "mcp_name": "mobilize_margin_collateral",
      "mandate_type": "collateral_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/513-margin-call-collateral-mobilizer.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Margin computation branched by instrument type: UMR/BCBS d499 for uncleared derivatives; GMRA/BCBS d349 for repo/SFT. Never mixed. Canton 24/7 collateral mobilisation. VM and IM decomposition.",
      "input_schema_ref": "tools/513-margin-call-collateral-mobilizer.html#manifest",
      "deadline": null,
      "deadline_note": "Canton margin call chain. BCBS d499 UMR Phase 6 (Sep 2022 complete); d349 SFT minimum haircut floors; GMRA 2011 annex.",
      "consumes": [
        "505-tokenized-collateral-eligibility-checker"
      ],
      "feeds": [
        "506-onchain-cash-leg-finality-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d7af04d366f7112be98e4d1735226212639a7f1ffcc97014858f47e83c9c79f3","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BHCa85imwRPkk2r3dn4Kb4VxQ8CCYxSUe8gSdmm2UlgCzcQrXuv7OttKXgcRrUhUA7GKXvOsRY2ifD6A3VmhOS3o88VqlqdpZK2UIItoGuu9YbrsG8utvyBiLI/xC9JqIGdsqJWq4tiDHN8oFOQ9ZHkHhvI5h/RE/BwwgHphUAcKG2mctlwqZc5ABowLFhbUvd8/1sbcY03Ko1tKxJav/wRl4dR1cJWcDMEnwQ+5ZboytAfBNpYFvstgn/x2ytZNEDQMu66RgV33gOvtYvdmvBqEz3IsrIvXD9/D4q59dskd6g8BbYMSlfwaJHNyDLvMtz5vQ3AMRsS6KGqYW+sW8g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:df29b211fe2e7ae4469fa2aa01ef84b94a842993fcd554c86e2dbdcd8f509d03",
          "output": {
            "collateral_detail": [
              {
                "already_posted": false,
                "asset_type": "ust",
                "eligible_value": 1960000,
                "hc": 0.02,
                "ineligible": false,
                "mobilizable": true,
                "notional": 2000000
              }
            ],
            "gap": -960000,
            "im_call": 500000,
            "shortfall": false,
            "total_mobilizable": 1960000,
            "total_required": 1000000,
            "vm_call": 500000
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "514-tokenized-fund-collateral-validator",
      "tool_version": "1.0.0",
      "display_name": "Tokenized Fund Collateral Validator",
      "mcp_name": "validate_fund_collateral",
      "mandate_type": "collateral_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/514-tokenized-fund-collateral-validator.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Validate MMF/CNAV/LVNAV/VNAV fund shares as collateral against SEC Rule 2a-7 (post-2023 reforms), EU MMFR, and Basel HQLA exclusion criteria. Canton/Benji tokenized fund collateral assessment.",
      "input_schema_ref": "tools/514-tokenized-fund-collateral-validator.html#manifest",
      "deadline": null,
      "deadline_note": "tokenized fund collateral. SEC Rule 2a-7 (post-2023); EU MMFR (EU 2017/1131); Basel HQLA exclusion for fund shares.",
      "consumes": [
        "505-tokenized-collateral-eligibility-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0ffd03e4aa9960ce7c1c4b4ed9d985e33b3a166f5f96942ff5eb419487a0e62b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Cq3KtZapb8WJoDZoAO5ICPx+B4IxH6WkD8MhSEmDBj4YLCNIARdVGMeFgLpeoct9yN3u0KElvKZPyHLpyTAcixL7vRD9uDzibzUPaRXM1zEc0Fr/ba35R8wicrbCFfh9K7KZBmzTZok+DdqRieeOj+br5oiZGl7jJShOohuSGooLo2vMoEnxO7OgvI0UIqK96h7d3jbbmwbJTsfTdxykeSpbd3KUxAmnQY9bHWHBL8O3gm4ejUyexayogR2pdjACGEIdS6zhD7SbzYrStnvzMFst7mlEM+AVBwD91xy07xcHHMR2KPnVpHV9+Hw+xUT6+xY6+SiH+ES36a5bb0UnYw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:eab6863d1f34f7bec9c87f59c6c249211ea94f27ad04ada9f2d993297a35ff65",
          "output": {
            "adjusted_collateral_value": 1000000,
            "eligibility": "ELIGIBLE",
            "haircut_applied": 0,
            "hqla_tier": "NON_HQLA"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "515-collateral-swap-eligibility-validator",
      "tool_version": "1.0.0",
      "display_name": "Collateral Swap Eligibility Validator",
      "mcp_name": "validate_collateral_swap_eligibility",
      "mandate_type": "collateral_mandate",
      "wave": 8,
      "gpu": false,
      "url": "https://ainumbers.co/tools/515-collateral-swap-eligibility-validator.html",
      "semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
      "description": "Validate collateral swaps under GMSLA/GMRA with SFTR Article 15 reuse constraints. HQLA upgrade and downgrade impact analysis. Canton settlement of collateral swap legs.",
      "input_schema_ref": "tools/515-collateral-swap-eligibility-validator.html#manifest",
      "deadline": null,
      "deadline_note": "collateral swap. SFTR Art. 15 reuse constraints; GMSLA 2010; GMRA 2011; BCBS d349 SFT haircut floors.",
      "consumes": [
        "505-tokenized-collateral-eligibility-checker",
        "507-canton-dvp-atomicity-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:678f918188301de63b9847665aa262f6fc73e09a1b28292b6bd3a8b79e4a51bf","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Kay+WnNpXpA5pU1gEmlT4/7gObBJxzwzaBY+FlVlCEIgkUR0+0r6ExoaFMEUP39MttTyXLd5FSukB3LAuNwzQS6FFOQfrlrQEYmsz30typw3WkBPQBmu/RZkeGxBiTuQHlqgQEYPBop/AUxiB0w2kDBodbuRuBT3zigcJCaINXcj/ev8eYA3tUB9KmQcC0QlUXSmSeh4IeG6RPgBVKbK3is1cbz2BMmQ2UULhsb9L9+xOQ8AuMbfYCmw4CQskO3SFD+DNDkN6NxHvcHcMmZYYylHgxUYewEWKPy5OQoeC5cmUiG4Myl/wJxbwKRD3UYDvSqHFDAr8dVdddUIkJA+hw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:65e31624a5bee3884468beba5a1315ba027e87de654cbfe36b8f3bbd6f6865c0",
          "output": {
            "eligibility": "SWAP_ELIGIBLE",
            "hqla_impact": "UPGRADE",
            "hqla_tier_a": "Level2B",
            "hqla_tier_b": "Level1",
            "net_economic_value": 450000,
            "pacs008": {
              "instructed_amount": "950000.00",
              "settlement_date": null
            },
            "value_a": 500000,
            "value_b": 950000
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-01-ap2-mandate-chain-validator",
      "tool_version": "1.0.0",
      "display_name": "AP2 Mandate-Chain Validator",
      "mcp_name": "validate_ap2_mandate_chain",
      "mandate_type": "payment_mandate",
      "wave": 1,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-01-ap2-mandate-chain-validator.html",
      "description": "Validates AP2 v0.2 Intent→Cart→Payment mandate trio: signature-chain integrity, scope/limit consistency, TTL/expiry, over-spend detection, Human-Not-Present autonomous-agent flows. Publishes conformance test-vector fixtures.",
      "input_schema_ref": "chaingraph/art-01-ap2-mandate-chain-validator.html#manifest",
      "deadline": null,
      "deadline_note": "AP2 v0.2 live (FIDO Alliance, April 2026) — reference-implementation positioning",
      "consumes": [],
      "feeds": [
        "art-02-agent-spend-policy-simulator",
        "art-03-x402-settlement-modeler",
        "art-04-agent-identity-attestation-checker",
        "art-12-acp-checkout-conformance-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:623495f9378cb65cb88c889831f43c2c82c8844af29dfaa32e3a5d1e6cfa5337","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AQ72rBHEnZFOtvGUoeAKOoMtDYLqWl6i7kjE7i7c6WMMW15EyN2eBXpAmlFKXs0z92M2uwpf1ExCoPpCWqB7ShBWmhQOypS98fYJS9oXKdgx7w+jqM0eW5tkhTayymzeD+N3i47caYUtXgLoaP1VHUZ0+p7JEpgctlUlo4/QgFkusP837RSoulGH79VFOOn/cM6NMYrYcaXxAXRgDVKT1Ac5/shSri6CoU60nJg2sz/2VvUQc5oDmTr5+QFixktjIQQ/ALLv/jnoHXoIVrReVkzVRJEZ+CeWoMJyYMK/K4sUn10UezjwneyiXOEJeCm8eba56vo3hn4e5D29Zym1ew==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:623495f9378cb65cb88c889831f43c2c82c8844af29dfaa32e3a5d1e6cfa5337",
          "output": {
            "checks_run": 8,
            "failing_checks": [],
            "has_cart": true,
            "human_not_present": false,
            "mandate_ids": {
              "cart": "crt-001",
              "intent": "int-001",
              "payment": "pay-001"
            },
            "validation_verdict": "PASS",
            "warning_checks": []
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-02-agent-spend-policy-simulator",
      "tool_version": "1.0.0",
      "display_name": "Agent Spend-Policy Simulator",
      "mcp_name": "simulate_spend_policy",
      "mandate_type": "payment_policy",
      "wave": 1,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/art-02-agent-spend-policy-simulator.html",
      "description": "Simulates thousands of synthetic agent transactions against a user-authored spend policy (per-merchant caps, category allow/deny, velocity limits, cumulative ceilings). Flags scope creep and AP2 v0.2 Human-Not-Present policy-bypass paths.",
      "input_schema_ref": "chaingraph/art-02-agent-spend-policy-simulator.html#manifest",
      "deadline": null,
      "deadline_note": "AP2 v0.2 Human-Not-Present autonomous flows live",
      "consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-04-agent-identity-attestation-checker"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:236e163038383b05b4d5d18a1d3cf7d32a974a1035496ab1c00fbad3e84f412a",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FSARarNp6xgaZlQxIVMxO41iaDBmurDMLTH/x8BWWAAB9rcR4g5SevSNTEetXr9b8MOtpztnIh676h/3t2RcOBV5TuhOfNK0ajoga75QWE1PObc8RSMQJC3l02lUlTk6AppVBvFsTeodiy75qunP1PsNwWsEDURlmUCt38zLqvokz770N7pptuJr7BJ4cqSfft5iRCiDdVqnS3e/LhXSpAvDURK5Rr8Mp/Hgh3YoW2BI4io3IjFDwZ4umcIeJXKmKa8aAk4jMsH+A9TW7RjL//mSFcL/H4Tk3m6hDx5dFvITbeSy1865wCdHb7iQ3Xw5LQ4MhVsEblokSbMhpfU3FA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:236e163038383b05b4d5d18a1d3cf7d32a974a1035496ab1c00fbad3e84f412a",
          "output": {
            "bypass_paths_detected": [],
            "compliance_flags": [
              "POLICY_RISK_HIGH"
            ],
            "fail_count": 117,
            "fail_rate_pct": 58.5,
            "pass_count": 83,
            "top_fail_reasons": {
              "EXCEEDS_DAILY_LIMIT": 4,
              "EXCEEDS_MONTHLY_LIMIT": 98,
              "EXCEEDS_PER_TX_LIMIT": 48
            },
            "total_approved_spend": 19999.26,
            "total_transactions": 200,
            "verdict": "HIGH"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-03-x402-settlement-modeler",
      "tool_version": "1.0.0",
      "display_name": "x402 Settlement Cost & Finality Modeler",
      "mcp_name": "model_x402_settlement",
      "mandate_type": "settlement_mandate",
      "wave": 2,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-03-x402-settlement-modeler.html",
      "description": "Rail-selection and finality recommendation across x402 (HTTP 402), Stripe USDC, card, ACH, and SWIFT. Per-transaction cost, eligibility scoring, micropayment support, cross-border flags. ~69k active agents / 165M+ x402 txns (2026).",
      "input_schema_ref": "chaingraph/art-03-x402-settlement-modeler.html#manifest",
      "deadline": null,
      "deadline_note": "x402 live on Coinbase CDP; Stripe USDC on Base",
      "consumes": [
        "art-01-ap2-mandate-chain-validator"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "semantic_profile": "iso20022:pacs.008-subset",
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5d693ae08f52fbf0719d500857977fff760b19d533358ae2f5edd6693854de81","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L6YsxLKt321nye3nSeOQRcZ0OpC/29IbaLKXdj83dWsKIQCUkeCuKEl/veZMqI0UdbDqYm1aDJZeAJANYIPlVgDcmf/ZZKjACxVANU+udhiyz7/arudpCJy5Cswqu7qhCwI4auwYZr1O/yKINGogaSHmHmBduBXnjMktVm/oQCcjXLNFB7XysKHKK2qu0XCoABDXoBWzzTPyLYGbnPyWLRzmfxDbMaG/dv96CAI0O9DeJVYogf303wjx/ifrXBEuBkiOctyanAhZdcXcs1w1H0EQMvw1kLVoc9t/dW6LzEIfKyFvHLFiWqj4YUFvVrNoHdHmjT13jlPB28N1s8G9hA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5d693ae08f52fbf0719d500857977fff760b19d533358ae2f5edd6693854de81",
          "output": {
            "eligible_rails": [
              "x402"
            ],
            "finality_sec": 2,
            "monthly_cost_usd": 1,
            "per_tx_fee_usd": 0.0001,
            "recommended_rail": "x402"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-04-agent-identity-attestation-checker",
      "tool_version": "1.0.1",
      "display_name": "Agent Identity & Authorization Attestation Checker",
      "mcp_name": "check_agent_attestation",
      "mandate_type": "compliance_mandate",
      "wave": 2,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-04-agent-identity-attestation-checker.html",
      "description": "KYA-OS (DIF Trusted AI Agents WG) credential-chain attestation: delegated-authority credential chain, scope limits, validity windows (max 90 days), chain depth cap (4 hops), EU AI Act high-risk scope classification.",
      "input_schema_ref": "chaingraph/art-04-agent-identity-attestation-checker.html#manifest",
      "deadline": "2027-12",
      "deadline_note": "EU AI Act Annex III high-risk obligations (Digital Omnibus, Parliament final approval June 2026) push agent KYA toward compliance requirement from 2 December 2027; KYA-OS donated to DIF March 2026",
      "consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-13-eudi-wallet-credential-readiness-checker"
      ],
      "feeds": [
        "art-02-agent-spend-policy-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f4e9e5aed913e80c7f97e3d0d2501e7349c523de4ffd433a1d29081620197b1f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:93c746e79afcf4b27f6d2a6da6cd142a4dd0da31f33d942f92b97344188526c5","valid_from":"2026-06-27"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:93c746e79afcf4b27f6d2a6da6cd142a4dd0da31f33d942f92b97344188526c5",
        "seal": "JprnquQV+W8PZGrVb3psyDFR3XLhdjfIXqv6BPQl4toSEZPGzDAQMW9vktjGPijzYCJ0LVWuD4QDae75YBVN5yiYvlT5xX5ckesO7VwnQJQ3cy/anmRyuV+fRqJANv8+K1LR1CCL+LXDs4OfqZ2lyurNSDIj9hmmOpLSmlSJGSwMuYvNwbuaD922LK8Mf0/KcNL8mKQKpgTJ2YLQ0qhlQC8GKlwA+eHTMZ99YTSTmL/sF5oK+IcawyJYOC7UaI4pIMMFVtoU7i6xui5DA4tUENjZ8ZUG3+IGa91Jq2qjEskn/Vla1uuySzmfJv4LREJAHEFMXLwaXL2lBbxbiV4uGA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f4e9e5aed913e80c7f97e3d0d2501e7349c523de4ffd433a1d29081620197b1f",
          "output": {
            "overall_status": "warn",
            "pass": 6,
            "fail": 0,
            "warn": 2,
            "checks": [
              {
                "code": "KYA-T01",
                "status": "pass"
              },
              {
                "code": "KYA-R01",
                "status": "pass"
              },
              {
                "code": "KYA-R02",
                "status": "pass"
              },
              {
                "code": "KYA-R03",
                "status": "pass"
              },
              {
                "code": "KYA-R04",
                "status": "warn"
              },
              {
                "code": "KYA-R05",
                "status": "pass"
              },
              {
                "code": "KYA-R06",
                "status": "pass"
              },
              {
                "code": "KYA-EU1",
                "status": "warn"
              }
            ],
            "root_agent_id": "a1",
            "scopes": [
              "read:account"
            ]
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-05-eu-ai-act-credit-scoring-conformity",
      "tool_version": "1.0.1",
      "display_name": "EU AI Act Credit-Scoring Conformity Pack",
      "mcp_name": "assess_ai_act_conformity",
      "mandate_type": "model_governance",
      "wave": 1,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-05-eu-ai-act-credit-scoring-conformity.html",
      "description": "Bias testing across protected characteristics (disparate impact ratios, equalized odds gaps), data-quality attestations, Article 11 technical-documentation skeleton, conformity self-assessment. Hard deadline 2 December 2027, per the Digital Omnibus amendments (June 2026).",
      "input_schema_ref": "chaingraph/art-05-eu-ai-act-credit-scoring-conformity.html#manifest",
      "deadline": "2027-12-02",
      "deadline_note": "EU AI Act Annex III Part 5(b) — credit-scoring high-risk obligations fully apply 2 December 2027, per the Digital Omnibus amendments (Parliament final approval, June 2026)",
      "consumes": [],
      "feeds": [
        "ml-01-isolation-forest",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:fcb93e8040bc73e15337abc8b67a8e70b03cd115900de0221cee4a2bf125136f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G3HF1eNB7sidOGjGSifL7amgv9lAm5sWVPLK6gm3VY0CYJE/XodTNGE5odSkG4eZxbtDAQNZIrg7OPSglKicaxYVZl2WUV4+uV0ZVIgnd7d76/DYHkfGx4knkLH1SjNhH+XFeD4vhWlcSeDZyKIrR1meqmHApkZXW4/FazuubAoQGqlA0b83SgPTtbG2Q43MNFXnQTcG/ANrL1uZ33ZGGAJdtb2DWiGfhtfoEgw85bPnmjQllttnUQgaEfTK0DdnGHp8QDbHaCxZAadXAANJqaE3YD/vY7Mq6HttGiTGgDEuRPLalxG1oPmFNFpKh9b/xeFyw69qeMknrUZ9G45pKA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:615ddf9f044ff9509a2b35b6f007aed2f2ecdb54f7936d9e644e05c27a02b643",
          "output": {
            "applicable_deadline": "2026-08-02",
            "applicable_deadline_note": "EU AI Act Annex III Part 5(b) — credit-scoring high-risk obligations fully apply August 2, 2026",
            "art_checklist_score_pct": 0,
            "bias_results": [],
            "data_governance_score_pct": 0,
            "determination": "WARN",
            "failing_dimensions": [],
            "regulatory_framework": "EU AI Act (Regulation (EU) 2024/1689) — Annex III Part 5(b)"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-06-genius-act-reserve-attestation",
      "tool_version": "1.0.0",
      "display_name": "GENIUS Act Reserve Attestation Pre-Check",
      "mcp_name": "precheck_reserve_attestation",
      "mandate_type": "attestation_mandate",
      "wave": 1,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-06-genius-act-reserve-attestation.html",
      "description": "1:1 reserve coverage, reserve-composition eligibility against GENIUS Act permitted-asset classes, monthly reserve-report figures against AICPA 2025 Criteria for CEO/CFO certification. Distinct from MiCA reserve stress.",
      "input_schema_ref": "chaingraph/art-06-genius-act-reserve-attestation.html#manifest",
      "deadline": "2027-01-01",
      "deadline_note": "GENIUS Act effective ≤ January 2027; monthly reserve reports + annual PCAOB audit (>$50B issuers); FDIC NPRM April 2026",
      "consumes": [],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8e520c99a42e6c53799b4c14a5d31d7face65414f1d0fd590a089488f621dc24","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Iy4EKp8DEfMcSuhGDVGiJ2JsR6pho2rR7DiiMlpCa98VCGn6CTtp/qvFRx3ByIHTvNBbi/QQALRy3ClLhauGpgo75AREOEx9mGm41idp/4wHbb3s2W8aF66CXax9Lx1oHkpdGxNldBaAOviV5e5AypNt7tqphjQ350A7yVfzd6suL1j9o1V99xcAc+kWwZEvqDKFvfEmSKMN0SS8bzP33xJnpI4er4FMrkbo48/ciZfWKqPuQl7Q1HdMMQXJLAWQE6BnIpKxCF8tF9NHqaVRvEZvTaBP/mvsMSPRU3xP7gYOGRAUGSRBOK5XLhAQ1hHlBWkOp1VbgDYgeoi0u5/WRQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8e520c99a42e6c53799b4c14a5d31d7face65414f1d0fd590a089488f621dc24",
          "output": {
            "aicpa_2025_score_pct": 0,
            "applicable_deadline": "2027-01-18",
            "asset_results": [],
            "attestation_readiness_determination": "FAIL",
            "conditional_assets_usd": 0,
            "coverage_ratio_pct": 0,
            "failing_dimensions": [
              {
                "detail": "Reserves (0.00) cover only 0.00% of outstanding tokens. Shortfall: 0.00.",
                "dim": "Coverage ratio < 100%",
                "ref": "GENIUS Act S.394 §4(a)"
              }
            ],
            "prohibited_assets_usd": 0,
            "regulatory_framework": "GENIUS Act S.394 · AICPA 2025 Attestation Criteria",
            "reserve_shortfall_usd": 0,
            "total_liabilities_usd": 0,
            "total_reserves_usd": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-07-basel31-reporting-delta-calculator",
      "tool_version": "1.0.0",
      "display_name": "Basel 3.1 Reporting Delta Calculator",
      "mcp_name": "compute_basel31_delta",
      "mandate_type": "capital_assessment",
      "wave": 2,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/art-07-basel31-reporting-delta-calculator.html",
      "description": "Per-asset-class RWA delta (current vs Basel 3.1), output-floor binding analysis (72.5%), CET1 before/after, capital shortfall vs 12.5% total requirement. Six asset classes. Tornado chart. UK PRA PS1/26 go-live Jan 1, 2027.",
      "input_schema_ref": "chaingraph/art-07-basel31-reporting-delta-calculator.html#manifest",
      "deadline": "2027-01-01",
      "deadline_note": "UK PRA PS1/26 Basel 3.1 go-live — January 1, 2027",
      "consumes": [],
      "feeds": [
        "sim-03-basel-rwa-scenario-modeler",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:bb655f6f08ccd299198d1eff963940525ec31c073ef296bfce08503620cb28c7",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IHfBGtT0qGiU2bFEFgG3pWVb1Q94FzrdJfBcYBtrd+8s/Kbj5Uk3XsBezYDssCw9lbIMh3iNnivKMu7qrMs8nDBCVkHBosfqEJ4KPivHhmgZ3Z4BAtXBAOIiyhXOcx0oL2gE/0pL5h84iEqjAW4KEdcTP86xdp9vDa7npnN0/CUS4L9+iKdPvbJrSh2QifY5EbBh8tOuMv8DVckIW881ZxSfo4qUO1oDre0gyEZxL/oXX4xVToFDpaKfVH7SUPzDJh8dEBGjsbDvU0qf9CiNWWDbwm6D9yEZeXZUbjj72g4gK03GxujtKjN/EGqbhxKBjHjM7u/slkH989njTyjh/Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bb655f6f08ccd299198d1eff963940525ec31c073ef296bfce08503620cb28c7",
          "output": {
            "asset_class_summary": [
              {
                "basel31_rwa_bn": 20,
                "current_rwa_bn": 35,
                "ead_bn": 100,
                "id": "residential_mortgage",
                "label": "Residential Mortgage",
                "rwa_delta_bn": -15,
                "rwa_delta_pct": -42.86
              }
            ],
            "basel31_rwa_bn": 20,
            "capital_shortfall_bn": 0,
            "cet1_ratio_basel31_pct": 27.13,
            "cet1_ratio_current_pct": 15.5,
            "compliance_flags": [
              "OUTPUT_FLOOR_NOT_BINDING",
              "CET1_ADEQUATE"
            ],
            "current_rwa_bn": 35,
            "floor_rwa_bn": 25.375,
            "output_floor_binding": false,
            "rwa_delta_bn": -15,
            "rwa_delta_pct": -42.86,
            "verdict": "MINIMAL_IMPACT"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-08-en16931-einvoice-batch-validator",
      "tool_version": "1.0.0",
      "display_name": "EN 16931 / Factur-X E-Invoicing Batch Validator",
      "mcp_name": "validate_einvoice_batch",
      "mandate_type": "compliance_mandate",
      "wave": 2,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/art-08-en16931-einvoice-batch-validator.html",
      "description": "Batch validation of e-invoices against EN 16931 mandatory fields, VAT logic, and country profiles. France mandatory September 2026; SMEs September 2027.",
      "input_schema_ref": "chaingraph/art-08-en16931-einvoice-batch-validator.html#manifest",
      "deadline": "2026-09",
      "deadline_note": "France large/medium mandatory September 2026; EU ViDA",
      "consumes": [],
      "feeds": [
        "rca-03-iso20022-address-migration-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:2ae638995633cb25dd6ef2c645f6246c8aef863054019213ba1424a7509c4c7e",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AqwJj0DON5qmg3IyMJHnElsAFYDL0a1z5UfyxP+OZUMpZJUjvA59ys+ECOghufcYu+tJ0va8xCyvfPuFk5kjCREH8dpocMdz22+ADGPBHn4KUSVaW1zSSH4ZkBAHlqKEEf0OgnVvFUHQsBTwJTgggCAWj0obUGGBV/t72FSmq4EWLCg1bgyQUFDZjGHSV/75BFFEuwR37dHz6KpvEgNM2wMmjz4yozQZOvc2t3UmPn6mGcGGhceaZsHLFXtJAe5RIvwmrggkOLb7mpkPAJwFYnsY9wQiCO+uwcJWs9F1l4wbWfnPubo6/3XCEkzv2J1eAL4Z42lUoSXRbNbG51C/zQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2ae638995633cb25dd6ef2c645f6246c8aef863054019213ba1424a7509c4c7e",
          "output": {
            "compliance_flags": [
              "EN16931_NON_COMPLIANT",
              "ERECEIPT_DEADLINE_AT_RISK"
            ],
            "compliance_rate_pct": 66.5,
            "deadline_readiness_score": 59,
            "fail_count": 67,
            "pass_count": 133,
            "rule_failure_counts": {
              "BR-14: BT-9 Due date missing": 24,
              "BR-1: BT-1 Invoice number missing": 25,
              "BR-25: BT-129 Line item quantity invalid": 9,
              "BR-2: BT-2 Issue date missing": 12,
              "BR-36: BT-151 VAT category code invalid": 11
            },
            "top_failure_rules": [
              {
                "count": 25,
                "rule": "BR-1: BT-1 Invoice number missing"
              },
              {
                "count": 24,
                "rule": "BR-14: BT-9 Due date missing"
              },
              {
                "count": 12,
                "rule": "BR-2: BT-2 Issue date missing"
              },
              {
                "count": 11,
                "rule": "BR-36: BT-151 VAT category code invalid"
              },
              {
                "count": 9,
                "rule": "BR-25: BT-129 Line item quantity invalid"
              }
            ],
            "total_invoices": 200,
            "verdict": "NON_COMPLIANT"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-09-dora-incident-classifier",
      "tool_version": "1.0.0",
      "display_name": "DORA Major-Incident Reporting Threshold Classifier",
      "mcp_name": "classify_dora_incident",
      "mandate_type": "infrastructure_mandate",
      "wave": 1,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-09-dora-incident-classifier.html",
      "description": "DORA Article 19/20 reporting determination and reporting-clock start. Clients affected, transaction value, downtime, geographic spread, cross-border component. Fast, deterministic.",
      "input_schema_ref": "chaingraph/art-09-dora-incident-classifier.html#manifest",
      "deadline": null,
      "deadline_note": "DORA (EU) 2022/2554 in force January 2025",
      "consumes": [
        "art-29-dora-readiness-diagnostic"
      ],
      "feeds": [
        "pnr-01-dora-ict-cascade-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "feeds_stub": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4ca4b897808a6d8852181840dd20aa62859b23b1ad3384d78cfcb7d8ddc9e4fa","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Htx1CjaVKhGD9kGvIaBBWFueVkVjR2gdxiQn39jhVBQl7DDwEd3Jk55pOmYUNu8Amfin+CFZCtG29WyF2TxzsyJRUAqIWzY2agRG7o77nbd3aqJ7lneV5UQ53I1t4LjrIecmOtuF5pFECo2SDvTw7iFdfWnUeg8QBRc/MQYq3O0Frwb4WAHp2+69WNlCJMJioahsnFr4ZTjYQjvdXQA8Lx/XrxlGSuiV5HTERYW7uEvSd4g1gvmSLyBmy/rubCjtDoL+QoJG35iQf36WhZiiyJmPgCB2OX2/zBuLjn0bvUsl5utev/PYF7EfUH7GFYT5JieFseai0K5yf6Drp0ny4w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4ffd5831c36eaf24cce8a05b03adeae5f708782f9b2425895966aa4edadfb20a",
          "output": {
            "competent_authority_note": "Report to your national competent authority (NCA) per DORA Art. 19. Cross-border incidents require coordination per Art. 19(6).",
            "criteria_detail": [
              {
                "article": "DORA Art. 23(1)(a) / ESA RTS Art. 3",
                "id": "critical_fn",
                "met": false,
                "not_assessed": false,
                "value": "No"
              },
              {
                "article": "DORA Art. 23(1)(b) / ESA RTS Art. 4",
                "id": "clients",
                "met": false,
                "not_assessed": true,
                "value": "0 (0.0%)"
              },
              {
                "article": "DORA Art. 23(1)(c) / ESA RTS Art. 5",
                "id": "data_loss",
                "met": false,
                "not_assessed": false,
                "value": "No"
              },
              {
                "article": "DORA Art. 23(1)(d) / ESA RTS Art. 6",
                "id": "tx_value",
                "met": false,
                "not_assessed": true,
                "value": "Not applicable"
              },
              {
                "article": "DORA Art. 23(1)(e) / ESA RTS Art. 7",
                "id": "duration",
                "met": false,
                "not_assessed": true,
                "value": "Not applicable"
              },
              {
                "article": "DORA Art. 23(1)(f) / ESA RTS Art. 8",
                "id": "geographic",
                "met": false,
                "not_assessed": false,
                "value": "1 member state"
              }
            ],
            "cross_border": false,
            "determination_code": "NON_MAJOR",
            "entity_type": "other",
            "incident_type": "other",
            "major_incident": false,
            "qualifying_criteria": [],
            "regulatory_framework": "DORA (EU) 2022/2554 Art. 23 · ESA Joint RTS EBA/RTS/2023/11 (published January 2025)",
            "reporting_clock": null,
            "third_party_ict": false
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-10-amla-transaction-typology-risk-scorer",
      "tool_version": "1.0.0",
      "display_name": "AMLA Transaction-Typology Risk Scorer",
      "mcp_name": "score_aml_typologies",
      "mandate_type": "risk_control",
      "wave": 1,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/art-10-amla-transaction-typology-risk-scorer.html",
      "description": "Scores a synthetic transaction graph against AML typologies and FATF Travel Rule predicates; exports an AML risk determination per account/cluster. Chains into CRY-01 for ZK proof of the same predicate: a uniquely coherent two-tool story.",
      "input_schema_ref": "chaingraph/art-10-amla-transaction-typology-risk-scorer.html#manifest",
      "deadline": "2027-07-01",
      "deadline_note": "EU AMLR full application July 2027; AMLA full operations 2028",
      "consumes": [],
      "feeds": [
        "cry-01-zk-compliance-proof-generator",
        "art-11-vop-batch-match-rate-analyser",
        "ptg-01-ap2-prompt-template-generator",
        "mms-03-app-fraud-graph",
        "ml-01-isolation-forest"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:c02483af798b9da4593d70b071619e12487bbd02e21b016eb9d46ced84c5ab90",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BDlKbR6nvEVUwMR5Tr7cwZlrrcUKNsByOM996Y5NCjIR2d9dx2XR62PWHruBioB9WnqUPgRYQWVh62qtG0OUuxA0CM2pst8zY6mcYUE5PRE4lRUb3wM73b+2+rRB+UyMHDhQkDnTSlqgGjt4cplJB2b37r3k4BPy3bquZN3k9oQZ0StNUIcrLRrFuFBf4KJPM5xF9V03/O1YsRdkzV5nrRokdbbzaeVIn8uyx69b9g9xT/NGgTV0RBSaRhlkZY/AHnMCvBTUDXtx615n9u/Y1rinxu+MA+aFJvyQGY8J13QLOue24p8b8hkdLx2aNKdwYN0cHSRTDxuy65LBVs7NBw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c02483af798b9da4593d70b071619e12487bbd02e21b016eb9d46ced84c5ab90",
          "output": {
            "average_score": 0.342,
            "compliance_flags": [
              "AML_MEDIUM_RISK_PORTFOLIO",
              "TRAVEL_RULE_VIOLATIONS_DETECTED",
              "STRUCTURING_RISK_DETECTED"
            ],
            "high_risk_count": 0,
            "max_score": 0.3438,
            "medium_risk_count": 0,
            "overall_risk": "MEDIUM",
            "top_risk_accounts": [
              {
                "account_id": "TX002",
                "avg_score": 0.3438,
                "max_score": 0.3438,
                "total_score": 0.3438,
                "tx_count": 1
              },
              {
                "account_id": "TX001",
                "avg_score": 0.342,
                "max_score": 0.342,
                "total_score": 0.342,
                "tx_count": 1
              },
              {
                "account_id": "TX003",
                "avg_score": 0.3402,
                "max_score": 0.3402,
                "total_score": 0.3402,
                "tx_count": 1
              }
            ],
            "transaction_count": 3,
            "travel_rule_violations": 3,
            "typology_hit_counts": {
              "FUNNEL": 0,
              "HIGH_VELOCITY": 0,
              "LAYERING": 0,
              "ROUND_TRIP": 0,
              "STRUCTURING": 3,
              "TRAVEL_RULE": 3
            }
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-11-vop-batch-match-rate-analyser",
      "tool_version": "1.0.0",
      "display_name": "VoP Batch Match-Rate Analyser",
      "mcp_name": "simulate_vop_matching",
      "mandate_type": "compliance_mandate",
      "semantic_profile": "iso20022:pacs.008-subset",
      "wave": 1,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-11-vop-batch-match-rate-analyser.html",
      "description": "Batch IBAN-name matching: match/close-match/no-match classification, configurable strictness (exact/normalized/fuzzy), false-positive vs false-negative trade-off curves, per-corridor mismatch-rate distribution. Upgrades T289 to full ChainGraph export schema.",
      "input_schema_ref": "chaingraph/art-11-vop-batch-match-rate-analyser.html#manifest",
      "deadline": null,
      "deadline_note": "EU IPR VoP mandatory since October 2025 — live operational pain today",
      "consumes": [
        "rca-03-iso20022-address-migration-verifier",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:dc6cecdac12b5053afc065404fa713ef895d66b7721806ce245957a45a7011c6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Db3aUHd3kIQE3oWcVCl62lGVlCDKCPIS5xu3kBYwHPoKUYIYGqkT491Ecsowy0q8Na/pTNyACfbaGZ9ZEuckmRVxctiGaTqtzbEvM1GmFPjOYq6KwnysLKkdYw0ItvkpIi7iJHvpJdKKouXFUmsv1c8Ejg3oH/C4Iwrs8CIUhWMT5n1k7VLmWEhOszH8gXcDtp+N4nWdLCBWykfH2uWEDwwFcslYMp//v4h2Tq3qNOs8egrXcGiQWERWGcyFEkx+AVfhI3CdKgqK0Bq6G+AVE0dYsZ9sicCBydbna7aAALoa8/1t5pjg6918jGcDR28GyamFLpU/xSMrIzuNqvqxQw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:dc6cecdac12b5053afc065404fa713ef895d66b7721806ce245957a45a7011c6",
          "output": {
            "close_match": 1,
            "match": 4,
            "match_rate_pct": 80,
            "no_match": 0,
            "total_records": 5
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-12-acp-checkout-conformance-validator",
      "tool_version": "1.0.0",
      "display_name": "ACP Checkout Conformance Validator",
      "mcp_name": "validate_acp_checkout",
      "mandate_type": "payment_mandate",
      "wave": 2,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-12-acp-checkout-conformance-validator.html",
      "description": "OpenAI/Stripe Agentic Commerce Protocol (ACP): CheckoutRequest/Response field conformance (10 required fields each), Shared Payment Token structure, ISO 4217 currency, TTL, signature prefix validation. Suite now covers both AP2 (Google) and ACP (OpenAI/Stripe).",
      "input_schema_ref": "chaingraph/art-12-acp-checkout-conformance-validator.html#manifest",
      "deadline": null,
      "deadline_note": "ACP live — Etsy, Shopify (~1M Shopify-network merchants) (2026)",
      "consumes": [
        "art-01-ap2-mandate-chain-validator"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4ee210e9f360aea1ea09609253ca4e223bc00065d42aa2a672f4ffb5a866afc2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "H2URVanvRny8g0jiz3TSBlAYu9b0XtbDqzGKOosljgsA/Hkm2liB2Tsigg3EcZ1XNLX9mMz6yTJx3fFrhrV9JxvBq7CQSW86FXiU7KsBwV1lgVrB8aJDeyxvRBeX4ySPLPt5I51hWCb8tX0W95j7ejYRzfd0bgS9Z5jeue4habgO12Bg+IaxIF7OtYis06BLD3XBf2Y2W6DH8yCwSTHmfSdtMguXIEBqowy3Px0DvDmdxcFrgK/nUyKhL7z2EZXhGX8FEA2/khx5/4dtTgwBORspQwNI7qr/PY4f3sOL330RdeN4oyK7bCGBZfG1sRIxXBDow7f6vQqrEu7fxh4YYg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4ee210e9f360aea1ea09609253ca4e223bc00065d42aa2a672f4ffb5a866afc2",
          "output": {
            "checks": [
              {
                "code": "ACP-T01",
                "status": "pass"
              },
              {
                "code": "ACP-R01",
                "status": "pass"
              },
              {
                "code": "ACP-R02",
                "status": "pass"
              },
              {
                "code": "ACP-R03",
                "status": "pass"
              },
              {
                "code": "ACP-R04",
                "status": "pass"
              },
              {
                "code": "ACP-R05",
                "status": "pass"
              },
              {
                "code": "ACP-R06",
                "status": "pass"
              },
              {
                "code": "ACP-R07",
                "status": "pass"
              },
              {
                "code": "ACP-R08",
                "status": "pass"
              },
              {
                "code": "ACP-R09",
                "status": "pass"
              },
              {
                "code": "ACP-R10",
                "status": "pass"
              },
              {
                "code": "ACP-R07a",
                "status": "pass"
              },
              {
                "code": "ACP-P01",
                "status": "pass"
              },
              {
                "code": "ACP-R11",
                "status": "pass"
              },
              {
                "code": "ACP-SIG1",
                "status": "pass"
              }
            ],
            "currency": "USD",
            "fail_count": 0,
            "merchant_id": "merchant-acme",
            "overall_status": "pass",
            "pass_count": 15,
            "warn_count": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-13-eudi-wallet-credential-readiness-checker",
      "tool_version": "1.0.0",
      "display_name": "EUDI Wallet Credential-Acceptance Readiness Checker",
      "mcp_name": "check_eudi_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 2,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-13-eudi-wallet-credential-readiness-checker.html",
      "description": "eIDAS 2.0 verifiable-credential acceptance readiness against EUDI Wallet ARF v1.4 profiles. PID/QEAA/EAA attribute mapping, relying-party obligations, conformance gaps. Member-state wallet rollout Nov 2026; obliged-entity acceptance Dec 2027.",
      "input_schema_ref": "chaingraph/art-13-eudi-wallet-credential-readiness-checker.html#manifest",
      "deadline": "2026-11",
      "deadline_note": "EUDI Wallet member-state rollout November 2026; FI SCA acceptance December 2027; AMLR July 2027",
      "consumes": [],
      "feeds": [
        "art-04-agent-identity-attestation-checker",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:127c97da18f98fb9a3db038f6b7dee0dc52653f7e8d0145b0eb94e0f428c1857","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LhQZo6CblFAKYmz33QD7z/Lu1uAnMfSiCWmp5Q7icr8eYe/KJQq+HsLNYnCGQ34k9I+MhdHRzidXXnQ3QsPl7ytBkXmAYFrCjQxSA6PY9GbV/VMxXyNGqZdzRl6+t7wrIMmW2vE5H2oVbd+Erl6ZSVqnm0C2Mf0370uag59yy8wR/QLY5yctSiHuPFiXFD8UY9ozVZWw7bOKgh0aCxuJbCrlT6oVoUGoIRveJlmY1BpSfJXfj9oE+N3cWz9HExthD/aW0292YysuFKahyOdwst2e8lTuLgm0+q3lR3RveJ0NeFVUY8gB0Co2MLHnPRmhNsiDL94F/Vego5Qu4DuN6A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:127c97da18f98fb9a3db038f6b7dee0dc52653f7e8d0145b0eb94e0f428c1857",
          "output": {
            "acceptance_ready": false,
            "check_results": [
              {
                "id": "C01",
                "score_added": 1,
                "status": "pass"
              },
              {
                "id": "C02",
                "score_added": 1,
                "status": "pass"
              },
              {
                "id": "C03",
                "score_added": 1,
                "status": "pass"
              },
              {
                "id": "C04",
                "score_added": 1,
                "status": "pass"
              },
              {
                "id": "C07",
                "score_added": 0,
                "status": "fail"
              },
              {
                "id": "C08",
                "score_added": 1,
                "status": "pass"
              },
              {
                "id": "C09",
                "score_added": 0.5,
                "status": "warn"
              }
            ],
            "credential_type": "eaa",
            "fail_count": 1,
            "format": "sd_jwt_vc",
            "gaps": [
              "C07"
            ],
            "issuer_country": "DE",
            "readiness_score": 69,
            "verdict": "PARTIAL READINESS — GAPS IDENTIFIED"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-14-psd3-psr-readiness-checker",
      "tool_version": "1.0.0",
      "display_name": "PSD3 / PSR Readiness Checker",
      "mcp_name": "assess_psd3_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 4,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-14-psd3-psr-readiness-checker.html",
      "description": "Six-domain PSD3/PSR readiness rubric: Open Finance access rights (Art.35/36), TPP categorisation (PISP/AISP/PIISP), SCA exemption alignment (Art.85–90), consent framework maturity, fraud liability model (Art.59–65), and embedded finance/BaaS scope. Radar chart + prioritised gap table. Root node (no upstream dependency). Feeds ART-04 (DORA Mapper) and PTG-01. EU transposition ~2027; UK PSR enacted 2024.",
      "input_schema_ref": "chaingraph/art-14-psd3-psr-readiness-checker.html#manifest",
      "deadline": "2027-06-01",
      "deadline_note": "EU PSD3 expected transposition ~2027; UK PSR enacted 2024 (APP reimbursement Oct 2024 already live)",
      "consumes": [],
      "feeds": [
        "art-04-agent-identity-attestation-checker",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3826069610c670c6d4dc65d677690bc66f56d815d0e4d6085fa20f0c7c59e463","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FsbUdf4DthR1V/7/MHv36MaS3suTxbz3pRBVUkzqA0gMDud40fQQh6LHNtj0cWHNkgiIawt9KsyEwe5o3+imPSH3yXAHHvTyz5D/IdHcIgqpdmdfYA2wFLcsETWrWel9A3MVCLKNI+rKUZopNoHLUHDzQGqG8RENh20OuwM00yMZWX0I4y9jCOvvLGgtWiKypZPDD6+YuwfIEcr0d7ut0iqciKcrqsjBmVrzrKwTHFowJnEEgcD7LIXyaOSn35CTAmKT1n6YqbyANRtOpSq4uvy4dtH3Ajyx57gX+bBcKS0IvqFdCUt5tEbJwk6JSJi1THY7EgxBmOj2XauLf44OoA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3826069610c670c6d4dc65d677690bc66f56d815d0e4d6085fa20f0c7c59e463",
          "output": {
            "band": "Moderate Readiness",
            "critical_gaps": 0,
            "domain_scores": {
              "d1": 68,
              "d2": 55,
              "d3": 42,
              "d4": 65,
              "d5": 70,
              "d6": 80
            },
            "overall_readiness_score": 62,
            "verdict": "Moderate Readiness — Targeted Gap Remediation Required"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
  "tool_id": "art-15-agentic-mandate-sandbox",
  "tool_version": "1.0.0",
  "display_name": "Agentic Mandate Sandbox",
  "mcp_name": "simulate_agent_spend_policy",
  "mandate_type": "agent_guardrail_mandate",
  "wave": "A",
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-15-agentic-mandate-sandbox.html",
  "description": "Builds a deterministic Agent Guardrail Mandate skeleton from declared spend caps, MCC allowlist/blocklist, velocity rules, time windows, and approval thresholds. Stage 1 of the Agentic Policy Chain. The browser page additionally runs an interactive randomized synthetic-transaction simulator against the mandate for exploration; that non-deterministic step is a UI feature only and is not part of this server artifact's hashed output. Zero PII, client-side compute in the browser tool, deterministic server compute for MCP callers.",
  "input_schema_ref": "chaingraph/art-15-agentic-mandate-sandbox.html#manifest",
  "consumes": [
    "art-27-agentic-readiness-diagnostic"
  ],
  "feeds": [
    "art-16-google-ap2-mandate-builder"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:fff11007c653c4006222d02b7daca7257ea82f90448b282848433cefc5acad7c",
      "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": "EzLX6BsoEUNwHfnoO+8KCs98l/QzyKJ55RU2Qev17s0dkEstQOFJO5jHoWcI8k0PLW8fZ6a/0UmdbPodLrceKiqWDAJim4emS6bsMlt8HUKIZEv33ixdFxfiAaeQsY2OA8XTv7k4fDsB4yGPXFSCV9yiScHB1iImeoVmp0yuw1gptgHu+EYjDZ0I3AZtHn675Qge6TfTXCZy8mynqpQ7QimnuDjhAmgpYBVwCdLpFNUg010vk2hHsXsx8sC/W9OXLVByoHaA8c1m6WPQGyao+75wFMvYIw0FAzGThbfCf2QLviVt3shX82rGyzOW6NOn/r/iNZwRYpB6lBqzVGQymg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:fff11007c653c4006222d02b7daca7257ea82f90448b282848433cefc5acad7c",
      "output": {
        "approval_thresholds": {
          "board_approval_gate": false,
          "dual_sig_required": true,
          "single_sig_auto": true,
          "timeout_minutes": 30
        },
        "compliance": {
          "kyc_check": true,
          "ofac_screen": true
        },
        "corridor": {
          "destination": "US",
          "origin": "BR"
        },
        "mandate_id": "MANDATE-art-15-agentic-mandate-sandbox-5000-15000-2000",
        "mcc_constraints": {
          "allowlist": [
            "5411",
            "5541",
            "5912",
            "5812",
            "5311",
            "7011",
            "4511",
            "7512",
            "4814",
            "7372",
            "8011",
            "4900",
            "6010",
            "5999"
          ],
          "blocklist": [
            "6051",
            "7995"
          ]
        },
        "note": "Deterministic Agent Guardrail Mandate skeleton built from declared spend caps, velocity rules, time windows and approval thresholds. The browser tool additionally runs an interactive randomized synthetic-transaction simulator against this mandate; that exploratory step is not part of this deterministic server artifact.",
        "rail": "PIX",
        "rejected_inputs": [],
        "schema": "AP2-Agentic-Mandate",
        "spend_caps": {
          "daily_aggregate": {
            "amount": 15000,
            "currency": "USD"
          },
          "flag_threshold": {
            "amount": 2000,
            "currency": "USD"
          },
          "monthly_aggregate": {
            "amount": 100000,
            "currency": "USD"
          },
          "single_transaction": {
            "amount": 5000,
            "currency": "USD"
          }
        },
        "time_windows": {
          "allow_weekends": true,
          "allowed_utc": "06:00–22:00",
          "block_holidays": false
        },
        "velocity_rules": {
          "cooldown_minutes": 5,
          "max_txns_per_day": 20,
          "max_txns_per_hour": 3
        }
      }
    }
  }
},
    {
  "tool_id": "art-16-google-ap2-mandate-builder",
  "tool_version": "1.0.0",
  "display_name": "Google AP2 Mandate Builder",
  "mcp_name": "draft_ap2_mandate_credential",
  "mandate_type": "payment_policy",
  "wave": "A",
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-16-google-ap2-mandate-builder.html",
  "description": "Builds an illustrative Google AP2 Checkout/Payment Mandate Verifiable Digital Credential (VDC) skeleton from a declared mandate type, stage, agent, subject, merchant, and amount. Stage 2 of the Agentic Policy Chain. This is the EXTERNAL Google AP2 payments protocol shape (ap2-protocol.org), distinct from the AINumbers Policy Mandate export. Field names are illustrative; sign with the agent key and verify against the live spec before real use. Zero PII, deterministic compute.",
  "input_schema_ref": "chaingraph/art-16-google-ap2-mandate-builder.html#manifest",
  "consumes": [
    "art-15-agentic-mandate-sandbox",
    "art-22-agentic-payments-protocol-comparator",
    "art-27-agentic-readiness-diagnostic"
  ],
  "feeds": [
    "art-17-ap2-mcp-policy-validator",
    "art-23-visa-trusted-agent-protocol-inspector"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:f16c71bd2744673ca2bd40dc97c04c0a360c89ebb528bcef913f7243adfc6c29",
      "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": "JTwGdT5LA/HzAyKd1QN1WP5Kr6AEWVoS5SxxSGDSEVgeQQFebi9XgkGNqHfw+NMSR7hOObdAeFva0bzDb7Oj2QQ8ka5avA2fuVmBH0M03t7UDxhV7e0V/yAoaCJektyGF5HbE2KTlRRlY1KyAaq/wl0+cmyY/6wREQecTF9TLvYsDj8ePt6nrq+zYOQPG34vyNbYjvkTWQz6JfwwlmcT9zBWQbo3DPXijsSPsbZX1VOYGnTiwIjqqk53dOlUKvUMI0GdV1CrblQULiwj3Epr71cKp6eu+zr8Ix57RAQR6Psqueb4xoIar98aXPgWWdSlT7b6momZnMrJnAJtTIqaqQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f16c71bd2744673ca2bd40dc97c04c0a360c89ebb528bcef913f7243adfc6c29",
      "output": {
        "has_proof": true,
        "issuer": "did:web:agent.example.com",
        "note": "Illustrative Google AP2 mandate skeleton (external spec, ap2-protocol.org) — distinct from the AINumbers Policy Mandate. Field names illustrative; sign with the agent key and verify against the live spec before real use.",
        "vdc": {
          "@context": [
            "https://www.w3.org/ns/credentials/v2",
            "https://ap2-protocol.org/context/v1"
          ],
          "credentialSubject": {
            "constraints": {
              "goal": "user-stated purchase intent",
              "merchantAllowList": [
                "merchant.example.com"
              ]
            },
            "id": "urn:user:demo-001",
            "mandateType": "checkout",
            "merchant": "merchant.example.com",
            "stage": "open"
          },
          "issuer": "did:web:agent.example.com",
          "proof": {
            "cryptosuite": "eddsa-2022",
            "proofPurpose": "assertionMethod",
            "proofValue": "<ILLUSTRATIVE — sign with the agent key>",
            "type": "DataIntegrityProof",
            "verificationMethod": "did:web:agent.example.com#key-1"
          },
          "type": [
            "VerifiableCredential",
            "CheckoutMandate"
          ]
        },
        "vdc_stage": "open",
        "vdc_type": "CheckoutMandate"
      }
    }
  }
},
    {
  "tool_id": "art-17-ap2-mcp-policy-validator",
  "tool_version": "1.0.0",
  "display_name": "AP2/MCP Policy Validator",
  "mcp_name": "validate_ap2_mandate_credential",
  "mandate_type": "scheme_rule",
  "wave": "A",
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-17-ap2-mcp-policy-validator.html",
  "description": "Validates a caller-supplied payload against the AINumbers Unified Build Contract v1.0 Policy Mandate field set (ap2_version, mandate_id, tool_id, mandate_type, jurisdiction, audit_metadata, and related fields), scoring compliance 0-100 and flagging deprecated fields. Stage 3 of the Agentic Policy Chain. Deterministic, zero PII, no external network calls.",
  "input_schema_ref": "chaingraph/art-17-ap2-mcp-policy-validator.html#manifest",
  "consumes": [
    "art-16-google-ap2-mandate-builder",
    "art-27-agentic-readiness-diagnostic"
  ],
  "feeds": [
    "art-18-mcp-developer-readiness-scorecard"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c8bd009b480838215fafa652ee90ae0e5439c003a08ca20fc0d5c97819232151",
      "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": "Ka0SVPP3T6YOWSuiwDAzMud6M0pfe4BibRZWqV4R17UCC4RYLSUDhBUhWbNgPJaeiPfi7+eI0S3s8x+EwGBv5BaMVJTbjRrNDmctyXubs6HOYf3pLfd0z1bLjrERxiGiAaZVUFwqWJTM66/k4gbaVpmEBtKImp5W7SYdsNtj1kgif9khe/2a3Rw2y9qfXnHhD1uflfn0GmWFL+LjNNVvKwNC3mMUmr/s/tb/2rmQxaSZUUv8kCCwe8C4sodmIig3Icqwgfx1Iy+fzg/IUaGF0/jpOeXKqUhjlWvDRDAndw4FuPYNWmdiQiI5hDCH0FNqmSlhfpurgjrtjYZ0AwJ/Hg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c8bd009b480838215fafa652ee90ae0e5439c003a08ca20fc0d5c97819232151",
      "output": {
        "agent_deployment_recommended": true,
        "compliance_score": 93,
        "deprecated_fields_found": [],
        "field_results": [
          {
            "detail": "\"1.0\"",
            "field": "ap2_version",
            "status": "PASS"
          },
          {
            "detail": "\"google-ap2-mandate-builder-2026-07-31T00-00-00\"",
            "field": "mandate_id",
            "status": "PASS"
          },
          {
            "detail": "\"2026-07-31T00:00:00Z\"",
            "field": "issued_at",
            "status": "PASS"
          },
          {
            "detail": "\"ainumbers.co\"",
            "field": "issued_by",
            "status": "PASS"
          },
          {
            "detail": "\"google-ap2-mandate-builder\"",
            "field": "tool_id",
            "status": "PASS"
          },
          {
            "detail": "\"1.1.0\"",
            "field": "tool_version",
            "status": "PASS"
          },
          {
            "detail": "\"compliance_control\"",
            "field": "mandate_type",
            "status": "PASS"
          },
          {
            "detail": "Array: [BR, US]",
            "field": "jurisdiction",
            "status": "PASS"
          },
          {
            "detail": "Object with 4 key(s)",
            "field": "payload",
            "status": "PASS"
          },
          {
            "detail": "Object with 3 key(s)",
            "field": "audit_metadata",
            "status": "PASS"
          },
          {
            "detail": "\"compliance_control\" is a valid mandate_type value.",
            "field": "mandate_type (enum)",
            "status": "PASS"
          },
          {
            "detail": "Set to true.",
            "field": "audit_metadata.client_side_executed",
            "status": "PASS"
          },
          {
            "detail": "Set to true.",
            "field": "audit_metadata.zero_pii_verified",
            "status": "PASS"
          },
          {
            "detail": "Set to true.",
            "field": "audit_metadata.deterministic_run",
            "status": "PASS"
          },
          {
            "detail": "Valid ISO 8601: \"2026-07-31T00:00:00Z\"",
            "field": "issued_at (ISO 8601)",
            "status": "PASS"
          },
          {
            "detail": "Valid ISO 8601: \"2026-07-31\"",
            "field": "valid_from (ISO 8601)",
            "status": "PASS"
          },
          {
            "detail": "Array with 1 instruction(s).",
            "field": "agent_instructions",
            "status": "PASS"
          },
          {
            "detail": "Valid country codes: BR, US",
            "field": "jurisdiction (ISO 3166-1)",
            "status": "PASS"
          }
        ],
        "note": "Validates a caller-supplied payload against the AINumbers Unified Build Contract v1.0 Policy Mandate field set. Distinct from Google’s external AP2 payments protocol.",
        "validated_payload_tool_id": "google-ap2-mandate-builder"
      }
    }
  }
},
    {
  "tool_id": "art-18-mcp-developer-readiness-scorecard",
  "tool_version": "1.0.0",
  "display_name": "MCP Developer Readiness Scorecard",
  "mcp_name": "score_mcp_server_readiness",
  "mandate_type": "compliance_control",
  "wave": "A",
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-18-mcp-developer-readiness-scorecard.html",
  "description": "Rolls up caller-supplied yes/partial/no answers across six MCP ship-readiness sections (tool definitions, server.json/registry, OAuth 2.1, transport security, tool-poisoning hygiene, spec-revision compliance) into an overall 0-100 score and a prioritized gap list. Stage 4 (terminal) of the Agentic Policy Chain. Self-reported rollup; validate each weak section with its own deep-dive tool. Deterministic, zero PII.",
  "input_schema_ref": "chaingraph/art-18-mcp-developer-readiness-scorecard.html#manifest",
  "consumes": [
    "art-17-ap2-mcp-policy-validator",
    "art-23-visa-trusted-agent-protocol-inspector",
    "art-24-mastercard-agentic-token-builder",
    "art-25-a2a-agent-card-validator",
    "art-26-x402-payload-decoder-flow-simulator",
    "art-27-agentic-readiness-diagnostic",
    "art-28-mcp-server-deployability-diagnostic"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c81916c6a7e22cfeeef2b25f1f7aabff7bdbe4b32867e558653e5324e016ab4c",
      "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": "L5pf7QCRMlTbkNNB8NESFFhhFUlZuDbXZw02zWtqp1MO6z2eKabcCXGzuIbaBYwYo8LR7n4LF9EB8mr4aAcbjAcFT19xaqmtN2DxzuHG9P8oqJh/6hNgM+gnXlRw8AU+ArzJha/z3wHYoXdiDv+S/jl2Ppq3YJNq9M2XgL5SVCYhtVDaJDzVyMgEn6ixbpttKarAtzL+2znzi9zzZAmK0g5aIyu5+pTBUHgyH4Xpl1j1r8O4atKwvpH/XyT00HfMDWJiepXVJeI/ixuLMl3DrKdskokqdRn7dFc6W5GInO0KsKAnrDBAzoLeGqbGabdZ72ptQDoiC8PwRM8VfoQGZQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c81916c6a7e22cfeeef2b25f1f7aabff7bdbe4b32867e558653e5324e016ab4c",
      "output": {
        "answers_used": {
          "oauth_aud": "yes",
          "oauth_pass": "yes",
          "oauth_prm": "yes",
          "poison_clean": "yes",
          "poison_trust": "yes",
          "serverjson_meta": "yes",
          "serverjson_name": "yes",
          "serverjson_pkg": "yes",
          "spec_rev": "yes",
          "spec_stateless": "yes",
          "tooldef_ann": "yes",
          "tooldef_desc": "yes",
          "tooldef_schema": "yes",
          "transport_bind": "yes",
          "transport_origin": "yes"
        },
        "gaps": [],
        "gaps_count": 0,
        "note": "Self-reported rollup across six MCP ship-readiness sections. Validate each weak section with its own deep-dive tool before treating this as a launch gate.",
        "overall": 100,
        "sections": [
          {
            "id": "tooldef",
            "name": "Tool Definitions",
            "pct": 100,
            "tool": "T274 Linter"
          },
          {
            "id": "serverjson",
            "name": "server.json / Registry",
            "pct": 100,
            "tool": "T275 Validator"
          },
          {
            "id": "oauth",
            "name": "OAuth 2.1 Authorization",
            "pct": 100,
            "tool": "T278 Auditor"
          },
          {
            "id": "transport",
            "name": "Transport Security",
            "pct": 100,
            "tool": "T284 Auditor"
          },
          {
            "id": "poison",
            "name": "Tool-Poisoning Hygiene",
            "pct": 100,
            "tool": "T282 Scanner"
          },
          {
            "id": "spec",
            "name": "Spec-Revision Compliance",
            "pct": 100,
            "tool": "T280 Scorer"
          }
        ],
        "verdict": "Ship-ready."
      }
    }
  }
},
    {
      "tool_id": "art-19-agentic-checkout-protocol-selector",
      "tool_version": "1.0.0",
      "display_name": "Agentic Checkout Protocol Selector",
      "mcp_name": "select_agentic_checkout_protocol",
      "mandate_type": "routing_policy",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-19-agentic-checkout-protocol-selector.html",
      "description": "Scores ACP, UCP, x402, and Visa TAP against platform profile (buyer type, AOV, geography, stack capabilities) and returns a ranked protocol recommendation with fit scores. Node 1 of 3 in the Agentic Checkout Chain.",
      "input_schema_ref": "chaingraph/art-19-agentic-checkout-protocol-selector.html#manifest",
      "deadline": null,
      "deadline_note": "ACP live; UCP launched Jan 2026; x402 live on Coinbase CDP; TAP from Visa",
      "consumes": [],
      "feeds": [
        "art-20-acp-ucp-product-feed-conformance-auditor",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4219bb286318e4b2c15e45b65ee7be8d960c49a3f2a805aee2e9b9d49ff797e0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ImztYHEJbMAolSYzuDtz0KIX4gRsCsVX+AnATWBTn/sHzY+/LtKmrh3yNO2+Z4DYw9WddclJ6O5CcQJWjUUIxSbocrgPqD8ntLzqzI+4DnWuH3bb/xkbMcapOPCZIl6/JKpNMOrLRzC4mVohY8JTFv8pEUSt5mkFRCoGzxEnxgAoOLxFWguFnvqX2FAe+Wuc66kFzuTa1ErpIQC2mU8FuhS3ysz/w0C95YBmAuKsoeYgMUh/3/3u2NxxmQn1FlgjJTPnuKQjfyBcj+GbVZ4GBw5loT0RHfIvlvfggzHdnbAX8YYYcUGETHu3BM8VWaf1GYUUOxth92FFvCPVCGplOw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1ba2b3b6a19f46bbc1dbdaa6e39430e5d4fd296d843d4398aa82bd17d248d501",
          "output": {
            "primary_name": "ACP (Agent Commerce Protocol / AP2)",
            "primary_recommendation": "ACP",
            "primary_score": 100,
            "profile": {
              "agent_appetite": "high",
              "aov": "mid",
              "buyer_type": "agent",
              "geo": "global",
              "platform": "custom",
              "stack_card": false,
              "stack_crypto": false,
              "tech_cap": "api"
            },
            "protocol_scores": [
              {
                "bestFor": "AI-native merchants, ChatGPT / Gemini checkout integration, structured mandate flows",
                "label": "recommended",
                "name": "ACP (Agent Commerce Protocol / AP2)",
                "notFor": "Merchants with no AI agent traffic or no API integration capability",
                "protocol": "ACP",
                "score": 100
              },
              {
                "bestFor": "Platform merchants, broad agent interop, standardized checkout across agent surfaces",
                "label": "recommended",
                "name": "UCP (Universal Checkout Protocol)",
                "notFor": "Micropayments < $1, custom API-only merchants needing sub-cent settlement",
                "protocol": "UCP",
                "score": 95
              },
              {
                "bestFor": "API/content micropayments, per-call AI agent billing, developer tools, sub-$10 transactions",
                "label": "viable",
                "name": "x402 (HTTP 402 Micropayment Protocol)",
                "notFor": "Consumer checkout flows, merchants needing fiat settlement, high-AOV merchandise",
                "protocol": "x402",
                "score": 55
              },
              {
                "bestFor": "Card-first merchants, backward compat with existing Visa acquiring, high-value B2C/B2B",
                "label": "viable",
                "name": "Visa TAP / VIC (Trusted Agent Protocol)",
                "notFor": "Crypto-native merchants, micropayments, merchants without Visa acquiring",
                "protocol": "TAP",
                "score": 55
              }
            ],
            "recommended_protocols": [
              "ACP",
              "UCP"
            ],
            "viable_protocols": [
              "ACP",
              "UCP",
              "x402",
              "TAP"
            ]
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-20-acp-ucp-product-feed-conformance-auditor",
      "tool_version": "1.0.0",
      "display_name": "ACP/UCP Product-Feed Conformance Auditor",
      "mcp_name": "audit_acp_ucp_product_feed",
      "mandate_type": "scheme_rule",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-20-acp-ucp-product-feed-conformance-auditor.html",
      "description": "Validates product/checkout/mandate JSON payloads against ACP or UCP field schemas (5 schema arrays). Identifies missing required fields, type mismatches, and unknown fields. Node 2 of 3 in the Agentic Checkout Chain.",
      "input_schema_ref": "chaingraph/art-20-acp-ucp-product-feed-conformance-auditor.html#manifest",
      "deadline": null,
      "deadline_note": "ACP + UCP both live 2026",
      "consumes": [
        "art-19-agentic-checkout-protocol-selector"
      ],
      "feeds": [
        "art-21-agent-traffic-acceptance-policy-builder",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6fcabf3a24030e00fb8df1723c7c77039066139306f2100a0bb8a97b53eb07c8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IrH4cAmHl2ouZKjwZxmN1BB2zsPPuM/iAApwLtf+R7UAMqqq6hsIT9h42o0EMrvtWEtQhoQE2450ZLAr2akU0SlJ7cFu7LdN5cC6WVwAWqIA3w7VFNPyfmeasyfkQsJJLK1wd8c06kPFWHo+VlsN57JMY5yterJjuoHF2tSgaLgRJsBaJEFN3RWBFpqDJIuZDDnDDLpKItyHxSNd02phGgXYz1djrl9PHdm7ZSwHMMOr0BiEj474Ge/F5RACCbJbJ7JkOsQmENu0J3WHPSknH6nWFal05dxMEJWn9oqtHR4ndZTrLcOqGqPiF2GSpsuw0WGcIjsfqvXDeBjr0QiRgA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c61e1dae007744a1008d8195a790e255757439ab91a789dc691f567a3e80466e",
          "output": {
            "acp_missing_required": [],
            "audit_target": "acp",
            "conformance_scores": {
              "acp": 75,
              "ucp": null
            },
            "critical_gaps": 0,
            "payload_type": "product",
            "ucp_missing_required": [],
            "verdict": "conformant",
            "warnings": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-21-agent-traffic-acceptance-policy-builder",
      "tool_version": "1.0.0",
      "display_name": "Agent-Traffic Acceptance Policy Builder",
      "mcp_name": "build_agent_traffic_policy",
      "mandate_type": "agent_guardrail_mandate",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-21-agent-traffic-acceptance-policy-builder.html",
      "description": "Builds a policy mandate governing accepted AI agent types, identity verification level, velocity and value caps, payment rails, refund posture, retry policy, and blocking rules. Exports an agent-readable instructions block and a §4 hash-anchored artifact. Node 3 of 3 in the Agentic Checkout Chain.",
      "input_schema_ref": "chaingraph/art-21-agent-traffic-acceptance-policy-builder.html#manifest",
      "deadline": null,
      "deadline_note": "ACP/AP2/EU AI Act Art.13/14 transparency + oversight obligations",
      "consumes": [
        "art-20-acp-ucp-product-feed-conformance-auditor"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6243000aa7fa78f35081606c6c9c5dd114268e7a28e879dcb7f96f2be704cd76","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HWAem19+Xo1x5NaHzywanFo3pKHBFQbNa4EXhd3lfTMqhXe8By3BoikAUhmGsgiPoZieMcDYUdeCZPDLZxAC0ygKVHaLuu5Bo+CKyN64EIQF4sIN6SInJvqhPSRsuF8gMDNUSO3nSxPe1QxtO69lPzTgZnRv3l2GEwqRzttclt8JyNyAnB+5bsNlqXE2ezZoN9ZOupADI6vfDRtTxVIVlwZ1vZWqMA/Bgm7y7yi2TFGTiamNdnBAtK4PpD/1oA6WFQVbLh53daQJVPEIazfoaszmnEhoB2Y1lzb78qymocwmT3sv70Fc5Nipj7ahcUc+QSGMqt4XhBS60o2utHMV3g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a175d6a6c97d723ee8e658b33537936aaca68d151e8693a3dec9ff7ea6599979",
          "output": {
            "accepted_agent_types": [
              "openai"
            ],
            "accepted_payment_rails": [
              "acp",
              "x402"
            ],
            "block_rules": [
              "block_burst",
              "block_anon_high"
            ],
            "guardrail_findings": [
              {
                "message": "AP2 Verifiable Digital Credential: agent identity cryptographically attested.",
                "type": "pass"
              },
              {
                "message": "Single transaction cap $100 limits blast radius.",
                "type": "pass"
              },
              {
                "message": "Standard agent commerce protocol(s) enabled: ACP / AP2 mandate.",
                "type": "pass"
              },
              {
                "message": "Burst detection active: velocity anomaly threshold will block runaway agent loops.",
                "type": "pass"
              },
              {
                "message": "Standard refund / dispute window is a reasonable default for agent-commerce transactions.",
                "type": "pass"
              },
              {
                "message": "Anonymous-agent high-value block active: identity required above $50 per transaction.",
                "type": "pass"
              }
            ],
            "guardrail_passes": 6,
            "guardrail_warnings": 0,
            "max_daily_spend_usd": 1000,
            "max_single_transaction_usd": 100,
            "max_tx_per_day": 5000,
            "max_tx_per_min": 60,
            "overall_risk": "low",
            "refund_posture": "standard",
            "retry_policy": "retry_1x",
            "verdict": "POLICY_SOUND",
            "verification_level": "ap2_vdc"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-22-agentic-payments-protocol-comparator",
      "tool_version": "1.1.0",
      "display_name": "Agentic Payments Protocol Comparator",
      "mcp_name": "compare_agentic_rail_protocols",
      "mandate_type": "routing_policy",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-22-agentic-payments-protocol-comparator.html",
      "description": "Compares AP2, ACP, x402, Visa TAP, Mastercard Agentic Token, and Tempo MPP (Machine Payments Protocol) across 8 dimensions (backer, artifact, signing, scope, rail, identity, audit, status) and 6 agentic scenarios. Root node of the Agentic Rail Chain: routing_policy output determines Branch A (AP2/card) or Branch B (A2A/x402). Promoted from T276.",
      "input_schema_ref": "chaingraph/art-22-agentic-payments-protocol-comparator.html#manifest",
      "deadline": null,
      "deadline_note": "AP2 v0.2 live (FIDO Alliance, April 2026); Visa TAP launched; Mastercard Agent Pay announced Apr 2025",
      "consumes": [],
      "feeds": [
        "art-16-google-ap2-mandate-builder",
        "art-23-visa-trusted-agent-protocol-inspector",
        "art-24-mastercard-agentic-token-builder",
        "art-25-a2a-agent-card-validator",
        "art-26-x402-payload-decoder-flow-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0d884710ed42dd2b36075266167a7fed1219199fa4aebad015933fabc4dfdee8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GT0ieOk3H8vvmM7ygNO7qkNsHMJ5lnQxQqiYtn0puNwl99/R/Pikb96Ea4cMu0RLyXxPSvFsbBcQRW+3NUWcAhq/zxaPKlxSrxnRUSAf1wV+vbObNyeuZG/TOMZxYKbKD/bRJQOzhOMA9APMWaGcFSobufsxEIKEMDByJOx9YHISlxBC0i/kNOUgiD0RkfAjWiGmJD14TK1I68+htJZGgA0l0mubii1AbUUXItB3LBZp4sy+0SfQM3Q/Vq543eHJHKbdv4XGIzi6oNtw264j34O0fRWQSxTRN/2MAsOWcscs7o5gn2QleupbUAxlRBl66pcvderiPKvnSyjB77BtDg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d3389851ebca78ebd45327e99035932bc36aa53855774154bd5abcd72afe7ae8",
          "output": {
            "crosswalk": [
              {
                "concept": "Authorization artifact",
                "values": {
                  "acp": "Shared Payment Token",
                  "ap2": "Payment Mandate (VDC)"
                }
              },
              {
                "concept": "Proof of user intent",
                "values": {
                  "acp": "OAuth delegation + SPT",
                  "ap2": "Signed mandate chain"
                }
              },
              {
                "concept": "Scope unit",
                "values": {
                  "acp": "Merchant + cart total",
                  "ap2": "Cart + amount"
                }
              },
              {
                "concept": "Settlement medium",
                "values": {
                  "acp": "Card via PSP",
                  "ap2": "Card or stablecoin"
                }
              },
              {
                "concept": "Identity / trust root",
                "values": {
                  "acp": "OAuth 2.0",
                  "ap2": "FIDO / VDC"
                }
              }
            ],
            "note": "Orientation snapshot only — verify every field against the cited primary source. Specs version monthly.",
            "protocol_names": [
              "AP2",
              "ACP"
            ],
            "protocols_compared": [
              "ap2",
              "acp"
            ],
            "protocols_detail": [
              {
                "artifact": "Checkout Mandate + Payment Mandate, expressed as Verifiable Digital Credentials (VDCs)",
                "audit": "Strong — non-repudiable chained VDC audit trail",
                "backer": "Google → donated to FIDO Alliance (2026)",
                "id": "ap2",
                "identity": "FIDO / verifiable credentials; rides on A2A",
                "name": "AP2",
                "rail": "Rail-agnostic — cards today; x402/stablecoin via the A2A x402 extension",
                "scope": "Cart + amount + payment instrument, bound at the Closed stage",
                "signed": "Cryptographically signed VDCs; Open→Closed mandate chain",
                "status": "v0.2; donated to FIDO Alliance (~Apr 2026)",
                "sub": "Agent Payments Protocol"
              },
              {
                "artifact": "Shared Payment Token (SPT) + Agentic Checkout session objects",
                "audit": "Order/session objects; PSP transaction record",
                "backer": "OpenAI + Stripe",
                "id": "acp",
                "identity": "OAuth 2.0 delegated auth",
                "name": "ACP",
                "rail": "Card via any compatible PSP (Stripe first); merchant stays merchant of record",
                "scope": "Single-use SPT scoped to merchant + cart total",
                "signed": "Delegated authorization (OAuth 2.0); PSP-issued SPT",
                "status": "beta; spec dated 2026-04-17",
                "sub": "Agentic Commerce Protocol (Shared Payment Token)"
              }
            ],
            "recommendation": {
              "also_consider": [
                "acp"
              ],
              "also_names": [
                "ACP"
              ],
              "primary_names": [
                "AP2"
              ],
              "primary_pick": [
                "ap2"
              ],
              "rationale": "A rail-agnostic, non-repudiable mandate chain across merchants is AP2's core design (Checkout + Payment Mandate VDCs). ACP fits if you are standardising on the OpenAI/Stripe checkout surface."
            },
            "scenario": "cross_merchant"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-23-visa-trusted-agent-protocol-inspector",
      "tool_version": "1.0.0",
      "display_name": "Visa Trusted Agent Protocol (TAP) Signature Inspector",
      "mcp_name": "inspect_visa_trusted_agent_protocol",
      "mandate_type": "compliance_control",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-23-visa-trusted-agent-protocol-inspector.html",
      "description": "Parses and scores Visa TAP Signature-Input / Signature header pairs (RFC 9421 HTTP Message Signatures). Runs a 5-question TAP Readiness Assessment. Branch A, node 2 of the Agentic Rail Chain. Promoted from T286.",
      "input_schema_ref": "chaingraph/art-23-visa-trusted-agent-protocol-inspector.html#manifest",
      "deadline": null,
      "deadline_note": "Visa TAP launched; RFC 9421 stable",
      "consumes": [
        "art-16-google-ap2-mandate-builder",
        "art-22-agentic-payments-protocol-comparator"
      ],
      "feeds": [
        "art-18-mcp-developer-readiness-scorecard",
        "art-24-mastercard-agentic-token-builder",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:121d2bbc225f22b9f647b43ef1310b168a6b6bd0a3e0d1e45dba0bc500fc213a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BfA4hqehClmYY2DhR5XZ1IuYKMBhcfHocF0ajFK2tYQCuwq49u3E4mcn4d/ofbmNb/lyz5YyXxutfSA6czZwOBsFz0xZ7+TMOYR+0oqB3GKtLSX0nSiIIgirCyx+mz/GLykIj82lilaG71X5Sf42JRG1XhZbVN/mynFUO0NKXCUNMPw5zGcdA7sJlPUwB2T4RiJ0XObYJMcPG0yWmwX0bSE+Nm15KMSHde0kdL0UNaCWJkIEOR79skvVebPWeM4YJdWelHFz8w7Jqdz2Tag1/XJRhZtHuVcCSPEoN93GOuQQlW/zmZOdEdxdVYDGsVSVTrpCMfsCHsunY6sPgE8r4g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b59acdb3f6c559afe0d926e29aabe8d48395491c8d3ee40b47c93c243d788c97",
          "output": {
            "errors": 0,
            "findings": [
              {
                "level": "pass",
                "msg": "Parsed signature \"sig1\" with 2 covered component(s)."
              },
              {
                "level": "pass",
                "msg": "Agent-recognition tag present (tag=\"trusted-agent\")."
              },
              {
                "level": "pass",
                "msg": "created = 1750000000."
              },
              {
                "level": "pass",
                "msg": "expires 1750003600 declared — bounded validity window."
              },
              {
                "level": "pass",
                "msg": "nonce/session id present (\"abc123\")."
              },
              {
                "level": "pass",
                "msg": "keyid = \"agent-key-1\"."
              },
              {
                "level": "pass",
                "msg": "alg = ed25519."
              },
              {
                "level": "pass",
                "msg": "Request binding present (method + target)."
              },
              {
                "level": "pass",
                "msg": "Signature label matches (crypto verification out of scope)."
              }
            ],
            "parsed_label": "sig1",
            "parsed_params": {
              "alg": "ed25519",
              "created": "1750000000",
              "expires": "1750003600",
              "keyid": "agent-key-1",
              "nonce": "abc123",
              "tag": "trusted-agent"
            },
            "passes": 9,
            "score": 100,
            "verdict": "TAP_READY",
            "warnings": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-24-mastercard-agentic-token-builder",
      "tool_version": "1.0.0",
      "display_name": "Mastercard Agentic Token Scope Builder",
      "mcp_name": "build_mastercard_agentic_token",
      "mandate_type": "compliance_control",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-24-mastercard-agentic-token-builder.html",
      "description": "Builds or lints a Mastercard Agent Pay Agentic Token scope: agent binding, merchant scope, consent policy (limits, expiry, velocity, MCC). The agent never receives the raw PAN (MDES tokenised). Branch A, node 3 of the Agentic Rail Chain. Promoted from T287.",
      "input_schema_ref": "chaingraph/art-24-mastercard-agentic-token-builder.html#manifest",
      "deadline": null,
      "deadline_note": "Mastercard Agent Pay announced Apr 2025; MDES Agentic Token schema partially public",
      "consumes": [
        "art-22-agentic-payments-protocol-comparator",
        "art-23-visa-trusted-agent-protocol-inspector"
      ],
      "feeds": [
        "art-18-mcp-developer-readiness-scorecard",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:c3fc5f06ba67952f984a4b92f4a19b72dc85afedb761aaa7dace3b61ae13cc1e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LSKg0R2dOYvVzq2Y7E0ckdBp7Inprb7IMkutzULJE0caiY7sEAGIG3Akvi6+vYu+73xg7gzEOoVcRNi66IhWuQnVy6ErMMlv4Z3O3EYuylMO9g10R3gptWzxaAtYaxF9C4pCLW34PWD7DcVgyBSIu39nLSJ63jh3ttTgs0swiM8vk92YwlPG1/KL6yMehM6k7Fq3D2XEZ9LKqVXOpfyFuyoTOphSiKu3kJd+6NhMEcCxd3THYVYOGSg+dC9feUaOIbv7DM9Vs5nM83+Eo+ipjedxE2o9yZS76DOR7AaDXHMO+rF9RIM8CNEDJDujaSOziAQBsYaLdXv3ozGN+2PPSw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cee832d202c9cb582ec61f5495ea22f091d9f2ca1aed420e1df65cc05ec38e77",
          "output": {
            "errors": 0,
            "findings": [
              {
                "level": "pass",
                "msg": "Agent-bound (agentId = agent:test:v1)."
              },
              {
                "level": "pass",
                "msg": "Merchant-scoped (1 merchant(s))."
              },
              {
                "level": "pass",
                "msg": "Per-transaction limit set."
              },
              {
                "level": "pass",
                "msg": "Total/period limit set."
              },
              {
                "level": "pass",
                "msg": "Expiry set (expiresAt)."
              },
              {
                "level": "info",
                "msg": "No velocity/frequency cap — consider one to bound runaway agent spend."
              },
              {
                "level": "info",
                "msg": "Field names illustrative (MDES Agentic Token) — verify against Mastercard. The agent never receives the raw PAN."
              }
            ],
            "passes": 5,
            "score": 100,
            "verdict": "safe",
            "warnings": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-25-a2a-agent-card-validator",
      "tool_version": "1.0.0",
      "display_name": "A2A Agent Card Validator & Extension Checker",
      "mcp_name": "verify_a2a_agent_card",
      "mandate_type": "compliance_control",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-25-a2a-agent-card-validator.html",
      "description": "Validates an A2A agent-card.json against the v1.0 shape: identity fields, capabilities, extensions (AP2/x402), input/output modes, skills, provider, signed-card JWS block. Branch B, node 1 of the Agentic Rail Chain. Promoted from T283.",
      "input_schema_ref": "chaingraph/art-25-a2a-agent-card-validator.html#manifest",
      "deadline": null,
      "deadline_note": "A2A v1.0 live (Linux Foundation, 2026)",
      "consumes": [
        "art-22-agentic-payments-protocol-comparator"
      ],
      "feeds": [
        "art-18-mcp-developer-readiness-scorecard",
        "art-26-x402-payload-decoder-flow-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:31f05f94d1769d1602bf8a182a0c58acbc94caa2292ed294d99233f5ba0d3e1b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Hy/MkG+Ky3W+MO75X+ZkQqMVE3bSocK/DZnggV9JvhoKhm7rY7PPHc7Wuc6/99lg8Wr9D0PnGMufphYtXJZNcAnNi7bFq157VkPCaFV7Eo6SdbR4Z3ZdX1uHTQ1hQRoRCKtGqandWPj2fh9SuamuVOYKyHmTKdRcPgv544iN3RUssrmJ1NkRsU/k4WENwWhhGk7fituIA8X+kPmoL+R1JyNLHjX3yHih1rOPBu84OOCrqBe7dRIOFFBNTO5pf99BKHoppERR3dXtZgDKggXy4uCvuhHZWwpcBK0ZS4H/EB0RTvu6SOPfJCIsPKx4bgs+uIaoVBYomAkVhcdOtTqGDA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:224604a0e6073f69216b671c693ab41c03e588e68fa8c0f397d847514654e9f4",
          "output": {
            "errors": 0,
            "findings": [
              {
                "level": "pass",
                "msg": "Core identity fields present (name, description, url, version)."
              },
              {
                "level": "pass",
                "msg": "protocolVersion = \"1.0\"."
              },
              {
                "level": "pass",
                "msg": "capabilities present (streaming=false, pushNotifications=false)."
              },
              {
                "level": "info",
                "msg": "No capabilities.extensions — declare AP2/x402 here if this agent transacts."
              },
              {
                "level": "pass",
                "msg": "1 skill(s) advertised."
              },
              {
                "level": "info",
                "msg": "Unsigned card. A2A v1.0 supports Signed Agent Cards (a \"signatures\" JWS array)."
              },
              {
                "level": "info",
                "msg": "Serve this document at /.well-known/agent-card.json for discovery."
              }
            ],
            "has_ap2_extension": false,
            "has_signed_card": false,
            "passes": 4,
            "score": 100,
            "verdict": "valid",
            "warnings": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-26-x402-payload-decoder-flow-simulator",
      "tool_version": "1.0.0",
      "display_name": "x402 Header Decoder, Payload Linter & 402 Flow Simulator",
      "mcp_name": "simulate_x402_flow",
      "mandate_type": "compliance_control",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-26-x402-payload-decoder-flow-simulator.html",
      "description": "Decodes base64 PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE headers, lints exact-scheme PaymentPayload (EIP-3009 style authorization fields), walks the HTTP-402 request/verify/settle flow, shows scheme×network matrix. Branch B, node 2 of the Agentic Rail Chain. Promoted from T277.",
      "input_schema_ref": "chaingraph/art-26-x402-payload-decoder-flow-simulator.html#manifest",
      "deadline": null,
      "deadline_note": "x402 live on Coinbase CDP; exact scheme live on base/polygon/arbitrum/solana",
      "consumes": [
        "art-22-agentic-payments-protocol-comparator",
        "art-25-a2a-agent-card-validator"
      ],
      "feeds": [
        "art-03-x402-settlement-modeler",
        "art-18-mcp-developer-readiness-scorecard",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "standards_basis": "not_applicable",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:24dadadd4a0901134a41d251fcac134657970dc8015251d06ab4757f1bcaf17e","valid_from":"2026-08-16"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "K1eX4j5A1Nx9TMIP5ogAhWhOggaeD88kQwJWCjIOsHgAK0ddCzou+aVBhDeTAClieqthRpZxMnuaUfElCnJoWS0EQUAU859+y4UdKkunONoV7kXZUXP9mdX4DWAtd84NDdWWVNega72yJy/kChFPrId8YcuiLKNL87B0Sa9FCqAkI0ZT7zFigpUhvk3dpDgxoBIAqAohTRYZ2zCtVuwBRSq1EqR16MB0DJ1oj7KuEl0nl9R/Q0oJqFuuAlmqZlqjA1WjsiSDGeF4IYtFGu7Xpl/gGOP3lVNMPdN+DdhrE5guE/yijK9a+3+QHI5OlyG+Kf4U2ipH2igRQNn3d6JOmg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6024a5a393fc85a6dfdaf2d0e7bce23482229351048eb26b68e6246d97ef6df7",
          "output": {
            "decoded_type": "PaymentPayload",
            "errors": 0,
            "findings": [
              {
                "level": "warn",
                "msg": "Missing \"x402Version\"."
              },
              {
                "level": "pass",
                "msg": "scheme \"exact\" recognised."
              },
              {
                "level": "pass",
                "msg": "network \"base-sepolia\" recognised."
              },
              {
                "level": "pass",
                "msg": "payload.signature present."
              },
              {
                "level": "info",
                "msg": "exact-EVM authorization fields below are ILLUSTRATIVE (EIP-3009 style)."
              },
              {
                "level": "warn",
                "msg": "payload.authorization missing."
              }
            ],
            "has_accepts": false,
            "is_json": true,
            "mode": "lint",
            "network": "base-sepolia",
            "passes": 3,
            "scheme": "exact",
            "score": 92,
            "warnings": 2
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-27-agentic-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Agentic Payments Readiness Diagnostic",
      "mcp_name": "run_agentic_readiness_diagnostic",
      "mandate_type": "agent_guardrail_mandate",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-27-agentic-readiness-diagnostic.html",
      "description": "12-question scored diagnostic: graded A–F across policy & mandates, protocol formalisation, financial-crime controls, and MCP runtime operations. Single-node ChainGraph (chain_depth: 0). Promoted from guides/agentic-readiness-diagnostic.html.",
      "input_schema_ref": "chaingraph/art-27-agentic-readiness-diagnostic.html#manifest",
      "deadline": null,
      "deadline_note": "Wave A diagnostic — agentic payment readiness",
      "consumes": [],
      "feeds": [
        "art-15-agentic-mandate-sandbox",
        "art-16-google-ap2-mandate-builder",
        "art-17-ap2-mcp-policy-validator",
        "art-18-mcp-developer-readiness-scorecard"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:722288a354cc971531c98d20232fd303c991b6adf4cae35f974a30d1e3a3e33a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CMSMFTffc4C0Fxcr4YMkVgsXvZ9H7Je5TpdrAQWbu/oakYNTiM85+EIBgzweAw/iHlpbcoX1Brd0V03Y3IxVrxeQ2X1tJ98Z8esCMbjtM6jTXQIbKK8I+kgxskplgVJlHG78gN0Yp+8/pyMcDncIe7JeQPSo4Ot6+aJugeaDqHkmznjEjZISsJ7iqrpauaEH9j8b0JZ8k/2bOPadWCiKwQC7J8rrpPzs6YZRgf+L3z6AJ734UKDk0mLHAT6B4QQlLgykIhr9VJTXKAzfZLhMuLtXEjZ4ofV/jdkG7M1g56EqFz2ysBBl2Hng+6V4+U7tjao5hjnwuUztPGh3/fdJWg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1a58ae6f7660785f9f49628c3a8f83628804c100ea674503e990e929b2036aeb",
          "output": {
            "all_answered": true,
            "domain_scores": {
              "controls": {
                "label": "Financial-Crime Controls",
                "pct": 100
              },
              "policy": {
                "label": "Policy & Mandates",
                "pct": 100
              },
              "protocol": {
                "label": "Protocol Formalisation",
                "pct": 100
              },
              "runtime": {
                "label": "MCP Runtime Operations",
                "pct": 100
              }
            },
            "gaps": [],
            "is_ready": true,
            "score_pct": 100,
            "verdict": "A"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-28-mcp-server-deployability-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "MCP Server Deployability Diagnostic",
      "mcp_name": "run_mcp_deployability_diagnostic",
      "mandate_type": "agent_guardrail_mandate",
      "wave": "A",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-28-mcp-server-deployability-diagnostic.html",
      "description": "12-question scored diagnostic: graded A–F across tool definitions & schemas, transport & auth, security hygiene, and operations. Single-node ChainGraph (chain_depth: 0). Promoted from guides/mcp-server-deployability-diagnostic.html.",
      "input_schema_ref": "chaingraph/art-28-mcp-server-deployability-diagnostic.html#manifest",
      "deadline": null,
      "deadline_note": "Wave A diagnostic — MCP server deployability",
      "consumes": [],
      "feeds": [
        "art-18-mcp-developer-readiness-scorecard"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9cb70b02e660f0da7401030929a6059c40e2e3fd4868b86226b71eaf9d1d7394","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A3LMeemT8VD4A4IIWzuM+Q4ngn9O3Ta7REq9cv1VUb0nZyfKQ3kAJ17H5nj3nuxV5YUdgTawNYUeU6A8fC2E0h2xxS50CiswgAwFgwFv8aAx16adF1wAabo5fwIyYytUBzqQLJ2rLHbxZ6S35x5IAPJn8UMrLY6vO5H5+BhdsjYwUbz9hV1nFJJyxZpaCCAKSLhsYXLRFnILy4sC6pszcSFQPWZfh4LLzUpdEbggpULEGCVTUA6t8jRrEbGSd7gcDWmzOMGiYi+yLBTJ8PLuBnTJ6wxJNxyswEnrFIy2u34gsxTTLf9f43SCwqpvewPUmJ9kNMP8o3MXh7GOvZpE/g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:204ea045587551ef2c3330f6f15d80dd0e838e82f607728c9206a18c9b4113ce",
          "output": {
            "all_answered": true,
            "domain_scores": {
              "defs": {
                "label": "Tool Definitions & Schemas",
                "pct": 100
              },
              "ops": {
                "label": "Operations",
                "pct": 100
              },
              "security": {
                "label": "Security Hygiene",
                "pct": 100
              },
              "transport": {
                "label": "Transport & Auth",
                "pct": 100
              }
            },
            "gaps": [],
            "is_deployable": true,
            "score_pct": 100,
            "verdict": "A"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-29-dora-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "DORA Readiness Diagnostic",
      "mcp_name": "run_dora_readiness_diagnostic",
      "mandate_type": "infrastructure_mandate",
      "wave": "B",
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-29-dora-readiness-diagnostic.html",
      "description": "12-question scored diagnostic across four DORA pillars (ICT risk management, incident classification & reporting, resilience testing, third-party risk). Graded A–F with remediation map. Single-node ChainGraph (chain_depth: 0). Common entry point for the DORA Readiness Chain; diagnostic grade determines scenario routing (A/B/C). Promoted from guides/dora-readiness-diagnostic.html.",
      "input_schema_ref": "chaingraph/art-29-dora-readiness-diagnostic.html#manifest",
      "deadline": null,
      "deadline_note": "DORA (EU) 2022/2554 in force January 2025 — ~22,000 in-scope entities",
      "consumes": [],
      "feeds": [
        "art-09-dora-incident-classifier",
        "pnr-01-dora-ict-cascade-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2fc2a970c1e7b9f554cbc414c18f307b5b950e11931a9861c342ced9253b8f71","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CpZcQt84ZJZLz8QRaWWQEFIdjhxBKZQfTSYioT6ge/wcXtWoBRTPzQcLZh5pebhivtTBHilG+K701J/GBFmuGhe+j+HB5noWw7ThHgKTnG/cQyH4Se9rbbIqDt+T+kRvEBZeNZ7W/aVNSbgQt3EiWg96LHIjZ9oQVVUZgOUK1QcJzbaFYFBPk9lrFAgKnqXzDhimbC0FJVtn0IERt2kRIR7sioRx3muUtjFPGTJMYIDPMgK12o+iyv+FVSDWir4kEJBbtzwAQQPxZWPiAU1CRvqryMLaK/1oX/c6ZGIJGQEmf35KucKsgWFL31xyxSkMLf2wpCsdxExXP7SY8tYhrg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2fc2a970c1e7b9f554cbc414c18f307b5b950e11931a9861c342ced9253b8f71",
          "output": {
            "all_answered": false,
            "applicable_deadline_note": "DORA in force January 2025 — ~22,000 in-scope entities across the EU",
            "domain_scores": [
              {
                "articles": "Art. 5–16",
                "grade": "F",
                "label": "ICT Risk Management",
                "pct": 0
              },
              {
                "articles": "Art. 17–23",
                "grade": "F",
                "label": "Incident Classification & Reporting",
                "pct": 0
              },
              {
                "articles": "Art. 24–27",
                "grade": "F",
                "label": "Resilience Testing",
                "pct": 0
              },
              {
                "articles": "Art. 28–30",
                "grade": "F",
                "label": "Third-Party Risk",
                "pct": 0
              }
            ],
            "gaps": [
              {
                "articles": "Art. 5–16",
                "domain": "ICT Risk Management",
                "question": "Is there a board-approved ICT risk framework mapped to DORA Articles 5–16?",
                "severity": "no"
              },
              {
                "articles": "Art. 5–16",
                "domain": "ICT Risk Management",
                "question": "Are critical or important functions (CIFs) formally identified and documented?",
                "severity": "no"
              },
              {
                "articles": "Art. 5–16",
                "domain": "ICT Risk Management",
                "question": "Has proportionality been assessed and documented for your entity class?",
                "severity": "no"
              },
              {
                "articles": "Art. 17–23",
                "domain": "Incident Classification & Reporting",
                "question": "Can you classify a major ICT incident against the DORA criteria within the reporting clock?",
                "severity": "no"
              },
              {
                "articles": "Art. 17–23",
                "domain": "Incident Classification & Reporting",
                "question": "Are NCA submission templates and deadlines tracked end-to-end?",
                "severity": "no"
              },
              {
                "articles": "Art. 17–23",
                "domain": "Incident Classification & Reporting",
                "question": "Is there a tested escalation runbook from detection to initial notification?",
                "severity": "no"
              },
              {
                "articles": "Art. 24–27",
                "domain": "Resilience Testing",
                "question": "Is there a risk-based digital operational resilience testing programme (not just annual pen tests)?",
                "severity": "no"
              },
              {
                "articles": "Art. 24–27",
                "domain": "Resilience Testing",
                "question": "If in scope, is TLPT (threat-led penetration testing) scoped and scheduled?",
                "severity": "no"
              },
              {
                "articles": "Art. 24–27",
                "domain": "Resilience Testing",
                "question": "Are test findings tracked to closure with board visibility?",
                "severity": "no"
              },
              {
                "articles": "Art. 28–30",
                "domain": "Third-Party Risk",
                "question": "Is the register of information for all ICT third-party arrangements complete and current?",
                "severity": "no"
              },
              {
                "articles": "Art. 28–30",
                "domain": "Third-Party Risk",
                "question": "Do critical ICT contracts contain the DORA-mandated provisions (audit, exit, sub-outsourcing)?",
                "severity": "no"
              },
              {
                "articles": "Art. 28–30",
                "domain": "Third-Party Risk",
                "question": "Is ICT concentration risk measured and reported (single-provider dependencies)?",
                "severity": "no"
              }
            ],
            "gaps_count": 12,
            "grade": "F",
            "grade_title": "Stop",
            "immediate_action_required": true,
            "incident_route_recommended": true,
            "regulatory_framework": "DORA (EU) 2022/2554 · EBA/ESMA/EIOPA RTS on ICT risk management · JC 2023 83",
            "score_pct": 0,
            "supervisory_exposure": true
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-30-agent-commerce-conformance-validator",
      "tool_version": "1.1.0",
      "display_name": "Agent Commerce Cross-Protocol Conformance Validator",
      "mcp_name": "validate_agent_commerce_conformance",
      "mandate_type": "payment_mandate",
      "wave": 6,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-30-agent-commerce-conformance-validator.html",
      "description": "The synergy flagship. Validates a single agent purchase end-to-end across up to five protocols: AP2 v0.2 mandate chain (Intent → Cart → Payment), ACP checkout conformance (OpenAI/Stripe), Visa TAP RFC 9421 HTTP Message Signature inspection, x402 settlement leg, and Tempo MPP session/subscription pre-authorization (additive, validated when an mpp_session is supplied). Issues one unified PASS/WARN/FAIL verdict and a single execution_hash receipt (ChainGraph Standard v0.1 §4, chain_depth: 1). Consumes ART-01, ART-12, ART-03. Feeds CRY-05, PTG-01.",
      "input_schema_ref": "chaingraph/art-30-agent-commerce-conformance-validator.html#manifest",
      "deadline": null,
      "deadline_note": "agent-commerce synergy flagship. Anchors cross-protocol compliance for AP2 + ACP + TAP + x402.",
      "consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-12-acp-checkout-conformance-validator",
        "art-03-x402-settlement-modeler"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "chain_depth": 1,
      "status": "live",
      "conformance_fixtures": true,
      "protocols": {
        "ap2": "AP2 v0.2 — FIDO Alliance Intent/Cart/Payment Mandate spec",
        "acp": "Agentic Commerce Protocol — OpenAI/Stripe open standard (H1 2025)",
        "tap": "Visa Trusted Agent Protocol — RFC 9421 HTTP Message Signatures",
        "x402": "x402 HTTP payment protocol (x402.org, 2025 draft)"
      },
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:48228bd926421bc7b6d0b41aa34880912b7d96d3f048f2865ee2ba72a1b9a2f0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JExPX3fIzqM/+xUhzoe0sXt/fx4aJXNxS16Hu64hxLYuxQc5UGbsGsRghYl27e28Hf6eUAgSyXCczus1EZOe5hVsjQGB+L9likByZBDVDY9k/O3zb0G2bxiNbeOShejFKk2miyy0rZHFuFE2H9s+BxZP5crWDtxqEky5P7gvyFAiLkLdtR85J0Yh/Uz9FhzWphuBzfF++ts0zW4gaAH5gCFXXs/c9gx1ZC4fojNwozti9Q2um2uUirMmmp8I25TFFCbWLs2nT3fZkFFJE6u3H5Pv5wId7d3hnuL+8W7HFK8uowgIxjo7jZFBuOlJXpmslKLhvqJ33+v770QH1Uqe0A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:48228bd926421bc7b6d0b41aa34880912b7d96d3f048f2865ee2ba72a1b9a2f0",
          "output": {
            "checks": [
              {
                "code": "AP2-I00",
                "note": "intent block present",
                "status": "pass"
              },
              {
                "code": "AP2-I01",
                "note": "mandate_type=intent",
                "status": "pass"
              },
              {
                "code": "AP2-I02",
                "note": "mandate_id present",
                "status": "pass"
              },
              {
                "code": "AP2-I03",
                "note": "expires_at present",
                "status": "pass"
              },
              {
                "code": "AP2-I04",
                "note": "scope fields: merchant_ids, currency, max_amount",
                "status": "pass"
              },
              {
                "code": "AP2-I05",
                "note": "human_not_present bool",
                "status": "pass"
              },
              {
                "code": "AP2-I06",
                "note": "issuer_id present",
                "status": "pass"
              },
              {
                "code": "AP2-P00",
                "note": "payment block present",
                "status": "pass"
              },
              {
                "code": "AP2-P01",
                "note": "payment.mandate_type=payment",
                "status": "pass"
              },
              {
                "code": "AP2-P02",
                "note": "payment.parent_mandate_id chain",
                "status": "pass"
              },
              {
                "code": "AP2-P03",
                "note": "parent_hash 64-hex",
                "status": "pass"
              },
              {
                "code": "AP2-P04",
                "note": "payment.amount>0",
                "status": "pass"
              },
              {
                "code": "AP2-P05",
                "note": "currency matches intent.scope.currency",
                "status": "pass"
              },
              {
                "code": "AP2-P06",
                "note": "amount within max_amount cap",
                "status": "pass"
              },
              {
                "code": "AP2-P07",
                "note": "human_not_present consistent",
                "status": "pass"
              },
              {
                "code": "AP2-P08",
                "note": "payment_method present",
                "status": "pass"
              }
            ],
            "fail_count": 0,
            "overall_status": "pass",
            "pass_count": 16,
            "protocols_validated": [
              "AP2"
            ],
            "warn_count": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-31-a2a-x402-extension-mandate-validator",
      "tool_version": "1.0.0",
      "display_name": "A2A x402-Extension Mandate Validator",
      "mcp_name": "validate_a2a_x402_mandate",
      "mandate_type": "settlement_mandate",
      "wave": 6,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-31-a2a-x402-extension-mandate-validator.html",
      "description": "Validates the A2A x402 extension (Coinbase/MetaMask/Ethereum Foundation) that carries crypto-payment authority inside an AP2 mandate: extension declaration in the A2A agent card, payment-authority scope, settlement-rail binding, exact-scheme x402 PaymentPayload lint, and mandate-to-payment-leg consistency. PASS/WARN/FAIL verdict + execution_hash. Educational/simulation.",
      "input_schema_ref": "chaingraph/art-31-a2a-x402-extension-mandate-validator.html#manifest",
      "deadline": null,
      "deadline_note": "tracks the production A2A x402 extension (2026).",
      "consumes": [
        "art-03-x402-settlement-modeler"
      ],
      "feeds": [
        "art-30-agent-commerce-conformance-validator",
        "cry-05-agent-action-audit-trail-aggregator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8136ed46e50029be28e18bd1ec82e60c057b1b12a749df5dc4f847a012b5dddf","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JcLD7FFnMmWRHFtyWo/i3UouRGXbYhcsU6484tfK+YMfWydgWK78bDi5fuQONbxhxeZZr4AX/8MCLDHkoCSk5R/jt+1aw8jQEp4OBoUoeW7jp5tUYS/+2wGzITUJPKVMLegc3xeW4Z/WA7vdk9HBeDuq+kItk7Nzu/LMRdd1mC4rxTRrG5exT7GOh2go9P6og5rS6FVRHlpzfB6eShAT6gFFuEhUHvb4QNAx0js2jsSJr/UepETB6MSvEAA9MvJ0D0onjmnm6xCEJsUDePXxR1OwP54zG49qts5lhspAYyIsuxRXqJuBKO6EBYKu6jHMvvsuQ92hjlDxx6fSNTG0/w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8136ed46e50029be28e18bd1ec82e60c057b1b12a749df5dc4f847a012b5dddf",
          "output": {
            "checks": [
              {
                "code": "EXT-01",
                "note": "capabilities.extensions is array",
                "status": "pass"
              },
              {
                "code": "EXT-02",
                "note": "x402 extension found",
                "status": "pass"
              },
              {
                "code": "EXT-03",
                "note": "x402 extension has params object",
                "status": "pass"
              },
              {
                "code": "SCOPE-01",
                "note": "payment_authority object present",
                "status": "pass"
              },
              {
                "code": "SCOPE-02",
                "note": "scope non-empty array or string",
                "status": "pass"
              },
              {
                "code": "SCOPE-03",
                "note": "max_amount=1000",
                "status": "pass"
              },
              {
                "code": "RAIL-01",
                "note": "settlement_rail object present",
                "status": "pass"
              },
              {
                "code": "RAIL-02",
                "note": "scheme=exact",
                "status": "pass"
              },
              {
                "code": "RAIL-03",
                "note": "network present",
                "status": "pass"
              },
              {
                "code": "RAIL-04",
                "note": "asset present",
                "status": "pass"
              },
              {
                "code": "PAY-F01",
                "note": "scheme present",
                "status": "pass"
              },
              {
                "code": "PAY-F02",
                "note": "network present",
                "status": "pass"
              },
              {
                "code": "PAY-F03",
                "note": "maxAmountRequired present",
                "status": "pass"
              },
              {
                "code": "PAY-F04",
                "note": "resource present",
                "status": "pass"
              },
              {
                "code": "PAY-F05",
                "note": "payTo present",
                "status": "pass"
              },
              {
                "code": "PAY-F06",
                "note": "asset present",
                "status": "pass"
              },
              {
                "code": "PAY-F07",
                "note": "scheme=exact",
                "status": "pass"
              },
              {
                "code": "PAY-F08",
                "note": "maxAmountRequired=500",
                "status": "pass"
              },
              {
                "code": "CON-01",
                "note": "pay=500 cap=1000",
                "status": "pass"
              },
              {
                "code": "CON-02",
                "note": "pay.asset=USDC cap.asset=USDC",
                "status": "pass"
              },
              {
                "code": "CON-03",
                "note": "pay.asset=USDC rail.asset=USDC",
                "status": "pass"
              },
              {
                "code": "CON-04",
                "note": "pay.network=base-sepolia rail.network=base-sepolia",
                "status": "pass"
              }
            ],
            "extension_declared": true,
            "fail_count": 0,
            "pass_count": 22,
            "payment_authority_scope_present": true,
            "settlement_rail_bound": true,
            "verdict": "pass",
            "warn_count": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-32-a2a-agent-card-trust-chain-validator",
      "tool_version": "1.0.0",
      "display_name": "A2A Agent-Card Trust-Chain Validator",
      "mcp_name": "validate_a2a_trust_chain",
      "mandate_type": "compliance_mandate",
      "wave": 6,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-32-a2a-agent-card-trust-chain-validator.html",
      "description": "The horizontal agent-to-agent trust complement. Validates an A2A v1.0 agent card (schema, signature, extension URIs) then assesses the delegated-authority trust chain into KYA-OS attestation + spend policy: chain depth <= 4, no scope escalation, validity windows <= 90 days. Trust PASS/WARN/FAIL determination + execution_hash.",
      "input_schema_ref": "chaingraph/art-32-a2a-agent-card-trust-chain-validator.html#manifest",
      "deadline": "2026-08",
      "deadline_note": "A2A at Linux Foundation (150+ orgs); EU AI Act Aug 2026 pushes agent KYA toward requirement.",
      "consumes": [],
      "feeds": [
        "art-04-agent-identity-attestation-checker",
        "art-02-agent-spend-policy-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b559ef728aacf8aa3f1ee6cb9db684bf7b32b917bafcbcacb0cc88c16c76c008","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HnTptx3Ame5pKsAWKN7N+N/E7cip5DOwMk4b4yCdU1sh/nQfltw+HhIsquoMvWoad/8LFc2Ml0C4ZT2veNEF+irBjut63o0SQ2iwamiIRHsD9luuKfbSNQv6wfRCGnUwFTrBuVuNZLIZmrJgX3X91El2S0fvLj81sk0lI0MUqZMeM5mdvCrCNyAiLhQXRm2ENEMc8S0MDXfkwPwhJ6LgthE6Ha7lgwL1qJY+9iE82OBAKeeECqJMj9vUfZgIP6puGdnnuSLd9o9cBXXDCSmvCrzPqjlwQow6KqwtmbZog7Ub6otKerpsaHNhkyapYjLmbXqMaYhJsU9t6ybdPKiYUQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b559ef728aacf8aa3f1ee6cb9db684bf7b32b917bafcbcacb0cc88c16c76c008",
          "output": {
            "card_schema_ok": true,
            "checks": [
              {
                "code": "CARD-NAM",
                "note": "name present and non-empty",
                "status": "pass"
              },
              {
                "code": "CARD-URL",
                "note": "url present and non-empty",
                "status": "pass"
              },
              {
                "code": "CARD-VER",
                "note": "version present and non-empty",
                "status": "pass"
              },
              {
                "code": "CARD-PRO",
                "note": "protocolVersion present and non-empty",
                "status": "pass"
              },
              {
                "code": "CARD-URL2",
                "note": "url uses https",
                "status": "pass"
              },
              {
                "code": "CARD-CAP",
                "note": "capabilities is non-array object",
                "status": "pass"
              },
              {
                "code": "CARD-SKL",
                "note": "skills non-empty array",
                "status": "pass"
              },
              {
                "code": "CARD-SK2-0",
                "note": "skill[0] has id+name",
                "status": "pass"
              },
              {
                "code": "CARD-X00",
                "note": "no extensions declared",
                "status": "info"
              },
              {
                "code": "CARD-S01",
                "note": "all signatures have protected+signature",
                "status": "pass"
              },
              {
                "code": "DLG-D00",
                "note": "delegation_chain is empty or not provided",
                "status": "warn"
              },
              {
                "code": "SPD-01",
                "note": "per_tx_cap=100",
                "status": "pass"
              },
              {
                "code": "SPD-02",
                "note": "daily_cap=1000",
                "status": "pass"
              },
              {
                "code": "SPD-03",
                "note": "daily_cap >= per_tx_cap",
                "status": "pass"
              }
            ],
            "fail_count": 0,
            "no_expired_links": true,
            "no_scope_escalation": true,
            "pass_count": 12,
            "signature_block_present": true,
            "trust_determination": "warn",
            "warn_count": 1
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-33-mcp-server-self-attestation-pack",
      "tool_version": "1.0.0",
      "display_name": "MCP Server Self-Attestation Pack",
      "mcp_name": "lint_mcp_server_conformance",
      "mandate_type": "infrastructure_mandate",
      "wave": 6,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-33-mcp-server-self-attestation-pack.html",
      "description": "Combines the five MCP-dev checks: tool-definition lint (JSON Schema 2020-12), server.json validation (2025-12-11 schema), OAuth 2.1 audit (RFC 9728 PRM, RFC 8707 audience), tool-poisoning scan, and ops/readiness, into one self-reported conformance lint: composite A-F ship-readiness grade plus per-domain scores and ordered remediation. This is an unsigned lint result, not a signed attestation. audit_signature.signatures is empty by design, as it is on every unsigned OpenChainGraph node. Dogfooding: the AINumbers server can lint itself. Formerly named attest_mcp_server; that name remains accepted permanently.",
      "input_schema_ref": "chaingraph/art-33-mcp-server-self-attestation-pack.html#manifest",
      "deadline": null,
      "deadline_note": "MCP 2026-07-28 spec hardening makes server attestation a live need.",
      "consumes": [],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0fa24d32f68661ef9900f03ddab76d94fc674c6cf4327d809bd7bd5d2451c316","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BR5SFgz+F1TcJIil874bQmCdI0NSZGayXZ8l+xFGGUEP1ghg9UOOL2r0dXSJxTnqp5wj/jfLxshMFDrx05ryByyXz+6JwJ7mVG0GuU+4UCVAD8E0fooGgoBrtpkd5AnQKorxUuWwVNrN+AR88XgY08SF+Ua7pelFwv36mYg9M6UjKB+d5XkuS5GWkLN6DB2j2TfDiAfrPyAX2giPH5C6gA1PIaD7r13FNddlJJAo9/Bf/Xb356QLVOzLynCDztGBL0fbXAaHBn1TiDlONGZUwcJcai2P4BbLVJ5bjpSNRUkVn+nplebcAEFgV8y2pzqIjOpEKyYMpD6wM7tLutkB6Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0fa24d32f68661ef9900f03ddab76d94fc674c6cf4327d809bd7bd5d2451c316",
          "output": {
            "composite_grade": "A",
            "composite_score": 98,
            "fail_count": 0,
            "pass_count": 23,
            "per_domain_scores": [
              {
                "domain": "A",
                "label": "Tool Definition Lint",
                "score": 100
              },
              {
                "domain": "B",
                "label": "Server JSON Validation",
                "score": 92
              },
              {
                "domain": "C",
                "label": "OAuth Audit",
                "score": 100
              },
              {
                "domain": "D",
                "label": "Tool Poisoning Scan",
                "score": 100
              },
              {
                "domain": "E",
                "label": "Ops Readiness",
                "score": 100
              }
            ],
            "remediation": [
              {
                "code": "B01",
                "domain": "B",
                "note": "$schema present but not 2025-12-11 version",
                "rank": 1,
                "severity": "warn"
              }
            ],
            "warn_count": 1
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-34-tempo-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Tempo Fit Diagnostic",
      "mcp_name": "run_tempo_fit_diagnostic",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-34-tempo-fit-diagnostic.html",
      "description": "12-question A–F diagnostic grading an organisation's Tempo adoption fit across four dimensions: Issue (TIP-20/GENIUS PPSI), Payments (cost wedge), Agent (MPP/HTTP 402), Commerce (agentic checkout). Routing engine maps score profile to the correct chain. OCG v0.3.1 artifact; dct:conformsTo party-identification.jsonld.",
      "input_schema_ref": "chaingraph/art-34-tempo-fit-diagnostic.html#manifest",
      "deadline": null,
      "deadline_note": "Tempo mainnet live March 2026; GENIUS Act enacted; MPP open standard live March 2026.",
      "consumes": [],
      "feeds": [
        "art-35-tempo-payments-business-case",
        "art-36-tempo-mpp-agent-mandate",
        "art-37-tempo-stablecoin-issuance",
        "art-40-tempo-agentic-checkout"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b9ed479a76b0cfcc9a781b741f7a696e6a3cfd4f0cb99ed6621677702cf2d82c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A2mKNpezNWyZRTVsEp8d4ZcyPHu9WzSt1P9lhTFnR+oYYLLrQhvxwqDszBoHotg+HfIM6ZxWvZqdOeqHhZ31sBKdrDAG0jxx0rhvrQraZWSZjbG53xFlndyGR0JCEdbOEB6FwoLl2LfheNlfTsAs9dvdXWr8mJO7OvEQ49jMEB0RFMNdyCXmjw5uvV+HeWbw94yowxkyrQtt4CZmT35N3Ch0MuTP+bNl3BtbhbkVmoZU/4jy/DV3sC1U8GEU+qLSBRHBge9fvndgAqFqyECNP++76IkvysErtVP0Cz0wYa8TP9Ak0GJRDRHctZIfsZh9pF60iidqtGeeoj9w3fshmg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b9ed479a76b0cfcc9a781b741f7a696e6a3cfd4f0cb99ed6621677702cf2d82c",
          "output": {
            "dim_results": [
              {
                "chain": "tempo-issuance",
                "id": "issue",
                "label": "Stablecoin Issuance",
                "max": 12,
                "pct": 100,
                "score": 12
              },
              {
                "chain": "tempo-payments",
                "id": "payments",
                "label": "Payment Rails",
                "max": 12,
                "pct": 0,
                "score": 0
              },
              {
                "chain": "tempo-mpp-agent",
                "id": "agent",
                "label": "Agent Payments (MPP)",
                "max": 12,
                "pct": 0,
                "score": 0
              },
              {
                "chain": "tempo-agentic-checkout",
                "id": "commerce",
                "label": "Merchant Commerce",
                "max": 12,
                "pct": 0,
                "score": 0
              }
            ],
            "primary_chain": "tempo-issuance",
            "primary_dim": "issue",
            "total_max": 48,
            "total_pct": 25,
            "total_score": 12,
            "verdict": "D"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-35-tempo-payments-business-case",
      "tool_version": "1.0.0",
      "display_name": "Tempo Payments Business Case",
      "mcp_name": "model_tempo_payment_economics",
      "mandate_type": "treasury_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-35-tempo-payments-business-case.html",
      "description": "CFO-level cost-and-savings model for migrating a payment flow (payroll / remittance / merchant settlement) from card/SWIFT/ACH/SEPA to Tempo. Outputs annual savings in USD and bps, break-even months, finality improvement (days → 600ms), and a CFO memo. ISO 20022 pacs.008-subset artifact; instructed_amount, debtor, creditor, remittance_information.",
      "input_schema_ref": "chaingraph/art-35-tempo-payments-business-case.html#manifest",
      "deadline": null,
      "deadline_note": "Tempo sub-cent fees + 600ms finality vs incumbent rails. W-A co-lead.",
      "consumes": [
        "art-34-tempo-fit-diagnostic"
      ],
      "feeds": [
        "art-37-tempo-stablecoin-issuance",
        "art-36-tempo-mpp-agent-mandate"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:983a22594a38514987c18253d6efe800adb9ffb96148357f3deb80975f46837c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KTqfMte0nUhi9zIsJxuhjE+BM1gtvP8yJmjCuubrMMssBCCpSIMAHXb9fW4wraTThvNxMApQJtS5JtV4s4zOKSDzOoqZVaoo95p6ajGW1yIzWbWi9+RKI1mYgN4kY8pUJQ18pMgkKMJNMieCFgiIY1VXGfx4wsvkV0D1AFOTp9IYqB4MqNEoRVXC+iAtU8xfN48Z74w1W8hLR44tLgQtFgZSxV9nIde0gbqDYumVDWdx/CbugqHvolI/iRha4U0vGcvSLu3YQwlS4SkDRbJX7Kxyq3ZmG+63c+3ZKt7uyYcsleceXoWaJ3juTgtIyLJatgy1AJSJ+LgJUpbygd8KCQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:983a22594a38514987c18253d6efe800adb9ffb96148357f3deb80975f46837c",
          "output": {
            "annual_saving_usd": 167998.2,
            "break_even_months": 3.2,
            "impl_cost_usd": 45000,
            "monthly_saving_usd": 13999.85,
            "per_tx_incumbent_usd": 28,
            "per_tx_saving_usd": 27.9997,
            "per_tx_tempo_usd": 0.0003,
            "rail": "swift",
            "saving_bps": 28,
            "stablecoin": "usdc",
            "verdict": "MIGRATE"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-36-tempo-mpp-agent-mandate",
      "tool_version": "1.0.0",
      "display_name": "Tempo MPP Agent Mandate",
      "mcp_name": "decode_mpp_session",
      "mandate_type": "payment_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-36-tempo-mpp-agent-mandate.html",
      "description": "Parses an MPP (Machine Payments Protocol) session, validates spend cap and session terms, maps HTTP-402 flow to AP2 Intent→Cart→Payment, performs KYA agent identity check (did:key format), models settlement cost, and emits a signed agent-payment mandate. W-C co-lead. ISO 20022 pacs.008-subset artifact; did:key identity in debtor field.",
      "input_schema_ref": "chaingraph/art-36-tempo-mpp-agent-mandate.html#manifest",
      "deadline": null,
      "deadline_note": "MPP open standard live March 2026. W-C Tempo agent-payments co-lead.",
      "consumes": [
        "art-34-tempo-fit-diagnostic"
      ],
      "feeds": [
        "art-01-ap2-mandate-chain-validator",
        "art-02-agent-spend-policy-simulator",
        "art-04-agent-identity-attestation-checker"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4967b7d4af80a186fa8374e13f61c4f6a14a94ef7f74474dc4fd840ddf488608","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Bi/Lh72DVU3ms1v623IiAcJq6/V2PaqM+xZjK6PIVN8CAnlYMN1vERfdNW+e7I8djg+15wWvHGCBTRLLh/BZHCg45OEXK1/+wt0FsbSI2fHqEGWDNotD3ESxPRE3xqubLnmzF6McUKStArgIPpxJLYtl924eBsYcyN5nCqZ6F4QGDOuqrkXFVmKQmgukE7CSGFNj624xkH3x9lNsfIUIkABMfXioBtr78zspPnUqpSEQFkqbhjG/Tph5oBeXHv2lEggARdWE3ChjzNSnfNxiwa8uRDtaGguP4wW4ZzbeESEZ8OJfUc1OlyHvqY/qBw5Lu+WoiaMQWCVSbDbB3L5Sww==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4967b7d4af80a186fa8374e13f61c4f6a14a94ef7f74474dc4fd840ddf488608",
          "output": {
            "cost_per_call": 0.001,
            "did_valid": true,
            "max_vouchers": 25000,
            "rail": "tempo_stablecoin",
            "risk": {
              "level": "LOW",
              "reasons": [
                "Agent DID validated as did:key method (z6Mk prefix, self-describing, registry-free)",
                "Tempo stablecoin rail selected — on-chain settlement, no chargeback risk",
                "Spend cap ≤ $50 — low-value session, minimal exposure"
              ]
            },
            "spend_cap": 25,
            "stablecoin": "USDC"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-37-tempo-stablecoin-issuance",
      "tool_version": "1.0.0",
      "display_name": "Tempo Stablecoin Issuance Compliance",
      "mcp_name": "validate_tempo_token_compliance",
      "mandate_type": "compliance_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-37-tempo-stablecoin-issuance.html",
      "description": "Dual-jurisdiction TIP-20 token compliance validator. Tab 1: TIP-20 Config Lint: currency code, supply cap, RBAC (ISSUER/PAUSE/BURN_BLOCKED), yield prohibition per GENIUS Act §4(a)(11). Tab 2: TIP-403 Policy Design: allowlist/blocklist/freeze, OFAC SDN, FATF Travel Rule. Dual scorecard: US GENIUS PPSI (Fed. Reg. 2026-06963 NPRM) + EU MiCA EMT (EU Reg. 2023/1114). OCG v0.3.1 artifact; dct:conformsTo party-identification.jsonld; issuer LEI in output_payload.",
      "input_schema_ref": "chaingraph/art-37-tempo-stablecoin-issuance.html#manifest",
      "deadline": null,
      "deadline_note": "GENIUS Act enacted; GENIUS PPSI AML NPRM April 2026; MiCA EMT in force.",
      "consumes": [
        "art-34-tempo-fit-diagnostic"
      ],
      "feeds": [
        "art-06-genius-act-reserve-attestation",
        "art-10-amla-transaction-typology-risk-scorer",
        "art-38-tempo-onchain-aml"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:252b8f7b8a64ab8a59613d891c4849f52fdc3322a68a98de86dd032a2305f6ae","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AioZ5T63vhoIsEC0WVtXL8sqI8BmbGZokiUmmVMCU2ckRdUtZsarAEVBSil6ZSDUzmvwvSRxDcDAgoj5QxHh+ACcGR8DRKyy8z+QRM92uyvhX6LfyeNgSuzSoTlRtAT3IEbrtJ5O3/vUoSnvtvir8kcfeqgoa2N65o7aLX2ttIoQhotKF55BqY5UK3PK9YD11xgJvwXJjMMw+B/cHNZNjSaOxDSueiFkJcOMmDD+b4Pk7jk+cKaX1CcyMUIWA530Fl9G4lbqcUW9vpV1QUjeOalmXy0JmF0atsudcxVAOH0nemeiiLeT1w2ORz9JGe1l5pl+4fa5B43txdkSV3YfxQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:252b8f7b8a64ab8a59613d891c4849f52fdc3322a68a98de86dd032a2305f6ae",
          "output": {
            "fail_count": 0,
            "genius": {
              "burn_blocked_warn": false,
              "currency_pass": true,
              "freeze_pass": true,
              "ofac_pass": true,
              "rbac_pass": true,
              "supply_cap_pass": true,
              "yield_warning": false
            },
            "mica": {
              "pause_capability": true,
              "reserve_disclosure": true
            },
            "verdict": "PASS",
            "warn_count": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-38-tempo-onchain-aml",
      "tool_version": "1.0.0",
      "display_name": "Tempo On-Chain AML & Travel Rule Screener",
      "mcp_name": "screen_tip20_transfer_batch",
      "mandate_type": "aml_rule",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-38-tempo-onchain-aml.html",
      "description": "Parses a batch of synthetic TIP-20 transfers (with memos), runs OFAC/SDN hit screening, checks FATF Travel Rule field completeness (originator/beneficiary name + VASP ID, threshold US$3,000), scores AML typologies (structuring $9k–$9.99k, missing identity, unusual tx), and emits SAR determination + Travel Rule attestation. Bilateral: sending VASP emits; receiving VASP re-verifies. ISO 20022 pacs.008-subset artifact; instructed_amount = batch total.",
      "input_schema_ref": "chaingraph/art-38-tempo-onchain-aml.html#manifest",
      "deadline": null,
      "deadline_note": "GENIUS PPSI AML NPRM (Fed. Reg. 2026-06963, April 2026); FATF Travel Rule ≥$3,000.",
      "consumes": [
        "art-37-tempo-stablecoin-issuance"
      ],
      "feeds": [
        "art-39-tempo-zone-disclosure",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9e0872728a1ce51e8fe58bb13bec82cc382a97584cd3fb9517db6f621072bbc7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CtkUVSIYI9Sl8sgIuf72HPlFFEkmVJqY8uTvEs6o9qMM/dRhbupE2nlbZA5XJwl8WFtth4muClUJjCH2vThRaA73NGrVZyyJQHTU536Feqe13RItEXi3oiMXwZq4CXHsFYGSfUQO6p2f+fgxxys++62CPQTTNhzaixLyqn87aZsffgiAvUl3EOlMS6+7GGR4hbHYjjlgUvj09VOAavL8Hhhks0SiaLXs/bEj3Szi73JTavS3VaBxXJW2H8xVpbz2LoxF49kDmyvAPz+KpuYvyKdExiotDdL9oRAXwPQ/9ukQ6CX2FU3c+bZIjUCH/PAz/6mKcg6qf3F/W5Ba4QLkaw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:9e0872728a1ce51e8fe58bb13bec82cc382a97584cd3fb9517db6f621072bbc7",
          "output": {
            "batch_verdict": "PASS",
            "escalate_count": 0,
            "flag_count": 0,
            "pass_count": 1,
            "results": [
              {
                "amount_usd": 1000,
                "flags": [],
                "ofac_hit": false,
                "sar_determination": "NOT_REQUIRED",
                "travel_rule_status": "NOT_REQUIRED",
                "tx_ref": "tx-001",
                "verdict": "PASS"
              }
            ],
            "sar_threshold_usd": 5000,
            "total": 1,
            "tr_threshold_usd": 3000
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-39-tempo-zone-disclosure",
      "tool_version": "1.0.0",
      "display_name": "Tempo Zone Selective-Disclosure Attestation",
      "mcp_name": "validate_tempo_zone_disclosure",
      "mandate_type": "attestation_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-39-tempo-zone-disclosure.html",
      "description": "Maps a Tempo Zone's party-visibility model (operator-sees-all / users-see-own / outsiders-see-ZK-proofs) against AML/audit/regulator disclosure obligations. Confirms TIP-403 freeze/allowlist propagates cross-zone. Issues a privacy-and-auditability attestation for the board/regulator. Verdict: FULL_ATTESTATION / PARTIAL_ATTESTATION / INSUFFICIENT. ISO 20022 pacs.008-subset artifact. Zones live June 2026; payroll/treasury first use case.",
      "input_schema_ref": "chaingraph/art-39-tempo-zone-disclosure.html#manifest",
      "deadline": null,
      "deadline_note": "Tempo Zones launched June 2026. AML obligations persist inside Zones per GENIUS PPSI AML NPRM.",
      "consumes": [
        "art-38-tempo-onchain-aml"
      ],
      "feeds": [
        "cry-01-zk-compliance-proof-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:05bec4999682594eba3e6bccae123325059131b7d46c30a259ce4f0037610adf","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BNkLLOrzamy3gq9+9OAZcSCtB00PW2WSUEYMWR1LHWMGkS4YvH1P8+Lv5XYY7M3E5NyDO8m6f9gvdgi3UBofQBPWsfS1RahJd1Zq/JGMKA2iXPL24aPJz9IIKomkTG9TKRDk6gv4t7sVp4Qet2/LiZNY0vASigLg6ZXbbeGPjyYTUtmsdGX+y5nIyb0LNVGNyHmhTrc3AhG24Wrnx+pgOAZtbr0ttbkxM+03jRmbdnEb3FJccIbfsVAmD4qXpPGEA68yBKrHR43yQiLucJE+YEOr3jdhcQ4biWYr56gnjvQiFORpRDO6fS/aJdq2cNf7Ff8WXSWNpknI8f265ohJOA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:05bec4999682594eba3e6bccae123325059131b7d46c30a259ce4f0037610adf",
          "output": {
            "checks": {
              "AML_COVERAGE_MAINTAINED": true,
              "COMPETITIVE_CONFIDENTIALITY": true,
              "OPERATOR_SEES_ALL": true,
              "REGULATOR_AUDIT_CAPABLE": true,
              "SELECTIVE_DISCLOSURE_CONFIRMED": true,
              "TIP403_ALLOWLIST": true,
              "TIP403_BLOCKLIST": true,
              "TIP403_CROSS_ZONE": true,
              "TIP403_FREEZE": true,
              "TRAVEL_RULE_COMPLIANT": true
            },
            "operator_name": "Test Operator",
            "use_case": "payments",
            "verdict": "FULL_ATTESTATION"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-40-tempo-agentic-checkout",
      "tool_version": "1.0.0",
      "display_name": "Tempo Agentic Checkout Settlement Mapper",
      "mcp_name": "map_tempo_settlement",
      "mandate_type": "settlement_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-40-tempo-agentic-checkout.html",
      "description": "Binds an ACP / Visa TAP / ISO 20022 checkout to a TIP-20 settlement. Maps the 32-byte Tempo memo → ISO 20022 remittance_information, sender/receiver → debtor/creditor (with optional LEI), and normalises an on-chain Tempo tx into the AP2 artifact envelope. The canonical OCG v0.3 pacs.008-subset tool for Tempo: instructs the bilateral settlement receipt that agents and merchants both verify via execution_hash. W-D terminal node.",
      "input_schema_ref": "chaingraph/art-40-tempo-agentic-checkout.html#manifest",
      "deadline": null,
      "deadline_note": "TIP-20 32-byte memo ↔ ISO 20022 remittance_information crosswalk. ACP/Visa TAP/MPP settlement leg.",
      "consumes": [
        "art-34-tempo-fit-diagnostic",
        "art-36-tempo-mpp-agent-mandate"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:47e0d8df39b535ff28996c6dc12584f8049e74d5b4f532510f296e2eebbddc02","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A8L7IUmBM7I2YAXizLK8Ya2wmPcFQTPDRpBng4ngHpAhgjbo2wloxC1YrdoRoiQgCaJzGz0WTkgzDP+sUWxlLSoa3RNzfVtbwpWDC5xLIXg2WgyP1WPT92FFn+pd9Qj+CtCaRtYVO2YfEBRf7MUYWqGK2welg0p6On4Ip8CNn9EPwO0vQc11sLlVZExq/3Ra3dL8abhE6hjZiJcGzBNXzAaed/y8+x14UomE+c7CK1e0XDsp8W7BUQQcE66ROmOADdzmAtV2Vx3BtbLUMB5i6iH07wl1w4nFgenh9bj4ukUd8+N4aZNeelwRvjy4PUXQ8oqvAHVCc2TB4KpWUtkqkw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:47e0d8df39b535ff28996c6dc12584f8049e74d5b4f532510f296e2eebbddc02",
          "output": {
            "iso20022_pacs008": {
              "charge_bearer": "SLEV",
              "creditor": {
                "lei": null,
                "party_name": "Bob"
              },
              "creditor_agent": {
                "bicfi": "TMPOXYZ1"
              },
              "debtor": {
                "lei": null,
                "party_name": "Alice"
              },
              "debtor_agent": {
                "bicfi": "TMPOXYZ1"
              },
              "instructed_amount": {
                "amount": 500,
                "currency": "USD"
              },
              "message_type": "pacs.008.001",
              "remittance_information": "ORD-TEST-001",
              "settlement_date": null
            },
            "memo": "ORD-TEST-001",
            "protocol": "ACP",
            "protocol_binding": {
              "fields_mapped": "ACP session.reference → memo · ACP buyer_agent → debtor · ACP merchant_agent → creditor",
              "standard": "ACP (Agentic Commerce Protocol)"
            },
            "tip20_transfer": {
              "amount": 500,
              "currency": "USD",
              "memo": "ORD-TEST-001",
              "network": "tempo-mainnet",
              "receiver_address": "0xbob00000000000001059",
              "sender_address": "0xalice000000000003c6a",
              "settlement_date": null,
              "stablecoin": "USDC",
              "token_standard": "TIP-20"
            },
            "truncated": false
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-41-tempo-validator-readiness",
      "tool_version": "1.0.0",
      "display_name": "Tempo Validator Readiness Scorer",
      "mcp_name": "score_tempo_validator_readiness",
      "mandate_type": "infrastructure_mandate",
      "wave": 9,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-41-tempo-validator-readiness.html",
      "description": "12-question readiness scorer for prospective Tempo Network validators across 5 dimensions: hardware (CPU/RAM/NVMe), OS/software (Linux x86_64/ARM64 glibc≥2.38, chrony/ntpd, ports 30303/8000/9000), key management (ed25519, on-chain registration), telemetry, and upgrade cadence (7-day SLA). Flags permissioned entry (partners@tempo.xyz required) and unpublished bond/stake/KYC obligations. infrastructure_mandate. iso20022:party-identification profile.",
      "input_schema_ref": "chaingraph/art-41-tempo-validator-readiness.html#manifest",
      "deadline": null,
      "deadline_note": "fast-follow. Validator set is permissioned — current validators: Visa, Stripe, Zodia Custody (Standard Chartered). GENIUS PPSI AML Rule (NPRM, Fed. Reg. 2026-06963) applicability to validator operators unresolved.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:461449fa5c72e430c60d8e1b07c67491bbdffd14488d14d27e85671017ce0d01","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "MESyIQaEpF0lXpteKYV/8PRiYFPU0B7QiWCe4y+vGGkpZansZG16P8m0HB9tmQLFnI6TNaGuEIzG3iiCOSUXbh9HYX/GMQAGEl2I4c8f965Ij2hIJgWy1KA59au8MU4RF1IU5y7RoVoRfRrE/T4+pG0OLKftfTW3I1gM2fR8YQYB8+sqd6uEAQxUrNF093o4LMF09688K581SJkj2K4i+Rl7l/9V6ELzRd38fYSVguzLtO6K8xwsK42P9ZKRdazeH6HmmrDpNUsWw7+6M/OhXrZxvAUu/MS57nSXXzuASrUitHV78C4hVvS9mghqAnrA6JdoElznlKX1C7Ycq0eFQg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:461449fa5c72e430c60d8e1b07c67491bbdffd14488d14d27e85671017ce0d01",
          "output": {
            "dim_results": [
              {
                "id": "hw",
                "label": "Hardware",
                "max": 12,
                "pct": 100,
                "score": 12
              },
              {
                "id": "os",
                "label": "OS / Software",
                "max": 12,
                "pct": 100,
                "score": 12
              },
              {
                "id": "key",
                "label": "Key Management",
                "max": 8,
                "pct": 100,
                "score": 8
              },
              {
                "id": "tel",
                "label": "Telemetry",
                "max": 8,
                "pct": 100,
                "score": 8
              },
              {
                "id": "upg",
                "label": "Upgrade Cadence",
                "max": 8,
                "pct": 100,
                "score": 8
              }
            ],
            "requires_permissioning": false,
            "total_max": 48,
            "total_pct": 100,
            "total_score": 48,
            "verdict": "A"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-42-arc-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Arc Fit Diagnostic",
      "mcp_name": "run_arc_fit_diagnostic",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 10,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-42-arc-fit-diagnostic.html",
      "description": "12-question A–F diagnostic assessing Arc adoption fit across CPN (Circle Payments Network), StableFX 24/7 FX, DvP atomic settlement, and agentic commerce dimensions. Routes to the appropriate Arc chain. CCTP v2 routing branch fires when ≥2 dimensions score >0.",
      "input_schema_ref": "chaingraph/art-42-arc-fit-diagnostic.html#manifest",
      "deadline": null,
      "deadline_note": "Arc mainnet live 2026. No regulatory deadline for diagnostic tooling.",
      "consumes": [],
      "feeds": [
        "art-43-arc-cpn-model",
        "art-44-arc-stablefx-model",
        "art-45-arc-xreserve-linter",
        "art-46-arc-paymaster-model",
        "art-47-arc-cctp-transfer"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:84cf3e4b4dd77ad8ed4f6425d9a623c51ae75b4855e2fb629505f1485387cee1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Iqc7QfFDo/EYois15Ox9yxbqir8xjNI2ImS+0OkQzT8Nkz2wnk8kDiRkpm7cUMCq/pIRpl9uggvr/z/nyyFM3xKDqO1QJcWyEonoxOSk5XzyDLSxyU9c1pX+SZfGS4RoI9JZMJtxVVN+Ev67/hD8VrElItjIjQ+8SdJ2ARW+lL8snNXjAOETQC/mvIe49yAOhNZBNZ0g2oR4nJxrOhxe3iZ7S5UfK8TvY1FxjhO7jhaY+W42+MKcz6MjcBfU63KEFmIv/ZPK8uxo2RDJi61QO++4SKkQ/9W1Hai/u8jD+T0tRIBlL2dbZUsPK6faRej0/v/e4UciMNgUXt3vxPSgyg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:84cf3e4b4dd77ad8ed4f6425d9a623c51ae75b4855e2fb629505f1485387cee1",
          "output": {
            "cctp_branch": true,
            "compliance_flags": [
              "ARC_PARTIAL_FIT",
              "CCTP_ROUTING_RECOMMENDED"
            ],
            "dim_results": [
              {
                "chain": "arc-cpn-payment",
                "id": "cpn",
                "label": "CPN Payments",
                "max": 12,
                "pct": 100,
                "score": 12
              },
              {
                "chain": "arc-stablefx",
                "id": "stablefx",
                "label": "StableFX / FX Settlement",
                "max": 12,
                "pct": 50,
                "score": 6
              },
              {
                "chain": "arc-dvp-settlement",
                "id": "dvp",
                "label": "DvP / Capital Markets",
                "max": 12,
                "pct": 0,
                "score": 0
              },
              {
                "chain": "arc-agentic-commerce",
                "id": "commerce",
                "label": "Agentic Commerce",
                "max": 12,
                "pct": 50,
                "score": 6
              }
            ],
            "primary_chain": "arc-cpn-payment",
            "primary_dim": "cpn",
            "total_max": 48,
            "total_pct": 50,
            "total_score": 24,
            "verdict": "C"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-43-arc-cpn-model",
      "tool_version": "1.0.0",
      "display_name": "Arc CPN Corridor Economics Model",
      "mcp_name": "model_arc_cpn_economics",
      "mandate_type": "treasury_mandate",
      "wave": 10,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-43-arc-cpn-model.html",
      "semantic_profile": "iso20022:pacs.008",
      "description": "Model CPN corridor economics vs SWIFT/ACH/SEPA/card/RTP for cross-border USD flows. Quantifies per-payment cost, FX spread, settlement time, and 3-year NPV. Industry benchmarks: WorldBank Q4 2024 (SWIFT 5.5% remittance), Nacha 2024 (ACH). CPN fee $0.01 user-adjustable estimate.",
      "input_schema_ref": "chaingraph/art-43-arc-cpn-model.html#manifest",
      "deadline": null,
      "deadline_note": "Arc mainnet 2026. CPN is Circle's global payment rail on Arc for USDC settlement.",
      "consumes": [
        "art-42-arc-fit-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b63c0541028ab8fc4734ed626c01d898b2248c38df45a7136d68bc76669a4f91","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ELmqp8eqmSjUcQqFnZA/0S+s4P8esJBFDcUxSLtTZ+EAuMQktPVyPSOXiA+7iEUZc+vKrWxjXFoW9qFzc+e6oCCatLy008dJaJBnWardN4H/9YHYineI5biNb6x97iJxCV2WN+YZ3ljci5N4+Uj6vmvdqI8HyJ0NuCm0aFQSUKkgnwLTBcRrbNZlXhQ204PnLPDt6g7v3MNx682juRawyxskMgDePTPP+w6TebwDbB7P6l9E1kW4ZdJ/fFCEVKYMLdq/66e9t322gdJ9aX3lf1mdKMGVheaUZR12exI7pMMvHwDIUyBeI8QgHEJYsEToOMglJBFwt4TPKt4DCYXM6Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b63c0541028ab8fc4734ed626c01d898b2248c38df45a7136d68bc76669a4f91",
          "output": {
            "annual_saving_usd": 427176,
            "break_even_months": 1,
            "compliance_flags": [
              "ARC_CPN_MIGRATION_RECOMMENDED",
              "PFMI_P4_FX_COST_HIGH"
            ],
            "fx_spread_bps_applied": 150,
            "impl_cost_usd": 36000,
            "monthly_saving_usd": 35598,
            "npv_3yr_usd": 1245528,
            "per_tx_cpn_usd": 0.01,
            "per_tx_incumbent_usd": 178,
            "per_tx_saving_usd": 177.99,
            "rail": "swift",
            "saving_bps": 177.99,
            "verdict": "MIGRATE"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-44-arc-stablefx-model",
      "tool_version": "1.0.0",
      "display_name": "Arc StableFX RFQ Economics Model",
      "mcp_name": "model_arc_stablefx_rfq",
      "mandate_type": "treasury_mandate",
      "wave": 10,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-44-arc-stablefx-model.html",
      "semantic_profile": "iso20022:fxtr.008",
      "description": "Quantify Herstatt risk elimination and FX spread savings from Arc StableFX 24/7 atomic PvP settlement vs non-CLS bilateral FX. Methodology: BIS (Allsopp et al. 1996) Herstatt credit cost proxy via counterparty spread. PFMI P12 atomic settlement; BIS FX Global Code P35 netting.",
      "input_schema_ref": "chaingraph/art-44-arc-stablefx-model.html#manifest",
      "deadline": null,
      "deadline_note": "Arc StableFX live on Arc mainnet 2026. PFMI P12 compliance required for CCPs/CSDs.",
      "consumes": [
        "art-42-arc-fit-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7fcfd2624025beb441f4018775a81c7e1d967809adfaff6b96cdde238bbf8d73","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Hp+TYyL6igVjRNbHIZOM+kxxsywAPSmsNrsX0A3A4N8FAWhBwiz1//BhQRCnaCW8bYdsVllztQeTOz2nwKt69B33/Qr77084jNiAsQd7sKA48nNJpzdD8irk5IiS6f+CGU6QF8rT3874L0cSu9haDk4h4ZG0NaLXCcMVukW+zigt/mzMsHBILy1DwDbMVDoekS41HxetCABSeeNHcNEHYAYCwZj9LlInLFJO+5k6hHPBmg++uzwjvbCRvQKga8cnCHZ3ksFm2vJf+TBRCCJW/kUlAtUPtt7u1pWjQjPkZH8b2W2iwN6IUNP8UcsAcG/VGkVsOEYnP6kXz9VHc++3Cw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7fcfd2624025beb441f4018775a81c7e1d967809adfaff6b96cdde238bbf8d73",
          "output": {
            "annual_saving_vs_cls": 212500,
            "annual_saving_vs_incumbent": 838541.67,
            "break_even_months": 0.6,
            "cls_annual_usd": 400000,
            "compliance_flags": [
              "ARC_STABLEFX_MIGRATION_RECOMMENDED",
              "PFMI_P12_HERSTATT_ELIMINATED",
              "BIS_FX_GLOBAL_CODE_P35_NETTING_BENEFIT"
            ],
            "daily_fx_volume_usd": 5000000,
            "herstatt_eliminated_ann_usd": 26041.67,
            "herstatt_share_pct": 3,
            "impl_cost_usd": 45000,
            "incumbent_annual_usd": 1026041.67,
            "stablefx_annual_usd": 187500,
            "verdict": "MIGRATE"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-45-arc-xreserve-linter",
      "tool_version": "1.0.0",
      "display_name": "Arc xReserve Config Linter",
      "mcp_name": "lint_arc_xreserve_config",
      "mandate_type": "compliance_mandate",
      "wave": 10,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-45-arc-xreserve-linter.html",
      "semantic_profile": "iso20022:acmt.023",
      "description": "8-check A–F linter for an Arc xReserve / on-chain reserve configuration. Checks: reserve sum=100%, GENIUS Act §4 eligible assets (US issuers), GENIUS §4(a)(11) yield prohibition (US PPSIs), MiCA Art. 54 (EU EMIs), USYC composition (0–80% pass), CCTP v2 domains ≥2, attestation cadence, mint/burn role segregation.",
      "input_schema_ref": "chaingraph/art-45-arc-xreserve-linter.html#manifest",
      "deadline": "2026-07-18",
      "deadline_note": "GENIUS Act §4 eligible-asset backing requirements; MiCA Art. 54 reserve requirements for EU EMT issuers.",
      "consumes": [
        "art-42-arc-fit-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6c42f2e178d592ddca24ae38edae3baed3c67880f4f18ce29b79d11e0e46f4d4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EawL/oTXAgkI1q0PcTewzUI1gG7rc+1Ivzw2/7nGxhYR8YUH8RjTxZvXUF4BQ8t0Km9oKgD/qOxG6uCZaF4L2gljZLFNmYZyYHMqAtV1l3yo5DJaVky+po6YqzQBYx8sCIIeGS1uIVO6n2OlcmN/o7YwHEWJ4NTlw/F0F5L4insOwx9L7nyEREg5LjakLlBjpolugan92xqYcUGMEOwX5C6n2TdMMbeEhqm6r8lYPceB0ZpVrLc0Or+jlnMKAJQIKQJc5HvTD7+fSRuHmiABaw7twiyGAj+2murUjhLrmzgOOLL+QNmyacqEXP429dO7B0Y9Otq1/70jx083y74LnA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6c42f2e178d592ddca24ae38edae3baed3c67880f4f18ce29b79d11e0e46f4d4",
          "output": {
            "checks": [
              {
                "cite": "GENIUS Act §4; xReserve Program Terms §3",
                "id": "reserve_sum",
                "message": "Reserve composition sums to 100% ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "GENIUS Act §4(a)",
                "id": "us_issuers_only",
                "message": "Reserve backed by US-issued eligible assets ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "GENIUS Act §4(a)(11)",
                "id": "genius_yield",
                "message": "Yield prohibition compliant ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "MiCA (EU) 2023/1114 Art. 54",
                "id": "mica_art54",
                "message": "MiCA Art. 54 not applicable (non-EU EMT issuer)",
                "pass": true,
                "warn": false
              },
              {
                "cite": "xReserve Program Terms §4; GENIUS Act §4(a)(i) liquidity requirement",
                "id": "usyc_ceiling",
                "message": "USYC at 25% within 80% ceiling ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "CCTP v2 docs; xReserve cross-chain eligibility",
                "id": "cctp_domains",
                "message": "CCTP v2: 3 domains configured ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "GENIUS Act §4; xReserve Program Terms §5",
                "id": "attestation_cadence",
                "message": "Attestation cadence \"monthly\" meets monthly minimum ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "GENIUS Act §4(a)(8); xReserve Program Terms §6",
                "id": "role_segregation",
                "message": "Mint/burn roles segregated from admin ✓",
                "pass": true,
                "warn": false
              }
            ],
            "compliance_flags": [
              "VERDICT_PASS",
              "GRADE_A"
            ],
            "fail_count": 0,
            "grade": "A",
            "verdict": "PASS",
            "warn_count": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-46-arc-paymaster-model",
      "tool_version": "1.0.0",
      "display_name": "Arc Paymaster Economics Model",
      "mcp_name": "model_arc_paymaster_economics",
      "mandate_type": "treasury_mandate",
      "wave": 10,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-46-arc-paymaster-model.html",
      "semantic_profile": "iso20022:pacs.028",
      "description": "ERC-4337 Paymaster economics model for Arc. Computes gas cost (gasPerUop × gasPriceGwei × 1e-9 × ethPriceUsd), sponsorship break-even, and per-UOp user-facing cost. Comparison: Arc user pays / Arc+Paymaster / Ethereum L1. No ETH bootstrap required on Arc (USDC-as-gas).",
      "input_schema_ref": "chaingraph/art-46-arc-paymaster-model.html#manifest",
      "deadline": null,
      "deadline_note": "Arc mainnet 2026. ERC-4337 account abstraction live on Arc testnet Oct 2025.",
      "consumes": [
        "art-42-arc-fit-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:86b52d9ce0d72966dc6be706fe6621eb0c036d9be967792292fb315dad560cbd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GUXbum4Ifnyw/v7JWj57VmCt/COSK/XjZ6lxT4hIyLcVrekLX0/Cdc0liZROGcLBBdr1umApwlYr3wAYq5x++xQrcSdUtZ7lVrJFZzhbttKjZGwNOHmCow0/hRJ1Br/7FsrZa4CVBRDU4BD9Qlc1txmDNOlNf9aLuhygSoKBJQsmJJUSXRhMqraHAGtl4Fzg0gr5vsqUA5CA8GAYcFBGRi8Y6W3hz/tta8DEDzjUM9EcHOxnvPy70W9M6Bosp1zaBiKpjYeoLyf3O7tbp6sGko9mdGul2NCG3I8W/BVH3HEtphlDeJ8OL4qBUE29WfEFY0Tg1icoJIlH3z6IOoMSgg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:86b52d9ce0d72966dc6be706fe6621eb0c036d9be967792292fb315dad560cbd",
          "output": {
            "annual_saving_usd": 9360000,
            "arc_cost_per_uop_full_usd": 0.15,
            "arc_cost_per_uop_merchant_usd": 0.12,
            "arc_cost_per_uop_user_usd": 0.03,
            "break_even_months": 0,
            "compliance_flags": [
              "ARC_PAYMASTER_MIGRATION_RECOMMENDED",
              "ERC4337_MERCHANT_SPONSORSHIP_ACTIVE"
            ],
            "eth_cost_per_uop_usd": 15.75,
            "impl_cost_usd": 36000,
            "monthly_saving_usd": 780000,
            "saving_bps": 9904.76,
            "saving_per_uop_usd": 15.6,
            "verdict": "MIGRATE"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-47-arc-cctp-transfer",
      "tool_version": "1.0.0",
      "display_name": "Arc CCTP v2 Transfer Validator",
      "mcp_name": "validate_cctp_v2_transfer",
      "mandate_type": "settlement_mandate",
      "wave": 10,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-47-arc-cctp-transfer.html",
      "semantic_profile": "iso20022:pacs.009",
      "description": "Validates a CCTP v2 cross-chain USDC transfer for domain pair eligibility, Fast Transfer 30-second finality risk (LP availability), Hook payload safety, CCTP v1 sunset migration status (31 Jul 2026), and large-notional LP-depth risk. 6 checks, A–F grade. 13 CCTP v2 domains as of Oct 2025.",
      "input_schema_ref": "chaingraph/art-47-arc-cctp-transfer.html#manifest",
      "deadline": "2026-07-31",
      "deadline_note": "CCTP v1 manual relay phase-out begins 31 Jul 2026 (Circle announcement). All v1 integrations must migrate.",
      "consumes": [
        "art-42-arc-fit-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5d628b9e3200e3791c5152e7eb5d6bbe34b3e278f43cd24ebc497eea062d9d15","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KaRma2JVJpxPXOfb57/bBuG6x9kj7kFdvAhHlsxZ7eEsJ9TUq/dFM/woHpQNG5QHmX2xqJM93VCQ8DlsmzdaMh4qRtik8gXjWVDFGLqHSaEVbVB1LN7qMEJdilUVqnAyD7yfpbxsjtbphd/sJSCA7EA9BdF3cEkxtsDsMfBJH3wKmFIygdGXNFv4Wls1bb+18HSXGOO3bEJozk024jFs6x79Zn8qXLyaVjQRB/23FQC0z6Dtt34pK5806MNFnqZUBUKKirT563TAUTNKGZ6Myh7xq/cJI9MrqQ/kXX2SbPwZ8fIM7+0XWnnNJV+iXAltF2kUreHNsSu+NeaF4GeOgw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5d628b9e3200e3791c5152e7eb5d6bbe34b3e278f43cd24ebc497eea062d9d15",
          "output": {
            "checks": [
              {
                "cite": "CCTP v2 docs — 13 supported domains as of Oct 2025",
                "id": "domain_eligibility",
                "message": "Domain pair arc→ethereum eligible for CCTP v2 ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "CCTP v2 Fast Transfer docs; LP-financed pre-mint settlement",
                "id": "fast_transfer",
                "message": "Fast Transfer (30s) available for arc→ethereum; LP availability not guaranteed for large notionals",
                "pass": true,
                "warn": false
              },
              {
                "cite": "CCTP v2 Hooks spec; EVM reentrancy risk (SWC-107)",
                "id": "hook_safety",
                "message": "No hook payload — clean burn-and-mint ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "Circle announcement — CCTP v1 manual relay phase-out 31 Jul 2026",
                "id": "v1_sunset",
                "message": "Using CCTP v2 — not affected by v1 sunset ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "CCTP v2 Fast Transfer LP financing model",
                "id": "lp_depth_risk",
                "message": "Notional within LP depth comfort zone ✓",
                "pass": true,
                "warn": false
              },
              {
                "cite": "FATF Recommendation 16; GENIUS Act PPSI AML NPRM (Fed. Reg. 2026-06963)",
                "id": "travel_rule",
                "message": "Notional $50,000 ≥ $3,000 — FATF R16 / GENIUS Act PPSI Travel Rule: originator and beneficiary data required",
                "pass": false,
                "warn": true
              }
            ],
            "compliance_flags": [
              "WARN_TRAVEL_RULE",
              "VERDICT_WARN"
            ],
            "dest_domain": "ethereum",
            "fail_count": 0,
            "grade": "B",
            "notional_usd": 50000,
            "source_domain": "arc",
            "transfer_mode": "fast",
            "verdict": "WARN",
            "warn_count": 1
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-48-treasury-clearing-fit-diagnostic",
      "tool_version": "1.1.0",
      "display_name": "Treasury Clearing Fit Diagnostic",
      "mcp_name": "run_treasury_clearing_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 11,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-48-treasury-clearing-fit-diagnostic.html",
      "description": "12-question A-F readiness diagnostic for the SEC US Treasury clearing mandate (cash Dec 31 2026 / repo Jun 30 2027). Grades scope, access, margin capacity, capital, ops/docs, and liquidity; routes to the right treasury-clearing chain and emits a remediation checklist.",
      "input_schema_ref": "chaingraph/art-48-treasury-clearing-fit-diagnostic.html#manifest",
      "deadline": "2026-12-31",
      "deadline_note": "SEC UST clearing: cash Dec 31 2026, repo Jun 30 2027. D0 root of all treasury-clearing chains.",
      "consumes": [],
      "feeds": [
        "art-49-clearing-access-model-selector",
        "art-50-ficc-margin-netting-estimator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:48d3f8ff6142ab47abccdd219b65da278eebaad04d4e8a1857dba56447eab906","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Gio/y8yqwlelhk3BoCBGYD/omQRvUbyZDGLg3RNwnEoJTylZT+dMWssHkR3ij+tEg0j7wo7v+uBfAGqWQpOtByZZeW5FrKeYpkMU7nyHLrdFWjAhRvhiTu9uUswNWi+CBDnVaBUIKSu1mkckRxTWf3ozir8vCJnJ0tc7RRzo4PAvYM+/cKshDkqhNqqUMJaCSS3l6mjmkyFgYsR742m5bA+FvShdoV6rqowYhbivVou1L9mEezBdNdYP97rkJq6lL+fdxtMEhV4rGmrdOKAtS5eQThS3oXM+vr3ps4Ne4g4XnqR6KRW9+uIxWZ5GhjzFbT2vrKnRspABCaSUfu2+vg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:467f407be88e49ff0cc1b95e141ffa0ad5240f51fbc2ffc0f6589d2f260a50d9",
          "output": {
            "compliance_deadline": "2026-12-31",
            "dim_scores": {
              "access": {
                "grade": "F",
                "score": 0
              },
              "capital": {
                "grade": "C",
                "score": 62.5
              },
              "liquidity": {
                "grade": "D",
                "score": 50
              },
              "margin": {
                "grade": "F",
                "score": 12.5
              },
              "ops": {
                "grade": "F",
                "score": 0
              },
              "scope": {
                "grade": "D",
                "score": 50
              }
            },
            "note": "Educational readiness diagnostic for the SEC US Treasury clearing mandate. Routes to the relevant tcm-* chain; not legal or clearing advice.",
            "overall_grade": "F",
            "overall_score": 28.8,
            "primary_recommendation": "tcm-access-model",
            "remediation_checklist": [
              {
                "action": "Inventory in-scope UST cash and repo activity (bilateral + triparty) and quantify cleared vs uncleared notional.",
                "dimension": "scope",
                "grade": "D"
              },
              {
                "action": "Select an access model (Direct vs Sponsored done-with vs Agent done-away) — run tcm-access-model.",
                "dimension": "access",
                "grade": "F"
              },
              {
                "action": "Establish CCP initial-margin funding capability and HQLA inventory — run tcm-repo-margin.",
                "dimension": "margin",
                "grade": "F"
              },
              {
                "action": "Execute clearing/sponsorship agreements and stand up CCP/triparty/vendor connectivity — run tcm-onboarding.",
                "dimension": "ops",
                "grade": "F"
              },
              {
                "action": "Stress intraday liquidity for meeting CCP margin calls — run tcm-liquidity.",
                "dimension": "liquidity",
                "grade": "D"
              }
            ],
            "secondary_recommendations": [
              "tcm-onboarding"
            ]
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-49-clearing-access-model-selector",
      "tool_version": "1.1.0",
      "display_name": "Clearing Access Model Selector",
      "mcp_name": "model_clearing_access_economics",
      "mandate_type": "treasury_mandate",
      "wave": 11,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-49-clearing-access-model-selector.html",
      "description": "Selects and costs the FICC access model - Direct vs Sponsored (done-with) vs Sponsored/Agent (done-away) - across cost, execution-access, margin/netting efficiency, and ops. Recommends a model with a CFO memo. Educational economics; not clearing advice.",
      "input_schema_ref": "chaingraph/art-49-clearing-access-model-selector.html#manifest",
      "deadline": "2026-12-31",
      "deadline_note": "flagship access-model decision (W-A).",
      "consumes": [
        "art-48-treasury-clearing-fit-diagnostic"
      ],
      "feeds": [
        "504-settlement-risk-capital-optimizer",
        "art-50-ficc-margin-netting-estimator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ff9e78cf7128918984b55cbf858c74f3ca3a6e818389e067899863b8cd570034","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ji0nIuHVf4wHCT/I9qUaH7ENfgcjQ3oa87ig0UjnIDUEJfES7/KKoALqx81s5Ats6m8yCc2TMvV+r2kbmuaT+SEaA12lWNNeOmakHFkJYGcGZgf8NjgGjkPNBDrnuqweCwrKWxD5jjDOm1/WTWpPlsfx6tBGErkHACeepXD7aR0wSOqB1c3yxYLiKwPWK9pIKvUDvxvTaxPS3eufujw3xQedj0+kc+DDVyvxWU+k8jaFWbQtuRcgosc0zoaw36uSJk0IrrtdYf7MCvCQwVLeilCe/TPYqUpD5tASOOC1XWUiQbzFJjJo+K4W71VZwvcza1POtLvsJeiB00TU/jzNLg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:502fc1a6bd90cdb5116d232d528cabdde73311a7c8bc0e77650d5fe602fa8c2c",
          "output": {
            "annual_cost_by_model": {
              "agent_done_away": 400000,
              "direct": 2000000,
              "sponsored_done_away": 250000,
              "sponsored_done_with": 150000
            },
            "cfo_memo": "Recommended access model: agent_done_away. Est. annual cost $0.40M (vs Direct $2.00M). Done-away netting uplift from 1 dealer(s): 5%. Segregation: non-segregated (net CCP margining). Educational estimate; confirm with the CCP and sponsor.",
            "eligibility_gates": [
              "DIRECT_MEMBERSHIP_INELIGIBLE"
            ],
            "execution_access_score": 95,
            "im_estimate_by_model": {
              "agent_done_away": 0,
              "direct": 0,
              "sponsored_done_away": 0,
              "sponsored_done_with": 0
            },
            "model_scores": {
              "agent_done_away": {
                "blended": 96.5,
                "cost_score": 86,
                "eligible": true,
                "exec_score": 81
              },
              "direct": {
                "blended": 21.3,
                "cost_score": 0,
                "eligible": false,
                "exec_score": 85
              },
              "sponsored_done_away": {
                "blended": 93.5,
                "cost_score": 95,
                "eligible": true,
                "exec_score": 77
              },
              "sponsored_done_with": {
                "blended": 58.5,
                "cost_score": 100,
                "eligible": true,
                "exec_score": 34
              }
            },
            "netting_efficiency_pct": 25,
            "note": "Educational access-model economics for the SEC US Treasury clearing mandate. Assumptions documented in-kernel; not clearing advice.",
            "recommended_model": "agent_done_away",
            "segregation_recommendation": "non-segregated (net CCP margining)"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-50-ficc-margin-netting-estimator",
      "tool_version": "1.0.0",
      "display_name": "FICC Margin & Netting Estimator",
      "mcp_name": "estimate_ficc_margin_netting",
      "mandate_type": "risk_parameter",
      "wave": 11,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-50-ficc-margin-netting-estimator.html",
      "description": "DV01-bucket VaR proxy of the FICC VaR-based margin (VBM), the netting benefit of central vs bilateral clearing, cash-vs-repo cross-product netting, and the done-away uplift. Educational proxy - not the official FICC VBM calculator.",
      "input_schema_ref": "chaingraph/art-50-ficc-margin-netting-estimator.html#manifest",
      "deadline": "2027-06-30",
      "deadline_note": "repo-margin economics (W-B).",
      "consumes": [
        "art-48-treasury-clearing-fit-diagnostic",
        "art-49-clearing-access-model-selector"
      ],
      "feeds": [
        "508-repo-haircut-collateral-calculator",
        "qfa-02-portfolio-var-engine"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:fcea3a670c5ee043f842757592ea575bbe5426b8f825016d4ec0c0d18d2e304b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G/KEj1px6bBn4PPMHr61Hja+cbgX9vo3k1jwW+uWL18BHfPYbQYMhoV6Adfe7zoDWCQNa8kE6HI6BYTys7uNUAK2bItxRB9w5DPcWCNDmf+6twWH7T+83/2GdM27QjC5EeB7DmESN4eReLsaCvh1Mvwix39QxLIiiqwyOBrg5soZZ58qpD0+k7Jx/D1kaDsolx25S/YjAlB2UibYVpqtnwVTlPd3RbRDyJm0OuBVU5K45gSDNkKGlIDJoBjVEndOBS53yC/L6ezKNjvXm7aGcQ7Ws2ZmwA/TifExVeHBpcEcnHpzmmIVwgy26tdvzhGV2EwXzOTrjI8ICBy3UGxVkw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:fcea3a670c5ee043f842757592ea575bbe5426b8f825016d4ec0c0d18d2e304b",
          "output": {
            "assumptions": {
              "bucket_corr": 0.8,
              "confidence_level": 0.99,
              "daily_vol_bp": {
                "0-2y": 3,
                "10-30y": 7,
                "2-5y": 5,
                "5-10y": 6
              },
              "mpor_days": 1
            },
            "done_away_uplift_pct": 10,
            "estimated_vbm": 0,
            "gross_bilateral_im": 0,
            "margin_by_bucket": [
              {
                "bucket": "0-2y",
                "net_dv01": 0,
                "var": 0
              },
              {
                "bucket": "2-5y",
                "net_dv01": 0,
                "var": 0
              },
              {
                "bucket": "5-10y",
                "net_dv01": 0,
                "var": 0
              },
              {
                "bucket": "10-30y",
                "net_dv01": 0,
                "var": 0
              }
            ],
            "minimum_charge_applied": false,
            "net_cleared_im": 0,
            "netting_benefit_pct": 0,
            "netting_benefit_usd": 0,
            "note": "Educational VaR-based-margin proxy for FICC-cleared UST/repo. Not the official FICC VBM; for indicative netting economics only."
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-51-cross-margining-benefit-estimator",
      "tool_version": "1.1.0",
      "display_name": "FICC-CME Cross-Margining Estimator",
      "mcp_name": "estimate_cross_margin_benefit",
      "mandate_type": "risk_parameter",
      "wave": 11,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-51-cross-margining-benefit-estimator.html",
      "description": "Estimates the initial-margin reduction from the FICC-CME cross-margining arrangement (customer expansion per SEC notice published 2025-12-22) by offsetting UST cash/repo DV01 against CME Treasury/SOFR futures DV01. Educational proxy.",
      "input_schema_ref": "chaingraph/art-51-cross-margining-benefit-estimator.html#manifest",
      "deadline": "2027-06-30",
      "deadline_note": "cross-margining benefit (W-C). FICC-CME customer expansion Dec 2025.",
      "consumes": [
        "art-48-treasury-clearing-fit-diagnostic"
      ],
      "feeds": [
        "qfa-02-portfolio-var-engine",
        "qfa-03-stress-test-engine"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:830bc39ca270ab8fec28d7bbd220b84a37787e3dfc4e61110e95816a63d70da1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LGGtzLGbQaxURS0O3hqO+HTyk5TMdBfFQZYq5TJyDCEsa1eoF1tWT/7wddwhM91AIA9bxcBBzAPNJFClCHqOPwCAeGZ+/oJQEB3lUbcmZOA1SZ3NiEJfWht6ggGJzTx0HIuiCoaW9Toi5lPTqSFRv4c8xfeyQM++5ULcLBhC1RsVG3HJAkQtgVCtal7Z8otXwR30gW9tU3trJQF9YKV1aRYkFhJ7/RTbDX8fUAZLdfULwzBCThtcga/Y1GzYV2GZLczgAbPFMwjqQJDg7vjGuWBNkskic84D9HMlQfroZeQoHXBFVRLxMlGfESdNmnPtZje/AW+iLMb996U88eZjSg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5dc90c463eebfd789a8d20ab0de9a781ff9d5cc6f0034a5c6ce64cc2c2b42e22",
          "output": {
            "account_type_note": "House (member) cross-margining — established FICC–CME arrangement.",
            "assumptions": {
              "bucket_corr": 0.8,
              "cme_dv01_table": "approx per-contract $/bp",
              "confidence_level": 0.99,
              "mpor_days": 1
            },
            "cross_margined_im": 0,
            "eligible_offsets": [],
            "im_reduction_pct": 0,
            "im_reduction_usd": 0,
            "ineligible_offsets": [],
            "note": "Educational FICC–CME cross-margining estimate; CME DV01s are approximate. Not the official cross-margin calculator.",
            "standalone_im_total": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-52-digital-trade-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Digital Trade Corridor Fit Diagnostic",
      "mcp_name": "run_digital_trade_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 12,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-52-digital-trade-fit-diagnostic.html",
      "description": "12-question A–F readiness diagnostic for digital trade / electronic trade documents (MLETR). Grades corridor legality, document digitisation, platform connectivity, trade-rule basis (eUCP/URDTT), financing, and AML/TBML controls; routes to the right chain and emits a remediation checklist.",
      "input_schema_ref": "chaingraph/art-52-digital-trade-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-53-mletr-ebl-conformance-validator",
        "art-54-digital-trade-rules-checker",
        "art-55-trade-document-provenance-verifier",
        "509-canton-party-allowlist-validator",
        "art-10-amla-transaction-typology-risk-scorer",
        "ml-02-credit-default-risk-scorer",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:77e46eb235dae3d94185744d9e44a284d15fe90eac9988e6d32b3162804dd663","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Co0/QbvlIvugwAkxFHyMIsdIYzMZ8A9qGx1VbcAcxisEzstH+x8PsbRRX5kCjUGT1N5pxiqBxwhIvXM9FUmmXxIDFAnR2XJC+9YKjwzvFJGBU7Q0Hv7KuapkuG3olpKsLIKdMWigYYHgrSgZkPecwarJXdaXUW4fubmb0Iv+aNYwJR0V+xMn6j14VKG+C3S9flIKa64ROD2B9cf8CyFejQWFP5NPOtJG+2Ex3MZ8/oGOWhNEh3vL351pQXAcT20hDeDuu9yXafhkl3l0Q09GPp2l9ZcrW9P7IoeaKBARQ0wv0dPqTVSSgexop6FQ3oB0MELiG6aFxn1XxhN8qd8/MQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:77e46eb235dae3d94185744d9e44a284d15fe90eac9988e6d32b3162804dd663",
          "output": {
            "corridor_enforceability_flag": null,
            "dim_scores": {
              "aml": {
                "grade": "F",
                "score": 0
              },
              "digitisation": {
                "grade": "F",
                "score": 37.5
              },
              "financing": {
                "grade": "F",
                "score": 0
              },
              "legality": {
                "grade": "D",
                "score": 50
              },
              "platform": {
                "grade": "F",
                "score": 0
              },
              "rules": {
                "grade": "F",
                "score": 0
              }
            },
            "note": "Educational readiness diagnostic for Digital Trade / MLETR. Routes to the relevant dtc-* chain; not legal or trade-finance advice.",
            "overall_grade": "F",
            "overall_score": 20,
            "primary_recommendation": "dtc-ebl-enforceability",
            "remediation_checklist": [
              {
                "action": "Verify corridor MLETR adoption status (UNCITRAL table). Consider an MLETR-adopted governing-law choice — run dtc-ebl-enforceability.",
                "dimension": "legality",
                "grade": "D"
              },
              {
                "action": "Upgrade from paper/single B/L to a DCSA-aligned interoperable eBL platform covering the full document set — run dtc-doc-integrity.",
                "dimension": "digitisation",
                "grade": "F"
              },
              {
                "action": "Integrate a DCSA API/KTDDE-compliant eBL platform with interoperable routing — run dtc-ebl-enforceability.",
                "dimension": "platform",
                "grade": "F"
              },
              {
                "action": "Switch from paper UCP 600 to eUCP v2.1 or URDTT v1.0; confirm electronic-record requirements with your bank — run dtc-digital-lc.",
                "dimension": "rules",
                "grade": "F"
              },
              {
                "action": "Align financing mode with LC/eUCP or SCF rails that accept eBL as collateral — run dtc-trade-finance.",
                "dimension": "financing",
                "grade": "F"
              },
              {
                "action": "Strengthen TBML controls and party screening (LEI + OFAC + UBO) — run dtc-counterparty-aml.",
                "dimension": "aml",
                "grade": "F"
              }
            ],
            "secondary_recommendations": [
              "dtc-tbml-surveillance",
              "dtc-digital-lc",
              "dtc-audit-pack"
            ]
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-53-mletr-ebl-conformance-validator",
      "tool_version": "1.0.0",
      "display_name": "MLETR / eBL Conformance & Enforceability Validator",
      "mcp_name": "validate_mletr_record",
      "mandate_type": "compliance_mandate",
      "wave": 12,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-53-mletr-ebl-conformance-validator.html",
      "description": "Validates an electronic transferable record (eBL or other ETR) against MLETR functional-equivalence tests (Arts. 10–12: singularity, control, integrity, reliability) and scores cross-corridor legal enforceability from the UNCITRAL adoption status. Answers: will this eBL hold up at both ends of the corridor?",
      "input_schema_ref": "chaingraph/art-53-mletr-ebl-conformance-validator.html#manifest",
      "consumes": [
        "art-52-digital-trade-fit-diagnostic"
      ],
      "feeds": [
        "510-digital-asset-regulatory-classifier",
        "cry-04-merkle-batch-verifier",
        "ml-02-credit-default-risk-scorer"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0f260f878472634095d299ddde16662204d6432e1b458c6afddc094d2bac7dd8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IIfw1QRL7DMQz3Artx8pajPNRj/9fIGNI7p3nz8j60UTHGju1FfQvc3Jv+bW3meuEKfKVUJDUUnNX3KkyHSe0A/vk0kttoGz0rvCZD1+DQhXMs2C6be7DTz5W+jxVSQmEF6+nL2zdpaJpTuScEAbDvoEfPgRzBWMyHu3mLZQa68UndNzWW4s9kRGtTiUddbywZHgBgAJxFpESgYUHZVmSh+amGOGuzjIvdXg8/zpTuv9+Gq3gJT0wMf3G3odnOVxDxv5qp65fjQK3yg17yRr9qRUqM0P+xPpDALzH2opcp4VE+WwytPW5mZglTzbl1bG7wqTLsjveYK4oBZRfoLTNw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0f260f878472634095d299ddde16662204d6432e1b458c6afddc094d2bac7dd8",
          "output": {
            "conformance_grade": "C",
            "conformance_score": 68.8,
            "corridor_matrix": {
              "dest": "mletr-adopted",
              "dest_status": "not-adopted",
              "origin": "mletr-adopted",
              "origin_status": "not-adopted",
              "verdict": "weak"
            },
            "enforceability_tier": "weak",
            "governing_law_recommendation": "Weak corridor — specify UK, Singapore, or UAE governing law and ensure the eBL terms expressly incorporate MLETR-equivalent requirements. Paper fallback may be required.",
            "note": "Verify jurisdiction status against the current UNCITRAL MLETR status table before relying on this assessment. Educational tool — not legal advice.",
            "remediation_checklist": [
              {
                "action": "Implement a single authoritative-copy mechanism — token-based registry or designated system of record per MLETR Art. 10.",
                "article": "MLETR Art. 10 — singularity / authoritative copy",
                "grade": "B",
                "test": "singularity"
              },
              {
                "action": "Establish exclusive control via cryptographic key assignment (not shared-platform access) per MLETR Art. 11.",
                "article": "MLETR Art. 11 — exclusive control",
                "grade": "D",
                "test": "control"
              },
              {
                "action": "Upgrade to a qualified trust service or platform-attested reliability standard per MLETR Art. 12.",
                "article": "MLETR Art. 12 — reliability of the issuing system",
                "grade": "D",
                "test": "reliability"
              }
            ],
            "status_table_asof": "2026-01-01",
            "test_results": {
              "control": {
                "article": "MLETR Art. 11 — exclusive control",
                "grade": "D",
                "remediation": "Establish exclusive control via cryptographic key assignment (not shared-platform access) per MLETR Art. 11.",
                "result": "partial",
                "score": 50
              },
              "integrity": {
                "article": "MLETR Art. 10 — integrity of the electronic record",
                "grade": "A",
                "remediation": null,
                "result": "pass",
                "score": 100
              },
              "reliability": {
                "article": "MLETR Art. 12 — reliability of the issuing system",
                "grade": "D",
                "remediation": "Upgrade to a qualified trust service or platform-attested reliability standard per MLETR Art. 12.",
                "result": "partial",
                "score": 50
              },
              "singularity": {
                "article": "MLETR Art. 10 — singularity / authoritative copy",
                "grade": "B",
                "remediation": "Implement a single authoritative-copy mechanism — token-based registry or designated system of record per MLETR Art. 10.",
                "result": "partial",
                "score": 75
              }
            }
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-54-digital-trade-rules-checker",
      "tool_version": "1.0.0",
      "display_name": "Digital Trade Rules Compliance Checker",
      "mcp_name": "check_digital_trade_rules",
      "mandate_type": "scheme_rule",
      "wave": 12,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-54-digital-trade-rules-checker.html",
      "description": "Machine-checks a digital trade presentation (digital LC, collection, or open-account transaction) against the ICC digital rulebooks: eUCP v2.1, eURC v1.1, URDTT v1.0. Produces a discrepancy list with article citations, severity ratings, and remediation actions.",
      "input_schema_ref": "chaingraph/art-54-digital-trade-rules-checker.html#manifest",
      "consumes": [
        "art-52-digital-trade-fit-diagnostic"
      ],
      "feeds": [
        "art-08-en16931-einvoice-batch-validator",
        "art-55-trade-document-provenance-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a7e25b5ced7deecbe2bfaf3ff54f75fec09c0b0058aaa4f1308c175e4f477344","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BgRVTwMVRuNn9VkbHEM4nhFX9gpv+vuqSBZG/GF+BD8iySIbzTOIKkChbk76O9ZA00XCGLnj2pf2T8P1RUw4dyPIZuPkW/XNvWxaFYi1b3ZpYiMW2TV35/YJsmnpn23BJN2CpadKgpIALRWmXFfVjxMUUw8sdigkxyt7ZfD5Z10LbobeTPfwlyrErHD/GXz1PA63n/EntIRorIFhH0tb0SmUx4e2unChab56dHclX62zz/8EABwA0pV36oyElROXEM/yC/+HgjO2kgnvK+qZ611zfAPTppbv999DSO4LijMM70TRzX0maWzb4g6NlVGaEJJMh1+AFTsaJow0KHIBFQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a7e25b5ced7deecbe2bfaf3ff54f75fec09c0b0058aaa4f1308c175e4f477344",
          "output": {
            "amount_check": "no_lc_amount",
            "discrepancies": [
              {
                "detail": "Electronic record format has not been specified in the credit. eUCP e6 requires the format to be specified; if not, any format will be acceptable but the presenter is at risk of rejection.",
                "remediation": "Specify the acceptable electronic record format (e.g., PDF, XML/EN16931) in the credit terms before presentation.",
                "rule_ref": "eUCP v2.1 Art. e6",
                "severity": "major"
              },
              {
                "detail": "No electronic address provided for delivery of electronic records. eUCP e7 requires the nominated bank or issuing bank to provide an electronic address.",
                "remediation": "Provide a valid electronic address (URL, email, SWIFT BIC or eBL platform address) for delivery of electronic records.",
                "rule_ref": "eUCP v2.1 Art. e7",
                "severity": "major"
              }
            ],
            "expiry_check": "within_period",
            "note": "Digital trade rules check against eUCP-2.1. Citations: ICC eUCP v2.1, eURC v1.1, URDTT v1.0. This is an educational rules-check tool, not a legal determination. Verify article references against the current ICC published text.",
            "presentation_summary": {
              "critical_count": 0,
              "discrepancy_count": 2,
              "doc_count": 0,
              "major_count": 2,
              "rule_set": "eUCP-2.1"
            },
            "verdict": "discrepant"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf"
      ]
    },
    {
      "tool_id": "art-55-trade-document-provenance-verifier",
      "tool_version": "1.0.0",
      "display_name": "Trade Document Provenance & Consistency Verifier",
      "mcp_name": "verify_trade_document_set",
      "mandate_type": "cryptographic_mandate",
      "wave": 12,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-55-trade-document-provenance-verifier.html",
      "description": "Cross-validates a full trade-document set (eBL, commercial invoice, packing list, certificate of origin, insurance certificate) for internal consistency and computes a SHA-256 Merkle provenance root. Flags TBML red flags: over/under-invoicing, phantom shipments, mismatched goods/values (FATF typologies, ICC DSI KTDDE field model). Educational screen, not a SAR determination.",
      "input_schema_ref": "chaingraph/art-55-trade-document-provenance-verifier.html#manifest",
      "consumes": [
        "art-52-digital-trade-fit-diagnostic",
        "art-54-digital-trade-rules-checker"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier",
        "art-10-amla-transaction-typology-risk-scorer",
        "ml-03-timeseries-anomaly-detector"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1328cfacdcf71d0f8ba4acb5a20ac1da41eccca4e7b940bea943d4de82db2193","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Er/mdEMzLLMEEgvBdyd0T1I7elAcPVt6xz3ewrKSwl4YPP1trdcupoAKgloN+PHbZbX8NMG++0+69V+Q2bJqcgcgmJ/SETwUfcukrUg0xysAcOcaoixWkfxDPqIQE4xdMBaR5nX0dUoIwgZBX1S4lzeLmjQ1T/SPTPyK/sg1o3sCnqjstswqK/1/SUxBHZLcJgApxtnzoHUPkP07amgYgCvsu+ZDzAeAr8UDV9TGvq2F87tv9Sc4+DXjQym1NulxBXj/zH2y1443Y0UxmWS34qqscOm0p/1X1gw93OGR3EYXaq5yqzOXINg+7DHA3O682vDLWbNwIMrd/XlD+0msBg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1328cfacdcf71d0f8ba4acb5a20ac1da41eccca4e7b940bea943d4de82db2193",
          "output": {
            "consistency_verdict": "consistent",
            "doc_count": 0,
            "invoicing_deviation_pct": null,
            "merkle_root": null,
            "mismatches": [],
            "note": "Cross-document consistency and TBML red-flag screen per FATF TBML typologies and ICC DSI KTDDE field model. Merkle root anchors the document set. Educational screen — not a SAR determination.",
            "tbml_flags": []
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv"
      ]
    },
    {
      "tool_id": "art-56-tokenized-settlement-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Wholesale Tokenized Settlement Fit Diagnostic",
      "mcp_name": "run_tokenized_settlement_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 13,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-56-tokenized-settlement-fit-diagnostic.html",
      "description": "12-question A-F readiness diagnostic for wholesale tokenized settlement (tokenized deposits, central bank money, regulated stablecoins as settlement assets). Grades settlement-asset choice, finality regime, cross-network atomicity, asset-leg type, cash-leg issuer, intraday liquidity, and reconciliation controls; routes to the right wholesale-settlement chain and emits a remediation checklist.",
      "input_schema_ref": "chaingraph/art-56-tokenized-settlement-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-57-deposit-token-compliance-validator",
        "art-58-cross-network-settlement-validator",
        "art-59-settlement-asset-finality-classifier",
        "505-tokenized-collateral-eligibility-checker",
        "509-canton-party-allowlist-validator",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b52a79f937c901786a32dcae3e275f3e2a4bb308cb0fb844998c5cf1268da1ff","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KpkRKBMKm2oZjmGHfdIJb6fCSDDCF9rulXV+7hcU99oBWJkssPyuGg/izziYr2hfFscNRri1i3XETSxomfqUPhy1mW/PjN5Pf2XoRBVteUP0RoZZuy/fKDgVhQDlo10LI0F1TN7gbjKoaEkS0iYM0J2sEmzpJk5/v4Vz4xdIDUgB6lRXlIWIKspSPLT6RFTx1rmFalqRVefmqRlxIwfcTxefHol3f8g2FHTZ5nsxS9+TVkXUC2yvPI7LbJTuOVjJKwDhEgCIKzGOYPdMZXjWDGCvjC+Fhb3s5pnLG6uKSNomAdmcFLBrScvuuunschHibUV3PsdpIKJzVYZUbV0Wng==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b52a79f937c901786a32dcae3e275f3e2a4bb308cb0fb844998c5cf1268da1ff",
          "output": {
            "dim_scores": {
              "asset_leg": {
                "grade": "F",
                "score": 25
              },
              "controls": {
                "grade": "F",
                "score": 0
              },
              "issuer": {
                "grade": "F",
                "score": 12.5
              },
              "liquidity": {
                "grade": "F",
                "score": 0
              },
              "network": {
                "grade": "F",
                "score": 25
              },
              "settlement_asset": {
                "grade": "F",
                "score": 12.5
              }
            },
            "finality_flag": "FINALITY_REGIME_UNCLEAR",
            "note": "Educational readiness diagnostic for Wholesale Tokenized Settlement — cash/settlement layer. Distinct from Wave 8 Canton asset layer. Routes to the relevant wts-* chain; not settlement or legal advice. Verify DTCC/ECB Pontes/RLN/Agorá status against current primary sources.",
            "overall_grade": "F",
            "overall_score": 13.8,
            "primary_recommendation": "wts-intraday-liquidity",
            "remediation_checklist": [
              {
                "action": "Clarify settlement-asset type and verify its finality regime (SFD designation / PFMI alignment / UCC Art.12 control). Run wts-settlement-asset to classify finality tier.",
                "dimension": "settlement_asset",
                "grade": "F"
              },
              {
                "action": "Assess cross-network atomicity mechanism. HTLC or shared-ledger locking preferred over unsynchronised settlement. Run wts-cross-network-dvp.",
                "dimension": "network",
                "grade": "F"
              },
              {
                "action": "Confirm tokenized-asset eligibility and DTCC Collateral AppChain readiness. Run wts-collateral-mobility.",
                "dimension": "asset_leg",
                "grade": "F"
              },
              {
                "action": "Validate deposit-token issuer type (G-SIB liability vs stablecoin). Run wts-deposit-token.",
                "dimension": "issuer",
                "grade": "F"
              },
              {
                "action": "Model intraday liquidity under 24/7 settlement windows. Run wts-intraday-liquidity.",
                "dimension": "liquidity",
                "grade": "F"
              },
              {
                "action": "Upgrade reconciliation to hash-anchored audit trail. Screen participants via wts-participant-onboarding.",
                "dimension": "controls",
                "grade": "F"
              }
            ],
            "secondary_recommendations": [
              "wts-cross-network-dvp",
              "wts-participant-onboarding",
              "wts-audit-pack"
            ]
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-57-deposit-token-compliance-validator",
      "tool_version": "1.0.0",
      "display_name": "Deposit-Token Compliance Validator",
      "mcp_name": "validate_deposit_token_compliance",
      "mandate_type": "compliance_mandate",
      "wave": 13,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-57-deposit-token-compliance-validator.html",
      "description": "3-test validator distinguishing a bank-liability deposit token (JPMD/RLN model: at-par-on-demand, on-balance-sheet, allowlisted-wholesale) from a reserve-backed stablecoin or e-money token. Classifies DEPOSIT_TOKEN_CONFIRMED / CBM_TOKEN / EMT_STABLECOIN / DEPOSIT_TOKEN_MISCLASSIFIED. Provides US / UK / EU regime notes and capital accounting guidance. cash/settlement layer.",
      "input_schema_ref": "chaingraph/art-57-deposit-token-compliance-validator.html#manifest",
      "consumes": [
        "art-56-tokenized-settlement-fit-diagnostic"
      ],
      "feeds": [
        "510-digital-asset-regulatory-classifier",
        "cry-04-merkle-batch-verifier",
        "art-59-settlement-asset-finality-classifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2fd5b0a6674a558949495837e3105a855ebde50c43c0441c61008f9a10204f44","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KhUZgVlwTXtfhjJK3ftPLdwXHJQsmLmdhQRkG/AVe5gCKaj7qIuFjzlwRc8nOnDBdAg7HBfyRec0pqA/rLCR5iqc8b5fkti4qrjjcAqHmFHl/YyeRefsSMMemi5tGMSqKjEvhY67nhmxMpmSyGK4lzPW7fxirN66GwDj7SpzzVcBySvo1a6jsESnYRyEJUYcFIzvjo9mI0XXdttAKXpOTRyCCbrIYD2byHf2VI5LEJ4a1rM0F+f1kgYBlKSmEZzsE6TfqL+dVppMS2bnbE/RLsdIeELs5BIctoiTXEtO6dwlikp6ZTuwTmfyirGiNfyges/m96VH2Id82OCniiSPvA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2fd5b0a6674a558949495837e3105a855ebde50c43c0441c61008f9a10204f44",
          "output": {
            "applicable_regime": "Other: Verify applicable central-bank, deposit-insurance, and e-money/stablecoin legislation in this jurisdiction.",
            "capital_accounting_note": "Classification unclear or misidentified — capital and accounting treatment depends on reclassification result. Stablecoin/EMT = MiCA Art. 48+ regime (EU) or GENIUS Act (US). Verify with current guidance.",
            "classification": "DEPOSIT_TOKEN_MISCLASSIFIED",
            "classification_grade": "F",
            "note": "Educational deposit-token compliance validator. A deposit token is a bank liability, NOT a reserve-backed e-money instrument. Distinct from Wave 8 Canton tokenized-asset layer and from Tempo/Arc stablecoin tools. Not legal, capital, or accounting advice.",
            "remediation_checklist": [
              {
                "action": "Confirm at-par-on-demand redemption with issuer legal counsel.",
                "issue": "Redemption basis is unclear — verify with issuer legal counsel.",
                "test": "redemption"
              },
              {
                "action": "Confirm on-balance-sheet classification with issuer. If segregated-reserve: token is a stablecoin/EMT, not a deposit.",
                "issue": "Segregated-reserve structure is characteristic of a reserve-backed stablecoin (e.g. MiCA EMT), not a bank deposit.",
                "test": "liability"
              },
              {
                "action": "Restrict token holders to allowlisted wholesale counterparties or recategorise as EMT.",
                "issue": "Open / unrestricted holders — not consistent with a bank deposit token; assess as e-money token or stablecoin.",
                "test": "eligibility"
              }
            ],
            "status_asof": "2026-06-20 — verify US deposit law, MiCA EMT Arts. 48+, UK RLN model, and FDIC/FCA/EBA guidance against current primary sources",
            "test_results": {
              "eligibility": {
                "note": "Open / unrestricted holders — not consistent with a bank deposit token; assess as e-money token or stablecoin.",
                "result": "FAIL"
              },
              "insurance": {
                "note": "No deposit insurance — verify regulatory treatment and investor disclosure.",
                "result": "INFO"
              },
              "liability": {
                "note": "Segregated-reserve structure is characteristic of a reserve-backed stablecoin (e.g. MiCA EMT), not a bank deposit.",
                "result": "FAIL"
              },
              "redemption": {
                "note": "Redemption basis is unclear — verify with issuer legal counsel.",
                "result": "UNCLEAR"
              }
            },
            "token_class": "unclear"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-58-cross-network-settlement-validator",
      "tool_version": "1.0.0",
      "display_name": "Cross-Network Atomic Settlement Validator",
      "mcp_name": "validate_cross_network_settlement",
      "mandate_type": "settlement_mandate",
      "wave": 13,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-58-cross-network-settlement-validator.html",
      "description": "Validates atomic settlement across two or more networks: cash leg final on the money ledger, asset leg delivered on the asset ledger, FX leg PvP where present. Detects finality mismatch across legs, non-atomic cross-network risk, and PvP gaps per CPMI-IOSCO PFMI Principles 8 + 12. Models BIS Agorá unifying-ledger, ECB Pontes TARGET-link, and DTCC Collateral AppChain coordination patterns. Distinct from Canton single-network DvP.",
      "input_schema_ref": "chaingraph/art-58-cross-network-settlement-validator.html#manifest",
      "deadline": "2026-Q3",
      "deadline_note": "ECB Pontes TARGET-link pilot end-Q3 2026; DTCC Collateral AppChain full production Oct 2026. Verify cross-network coordination patterns against current primary sources.",
      "consumes": [
        "art-56-tokenized-settlement-fit-diagnostic",
        "art-59-settlement-asset-finality-classifier"
      ],
      "feeds": [
        "507-canton-dvp-atomicity-validator",
        "511-multi-currency-pvp-validator",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3bd0c00f1525794b85021aa94d28caed825ccbf0bae6d32f38092cb2ec96bc8b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HwBHKcwd8dn9vPWWdmCuEuSkZt08biqJZ8Dj3lsPzY0frOoUV1XxqK4r8ViJf4inBZ1dpYBBngrVHrwNi6jSxiHa8DEAYo4WwLJhv34iHm+nCYbrsEBHcvaW2ENHL78tIEoVYwkDLlrLx/EZBoLAIMqfbi8sXelJjJoJhQVVSHAap0ClKec5DWxk5KwpJvabxRgSlZoCtG5Vga9wVXixXiSc6HjJn378ot+wncCs05xqvAebVj9ZhtfN2X/AKUWuHEylwu/K3BZhk4jzysmcagR1rvH4J/AecVVb/9hrzVodSLc6LdEf+h9vINuWDwA1vlX+i+/X9A8JgHqXbDnUOw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3bd0c00f1525794b85021aa94d28caed825ccbf0bae6d32f38092cb2ec96bc8b",
          "output": {
            "atomicity_verdict": "at-risk",
            "coordination_recommendation": "Unsynchronised settlement carries open principal risk. Upgrade to HTLC, shared-ledger lock, or notary-signature coordination. Consider BIS Agorá unifying-ledger / ECB Pontes TARGET-link / DTCC Collateral AppChain pattern.",
            "leg_findings": [],
            "note": "Cross-network atomicity and finality-compatibility check per CPMI-IOSCO PFMI Principles 8 + 12. Educational estimator — not a live settlement instruction or legal advice. Verify BIS Agorá / ECB Pontes / DTCC Collateral AppChain coordination mechanics against current primary sources.",
            "pvp_check": "PVP_NOT_REQUIRED",
            "residual_exposure": "open (unsynchronised — one leg may settle while the other fails)",
            "settlement_risk_window_sec": 3000
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "csv"
      ]
    },
    {
  "tool_id": "art-59-settlement-asset-finality-classifier",
  "tool_version": "1.0.0",
  "display_name": "Settlement-Asset & Legal-Finality Classifier",
  "mcp_name": "classify_settlement_asset_finality",
  "mandate_type": "compliance_mandate",
  "wave": 13,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-59-settlement-asset-finality-classifier.html",
  "description": "Classifies the settlement asset (CBM token / tokenized commercial bank deposit / regulated stablecoin / e-money token) against its legal-finality regime (EU SFD 98/26/EC / CPMI-IOSCO PFMI Principle 8 / UCC Article 12 control) -> finality tier 1-4 + singleness-of-money verdict. Gates ART-58 cross-network atomicity check.",
  "input_schema_ref": "chaingraph/art-59-settlement-asset-finality-classifier.html#manifest",
  "deadline": "2026-Q3",
  "deadline_note": "ECB Pontes pilot end-Q3 2026; DTCC Collateral AppChain production Oct 2026. Verify SFD/PFMI designations against current regulatory status before that date.",
  "consumes": [
    "art-56-tokenized-settlement-fit-diagnostic"
  ],
  "feeds": [
    "art-58-cross-network-settlement-validator",
    "506-onchain-cash-leg-finality-checker",
    "510-digital-asset-regulatory-classifier"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:f03969b8c19acf958fd9f90055c4580aa2432c04700b20a42156fa57473ace45",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-06-28"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DngpkHpKMBWA1rnpVa/cZu7YSB4Sceo4Vtr/mXw+JFMBKsapr13SRocHYqeAJ8JXvuCH32RiJL0Er1KH044MIBRQFrFKG8kYP4vkRh2DIiXlPlQhCsbVD1/HhQO4iktvCHVPoxIpg/LY/orn6crG4465n6Ydd2AvQrF6kl4sjwwhwS/SWE0MHcYor2IJpXqsxPBnslweU1Ty69sbt9p0hi2yw1rFSpjnYsckJyTHPIijsWTG3rI9UdfWN9rRgZa9J6anvQU2hsowQRZqFP56O5ex5r3dCNCk5GyNdCzrOR8VpM3cmZcFCGfnLt4xY8K6KPeRtdnj6EHuTeqZUZHQfQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f03969b8c19acf958fd9f90055c4580aa2432c04700b20a42156fa57473ace45",
      "output": {
        "applicable_regime": "Jurisdiction-specific; verify against applicable central-bank / CSD / legislative framework",
        "finality_gaps": [
          "NO_LEGAL_FINALITY_DESIGNATION"
        ],
        "finality_tier": 4,
        "note": "Educational classification — not legal or settlement advice. Tier 1 = legally final (CBM/SFD); Tier 2 = conditional (deposit token/PFMI); Tier 3 = contractual (stablecoin); Tier 4 = unclear/none. Gates wholesale-settlement-cross-network-dvp atomicity check.",
        "recommendation": "Tier 4 — finality unclear. Do not use this asset class for wholesale settlement without legal clarification. Obtain SFD designation or PFMI compliance assessment. Run wts-settlement-asset.",
        "settlement_asset_class": "Off-Chain RTGS Settlement",
        "singleness_verdict": "SINGLENESS_CONDITIONAL",
        "status_asof": "2026-06-20 — verify EU SFD 98/26/EC, UCC Art.12, CPMI-IOSCO PFMI Principle 8 against current regulatory guidance"
      }
    }
  },
  "export_capability": [
    "pdf",
    "xlsx"
  ]
},
    {
      "tool_id": "art-60-agent-economy-runtime-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Agent Economy Runtime Fit Diagnostic",
      "mcp_name": "run_agent_economy_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 14,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-60-agent-economy-runtime-fit-diagnostic.html",
      "description": "12-question A-F readiness diagnostic for the agent-economy runtime / post-trade layer (x402 V2 batch settlement, AP2 PaymentReceipt, Human-Not-Present autonomy, reconciliation, metering, runtime fraud). Grades an agent platform/operator and routes to the right agent-economy chain.",
      "input_schema_ref": "chaingraph/art-60-agent-economy-runtime-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-61-x402-batch-settlement-reconciler",
        "art-62-ap2-payment-receipt-verifier",
        "art-63-agent-service-metering-modeler",
        "art-02-agent-spend-policy-simulator",
        "mms-03-app-fraud-graph",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:05da7b2247131bc9f19b998edc08d9be543cdf7507b90012e036e3e7b28289f1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ce6FyByJP5m9wfndE7TGiOxA2HTlkYRzmGVJ9yet7kgc7ssBsEp7PSNHv3ZOCVvHn5JHiWucYK5znxSBePq4/ip/t1e8xdPhzs2f+D0tmd37QRbcm7nsq25bcn+y7qPKDhWrp3YcjlRbUcCLJKylPJJuD4j+nWwwosJglCmLbeQN+p1OkP0xGTivycO7rSwRrsvmhGALXy+sZBcXrzzYrQ8OrMLMnfpNetOmo5RIoBZ8C0eC3aW3H3LimLiljybMAlRR9OhQ0HJbnEIhYePnV1wl9ka5bXJPtpMannqnvj0jAXAUJNVs9EeE0d/4nYfPWHWiJydCXpjyBGcvZN/njw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:05da7b2247131bc9f19b998edc08d9be543cdf7507b90012e036e3e7b28289f1",
          "output": {
            "dim_scores": {
              "autonomy": {
                "grade": "F",
                "score": 25
              },
              "metering": {
                "grade": "F",
                "score": 0
              },
              "rail": {
                "grade": "F",
                "score": 0
              },
              "receipt": {
                "grade": "F",
                "score": 0
              },
              "recon": {
                "grade": "F",
                "score": 0
              },
              "risk": {
                "grade": "F",
                "score": 0
              }
            },
            "hnp_risk_flag": null,
            "note": "Educational runtime readiness diagnostic for the Agent Economy Runtime layer (post-trade / settlement). Grades x402 V2 batch settlement, AP2 v0.2 PaymentReceipt + HNP autonomy, reconciliation, metering, and runtime fraud controls. This is the runtime/post-trade counterpart to Wave 6's pre-trade conformance cluster — not a re-skin. Not settlement, legal, or financial advice. Verify x402 V2 and AP2 v0.2 specs against current Linux Foundation x402 Foundation / FIDO Alliance primary sources (2026-06-20).",
            "overall_grade": "F",
            "overall_score": 5,
            "primary_recommendation": "aer-batch-settlement",
            "remediation_checklist": [
              {
                "action": "Upgrade settlement rail to x402 V2 batch settlement (escrow-voucher pattern). Run aer-batch-settlement to reconcile voucher set → onchain batch and validate settlement-risk window.",
                "dimension": "rail",
                "grade": "F"
              },
              {
                "action": "Adopt AP2 v0.2 PaymentReceipt (FIDO Alliance). Wire VC-signed mandate chain. Run aer-payment-receipt to verify receipt against mandate chain and apply HNP guardrail.",
                "dimension": "receipt",
                "grade": "F"
              },
              {
                "action": "Add Human-Not-Present (HNP) policy gate: per-mandate spend caps, allowed-category list, mandate-age check. Run aer-autonomous-guardrail to enforce AP2 v0.2 HNP policy on executed payments.",
                "dimension": "autonomy",
                "grade": "F"
              },
              {
                "action": "Move to hash-anchored reconciliation: each settled voucher carries an execution_hash verifiable by the counterparty. Add automated dispute path. Run aer-batch-settlement.",
                "dimension": "recon",
                "grade": "F"
              },
              {
                "action": "Meter every agent service call individually (per-call basis). Run aer-metering to model unit economics and identify negative-margin scenarios.",
                "dimension": "metering",
                "grade": "F"
              },
              {
                "action": "Implement velocity limits + agent-graph collusion detection for the runtime payment stream. Run aer-fraud-runtime to identify policy violations and anomalous network patterns.",
                "dimension": "risk",
                "grade": "F"
              }
            ],
            "secondary_recommendations": [
              "aer-payment-receipt",
              "aer-audit-pack"
            ]
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-61-x402-batch-settlement-reconciler",
      "tool_version": "1.0.0",
      "display_name": "x402 V2 Batch-Settlement Reconciler",
      "mcp_name": "reconcile_x402_batch_settlement",
      "mandate_type": "settlement_mandate",
      "wave": 14,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-61-x402-batch-settlement-reconciler.html",
      "description": "Reconciles an x402 V2 batch settlement (off-chain payment vouchers vs onchain batch total), verifying recon verdict, per-voucher amounts, settlement-risk window (unredeemed voucher exposure), and computing an educational Merkle root over the voucher set. Runtime/post-trade: art-03 models V1 pre-trade; ART-61 reconciles an actual V2 batch post-settlement.",
      "input_schema_ref": "chaingraph/art-61-x402-batch-settlement-reconciler.html#manifest",
      "consumes": [
        "art-60-agent-economy-runtime-fit-diagnostic"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:93f57377ae56edc40fdb3e1381a0bc126350b4fa9584d9b59a931175ef17d054","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Agx7w5kgYey/Zjqb7Qx8WFhc8ubTEYOlmnIIQ3q93DobV1fK4ep1Yn5FJCpi1tyPU1MrW5i+ejtVJOndwOjNDiBy66thNgdmCy86w1SiQsF7Km9aHde9EdLNUxN/BlKQHJCEGamVH/CcJDjphxZdvrX2ENVdobi/hHYopz8LcEkwV0AkG+lm7HYXFqX/NV9W5bsKLnspiqP94ufJHxVY5SCXsEGCseWCoCn+fjgTFVdYvg4C7XoH0jnORXde7HjsCIMKeJYeimG94TjEM/8VC60ZBgyHR7xH+WwnhY93kYUs7z8+n+nc0MlQ+PtGaGvVXIu1Zfjgs552e18g9p0o0Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:93f57377ae56edc40fdb3e1381a0bc126350b4fa9584d9b59a931175ef17d054",
          "output": {
            "batch_delta_minor_units": 0,
            "batch_id": "",
            "escrow_address": null,
            "merkle_root_preimage": "empty",
            "note": "Educational x402 V2 batch-settlement reconciler. Runtime/post-trade counterpart to art-03 (which models per-request settlement pre-trade). The Merkle root preimage is an educational approximation — production implementations must use the canonical x402 Foundation Merkle spec. Verify x402 V2 batch-settlement escrow/voucher rules against current Linux Foundation x402 Foundation primary sources (2026-06-20). Not settlement or legal advice.",
            "recon_verdict": "empty",
            "redeemed_count": 0,
            "redeemed_total": 0,
            "settlement_asset": "USDC",
            "settlement_risk_window": 0,
            "status_asof": "2026-06-20 — verify x402 V2 spec: https://github.com/x402-foundation/x402",
            "unredeemed_value": 0,
            "voucher_count": 0,
            "voucher_findings": [],
            "within_tolerance": true
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx",
        "csv"
      ]
    },
    {
      "tool_id": "art-62-ap2-payment-receipt-verifier",
      "tool_version": "1.0.0",
      "display_name": "AP2 PaymentReceipt Verifier & HNP Guardrail",
      "mcp_name": "verify_ap2_payment_receipt",
      "mandate_type": "attestation_mandate",
      "wave": 14,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-62-ap2-payment-receipt-verifier.html",
      "description": "Verifies an AP2 v0.2 PaymentReceipt against its signed Intent/Cart/Payment mandate chain, and applies the Human-Not-Present (HNP) autonomy guardrail: amount, category, mandate age, cart freshness. Runtime/post-trade: art-01 validates the mandate before the buy; ART-62 verifies the receipt after, applying HNP gating (AP2 v0.2 new primitive, FIDO Alliance Apr 2026).",
      "input_schema_ref": "chaingraph/art-62-ap2-payment-receipt-verifier.html#manifest",
      "consumes": [
        "art-60-agent-economy-runtime-fit-diagnostic"
      ],
      "feeds": [
        "art-01-ap2-mandate-chain-validator",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ca4201c7c2cff9069746a1e76dc3f53f390845654f2049dfb8769857a7ae12b9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LdI2QySf0cXtwJ57qfmuUhyiOu1VpqvdAEuh+yeOhkYYtmvT7Yp5jAlaJ62XCyEWXLQ4LA+pGqNic+YkIjycfBDf1b9pN3tCUXR3DNZKr+Usne44VrIihDimnXooncq3A+BxCJoqNH6arL7RFDWI9npC8kHHXoZnOHX3Q31a8tkXNcsaXeVOIg1rywmndAT/MxQaag9bGAHULE7eSo8zKBCcSnhrWwnUy5gMmQfl1HJlNkOiO1KanYYq/uFWeigmJOOwqzAhmWBrQ7sf1PuFCW1k4XWRMb2oqEyq2ow3h6EN6TQv0hj3R7q8q47dr5ElX4qBJES2AwIC74ES3AIaaQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ca4201c7c2cff9069746a1e76dc3f53f390845654f2049dfb8769857a7ae12b9",
          "output": {
            "authorized_amount_headroom": null,
            "findings": [
              {
                "check": "mandate_chain_intact",
                "detail": "One or more mandate chain IDs (intent/cart/payment) are missing.",
                "result": "FAIL"
              },
              {
                "check": "signature",
                "detail": "No signature on receipt or mandate chain.",
                "result": "FAIL"
              }
            ],
            "hnp_verdict": "na",
            "human_present": true,
            "mandate_chain_intact": false,
            "note": "Educational AP2 v0.2 PaymentReceipt verifier and HNP guardrail. Runtime/post-trade — verifies the receipt AFTER an executed payment. art-01 validates the mandate chain BEFORE the buy (pre-trade). Signature verification is an educational approximation — production implementations must use a real VC verifier against the AP2 v0.2 FIDO Alliance spec. Not legal or payment advice. Verify AP2 v0.2 rules against current FIDO Alliance / ap2-protocol.org primary sources (2026-06-20).",
            "receipt_id": null,
            "receipt_verdict": "invalid",
            "signature_check": "No signature present",
            "status_asof": "2026-06-20 — verify AP2 v0.2: https://ap2-protocol.org/ · FIDO Alliance governance"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-63-agent-service-metering-modeler",
      "tool_version": "1.0.0",
      "display_name": "Agent-Service Metering & Marketplace Economics Modeler",
      "mcp_name": "model_agent_service_metering",
      "mandate_type": "payment_policy",
      "wave": 14,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-63-agent-service-metering-modeler.html",
      "description": "Educational unit-economics modeler for agent-service micropayment marketplaces: per-call pricing, x402 V2 batch-settlement savings, marketplace take-rate, net margin, break-even volume, and sensitivity analysis across batch sizes. Not pricing or financial advice.",
      "input_schema_ref": "chaingraph/art-63-agent-service-metering-modeler.html#manifest",
      "consumes": [
        "art-60-agent-economy-runtime-fit-diagnostic"
      ],
      "feeds": [
        "art-03-x402-settlement-modeler",
        "ml-03-timeseries-anomaly-detector"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:db80ef83629be0220c5b3db867b3911ee1a7817bb6e530149ec725258b0edafe","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L/97eDHQ2HU/npUOceQxlYO2lmU1jAGQbceW4jTBcpMPidcMHvxcvAiSIdflapOe1p9m2XKcjrX79F/YojyNqQZ5P2uNc8+MKUj6tktLmTNJOXIz2cL7rCFZVgFdFhjzLK/zB2DFHGW65t0DjxnIvvqqW2KACqzr0AEMKawHkE0epIcboCTpFpoZ2L+6Ly2M4p1oNDrmceVub+vVFwvzxyst128+OxZFT5n9C5994D6LSbiuqkQ1L0gm0tSSCOu9FxMguDMokqIprA7pq0t4qJSsnQGzHrrGYuOGyrH6yckM5zD03KOzMJiOmxMvRojTOJWj2m8IoBKmPo57t+Xw8Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:db80ef83629be0220c5b3db867b3911ee1a7817bb6e530149ec725258b0edafe",
          "output": {
            "batch": true,
            "batch_savings_pct": 99.9,
            "batch_size": 1000,
            "breakeven_calls_day": 1027,
            "currency": "USDC",
            "gross_revenue_day": 1000000,
            "model": "per-call",
            "net_margin_day": 874500,
            "net_margin_pct": 87.45,
            "note": "EDUCATIONAL ESTIMATOR — not pricing, legal, or financial advice. Models the unit economics of an agent-service micropayment marketplace under x402 V2 batch settlement. All figures are illustrative; verify x402 V2 settlement cost mechanics against current Linux Foundation x402 Foundation primary sources. Agent-service marketplace pricing is market-dependent — verify any outward-facing figures. (2026-06-20)",
            "rail": "x402-v2",
            "sensitivity": [
              {
                "batch_size": 1,
                "net_margin_day": 375000,
                "net_margin_pct": 37.5,
                "settlement_cost_day": 500000
              },
              {
                "batch_size": 10,
                "net_margin_day": 825000,
                "net_margin_pct": 82.5,
                "settlement_cost_day": 50000
              },
              {
                "batch_size": 100,
                "net_margin_day": 870000,
                "net_margin_pct": 87,
                "settlement_cost_day": 5000
              },
              {
                "batch_size": 500,
                "net_margin_day": 874000,
                "net_margin_pct": 87.4,
                "settlement_cost_day": 1000
              },
              {
                "batch_size": 1000,
                "net_margin_day": 874500,
                "net_margin_pct": 87.5,
                "settlement_cost_day": 500
              },
              {
                "batch_size": 5000,
                "net_margin_day": 874900,
                "net_margin_pct": 87.5,
                "settlement_cost_day": 100
              },
              {
                "batch_size": 10000,
                "net_margin_day": 874950,
                "net_margin_pct": 87.5,
                "settlement_cost_day": 50
              }
            ],
            "settlement_cost_day": 500,
            "status_asof": "2026-06-20 — verify x402 V2 cost mechanics: https://github.com/x402-foundation/x402",
            "take_and_infra_day": 125000,
            "unit_price_minor": 100
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf"
      ]
    },
    {
      "tool_id": "art-64-ai-act-highrisk-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "EU AI Act High-Risk Fit & Classification Diagnostic",
      "mcp_name": "run_ai_act_highrisk_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 15,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-64-ai-act-highrisk-fit-diagnostic.html",
      "description": "12-question A-F diagnostic that screens in-force obligations first (Art 5 prohibited practices, Art 4 AI literacy, GPAI) then classifies financial AI system high-risk status (Annex III: credit scoring, insurance pricing, financial-standing) and grades Article 9-15 readiness plus the provider/deployer split. Routes to the right ai-governance chain with a do-now vs prepare-ahead checklist and applicable date (2 Dec 2027 per Digital Omnibus, verify).",
      "input_schema_ref": "chaingraph/art-64-ai-act-highrisk-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-65-ai-conformity-pack-builder",
        "art-66-fria-postmarket-monitoring-builder",
        "art-67-agentic-ai-risk-classifier",
        "art-05-eu-ai-act-credit-scoring-conformity",
        "452-fair-lending-ai-bias-assessment",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e7cbaf562ec7a4b991bdd70cfafb39fcd09bb43a73d085fd0ea270e45dd2c0cb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "G3n0EC97rsE0+Prf5dc8vCNEj2tiGN5SokjaWkTIxcIcxtKQlKr2C4Xmn3EoJ4iFVE7UzTv3lWmjTEest7xo5w6fdhxo2+LC52f+aN9QM2HcaVE/v78tOXGCViwPm3biIGnnVtpkenTlmKvhP1kbj3pXY2bYGBaUtLG9lBTMC8Qj4pl6wNn7PT+L0cxpdtnWRkAvkWIa/OYHckz5aNb3YAQKFnvvrn+Ri5i/MOhmlJ/xxh/PtwkeaoJiacsvvaBID/mNOQ6e1wnZDqAtnIpI0MUGjft1Ur1IpcJIPuTGC4MriVQgIu7xx1noCGSpJGkaiK5V6/hxPBPO6N/5GJ8cUA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e7cbaf562ec7a4b991bdd70cfafb39fcd09bb43a73d085fd0ea270e45dd2c0cb",
      "output": {
        "ai_literacy_grade": "F",
        "annex_iii_basis": "Use-case-specific analysis required — review consolidated Annex III against actual deployment context",
        "applicable_date": {
          "digital_omnibus_date": "2026-12-02",
          "note": "Verify current status: Digital Omnibus (provisional agreement 7 May 2026) proposes Annex III high-risk obligations → 2 Dec 2027. Legal effect only on formal adoption and publication in Official Journal before 2 Aug 2026. If not adopted in time, original 2 Aug 2026 date applies. Always check the current AI Act timeline before relying on this date.",
          "original_date": "2026-08-02"
        },
        "dim_scores": {
          "articles_9_15": {
            "grade": "F",
            "score": 0
          },
          "classification": {
            "grade": "A",
            "score": 100
          },
          "deployer": {
            "grade": "F",
            "score": 0
          },
          "gpai": {
            "grade": "A",
            "score": 100
          },
          "literacy": {
            "grade": "F",
            "score": 0
          },
          "maturity": {
            "grade": "F",
            "score": 0
          },
          "prohibited": {
            "grade": "A",
            "score": 100
          },
          "role": {
            "grade": "B",
            "score": 75
          }
        },
        "do_now_checklist": [
          {
            "action": "Art 4 AI literacy — in force 2 Feb 2025. Implement AI-literacy programme for all staff deploying or using AI systems. Verify against consolidated AI Act Art 4 text.",
            "obligation": "Art 4 AI Literacy",
            "status": "IN FORCE 2 Feb 2025"
          },
          {
            "action": "DORA (Reg. 2022/2554) — fully enforced since 17 Jan 2025. Treat the AI system as an ICT system: ICT risk management, incident reporting, vendor management (TPRM), TLPT. Run aig-resilience-overlap chain.",
            "obligation": "DORA ICT Risk (if AI is an ICT system)",
            "status": "IN FORCE 17 Jan 2025"
          },
          {
            "action": "Non-discrimination / fair-lending (existing law, independent of AI Act date). Screen credit/insurance AI models for protected-characteristic bias. Run aig-fairness-bias chain.",
            "obligation": "Non-Discrimination / Fair-Lending (existing law)",
            "status": "IN FORCE"
          }
        ],
        "gpai_applicability": "Not applicable — no GPAI/foundation-model dependency",
        "high_risk_verdict": "OUT-OF-SCOPE — current assessment indicates system does not meet Annex III criteria. Re-assess if use case changes.",
        "note": "Educational decision-support diagnostic. Outputs are not legal conformity certificates. EU AI Act timeline is in flux (Digital Omnibus pending formal adoption as of 2026-06-20) — carry both dates (2 Aug 2026 / 2 Dec 2027) and verify against the current AI Act / Official Journal. Verify all Article/Annex references against EU AI Act (Reg. 2024/1689) consolidated text at https://eur-lex.europa.eu/eli/reg/2024/1689/oj and Digital Omnibus updates.",
        "overall_grade": "D",
        "overall_score": 49.5,
        "prepare_ahead_checklist": [],
        "primary_recommendation": "aig-audit-pack",
        "prohibited_practice_verdict": "PASS — no obvious prohibited-practice exposure.",
        "role": "deployer",
        "secondary_recommendations": [
          "aig-resilience-overlap",
          "aig-fairness-bias"
        ]
      }
    }
  },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-65-ai-conformity-pack-builder",
      "tool_version": "1.0.0",
      "display_name": "AI Act Conformity Pack Builder",
      "mcp_name": "build_ai_conformity_pack",
      "mandate_type": "model_governance",
      "wave": 15,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-65-ai-conformity-pack-builder.html",
      "description": "Assembles an EU AI Act Annex IV technical documentation pack, validates the conformity-assessment route (internal control vs notified body), checks CE-marking and EU Declaration of Conformity readiness, and scores completeness per Arts 9/10/15/17. Prepare-ahead: 2 Dec 2027 (verify Digital Omnibus). Decision-support draft, not a conformity certificate.",
      "input_schema_ref": "chaingraph/art-65-ai-conformity-pack-builder.html#manifest",
      "consumes": [
        "art-64-ai-act-highrisk-fit-diagnostic"
      ],
      "feeds": [
        "333-eu-ai-act-article9-risk-mgmt-builder",
        "art-05-eu-ai-act-credit-scoring-conformity",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4d9a56ae5ea8a88287765b48baed1e6137e5d8cac49886082c0a07310239f74e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GDe8dgTn7SQR9m+5vPCTUcFuxy30ER6TXBgMNRow/KMJ3DZLazIZ5zqsupP83dYizwqPGhAcArNnX+nAnw4evx42TA0U8cXefNdh9MTF2/odMCWleoq0eTdZeG4zMe/fF4x8KHg7ZvkBJCvO09DwDafEE67el2mtQneUD9N9Rp4nFRqKKwA0a6zv8E27PH10efSst8ZjzeMnVrMouu866Swg3U6bwQaLsV4uLPZ2bnIyWNmuX7yyT0Drg0YjI+zjE6746sAs8q8YDhA6FgWBKe7iTGr/gfQZtS1HzsIipgIakBCMajesVKQk7htZRePrcuJ+IkCgi8GqfvQ7gXrEbA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4d9a56ae5ea8a88287765b48baed1e6137e5d8cac49886082c0a07310239f74e",
          "output": {
            "annex_iv_gaps": [
              {
                "evidence_ref": null,
                "label": "System description, version, and intended purpose (Annex IV §1)",
                "remediation": "Complete System description, version, and intended purpose (Annex IV §1). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "description",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Design specifications and development process (Annex IV §2)",
                "remediation": "Complete Design specifications and development process (Annex IV §2). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "design",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Training data, training methodology, and dataset practices (Annex IV §3)",
                "remediation": "Complete Training data, training methodology, and dataset practices (Annex IV §3). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "training",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Validation and testing procedures + performance metrics (Annex IV §4)",
                "remediation": "Complete Validation and testing procedures + performance metrics (Annex IV §4). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "validation",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Applicable harmonised standards or common specifications complied with (Annex IV §5)",
                "remediation": "Complete Applicable harmonised standards or common specifications complied with (Annex IV §5). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "standards",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Quality management system documentation (Art 17) (Annex IV §6)",
                "remediation": "Complete Quality management system documentation (Art 17) (Annex IV §6). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "qa",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Art 9 risk-management system documentation (Annex IV §7)",
                "remediation": "Complete Art 9 risk-management system documentation (Annex IV §7). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "risk",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Post-market monitoring plan + substantial-modification log (Annex IV §8)",
                "remediation": "Complete Post-market monitoring plan + substantial-modification log (Annex IV §8). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "changes",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "Conformity assessment procedure applied (Annex IV §9)",
                "remediation": "Complete Conformity assessment procedure applied (Annex IV §9). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "copies",
                "status": "missing"
              },
              {
                "evidence_ref": null,
                "label": "EU declaration of conformity reference (Annex IV §10)",
                "remediation": "Complete EU declaration of conformity reference (Annex IV §10). Verify requirement against EU AI Act Annex IV consolidated text.",
                "section": "declaration",
                "status": "missing"
              }
            ],
            "annex_iv_grade": "F",
            "annex_iv_score": 0,
            "applicable_date_note": "Annex III high-risk obligations: Digital Omnibus proposes 2 Dec 2027 (provisional agreement 7 May 2026). Verify formal-adoption status against Official Journal before relying on this date. Original date: 2 Aug 2026.",
            "articles_status": {
              "art10": {
                "label": "Art 10 Data Governance",
                "score": 0,
                "status": "none"
              },
              "art15": {
                "label": "Art 15 Accuracy/Robustness/Cybersecurity",
                "score": 0,
                "status": "none"
              },
              "art17": {
                "label": "Art 17 Quality-Management System",
                "score": 0,
                "status": "none"
              },
              "art9": {
                "label": "Art 9 Risk-Management System",
                "score": 0,
                "status": "none"
              }
            },
            "ce_readiness_note": "CE-marking prerequisites NOT met — Annex IV technical documentation and/or Articles 9/10/15/17 obligations have gaps. Address gaps before conformity assessment.",
            "ce_ready": false,
            "conformity_grade": "F",
            "conformity_route": "internal-control",
            "conformity_route_note": "Internal-control route selected. Permitted for high-risk systems where harmonised standards exist or Art 43(4) conditions are met. Verify applicability against consolidated Art 43 text. Decision-support note — not a legal determination.",
            "declaration_of_conformity_skeleton": {
              "note": "DECISION-SUPPORT SKELETON ONLY — not a legally-binding EU Declaration of Conformity. Prepare and sign the actual declaration following EU AI Act Art 47 requirements. Have it reviewed by qualified legal counsel.",
              "template": {
                "annex_iii_use_case": "credit-scoring",
                "applicable_regulation": "EU AI Act (Reg. 2024/1689)",
                "conformity_route": "internal-control",
                "declaration_date": "[Date of declaration]",
                "declaration_number": "[ASSIGN — unique identifier]",
                "harmonised_standards": "[List applicable harmonised standards, or state: none yet published]",
                "notified_body": "N/A — internal control route",
                "provider_address": "[Provider registered address]",
                "provider_name": "[Provider legal name]",
                "signatory": "[Authorised representative name and role]",
                "statement": "The AI system described above conforms to Regulation (EU) 2024/1689 and the applicable conformity assessment procedure has been carried out.",
                "system_name": "[AI system name and version]"
              }
            },
            "note": "PREPARE-AHEAD — Decision-support draft for conformity-pack planning. Outputs are not legal conformity certificates or CE-marking authorisations. Verify all Art/Annex references against EU AI Act (Reg. 2024/1689) consolidated text at https://eur-lex.europa.eu/eli/reg/2024/1689/oj.",
            "system": {
              "annex_iii_use_case": "credit-scoring",
              "name": "",
              "role": "provider"
            }
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-66-fria-postmarket-monitoring-builder",
      "tool_version": "1.0.0",
      "display_name": "FRIA & Post-Market Monitoring Plan Builder",
      "mcp_name": "build_fria_monitoring_plan",
      "mandate_type": "compliance_mandate",
      "wave": 15,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-66-fria-postmarket-monitoring-builder.html",
      "description": "Builds an Art 27 Fundamental Rights Impact Assessment (FRIA) + Art 72 post-market monitoring plan + Art 12 logging + Art 14 human-oversight design + Art 73 serious-incident reporting path for a bank or insurer deploying a high-risk AI system. Prepare-ahead: 2 Dec 2027 (verify Digital Omnibus). Decision-support draft.",
      "input_schema_ref": "chaingraph/art-66-fria-postmarket-monitoring-builder.html#manifest",
      "consumes": [
        "art-64-ai-act-highrisk-fit-diagnostic"
      ],
      "feeds": [
        "451-sr11-7-model-risk-management-gap-assessor",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3aff37d79ff68de2a055c1d32bdabb4376e3fe242656398b2c1d35ca48331cc0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A+8iAubZ5381Z6XSHGoi2xWCVQpV2wImrunE+luQVTELUZpHG/J5JlrMs6EC+m9K+mkcaG1UtQk7xLM0XFOQVgQTg6r6qvVialouuZ95JQ77wdqoqyKgpRvMqJlwpKyuHVvgooka1tTYCPNN9xD6dQJEzcmRAqrcqeQzbzEw8v8h9f6rxeHKqOQqZN18XSaYB+EF02yAxg3xTydFs1Hx6wOkLmOo5Ur7a4JVuK8E+Ue4N+42rPBWvcm9wCBUTIhNI3kCNvfYkOdOiCZzX3qsV8zGxolBUsHYS77sCvhNs4ok+og6ZXCgRyGC2D7H9Csjy84OsXCUmjVDzpmOwer9Hg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3aff37d79ff68de2a055c1d32bdabb4376e3fe242656398b2c1d35ca48331cc0",
          "output": {
            "affected_rights": [
              "Non-discrimination and equality (Art 21 EU Charter)",
              "Data protection and privacy (Art 8 EU Charter, GDPR)",
              "Human dignity (Art 1 EU Charter)",
              "Access to essential services (housing, financial services)"
            ],
            "applicable_date_note": "Art 27 FRIA + Art 72 post-market monitoring: Digital Omnibus proposes 2 Dec 2027 (provisional agreement 7 May 2026, pending formal adoption). Verify status against Official Journal. Original date: 2 Aug 2026.",
            "deployment": {
              "affected_persons": "consumers",
              "automation_level": "human-review",
              "use_case": "credit-scoring"
            },
            "fria_gaps": [
              {
                "element": "purpose",
                "label": "Description of intended use, deployment context, and decision impact (Art 27)",
                "remediation": "Complete: Description of intended use, deployment context, and decision impact (Art 27). Verify requirement against EU AI Act Art 27 consolidated text.",
                "status": "not-started"
              },
              {
                "element": "persons",
                "label": "Categories of affected persons (consumers, workers, applicants) and population size (Art 27)",
                "remediation": "Complete: Categories of affected persons (consumers, workers, applicants) and population size (Art 27). Verify requirement against EU AI Act Art 27 consolidated text.",
                "status": "not-started"
              },
              {
                "element": "rights",
                "label": "Fundamental rights and non-discrimination risks identification (Art 27)",
                "remediation": "Complete: Fundamental rights and non-discrimination risks identification (Art 27). Verify requirement against EU AI Act Art 27 consolidated text.",
                "status": "not-started"
              },
              {
                "element": "oversight",
                "label": "Human-oversight measures and escalation procedures (Arts 14+27)",
                "remediation": "Complete: Human-oversight measures and escalation procedures (Arts 14+27). Verify requirement against EU AI Act Art 27 consolidated text.",
                "status": "not-started"
              },
              {
                "element": "mitigation",
                "label": "Risk mitigation measures and residual-risk acceptance (Art 27)",
                "remediation": "Complete: Risk mitigation measures and residual-risk acceptance (Art 27). Verify requirement against EU AI Act Art 27 consolidated text.",
                "status": "not-started"
              },
              {
                "element": "governance",
                "label": "Internal governance: responsible function, review cadence, sign-off (Art 27)",
                "remediation": "Complete: Internal governance: responsible function, review cadence, sign-off (Art 27). Verify requirement against EU AI Act Art 27 consolidated text.",
                "status": "not-started"
              }
            ],
            "fria_grade": "F",
            "fria_score": 0,
            "incident_path": {
              "mapped": false,
              "note": "DECISION-SUPPORT ONLY — verify Art 73 notification requirements, deadlines, and the designated market-surveillance authority (MSA) for your jurisdiction against consolidated AI Act Art 73 text. Deadlines vary by incident severity.",
              "recommendation": "Map the Art 73 serious-incident reporting path now: identify your national market-surveillance authority, determine notification deadline (verify against Art 73 text), assign internal incident-triage function."
            },
            "logging_verdict": "FAIL — no logging. Art 12 requires automatic logging of events enabling post-hoc review.",
            "monitoring_plan_skeleton": {
              "applicable_date_note": "Art 72 post-market monitoring obligations: verify target date (Digital Omnibus: 2 Dec 2027; else 2 Aug 2026) against current Official Journal status.",
              "metrics": [
                {
                  "action": "Model review and re-validation",
                  "frequency": "Monthly",
                  "metric": "Model accuracy on live data vs validation baseline",
                  "threshold": "Alert if >5% drift"
                },
                {
                  "action": "Fairness audit + Art 10 data review",
                  "frequency": "Quarterly",
                  "metric": "Adverse decision rate by demographic group",
                  "threshold": "Alert on statistically significant disparity"
                },
                {
                  "action": "Art 73 notification within deadline — verify current deadline against consolidated text",
                  "frequency": "Continuous",
                  "metric": "Serious-incident count (Art 73)",
                  "threshold": "Any serious incident"
                },
                {
                  "action": "Oversight design review",
                  "frequency": "Monthly",
                  "metric": "Human-oversight intervention rate",
                  "threshold": "Alert if intervention rate > 20% (review automation level)"
                },
                {
                  "action": "Logging system repair + gap audit",
                  "frequency": "Weekly",
                  "metric": "Logging completeness",
                  "threshold": "100% — zero gaps"
                }
              ],
              "note": "DECISION-SUPPORT SKELETON — not a legally-compliant Art 72 post-market monitoring plan. Review and complete with qualified compliance staff.",
              "responsible_function": "[Assign: Model Risk / AI Governance / Chief Risk Officer]",
              "review_cadence": "Annual full review + ad-hoc review on material change (new use case, model retrain, regulatory update)"
            },
            "note": "PREPARE-AHEAD — Decision-support draft. FRIA/monitoring outputs are NOT legal assessments or compliance certificates. Complete with qualified legal and compliance staff. Verify all Art references against EU AI Act (Reg. 2024/1689) consolidated text at https://eur-lex.europa.eu/eli/reg/2024/1689/oj.",
            "overall_score": 12.5,
            "oversight_verdict": "WARNING — oversight is nominal; upgrade to meaningful review with documented escalation path (Art 14)"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-67-agentic-ai-risk-classifier",
      "tool_version": "1.0.0",
      "display_name": "Agentic AI Risk & GPAI Governance Classifier",
      "mcp_name": "classify_agentic_ai_risk",
      "mandate_type": "model_governance",
      "wave": 15,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-67-agentic-ai-risk-classifier.html",
      "description": "Co-flagship and strongest in-force anchor: classifies autonomy tier and GPAI/systemic-risk obligations (Arts 53-55, IN FORCE since 2 Aug 2025, explicitly unchanged by the Digital Omnibus) for agentic and foundation-model AI in financial services. Maps Art 50 transparency, Art 4 AI literacy (IN FORCE Feb 2025), Art 14 HNP oversight, systemic-risk 10^25 FLOP threshold, and downstream Annex III high-risk interaction.",
      "input_schema_ref": "chaingraph/art-67-agentic-ai-risk-classifier.html#manifest",
      "consumes": [
        "art-64-ai-act-highrisk-fit-diagnostic"
      ],
      "feeds": [
        "art-04-agent-identity-attestation-checker",
        "art-33-mcp-server-self-attestation-pack",
        "art-62-ap2-payment-receipt-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e54de58d609e2ca40d3ef029fc40d7560ae0d23ce483dc067fbe7ed9f60165af","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IqRxtw+pijxXD4HJtsWfpKNHf8tsOvFPTIngwHjD7Q4EwLzzsSe6G4WyHFVNdNm5hIx8nQOROZMJuYSfkWo/7BnyjUcFcy5SEBSGlFu67RVVtx8yBGdnMZQbqaIYd6l1KlXpg6+z0oBX2ROyZAjcKqZEGieNClIPIs4mI5SNFuklEwlsOgfDvW3E7YvHDB4D2KmTK4D4Xi0zS4TMyWu8rwHAyfQJLD8ku1z6/JLpMMXRGJEEhTIWXbkWeXSL/Hi/JlRCoLtNFacQPCDhUmi/hA4FOtS+LAlQVwd4JxAjgL0OMgC5j7SHjpXpzWRUNcFJOj+97HGKxYwnVjFdqwGHhA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e54de58d609e2ca40d3ef029fc40d7560ae0d23ce483dc067fbe7ed9f60165af",
          "output": {
            "applicable_obligations": [
              {
                "article": "Art 4 (AI Literacy)",
                "requirement": "Ensure all staff deploying or using the agent have adequate AI literacy (Art 4). Verify scope against consolidated text.",
                "status": "IN FORCE — 2 Feb 2025"
              },
              {
                "article": "Art 50 (Transparency — chatbots / AI interactions)",
                "requirement": "Disclose to users that they are interacting with an AI system (chatbot/agent). Art 50§1. Verify exact scope and any exceptions against consolidated text.",
                "status": "IN FORCE target ~2 Aug 2026 (verify — Omnibus may have adjusted; check Official Journal)"
              },
              {
                "article": "Art 53 (GPAI provider obligations)",
                "requirement": "Provider of GPAI model must: maintain technical documentation; make training data summary available; implement copyright policy; publish model card or register with EU AI Office. Verify against current GPAI Code of Practice and Art 53 text.",
                "status": "IN FORCE — 2 Aug 2025"
              },
              {
                "article": "Art 54 (GPAI compliance)",
                "requirement": "Comply with harmonised standards or the GPAI Code of Practice (Art 54). Verify current Code of Practice status with EU AI Office.",
                "status": "IN FORCE — 2 Aug 2025"
              }
            ],
            "autonomy_oversight_verdict": "MODERATE — Supervised autonomous agent. Human review before action is appropriate. Document oversight procedures.",
            "dim_scores": {
              "autonomy": {
                "grade": "D",
                "score": 50
              },
              "gpai_docs": {
                "grade": "F",
                "score": 0
              },
              "model_type": {
                "grade": "F",
                "score": 0
              },
              "oversight": {
                "grade": "B",
                "score": 75
              },
              "systemic_eval": {
                "grade": "A",
                "score": 100
              },
              "transparency": {
                "grade": "F",
                "score": 0
              }
            },
            "governance_tier": "Tier 2 — Supervised Autonomous (human review before action; GPAI obligations if using foundation model)",
            "gpai_class": "gpai",
            "highrisk_interaction": "No downstream high-risk Annex III financial-services use case declared. If use case changes, re-assess.",
            "in_force_status": "GPAI obligations (Arts 53-55) IN FORCE since 2 Aug 2025. AI literacy (Art 4) IN FORCE since 2 Feb 2025. Verify GPAI Code of Practice version against EU AI Office. Systemic-risk threshold (10^25 FLOP) — verify against current Art 55 text.",
            "note": "EDUCATIONAL — Decision-support draft. Outputs are not legal determinations. Verify all Art references against EU AI Act (Reg. 2024/1689) consolidated text at https://eur-lex.europa.eu/eli/reg/2024/1689/oj and current GPAI Code of Practice at EU AI Office.",
            "overall_grade": "F",
            "overall_score": 37.5,
            "recommendation": "RUN aig-gpai-agentic chain to map GPAI obligations (Arts 53-54, in force 2 Aug 2025). Register model with EU AI Office and comply with GPAI Code of Practice."
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-68-carbon-compliance-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Carbon & Climate Compliance Fit Diagnostic",
      "mcp_name": "run_carbon_compliance_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-68-carbon-compliance-fit-diagnostic.html",
      "description": "12-question A-F diagnostic that classifies which carbon/climate obligations bind a firm (CBAM authorised-declarant duty, EU Taxonomy alignment, EU Green Bond conformance, climate stress) and routes to the right carbon-compliance chain. Separates in-force CBAM definitive liability (since 1 Jan 2026) from prepare-ahead items (first declaration 30 Sep 2027, downstream scope 1 Jan 2028).",
      "input_schema_ref": "chaingraph/art-68-carbon-compliance-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-69-cbam-embedded-emissions-calculator",
        "art-72-cbam-precursor-emissions-aggregator",
        "art-73-taxonomy-alignment-scorer",
        "art-75-eugb-factsheet-validator",
        "art-76-climate-scenario-applicator",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a8f0b6c702c3793a684793530ccd427f11067b356e3c3c899f614c15de976da2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LREfdTSGNzHZIV0cPtyBZMNHlS8U3tTAV3xfWTpgrqocZFH1+6Z/Ufto1h5fEYPlori+WTLqbf7WKohX2NEx7ytErx2prSzwCT1dmxMeIqTJ0NUrv1PiTLOOPbeaR4AjDnxwA7mX/DW6z/j8vQUcU5dIy1BoCGOdDbpvNWHRiwonVFvKQs7S6AU60aRfvotmKMBpOjUfjxYDodGBvp4kdyUEt8O/Qb7n1zWQVmBLSkB9OXZBdLEwKyug2m1fk4OYHNYckYrQecqPP/kq8vi3e6pfBWQJu8tHrjCzQnEyL/EbUAx3FMhjk45a+bLRtmm5p/Vgxw3gGYZxIqT4ewJQDA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a8f0b6c702c3793a684793530ccd427f11067b356e3c3c899f614c15de976da2",
          "output": {
            "cbam_declarant_required": false,
            "cbam_declarant_verdict": "N/A — imports below 50 t/yr threshold or no CBAM goods.",
            "cbam_dual_status": {
              "downstream_scope": "1 Jan 2028 (Council position 12 Jun 2026 — verify)",
              "first_declaration": "30 Sep 2027",
              "in_force": "CBAM definitive period — 1 Jan 2026"
            },
            "climate_stress_applicable": "none",
            "dim_scores": {
              "cbam": {
                "grade": "F",
                "score": 25
              },
              "climate": {
                "grade": "A",
                "score": 100
              },
              "eugb": {
                "grade": "A",
                "score": 100
              },
              "taxonomy": {
                "grade": "D",
                "score": 50
              }
            },
            "do_now_checklist": [],
            "eugb_readiness": "N/A",
            "note": "DECISION-SUPPORT DRAFT — not a legal filing, tax advice, or regulatory attestation. CBAM regulatory acts are still evolving (downstream-180 extension Council position 12 Jun 2026). Verify all thresholds, deadlines, and rates against CBAM Reg. 2023/956 consolidated text and current Implementing Regulation edition at https://taxation-customs.ec.europa.eu/. EU Taxonomy Delegated Acts: verify Omnibus I revision status. EuGB Reg. 2023/2631: verify external-reviewer RTS applicability date.",
            "overall_grade": "C",
            "overall_score": 61.3,
            "prepare_ahead_checklist": [],
            "primary_recommendation": "carbon-audit-pack",
            "secondary_recommendations": [
              "cbm-liability",
              "taxonomy-align",
              "eugb-conformance"
            ],
            "taxonomy_scope": "out"
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-69-cbam-embedded-emissions-calculator",
      "tool_version": "1.0.0",
      "display_name": "CBAM Embedded-Emissions Calculator",
      "mcp_name": "calculate_cbam_embedded_emissions",
      "mandate_type": "compliance_mandate",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-69-cbam-embedded-emissions-calculator.html",
      "description": "Flagship importer tool. Computes embedded emissions (direct + indirect, tCO2e) for a consignment of CBAM goods from actual installation data or Commission default values, applying the system boundaries and monitoring rules of the Implementing Regulation. Handles precursor emissions from ART-72.",
      "input_schema_ref": "chaingraph/art-69-cbam-embedded-emissions-calculator.html#manifest",
      "consumes": [
        "art-68-carbon-compliance-fit-diagnostic",
        "art-70-cbam-default-value-resolver",
        "art-72-cbam-precursor-emissions-aggregator"
      ],
      "feeds": [
        "art-71-cbam-certificate-cost-engine",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:41700ba84727c6ac4cb1f9fb130ed565723c48eb48cd03b94b3f3ac31e4d6f00","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JhrC0AONiv5FSlW/14oRar22WIvPRdp9PyxukC/p61UZIeIIR0InXgU/vMefG1weJJ0KmE6s13M7HVQ9vNlG+h4nE8kaHwaWILTn7F457o1CeXac/FIGIqJGmscKXKiUBTa7yXk5wIYWJ2C8mZIvt/G6A8yCcbqewMdlp9BJQGgFAwSEJsSwpeyvlnsLuJ2VL5UeC3nEAwIbdX9ZbBFjLy40nMI/Fqjaq/k87JO2k2NNYfWHsjzowQHk9FwD1/GnIRduLNOjDBqHzUD0jOQVSKYDq4px9F/WPKcX5w1Iw6grCGUmLQcIJ5SK5v5lpBTWEza5HgjuKWUq2m69XZVjHg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:41700ba84727c6ac4cb1f9fb130ed565723c48eb48cd03b94b3f3ac31e4d6f00",
          "output": {
            "basis": "default",
            "cn_code": "",
            "country_of_origin": "",
            "data_quality_flag": "DEFAULT_VALUES",
            "default_markup_applied": true,
            "good_category": "iron_steel",
            "monitoring_method": "calculation-based",
            "precursor_contribution": 0,
            "quantity_tonnes": 0,
            "reference": {
              "default_data": "CBAM Implementing Regulation default values — verify current edition",
              "methodology": "CBAM Reg. 2023/956 Annexes III/IV (embedded-emissions methodology)",
              "note": "DECISION-SUPPORT DRAFT — not a filed CBAM declaration. Verify all emission factors and methodology rules against the current CBAM Implementing Regulation before use in any official declaration."
            },
            "see_direct": 1.894,
            "see_indirect": 0.188,
            "see_total": 2.082,
            "total_embedded_emissions_tco2e": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
  "tool_id": "art-70-cbam-default-value-resolver",
  "tool_version": "1.0.0",
  "display_name": "CBAM Default-Value Resolver",
  "mcp_name": "resolve_cbam_default_value",
  "mandate_type": "compliance_mandate",
  "wave": 16,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-70-cbam-default-value-resolver.html",
  "description": "Resolves the Commission default embedded-emissions value for a (CN code x country-of-origin) pair, applies the year-dependent markup vs the actual-data path (+10% 2026, +20% 2027, +30% 2028+), and returns the value with provenance citing the CBAM Implementing Regulation.",
  "input_schema_ref": "chaingraph/art-70-cbam-default-value-resolver.html#manifest",
  "consumes": [
    "art-68-carbon-compliance-fit-diagnostic"
  ],
  "feeds": [
    "art-69-cbam-embedded-emissions-calculator"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d4e0e283b6e1384fcd684e12c55e68e57ce1522b619bdab563f28f5e79ab4838",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-06-28"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CnDAh+wAfiQUm0bxwMo7wFcCNcGjRofP8VazZd0GG7MtfQtfipm9dr0uStUsJMHqD0QAFg7EFVasvxLRhty9ixYjbVk0Mc6+h9+M1iQEQZavXGrOuvbXrr5PJpyoR/OfHAt4p9I6SpBwQUFc9oNUXG+C25ZtVOsDzqrt0Egp7jYErlHlJ4a79jQwfMCMnMBeUJMgQi4xtZwnPuVNVsi6+i70GInVKBXlJKCwmQ64lvoqchtxpu0wmNKie7KJRqQjJBuAg4/OlSi9xigPsFdf1NN/R9Sa6GKi6ec0qMuVwRgIUsKncyFb4clkyLkLpK8oO3c2KBjnC62uVjCtXtLgIQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d4e0e283b6e1384fcd684e12c55e68e57ce1522b619bdab563f28f5e79ab4838",
      "output": {
        "actual_path_recommended": false,
        "cn_code": "",
        "country_of_origin": "CN",
        "default_value_tco2e_per_t": 2.24,
        "effective_default": 2.464,
        "good_category": "iron_steel",
        "markup_pct": 10,
        "note": "DECISION-SUPPORT DRAFT — values are approximate. Verify against the current Commission CBAM Implementing Regulation edition (https://taxation-customs.ec.europa.eu/) before use in any official declaration. Default markup rates: +10% 2026, +20% 2027, +30% 2028+ for cement, iron and steel, aluminium and hydrogen; fertilisers carry a flat +1% in every year.",
        "provenance": "Default embedded-emission value for iron_steel (CN). Reference instrument: Commission Implementing Regulation (EU) 2025/2621 Annex I (country-specific default values for non-electricity CBAM goods, 31 Dec 2025), reference_version CIR-EU-2025-2621-ANNEX-I. The values shipped in this node are illustrative placeholders, not the Annex I figures. Markup +10% applied for 2026 reporting year.",
        "reference_version": "CIR-EU-2025-2621-ANNEX-I",
        "reporting_year": 2026
      }
    }
  },
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof_ready": "ready"
},
    {
      "tool_id": "art-71-cbam-certificate-cost-engine",
      "tool_version": "1.0.0",
      "display_name": "CBAM Certificate Cost & Free-Allocation Engine",
      "mcp_name": "model_cbam_certificate_cost",
      "mandate_type": "compliance_mandate",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-71-cbam-certificate-cost-engine.html",
      "description": "Converts embedded emissions into a CBAM certificate liability: applies the CBAM factor (free-allocation phase-out 2.5% 2026 to 100% 2034), deducts origin carbon price already paid, and projects the quarterly holding and surrender schedule to the 30 Sep deadline.",
      "input_schema_ref": "chaingraph/art-71-cbam-certificate-cost-engine.html#manifest",
      "consumes": [
        "art-69-cbam-embedded-emissions-calculator"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator",
        "art-76-climate-scenario-applicator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:80df4fc1195a5177c803aad81d51aabbfad003ca7e5c117591b4f557b278f2d9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "K7ExJNwlFNPf6tty3hVvFRVtBhcv/zGVigTunSdhAdcNShwN4TGgxy/SRGICpJybMpoSUrtp1F1asm6r79Y24S5Lldv/NZic5YUPbTkHeuL2DCzGXaKbZqcpaDoemHlDLveEsmJZgO8RSSl5Vno5IGd3CXqhnURlajv4cEZUqpsMI5QuQtKqezgRnuXZS/MUw5CUalFfWhrJ2hBlry+OvRvD/0UXyEgnckAN5eGIoIbDD4MmFOcBv7OB7d66RWynDuK4v7CzU2PQTiOperOvSyn5sQNdh9WdLoXQFn8awJQm35f9eG89IQQ16gcblg3JRiqXZqZyymxiqpbjy37WJQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:80df4fc1195a5177c803aad81d51aabbfad003ca7e5c117591b4f557b278f2d9",
          "output": {
            "cbam_factor": 0.025,
            "cbam_factor_applied": 0.025,
            "cbam_factor_year": 2026,
            "certificate_liability_eur": 0,
            "certificates_required": 0,
            "eua_reference_price": 65,
            "free_allocation_phaseout_pct": 97.5,
            "gross_liability_tco2e": 0,
            "net_liability_eur": 0,
            "note": "DECISION-SUPPORT DRAFT — not an official CBAM declaration. Certificate liability depends on actual EUA auction prices and origin carbon-price verification. Verify surrender deadline (30 Sep) + holding obligation (≥80% rolling) against CBAM Reg. Arts 21–22. CBAM factor schedule: verify Annex V edition.",
            "origin_price_credit": 0,
            "quarterly_holding_schedule": [],
            "reference": {
              "cbam_factor_source": "CBAM Reg. 2023/956 Annex V — verify current edition",
              "eua_price_note": "EUA reference price is a user-supplied input. Verify against current CBAM certificate auction prices (quarterly 2026, weekly 2027+).",
              "reference_version": "CBAM-IR-v1.0-2024-Q4"
            },
            "surrender_deadline": "30 Sep 2027"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-72-cbam-precursor-emissions-aggregator",
      "tool_version": "1.0.0",
      "display_name": "CBAM Precursor-Emissions Aggregator",
      "mcp_name": "aggregate_cbam_precursor_emissions",
      "mandate_type": "compliance_mandate",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-72-cbam-precursor-emissions-aggregator.html",
      "description": "Rolls up embedded emissions across precursors in a steel/aluminium value chain (incl. the 2028 pre-consumer-scrap rule) so a producer can supply complex-goods emissions to its importer. Pre-positions the downstream-180 scope extension (Council position 12 Jun 2026, application 1 Jan 2028).",
      "input_schema_ref": "chaingraph/art-72-cbam-precursor-emissions-aggregator.html#manifest",
      "consumes": [
        "art-68-carbon-compliance-fit-diagnostic"
      ],
      "feeds": [
        "art-69-cbam-embedded-emissions-calculator",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:989771281b7268f99e74d59f151efd4deaf418e9c6e233529b873618190229fd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GQ0G7Gvze/ja6+KX4lJqxnG0H9xDm7wh99OSTz2rqHIBYvZEP+OGmjsASEYTFb5VE9HrceK9cM099qdZcvAsFB2ph/qAebM1KuxEXJxeZlcaTkVZrHSfF9hfY7IbYc0ZK90NrSsivuOqXZDI+ZgNgNJgCv5Z1044cOGPI9wXJTkc1J9xdQxjfbpecHxan4bJEqlS/w1xAV/oBSPyMshGZhLFmmP+gLVFWgkBsce4j8W10xgdTUQ7CsUf1Hy+q+MzL0wWAibo+IRRQtBPTyFeylSRmCTa9GkVxV96QvIsqdUe9+HdZH1htOyki7Fc365KlaG+kmHcg/Z1UedT34Zw7A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:989771281b7268f99e74d59f151efd4deaf418e9c6e233529b873618190229fd",
          "output": {
            "cumulative_see_tco2e": 0,
            "data_quality_grade": "INCOMPLETE",
            "note": "No precursors provided. Supply precursor data to compute complex-goods embedded emissions. DECISION-SUPPORT DRAFT.",
            "precursor_breakdown": [],
            "quantity_tonnes": 1,
            "scrap_adjustment": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-73-taxonomy-alignment-scorer",
      "tool_version": "1.0.0",
      "display_name": "EU Taxonomy Alignment Scorer",
      "mcp_name": "score_taxonomy_alignment",
      "mandate_type": "compliance_mandate",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-73-taxonomy-alignment-scorer.html",
      "description": "Scores an economic activity against an environmental objective: substantial-contribution technical-screening criteria + DNSH across the other five objectives + minimum safeguards -> aligned / eligible-but-not-aligned / not-eligible. Taxonomy Omnibus I revisions in force 28 Jan 2026.",
      "input_schema_ref": "chaingraph/art-73-taxonomy-alignment-scorer.html#manifest",
      "consumes": [
        "art-68-carbon-compliance-fit-diagnostic"
      ],
      "feeds": [
        "art-74-taxonomy-kpi-gar-aggregator",
        "art-75-eugb-factsheet-validator",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9b92c3c4c8082ee5def48e00030b928ad66b653ffea5f5dfb69b3356b9323ffa","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JBdAmrSagrd2FSYRxCoB5DAthIyEzoFf3GavkGsMVWImphIlYnaLYROL8LH/KH3Fes2Wt2l0pqLNid9fOrVO9SqLrW0kFoYtqqfMT0UgLuxvcK2uvjAf12n2cjLhIPaWGEoi32VoXGcewBOzRNSU3oIbStQo1GdQRI72Vzo0hQUErGMn7OsfkIXyT91PqJisgQPgjtKA5bQRuPlLn3ncZw+47bG53Zc4yqj5YjsdIKhYcPwnG/Ry+wrWY97XnQcGDq5EfrRqIeOFEG7HE9jBuFLsdJnN3tGsuOmGXPMPDL8H0Ttb9rV/kdX7zUKeBC4YGrTKD8Y4p8zHPBFERJIStw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:9b92c3c4c8082ee5def48e00030b928ad66b653ffea5f5dfb69b3356b9323ffa",
          "output": {
            "alignment_verdict": "NOT_ELIGIBLE — Substantial contribution not met. Activity does not qualify for Taxonomy alignment.",
            "criterion_refs": [
              "Verify against applicable Climate/Environmental Delegated Act TSC for NACE code: "
            ],
            "dnsh_gaps": [
              {
                "objective": "climate_adaptation",
                "status": "not-met"
              },
              {
                "objective": "water",
                "status": "not-met"
              },
              {
                "objective": "circular_economy",
                "status": "not-met"
              },
              {
                "objective": "pollution_prevention",
                "status": "not-met"
              },
              {
                "objective": "biodiversity",
                "status": "not-met"
              }
            ],
            "dnsh_results": {
              "biodiversity": "not-met",
              "circular_economy": "not-met",
              "climate_adaptation": "not-met",
              "pollution_prevention": "not-met",
              "water": "not-met"
            },
            "is_aligned": false,
            "nace_code": "",
            "note": "DECISION-SUPPORT DRAFT — not an official Taxonomy disclosure. Technical Screening Criteria (SC + DNSH) are activity-specific and defined in the applicable Delegated Act annex for the NACE code. Minimum safeguards: Art 18 Taxonomy Reg. — OECD Guidelines, UN Guiding Principles, ILO core conventions, EU Charter fundamental rights. Verify all criteria against current Delegated Act edition.",
            "primary_objective": "climate_mitigation",
            "reference": {
              "delegated_acts": "Climate Delegated Act + Environmental Delegated Act (consolidated, Omnibus I revisions in force 28 Jan 2026). Verify current edition at eur-lex.europa.eu.",
              "regulation": "EU Taxonomy Reg. (EU) 2020/852"
            },
            "safeguards_status": "none",
            "substantial_contribution_status": "not-met"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-74-taxonomy-kpi-gar-aggregator",
      "tool_version": "1.0.0",
      "display_name": "Taxonomy KPI & Green Asset Ratio Aggregator",
      "mcp_name": "aggregate_taxonomy_kpi_gar",
      "mandate_type": "model_governance",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-74-taxonomy-kpi-gar-aggregator.html",
      "description": "Rolls activity-level Taxonomy alignment (from ART-73) into entity KPIs: revenue/CapEx/OpEx aligned proportions and, for financial undertakings, the Green Asset Ratio (GAR) per the Disclosures Delegated Act denominator rules.",
      "input_schema_ref": "chaingraph/art-74-taxonomy-kpi-gar-aggregator.html#manifest",
      "consumes": [
        "art-73-taxonomy-alignment-scorer"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5810a300b83afde6fbf0bba7ce4da33b6fce0152cfdd4ccf02eb94258ea957d3","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LpUjFhLwequAjx0cJPRZhmmiNvCUX+wgAtCXZbWNAXIGeG1NPnqkcgsKb1YRuYfk1/+nvXwbax3a8nTQqS4JYwqkAhCISYlKJ4ByVAsqNphd8pZsfuaSzb5c6vMjddrJEf6epTTjM+HQV0TDK0xaDXqtWTIIxHUsmmgxmPyhZzMhCgSc4a3xxO7aBu9sE2aX7rU+Z+9qIzXzo6RrR7QTuiarvG/xiAeRm2h+okXK37TTmRNAU64OCN7noFs15UypJwuTX3WUKRAqkIIO0K9ES0ZnrQ/SlLzNKnEW3R89vsgB4FVvraxyl/egqbFMJWu2UOQI8fjw/p6QSsJuuIElgg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5810a300b83afde6fbf0bba7ce4da33b6fce0152cfdd4ccf02eb94258ea957d3",
          "output": {
            "activity_count": 0,
            "aligned_count": 0,
            "capex_aligned_pct": 0,
            "entity_type": "non-financial",
            "gar_detail": null,
            "green_asset_ratio": null,
            "kpi_breakdown": [],
            "note": "DECISION-SUPPORT DRAFT — not an official Taxonomy disclosure. KPI percentages depend on the scope of activities included. GAR denominator exclusions apply — verify against Reg. 2021/2178 Annex V. Omnibus I revisions (28 Jan 2026) may affect reporting thresholds; verify current edition.",
            "opex_aligned_pct": 0,
            "reference": {
              "financial": "Taxonomy Delegated Act for credit institutions — GAR Annex V. Verify Omnibus I revisions (in force 28 Jan 2026).",
              "non_financial": "EU Taxonomy Disclosures Delegated Act (EU) 2021/2178, Art 8"
            },
            "revenue_aligned_pct": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-75-eugb-factsheet-validator",
      "tool_version": "1.0.0",
      "display_name": "EU Green Bond Factsheet & Allocation Validator",
      "mcp_name": "validate_eugb_factsheet",
      "mandate_type": "compliance_mandate",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-75-eugb-factsheet-validator.html",
      "description": "Validates an EuGB factsheet (Annex I) + allocation report (Annex II) for completeness and the 100% Taxonomy-aligned proceeds threshold, cross-checking against ART-73 alignment of the funded activities. EuGB Reg. (EU) 2023/2631 applies since 21 Dec 2024; external-reviewer RTS 12 Mar 2026.",
      "input_schema_ref": "chaingraph/art-75-eugb-factsheet-validator.html#manifest",
      "consumes": [
        "art-68-carbon-compliance-fit-diagnostic",
        "art-73-taxonomy-alignment-scorer"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6764ffb26c2786330c5c9ec5912f6c5c37ae6e0e6b3c69efa0576e0cdb1a269f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L9I31mMLa3OxBJ2kCcJ3fcETm3SPsgMkz57I206nLpwOpdU4WubM1gmZft0UPR25V/pYgoiLuCGbyGtkmZshuhIFH4NfM+ijSeLJtplkTTdCfktvfJwITrXxDSqH7fiyFW31TXegvis8Lt8ia60m0tfpdUJ08L6UiEPrjyGJYSIaEcInpCwW+CDXw+TYn/wTMs90a6QIMVmqPwN/7zHgEBTkDY2d0hATg+etrbWGj0AZiNfNm7XpDYh9FCyYvHXFC8rviwil6AeAZouzcVO4DHhORFqntCLsWryYTCT/KiAbx7vJHs/nRzWVuzz9EofxQmQLqg1UoLDQyrCWwrfNUA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6764ffb26c2786330c5c9ec5912f6c5c37ae6e0e6b3c69efa0576e0cdb1a269f",
          "output": {
            "aligned_proceeds": 0,
            "annex_i_complete": false,
            "annex_i_gaps": [
              {
                "section": "issuer_name_and_description",
                "status": "missing"
              },
              {
                "section": "bond_name_and_isin",
                "status": "missing"
              },
              {
                "section": "use_of_proceeds",
                "status": "missing"
              },
              {
                "section": "environmental_objective",
                "status": "missing"
              },
              {
                "section": "eligible_green_assets",
                "status": "missing"
              },
              {
                "section": "taxonomy_alignment_evidence",
                "status": "missing"
              },
              {
                "section": "external_review_information",
                "status": "missing"
              },
              {
                "section": "reporting_commitments",
                "status": "missing"
              }
            ],
            "annex_ii_status": "missing",
            "conformance_grade": "F",
            "conformance_score": 0,
            "external_reviewer_status": "none",
            "label_ready": false,
            "note": "DECISION-SUPPORT DRAFT — not a reviewer attestation or official EuGB label approval. 100% Taxonomy-alignment of use-of-proceeds required for the EuGB label (EuGB Reg. Art 4). Annex I/II gap analysis is indicative; verify against current EuGB Reg. 2023/2631 template versions. External review appointment required before label use.",
            "proceeds_aligned_pct": 0,
            "proceeds_threshold_met": false,
            "proceeds_threshold_pct": 100,
            "reference": {
              "annex_i_source": "EuGB Reg. Annex I — factsheet template",
              "annex_ii_source": "EuGB Reg. Annex II — allocation report template",
              "regulation": "EuGB Reg. (EU) 2023/2631 — applies since 21 Dec 2024",
              "reviewer_rts": "External-reviewer RTS: Delegated Reg. 12 Mar 2026 — verify applicability date"
            },
            "total_proceeds": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-76-climate-scenario-applicator",
      "tool_version": "1.0.0",
      "display_name": "Climate Scenario Applicator (NGFS / Fit-for-55)",
      "mcp_name": "apply_climate_scenario",
      "mandate_type": "model_governance",
      "wave": 16,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-76-climate-scenario-applicator.html",
      "description": "Applies a climate scenario path (NGFS Phase V orderly/disorderly/hot-house, Fit-for-55 supervisory; reference_version NGFS-Phase-V-2025) to an exposure set, emitting stress-adjusted metrics for a bank/insurer climate-risk file. Scenario paths are versioned reference data, not the suite financial-shock stress parameters.",
      "input_schema_ref": "chaingraph/art-76-climate-scenario-applicator.html#manifest",
      "consumes": [
        "art-68-carbon-compliance-fit-diagnostic",
        "art-71-cbam-certificate-cost-engine"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b93b7309081c0f6c2d2a5f3e8728d9d2cd11f4701cc936c42efc0d4d29c7809a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FwMCOR2q3uUBVsme8xThpcYcApHVDPZSuzpvACt0IR0YpFFrf3VoE5/VBk8LGd0GMP0i9zkrGen9YkjhV4uFPSqKUcXmTYHNRoBfYs6tVHfV+kOwGOpVTiJq2TyTOLHfDl6qD5EOXuNsbDR/L91r28RcL35rNorhlszd6C2q8eUgkUqvvhVE7REtT3Qutklt4Pwqm7OJfaVUYj3E9nAEGRzlOx2GgeE0jlrpjL9WDSNhSFPfk2cJvkPUwPqY8v/+HNFY4o1Z0a2w+nbzKbT93hH/ed3qUkRbMBe6h7WZfkUdbi00kXiVvIkF92YSWBPHB6x8tQxn8VKhGnlwlH4BUg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b93b7309081c0f6c2d2a5f3e8728d9d2cd11f4701cc936c42efc0d4d29c7809a",
          "output": {
            "baseline_metric": 0,
            "carbon_price_assumption": 130,
            "delta": 0,
            "delta_by_sector": [],
            "delta_pct": 0,
            "gdp_delta_at_horizon": -0.012,
            "horizon": 2030,
            "metric": "stressed-PD",
            "note": "DECISION-SUPPORT DRAFT — not a supervisory filing. Transition PD sensitivities are sector-level proxies; counterparty-specific analysis required for production use. Verify NGFS Phase V scenario data at ngfs.net. ECB good practices (May 2026) may prescribe different sector mappings.",
            "reference": {
              "ecb_guidance": "ECB climate stress-testing good practices (May 2026)",
              "note": "Scenario paths are versioned reference data. PD sensitivities are proxy estimates — verify against current ECB NGFS documentation. Carbon prices in USD/tCO₂e (NGFS Phase V); convert to EUR for EU-denominated portfolios.",
              "reference_version": "NGFS-Phase-V-2025",
              "scenarios": "NGFS Climate Scenarios Phase V (long-term Nov 2024 / short-term 7 May 2025)"
            },
            "scenario_family": "NGFS-orderly",
            "scenario_label": "NGFS Net Zero 2050 (Orderly)",
            "stressed_metric": 0,
            "transition_intensity": "HIGH"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-77-t1-settlement-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "T+1 Settlement Readiness Diagnostic",
      "mcp_name": "run_t1_readiness_diagnostic",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-77-t1-settlement-readiness-diagnostic.html",
      "description": "12-question A-F diagnostic scoring a firm's readiness for the coordinated EU/UK/CH T+1 move (11 Oct 2027) against the Industry Roadmap phases, grading trade-date allocation/confirmation (the Dec-2026 23:00 CET machine-readable mandate), SSI automation, funding compression and CSDR-penalty exposure, and routing to the right settlement-discipline chain.",
      "input_schema_ref": "chaingraph/art-77-t1-settlement-readiness-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-78-csdr-penalty-calculator",
        "art-79-settlement-fail-predictor",
        "art-80-ssi-conformance-checker",
        "art-81-allocation-affirmation-conformance",
        "art-82-securities-settlement-message-linter",
        "art-83-buy-in-exposure-modeler",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3152f3bd790393117c348ef2ecfd1f0eab68504808ece058103511bd988c616d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FyUYIkK2tW8wuDA169yMGGgNRSybsrFI7eItnU/tD5QfTwDhp4hnokoWpCS6JZzhwcM8hXY2/4gR/6nk5GDJfCK6q9xo8bMocVge5OhA+zMs36cow+PJ0ois1OBmuVagCMGc2Fa+ykcxajemWTEQ/DNuPf5Na0R2Qp9Kb9ZOblwmr6qNe4UIqHy69B93hzTgdLc2r3LAzXm6eLhRznGN0gHt2BSwVnIEGoJdiPhVvISekGYqfvHI6BQ0t5jbudi/KogepZyj98VeRQrGIgXT6BCWXu81/OfMJEtKs9nB4/Isb+vBuEv0DVBY9lFpVCffbDh5sX8pj7DRpdMsMD/9iQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3152f3bd790393117c348ef2ecfd1f0eab68504808ece058103511bd988c616d",
          "output": {
            "binding_deadline": {
              "allocation_confirmation": {
                "date": "Dec 2026",
                "rule": "23:00 CET trade-date allocation/confirmation + machine-readable formats",
                "source": "ESMA CSDR SDR RTS (13 Oct 2025, ESMA74-2119945926-3430)",
                "status": "NOT_READY"
              },
              "t1_go_live": {
                "date": "11 Oct 2027",
                "rule": "Coordinated EU/UK/CH T+1 securities-settlement cycle",
                "source": "CSDR amending text OJ 14 Oct 2025; UK-AST; Swiss SSPTC",
                "status": "AT_RISK"
              }
            },
            "dim_scores": {
              "corp_actions": {
                "grade": "F",
                "score": 0
              },
              "funding": {
                "grade": "F",
                "score": 0
              },
              "matching": {
                "grade": "F",
                "score": 0
              },
              "partial": {
                "grade": "F",
                "score": 0
              },
              "penalty": {
                "grade": "F",
                "score": 0
              },
              "ssi": {
                "grade": "F",
                "score": 0
              },
              "timing": {
                "grade": "F",
                "score": 0
              }
            },
            "dual_date_note": "Allocation/confirmation timing rules binding DEC 2026 · T+1 go-live 11 OCT 2027 — verify current (CSDR Refit/RTS still finalising)",
            "firm_type": "buy-side",
            "gap_checklist": [
              {
                "chain": "sd-alloc-affirm",
                "deadline": "Dec 2026",
                "gap": "Same-day automated allocation/confirmation",
                "priority": "CRITICAL"
              },
              {
                "chain": "sd-ssi-hygiene",
                "deadline": "11 Oct 2027",
                "gap": "SSI golden-source automation (~30% of fails)",
                "priority": "HIGH"
              },
              {
                "chain": "sd-failpredict",
                "deadline": "11 Oct 2027",
                "gap": "Automated matching / STP",
                "priority": "HIGH"
              },
              {
                "chain": "sd-penalty",
                "deadline": "NOW (penalties live since Feb 2022)",
                "gap": "Live CSDR penalty monitoring",
                "priority": "MEDIUM"
              },
              {
                "chain": "sd-audit-pack",
                "deadline": "11 Oct 2027 (CSDR Refit)",
                "gap": "Auto-partial settlement capability",
                "priority": "MEDIUM"
              }
            ],
            "jurisdictions": [
              "EU"
            ],
            "note": "DECISION-SUPPORT DRAFT — not a regulatory assessment. Verify all deadlines and requirements against ESMA CSDR SDR RTS (13 Oct 2025) and current CSDR Refit final text. UK-AST and Swiss SSPTC coordination to be confirmed. CSDR Refit mandatory buy-in reform: verify adoption ~Q1 2026.",
            "overall_score": 0,
            "primary_recommendation": "sd-alloc-affirm",
            "readiness_grade": "F",
            "secondary_recommendations": [
              "sd-ssi-hygiene",
              "sd-failpredict",
              "sd-penalty",
              "sd-audit-pack"
            ]
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-78-csdr-penalty-calculator",
      "tool_version": "1.0.0",
      "display_name": "CSDR Cash-Penalty Calculator",
      "mcp_name": "calculate_csdr_penalty",
      "mandate_type": "compliance_mandate",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-78-csdr-penalty-calculator.html",
      "description": "Flagship. Computes the CSDR cash penalty for a settlement fail: selects the asset-class daily rate (incl. Oct-2025 RTS increases: equities 1 bp/day, SSA bonds 0.50 bp/day, non-SSA bonds 0.50 bp/day), applies fail duration and reference price/notional, credits partial settlement, and projects forward penalty exposure over an open-fails set.",
      "input_schema_ref": "chaingraph/art-78-csdr-penalty-calculator.html#manifest",
      "consumes": [
        "art-77-t1-settlement-readiness-diagnostic"
      ],
      "feeds": [
        "art-83-buy-in-exposure-modeler",
        "art-84-settlement-efficiency-kpi",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:696b46349d69a4f615727264f5a7a59492a6dfc1eb9b73e631af142a6d436a80","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "E23uw8nhnSct3/ECNcLSis5OfZmVE+JeI+HCosMzA3YlUteQTFfzcEwlvgQUu398/KFRwAOSI4DWr7l6nPO84yy1zIJGyul5h9YffvgZ5pYnVRPFxddGqDAXdy/gvj9vAwBnC7UAz7lORGNp99mNgxXVOV0JIuylUM2LTt2jfOgByOzhK+OOr/De74JAE3/idyUN/h5RPnXyJsXWv97IOxepzzwFiurUYOBF8eQBndx5iXYfsxgBegDdUnBLXSHjB7087K3hoijGYPcjd1bG601x8lsCJp5oMO+Jq3r5ViIdOdFjBE23soQxs19TtHZUAlkxFslQJ1dtTq2ZqB/sTQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:696b46349d69a4f615727264f5a7a59492a6dfc1eb9b73e631af142a6d436a80",
          "output": {
            "asset_class": "equity",
            "batch_detail": null,
            "batch_total_exposure": 0,
            "daily_rate_bps": 1,
            "fail_days": 1,
            "note": "DECISION-SUPPORT DRAFT — not a regulatory penalty notice. Penalty calculation is based on the versioned rate table; verify against current CSDR Delegated Reg. 2017/389 and ESMA RTS (13 Oct 2025). Partial-settlement credit applies proportionally. Reference price may differ from notional — use transaction reference price per CSDR methodology.",
            "notional": 0,
            "partial_credit": 0,
            "partial_settled_pct": 0,
            "penalty_amount": 0,
            "penalty_type": "sefp",
            "rate_table_version": "CSDR-RTS-2025-10",
            "reference": {
              "note": "Penalty rates: verify current edition at https://www.esma.europa.eu/. RTS Oct 2025 updated rate schedule — confirm rates in force.",
              "regulation": "CSDR Reg. (EU) 909/2014 Art 7; Delegated Reg. 2017/389 as amended",
              "rts": "ESMA CSDR SDR RTS — Final Report 13 Oct 2025 (ESMA74-2119945926-3430)"
            },
            "reference_price": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-79-settlement-fail-predictor",
      "tool_version": "1.0.0",
      "display_name": "Settlement-Fail Predictor",
      "mcp_name": "predict_settlement_fail",
      "mandate_type": "model_governance",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-79-settlement-fail-predictor.html",
      "description": "Scores a trade's fail probability from anonymized configuration features (SSI match status, instrument liquidity tier, counterparty fail-history band, deadline proximity, partial-settlement availability) and ranks a batch for pre-settlement intervention. No PII. Transparent weighted scorecard: dominant driver per trade.",
      "input_schema_ref": "chaingraph/art-79-settlement-fail-predictor.html#manifest",
      "consumes": [
        "art-77-t1-settlement-readiness-diagnostic",
        "art-80-ssi-conformance-checker"
      ],
      "feeds": [
        "art-84-settlement-efficiency-kpi",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:660bc62de036808e6dcb648dd7ef377f3d403d9f3b2771459507ff4c7702ea0c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Bp7PFuTjQ6kOPqbHS3m17/A8LHDWfJfto89/SbkpESsWBEQnJw7Xp6L1UwFrTARDGTxuMh1J11yr1r7Y7Kc8+QPPQq2tnN0cbdFO0DZSpozyk3URnMeee1cRNDETQzseF90obNHWp/Qsx1/E03sUUnTigxRMBSXCMOs/cnI8F14Oy9Jz/gtVmrwktszPIFK/KU5pIYjHeeax324+ZaUUuCgm+wKj7Lx1semhDi+AibPwz9XNlpAPN7jdaOZ5Yf0vBMWbohJnAYWnIBgWDvWqpF27ESmKGUVTsXdOHI59DHAL57Td4upN9vT8QQovPJZWPYNCF5sC4UTWB4VqVw00Fw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:660bc62de036808e6dcb648dd7ef377f3d403d9f3b2771459507ff4c7702ea0c",
          "output": {
            "batch_fail_rate_estimate": 0,
            "methodology": {
              "data_source": "SSI fail-rate: ~30% of fails (EquiLend / FinOps — verify current data)",
              "description": "Transparent weighted feature scorecard. Feature weights are documented above. No ML black-box — fully interpretable.",
              "feature_weights": {
                "counterparty_fail_band": "med=0.15, high=0.30",
                "deadline_proximity": "tight=0.20, breached=0.50",
                "inventory_status": "short=0.20, uncertain=0.10",
                "liquidity_tier": "semi_liquid=0.15, illiquid=0.30",
                "partial_available": "false=0 (no deduction), true=-0.05",
                "ssi_match_status": "mismatched=0.45, missing=0.65"
              }
            },
            "note": "DECISION-SUPPORT DRAFT — probability scores are indicative band estimates from a weighted categorical scorecard. Not a machine-learning model. Feature weights are approximate; calibrate against your firm's actual fail history. No PII — all features are categorical/band-level.",
            "scored_trades": [],
            "top_drivers": [],
            "trade_count": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-80-ssi-conformance-checker",
      "tool_version": "1.0.0",
      "display_name": "SSI Conformance Checker",
      "mcp_name": "check_ssi_conformance",
      "mandate_type": "compliance_mandate",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-80-ssi-conformance-checker.html",
      "description": "Lints standing settlement instructions for completeness, staleness, and format (~30%-of-fails root cause). BIC validated per ISO 9362. Staleness threshold configurable (default 90 days for T+1 cadence). Scores golden-source match rate and provider coverage.",
      "input_schema_ref": "chaingraph/art-80-ssi-conformance-checker.html#manifest",
      "consumes": [
        "art-77-t1-settlement-readiness-diagnostic"
      ],
      "feeds": [
        "art-79-settlement-fail-predictor",
        "art-84-settlement-efficiency-kpi"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:659829e3ae373c2b2984bd7be749ccc18790106ac4bbfca7a0fc0884047ad958","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FmFHctw6P0GK8ilyCS6IJzZzLJi3C+IN7pLrH8hZArIqeYueqpi4xApoPUVctab3cunK93bnQfbz7zkSVZOkywEVCNiEf7zhprexXTOhMz5k+GOwYfrP87V6HdpMD3hjG6LORMgX3Rn9Hwo2DozWBDY81uBL7+9aaIN05oaul1osFIBjr9OUEgM4Mp82Eq2f4+N9RiCxapy+/bTm4GQYtRp7KLWNOi5jyV9B4HrkIokhiPpDnTKGBY6XXGc7s6UrH2CGIs6xl42vXLZngVnVJVeb3CMXVlqc8O4FxYSh5lcbNWLYGmW6c1V7Bez32Y4oP5o/n96MpYS7XMgmDbS+nA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:659829e3ae373c2b2984bd7be749ccc18790106ac4bbfca7a0fc0884047ad958",
          "output": {
            "clean_records": 0,
            "format_errors": 0,
            "golden_source_coverage_pct": 0,
            "incomplete_records": 0,
            "match_rate": 100,
            "non_golden_source_count": 0,
            "note": "DECISION-SUPPORT DRAFT — SSI lint results are based on the provided field data. Completeness and staleness checks are configurable. For production use, validate directly against your golden-source SSI provider. ~30% of settlement fails are SSI-related (EquiLend / FinOps — verify); highest-leverage T+1 prep action.",
            "records_flagged": [],
            "reference": {
              "bic_standard": "ISO 9362:2022",
              "golden_providers": "S&P Global SSI Automate (live Mar 2026), DTCC / Omgeo",
              "ssi_fail_rate": "~30% of settlement fails trace to incorrect/stale SSIs (EquiLend / FinOps — verify current data)"
            },
            "staleness_breaches": 0,
            "staleness_threshold_days": 90,
            "total_records": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-81-allocation-affirmation-conformance",
      "tool_version": "1.0.0",
      "display_name": "Allocation/Affirmation Conformance Checker",
      "mcp_name": "check_allocation_affirmation",
      "mandate_type": "compliance_mandate",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-81-allocation-affirmation-conformance.html",
      "description": "Checks allocation and confirmation/affirmation events against the ESMA CSDR SDR RTS 23:00 CET trade-date rule and the machine-readable-format mandate (binding Dec 2026). Computes per-event pass/fail and batch on-time rate.",
      "input_schema_ref": "chaingraph/art-81-allocation-affirmation-conformance.html#manifest",
      "consumes": [
        "art-77-t1-settlement-readiness-diagnostic"
      ],
      "feeds": [
        "art-82-securities-settlement-message-linter",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:bfd9eea1801c12c0b1358e111e33f08fcc221f3e847edd481053c5e90f81cd12","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GYw85w0HxWSQkAHTK9URjFe5TvSybiUUATQhxi6nhBEUH89Zvx6wOGPfPDFVmdogWvte/4+M7Ae9V3AnmivxnBjk8/YGSW55xptjdHhEYfSjlWSDW3KC71dU+zP7BbHdFKDYvwFt4z1X+w6bxh9bU7e3ryOjlRSzNOsctb4reSUACNBwK8I91zzgKXVBqS16RNbBOxzhMAjx8RgOkZr64iDgZv3S7M8ddF1hjxw8x+n1LXHYEomtDKoU/HmVRthtLqmVRlT/WGarjRYe8MJSNcXYzBtgwFbt4kMbodpZHDAHb061AoSa/WT+XZQRutCfcyuFesjj6PrzSJ0oIWULww==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bfd9eea1801c12c0b1358e111e33f08fcc221f3e847edd481053c5e90f81cd12",
          "output": {
            "cutoff_applied": "23:00",
            "cutoff_timezone": "CET (Central European Time)",
            "dual_date_note": "Allocation/confirmation timing rules binding DEC 2026 · T+1 go-live 11 OCT 2027 — verify current (CSDR Refit/RTS still finalising)",
            "events_flagged": [],
            "format_nonconformance_count": 0,
            "note": "DECISION-SUPPORT DRAFT — not a regulatory finding. Timestamps are compared in the timezone provided (assumed CET). Verify all event timestamps are in CET/CEST as applicable. Machine-readable format requirement: verify final format specification against ESMA RTS.",
            "on_time_events": 0,
            "on_time_rate": 100,
            "reference": {
              "note": "Verify current applicability date. \"Dec 2026\" refers to the ESMA RTS binding date — confirm final text.",
              "rts": "ESMA CSDR SDR RTS — Final Report 13 Oct 2025 (ESMA74-2119945926-3430)",
              "rule": "Same-day allocation/confirmation by 23:00 CET + machine-readable formats from December 2026"
            },
            "total_events": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-82-securities-settlement-message-linter",
      "tool_version": "1.0.0",
      "display_name": "Securities-Settlement Message Linter (ISO 20022 sese/semt)",
      "mcp_name": "lint_securities_settlement_message",
      "mandate_type": "compliance_mandate",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-82-securities-settlement-message-linter.html",
      "description": "Validates ISO 20022 securities-settlement messages (sese.023 instruction, sese.024 status advice, semt.044 account statement) for schema conformance, mandatory-field presence, ISIN (ISO 6166), and BIC (ISO 9362) validity. Scoped strictly to the sese/semt securities family -- NOT the payments pacs/camt work in cbpr-cutover/rca-03.",
      "input_schema_ref": "chaingraph/art-82-securities-settlement-message-linter.html#manifest",
      "consumes": [
        "art-81-allocation-affirmation-conformance"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2ad79af4b3bfd8d91a04886d9edfee8f37018b827cc9fb189caa66583cfebcc3","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EqRa47CRRirPHmmvnPdMMu/U0Nj10/TO2p/8t/+VSvkNF/3i46roNHCU7u4VMfa9bxzBF4bqNL+Avw5cfn/47B9EV1LpMhIbG0TcXSkS+urXRSZbBF5NnBFJbXorfQCcIzngvs2ugCt7i1SpqxO1SXZ1f/6ErqN1ujxIQ9bwOF0hieqt3r5/+bcFHZUTMNs8j3sgiNEOUUjOdCvp1dV2pSX0DfqC4WxcKPfDdnyIwJ/PXC3MgA38Y5iD2Wb2CClOJ/0ukSBFHSMK/pt2Oup1LYToUDBi09AKodLxJJ7Go9chvDAChq9k4JFZ3Vd96fita/vknzIIpl+BVPm60bL63g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2ad79af4b3bfd8d91a04886d9edfee8f37018b827cc9fb189caa66583cfebcc3",
          "output": {
            "fail_count": 0,
            "in_scope_message_types": [
              "sese.023",
              "sese.024",
              "semt.044"
            ],
            "note": "DECISION-SUPPORT DRAFT — not an ISO 20022 conformance certificate. Lint rules check field presence and format against the versioned message catalogue; verify against current ISO 20022 MX catalogue. SCOPE: sese/semt only. pacs/camt are owned by cbpr-cutover/rca-03.",
            "out_of_scope_count": 0,
            "pass_count": 0,
            "pass_rate": 100,
            "reference": {
              "bic": "ISO 9362:2022",
              "isin": "ISO 6166",
              "out_of_scope_note": "pacs.008, pacs.009, camt.056, camt.029 and all other payments messages are OUT OF SCOPE. See cbpr-cutover/rca-03.",
              "semt_044": "SecuritiesAccountStatementV04 — semt.044 v04 — verify",
              "sese_023": "SecuritiesSettlementTransactionInstruction — sese.023 v10 (Feb 2024) — verify",
              "sese_024": "SecuritiesSettlementTransactionStatusAdvice — sese.024 v04 — verify",
              "standard": "ISO 20022 (https://www.iso20022.org/) — verify current MX catalogue version"
            },
            "results": [],
            "scope_guard_note": "ISO 20022 scope: sese/semt ONLY. Payments messages (pacs/camt) are out of scope — owned by cbpr-cutover/rca-03. Do not add pacs/camt rules here.",
            "total_issues": 0,
            "total_messages": 0,
            "warn_count": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-83-buy-in-exposure-modeler",
      "tool_version": "1.0.0",
      "display_name": "Buy-In Exposure Modeler",
      "mcp_name": "model_buy_in_exposure",
      "mandate_type": "compliance_mandate",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-83-buy-in-exposure-modeler.html",
      "description": "Models CSDR Refit last-resort mandatory buy-in exposure: eligible trigger date per asset class, extension period (liquid equity ~7 cal days, gov bond ~12, SME ~22), buy-in cost mark-up (default 5%), and cash-compensation alternative. CSDR Refit buy-in reform pending delegated acts (verify current status).",
      "input_schema_ref": "chaingraph/art-83-buy-in-exposure-modeler.html#manifest",
      "consumes": [
        "art-78-csdr-penalty-calculator"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:712b7d6c95243d64d2a14195636f2436a56610776c59001a266d2dcf1691ef04","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G2YP7VhZjsia4ZRR2E4OUKUhIowAg/ZprMVWezsm/v4YIITYNisgCCH2stVA0GAnY+S4XNnixRn/zvsScHk8txmyTobbOSI/DvUXUAjl1SYV0B5fUtuyT3yE/vId23mSAxN7BM6aJqPrOyiy1RI2jlaYiopT8yUHAfv6QhjSzA4ckvzbYU56cRvnKEYmT+MGGrM12M6sNkhYOKqwdw+urQ3TdkwnewT/zpyEhIXOq2ecc5yhKlmptad5tvowesopC0wgBak5/KkSzVrOBKSi4bToZ/oAcfX7WzDt6rtl/Foj/5DLXBIFueWRuQqfjo3bDUv3+SA+R8LsQ1InWcaqhg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:712b7d6c95243d64d2a14195636f2436a56610776c59001a266d2dcf1691ef04",
          "output": {
            "buyin_triggered_count": 0,
            "modeled_fails": [],
            "note": "DECISION-SUPPORT DRAFT — buy-in exposure is a modeled estimate for planning purposes. Reference-price mark-up and cash compensation premium are configurable inputs. CSDR Refit buy-in reform applicability: verify current status against ESMA/EC publications (as of Jun 2026, delegated acts not yet in force).",
            "reference": {
              "extension_days_source": "CSDR Refit Art 7 extension periods (approximate calendar days — verify against business-day convention)",
              "note": "CSDR Refit mandatory buy-in reform suspended pending delegated acts. Verify adoption date and applicability from ESMA/EC publications before relying on buy-in trigger dates.",
              "regulation": "CSDR Reg. (EU) 909/2014 Art 7; CSDR Refit Reg. (EU) 2023/2845 (27 Nov 2023)"
            },
            "status_note": "CSDR Refit mandatory buy-in reform PENDING delegated acts (not yet in force as of Jun 2026). Buy-in exposure is modeled for planning purposes only.",
            "total_buyin_exposure": 0,
            "total_cash_comp_exposure": 0,
            "total_fails": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-84-settlement-efficiency-kpi",
      "tool_version": "1.0.0",
      "display_name": "Settlement Efficiency KPI Engine",
      "mcp_name": "compute_settlement_efficiency_kpi",
      "mandate_type": "model_governance",
      "wave": 17,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-84-settlement-efficiency-kpi.html",
      "description": "Aggregates batch settlement data into CSDR/T+1-relevant KPIs: settlement rate, fail rate, total CSDR penalty cost, on-time allocation rate, SSI golden-source coverage, buy-in triggered count, and fail-duration distribution. Benchmarks against ESMA annual settlement-efficiency statistics (~97.5% EU average).",
      "input_schema_ref": "chaingraph/art-84-settlement-efficiency-kpi.html#manifest",
      "consumes": [
        "art-78-csdr-penalty-calculator",
        "art-80-ssi-conformance-checker",
        "art-79-settlement-fail-predictor"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6689dbe2c2f23a87ca2ee46102cd5d983d628b2edebd17f51773a2749d6aa9e6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EyM8JXq+iZaL/tlN8ArA3scccPQOoxo9Y6c6jSrwe9UebQdVIA/Atq6YyRFn4hhfI+hU/KLOiiY4eVi88x4baiezIDfahVVSXjZy+jXUouiApfZVS5tD4rsSEi6tH+FIFsfbGoC/PcjSOMrBTpp8OEkawzz0fmnOYO+TRzIV8noh1N5RNCxHBTBkBRvRtc5QKenp8h/Y+LvVM0xoDHeeVwd8fbm3+Iw55DM1Kopd5K3Gv1gS0Frx2bvOrWGnobW0DLlQK9vTEeDJ9+mFYMtwAXZewZqSvMt3vqu8TfuGh+ouVZkadhNGdbG8aL+UtMy+TNSAQ0HAymcAXoJ7ATqqfw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6689dbe2c2f23a87ca2ee46102cd5d983d628b2edebd17f51773a2749d6aa9e6",
          "output": {
            "benchmark": {
              "esma_settlement_rate_pct": 97.5,
              "source": "ESMA CSDR Annual Stats (verify current edition)"
            },
            "buyin_triggered_count": 0,
            "fail_duration_distribution": {
              "1_day": 0,
              "2_to_5_days": 0,
              "6_to_10_days": 0,
              "over_10_days": 0
            },
            "fail_rate": 0,
            "note": "No instructions provided — KPIs default to 100% (zero trades).",
            "on_time_allocation_rate": 100,
            "period_label": "batch",
            "settlement_grade": "A",
            "settlement_rate": 100,
            "ssi_golden_coverage_pct": 100,
            "total_instructions": 0,
            "total_penalty_cost": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-85-pqc-timeline-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "PQC Timeline & Migration Fit Diagnostic",
      "mcp_name": "run_pqc_timeline_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 18,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-85-pqc-timeline-fit-diagnostic.html",
      "description": "12-dimension A-F diagnostic mapping an organisation's cryptographic estate and sector to the CNSA 2.0 / EU-2030 / G7 / DORA post-quantum milestones, flagging the end-2026 EU crypto-inventory deadline. Routes to the existing pqc-migration chain for inventory/HNDL/roadmap/agility and to the new protocol chains (TLS/PKI, SWIFT/ISO 20022, FIDO, blockchain).",
      "input_schema_ref": "chaingraph/art-85-pqc-timeline-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-86-tls-pki-migration-planner",
        "art-87-iso20022-pqc-readiness-checker",
        "art-88-fido-pqc-conformance-checker",
        "art-89-blockchain-quantum-risk-classifier",
        "499-crypto-asset-inventory-classifier",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:84c05753ffb3bd7d71bd9af2b7dece0ba0c23b3e3aae66ac296f39975d339f23","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CiAZ1JhP+4xmJ2l4z6S8RK1EFOjGNF0Wq+47MwlcrMwsIqKsSB6KraKoQ9AAG07mAnx7UYFmTHOICs5yivVG3iDEiy6ddZTReYYlU+1bNCqBCdBCV7AkLiDI0RUqcB1CGCBYy+EZS33NqohOrWgcQIW9dBCIpDy9EE8vdWfSxjcisz/wVObe41sJqsABvmz1RkEAbva/mpS11pK6GoLl8A3uYSk4zMCFzSg+evKtmWIIJKXCxnbTP8K/Dt2TBbpDJwtJoyZeQp4xdQYrSE2sUtcBz/EVZwVxAZYXQ9bawMEsb1J9L96Ez/Zm0WOrB8mbZEZj8mYOJy6GFcKbDgofsg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:84c05753ffb3bd7d71bd9af2b7dece0ba0c23b3e3aae66ac296f39975d339f23",
          "output": {
            "dim_scores": {
              "agility": 0,
              "hndl": 20,
              "inventory": 0,
              "vendor": 0
            },
            "do_now": [
              "Commission cryptographic asset inventory immediately (EU inventory deadline: end-2026)",
              "Engage critical vendors for PQC roadmap commitments"
            ],
            "inventory_deadline_flag": false,
            "milestone_fit": "behind_schedule",
            "milestones": {
              "cnsa_full_deadline": 2035,
              "cnsa_nss_deadline": 2027,
              "eu_finance_deadline": 2030,
              "eu_inventory_deadline": "end-2026",
              "g7_roadmap_date": "2026-01",
              "pci_dss_inventory_date": "2025-03-31"
            },
            "note": "DECISION-SUPPORT DRAFT. Milestone dates sourced from EU PQC Roadmap, NSM-10/CNSA 2.0, G7 Jan 2026 roadmap, PCI DSS 4.0. Verify all deadlines against current official publications before citing.",
            "prepare_ahead": [
              "Develop cryptographic agility programme — target medium maturity"
            ],
            "primary_recommendation": "Immediate escalation required — PQC programme has not started",
            "protocol_routes": [],
            "readiness_grade": "F",
            "reference_version": "2026-06",
            "total_score": 20
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-86-tls-pki-migration-planner",
      "tool_version": "1.0.0",
      "display_name": "TLS / X.509 PKI Migration Planner",
      "mcp_name": "plan_tls_pki_migration",
      "mandate_type": "compliance_mandate",
      "wave": 18,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-86-tls-pki-migration-planner.html",
      "description": "Sequences TLS and X.509 PKI migration from RSA/ECDSA to post-quantum algorithms (ML-KEM/ML-DSA per NIST FIPS 203/204 Aug 2024). Builds a phased plan (root CAs -> intermediates -> leaf certificates), models payload impact for hybrid/composite/replace strategies, and flags interoperability risks. Reuses CBOM inventory from tool 499.",
      "input_schema_ref": "chaingraph/art-86-tls-pki-migration-planner.html#manifest",
      "consumes": [
        "art-85-pqc-timeline-fit-diagnostic",
        "499-crypto-asset-inventory-classifier"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e85d6bf7a77f232f5abd1634ba2c1b56fdf0bb46db01403dc6bf55e317bfe718","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JlTyMfi7PEPg9GJnIVqPysJmjCI4j0ZZrOmIME3KC7wlqafEfxQLm4dd7/PiVhpo0VwSTaeCTYf18yvXnqyz+RmHO2cUH/vQbOhfiNIIGaV1G3tIGKTHGEq+E8Jqhmf6HzFFA3JS56BrejPoIy4nod5vc7JXjA7tKljJHd3+zlgRJQPmJ/2Dky7PH3ZmiAnNy7CvbC1TDm0ite+Ir6mv5SJKqRj34DRr5rQZ6xvcs5ug+qX0G7dUipMe2kpJRCKXGNDpNDRuF447gG8sn6aR8XIyPThP6bqcZpT6Wpyhoe4F4Snw3HiNBnjsG66hPFN9kOAIihEuFC9An/nZ2wdlVQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e85d6bf7a77f232f5abd1634ba2c1b56fdf0bb46db01403dc6bf55e317bfe718",
          "output": {
            "algorithm_refs": {
              "hybrid_overhead_mult": 2.1,
              "ml_dsa_65_sig_bytes": 3309,
              "ml_kem_768_pk_bytes": 1184,
              "rsa2048_sig_bytes": 256
            },
            "estimated_total_weeks": 20,
            "interop_risks": [
              "Hybrid mode doubles certificate chain size (~2.1× overhead) — verify path length constraints"
            ],
            "inventory_ref": null,
            "migration_plan": [
              {
                "effort_weeks": 6,
                "notes": "1 root CA(s) — high effort; test in offline environment first",
                "phase": 1,
                "target": "Root CA migration"
              },
              {
                "effort_weeks": 8,
                "notes": "2 intermediate CA(s) — schedule CRL/OCSP updates",
                "phase": 2,
                "target": "Intermediate CA migration"
              },
              {
                "effort_weeks": 6,
                "notes": "1,000 leaf certs — automate via ACME or SCEP where possible",
                "phase": 3,
                "target": "Leaf certificate / TLS endpoint rollout"
              }
            ],
            "note": "DECISION-SUPPORT DRAFT. Algorithm sizes from NIST FIPS 203/204 (Aug 2024). Hybrid overhead multiplier is approximate — verify against current PQC overhead benchmarks. Effort estimates are indicative; adjust for organisational capacity and toolchain maturity.",
            "payload_impact_bytes": 3565,
            "pki_summary": {
              "intermediate_count": 2,
              "leaf_population": 1000,
              "root_cas": 1,
              "tls_versions": []
            },
            "reference_version": "2026-06",
            "rollback_points": [
              "After root CA switch",
              "After intermediate rollout"
            ],
            "strategy": "hybrid"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-87-iso20022-pqc-readiness-checker",
      "tool_version": "1.0.0",
      "display_name": "SWIFT / ISO 20022 PQC Readiness Checker",
      "mcp_name": "check_iso20022_pqc_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 18,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-87-iso20022-pqc-readiness-checker.html",
      "description": "Scores SWIFT/ISO 20022 PQC readiness with BAH signature-bloat sizing per the BIS Project Leap Phase 2 model (ML-DSA ~12.9x RSA payload at BAH level). Models new message sizes against current limits and flags size breaches. Reuses HNDL priority from tool 500.",
      "input_schema_ref": "chaingraph/art-87-iso20022-pqc-readiness-checker.html#manifest",
      "consumes": [
        "art-85-pqc-timeline-fit-diagnostic",
        "500-hndl-quantum-risk-scorer"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6e468a348055e83bb98d072b1f2879af2e98a5d8fcca76f119320f136edc0955","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KNj4XFmYwPLxs0E+qIgAPB5/vuDe1QY/KOmvEXgHCxsUoSvZmhokfBbSPhEl70WXCQL4BiAa2/AXZ0neuLv9zSSib87xIJPqzS6NsY9GzkaCQuc5a3pS3/z1DRerku4bBRVphXjeJzTZkBB0Gg/Rv1Roeu1V2j6G5u4gN3MLDRoIONvu+hir3nIV8UrhGKSB5VzbdJ3hXR96TahUZxjFmhHYLnkBTwpbVssWQDdC0/R66HVYI7rVpBpenFKUGeaaE4MrMQP2HCSQkpredwDKcybfG6RFkHsi1GOaicyzstEjRcbKHiCU4/E5mljwTaFOqt3CncqZGVYhtUqhcf7xNQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6e468a348055e83bb98d072b1f2879af2e98a5d8fcca76f119320f136edc0955",
          "output": {
            "affected_message_types": [],
            "algorithm_refs": {
              "bah_wrapper_bytes": 512,
              "ml_dsa_sizes": {
                "ML-DSA-44": 2420,
                "ML-DSA-65": 3309,
                "ML-DSA-87": 4627
              },
              "pqc_algorithm": "ML-DSA-65"
            },
            "bis_leap_bloat_factor": 12.9,
            "bis_leap_ref": "BIS Project Leap Phase 2 (verify current)",
            "bloat_factor": 12.9,
            "current_sig_bytes": 256,
            "hndl_priority_ref": null,
            "new_message_size_bytes": 35821,
            "new_sig_bytes": 3309,
            "note": "DECISION-SUPPORT DRAFT. BIS Project Leap Phase 2 bloat factor is indicative for BAH-level context — verify exact figures against the current BIS publication. ML-DSA sizes from NIST FIPS 204 (Aug 2024). BAH wrapper bytes are approximate; verify against current SWIFT messaging guidance.",
            "readiness_score": 60,
            "reference_version": "2026-06",
            "size_breach": true
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-88-fido-pqc-conformance-checker",
      "tool_version": "1.0.0",
      "display_name": "FIDO2 / WebAuthn PQC Conformance Checker",
      "mcp_name": "check_fido_pqc_conformance",
      "mandate_type": "compliance_mandate",
      "wave": 18,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-88-fido-pqc-conformance-checker.html",
      "description": "Validates FIDO2/WebAuthn authenticator ML-DSA conformance vs IANA COSE algorithm registry identifiers and CTAP2.3 minimum version. Checks COSE identifier presence and CTAP version. Scoped to credential crypto-suite migration -- credential FORMAT/protocol conformance belongs to any future EUDI wave.",
      "input_schema_ref": "chaingraph/art-88-fido-pqc-conformance-checker.html#manifest",
      "consumes": [
        "art-85-pqc-timeline-fit-diagnostic"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:92b325e20fa5a4e60b6cc1b0080285af19bf639951c96ec6a0b76d69a57b823b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "D6ud46Oqq0DKtsmvW0VHE0symBDGhj+yJoeRudjsbk8LHBrON+qUAHeMjW4046RebPl3pixnjNj/tGIbjrFjKyrirmLrJBw0WmF/1tV7biQjG4DU7w75la2zWiG+Dez5ACb3nFSuvr+J6Squz7e+u+3Od7Tz4ypKY0xix9rkQwwuzgLqvnL4bo1P9tUvLit6WsSTl8YRUjP2GhU0n+2twhsVgwiZb0Yd0zbXV/lKPd7Yw1SnnYMQDc2jbQHfar/RGOumyba/f8yKxN5XP/2UFzt7ZfVFQ1hlSt+r1/RwlEsuFbV6OumjmsGdGnu03Vdd5KEwKbSvUj4RVhOLuufkcA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:92b325e20fa5a4e60b6cc1b0080285af19bf639951c96ec6a0b76d69a57b823b",
          "output": {
            "attestation_format": "packed",
            "conformant": false,
            "cose_pqc_registry": {
              "ML-DSA-44": -48,
              "ML-DSA-65": -49,
              "ML-DSA-87": -50
            },
            "ctap_pqc_ready": false,
            "ctap_version": "2.0",
            "gaps": [
              "Target COSE algorithm (ML-DSA-65, ID -49) not in supported list",
              "CTAP version 2.0 < 2.3 — CTAP2.3 required for native PQC support"
            ],
            "hybrid_status": "legacy_only",
            "note": "DECISION-SUPPORT DRAFT. COSE PQC algorithm IDs from IANA COSE Algorithms Registry — verify current assignments. CTAP2.3 PQC requirement from FIDO Alliance CTAP2.3 specification — verify current version. ML-DSA COSE IDs may be updated as IANA registration progresses.",
            "reference_version": "2026-06",
            "supported_pqc_cose_ids": [],
            "target_cose_id": -49,
            "target_pqc": "ML-DSA-65"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-89-blockchain-quantum-risk-classifier",
      "tool_version": "1.0.0",
      "display_name": "Blockchain / Stablecoin Quantum-Risk Classifier",
      "mcp_name": "classify_blockchain_quantum_risk",
      "mandate_type": "model_governance",
      "wave": 18,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-89-blockchain-quantum-risk-classifier.html",
      "description": "Classifies quantum-exposure risk for blockchain/stablecoin assets: exposed public-key percentage, address reuse, and migration-path maturity (BIP-360/XRPL/Ethereum roadmaps). Reuses CBOM inventory from tool 499. Ties PQC to the suite's stablecoin/tokenization clusters.",
      "input_schema_ref": "chaingraph/art-89-blockchain-quantum-risk-classifier.html#manifest",
      "consumes": [
        "art-85-pqc-timeline-fit-diagnostic",
        "499-crypto-asset-inventory-classifier"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f075b3e27027e3b2ac21bd47aab935f60e01cef5e8892de2fcac74de6def21ea","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Kxs8g4lP18d9QxP6DhJ9NLGZHCoXvDIhUyUDK/ju0XUVA7Zasix4BoJpNnYertMv+fnu+br4UdeYSfquKIEi/wpa1UnZ13li9nryDVDGjWVS9V4hHyuXzow2mKBwrh8UEL5e+9pgCGmTh3h+bAODPfj9HU3ws0t3uxm/h1Ab3LAq5WUSAEO0d+X4Ch38wI+dZ0krL0TLUvgYMuqUHoxdkwWLlngINfqGJ3WSzvF3nDr2cQHORRYX4rQbA0WgXbVYFfaRuWMBAYsy0N42BhNqzhOkaHhdeh+2Hl1s7BtPtdMvIawg1qYNUaY9D6j5aR2YGq4GgtepHayi7ziupA+8lg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f075b3e27027e3b2ac21bd47aab935f60e01cef5e8892de2fcac74de6def21ea",
          "output": {
            "address_reuse_pct": 0,
            "asset_type": "L1",
            "bip360_status": "proposed",
            "exposed_pct": 0,
            "exposure_thresholds": {
              "high": 25,
              "medium": 10
            },
            "migration_readiness": "no_roadmap",
            "note": "DECISION-SUPPORT DRAFT. Exposure thresholds derived from Citi Digital Assets Research (May 2026) analysis approach — verify current publication. BIP-360 and chain-specific PQC proposals are evolving; verify current status at BIP tracker and respective chain governance forums.",
            "quantum_risk_tier": "low",
            "reference_version": "2026-06",
            "reuse_risk": "low",
            "roadmap_ref": {
              "bitcoin": "BIP-360 proposed",
              "ethereum": "EIP proposed",
              "xrpl": "roadmap discussed"
            },
            "signature_scheme": "ECDSA"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-90-sanctions-screening-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Sanctions & Export-Control Screening Fit Diagnostic",
      "mcp_name": "run_sanctions_screening_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-90-sanctions-screening-fit-diagnostic.html",
      "description": "12-param A-F diagnostic scoping a firm's sanctions/export-control screening program (50%-rule ownership, list coverage, fuzzy-match calibration, ECCN classification, circumvention controls) and routing to the right sanctions/export-control chain. Operates on program config only -- no real customer data.",
      "input_schema_ref": "chaingraph/art-90-sanctions-screening-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-91-ownership-50pct-aggregator",
        "art-92-screening-list-coverage-checker",
        "art-93-fuzzy-match-calibration-scorer",
        "art-94-eccn-dual-use-classifier",
        "art-95-circumvention-diligence-assessor",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:38748fbbd98786a5c965a54c809622a7dd0d1f193507e321aa3ad9fa9f06c178","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KRA2tbkWgc0Cmmp2JtF5ojhSozi3wrIX9g6t6bVensUcNmG48OrNqXh1J8dj5HgrvzVz8z9rb8BNspHkcYHU1isE35B/Y3WmgGZyw4ntB/M6ZmIAKtWwHmb/DlMfLpGaDbLWK1PSbJzZDPcG55i21F6F/8utSLiVBLHE+x0M/4gkuChlUi29JFBN9+KqUCCNaHRw8QIjgt0OsvByKmsrHC1Qwsc5EIld5sxa2VHB30NY/SWRGvft2P++leKLYvUHG/jPnaKMzQM+FIx6aZSmGYS1oB5UC7jJl4Ul7bGEFQEoas7jON3214p2doCN3G+7Iu6py9HganojqKyLqpRcng==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:38748fbbd98786a5c965a54c809622a7dd0d1f193507e321aa3ad9fa9f06c178",
          "output": {
            "always_route": [
              "sanc-audit-pack"
            ],
            "dim_scores": {
              "circumvention": 0,
              "fuzzy_match": 0,
              "list_coverage": 0,
              "ownership_50pct": 0,
              "screening_operations": 6
            },
            "gaps": [
              "Incomplete sanctions list coverage — missing: ofac_sdn, eu_consolidated, un, uk_sanctions",
              "No 50%-rule ownership screening — OFAC/EU/BIS constructive-blocking logic absent",
              "Fuzzy-match engine uncalibrated — FPR/recall not governed",
              "Alert review SLA not defined"
            ],
            "key_dates": {
              "bis_affiliates_rule": "2025-09-29",
              "eu_20th_package": "2026-04-23",
              "eu_dual_use_update": "2025-11-15",
              "uk_sanctions_list": "2026-01-28"
            },
            "note": "DECISION-SUPPORT DRAFT. Operates on program config only. No real customer data processed. Verify all regulatory citations against current OFAC/BIS/EU/OFSI publications.",
            "primary_recommendation": "Immediate escalation — screening program does not meet minimum standards under OFAC/EU/BIS requirements",
            "program_grade": "F",
            "raw_score": 6,
            "reference_version": "2026-06",
            "secondary_routes": [
              "sanc-ownership",
              "sanc-list-coverage",
              "sanc-fuzzy-calibration",
              "sanc-screening-quality"
            ]
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-91-ownership-50pct-aggregator",
      "tool_version": "1.0.0",
      "display_name": "Ownership 50%-Rule Aggregator",
      "mcp_name": "aggregate_ownership_50pct",
      "mandate_type": "compliance_mandate",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-91-ownership-50pct-aggregator.html",
      "description": "Walks a synthetic ownership graph; computes direct + indirect + aggregate listed stakes per node; applies OFAC, EU, and BIS Affiliates Rule (in force 29 Sep 2025) 50%-thresholds to determine constructively-blocked entities. Pure graph math, synthetic entities only.",
      "input_schema_ref": "chaingraph/art-91-ownership-50pct-aggregator.html#manifest",
      "consumes": [
        "art-90-sanctions-screening-fit-diagnostic"
      ],
      "feeds": [
        "art-92-screening-list-coverage-checker",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f1505eeba83572c78e56a22d102dca7aae6db7cbefab4c87b98653969f191037","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JsGu+4uG4EHtEFuujQc9OCOvHLaAumiJcYTqgVQMpO4ZyNrCJo6xkuLOfOu2x0nB6MTp9PjZUIqK4N9A9fWn0SOUx1ElcYGeLsVy8hi54d3K0R30mUBTlvO16y/p4p3GEf7A3kuCW2Vz81NbNvfNt0Se/X1iNkovaorriSTUBfEpxvrincG8h3oQPNzYut4c02/V5uAjNXcO3s+i7EMNtCpBrRjD/Ronfh7GGjUPzz8AJfTR4lnUY2k/pnr8kNKrFEVWsociStPVFKIvQsnk7qUEo5eMp/ZHVbBTi0UGGOgTyxaxtDyrRRwr80mB/kGgXfymWjpjrNYgYBGjwyZCVQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f1505eeba83572c78e56a22d102dca7aae6db7cbefab4c87b98653969f191037",
          "output": {
            "blocked_count": 0,
            "entity_verdicts": [],
            "listed_entity_count": 0,
            "note": "SYNTHETIC DATA ONLY. No real entities assessed. Verify OFAC/EU/BIS thresholds against current official guidance.",
            "reference_version": "2026-06",
            "summary": "Empty graph — no entities to evaluate."
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-92-screening-list-coverage-checker",
      "tool_version": "1.0.0",
      "display_name": "Screening List-Coverage Checker",
      "mcp_name": "check_screening_list_coverage",
      "mandate_type": "compliance_mandate",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-92-screening-list-coverage-checker.html",
      "description": "Conformance check: validates a screening config against the required-coverage matrix for EU consolidated + UN + UK Sanctions List (post-OFSI-closure 28 Jan 2026) + OFAC SDN with correct jurisdictional-nexus gating.",
      "input_schema_ref": "chaingraph/art-92-screening-list-coverage-checker.html#manifest",
      "consumes": [
        "art-90-sanctions-screening-fit-diagnostic",
        "art-91-ownership-50pct-aggregator"
      ],
      "feeds": [
        "art-97-sanctions-screening-quality-scorer",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d06a7bacc78c3440e850fc8bccdfc7b270f66c39e0a30d4696c558cf6e24e169","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LiQCeAX8hBKWmRnpl8zcXfSoGfQ57lmjUoFvGtSo1tsa9cfM7yNb1U/jfT3GOFfo9oP75VJTIWeJl3NGlboOaSilGpkn+JGNBpQAMPyQ6nGTrCFBiY2I9wgTmcUwWLtxCpPFoB63yW7SDRA09pegGwNLxNpMNHuU7phZ4/0zPuwAf6LVKoHQdTiSSS3yv73MCLS/SrXesvUPEzaj0KyF6Rm0oxJg/EwhsyjqsjcQrY3broUU2PZCOGAD2le68y6QK//oheMcSjiBQdZ+GcN+Ewkuvl+HCt4JF3OdFbpeDhUGP0J/PA5o6zpOA+8uKJ7Nuz+XqIFom/BI19Sf98odlw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d06a7bacc78c3440e850fc8bccdfc7b270f66c39e0a30d4696c558cf6e24e169",
          "output": {
            "coverage_grade": "F",
            "coverage_pct": 0,
            "missing_lists": [
              "ofac_sdn",
              "eu_consolidated",
              "un_consolidated",
              "uk_sanctions_list"
            ],
            "nexus_gaps": [],
            "note": "DECISION-SUPPORT DRAFT. Verify OFAC/EU/UN/UK list identifiers and refresh requirements against current official guidance. OFSI Consolidated List closed 28 Jan 2026.",
            "ofsi_migration_note": "UK Sanctions List is the sole UK authority since 2026-01-28. Remove OFSI Consolidated List from screening configs.",
            "reference_version": "2026-06",
            "refresh_adequate": false,
            "refresh_frequency_assessed": "weekly",
            "required_lists": [
              "ofac_sdn",
              "eu_consolidated",
              "un_consolidated",
              "uk_sanctions_list"
            ],
            "sectoral_lists_screened": []
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-93-fuzzy-match-calibration-scorer",
      "tool_version": "1.0.0",
      "display_name": "Fuzzy-Match Calibration Scorer",
      "mcp_name": "score_fuzzy_match_calibration",
      "mandate_type": "model_governance",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-93-fuzzy-match-calibration-scorer.html",
      "description": "Given a config (algorithm, threshold) and a synthetic labelled name-pair set, computes FPR/recall/F1, scores threshold quality, and recommends calibration. No real names -- synthetic fixtures only.",
      "input_schema_ref": "chaingraph/art-93-fuzzy-match-calibration-scorer.html#manifest",
      "consumes": [
        "art-90-sanctions-screening-fit-diagnostic"
      ],
      "feeds": [
        "art-97-sanctions-screening-quality-scorer",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:280862d6b27e8364c05290b99e446bb8938364dc1c03fb90835464743ef0cdc8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EFSQIbriow6Rm4hks4e3+mVPqOb/zuYLzD3lMrKqCgcbLUfGaoXknC48jF2iI224dxg+48x3Y5IIEXdwJM1rkRflhFi4Z1xMrFubJOPP2PIN+nUZZiyOveQSQgRyoJivHlxMAkPDiZ6YdsjR+WRJ5QufLHoterueTIThSsiTJ6AK/p6eqVhcdlX7xeAbpf8262cGZFhTcQdTjeUjIvAptRp5Jlebg8hPkP8nE1FhmmgFRelWdfWOEAisPuldJnFVEIGoiyW0sIt5qrTDEI94aK+LeY1fSuRzk5UDdnf+ymopQPVwa4iNQuewQnxqus8bNsn/g0tjCWZg6Z9hUK75xg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:280862d6b27e8364c05290b99e446bb8938364dc1c03fb90835464743ef0cdc8",
          "output": {
            "calibration_grade": "F",
            "f1": null,
            "fpr": null,
            "note": "No synthetic pairs provided — cannot calibrate.",
            "pairs_evaluated": 0,
            "recall": null,
            "reference_version": "2026-06",
            "threshold_recommendation": 0.8
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-94-eccn-dual-use-classifier",
      "tool_version": "1.0.0",
      "display_name": "ECCN / Dual-Use Classifier",
      "mcp_name": "classify_eccn_dual_use",
      "mandate_type": "compliance_mandate",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-94-eccn-dual-use-classifier.html",
      "description": "Decision-tree from product attributes to ECCN (EAR) + EU Annex I category + controlling regime (Wassenaar/MTCR/AG/NSG) + licence-requirement logic, including 2025 emerging-tech controls (quantum/semiconductor/AM/peptide). EU Annex I updated 15 Nov 2025.",
      "input_schema_ref": "chaingraph/art-94-eccn-dual-use-classifier.html#manifest",
      "consumes": [
        "art-90-sanctions-screening-fit-diagnostic"
      ],
      "feeds": [
        "art-95-circumvention-diligence-assessor",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:be06d9a1450ca87a837b96284af6b98dbae8ddc68d252ca54240734fc8e1d778","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DwMbPaMPu/HnevfXH+uR7ow9Jyx6xIj4xm82yFASeCkYBhhF1A28oYlltEyu2K3ALK9VmRqVCKnC7ns5+PBsHBEb53WG1VjtYbriPzTE9Fvh7hT+/IwUSFEZW2L1WdQlBz/xvLA6eZvEo5d8VrWKstaaEmpTOKo3zc0/NnsaZRQB0P5E23zwByl59Uq5YMqcx6FynqI5RA2C+dFIRTZMRxGn0jyht8nPcY7G9bhHlQMWvYViQ3M8HIn2tf/dmLxxMDaabT5Olq/Nk0rxudIctllEpo01NC+MmOpBT9Y9nB0jDTAxSCIfbZn+gYlQ3kys9Swh7jckGqW6EL0tUceSIw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:be06d9a1450ca87a837b96284af6b98dbae8ddc68d252ca54240734fc8e1d778",
          "output": {
            "classification_basis": "No controlled item attributes matched — defaulting to EAR99",
            "controlling_regime": "None",
            "eccn": "EAR99",
            "emerging_tech_note": "EU Annex I updated 15 Nov 2025 for quantum/semiconductor/AM/peptide controls. BIS emerging-tech rules in force. Verify current ECCN against 15 CFR Part 774 and EU Reg. 2021/821 Annex I.",
            "eu_annex_i_category": "Not listed",
            "key_dates": {
              "bis_affiliates_rule": "2025-09-29",
              "eu_dual_use_annex_update": "2025-11-15"
            },
            "licence_required": false,
            "note": "SIMPLIFIED DECISION TREE — decision-support draft only. Classification may be incomplete. Consult export counsel and the current EAR (15 CFR Parts 730–774) and EU Reg. 2021/821 Annex I for binding classification.",
            "red_flags": [],
            "reference_version": "2026-06"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-95-circumvention-diligence-assessor",
      "tool_version": "1.0.0",
      "display_name": "Circumvention Diligence Assessor",
      "mcp_name": "assess_circumvention_diligence",
      "mandate_type": "compliance_mandate",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-95-circumvention-diligence-assessor.html",
      "description": "Scores a transaction/contract config vs the EU 20th-package (23 Apr 2026) no-Russia clause + anti-circumvention due-diligence, emitting a liability-allocation verdict (seller liability-shift where DD documented under the safe harbour).",
      "input_schema_ref": "chaingraph/art-95-circumvention-diligence-assessor.html#manifest",
      "consumes": [
        "art-94-eccn-dual-use-classifier"
      ],
      "feeds": [
        "art-96-no-russia-clause-pack-builder",
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:75587c9e280c8c0b45a80f7846a3c176999cf769b7f62fd36dc96e732b79a75b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LeXQyntj5tlRc8qW/pxgjS87IrBrQiwiFIX3N6vZvjcExaprN6zpDri4+rT9uCk4CbdRSnTpFc4xDMIrco5mJgY5fl/2c/141Kx87vO6Ud0YzWSnfQPswklb2/emLK9ZCQcIEGrg5G5B8xrWj/Q2GAMN+jMA3NBs4A9tycY7hPcEPPnvqa0C+H98p8FA2mxfu9cYDm/RqLG4CcMgkpcz4BuFmyCwnqpE0C+w7I14L56b4zj2m9OgNB3ltyocrOWJJ9jVBkLymi6cpMCZKeHP5p9lzgnQnESXM65H1SPYUbcfLKKYBYpAHZzIB62Tn2Zo4kXg3ABnC4rwZNmk9jQNKQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:75587c9e280c8c0b45a80f7846a3c176999cf769b7f62fd36dc96e732b79a75b",
          "output": {
            "controlled_goods_flag": false,
            "dd_gaps": [
              "KYC on immediate counterparty not documented",
              "Ultimate beneficial owner verification not documented",
              "End-use certificate from buyer not documented",
              "Diversion-check (destination vs declared end-user) not documented"
            ],
            "dd_score_pct": 0,
            "diligence_grade": "F",
            "diversion_risk_flag": false,
            "eu_20th_package_note": "EU 20th sanctions package (2026-04-23) mandates no-Russia clause for controlled goods. Documented due diligence shifts liability to the buyer. Verify current scope against EU Official Journal.",
            "key_dates": {
              "eu_20th_package": "2026-04-23"
            },
            "liability_allocation": "not_applicable",
            "no_russia_clause_status": "absent",
            "note": "DECISION-SUPPORT DRAFT. Not legal advice. Consult EU sanctions legal counsel. Verify controlled-goods categories against current EU Reg. 833/2014 as amended by the 20th package.",
            "reference_version": "2026-06"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-96-no-russia-clause-pack-builder",
      "tool_version": "1.0.0",
      "display_name": "No-Russia-Clause Pack Builder",
      "mcp_name": "build_no_russia_clause_pack",
      "mandate_type": "disclosure_template",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-96-no-russia-clause-pack-builder.html",
      "description": "Generates the contractual no-Russia clause + DD-evidence checklist conformance artifact for the EU 20th-package seller-liability-shift safe harbour (Art. 12g). Standard and enhanced templates. Decision-support draft only.",
      "input_schema_ref": "chaingraph/art-96-no-russia-clause-pack-builder.html#manifest",
      "consumes": [
        "art-95-circumvention-diligence-assessor"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:cf2d6111233a0f8a580756c5e1c03e7832d67ddf9c6582393a9c90d819dbaa7a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Fb2dgXPveg4qPBMig1ndlcM9wyx2U1OtVFBV04OPavos0WiX9dZ+1Q0vmuXY5SUSTdStYyIT0xW+fVcoWIy74AK2G8zg/4udMtShPbPj7+taIU8v8i0DtpRyJBlcfWrbE9uKYVYI8GBYQyFzYLKAMDJZ4H78OBoaptMKShuqKWYPIteMZRA0eS5eJbuWXYWDamR+9LWNDNNHEbeCsP3kMScvyWuZYFCECscQgIegZgXmcASV0TSahDzei95O9hgVJstS8H4Z95XZAr3RWfo98KBItllDYjEN5vtJMtgArrYoqbcaTgdBhpLj2c/jRIA/tK06Fp0Ez+UIy0KB5HmFuQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cf2d6111233a0f8a580756c5e1c03e7832d67ddf9c6582393a9c90d819dbaa7a",
          "output": {
            "clause_text": "NO-RUSSIA CLAUSE (Standardised — EU Art. 12g, verify current text)\n\nThe Buyer and each subsequent purchaser, reseller, re-exporter or transferee hereby contractually undertake not to re-sell, re-export, transfer or otherwise make available — directly or indirectly — to any natural or legal person, entity or body in Russia or for use in Russia any of the Goods supplied under this Agreement.\n\nThe Buyer undertakes to notify the Seller immediately upon becoming aware of any actual or intended violation of the above undertaking, and to include a substantially equivalent contractual obligation in any sub-contracts for the onward supply of the Goods.\n\nThe Seller's liability for onward diversion shall be limited to the extent the Seller has exercised the documented due diligence set out in the annexed Due Diligence Checklist and has notified the competent authority in accordance with applicable EU sanctions regulations.\n\n[GOVERNING LAW] This clause is governed by England & Wales law and shall be interpreted in accordance with EU Council Regulation (EU) No 833/2014 as amended.",
            "completeness_grade": "F",
            "eu_20th_note": "EU 20th sanctions package (2026-04-23) Art. 12g mandates no-Russia clause for controlled goods. Documented due diligence enables seller liability-shift. Verify current text against EU Official Journal.",
            "evidence_checklist": [
              {
                "item": "KYC / onboarding file for immediate buyer",
                "required": true,
                "source": "Internal compliance",
                "status": "missing"
              },
              {
                "item": "Ultimate beneficial owner (UBO) verification",
                "required": true,
                "source": "UBO register / internal",
                "status": "missing"
              },
              {
                "item": "End-use certificate from buyer (signed)",
                "required": true,
                "source": "Buyer declaration",
                "status": "missing"
              },
              {
                "item": "Country-of-final-destination confirmation",
                "required": true,
                "source": "Buyer declaration",
                "status": "missing"
              },
              {
                "item": "Screening of buyer against OFAC/EU/UN/UK Sanctions Lists",
                "required": true,
                "source": "Screening system",
                "status": "missing"
              },
              {
                "item": "No-Russia clause executed in sales contract",
                "required": true,
                "source": "Contract file",
                "status": "missing"
              },
              {
                "item": "Evidence of buyer's downstream distribution controls",
                "required": false,
                "source": "Buyer compliance statement",
                "status": "missing"
              }
            ],
            "missing_required_items": [
              "KYC / onboarding file for immediate buyer",
              "Ultimate beneficial owner (UBO) verification",
              "End-use certificate from buyer (signed)",
              "Country-of-final-destination confirmation",
              "Screening of buyer against OFAC/EU/UN/UK Sanctions Lists",
              "No-Russia clause executed in sales contract"
            ],
            "note": "DECISION-SUPPORT DRAFT. NOT LEGAL ADVICE. Clause text is a standardised template based on EU Art. 12g. Consult EU-qualified legal counsel before executing. Verify current official wording against EU Official Journal.",
            "reference_version": "2026-06",
            "required_items_met": 0,
            "required_items_total": 6,
            "template_used": "standard"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-97-sanctions-screening-quality-scorer",
      "tool_version": "1.0.0",
      "display_name": "Sanctions Screening-Program Quality Scorer",
      "mcp_name": "score_sanctions_screening_quality",
      "mandate_type": "model_governance",
      "wave": 19,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-97-sanctions-screening-quality-scorer.html",
      "description": "Wolfsberg-aligned screening-program quality scorecard: list coverage + match calibration + alert tuning + escalation workflow + model validation -> composite program-conformance grade and improvement priorities.",
      "input_schema_ref": "chaingraph/art-97-sanctions-screening-quality-scorer.html#manifest",
      "consumes": [
        "art-92-screening-list-coverage-checker",
        "art-93-fuzzy-match-calibration-scorer"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2e0ba6416081ea51d9652a6c147199662063a9ba489b68691dc07d76f0701983","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GPz71ZERvflzJa6cGTU5N3lPC5cWBAohshKacQgrgQElOeTXE0vgnyUeW+d84oUGlh5F9Hqu/bsAUR/mbEBgCyb/P9G0tmfXKYzhdJwrGesppUegiRJR9RlYutXgpwlfEFu58VyrqBYzrONh5LInH+6VzofvqZ45P2w5eRBRjnAtPiwEbELPuFH05gPy8j+609ngF9ZsjhvwGjMfFgoNkgL1Qoi2fNeecGDw8jYn3AS4VuG7VrPnpv9zmBo6Wkx2KP+LzIf5BOmek5F13tPmDNkQbXtZgaXvtUCw3mth8UoGiWl7ocMq/+TRiBtwtAqJca2ssJBhwsJKvk78HbTkYw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2e0ba6416081ea51d9652a6c147199662063a9ba489b68691dc07d76f0701983",
          "output": {
            "component_scores": {
              "alert_tuning": 30,
              "escalation_workflow": 0,
              "list_coverage": 20,
              "match_calibration": 20,
              "model_validation": 0
            },
            "component_weights": {
              "alert_tuning": 20,
              "escalation_workflow": 15,
              "list_coverage": 25,
              "match_calibration": 25,
              "model_validation": 15
            },
            "composite_pct": 16,
            "improvement_priorities": [
              {
                "action": "Define and document alert review SLA and escalation path",
                "current_score": 0,
                "dimension": "escalation_workflow"
              },
              {
                "action": "Commission independent model validation of the screening engine",
                "current_score": 0,
                "dimension": "model_validation"
              },
              {
                "action": "Run sanc-list-coverage chain — remediate missing lists and nexus gaps",
                "current_score": 20,
                "dimension": "list_coverage"
              },
              {
                "action": "Run sanc-fuzzy-calibration chain — calibrate threshold to minimise false negatives",
                "current_score": 20,
                "dimension": "match_calibration"
              },
              {
                "action": "Review alert generation rules — calibrate suppression rules to reduce false positives without reducing recall",
                "current_score": 30,
                "dimension": "alert_tuning"
              }
            ],
            "note": "DECISION-SUPPORT DRAFT. Program grades reflect inputs only — comprehensive assessment requires examination of underlying evidence. Verify Wolfsberg/FATF/OFAC/OFSI guidance for current expectations.",
            "program_grade": "F",
            "reference_version": "2026-06",
            "wolfsberg_note": "Wolfsberg Sanctions Screening Guidance (2019) sets benchmarks across list coverage, match quality, alert management, and governance. Verify current guidance version."
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-98-mica-casp-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "MiCA CASP Fit Diagnostic",
      "mcp_name": "run_mica_casp_fit",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-98-mica-casp-fit-diagnostic.html",
      "description": "12-question A-F diagnostic scoping a crypto-asset service provider's MiCA Title-V lifecycle readiness (authorization, Art 67 own-funds, whitepaper, MAR-crypto, travel rule) and routing to the right MiCA chain. Config-only; ART/EMT-issuer cases route to existing stablecoin chains.",
      "input_schema_ref": "chaingraph/art-98-mica-casp-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-99-mica-transitional-deadline-router",
        "art-100-mica-casp-authorization-readiness",
        "art-102-crypto-asset-whitepaper-linter",
        "art-103-mar-crypto-surveillance-readiness",
        "art-104-tfr-travel-rule-batch-validator",
        "art-105-mica-token-service-scoper",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f3a4a041f414fd77b5a45a8fa5814804ca22ab1df00e883c54a47a0d3d676035","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IjGbycnvmgTFiA/brhDNj7ZnvXYeoKyTj40+8LBVrLkH897LXPKozYwG/EDzwhydaJSjrre1GL2saZD93a0mDRyaNZsLAqduga9uKO86cUtg44a2WbxNs2Nne+TVq+4HKGbqtmD3eUqnQpr/3F4KwVpkgVTK00cfSMa6ceC5KMcOx8qFvy/E10pgtrsfnJE0zng7F37xLLgz2Pn4qR871yTS5+O+T5CzUHEe5MoXiP2HHU4BOmEr1CLZWbeaEwXuC9nt2J1kwXL5NdbVb6xj22pC9mGjOxcN8eEdCzwAl1AmDRl6YdH9HD5jQ22WCdG0SPA6QpQQiHNLfvQLNf4v9Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f3a4a041f414fd77b5a45a8fa5814804ca22ab1df00e883c54a47a0d3d676035",
          "output": {
            "dim_scores": {
              "authorization": 0,
              "mar": 0,
              "own_funds": 50,
              "travel_rule": 0,
              "whitepaper": 100
            },
            "gaps": [
              "Authorization status requires improvement — pursue full MiCA authorization (Title V)",
              "Own funds status is non-compliant or unknown — quantify and remediate against Art 67 + Annex IV requirements",
              "Market-abuse arrangements incomplete — implement surveillance and reporting per Art 92 MiCA",
              "Travel Rule compliance incomplete — implement TFR (Regulation (EU) 2023/1113) controls"
            ],
            "note": "DECISION-SUPPORT DRAFT. MiCA Title V (CASP) applied 30 Dec 2024. Verify all thresholds against MiCA Reg. (EU) 2023/1114.",
            "primary_recommendation": "Critical non-compliance; assess whether continued operation is permissible under transitional provisions.",
            "readiness_grade": "F",
            "reference_version": "2026-06",
            "secondary_recommendations": [],
            "services_count": 0
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-99-mica-transitional-deadline-router",
      "tool_version": "1.0.0",
      "display_name": "MiCA Transitional-Deadline Router",
      "mcp_name": "route_mica_transitional_deadline",
      "mandate_type": "compliance_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-99-mica-transitional-deadline-router.html",
      "description": "Member-state transitional-deadline routing per Art 143(3) incl. the 30 Jun 2026 cliff (16 EU states). Emits exact end-date, window months, file-vs-wind-down decision, and filing preconditions.",
      "input_schema_ref": "chaingraph/art-99-mica-transitional-deadline-router.html#manifest",
      "consumes": [
        "art-98-mica-casp-fit-diagnostic"
      ],
      "feeds": [
        "art-100-mica-casp-authorization-readiness",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d8ddfc05bd855396319ce509d55e21199ea94e0933e893db6f293b964d64b21c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "J5o9bV3GHxxBayIpBChPhrYRe/f+DyFL0CfN45GKTXclhM0xlOV1ZE6mCfo0ewFvODY3PNjm4SKjFdO15Wg/vgVeq0cyXvpV36yjJcsQ9nKtxDNp/uLnAXLGDu1YHYrKHDveCwmEnWC09WwRxz0r6PG4236mMmQNLbYm2eAoh/QIKKDavzMskcEiEfKywKAFcN/cPnGN/sb1jUOCMKmqOCgJ8gC/RRVOXY/IfNUWDwnD0ZNxlOztFlbQCj0Lql69D0bm+qAaUzQ5KxsXY7+vdAG38EtL+TL2Qr8KN02Z8J8pgcIE/kdZDVGO0d0qrs2WqxMMzVnSxJqnssEoAd8qeg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d8ddfc05bd855396319ce509d55e21199ea94e0933e893db6f293b964d64b21c",
          "output": {
            "decision": "file",
            "file_by_preconditions": [
              "Submit authorization application to NCA before transitional end",
              "Ensure Art 62 application pack complete"
            ],
            "note": "DECISION-SUPPORT DRAFT. Verify current ESMA grandfathering list and national implementation against official sources.",
            "reference_version": "2026-06",
            "state_specific_notes": "Art 143(3) MiCA Reg. (EU) 2023/1114. ESMA grandfathering list includes 16 cliff states with 30 Jun 2026 deadline.",
            "transitional_end_date": "2026-12-30",
            "window_months": 6
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-100-mica-casp-authorization-readiness",
      "tool_version": "1.0.0",
      "display_name": "CASP Authorization-Readiness Assessor",
      "mcp_name": "assess_mica_casp_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-100-mica-casp-authorization-readiness.html",
      "description": "Scores readiness for MiCA CASP authorization (Arts 59-63): service-permission scope, governance/fit-and-proper, custody segregation, complaints/conflicts, ICT/DORA overlap. Gap score + Art 60/62 application-pack outline.",
      "input_schema_ref": "chaingraph/art-100-mica-casp-authorization-readiness.html#manifest",
      "consumes": [
        "art-98-mica-casp-fit-diagnostic",
        "art-99-mica-transitional-deadline-router"
      ],
      "feeds": [
        "art-101-mica-art67-own-funds-calculator",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:83af4fb729adb2375b158401895030ed23a4469569312c67aa80c1240640c70e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AVYQFU6QaQ91sZoRznbJerMx0sl2DUX3//7u5k0g5Z8Hnog2xodFApEpnmnO6WPDB+ar7HUTzBtnZa8YL6iG2h/LI+Ap9ygsf9YM1aQfAbFU+TRGI91VBtmH/ax5gpl5EvLdrUOgz5PPcgKwyLWMpB8jFKd2Kzv7HZsoezxj30EiVJIOpvAazikTDlLmQqZIYvzETYlqG5dctG730T6OShzJQgknIa8bPDckcxO2PKr9DyFj6tpv1h34E7XKc+7UAEzIPyFVA3Dw9FEKoR4Z/KWw4/mFQMXjS8NWtgJob7YCqB9al38+D2v1dhJqfZ/Jz4Oy4tmXaudvShIOhYrvUw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:83af4fb729adb2375b158401895030ed23a4469569312c67aa80c1240640c70e",
          "output": {
            "application_pack_checklist": [
              "Programme of operations (Art 62(2)(a))",
              "Governance arrangements (Art 62(2)(b))",
              "Internal controls description (Art 62(2)(c))",
              "Custody segregation evidence (Art 70)",
              "Complaints procedure (Art 71)",
              "Conflict of interest policy (Art 72)",
              "ICT risk framework (Art 62(2)(l))"
            ],
            "authorization_grade": "F",
            "composite_pct": 0,
            "dimension_scores": {
              "complaints_handling": 0,
              "conflicts_policy": 0,
              "custody_segregation": 0,
              "fit_and_proper": 0,
              "governance_board": 0,
              "ict_resilience": 0,
              "internal_controls": 0
            },
            "gaps": [
              {
                "area": "governance_board",
                "article": "Art 68 MiCA",
                "remediation": "Appoint qualified management body"
              },
              {
                "area": "fit_and_proper",
                "article": "Art 62(2)(e) MiCA",
                "remediation": "Document fitness and propriety of all relevant persons"
              },
              {
                "area": "internal_controls",
                "article": "Art 62(2)(c) MiCA",
                "remediation": "Implement internal controls framework"
              },
              {
                "area": "custody_segregation",
                "article": "Art 70 MiCA",
                "remediation": "Implement full client-asset segregation"
              },
              {
                "area": "complaints_handling",
                "article": "Art 71 MiCA",
                "remediation": "Define complaints-handling procedure"
              },
              {
                "area": "conflicts_policy",
                "article": "Art 72 MiCA",
                "remediation": "Define conflicts-of-interest policy"
              },
              {
                "area": "ict_resilience",
                "article": "Art 62(2)(l) MiCA + DORA",
                "remediation": "Align ICT risk framework with DORA"
              }
            ],
            "note": "DECISION-SUPPORT DRAFT. MiCA Arts 59-63 authorization. Verify current NCA requirements.",
            "notified_body": "Submit to home-member-state NCA per Art 59",
            "reference_version": "2026-06"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-101-mica-art67-own-funds-calculator",
      "tool_version": "1.0.0",
      "display_name": "Art 67 Own-Funds Calculator",
      "mcp_name": "calculate_mica_own_funds",
      "mandate_type": "compliance_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-101-mica-art67-own-funds-calculator.html",
      "description": "Computes MiCA Art 67 required own funds = higher of Annex IV permanent minimum (€50k advisory / €125k trading-platform / €150k custody-exchange) or ¼ fixed overheads. Checks CET1/insurance form eligibility.",
      "input_schema_ref": "chaingraph/art-101-mica-art67-own-funds-calculator.html#manifest",
      "consumes": [
        "art-100-mica-casp-authorization-readiness"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7128ee0185f75fbe40c14da89571121926b7e634ea5764267e21766fe999983b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LzStTBelfkljp09duEK1KUdcHaPRXFf2NdX5pNvOvb0iT2d4JfuLy2QJ6JZpm8/XjV77i8GavipUL4Wnln395Q33KCYS82qg9DLYJzLuZLr4ZtQS0C6idjc10HgTAXoEJY/zT3vUSnxfY1W9roy81TgaAfDQns526oeJ7HoYL+se6uvdqpWY/wE8YVeVPIEPU+PjrKp6Cz+STnNVqted6y+zlaWvwGq30G9zP3t9I+HSfGJNMxS/vvTF0H4gDW81HHHX6OokGGBTlIS0J91TU+kT3S9d2UTPusUeLvdPLJUmmMn2fbOQbh+/Bz5rf1aX3L3TNOQNIZD6gsGuyTJSXg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7128ee0185f75fbe40c14da89571121926b7e634ea5764267e21766fe999983b",
          "output": {
            "binding_basis": "permanent-minimum",
            "fixed_overheads_quarter": 0,
            "form_eligible": true,
            "form_note": "CET1 is the primary eligible form; insurance/guarantee are conditional (verify Annex IV)",
            "note": "Art 67 + Annex IV MiCA Reg. (EU) 2023/1114. Verify current thresholds.",
            "own_funds_held": 0,
            "permanent_minimum": 50000,
            "reference_version": "2026-06",
            "required_own_funds": 50000,
            "surplus_shortfall": -50000
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-102-crypto-asset-whitepaper-linter",
      "tool_version": "1.0.0",
      "display_name": "Crypto-Asset Whitepaper Linter (iXBRL)",
      "mcp_name": "lint_crypto_asset_whitepaper",
      "mandate_type": "compliance_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-102-crypto-asset-whitepaper-linter.html",
      "description": "Validates Art 6/8 whitepaper: Annex I section completeness + iXBRL/XHTML well-formedness + ESMA MiCA taxonomy structural conformance (ITS 2024/2984). Section gaps + non-compliance-register risk.",
      "input_schema_ref": "chaingraph/art-102-crypto-asset-whitepaper-linter.html#manifest",
      "consumes": [
        "art-98-mica-casp-fit-diagnostic"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0d1c9a8705e0308f72420985fe902d83fa6bf9181650ec1939bfcc4d60dfd150","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ds05Q9O0Ks+4eHdzSTklbbjl2IoiB0g87trb9qp8aCAZYQzKs4ixntNlyXmmV9+ZMkzDSCWmnhwziWNOI2+RpRO2EME7TvHbUSB2BcWyveesTCazBMnLS0fZLBpuHOsXA6ti24qLDw5r0pkivthGV1VPepbS3u3qkEmgCE+sZJIeV/FwVgWXSld+F/XZRkZP66sTe/U4KQFM6KzyrKDGqAX6MPQxKCQizUlR5fxPXbR61h0Y8B0bFdwHsGRBK8GyJJs0zKjs8xADzAwV8/VoOicjShmfQbsldms/prFADygDSR17WT9gNzKMWmktvlX7jMOOh5ULafemdZSJ2lPbSg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0d1c9a8705e0308f72420985fe902d83fa6bf9181650ec1939bfcc4d60dfd150",
          "output": {
            "annex_i_gaps": [
              "identity-of-offeror",
              "description-of-project",
              "description-of-crypto-asset",
              "rights-obligations",
              "technology",
              "risks",
              "principal-adverse-impacts",
              "conflicts-of-interest",
              "fees-and-charges",
              "regulatory-status"
            ],
            "conformance_grade": "F",
            "ixbrl_valid": false,
            "note": "Art 6/8 + Annex I MiCA Reg. (EU) 2023/1114. ITS (EU) 2024/2984. Decision-support draft.",
            "reference_version": "2026-06",
            "sections_checked": 0,
            "taxonomy_conformant": false,
            "taxonomy_note": "ITS (EU) 2024/2984 mandates iXBRL format + ESMA MiCA taxonomy. Verify current taxonomy version at ESMA portal."
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-103-mar-crypto-surveillance-readiness",
      "tool_version": "1.0.0",
      "display_name": "MAR-Crypto Surveillance-Readiness Assessor",
      "mcp_name": "assess_mar_crypto_surveillance",
      "mandate_type": "compliance_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-103-mar-crypto-surveillance-readiness.html",
      "description": "Scores market-abuse arrangements (Arts 86-92 + Dec-2024 RTS): PPAET (prevention/detection), STOR templates, insider lists, manipulation-pattern config on synthetic order batches. Readiness grade + STOR-template completeness.",
      "input_schema_ref": "chaingraph/art-103-mar-crypto-surveillance-readiness.html#manifest",
      "consumes": [
        "art-98-mica-casp-fit-diagnostic"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ccfc18748b7ec8fa614b64c2704c277dbf6424b1634d54850f579057588da7a9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Fo79sve2R3AuDKzi11kMJdPoDl35BYHOVjZktpfsKtErJRgEfzGiMgGMnXh/3aLmxeJ6Z6Gl75Gt61l4QbfcjwvsC1nngCgGohJRJlXbkWQblnjn0K2XTQcNyfkp+4QeKgFuDJ/MdNW22Pi2JQXCrUCNiiRSQB7O8/fDByUfbv0DAnZy1gbAvjj0ndj6kYHmvQg+hTjZvmZ8+wR4PbaDrDA/WGtS3dcGovIGjIxGaodHJoObEPBwgjj9Mydv9NX+EogKIwxov6XRv7xH4ot2uB6E5OoxA+zttm2gBMIb/WUba5SDzDd+OpabD2xnnHtMoPs2V5TuvKT9QBX3b4IevQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ccfc18748b7ec8fa614b64c2704c277dbf6424b1634d54850f579057588da7a9",
          "output": {
            "arrangement_scores": {
              "insider_list": 0,
              "manipulation": 0,
              "ppaet": 0,
              "stor": 0
            },
            "assets_in_scope": 0,
            "composite_pct": 0,
            "gaps": [
              "ppaet",
              "stor",
              "insider_list",
              "manipulation"
            ],
            "mar_rts_note": "ESMA MAR-crypto RTS finalised 17 Dec 2024 (ESMA70-472101844-4975). Arts 86-92 MiCA Reg. (EU) 2023/1114.",
            "note": "Assessed on synthetic order/trade configuration only. No real transaction data. Decision-support draft.",
            "ppaet_status": "none",
            "reference_version": "2026-06",
            "stor_ready": false,
            "surveillance_grade": "F"
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-104-tfr-travel-rule-batch-validator",
      "tool_version": "1.0.0",
      "display_name": "TFR Travel-Rule Batch Validator",
      "mcp_name": "validate_tfr_travel_rule_batch",
      "mandate_type": "compliance_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-104-tfr-travel-rule-batch-validator.html",
      "description": "Validates originator/beneficiary field completeness on synthetic/hashed transfer batches (self-/cross-CASP + unhosted-wallet branches) per TFR recast Reg. (EU) 2023/1113. Batch conformance + Merkle root. No real PII.",
      "input_schema_ref": "chaingraph/art-104-tfr-travel-rule-batch-validator.html#manifest",
      "consumes": [
        "art-98-mica-casp-fit-diagnostic"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5d9d7105b7d6a2e1265f3c02ee2c2b2bb573c7d0e5fc816dac04771392117b30","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FzHPLAOFx4uhSzd3wwSLMYvOj2dR2rw+iivSSBVmRwQbteFfzjgkPqULN2bApLeKTVGg0YbhIl8st8dZt0x/FQpukiy73TnGd+4pYfcyDtrY+xtnM2HNuRy8JczqQoh/HJVfK0rtxXG7O2vGI4v6IWM97UDTvnZ0GEPKMMvrFIQfrKDfHfrZomHpb4UoMVOafFw35gpL79c3fhSExV8NOijDcElbvCaIegQBCWSSiOuqH1LdWvrTpq1hFTHMUGTMA48hQtUPvhOj8ARarm6TYgZzcdwstKAvXi9FROTFHDgWPJ2n8TqGVZvNGX9gsxzMvq5OZmp6s+eZEQ1XvDqtiw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5d9d7105b7d6a2e1265f3c02ee2c2b2bb573c7d0e5fc816dac04771392117b30",
          "output": {
            "batch_conformance_pct": 100,
            "batch_size": 0,
            "merkle_root": "sim-root:00001505",
            "note": "Operates on synthetic/hashed transfer data only. No real PII. Decision-support draft.",
            "reference_version": "2026-06",
            "tfr_note": "TFR recast Reg. (EU) 2023/1113 applied 30 Dec 2024 (technical transitional ended 31 Jul 2025). Unhosted wallet enhanced DD per Art 19(2).",
            "transfers_flagged": [],
            "unhosted_dd_required_count": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-105-mica-token-service-scoper",
      "tool_version": "1.0.0",
      "display_name": "MiCA Token & Service Scoper",
      "mcp_name": "scope_mica_token_and_service",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 20,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-105-mica-token-service-scoper.html",
      "description": "Disambiguation router classifying a case as ART/EMT-issuer (delegated to existing stablecoin-compliance chains) vs CASP-service (MiCA chains). Prevents Title III/IV vs Title V overlap; packages the MiCA suite.",
      "input_schema_ref": "chaingraph/art-105-mica-token-service-scoper.html#manifest",
      "consumes": [
        "art-98-mica-casp-fit-diagnostic"
      ],
      "feeds": [
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d0eebd3034d330eb5b1a17311674632a9254db5a191bde8f9508ca7f16d2b615","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "E5z2N0vd0AYgbeZ3mG/WHF9cJuiiyiHRvrjxJBCCBjoeU7DrF2PgizlarzA9PvxDA2InCPbaGA90VLjHGRMG9giuDcUYVevuP12+/JuNn56E0RwfLepOQO1YUwnGqj8uLaPtP2ACw/Z/WjPCCW5pwtzsTYCSehUk14C4/E6T/k8JJg1CpInqL45C8kt7j9VVOI+jSC2QRjJMy444pYhbHhBws7R5sgqz318TOi5vRwIaw3+hGSY2yrNRESI8zZkIKhZ9uinU2nyqdtBtpIb80h388MwKYRH3jSI5gKUbQsoMzQmuLM55x+XsUvbdPzU64wEGy9J1bzKPqUwhLDgZNQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d0eebd3034d330eb5b1a17311674632a9254db5a191bde8f9508ca7f16d2b615",
          "output": {
            "classification": "CASP Service Route",
            "delegated_to_existing": false,
            "existing_chains_delegated": [],
            "mica_note": "MiCA Reg. (EU) 2023/1114: Title III = EMT issuers, Title IV = ART issuers, Title V = CASP service providers. Different licensing tracks.",
            "rationale": "Providing crypto-asset services over other/utility tokens falls under Title V CASP licensing. Wave 20 chains cover CASP authorisation, transitional periods, MAR surveillance, and travel rule compliance.",
            "reference_version": "2026-06",
            "route_target": "wave20-mica-chains",
            "wave20_chains_applicable": [
              "mica-casp-authorization",
              "mica-transitional",
              "mica-whitepaper",
              "mica-mar-surveillance",
              "mica-travel-rule"
            ]
          }
        }
      },
      "export_capability": [
        "pdf"
      ]
    },
    {
      "tool_id": "art-106-tempo-subscription-reconciler",
      "tool_version": "1.0.0",
      "display_name": "Tempo Subscription & Streaming Settlement Reconciler",
      "mcp_name": "reconcile_mpp_subscription",
      "mandate_type": "settlement_mandate",
      "wave": 21,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-106-tempo-subscription-reconciler.html",
      "description": "Reconcile executed MPP recurring/streamed draws against the authorized mandate envelope, prove draw-set integrity via Merkle root, and detect per-cycle cap breaches, cumulative-cap violations, and mandate-expiry/revocation breaches. Distinct from tempo-mpp-agent (pre-execution authorization): this audits the post-execution draw lifecycle.",
      "input_schema_ref": "chaingraph/art-106-tempo-subscription-reconciler.html#manifest",
      "consumes": [
        "art-36-tempo-mpp-agent-mandate"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1995b8044643af3b0040b0141b607050d90479fefaa911f9b9134eecc99cf250","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BkQ5xQpVaetx4TNjre8T2q4trOLdqSig/QlLGil+DDwwIhNbQw7lMp4p+fRI/DR4nSztHcxqKVLvgKgNqb8pvRQ/1KkgmcveYlMPTgMk8o0abip+7yb/VDxl08pZV9EjHeO1tAUgdyZ4kQyJH021wJJ5XvctdQG6+KktM7dBIp0LDnXvtcqM/pZf4HFkviR5zdDrxNqzGKeKUzGfQyb0qx8ecQMBX0yKTnZCTR/CAoYO7B6gzxvCfJ94boDeYeryL9RWerwpzuhEF1mpoC1RP7mzUVBkfyYEBmAsByAtO1UBmu+H351jfAU1u5s+b9MgAF6OtEU5Dix99gNEHewOFg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1995b8044643af3b0040b0141b607050d90479fefaa911f9b9134eecc99cf250",
          "output": {
            "breaches": [],
            "cumulative_ok": true,
            "cycles_ok": true,
            "draw_count": 3,
            "draw_merkle_root": "leaf-commit:3:74",
            "residual_envelope": 735,
            "total_drawn": 265,
            "verdict": "CONFORMANT"
          }
        }
      },
      "export_capability": [
        "csv",
        "xlsx",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-107-tempo-gas-economics",
      "tool_version": "1.0.0",
      "display_name": "Tempo Fee-Sponsorship & Gas-AMM Economics",
      "mcp_name": "model_tempo_gas_economics",
      "mandate_type": "treasury_mandate",
      "wave": 21,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-107-tempo-gas-economics.html",
      "description": "Model Tempo enshrined-AMM gas cost paid in any major stablecoin, server-paid fee sponsorship, and net per-tx saving vs card/SWIFT/ACH baselines. Tempo has no native gas token and uses an enshrined protocol AMM, not ERC-4337/Paymaster (art-46). Outputs blended gas cost, sponsorship break-even volume, annual saving, and CFO memo. Its flat per-tx gas constant predates Tempo's mainnet launch and is not TIP-1010 verified: TIP-1010's published mainnet base fee targets close to $0.001 for a standard TIP-20 transfer, over three times this model's constant. For a mainnet-accurate, TIP-1010-cited fee calculation, see art-389-tempo-mainnet-fee-capacity, the successor node.",
      "input_schema_ref": "chaingraph/art-107-tempo-gas-economics.html#manifest",
      "consumes": [
        "art-35-tempo-payments-business-case"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:73a3fb7dd9a7cccfa836d175216241be5000575c71fbea673621cf661401b806","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EOlyaV849M6Z0atBhnJqsdxwx+Huhn4W0f/kEuQIL3EHRjllLRQO6Jj8NZCbw/6CLVPoBnHYzE62sv/IWU79cxNFHhv70hOTG4V8aejgk+G62TOlTb2nrY3wyQNWfwjHKaiwftGH7klaMvbbRPfqcCnuhbRH7PYRuk5YnFtjqCEGKL7ieTk4l5GjVRweoHSIqdeTK4N5cj3IDZhk9G/pdwkuabDcZIqM9k9exKyZJEQIQ9L+yjFkZ9gYgWSSmhDCHh+EDi8/87KilnD3kP72zQh2OnIttjtjda2MIDlXGPYlnjrvUGS6ciFBBUBhwfRlRckuPX3SMH2UaS9Agdk6Yw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:73a3fb7dd9a7cccfa836d175216241be5000575c71fbea673621cf661401b806",
          "output": {
            "amm_slippage_bps": 0.9,
            "annual_saving": 22799694,
            "baseline_fee": 19,
            "blended_gas_cost": 0.00030003,
            "cfo_memo": "Tempo effective gas $0.000255/tx (15% server-paid via enshrined AMM). Saves $18.9997/tx vs SWIFT ($19.0000/tx). Annual saving: $22.80M on 100,000 tx/mo. NOTE: Tempo has no native gas token and uses an enshrined protocol AMM — not ERC-4337/Paymaster (art-46).",
            "effective_cost": 0.00025503,
            "per_tx_saving": 18.999745,
            "server_paid_pct": 0.15,
            "sponsorship_breakeven_tx": 1000000000
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf"
      ]
    },
    {
      "tool_id": "art-108-canton-selective-disclosure",
      "tool_version": "1.0.0",
      "display_name": "Canton Selective-Disclosure DvP Reconciliation Attestation",
      "mcp_name": "validate_canton_selective_disclosure",
      "mandate_type": "attestation_mandate",
      "wave": 21,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-108-canton-selective-disclosure.html",
      "description": "Attest that a Canton DvP privacy partition is sound: each counterparty sees only its leg, no cross-leg data leaks, and both views reconcile to one shared commitment. Optional Ed25519 §​16 proof gives each party a non-repudiable attestation its partial view reconciles without seeing the counter-leg: the Canton selective-disclosure differentiator.",
      "input_schema_ref": "chaingraph/art-108-canton-selective-disclosure.html#manifest",
      "consumes": [
        "507-canton-dvp-atomicity-validator"
      ],
      "feeds": [
        "cry-01-zk-compliance-proof-generator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a255de01b67ae52790e981e245331dbb46ba3aeeec9c86f951688603f24bff64","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G1VqeIz89Sv/A6sC4aOrRRTjaxBbeAPszhU5ba7T4A4CB7P12Qo4hi1K+yDtj6rYzKbfT0eMG/SsVqZ2Zc9pzxj8sq+PxpZX7XPp8LW2ZDnD7DEdOXp7TU+hfRySUrsMGU+Hhk2dY9nliCv4qannAB1VjqOKHWthW3YqRuGJfiwq2perRHGiZlNL665yZjzDTzDhiadZO4JjpE/gu1/owwFtrILwrVAmMsnqkJM3ty+QYULEz0ZMjbEiSQ9MNJq3LpB25thgZNAOZwL0LOr1fE4J8Ne/sZS+wcSpeIUkkR8W1GGtakIb40puQE+TaSosLqVX3L6YxfkRes9ICveivA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a255de01b67ae52790e981e245331dbb46ba3aeeec9c86f951688603f24bff64",
          "output": {
            "bank_view_ok": true,
            "cross_leak_fields": [],
            "no_cross_leg_leak": true,
            "partition_attestation": "asset-visible:registrar;cash-visible:bank;commitment:hash:abc123def45",
            "reconciles_to_commitment": true,
            "registrar_view_ok": true,
            "verdict": "PARTITION_SOUND"
          }
        }
      },
      "export_capability": [
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-109-dtc-tokenized-treasury",
      "tool_version": "1.0.0",
      "display_name": "DTC-Custodied Tokenized U.S. Treasury Issuance & DvP",
      "mcp_name": "validate_dtc_tokenized_treasury",
      "mandate_type": "compliance_mandate",
      "wave": 21,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-109-dtc-tokenized-treasury.html",
      "description": "Validate a DTCC/ComposerX tokenized U.S. Treasury for issuance and atomic settlement: DTC-custody linkage, Fed eligibility, ComposerX DAML lifecycle coverage (issuance→corporate-actions→redemption), atomic-DvP readiness, and programmable-collateral-at-issuance. Treasury/DTC-custody-specific; not generic securities lifecycle (512) or FICC clearing economics.",
      "input_schema_ref": "chaingraph/art-109-dtc-tokenized-treasury.html#manifest",
      "consumes": [
        "510-digital-asset-regulatory-classifier"
      ],
      "feeds": [
        "507-canton-dvp-atomicity-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1064b510a277f498468a1e9a05d051d01137cda668f04abae974c0db753376fc","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I98x3CpQcRBBntR1H58XsiRE0C56GVwISN7RHrGc7QodHDsVPeiC25ruKEEOnII64KK+iE0vO7YtYnCWZ5t/txJtfZ61A5idM+1fzwwvzi4chRRH0OboLpb7S3N8vIi0DoKO3M1KblLMDNjcxx0DiqDHzTc96Bh+o/b9XHVaOS8hswlv4tp7+TBAViI+oROyCGXrNyBhJNIsQgmCxmJiYSWBGrHXx7wQkFgfS3+K2xQuNUdCugBqMijBAEw6wO02IPM6k9M7fGwzpjsSlpDu4GSOPvDtFEipzZgBsonvhY4UBozmcAPthXNWZaQ+QZDlwGPayB9c4zjvXvdSwj68IA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1064b510a277f498468a1e9a05d051d01137cda668f04abae974c0db753376fc",
          "output": {
            "collateral_reuse_ok": true,
            "custody_link_ok": true,
            "daml_lifecycle_gaps": [],
            "daml_template_ok": true,
            "dvp_ready": true,
            "fed_eligible": true,
            "verdict": "ISSUANCE_READY"
          }
        }
      },
      "export_capability": [
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-110-arc-partner-stablecoin-onboarding",
      "tool_version": "1.0.0",
      "display_name": "Arc Partner Stablecoin Onboarding Conformance",
      "mcp_name": "score_partner_stablecoin_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 21,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-110-arc-partner-stablecoin-onboarding.html",
      "description": "Score a non-USD stablecoin issuer readiness to join Circle Partner Stablecoins on Arc against technical/operational, reserve-management, and risk-management standards. Outputs an A–F composite grade, gap list, and eligibility verdict. Optional Ed25519 §​16 proof produces a conformance attestation verifiable by Circle or a supervisor. Distinct from arc-xreserve-issuance (USDC/GENIUS issuer path).",
      "input_schema_ref": "chaingraph/art-110-arc-partner-stablecoin-onboarding.html#manifest",
      "consumes": [
        "art-42-arc-fit-diagnostic"
      ],
      "feeds": [
        "art-45-arc-xreserve-linter"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4c76567c95da056626e68881f858c95c745ad333d94f0fbe078b53ac95ca3f49","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "E3bu/t59vYUol/d2piFq6NsOeG4NYutYYjXHAXBdY+YnR/QyMRQ329dw3Go8D26RQ1DPucV/e8ltT7IyWC5PfB9U5mabq7NX/VvfXAnUw/nOAnxxIiappemp1Sb7anV+DdpDimbQvhZOufCAulkGsAIh97OWNnT8h5g6DfCFCF0EX/Erh/jsoMTW+B5OCaO4PW5bSVgrOMjgOTo9qzcrhAp1fde74J/igwIn+4VP3GjmUHtXYjNEZSWPpGSn4WUEBVwHNhZLOUOeklAaXwu7qpcud3LVddDo/US0FebEF00S2tdvWy5ofGd7og4l2fgVRnmGkPadfw5b/iiA5GxJww==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4c76567c95da056626e68881f858c95c745ad333d94f0fbe078b53ac95ca3f49",
          "output": {
            "ccy": "EURC",
            "composite_grade": 100,
            "eligible": true,
            "gaps": [],
            "grade": "A",
            "home_regime": "MiCA-EMT",
            "reserve_score": 100,
            "risk_score": 100,
            "tech_score": 100,
            "verdict": "ELIGIBLE"
          }
        }
      },
      "export_capability": [
        "csv",
        "pdf"
      ]
    },
    {
      "tool_id": "art-111-arc-corridor-jurisdiction-router",
      "tool_version": "1.0.0",
      "display_name": "Arc Multi-Currency Corridor Jurisdiction Router",
      "mcp_name": "route_partner_stablecoin_jurisdiction",
      "mandate_type": "compliance_mandate",
      "wave": 21,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-111-arc-corridor-jurisdiction-router.html",
      "description": "Route each leg of a multi-currency Arc corridor to its per-currency home regime (EURC→MiCA EMT, JPYC→JP FSA, BRLA→Brazil CMN/BCB, MXNB→MX CNBV, etc.), flag missing per-regime disclosures, and emit PvP handoff (511) + Travel-Rule batch handoff (art-104). Compliance/settlement routing only; FX economics handled separately by the Arc StableFX chain.",
      "input_schema_ref": "chaingraph/art-111-arc-corridor-jurisdiction-router.html#manifest",
      "consumes": [],
      "feeds": [
        "511-multi-currency-pvp-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:71061d2cb76db82787091a1621aabb6fdba5b88d31db5d6b378f9ea1b5826f72","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FNXts/8wIFXp1pMTS+Bn+e3o6JpUKw/EGCkM1SjaL5AmzV/RxKRFpMcR7dL98NN5fzieeTNm+M1ZeGQ7R8NUtxxm2JIliDhq2VPQz0REyI1vyRgExkXrIN6yoNjm8BQrIvQD1rX7cuZrcci13ySMQFEAeT/hDsMw9B7NEcGqs04tL4ZEWzTj9WfmjnYUtC69qfFa5U/XiATA7CiMfpc/VBQ9YOzos0II6Bxs/WQeABfLXh/zmgJhxYslRtL52Da9Kg7820EPCpAQzbjGmyrOmf29TWrsw7aIWMTVYt8KMkIZotjaCLZ0yyVISwzAVr1KAjbVvyTIm60rk9+llul6mw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:71061d2cb76db82787091a1621aabb6fdba5b88d31db5d6b378f9ea1b5826f72",
          "output": {
            "disclosure_gaps": [],
            "leg_regimes": [
              {
                "ccy": "EURC",
                "ccy_pair": "USD/EUR",
                "disclosures_required": [
                  "EMT_whitepaper",
                  "reserve_attestation_monthly",
                  "MiCA_Art21"
                ],
                "notional": 500000,
                "regime": "MiCA-EMT",
                "regulator": "EBA/NCAs"
              },
              {
                "ccy": "JPYC",
                "ccy_pair": "USD/JPY",
                "disclosures_required": [
                  "PSA_registration",
                  "fund_segregation",
                  "JP_crypto_reporting"
                ],
                "notional": 300000,
                "regime": "JP-PSA-FSA",
                "regulator": "Japan FSA"
              }
            ],
            "pvp_handoff": {
              "leg_count": 2,
              "regimes": [
                "MiCA-EMT",
                "JP-PSA-FSA"
              ],
              "tool": "511-multi-currency-pvp-validator"
            },
            "travel_rule_handoff": {
              "currencies": [
                "EURC",
                "JPYC"
              ],
              "leg_count": 2,
              "tool": "art-104-tfr-travel-rule-batch-validator"
            },
            "verdict": "ROUTING_COMPLETE"
          }
        }
      },
      "export_capability": [
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-112-dscsa-transaction-statement-verifier",
      "tool_version": "1.0.0",
      "display_name": "DSCSA Transaction Statement (T3) Verifier",
      "mcp_name": "verify_dscsa_transaction_statement",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-112-dscsa-transaction-statement-verifier.html",
      "description": "Verify the DSCSA T3 set (Transaction Information + History + Statement) completeness, validate the GS1 SGTIN, and map the EPCIS 2.0 event type. Feeds the saleable-returns verifier (art-113). DSCSA §582: enforcement live since Aug 2025.",
      "input_schema_ref": "chaingraph/art-112-dscsa-transaction-statement-verifier.html#manifest",
      "consumes": [],
      "feeds": [
        "art-113-saleable-returns-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:050a30a2760caae0cac020f44dd26cfe3f9be9ec02e89386c12b22dbe18f791c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "B5utL8FdQ/bW3fjawzOqAwKDadE+j/4Kwv+SMaeLiqMlYlZv8ZOL5p8ld8qBtEsuOXvOVtPEDQKt4Xsr//Sz1gOtKML5SLCpzai1llYbQTFXmBOPBwVW9cMrAHl/x92QGEuctdgQFHy9bT9sHHUOwunELai08xqEAXWYYbhjp2Aspkf8HykG81w8t1JDDe1hlkkcMo9/EUjg02qhFVau/BF8NTVEAFUK0/aMG6lOLG+SeBxwspaGIy2rKpOmi5lzG48b2noOzwpfj96GNTYrzi4jc2ZgPIAKYQ0I0q3pM80NE5Pzzrfla+QE7U1tLUyw9NVOtLaQ/F/lbfupJbeHgQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1d5ee002c4db9725dc83a7fb7484a755b9fd0852fca797fac2f171760fc742b9",
          "output": {
            "epcis_event": "shipping",
            "identifier_valid": true,
            "missing_elements": [],
            "t3_complete": true,
            "transaction_date": "2026-06-01"
          }
        }
      }
    },
    {
      "tool_id": "art-113-saleable-returns-verifier",
      "tool_version": "1.0.0",
      "display_name": "DSCSA Saleable Returns Verifier",
      "mcp_name": "verify_saleable_return",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-113-saleable-returns-verifier.html",
      "description": "Match a returned unit SGTIN+lot to its original transaction hash (DSCSA §582(c)(4)(D)). Unauthorized trading partner or mismatched SGTIN/lot → REFUSE. Feeds suspect-product assessment (art-114).",
      "input_schema_ref": "chaingraph/art-113-saleable-returns-verifier.html#manifest",
      "consumes": [
        "art-112-dscsa-transaction-statement-verifier"
      ],
      "feeds": [
        "art-114-suspect-product-quarantine"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:37fb88e02fb51dff2a85a09a2f98bcba462e1ed90a7dbd5612953ffa0a61c8b0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AxVVVvv12JeUo5wxFwl19BctIAhupzCpK/3MscWZkqEuVeo5SP0J1S4BLSf3vZlZ2lHM4IS2iTk0j3N3tP4cKC5ZqgTeeXV6+kQfOKVM/EjuZthZpoQECBU4YeQib1DPI0VQEqJp4/dtQ2hgGxx6lRKY95HwldnSRiOFXUKQIHQMpREXtgYeTf2616oP4G2rmgt5Je736O8FhGusJR+qFSGmlupbcK8V45i+KsoxDkFVqiQNyN98HrEyaAnqzG7rJYnLi3+EfFhttb1QrTUdk2bDYjNVKNXg5VGrrhd+WwYbkJxWHzIqE2umLQ2W3/RFFfr37xdciiAgfG9YxJMlTQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:729173d57d332c1cfad3ee91132653a280366ac7a1df3411807e83441966cdfc",
          "output": {
            "id_match": true,
            "lot_match": true,
            "match": true,
            "reason": "VERIFIED",
            "txn_anchored": true,
            "verdict": "ACCEPT"
          }
        }
      }
    },
    {
      "tool_id": "art-114-suspect-product-quarantine",
      "tool_version": "1.0.0",
      "display_name": "DSCSA Suspect/Illegitimate Product Quarantine Assessor",
      "mcp_name": "assess_suspect_product_status",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-114-suspect-product-quarantine.html",
      "description": "Determine suspect vs illegitimate product status and required actions (quarantine, investigate, 72-hour FDA Form 3911 notification, trading partner notification). Terminal stage of pharma-serialization-custody chain.",
      "input_schema_ref": "chaingraph/art-114-suspect-product-quarantine.html#manifest",
      "consumes": [
        "art-113-saleable-returns-verifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:69c6f567735fc1a35f728f1f226793ff94b9664813a2c9dfbcfe3569c93f1ed6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GG2tdCNjDuBmJdwvRUmVAdsSvkVkiQdevfHGXMVe3HsbSZI1Qr9FYGmABZ+GJGcZ2Zv/tMWXq3zQw4H2DGcS+Rrm0aK/X6AH3FAFqt5DoY6VbMM9IUGLksk4zFK/ZVKhByd56Z9h0iD8vWwETJEcB1ca3uJaJapRNSfSZZKXwyAtEc4SjGmGusdWkR3naFHAYjlda7JBQrhJLvP+L4uvLgPY724aERqmuMOyk1lHr6K4an+o21ZvKYmL96ik6cElC5SIPamaWIxalM2Hjcfhc8dDCpxs0Jd6eATqFmJO4nMEbfGzhA7IDVYSkNbTwZnxKnXbRrIek/Cq6j+ZB5h5tA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:258b2e44b79459a3d4280a1ad5f6afe3433e0c21930445037643dbe3e12dd1ae",
          "output": {
            "required_actions": [],
            "status": "CLEARED"
          }
        }
      }
    },
    {
      "tool_id": "art-115-dpp-data-carrier-validator",
      "tool_version": "1.0.0",
      "display_name": "EU ESPR Digital Product Passport Data Carrier Validator",
      "mcp_name": "validate_dpp_data_carrier",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-115-dpp-data-carrier-validator.html",
      "description": "Validate DPP required data elements against the CIRPASS-2 Core Ontology (durability, reparability, recyclability, carbon footprint, substances of concern) and check GS1 Digital Link data-carrier type. EU ESPR: Central DPP Registry live 19 Jul 2026.",
      "input_schema_ref": "chaingraph/art-115-dpp-data-carrier-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-116-product-lineage-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7d2f0c60cd204d6e7a54daef6611623df431e3924739025376b1277e3461c343","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LCw5zDfFQUFwUunpd9xAPHUud3krT1jvM2/NdhdKVgQg8cJaEcOmvzY61pkLz2ZOvae+Q2XeKjm6VR0JzHIefwH+eoq45pFSHh/YYnPeenZxxLGXl7ftrfqK8utHVx0XLdBGpnFrBF2y0FyYkUY5GHU8N2DbZaFRjcfuBXt9MjoN9jrS/UUfpr5NLs1uRGCKZod7qSPthbq/tDFwMY83qxVbMikOEzmtt+Mr7SGSbwOlY+KeW4RJ/j0NIRwof7OSFFcgs9iCLwOV8eBY1OdqgmNYCO7hXL/GBpMOUewxGfItk8weJQCvHFadZ4Xi0t1sg0yEAWbj3NwTOUHmV1AJvQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b99f343ddb9cccfc0418ca637063fbae8f36353ed28761e54963886a0d8e9efe",
          "output": {
            "carrier_valid": true,
            "missing_elements": [],
            "ontology_conformant": true,
            "ontology_version": "CIRPASS-2-2025-03",
            "product_id": "GS1-DL-8712345678901"
          }
        }
      }
    },
    {
      "tool_id": "art-116-product-lineage-builder",
      "tool_version": "1.0.0",
      "display_name": "Digital Product Passport Cradle-to-Gate Lineage Builder",
      "mcp_name": "build_product_lineage",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-116-product-lineage-builder.html",
      "description": "Build a cradle-to-gate supplier lineage with hash-only claims per stage (no trade secrets). Each stage carries a supplier_hash anchor, dataVersion-pinned certification, and carbon_value. Aggregates total carbon deterministically.",
      "input_schema_ref": "chaingraph/art-116-product-lineage-builder.html#manifest",
      "consumes": [
        "art-115-dpp-data-carrier-validator"
      ],
      "feeds": [
        "art-117-product-authenticity-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:c90285303f490a09ce2e73fc197bc99fb23ca31e2db96426f18f373ba021c574","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FlqYLEKG7M56js1P375Y9Npx5iyc4+1Dz/WKfVn66V0D3jthtVXohSiLiNMDVgCO/px9Esjb3m2vglwKoWbJSwn6tQEUOaVhIHnAZqzTB+1xZ6tQue20hf77J2/lnk+jEM/MZEpgFUwZb4PE4Is9OeA+B0NjMI/EmpCfhunSOmkp1P1cOmPQvvVOEFSebAmS2BpOY5Wz9hwoaeAmGnDlWhiw4c3/S6mjquBKOwO32BpTjTjFXQa+xjJ5N5PHILqiD96eJB+Z66tDxzYOmPoK9TVEfh/8lkVNYcGniBNiwDkSTO0F7pSFX+SyNQinuRBApbxYmncLdBcrmnXp9YXAHw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:92c7a70da3fa42af58e1ddedf9eaa77541196957e7addd01581dbbe9922d33d4",
          "output": {
            "depth": 3,
            "lineage": [
              {
                "anchored": true,
                "certification": "ISO14001",
                "dataVersion": "2026-01",
                "depth": 0,
                "stage": "raw_material_extraction"
              },
              {
                "anchored": true,
                "certification": "SA8000",
                "dataVersion": "2026-01",
                "depth": 1,
                "stage": "manufacturing"
              },
              {
                "anchored": true,
                "certification": null,
                "dataVersion": "2026-01",
                "depth": 2,
                "stage": "distribution"
              }
            ],
            "product_id": "GS1-DL-8712345678901",
            "total_carbon": 10.4
          }
        }
      }
    },
    {
      "tool_id": "art-117-product-authenticity-verifier",
      "tool_version": "1.0.0",
      "display_name": "Luxury Goods Product Authenticity Verifier",
      "mcp_name": "verify_product_authenticity",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-117-product-authenticity-verifier.html",
      "description": "Verify that presented lineage hashes chain back to the claimed root and that ownership transfers are continuous. Consumer/resale authenticity verdict: terminal stage of digital-product-passport-lineage chain.",
      "input_schema_ref": "chaingraph/art-117-product-authenticity-verifier.html#manifest",
      "consumes": [
        "art-116-product-lineage-builder"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:eccd83a646d2c8ea26dd08a3afd2982697f9bef25047dba10eff238e27f185d4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DMaHKXmJwU4ciTh1gfPHqZ/i8ysEPDNHV9eTmjlxk5QLEkeXaXNhzrKziHdxoUeXVSVdf6OYKkcCvcvmtC0JDhd1vIozDZ/QF8nEkp9AnCHz4YbrZIy+/qnk1L62CSqEIr/wvRhUrrZ3RCKtfS39cgyH8GjqrLa9eybPv0G1Bxcqnm3D56Rggxa+8Q+M2f9NPXJ8fl7hSGlcIFt3U5TPZQcR4D5HymXo69VfiG5/ux+fOtW8qSb6ma2xym8XvtP1ANOpawKodNQGlulHFP60qBs6IwuG4S1aGKe6TE4BNssKJ5z9JYrESAbj+Eaje4ja0Ywzhoj1ppOMgMUP9nSQFQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b3d0b9603d5c2f561504118a6d29434e042383dd7786857c4076f1c8634baf48",
          "output": {
            "authentic": true,
            "chains_to_root": true,
            "ownership_continuous": true,
            "product_id": "GS1-DL-8712345678901"
          }
        }
      }
    },
    {
      "tool_id": "art-118-fsma204-cte-validator",
      "tool_version": "1.0.0",
      "display_name": "FSMA 204 Critical Tracking Event (CTE) Validator",
      "mcp_name": "validate_fsma204_cte",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-118-fsma204-cte-validator.html",
      "description": "Validate required Key Data Elements present for each FDA FSMA 204 Critical Tracking Event (harvesting/cooling/initial packing/shipping/receiving/transformation) per the Food Traceability List. Enforcement July 2028.",
      "input_schema_ref": "chaingraph/art-118-fsma204-cte-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-119-traceability-lot-code-linker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e34e3e945044a3bafac4c9c72d15227e4b0a89ddff995e5afb0f4ae661015922","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GfMtwwsJR3ICxoocJLIazvgCNGjej7QzbuAIDAMLht4Wesze/6eRWqUvPSCu3IJUZr0mBGx6YwLHtD4Nk9yFcgTUAekPKgQ0kGDNbnqdrX3g6GqcQPR6J9Ge3rucb9cXBjDloDELus474/XWEaqfjcyjz87Fuvu+oDq+81NYvHgvGRXsjprRimWMn369cQUiGxzNRlwhxL5ABbzGymg9nhkLUhIsPCOC/Ob+DDqhzAKLR/9fuHtWX0VvLkiozTJmEKYj2lmgSuFqVjAuGDMBkdIg/So+MGDeBXFyXNVz+MceG2FqFKFEUUiN0gfV3fWipiNN81VTMY1jx3rUU9JXZQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:34f068007f1a872a0d21c7299fc7c1746e11c0ba051b2ecfd12c1aeca4d65f5f",
          "output": {
            "cte_type": "shipping",
            "cte_valid": true,
            "ftl_food": "fresh cut spinach",
            "missing_kdes": []
          }
        }
      }
    },
    {
      "tool_id": "art-119-traceability-lot-code-linker",
      "tool_version": "1.0.0",
      "display_name": "FSMA 204 Traceability Lot Code Chain Linker",
      "mcp_name": "link_traceability_lot_code",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-119-traceability-lot-code-linker.html",
      "description": "Link Traceability Lot Codes across CTEs and detect chain breaks. Transformation events mint a new TLC (recorded as new_lot_minted). Feeds the recall trace resolver (art-120).",
      "input_schema_ref": "chaingraph/art-119-traceability-lot-code-linker.html#manifest",
      "consumes": [
        "art-118-fsma204-cte-validator"
      ],
      "feeds": [
        "art-120-recall-trace-resolver"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9c508df29c7b972a6c75f1ad355d117b4554a2b3faebc82012baddb301528df5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "D/I6tmZsWY2iSf+IGGLp1ac4egBi6T4corgY4KPsuvkCcQUvtslvcdMHedJGX1bw8ZdO27HSS2FkKDk4LuIABi2NvV4Ah/rjauC5sP0cGkifhZr/NpFRh5OE7bGGX3JpDyA+jA9WrocFejHVknBShZFjGklR8VzrAH8PjXnMA7IfXkMJzaJTwue3pBUAb/desgZzRbL6XeHoP+hv4oFT6hQ3CK1zHY0gJ29mIIdHhKXVPsqdgmT7IRhwMbn5nKLQHkOSFCJNZWyyQ+q4B2gn/qPQKboQvr5qiZuuPSFQmZovmatviOas7KMsxQfx5OzVc1oaQz1yFQ86AbDYrs/IWg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:64182514e51e167c47063bca7b1a0323f4832f1c36063168c503a631fe1d8da1",
          "output": {
            "breaks": [],
            "depth": 3,
            "lineage": [
              {
                "cte": "harvesting",
                "linked": true,
                "new_lot_minted": false,
                "step": 0,
                "tlc": "TLC-001"
              },
              {
                "cte": "shipping",
                "linked": true,
                "new_lot_minted": false,
                "step": 1,
                "tlc": "TLC-001"
              },
              {
                "cte": "receiving",
                "linked": true,
                "new_lot_minted": false,
                "step": 2,
                "tlc": "TLC-001"
              }
            ]
          }
        }
      }
    },
    {
      "tool_id": "art-120-recall-trace-resolver",
      "tool_version": "1.0.0",
      "display_name": "FSMA 204 Recall Trace Resolver (24-Hour FDA List)",
      "mcp_name": "resolve_recall_trace",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-120-recall-trace-resolver.html",
      "description": "One-up/one-back trace from a contaminated Traceability Lot Code to affected recipients and sources. Emits the data for the FDA 24-hour sortable spreadsheet. Terminal stage of food-traceability-fsma204 chain.",
      "input_schema_ref": "chaingraph/art-120-recall-trace-resolver.html#manifest",
      "consumes": [
        "art-119-traceability-lot-code-linker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:572a3d1b5f06617e9230439c2f639209dc51f1969e4f7fa9709c23349334b9b2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AtTS2xU1DKwRvMeJzL+09zOqUf/BAPw/1wgS78PohwcXSfEV662UASMn8VbmUANyl8uA9j0+JKVxvpQ7S9XZlB6yt13Q0XjP3/uAkmaw5THRICu1iMLQoDEUoQXKpzJEDuaJrNYYCcVTrMfEcR22eUDcp53h8Blysl0jykwZ6zocDVJLEDMvyw7SOjO11+7CPvA2sDuGQBhttZdqSBo1HCQFliuYONaFyWWjVDBMnItKNiKRd7OjpYMUKiE9M9FsAOJRK9lBC4KrtogiSqhOiXWB7mplX5oDmyvc8dptqMwVvtVlyQtsplNpBZ/R9jMpTIwmGulNSn7mbE/7/5nyvA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d721fdce54d16645d95099d134a81324044d20d12bfd8024d2c8bfaff0821952",
          "output": {
            "contaminated_tlc": "TLC-CONTAM",
            "recipients": [
              {
                "date": "2026-05-05",
                "gln": "GLN-003",
                "tlc": "TLC-STORE-1"
              },
              {
                "date": "2026-05-06",
                "gln": "GLN-004",
                "tlc": "TLC-STORE-2"
              }
            ],
            "sources": [
              {
                "date": "2026-05-01",
                "gln": "GLN-001",
                "tlc": "TLC-FARM-A"
              }
            ],
            "traced_count": 3
          }
        }
      }
    },
    {
      "tool_id": "art-121-document-integrity-anchor",
      "tool_version": "1.0.0",
      "display_name": "Document Integrity & eIDAS Electronic Timestamp Anchor",
      "mcp_name": "anchor_document_integrity",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-121-document-integrity-anchor.html",
      "description": "Bind a document SHA-256 and claimed timestamp into an OCG execution_hash that serves as an eIDAS Art.41 / RFC 3161-aligned electronic timestamp: self-verifiable, no external TSA call. Optional C2PA manifest field. Feeds timestamp attestation verifier (art-122).",
      "input_schema_ref": "chaingraph/art-121-document-integrity-anchor.html#manifest",
      "consumes": [],
      "feeds": [
        "art-122-timestamp-attestation-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7f6d0e49c1eeb8c26e4d0453f504f575f36b4547315236e2d5796bea05076cb0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ard0At9EHK6xBnW2nt2Ku83Z7FLD1KfP1421oxIrqiMsQjxlSNFzE9T9NvEzIex5FE1ltJZ86yHjxAkIAg1ZRwrFJWK3aJaWyO9OB9R8751mw7eTbj11geSVmXbYsXGkBKFsifvKXmZuWWbKckovbtt6OZXvpe7xccMPyCkIFcwLwz/gxdMx2z7MiF7FpFCERUyk2HS3Hzisl3PxANWDZicWaiY2Q3GkK8I7m9+VQFXyO3Lb1bIRyc15aVq4NinlFDbmR4/IGUjZddZS4TvrfD7+UO5iactpFKtDHW1G8R4CbiPclxg7K9aa63MLMhtsQTIXen7bXh6BnU8GPAQO1w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ed284c7e429fc0c4d207033d714e8b5cc4d59bc8f960684f248ba01a849fba99",
          "output": {
            "anchored": true,
            "document_hash": "sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
            "document_type": "contract",
            "timestamp_claim": {
              "algorithm": "sha256",
              "standard": "eIDAS Art.41 / RFC 3161-aligned",
              "timestamp": "2026-06-25T10:00:00Z"
            }
          }
        }
      }
    },
    {
      "tool_id": "art-122-timestamp-attestation-verifier",
      "tool_version": "1.0.0",
      "display_name": "Timestamp Attestation Verifier",
      "mcp_name": "verify_timestamp_attestation",
      "mandate_type": "compliance_mandate",
      "wave": 22,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-122-timestamp-attestation-verifier.html",
      "description": "Recompute the document integrity anchor, confirm the document hash and timestamp claim match and the algorithm is consistent. Terminal stage of document-integrity-anchor chain.",
      "input_schema_ref": "chaingraph/art-122-timestamp-attestation-verifier.html#manifest",
      "consumes": [
        "art-121-document-integrity-anchor"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:88a9d131ffff2a2a578a46cabdc2f1b0987df22f56462b7eee51dedc4fb65120","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GGNZYuwZGb7WozERmzFW/sPWGdk7TqdkzJ4WnPuxzfAowGJcEJLuA3j1DiD5reffLDB3dyAmwXnmfbwlkiSsQRF6Ko4NWx7e71to+QlY0UV6RfZNfKdfT1QjN6vNJRNeCnOZODFHbA635oF9X+5Qgug/+GIj7NVsKW/UY2DhEmAhK9HTj4HA9UAtsICM5jPfnWTNJDGDwzdPnn8w0u33kQ+/2Tx4roSRxGJnKL2LlKKIFU8vblx5OrndF1mTOvo8IE2RESj8vei8L7dyohUl4sSZce1poTL6C0E2oT5ocUMp0yqbaK9qU7HqU87TKusbA49OBETBLzvsyt7TjxjDoA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5a374bb17c219f2cce15961d464105003d85550f6ff75af809bd26bab64ba663",
          "output": {
            "algo_match": true,
            "hash_match": true,
            "ts_consistent": true,
            "verified": true
          }
        }
      }
    },
    {
      "tool_id": "art-123-c2pa-manifest-validator",
      "tool_version": "1.0.0",
      "display_name": "C2PA Content Credential Manifest Validator",
      "mcp_name": "validate_c2pa_manifest",
      "mandate_type": "compliance_mandate",
      "wave": 23,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-123-c2pa-manifest-validator.html",
      "description": "Validate a decoded C2PA 2.x manifest: claim well-formedness, hard-binding hash assertion, and claim-signature reference. Feeds the Content Credential signature verifier (art-124). Underpins EU AI Act Art. 50 machine-readable marking (applies 2 Aug 2026).",
      "input_schema_ref": "chaingraph/art-123-c2pa-manifest-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-124-content-credential-signature-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:57b6f19cdf64a9288e4ff13b21078dce42b714bd0e9596f5be911756fe634bce","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "G/OmVoDwIzznDD9FWb4tVUoNxXQRGK+PlKpTRrtRiUAgC5nFECD7nowkxHjO9FeZgFhQOhsvkRN2ANvIzQBMgQvaVjvG79bN28glvejifhPusQGhzWSaS2LwVfbwpHNXDBrAWtj20NGNEbCkql2FQYAd/dco20G+JTXAQY/gVSgKVlc03MHkAW4DzAFw1XBixAc1oCTcsFRsJwK3Ko6Tmy6hpn137+sX8yfkfUC8XIRbq/NfUZT2slVH2znz5oYsDK/mHbvkchZ0mrndHONlpR7lX6RAJX5EQ/nO/T69Jhkg+i5b3d3gWsUYSOWe82qgJ9TcACJpfE7F/HFQhfggew==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:57b6f19cdf64a9288e4ff13b21078dce42b714bd0e9596f5be911756fe634bce",
      "output": {
        "assertion_count": 2,
        "has_actions": true,
        "has_hard_binding": true,
        "manifest_valid": true,
        "missing_elements": []
      }
    }
  },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-124-content-credential-signature-verifier",
      "tool_version": "1.0.0",
      "display_name": "Content Credential Signature Verifier",
      "mcp_name": "verify_content_credential_signature",
      "mandate_type": "compliance_mandate",
      "wave": 23,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/art-124-content-credential-signature-verifier.html",
      "description": "Verify-only node: callable in chains, carrying no compute-proof claim. Verify the COSE_Sign1 claim signature against a caller-supplied signer public key using crypto.subtle.verify (Ed25519/ES256/ES384/PS256). Trust-anchor membership, cert validity window, and revocation status are caller-supplied policy inputs: zero network, no OCSP. Emits ACCEPT or REFUSE verdict. PS256 (RSA-PSS) support means this kernel has no faithful sync in-guest verifier today, so its zkVM compute-integrity proof is out of the ocg-p18-deterministic profile's scope: not counted as proven.",
      "input_schema_ref": "chaingraph/art-124-content-credential-signature-verifier.html#manifest",
      "consumes": [
        "art-123-c2pa-manifest-validator"
      ],
      "feeds": [
        "art-125-provenance-ingredient-tree-resolver"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e9897ef4cb8f7cf9529ef898e949895809edb037f346eb0a0557216bb3875fd1","valid_from":"2026-07-10"}],
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-125-provenance-ingredient-tree-resolver",
      "tool_version": "1.0.0",
      "display_name": "Provenance Ingredient Tree Resolver",
      "mcp_name": "resolve_provenance_ingredient_tree",
      "mandate_type": "compliance_mandate",
      "wave": 23,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-125-provenance-ingredient-tree-resolver.html",
      "description": "Walk the c2pa.ingredient parent-of tree; confirm each ingredient hashed_uri binding and nested manifest hash chains back to the active manifest; flag broken provenance edges and redacted-but-referenced ingredients. Emits tree depth and intact/broken verdict.",
      "input_schema_ref": "chaingraph/art-125-provenance-ingredient-tree-resolver.html#manifest",
      "consumes": [
        "art-124-content-credential-signature-verifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7bae0dc529d7955478c147173fb20c3a752a9964162b83434abc62521887e527","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ae3qK/xb3SHv3TV8GU9yH/oqLZQr17P4/2KC3biD4acTMxoPkiuhLquKzwh3DYH7B7nZ4uz94ZWv93+AEPPQihVEJdboYc3RYss02YyXU26WcFVY5fGaunE5xUOLRxG+CqqzzXU3Ozj8WX6Y/voFMYSkqLrMVpx+sInhasjsIbwqPz4eoadwKZFAYLm+qg6cvrUL6STDWw07TtvDqcocoy5SM2d749gelMYSNmBo1p0ZxrOW0hqc1VuGNavAESc4HOgfHugSZM5w1fdwmKFR58QLix3IeHiVj7pwPjYnCBcvE+tcdkauWjytMsIsGJdMWK+cUuAEtrsyLa5avFvX/w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:7bae0dc529d7955478c147173fb20c3a752a9964162b83434abc62521887e527",
      "output": {
        "broken_edges": [],
        "depth": 1,
        "edges": [
          {
            "index": 0,
            "redacted": false,
            "relationship": "parentOf",
            "resolved": true
          }
        ],
        "root_ok": true,
        "tree_intact": true
      }
    }
  },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-126-ai-act-art50-marking-checker",
      "tool_version": "1.0.0",
      "display_name": "EU AI Act Art. 50 Marking Checker",
      "mcp_name": "check_ai_act_art50_marking",
      "mandate_type": "compliance_mandate",
      "wave": 23,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-126-ai-act-art50-marking-checker.html",
      "description": "Check c2pa.actions for a c2pa.created action whose IPTC digitalSourceType is in the AI set, and that machine-readable marking is present (Art. 50(2) adequacy). For deepfakes also requires Art. 50(4) disclosure. Penalty: 15M EUR / 3% global turnover. Applies 2 August 2026.",
      "input_schema_ref": "chaingraph/art-126-ai-act-art50-marking-checker.html#manifest",
      "consumes": [],
      "feeds": [
        "art-127-dual-layer-disclosure-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7b3eb5f17b46b43c54e96195da8716c39b2eccc9ac75080186ff0dd578e31411","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EyoY2v6v9wtm1edL4oRFWwF/pNQ6zEVj01Q0C+hzeGYDp6IjxYilAsF1VipLVgzsHSRyLM6tWFsmYU5KSHeEgCTcmIJjftXX7mG7lXk43BAf1frQmKx6Y59quABkhxvbHHkmfX89ptNNcOqavBm+N2nrr4Xbr1LFYofbKM6dYVMsR0+txMgDV+4NUSjGeVWFm7rm/zWjwmMB26PcuSMtlSj7eY4olXFO6tGZ34LK46Ot+AZcsh4WwaHA6sinmu7vFw7x+6VcJyJwo8/hBF/YdEOdF+17z7uRMj9xqOZuqH8M62K+zdd4L6YQSY9yjDbJ7X8FVJD8ZbInRKmhrNo3LA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:7b3eb5f17b46b43c54e96195da8716c39b2eccc9ac75080186ff0dd578e31411",
      "output": {
        "ai_marking_present": true,
        "art50_conformant": true,
        "deepfake_disclosure_ok": true,
        "gaps": [],
        "source_type": "trainedAlgorithmicMedia",
        "source_type_recognized": true
      }
    }
  },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-127-dual-layer-disclosure-verifier",
      "tool_version": "1.0.0",
      "display_name": "Dual-Layer Disclosure Verifier",
      "mcp_name": "verify_dual_layer_disclosure",
      "mandate_type": "compliance_mandate",
      "wave": 23,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-127-dual-layer-disclosure-verifier.html",
      "description": "Confirm the EU Commission Code of Practice multi-layer requirement: both C2PA signed metadata and an imperceptible watermark (SynthID / Digimarc / TrustMark / c2pa.soft_binding) are declared present. Fails if only one layer present. Emits layers-present and missing-layer.",
      "input_schema_ref": "chaingraph/art-127-dual-layer-disclosure-verifier.html#manifest",
      "consumes": [
        "art-126-ai-act-art50-marking-checker"
      ],
      "feeds": [
        "art-128-content-binding-assertion-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:56cd22eca21423290fd3c332d722f6e6afd0c5a3b24650cf68b266aa33db0ae8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AEdjPRJBvfg5urh47ffa5CvLIiAy0CRsNc56p5YNzQwrjt92MH+NkRNgUtskSkusQnpCFfY16ZVFnJkSs+qRuyeDMQ9voKTmM2dV8h3UXRIDvG+Q/ZJ8R/8DVByQ0u0KL4GL6SC3bTE4/U9NcnYVONmRvSDN2fs8NH69J53mHlgWwx3y6v8nGW/Emdty+6mtjAUJIz15+4aT+oWw4mEtdy9OKCsuTQaH/V0/tDhdpwL5FDhtcnlO4ogFMVOKjbtvBlbMDkepFzycyFm96i98QnGZOpE+ZcFuf8l42QbtsscYr2LWPWLQDGvrl3RPdbuKdzvpubM/SoDPnnaATftqBA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:56cd22eca21423290fd3c332d722f6e6afd0c5a3b24650cf68b266aa33db0ae8",
      "output": {
        "dual_layer_ok": true,
        "layers_present": [
          "c2pa_signed_metadata",
          "imperceptible_watermark"
        ],
        "method_recognized": true,
        "missing_layer": null,
        "watermark_method": "synthid"
      }
    }
  },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-128-content-binding-assertion-validator",
      "tool_version": "1.0.0",
      "display_name": "Content Binding Assertion Validator",
      "mcp_name": "validate_content_binding_assertion",
      "mandate_type": "compliance_mandate",
      "wave": 23,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-128-content-binding-assertion-validator.html",
      "description": "Validate hard-binding (c2pa.hash.data/bmff, tamper-evident) vs soft-binding (watermark/fingerprint, survives re-encode). Confirms asset byte-hash matches claimed hard-binding hash. Emits TAMPER_EVIDENT / SOFT_BINDING_ONLY / UNBOUND verdict. Terminal stage.",
      "input_schema_ref": "chaingraph/art-128-content-binding-assertion-validator.html#manifest",
      "consumes": [
        "art-127-dual-layer-disclosure-verifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:60e81365b579a79abf492ac5f0629ac124c93f263ad1a66363dca62be1c898af","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LvQnpXBeU9yiZ+VCM2TXCVMa9gx1ASDrJr1yrYirf9gMvjiHRn3hOs/1hg4myungaOcxpEZbZlEoy/dULY/YJSK7gPo22tmQXSlWJ50iu2UexJn2NfhcVdPgX6fwj7faFYGLXikuD4/Nqb0OwgyDhfE2wwelOkvEa+1pMxOrVL8DzqMiZtD3tdMKNVd2Ib8zbDoo0/SC9LxBad9+WI4q3xobj9tL2Q6KLCbqcAbWeI/jB3ojKYgUKnDvVUeXy3/wE0dG/8pjhiqZW/oT69/p8hORubUstpZ9zhnVTM45Ej8eXM0jgNOQj7uEiKS+6K/LxeKf5ipH+yw61V2RZTaUEQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:60e81365b579a79abf492ac5f0629ac124c93f263ad1a66363dca62be1c898af",
      "output": {
        "binding_type": "hard",
        "hard_binding_matches": true,
        "soft_binding_present": false,
        "tamper_evident": true,
        "verdict": "TAMPER_EVIDENT"
      }
    }
  },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "art-129-webbotauth-signature-verifier",
      "tool_version": "1.0.0",
      "display_name": "Web Bot Auth Signature Verifier (RFC 9421)",
      "mcp_name": "verify_webbotauth_signature",
      "mandate_type": "compliance_mandate",
      "wave": 24,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-129-webbotauth-signature-verifier.html",
      "description": "Reconstruct the RFC 9421 signature base and verify the Ed25519 Web Bot Auth signature against a caller-supplied public key, zero network. Checks alg=ed25519, tag=web-bot-auth, and freshness. Feeds the signatures-directory validator (art-130).",
      "input_schema_ref": "chaingraph/art-129-webbotauth-signature-verifier.html#manifest",
      "consumes": [],
      "feeds": [
        "art-130-signature-directory-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:540c9d7518ba023177cc5b43c463c8ae89c8fcedb57a44e4f007de93b891ebcf","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GZwA2glOJiysQVAFsk3ioizHBko9F3hY4mk/+t6x9pABZn6wbGaULZ1CXF88Eieh04qAIFffLMstHDEusaZWhwT4Yklth/y9XxxFRu4MbDkHyPLi49rlE2GBgpam8NaFJaQwZMZLPnfUhXrTd1ZMOOlE70b47+xaaH+uPWa6s5EY5c9Hr0c98+xtrAUa4fGFnb3MCSHJP4TC2hvbxQ1XzxIpJZWP+Sc5c+wrbaUgJOLJFjdSWofBegnSo18h3LfEJ88Pw/rp/aJGmhArKhgC64/kZS0KjUiATxSwoWjIskoB0zqm2RP51d+UpjslvfqPsNCvINWac/5YLz5wvQgUXg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:540c9d7518ba023177cc5b43c463c8ae89c8fcedb57a44e4f007de93b891ebcf",
          "output": {
            "alg_ok": true,
            "fresh": true,
            "signature_cryptographically_valid": true,
            "tag_ok": true,
            "verdict": "ACCEPT"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-130-signature-directory-validator",
      "tool_version": "1.0.0",
      "display_name": "HTTP Signatures Directory Validator",
      "mcp_name": "validate_signature_directory",
      "mandate_type": "compliance_mandate",
      "wave": 24,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-130-signature-directory-validator.html",
      "description": "Validate the /.well-known/http-message-signatures-directory JWKS: well-formed, keys are OKP/Ed25519, the keyid from Signature-Input resolves to a key in the directory, well-known path correct. Agent fetches the directory once and passes the JSON. Consumes art-129, feeds art-131.",
      "input_schema_ref": "chaingraph/art-130-signature-directory-validator.html#manifest",
      "consumes": [
        "art-129-webbotauth-signature-verifier"
      ],
      "feeds": [
        "art-131-signature-agent-card-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:77d084f5d2d837ac21a389f2d1b651d8e3fe5faca6b43a737b22be0bfeaf6532","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "E0eB+n/pz0hl0ajQG3qm9qsqSUB3Rn91CEAY+GMNCekCwL+toxInMZubtXgZ/TJBPf5E1oL3n/FF+4yw//M/JQLHIJtZfzKyB9tWdIsouhM1bLBdrWq6Rld3xFIzyCyzL1FECjknORAp1lwpPeg4JWPXL5bKm/g872F5Wk3hggcC9fm3zFZAIG0ZLqg3nukbYJhWmoL4xXad4tfpA8QYfgLbSXwljMOypLrwJst/c/kbNcRUdpU9Vw9mn0OiSdT1A5hXQxlxI9WVUd6Bo8i4M2AQnoT3HFISGho7QzveSvoNQ2/7QSuEqZ83e/KU3xhl4M4sJVkzNNHSCbYexJL2vQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:77d084f5d2d837ac21a389f2d1b651d8e3fe5faca6b43a737b22be0bfeaf6532",
      "output": {
        "algorithm_ok": true,
        "directory_valid": true,
        "key_count": 1,
        "key_found": true,
        "path_ok": true
      }
    }
  },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-131-signature-agent-card-validator",
      "tool_version": "1.0.0",
      "display_name": "Signature Agent Card Validator",
      "mcp_name": "validate_signature_agent_card",
      "mandate_type": "compliance_mandate",
      "wave": 24,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-131-signature-agent-card-validator.html",
      "description": "Validate the Signature Agent Card (Cloudflare/Bedrock AgentCore schema): required fields (name, operator, expected request rate, keys) and card keys consistent with the validated directory. Emits identity-trust verdict. Terminal stage of agent-identity-verification chain.",
      "input_schema_ref": "chaingraph/art-131-signature-agent-card-validator.html#manifest",
      "consumes": [
        "art-130-signature-directory-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5d6f9fd42c6de44f905132f55d36afa25bbe38665916fcbd9130d08308ea05d3","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JUEq3Dfui91MPw1EY8UVbxJNPPWU1BmFIgLjYYFTxlUPcO/as365lenYuIsqVGuijNBHt/FjbSEIe0rPe4MgjwfiLPoR3dcUB3zRB7vQpF4M8zCljJ7wNLMkUqQE6iuMJ8mF9M07D3szWynaCPHOnysUKr5rY0/PomWBAInntp8XQ8x+3sZO+GYgke0lDLpsJPVuNyX4wObPDVPegdj8dQxbbjYGvriERHJ6ayHnFO8gelV4bsqwJtKHndPm90EnL2V2bJjCIf6oYmYfyqwhpoS4/nRtV6NW2CSzZRdXCPMMc1hax7OFzuBJQbNbldjtztHZlpKBQa33RKwa3joHKA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5d6f9fd42c6de44f905132f55d36afa25bbe38665916fcbd9130d08308ea05d3",
      "output": {
        "card_key_count": 1,
        "card_valid": true,
        "keys_consistent": true,
        "missing_fields": []
      }
    }
  },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-132-agent-key-rotation-auditor",
      "tool_version": "1.0.0",
      "display_name": "Agent Key Rotation Auditor",
      "mcp_name": "audit_agent_key_rotation",
      "mandate_type": "compliance_mandate",
      "wave": 24,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-132-agent-key-rotation-auditor.html",
      "description": "Audit key freshness and rotation posture: key age vs max-age policy, presence of a next-key and overlap window, algorithm is Ed25519. Emits HEALTHY / ROTATION_STAGED / ACTION_REQUIRED posture. Feeds the payment-rail trust crosswalk (art-133).",
      "input_schema_ref": "chaingraph/art-132-agent-key-rotation-auditor.html#manifest",
      "consumes": [],
      "feeds": [
        "art-133-agent-payment-rail-trust-crosswalk"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a394588aa87698b40dba7cc1d088b210f1a1043ea22387e7b104adb71ab9cb20","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CqSfZWZEFigmAUZ2DsAKC9Rm1xNwl5Q/AIeyGnrCSKAuKO6XlhoTiDKg8XjdhOY1FZb5bPaZsie5jRwQ+bf1qASWzubrISfHC0OaXKRZixHWd6z2qddm9dCVLv/ZiOdHIBuBshvxNMe4gLS4e303MTMNH46is33IP7oLzoPe0JsEqo9Of3b0KlP4jhfpvK1vvKPAGf4ZAyCkTmS0CCsuMgbNrXA7JBEEs3hyNQ0f1A+9KuUXrmfrqPeDpk8xJsc0CC8Ten3KGq4EE8AdpH3GtTbu2oyHKegw7VitEmV3li8Pyd1grJCNrZq6m3FJMOlqpClKrbHcy1tlGgl1+KAJHQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:a394588aa87698b40dba7cc1d088b210f1a1043ea22387e7b104adb71ab9cb20",
      "output": {
        "alg_ok": true,
        "key_age_s": 86400,
        "next_key_present": false,
        "rotation_due": false,
        "rotation_posture": "HEALTHY"
      }
    }
  },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-133-agent-payment-rail-trust-crosswalk",
      "tool_version": "1.0.0",
      "display_name": "Agent Payment Rail Trust Crosswalk",
      "mcp_name": "crosswalk_agent_payment_rail_trust",
      "mandate_type": "compliance_mandate",
      "wave": 24,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-133-agent-payment-rail-trust-crosswalk.html",
      "description": "Crosswalk agent identity posture (alg, directory published, card present, signature verified) to Visa TAP, Mastercard Agent Pay, and Web Bot Auth acceptance criteria. Emits per-rail accepted/gaps. Consumes art-132, feeds art-134.",
      "input_schema_ref": "chaingraph/art-133-agent-payment-rail-trust-crosswalk.html#manifest",
      "consumes": [
        "art-132-agent-key-rotation-auditor"
      ],
      "feeds": [
        "art-134-agent-directory-publish-readiness"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:878bf6955236e7bf1666e444bb332da7cf1b777ed2769a9975efc3d9bb752a20","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LYqYXC3GQwrpbjPC6ZkaVgT7/JA52aS0KjdzuV1velkZs6KHL0EQ2FPY1/Di+npuI1STInOoo4DAIo21eBzv2SSdCJlLJKl2XfwA4ZBRp5Qm6+kVf3Z0U715PvYTBZEWBCvBo0C73btOlUpZXoxRoYu5EyQELU4UoB4ylLawBGouwXuMxKtDmD1IddP4ZUEYMHE42FtAPdoCQF7HVvNiHxXsEFZAn/zdWOjqiUEy8Xa0pe+6qdLrUv2zW4W5H1WwAGlbilTR9SN3fw5Qd4HkGiFTK1bakUfr+lCWHEZgD0EbTYwnvW9B7E1tcRuewo2KD7lkU1MqenuCBuPObzZ/1Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:878bf6955236e7bf1666e444bb332da7cf1b777ed2769a9975efc3d9bb752a20",
      "output": {
        "any_accepted": true,
        "rails": {
          "mastercard_agent_pay": {
            "accepted": true,
            "gaps": []
          },
          "visa_tap": {
            "accepted": true,
            "gaps": []
          },
          "web_bot_auth": {
            "accepted": true,
            "gaps": []
          }
        }
      }
    }
  },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-134-agent-directory-publish-readiness",
      "tool_version": "1.0.0",
      "display_name": "Agent Directory Publish Readiness Diagnostic",
      "mcp_name": "assess_agent_directory_publish_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 24,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-134-agent-directory-publish-readiness.html",
      "description": "Diagnostic: is the operator ready to publish a verifiable Web Bot Auth identity? Checks well-known path, JWKS reachability flag, card completeness, rotation posture, Ed25519. Emits ready verdict and gap list. Terminal stage of agent-identity-publishing chain.",
      "input_schema_ref": "chaingraph/art-134-agent-directory-publish-readiness.html#manifest",
      "consumes": [
        "art-133-agent-payment-rail-trust-crosswalk"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:073c473b341de3c957f56c88bac87992ec78bd3bd40c3a3b91e0980d388b5d8f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HhXdKKgQ9RCSVKxwE2EJSc3V0RAGcvG35Ru9finvw2YjkZaTVS9Qg1p8/R3USzmf0Apb8WKWAizeKL4X0r9CuSCcb72DpHZBzJjXCZ/tAv/IDeQv7cOgIQ0tr+UINJ0eEAIrTqX0wBiK8p7xCjlR9ZaLngm4zOIqieGe85t8PIopdSJ0/eKGMJ0GH2hqqblx+ADaPbCThoHEJf/LvIchywvcuLz0HiL7rtyhmUbR14GLzjJKdhOPyu2qgMkYW9ctEgSSq+GrIJ9nlqrvk0sh4NcHLoqOaGGxjGKXHPWqLEkWCGGtpOxvCIPIE5VQRA5UjH/tNoAxQl8vL5z5iWgBTQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:073c473b341de3c957f56c88bac87992ec78bd3bd40c3a3b91e0980d388b5d8f",
      "output": {
        "gaps": [],
        "ready": true
      }
    }
  },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-135-cyclonedx-sbom-validator",
      "tool_version": "1.0.0",
      "display_name": "CycloneDX SBOM Validator (EU CRA Annex I)",
      "mcp_name": "validate_cyclonedx_sbom",
      "mandate_type": "compliance_mandate",
      "wave": 25,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-135-cyclonedx-sbom-validator.html",
      "description": "Validates a CycloneDX SBOM against the EU CRA Annex I machine-readable SBOM requirement: bomFormat=CycloneDX, specVersion in [1.4,1.5,1.6], all components carry purl+name+version, top-level dependencies array present. Emits sbom_valid verdict and per-component gap list. Root stage of sbom-provenance-attestation chain.",
      "input_schema_ref": "chaingraph/art-135-cyclonedx-sbom-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-136-slsa-provenance-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3f160ab65134e8918e39f71151aed591c8cd27e82ed90f22cff146f7fa75fcd1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Lwfpvdt9mf1fbt5NsVLlK3uy3unT6rTpEn7Akd69VEwl215Eippwzy4nRsypBLm1SGXXslp8wTBx3Mk+X/biFCQ+WGf9u7hniUywXBbRMwRPwgZdNy7dOoz5smVaBVCaJMsTYzB+NHa0JAVROn9xckXx7SlOTiFOkWhaD7uva6YV5hfpLif37yayQLppD74LIwnj2Uw3ElhEVWxzZr4BjgDm2g/6HQfhhNQBcNvR7YR5/+XXNNcbVUZw1NbqHVDgLrDvhCU5Krl/FhFXLGRrAtnJOFNO0Dw8590MnE6icNgenCO101jyAnHXZl6kYmwQzZFqEnloLLSnAF6Md3+1cQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b678ddca7acdb020ecfe9ad3404580ffbc8bfc498caceee2042ab3574c957caf",
          "output": {
            "component_count": 1,
            "components_missing_purl": [],
            "format": "CycloneDX",
            "has_dependencies": true,
            "sbom_valid": true,
            "spec_version": "1.6"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-136-slsa-provenance-verifier",
      "tool_version": "1.0.0",
      "display_name": "SLSA Provenance Verifier",
      "mcp_name": "verify_slsa_provenance",
      "mandate_type": "compliance_mandate",
      "wave": 25,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-136-slsa-provenance-verifier.html",
      "description": "Verifies an in-toto SLSA provenance statement: validates _type (in-toto.io/Statement) and predicateType (slsa.dev/provenance), checks subject SHA-256 digest against caller-supplied artifact_digest_sha256, asserts builder.id present via runDetails.builder.id or predicate.builder.id, reports claimed_build_level 0-3. Middle stage of sbom-provenance-attestation chain.",
      "input_schema_ref": "chaingraph/art-136-slsa-provenance-verifier.html#manifest",
      "consumes": [
        "art-135-cyclonedx-sbom-validator"
      ],
      "feeds": [
        "art-137-openvex-statement-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e68457cfcfc0229b4029a1579bdd6871ecb20daf0abd9743c2627eccb3a51e5d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LZstin3tFumPYb2VZ3oIeMcQUVROVuudYKpMb6Kq7gAjzX7Qd96gomlMlwOthW2lAALQ7BcD6I5hVs115FyXmARJteuWBZrR0I8WDrGJUgX6TJulMKaS8vYrBUgwivHFCDRIcFccQWsfPW8Ti1cVVeSy6a7Oq5+BmY78NHoYxAIMCFixtzlqqoIElHDhGvPrrLi43I0ZC3vPv0+SCFaGvyjT4ucIvci6jLdtzBIVNh+LdhQ/jy/OYNQwF2+D0L9LLtusVAFNI4UWj/Be3QYUDn2ATyMadmTMsr469/atuzIBLXeW5ueTV4kSUXdkw2DSq2/DvHTZMHj5LU4Ly8vvBg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:53f94dd81941e9aae912dfeea50ddbfc6bd044fb51de329723baa1105e6fc29b",
          "output": {
            "builder_id_present": true,
            "pred_ok": true,
            "provenance_valid": true,
            "slsa_build_level": 2,
            "subject_digest_match": true,
            "type_ok": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-137-openvex-statement-validator",
      "tool_version": "1.0.0",
      "display_name": "OpenVEX Statement Validator",
      "mcp_name": "validate_openvex_statement",
      "mandate_type": "compliance_mandate",
      "wave": 25,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-137-openvex-statement-validator.html",
      "description": "Validates an OpenVEX document: @context includes openvex.dev, every statement carries vulnerability, products[], status in [not_affected,affected,fixed,under_investigation], and not_affected statements must include justification. Emits vex_valid verdict and per-statement gap list. Terminal stage of sbom-provenance-attestation chain.",
      "input_schema_ref": "chaingraph/art-137-openvex-statement-validator.html#manifest",
      "consumes": [
        "art-136-slsa-provenance-verifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:676d999d882d7e4a0d0e97841723ed8a0c8b3440fd079227c910c1945058a0de","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DwHv0wKiQF2wUEZfjy4ILVzBVduiu66867h9lk4CBJ0mB9zqoeB8cE0fX+Rt7GEe/7G0H3oMqVZojBqA+2vCIRqF1anWTOiA8DBfENmZNmgsOqhqvubS+Odvv+S/YaJLGwqEz6l9d3QSjWCHLEDVJagAgXuFGBN+4YjwcJGLm0wtfP+uIX3gFaXpzaKDbcUuqARTU5ZmYJazgzIVsX9+OCqc0FXDuil/dq4CA0GYila4aYRqDIuEt33YZzy+SEpwJqZu4fWMJHuOvfxpRl7CdBC1DUg3yAAsgnDzBMMo5BwS1W2dnv1jgvOFv6qlZDe1NtuwmXIOXB3WajfFB5fsvA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a3479c6ee0c683f60a491a11d4ba95dbd84e6515cec5686f5642e6c6e68b87a6",
          "output": {
            "context_ok": true,
            "invalid_statements": [],
            "statement_count": 1,
            "vex_valid": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-138-spdx-sbom-validator",
      "tool_version": "1.0.0",
      "display_name": "SPDX SBOM Validator (EU CRA Annex I)",
      "mcp_name": "validate_spdx_sbom",
      "mandate_type": "compliance_mandate",
      "wave": 25,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-138-spdx-sbom-validator.html",
      "description": "Validates an SPDX SBOM against the EU CRA Annex I machine-readable SBOM requirement: spdxVersion matches SPDX-2.x or SPDX-3.x, SPDXID present, all packages carry name+versionInfo+downloadLocation (or purl externalRef), relationships array non-empty. Emits sbom_valid verdict and per-package gap list. Root stage of cra-product-conformance chain.",
      "input_schema_ref": "chaingraph/art-138-spdx-sbom-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-139-cra-annex1-completeness-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:72aba0699f8a03e3cc099b887c437ef7f1a801c5284b6e00d616419870a71ef6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JoT+Fyi/8kpTraZpkE6R9sG132/laD0lAmTitZDAXLswM3VST+PV7T18d1xvug+NG2e+NXstiN/m7XJxuPPiGi6YrdEMFeIXKm5MeZfHyE6NXGM+TZuJs3JzTG0v0U/fD/yllWEymD/gxCP2dIHkTur1lR/X27szMzTXXc/dSNQGJwu4Ow4b9jMV1Td2H7ultwQeTWmxzf1s15ru1tWM4yOSYM0PSKKD9Y9+5TJZ9PTIjbV7NjQGrAW2TfoirbNlL+12t3sK0KXS8o6TphQr2QaNB/0X1YMoigJlUu8iVmEwORRf0GlaaeaLzMMsQZFtopzRfRZZUArKTa0wqrA5nw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:18c614b3a041c909a5b08d50674dbc1b0969d0fa0a9e3fa43bdea58ac7e1bf92",
          "output": {
            "format": "SPDX",
            "has_relationships": true,
            "package_count": 1,
            "packages_missing_version": [],
            "sbom_valid": true,
            "spdx_version": "SPDX-2.3"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-139-cra-annex1-completeness-checker",
      "tool_version": "1.0.0",
      "display_name": "CRA Annex I Completeness Checker",
      "mcp_name": "check_cra_annex1_completeness",
      "mandate_type": "compliance_mandate",
      "wave": 25,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-139-cra-annex1-completeness-checker.html",
      "description": "Checks EU CRA Annex I Part I essential cybersecurity requirements: sbom_present, sbom_machine_readable, top_level_deps_covered, vuln_handling_policy_present, secure_by_default, and a valid conformity_route (self_assessment | eu_type_examination | full_quality_assurance). Emits annex1_complete verdict and ordered gap list with PDF export. Middle stage of cra-product-conformance chain.",
      "input_schema_ref": "chaingraph/art-139-cra-annex1-completeness-checker.html#manifest",
      "consumes": [
        "art-138-spdx-sbom-validator"
      ],
      "feeds": [
        "art-140-cra-vuln-reporting-readiness"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8d0924a6bc66cc3c3c6e9211692dd759285b3c07143163946ef596a4b48c6235","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G8LTk0v0WEjPozF4vf3VreEuD0VlXgMjQ/8HENH/LWgOyRQABGurEH07ONCbPWZcnlEb0t89p+zQwhSwUeI92QklqZ5ErkJCWNqU6sWFJ4S1F3qQqRQGqV3hiIzEUK36KyXeez6t11gjZib7t+LvcJOuog0WnKN1STAm4Do275YWiqy0+0aXHRbdYOiabtOx7utAC/cPtnzoqX8ChhNVUB6STa9CE06vo7bHTm3a/qZhV0QH409FBLl58gu2FoSiB8S//Frb8kfZaaqlj/cRT+Q1862rYo/X/ex2hb+5QeAiOUP+mopiDa4aYlumaKgiZ+hqWy/phMAVTLbcPQ2fyg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d12d16825c51f2c5a7e2f5dad4bdf03556bd296c907f8bd5fb8681cc2b6ff663",
          "output": {
            "annex1_complete": true,
            "conformity_route": "self_assessment",
            "gaps": []
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-140-cra-vuln-reporting-readiness",
      "tool_version": "1.0.0",
      "display_name": "CRA Vulnerability Reporting Readiness (Art. 14)",
      "mcp_name": "assess_cra_vuln_reporting_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 25,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-140-cra-vuln-reporting-readiness.html",
      "description": "Assesses EU CRA Article 14 vulnerability reporting readiness: actively_exploited_detection, 24-hour early_warning_24h_process, 72-hour notification_72h_process, csirt_enisa_endpoint_configured, and coordinated_disclosure_policy. Obligation date: 11 Sep 2026. Penalty: up to €15M or 2.5% global turnover. Emits vuln_reporting_ready verdict with PDF export. Terminal stage of cra-product-conformance chain.",
      "input_schema_ref": "chaingraph/art-140-cra-vuln-reporting-readiness.html#manifest",
      "consumes": [
        "art-139-cra-annex1-completeness-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1f1af6d462795616cf87a1f261b777582c1188b28d24a8324ac7f3f180011b58","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EGL5fnJzAfedUP62nSe/8PTGx0BfNLpvkG8W1UEnAhoJQb9dpeG5vQorosI/E3Wqi/y40zXclJtKeoqwMNReJiftbwT5Rhj/dcO28W1RtnLLDB0gbggJ1QrJNTSE0bUeGxI584FNZ3uRTlS4ncZriCPhPHW4PoB3w0ysYLYufiAlvQrr2mdMugklTqDvtF+bRiCu99pkQZRArXvb8XRNTCTNZYD//mmY+qvveFSPRAaZ8acHQoiPay77epvewk8eCQgLwc5bNiplBfFdbsjNlNM0atp1kXfaxwutksZ0fN4l6AG/ZIlsn/5T4A7NssC+IhbXhN74bOxOhQ8GhhUB8A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bd443ab6d0d8f0150fedaa0fa676cc6fd7655c2d9045e6d713350a5fb87af0ba",
          "output": {
            "gaps": [],
            "vuln_reporting_ready": true
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-141-nis2-entity-scope-classifier",
      "tool_version": "1.0.0",
      "display_name": "NIS2 Entity Scope Classifier (Essential / Important / Out-of-Scope)",
      "mcp_name": "classify_nis2_entity",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-141-nis2-entity-scope-classifier.html",
      "description": "Classify an entity as Essential, Important, or Out-of-Scope under NIS2 Directive 2022/2555 Annex I and II, applying sector codes, employee/turnover size thresholds, and automatic-essential carve-outs (DNS providers, qualified trust service providers, public electronic communications networks). Feeds the Art. 21 gap checker (art-142). NIS2 entity classification active October 2024; annual registration window January–June each year.",
      "input_schema_ref": "chaingraph/art-141-nis2-entity-scope-classifier.html#manifest",
      "consumes": [],
      "feeds": [
        "art-142-nis2-art21-gap-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f5cdbd302bc819281ca45b0324490e3843d98a3ff0912db8177a323a66c79336","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A40yu0Bts85qEP5CpZWoogGjBzfvgnkNhIHRhX8jOYYGTCVQumusLX+JMA4ahvkTVSTLCnx34C0Bi6OM0CEoFwZJWWvoEuD3sJtSr/ppp3UPuLRFwDCL6JKAMdG9TIagBk61f2weDBktnnlgGD6ZWiKGQIlPvtEveZHF9K9z7l0sQJDgiPh6u7Po01Y4ciNJvHFu1q6h+9Y8pTjOoOzhHgNIVXWIWU/qzUZ8jTOs6hyIN/FhGoRiKbteCO5+2j65EfvvOvxD3Vza7rQhNJUZzCeh+PvJdbq7uIQlGqnvUCMjBSFc/y733vpysl2U6I7HnSs4GSCnEVg1FW307tBFBQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:203ce593eb935c0c32d6251ada821ccaf2e84f3e35a4d6c9fbf65c9c2db600de",
          "output": {
            "annex": "I",
            "annual_turnover_eur": 80000000,
            "applicable_penalties": {
              "art21_max_eur": 10000000,
              "art21_pct_turnover": 0.02
            },
            "automatic_essential": false,
            "classification_basis": "annex_i_large_enterprise",
            "employee_count": 500,
            "entity_classification": "essential",
            "sector_code": "energy"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-142-nis2-art21-gap-checker",
      "tool_version": "1.0.0",
      "display_name": "NIS2 Article 21 Gap Checker (Ten Cybersecurity Risk-Management Measures)",
      "mcp_name": "check_nis2_art21_measures",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-142-nis2-art21-gap-checker.html",
      "description": "Check presence and maturity of all ten NIS2 Article 21(2)(a)–(j) cybersecurity risk-management measures. Derives per-measure maturity (0=absent, 1=documented-only, 2=implemented, 3=implemented+tested), aggregates to compliance score 0–100 and grade A–F, emits critical-gap list and prioritised remediation list. Consumes art-141 scope verdict; feeds penalty exposure calculator art-143.",
      "input_schema_ref": "chaingraph/art-142-nis2-art21-gap-checker.html#manifest",
      "consumes": [
        "art-141-nis2-entity-scope-classifier"
      ],
      "feeds": [
        "art-143-nis2-penalty-exposure-calculator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1e2ae5da118e19c5c3b8960fcc173a82582f8ecc9952ef30fb521b8d5e0a16b7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I0U2RrzLXmdmpkYnzOIPxAj7IWUus5Vk4lNtSQhimrgS1Hg0w8Nl1Nu6nDkxXaTIBKtEQptTx5T9N/jR4dTOTgPdKj19RN7n80q34xui3QNoYndQlxXqtn+t0iA0E6WFLc8tOWj80ZM3qwOYTcrKuj9xRg+ZEOxBjwcW+UMjdawRcmNfprsYC/D2VskhGees3d0YsOVj5McvCkm5fZO7SS97V3czzRs+SvElU2HfXyTl9H3G3FPdTx+JU4ESfoVFBDa9pbugZX81ZeLMc3Wp8Z1EnZkV2c2mk2SShJuoprMi6XNwMfj4iKQO1oLPij8cgCxPMD69QCwPWKWBmjdlcQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bc2eae2bec7dca52ad1bd76a78b883c23813eeb5a8a7a58a4e67937e5b8a72bc",
          "output": {
            "compliance_score": 100,
            "critical_gaps": [],
            "measures_summary": [
              {
                "maturity": 3,
                "measure_id": "a"
              },
              {
                "maturity": 3,
                "measure_id": "b"
              },
              {
                "maturity": 3,
                "measure_id": "c"
              },
              {
                "maturity": 3,
                "measure_id": "d"
              },
              {
                "maturity": 3,
                "measure_id": "e"
              },
              {
                "maturity": 3,
                "measure_id": "f"
              },
              {
                "maturity": 3,
                "measure_id": "g"
              },
              {
                "maturity": 3,
                "measure_id": "h"
              },
              {
                "maturity": 3,
                "measure_id": "i"
              },
              {
                "maturity": 3,
                "measure_id": "j"
              }
            ],
            "overall_grade": "A",
            "remediation_priority": []
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-143-nis2-penalty-exposure-calculator",
      "tool_version": "1.0.0",
      "display_name": "NIS2 Penalty Exposure Calculator (Art. 34)",
      "mcp_name": "calculate_nis2_penalty_exposure",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-143-nis2-penalty-exposure-calculator.html",
      "description": "Calculate maximum NIS2 Art. 34 penalty exposure given entity classification, global annual turnover, and declared infringement types. Essential entities: max(€10M, 2% global turnover); important: max(€7M, 1.4%). Applies mitigating-factor reduction (10% per factor, floor 30% of max). Emits maximum penalty, turnover-pct exposure, and mitigated estimate. Terminal stage of nis2-entity-scope-and-obligations chain.",
      "input_schema_ref": "chaingraph/art-143-nis2-penalty-exposure-calculator.html#manifest",
      "consumes": [
        "art-142-nis2-art21-gap-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1e050fdce69b0aa2eeb1cbcca0c6b09530edfc86980ab96104181ae460bbb60a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AAhSd10bQuJqcxaIHqMs417ijFF7flEGIRPDv/yvl18rBg47qGaXWKlrZqshbiZNmpdg0mI3jyoS192HbxuOcQrABLHuOHXuC/6xiF2kmfE+rgONwe7ObqkBvpmEtsIGBV0a4rtm44b1OQWUTlQZX+PoHmRPPVBEtQEExtAEsPgUWZhgyZCx0T9tGQc2J8KS4pz125Fep6mvZVldi7A8ygV4hyYJuQzctU93fKfPuFa6owiEyhMdjQZquxP8ApnEL0rakxfZnqopmxHnWKUWPnw3zrEEyd3WSIALDioL3ksniS8kL2HK8zHK9USmHd2fMCN/qb21O7Qy/sgtXymXzQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cea14e83ee828a8752948ce9b617cee97cfced7703f0ba518dd4b29e9c5f1cd6",
          "output": {
            "entity_classification": "essential",
            "infringement_breakdown": [
              {
                "fixed_max_eur": 10000000,
                "pct_based_eur": 20000000,
                "penalty_eur": 20000000,
                "type": "art21_measures_absent"
              }
            ],
            "max_penalty_eur": 20000000,
            "mitigated_estimate_eur": 20000000,
            "mitigating_factors_applied": 0,
            "turnover_pct_exposure": 2
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-144-nis2-incident-significance-scorer",
      "tool_version": "1.0.0",
      "display_name": "NIS2 Incident Significance Scorer (Art. 23 Reporting Threshold)",
      "mcp_name": "score_nis2_incident_significance",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-144-nis2-incident-significance-scorer.html",
      "description": "Score whether an operational event meets the NIS2 Art. 23 significant-incident threshold (any of: service disruption ≥1h, ≥1,000 affected users, estimated financial loss ≥€100k, third-party cascade, malicious act, cross-border impact). Emits significance verdict (not_significant / significant / critical), fires 24h/72h/30d reporting clocks, and identifies recipient authorities. Root stage of nis2-incident-and-supply-chain-readiness chain.",
      "input_schema_ref": "chaingraph/art-144-nis2-incident-significance-scorer.html#manifest",
      "consumes": [],
      "feeds": [
        "art-145-nis2-ict-supply-chain-diligence-scorer"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3cedfccda08a549a70693a65306d63f4593eb7be89533f956fd171400b76bfd2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AqW7WMgUgifeR3BVHlhGahd1Mdgpls5sPEzajkmdJXcW8hXE2CeNWYmtEGf5EZVVmdlyoHLxSn6dPRPJrffvBSSdYWxfU335fSlKftQyxWK/t/421x/UMa4s2NqJgchaLjT0NvL7E4E18b6Edq1jXJYh/Qncrfvo2jhKQ3SnWiApBPkFpLRNTw+VOEUVpd/KzgzqAKLnTmKg6L7M8e3fbxBSbby3XP1gEd1/tBZfzyUzX/ZARNiT2HWa6PngHWpHHyb+ScYN9GieVg2MMb4cRqri2PrsBLJ8DXp/sEzt06kaxqJyBu8za2xsRJDhyYQFIivSBcIDxihh1IMlqbppZQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4b3d54970b0fb586ea451d0b55674b3322e00fd974a1f1ed54ade8444ca4d385",
          "output": {
            "early_warning_deadline_hours": 24,
            "estimated_affected_users": 5000,
            "estimated_financial_loss_eur": 500000,
            "final_report_deadline_days": 30,
            "notification_deadline_hours": 72,
            "recipients": [
              "national_csirt",
              "supervisory_authority",
              "sector_regulator"
            ],
            "reporting_required": true,
            "service_disruption_hours": 4,
            "significance_verdict": "critical",
            "triggering_factors": [
              "service_disruption",
              "significant_user_impact",
              "considerable_financial_loss"
            ]
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-145-nis2-ict-supply-chain-diligence-scorer",
      "tool_version": "1.0.0",
      "display_name": "NIS2 ICT Supply-Chain Diligence Scorer (Art. 21(2)(d) / ENISA)",
      "mcp_name": "score_nis2_supply_chain_diligence",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-145-nis2-ict-supply-chain-diligence-scorer.html",
      "description": "Score ICT vendor due-diligence posture against NIS2 Art. 21(2)(d) and ENISA ICT supply-chain risk framework. Seven controls: ISO 27001 certification, vendor incident history, audit clause, breach-notification SLA ≤72h, EU-only data residency, sub-contractor mapping, availability SLA ≥99.5%. Emits risk score, tier (Low/Medium/High/Critical), active flags, and remediation checklist.",
      "input_schema_ref": "chaingraph/art-145-nis2-ict-supply-chain-diligence-scorer.html#manifest",
      "consumes": [
        "art-144-nis2-incident-significance-scorer"
      ],
      "feeds": [
        "art-146-nis2-governance-readiness-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5568ba2aecf8ca9923d20122d22c9cfd8950d2e781ea7cc58041c885e3de85b4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GRpW49bOACKaOFpavocfd/7GQAaX1ZIU3n4t1uE84I0ZWZmKNRnEEdvs0eAYc/KO+Hx0pAZNFqr0uiIOEKpd2hQrpVqsNMBXGHpcuZZPCpckts5B17BhTeG2N9c8qVL+E72rwL/JDEqUBcNBLw5gwqG+pfRB5MZWX1eZ4/YekYEv9bHBerP9yTeMP0nGggPqEY1H+g5QA62ttR8k9S8Lhg2Oj0vk40u12P8TGfQvNG7EkCK2ouz7MrPcY2Ni9VVdLWLWSc3UCusrn1JaiMZJgagXolYsfJlpFUYt/VZ+OOEW+5VUpGyHl+XkvRxGwEMiDCfgBpYR2xS39XhQN9DOrg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f6cb28e18e77723ace52cdb18e2cfa05888fd9a6d077b9f11293ef150cf90285",
          "output": {
            "active_risk_flags": [],
            "enisa_control_coverage_pct": 100,
            "remediation_checklist": [],
            "risk_score": 0,
            "risk_tier": "low",
            "vendor_incident_history_12mo": 0
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-146-nis2-governance-readiness-checker",
      "tool_version": "1.0.0",
      "display_name": "NIS2 Governance Readiness Checker (Art. 20 — Management Body Accountability)",
      "mcp_name": "check_nis2_governance_readiness",
      "mandate_type": "compliance_mandate",
      "wave": 26,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-146-nis2-governance-readiness-checker.html",
      "description": "Assess NIS2 Art. 20 management-body accountability: board approval of Art. 21 measures, quarterly status updates, CISO designation, cybersecurity training coverage, and board review freshness (board_review_age_days). Grades governance A–F; flags personal liability risk (board has not approved Art. 21 or review stale >365 days). §16 proof OPT-IN signing candidate. Terminal stage of nis2-incident-and-supply-chain-readiness chain.",
      "input_schema_ref": "chaingraph/art-146-nis2-governance-readiness-checker.html#manifest",
      "consumes": [
        "art-145-nis2-ict-supply-chain-diligence-scorer"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6492a6a83f4e5bbfcd5e1a759af227e26770c5c65a70fc8fe7028c150712f280","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KgtV431eTIPYin/QU5ldQzOzrFFfFUtzS1Vz6j5FdYYMVFZx0xuVOeZNAMkpofUF8fKT59tzSpfPjpCwfFsBBioHnXbfF8FNn9K4ZYCgbG+i0JYKSQ+Oqo61Aw+kEETCAfUEjnSQUDgxnzC/FvRogZrtB8i3piKb4gE07zWfQoQknI5paYmX/7kfdp9hh5/dSLfvwB+59xVlJ1Goa3gaMQGla/ACHMK7elkp2k9x7TQlcRlBG8+aVOQQT9Z80NwvGAZPGNJhbWmBdPmlAKdfvhxPRclGF9jyPaG6/x/QFjUaUp0g8yXYZ02ZCXWkMMHlS/e2ZA+ohOGVimxPiJ14zQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b325385b0a2b366a747e8b1d9c54a58b0ed3b3cf4b654fc548da238013da343a",
          "output": {
            "board_action_items": [],
            "board_review_age_days": 90,
            "controls_met": 6,
            "gaps": [],
            "governance_grade": "A",
            "personal_liability_risk": false,
            "total_controls": 6
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-147-mcp-server-identity-attestation-validator",
      "tool_version": "1.0.0",
      "display_name": "MCP Server Identity Attestation Validator",
      "mcp_name": "validate_mcp_server_identity",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-147-mcp-server-identity-attestation-validator.html",
      "description": "Validate a new-spec MCP server identity document: required claims (subject, issuer, serverInfo), well-known path correctness (/.well-known/mcp-server-identity), and attestation reference present. Caller supplies decoded document plus a signature-valid boolean: zero network, zero PII. Feeds the RFC 9728 authorization metadata validator (art-148). New MCP spec server identity check active 2025-2026.",
      "input_schema_ref": "chaingraph/art-147-mcp-server-identity-attestation-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-148-mcp-authorization-metadata-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:53a835c4eb29c70aecbe5a595bc2d64466e1391b6c0fcf4a2be48f795a51f73d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Cdv4hiyNMOtENn0k7bmuom889HSHV/Gj2mS2G6k3VEEgSG1HpH3ap40pVEZ6xvTzXr1uxp7Inp45hOHSA0CbSRFpIgCVNCEy1DZ0YXPq2tJ8Tm/UJAzTcP6hRNGExon3Ep/HM1/ey7Ep6037LVeFD13K5yhK1Gj0SuJQnuhQD2cGDw+45c4erlj/NLLqjIft+eFlSPAVbKtui94m0a0aFgPQZhwx34Xh+Gi+vxXszP54QmLm4wjij8UL+XbGP9hcEX/gZrgdsTvnJWi9PdOnaBRwoK7uNVLRd0r3p5MffYIOz/nrjcX7SB2JAPuHzipoBrvgMte4cQXWdRRN58Chjg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b75faac5c74133f0ce56e80f99596ffc469ce96c77920234c970d3790a6718b1",
          "output": {
            "attested": true,
            "has_issuer": true,
            "has_server_info": true,
            "has_subject": true,
            "identity_valid": true,
            "missing": []
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-148-mcp-authorization-metadata-validator",
      "tool_version": "1.0.0",
      "display_name": "MCP Authorization Metadata Validator (RFC 9728)",
      "mcp_name": "validate_mcp_authorization_metadata",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-148-mcp-authorization-metadata-validator.html",
      "description": "Validate OAuth 2.0 Protected Resource Metadata per RFC 9728: resource URI (https-scheme), non-empty authorization_servers, scopes_supported, and bearer_methods_supported restricted to header/body/query. Flags each missing or malformed member. Consumes server identity verdict (art-147), feeds registry entry conformance check (art-149). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-148-mcp-authorization-metadata-validator.html#manifest",
      "consumes": [
        "art-147-mcp-server-identity-attestation-validator"
      ],
      "feeds": [
        "art-149-mcp-registry-entry-conformance"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3165d9c916ead557ee007631e3a0dd32f84782a04aa5df796c776d31c963bd8b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ho4wUA+KYCgsCH64SBBZAGTGqFc4rd4aAbkeaDmM+jInJF9NLNxITusAcRWcPVIYBfYgGOElCAKxKLO2p58Z8w+HUd3WTtncPgOPDhKKw3Ww/cpvyJZLF6HLd3SZcSuiBwBvYS174+1zCRlWwqPjwJZCjAZ7kKhuHFETw4SRpDIgvVGGISMFuG1yRl+UXXAAWIvh6rj+DbV5ANB4wkviDBaiK/b405RR9Z7rjCcdbi7Bt7ea6K7Tma3aGwBa3TCyBNdXWgk9r4Fep+8SN5/tOJp9ItDsYS2vz2sme06kvAcjQNV8Xzqo5bCVOXuIxKuoh7ZPHuUzbX6FmAhM3cNyyQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:43b0ffacb0627fc9e7be626f9f750f719768682b2217b725291676156522e095",
          "output": {
            "auth_server_count": 1,
            "bearer_ok": true,
            "metadata_valid": true,
            "missing": [],
            "resource_ok": true,
            "scope_count": 2
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-149-mcp-registry-entry-conformance",
      "tool_version": "1.0.0",
      "display_name": "MCP Registry Entry Conformance Checker",
      "mcp_name": "check_mcp_registry_entry",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-149-mcp-registry-entry-conformance.html",
      "description": "Validate an MCP Registry server.json entry: $schema present, reverse-DNS name format (namespace/name), semver version, and at least one of packages or remotes populated. Terminal stage of the mcp-server-governance-conformance chain. Exports governance attestation with execution_hash. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-149-mcp-registry-entry-conformance.html#manifest",
      "consumes": [
        "art-148-mcp-authorization-metadata-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:490f01e12e64fd3fd247586762fcc49a28e499af0f6bff4bbe0cc992e630448e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Co5VDvE3yQu6tec9VGmqw8M3oraBsPl5QvWXXEkbhW8oosTgsr9wOueBnbt6Np/0GuSLpU9zQjpKr6VZiL6/vxJaQwulMLGCqt1P1qw07C8y+v+fbNJNAivcGfvxz4dML8i3kOHNhwQe3BtgW9SjiFJiw4ats45W2Vd1NPilj+kEHbJ5io+3gzjuDhE4tStM2psih91KwlXg9PpMJzkgsAk+LaIJZ3J4KK9OxxNHgng8lI6To62+WhrFzSS9gq31ARs2bSNtvZGWwt6A5QQXifg9kBeiVLd/6FghVlAPqDowI1t5E+duvsn+Xgdx7ITHRB2mb+5wviBmgBwRRiaryQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b9081fcbd16f6a4de854662b19dd9cb52d3e1553f25447887f48f83e5e305601",
          "output": {
            "entry_valid": true,
            "has_packages": true,
            "has_remotes": false,
            "missing": [],
            "name_ok": true,
            "schema_ok": true,
            "version_ok": true
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-150-mcp-tool-scope-revocation-auditor",
      "tool_version": "1.0.0",
      "display_name": "MCP Tool Scope & Revocation Auditor",
      "mcp_name": "audit_mcp_tool_scope_revocation",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-150-mcp-tool-scope-revocation-auditor.html",
      "description": "Audit scoped and revocable MCP tool access per the new MCP specification: each granted tool must carry an explicit scope array, a revocation endpoint must be configured (https-scheme), and token rotation posture (max age vs elapsed time, next-key presence) must be healthy. Emits per-tool grant verdict and gap list. Feeds the on-behalf-of mandate validator (art-151). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-150-mcp-tool-scope-revocation-auditor.html#manifest",
      "consumes": [],
      "feeds": [
        "art-151-agent-obo-mandate-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:43b2320d22c9bb43d9f57049be817347d84f13e34532dbec3d13725872886ba2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KGu2yErrXuW4ZBLcEQgwjhubCB0mf6FLO5+4NH3ZAVQE9rFnvlp0m/mCRjJJh+zRqAhtqMvF33Kz1Wqkr+QI+BSE9Rxu8fLs6Pf702wxmyiiTSlg61TyPYCHqTNjpcxvITMqchSKjFrG0qfbPYWl0cU4406tRUd+kkiHn2wkUcoMjM26nw8ImDhKXKC1ytiUsJqDH/r9kcpSXVW4qkP3tCA8FkOqg8oP0RHOeJ1VQ1dXfWyOXHHXYYt9ZPMGb8jGLksIqe6jWdAEYZoOtl2MCCY55qA5joBbixANS2t2YO4aKN0n2/4r6Gys8p7SDYNZiCQe12V57Q1qkSQogvDUKQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:fd6f63b8a386c172c843a6c2a5382c56af85518a8498a55b1a9b8caee294df78",
          "output": {
            "audit_pass": true,
            "revocable": true,
            "rotation_ok": true,
            "scopes_ok": true,
            "token_age_s": 1000,
            "ungated_tools": []
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-151-agent-obo-mandate-validator",
      "tool_version": "1.0.0",
      "display_name": "Agent On-Behalf-Of (OBO) Mandate Validator",
      "mcp_name": "validate_agent_obo_mandate",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-151-agent-obo-mandate-validator.html",
      "description": "Validate an agent on-behalf-of (OBO) mandate: subject (the user being represented), bounded scope array, intent string, and a non-expired validity window (caller-supplied now_unix, no clock reads). Mismatch or expiry returns REFUSE. Aligns with the AP2 mandate-chain pattern (art-01). Consumes scope-revocation audit (art-150), feeds task lifecycle validator (art-152). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-151-agent-obo-mandate-validator.html#manifest",
      "consumes": [
        "art-150-mcp-tool-scope-revocation-auditor"
      ],
      "feeds": [
        "art-152-mcp-task-lifecycle-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3e6402dbb86314d81a2323ad9509ad6ea85359eeaed521b4442a944f53a4ad54","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IDOXI+XePpJWKmj6iWUHbi9iYOvUjhYK6dIaV8SFMKgKLGBWTjZwc/NoIIQH7RK6+V1TFqljqnXhekziIXkb5QuWwD0i6INOVPH4zSLtSWFAOFlkJaSRwB0/0ulIYQTzI6i3z/7Z+rjqkmzCiOR9TIbL7tY4Ye/RZgiiscctLS4ZCyU6uZocdF5D8lqDK2EIc8+z5xQN9T4DkD0H2DOtCCocVMn7nWz1NmM+cgV7Ap5qkoku1ivFL5n6TstV+dlUCnu92hNaLIwPJAR5agRmoQOWunw2hq+xzbnJqx9AtskuOCxDsusrTa12NZ/VA4DqpIcBJODiGZXF19Cm3ouPbQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:132e5aaab12c312f864cf53a616693c8bd1b4ba66a3813c9e3db812d4b04bc40",
          "output": {
            "gaps": [],
            "has_intent": true,
            "has_scope": true,
            "has_subject": true,
            "not_expired": true,
            "verdict": "ACCEPT"
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-152-mcp-task-lifecycle-validator",
      "tool_version": "1.0.0",
      "display_name": "MCP Task Lifecycle State Machine Validator",
      "mcp_name": "validate_mcp_task_lifecycle",
      "mandate_type": "compliance_mandate",
      "wave": 27,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-152-mcp-task-lifecycle-validator.html",
      "description": "Validate that a long-running MCP task state transitions are legal per the new MCP specification state machine: working to input_required or terminal states (completed, failed, cancelled); input_required back to working or terminal. Flags each illegal jump. Terminal stage of the agent-authorization-lifecycle chain. Exports lifecycle attestation with execution_hash. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-152-mcp-task-lifecycle-validator.html#manifest",
      "consumes": [
        "art-151-agent-obo-mandate-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4e79c3b40641330a83eb57be5d97170403a99d2473aed7aa63205b19f116334c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HOxVpb/CJYMDRjmGCYJqnKWtY6W5rvODjh/NEWsyq8QJGDSE2qKYHnVy2NTnsgLdo5/AHheu9NCrbKghlW/d4iek4SUY24RiwjDu33hW1oFNFaP/cdcZjpLQY68U/7CKGRzLGVml5EkkGeyTvQke2zrFSvcnpa4lqAMoc3i/9ccIxIejs7EwUfj4z+vIWE61KKDyL7aShM00QpOgOgPKAQa76QaYoUe3KzZqhLc6gG4B0TotxBTl4cxDfnR7Z2USEsaTuDSKa9hk62txAOSuS3QpYrNzUlonwyQnlwrdYOgVG6Qvr8iHQ++fSJbzgQMqIfuiycnzUS+VX3LNmTOAIA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:215ed9bd2894a54272548fd48ec1f4074bc2cf5cc5d20fbf3bc99fede4245be6",
          "output": {
            "illegal_transitions": [],
            "lifecycle_valid": true,
            "transition_count": 4
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-153-emir-trade-report-field-validator",
      "tool_version": "1.0.0",
      "display_name": "EMIR Trade Report Field Validator",
      "mcp_name": "validate_emir_trade_report",
      "mandate_type": "compliance_mandate",
      "wave": 28,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-153-emir-trade-report-field-validator.html",
      "description": "Validate the required-field subset of an EMIR Refit ISO 20022 auth.030 derivative trade report: action type, both counterparty LEIs (20-char ISO 17442), UTI, UPI, notional, currency, effective date, and asset class. Catches missing or malformed fields before submission to the Trade Repository. Feeds UTI completeness checker (art-154).",
      "input_schema_ref": "chaingraph/art-153-emir-trade-report-field-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-154-emir-uti-completeness-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b3a2970b68c72ff427673d0a3b075bf03c85055a724acf7605b9358b55973c22","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L0YJhw8ZDk/LlkeGCYWTfOIvSkv7z4xCovBsni2xmoAeu9Vs1kd+f0Eow/7zbrGhyHhApExM4nSZPnpL3x5+sCZfUqgmM1kmq7PSEyYXLAfU5PGvTcrYIXkVGIuQtF4DIDOQSBUjDnmI51BeQ8gFTpFvcV8VNZ4m/scdLGjZhfcHK9GNfCrgh+6Q5pzS2r4m8l7r1XJ3guvfUiEnnSIRNSzdYKOv6rAnzKBQT96iK7bsgkmfqgXfQyXvfXC0eD9oJPZjCXq4D83oZYv2BgHWTuMVb3AyCVM/eWMvUhVszTkX6CLIk+TQCwY4LY8ntn1SkDR+e1+sm2LmPFFXUl7IQA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4a915e240b0b8d643363eea5fef45524264b6213ee9ea581eb819548634819fd",
          "output": {
            "action_type": "New",
            "field_count_checked": 9,
            "missing_fields": [],
            "report_valid": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-154-emir-uti-completeness-checker",
      "tool_version": "1.0.0",
      "display_name": "EMIR UTI Completeness Checker",
      "mcp_name": "check_emir_uti_completeness",
      "mandate_type": "compliance_mandate",
      "wave": 28,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-154-emir-uti-completeness-checker.html",
      "description": "Validate EMIR Refit UTI format (ISO 23897, 52 alphanumeric characters max), generating-party identity, and T+1 sharing timing: UTI must be shared with the other counterparty by 10:00 CET next business day (approximately 34-hour window). Caller supplies Unix timestamps. Catches late or malformed UTIs before Trade Repository submission. Feeds UPI validator (art-155).",
      "input_schema_ref": "chaingraph/art-154-emir-uti-completeness-checker.html#manifest",
      "consumes": [
        "art-153-emir-trade-report-field-validator"
      ],
      "feeds": [
        "art-155-emir-upi-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a1345c863f22e1fa2e33494af805aa71608d1f4bf3f5d8a484ace002f1cb5601","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BYzNUwmAZ/fF0mRyduf8C0IdwSqr2/QELZ/0rR/EQacRco4G0NxpOGA9t+b5jI4BVLoM1K1bYXNk+VKy6ThrNxrFZbpj37UAmOHM9LrpP/ZV5mYzivu4QzeRlerRlYNNE54gvN0esjoXdT//FX2gTEj7CFTd3VDyUTo6V+Jzb1QnsZZeY9WhyPs0O7yux4WnObmpD+P/tEJZYU/RSGBTYiG4HwG0tBXXabsXvq3uGlx7ZvQWx5IPVTfsKXi4Tn+dD2UQGXtb/toyF9MOduQX+FMwJLpJduOG16a6+hEgk8URK86JpCjll/myQQDOdBI6k5AMDSHueGLTGkdupKF70A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bbd32161bbba0f6573b9c28fd3fd0d47fc9a4ce53e73f183a25ab6404978b304",
          "output": {
            "format_ok": true,
            "generator_known": true,
            "lag_h": 16,
            "shared_on_time": true,
            "uti_complete": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-155-emir-upi-validator",
      "tool_version": "1.0.0",
      "display_name": "EMIR UPI Validator",
      "mcp_name": "validate_emir_upi",
      "mandate_type": "compliance_mandate",
      "wave": 28,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-155-emir-upi-validator.html",
      "description": "Validate EMIR Refit UPI format (ISO 4914, 12-character alphanumeric via ANNA Derivatives Service Bureau) and product classification consistency: asset class must be a supported EMIR class (IR/CR/EQ/CO/FX) and instrument type must be present. Terminal node of the emir-trade-report-validation chain; exports field-level validity verdict with execution_hash.",
      "input_schema_ref": "chaingraph/art-155-emir-upi-validator.html#manifest",
      "consumes": [
        "art-154-emir-uti-completeness-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2be3027f20c68ebb83ae9bccb958a04a894f56b2b7acda2a0ff5bf0e091d6f0f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Kiex6iol6uFtmybGzr98bmvO1YX/gA8SUlZ37xhBkxMo5UiWfMFHslUk4YMJFV1nbZqsVbaBO14KPb+f/v/ofikETFQgZH4Um9ot8dces34LZCCuqJzoFZlWTqdHfBxRHDzXGd+Lo1MV4Kg7IeuSpRjk0Nt1bx0STBytLvaTxCEK/dQSUCGR8NNoqoUj2cPH8eF6dUfGIG1WRBwC8IDoqCqTUuLURapjpfFSJm8W1zLXI+Pz0+w/1dGENTAQB12JAhRzfbGUQhJqjcG54hF7gpA+FTF9bocaH7kntjnLrbsU7n70YLM8UqVqe9sWXW0lN3F4nIvl31RTneF4GUmpNQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:86627df2d36a6bd1537759d0b22337778914ae8b9f78d3e930b725adb1b6e63c",
          "output": {
            "asset_class": "IR",
            "asset_ok": true,
            "classification_consistent": true,
            "format_ok": true,
            "upi_valid": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-156-emir-counterparty-pairing-reconciler",
      "tool_version": "1.0.0",
      "display_name": "EMIR Counterparty Pairing Reconciler",
      "mcp_name": "reconcile_emir_pairing",
      "mandate_type": "compliance_mandate",
      "wave": 28,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-156-emir-counterparty-pairing-reconciler.html",
      "description": "Pair two counterparties EMIR Refit reports by UTI and reconcile the caller-supplied matching-field set (up to 148 fields per the 2026 escalation) within a configurable per-field numeric tolerance. Identifies reconciliation breaks so a firm catches the pairing failure before the Trade Repository rejects it. Feeds lifecycle event validator (art-157).",
      "input_schema_ref": "chaingraph/art-156-emir-counterparty-pairing-reconciler.html#manifest",
      "consumes": [],
      "feeds": [
        "art-157-emir-lifecycle-event-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6fcd67412ed75171ed02a708b27a3f74129a434cdb9c66be88c7442e28c03910","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Bkx+8a2INTVO3NxzLYIuedjJabppPDQ3bslOSUBu6cgIKUu0gc1lhJ9F5W0XB+bRVDrI+5F+jOsSzmPpi4Ymuh3NfIxcA8Erj4D8IzatWRsxDHlAPWpf4fpz+5JNls5KGNcJFcfllUBF2gjheNvl6/s4r7b32rc+g85OfKHnlKArG569k2bU8eEDWiR/SEbaxnj11HNiwYfasEleygTmZhzyzo03feVe+0MAltN+tuvC3onQJWGlSdGctm9IFcEXBgehjvu87L3+NWRSgyw2OjzoIBfEAvr823/yq2hoOcUh8ELdyoktXzAjkFMgeDQDlJxGzCsmAVACZxpSGXUu8Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:03b4980aa42560c88badc630eebbfa577f65e31bd7721baff8325d2c5439f693",
          "output": {
            "break_count": 0,
            "breaks": [],
            "fields_compared": 2,
            "reconciled": true,
            "uti_paired": true
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-157-emir-lifecycle-event-validator",
      "tool_version": "1.0.0",
      "display_name": "EMIR Lifecycle Event Validator",
      "mcp_name": "validate_emir_lifecycle_event",
      "mandate_type": "compliance_mandate",
      "wave": 28,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-157-emir-lifecycle-event-validator.html",
      "description": "Validate an EMIR Refit action type against the prior reported state of the UTI: New/Position are legal on a previously unreported trade; Modify/Correct/Valuation/Terminate/Error require a prior open trade; Revive/Correct/Error apply to terminated trades. Catches the most common Refit rejection cause before Trade Repository submission. Feeds readiness diagnostic (art-158).",
      "input_schema_ref": "chaingraph/art-157-emir-lifecycle-event-validator.html#manifest",
      "consumes": [
        "art-156-emir-counterparty-pairing-reconciler"
      ],
      "feeds": [
        "art-158-emir-reporting-readiness-diagnostic"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9d3b6b68b0c7bf0cd0b08b8e320a2f27a849be1e49c1044ee5a8fd4c432c9191","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CfP3A8Q/StIogsogEvxsN8ZPX0F43qYPE8X8nwgqiXkTJm2WdrMbJ1m8GJMotJJaVQvysTR8Heq26sMSCNqcJSxzWrE1/rbiXITQ0I63z5KZu6gbA+yB5Fk64/fdKgW/E1JWVBLAuLmtwgZlGiOdpVPz7CTK0IwqzF/hgD0KsWgYoHIdV1dAYvX6NBkvi33n9NWDC4j4qtIGnw6AQvGAyA+AAfB64CsP+pC+oxtkS52t8mB6kXhbft8IWfWgeNH+H6ti1yfuxuNK1DHhT6FHGWI5ZWsl8nyt4q5T8z2XUF4CVdmb0OcnZYzSz/jqzvyoM95WuIo3omzrbfcYpQKbCQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5a621351cfe3701b1b6e32dcfb55549866b49d098cce5fdd08a85e4aff912bf5",
          "output": {
            "action_legal": true,
            "action_type": "New",
            "allowed": [
              "New",
              "Position"
            ],
            "prior_state": "none"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-158-emir-reporting-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "EMIR Reporting Readiness Diagnostic",
      "mcp_name": "run_emir_reporting_fit",
      "mandate_type": "compliance_mandate",
      "wave": 28,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-158-emir-reporting-readiness-diagnostic.html",
      "description": "Grade a firm EMIR Refit reporting readiness across five dimensions: ISO 20022 format cutover, UPI sourcing via ANNA DSB, UTI sharing SLA (10:00 CET T+1), reconciliation tolerance configuration (148-field set, 2026 escalation), and lifecycle action-type controls. Returns an A-F grade and a gap list. Terminal node of the emir-reconciliation-and-lifecycle chain; exports readiness attestation with execution_hash.",
      "input_schema_ref": "chaingraph/art-158-emir-reporting-readiness-diagnostic.html#manifest",
      "consumes": [
        "art-157-emir-lifecycle-event-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ba0317cc05e0610e68e6437fcb9a46d69ab6269f880d37d61987314c1142faed","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JZFT+QnNmNYbf200VTGpY6DZcmD8tH4RS2gcBSSxaJInSRTQ78zxG916GDMQ8Sy6JzrEGZ9CPROf1TIzO1zdKzBTuQQAFhQmHLwSmIigDKbyUE9JSwEk5yHtxHlmSRbuH1xN+z/HmNm1leXTSDHJdi6dKAUr6+92RD4u3Q1q4d8a+x6IL/1zIJ1aSnXOG1E47aPxfR5Cr8w4SGgBiBbMvibnwcSPW0HGBfFPDBg68u7U7dgf6ihFWjVnkz+GVqC9CZ0h0i2WS1S7Cfz7os/RU262KfnLgBgDyu57w0iFaqMr/WyC+Dp3VJXMnISmtKAviBW5q7Tn3gshk4eUNlC5LQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0d9091d4344259bc991c7b23ca9910baa0365a1ece0ae16120a624cd21bfb13a",
          "output": {
            "dimensions_passed": 5,
            "gaps": [],
            "grade": "A",
            "ready": true
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-159-vida-einvoice-en16931-conformance-validator",
      "tool_version": "1.0.0",
      "display_name": "ViDA EN 16931 E-Invoice Conformance Validator",
      "mcp_name": "validate_vida_einvoice_conformance",
      "mandate_type": "compliance_mandate",
      "wave": 29,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-159-vida-einvoice-en16931-conformance-validator.html",
      "description": "Validate a structured e-invoice against EN 16931-1:2026 mandatory field requirements for ViDA Digital Reporting Requirements. Checks invoice_number, invoice_date, currency_code, seller_name, buyer_name, seller_vat_id, syntax_id, vat_breakdown, and total_with_vat. Returns conformance verdict and missing-field list. Root node of the vida-digital-reporting-requirements chain. Zero network, zero PII. EU 2025/516, mandatory 2030-07-01.",
      "input_schema_ref": "chaingraph/art-159-vida-einvoice-en16931-conformance-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-160-vida-drr-transaction-reporter"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:03f4ebd802b04ae45993fa918c7bfb974304e19186c9a139961b6cf700258d1d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Am3KOkODMzMyuE7F7VF5COq9UYErRLJxPbmwxhS0vukm4BWOOUuHVdFVqcdbfKkMeVvxSggD9eTICo6bNsIZyiaLK2c/cP0M+bFqMJ9f92KZ98ERs/Pjm5NftXi0QBLZFhRGVkGIorbuRIRX5kJwdtvwx1nxM6Qk/tNnEKzBxiYnjJyDve3cH7ksSAq/uY9g5xrMZ8oXJJuvyIDORN1ijgi5FhtogfUKJRuPJNMJ1GjpXV9FCByGPb7oo8aC0Vr+LZjuBjb6MMYDi2O8Om6rmVD6Vqb11kG2K20jozKjzt4FZ7G9+sUBBlPTzj9yz/RBVLl37fUcB1RNRPOmZsSkGA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a9b4c3c4e746812d7ccebd68077f7a101d8104ab76a5793936ab8367b9b531ff",
          "output": {
            "conformant": true,
            "currency_code": "EUR",
            "mandatory_fields_checked": 9,
            "missing_fields": [],
            "syntax_id_valid": true,
            "total_with_vat": 1190,
            "vida_ready": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-160-vida-drr-transaction-reporter",
      "tool_version": "1.0.0",
      "display_name": "ViDA DRR Transaction Reporter",
      "mcp_name": "assess_vida_drr_reporting_obligation",
      "mandate_type": "compliance_mandate",
      "wave": 29,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-160-vida-drr-transaction-reporter.html",
      "description": "Assess whether an intra-EU B2B transaction falls within the ViDA Digital Reporting Requirements scope and calculate the 10-calendar-day reporting deadline. Checks supply_type (B2B), distinct seller/buyer member states, valid VAT IDs on both sides, and transaction_value completeness. Returns in_scope, reporting_deadline, and completeness gaps. Middle node of the vida-digital-reporting-requirements chain. Zero network, zero PII. EU 2025/516, mandatory 2030-07-01.",
      "input_schema_ref": "chaingraph/art-160-vida-drr-transaction-reporter.html#manifest",
      "consumes": [
        "art-159-vida-einvoice-en16931-conformance-validator"
      ],
      "feeds": [
        "art-161-vida-recapitulative-statement-migration-assessor"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d7f2833446d60e8f7303219930929c8108dd595e8e1574ddb37f60d366d375c8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L45c8VqLdLtI8PX33z+JU32jhzOq36tVak0cQPoGsrATgh2l6aiteZ7lWhGyZrHqhnHXC4Ua1ckVw5X2tU4G9i84VCHu2Chi43yciaqWCS/Jdc48hbUwpJIg8+a7AJ2YJ+pX7Hx/atq7UH51QePEFLjKIcK206JEHIBUGjk5U7EpKHrSN0sEW+eLzPTKbZ1RfhzSLTGqvsfBR/hE79KLVQWJ0IyGmWXpCaLGcUsH3HOAYfSOGQYdeC8czYL4TkoTIbHW4BIWBSMCSY+LDBVnsZQUVpm5ohiRE3ryw1EAldINOtXiccHsgJ6S2I+25OIQb7Avq5EIIbt0xrkvihMIHA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6767989466c348cab82122f091801459d3d0be65654e19b959a5113e3c3d9a0d",
          "output": {
            "buyer_member_state": "FR",
            "data_elements_ok": true,
            "drr_in_scope": true,
            "intra_eu": true,
            "is_b2b": true,
            "mandatory_from": "2030-07-01",
            "reporting_deadline": "2030-08-11",
            "seller_member_state": "DE",
            "transaction_value": 50000
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-161-vida-recapitulative-statement-migration-assessor",
      "tool_version": "1.0.0",
      "display_name": "ViDA Recapitulative Statement Migration Assessor",
      "mcp_name": "assess_vida_recapitulative_migration",
      "mandate_type": "compliance_mandate",
      "wave": 29,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-161-vida-recapitulative-statement-migration-assessor.html",
      "description": "Assess an entity's readiness to migrate from EC Sales List (recapitulative statements) to ViDA Digital Reporting Requirements. Checks presence of four ESL fields (seller_vat_id, buyer_vat_id, reporting_period, supply_type), pre-2024 domestic regime flag (harmonization deadline: 2030-07-01 for new regimes, 2035-01-01 for legacy), and transaction_value completeness. Returns migration_ready, drr_gap_fields, and harmonize_deadline. Terminal node of the vida-digital-reporting-requirements chain. Zero network, zero PII. EU 2025/516.",
      "input_schema_ref": "chaingraph/art-161-vida-recapitulative-statement-migration-assessor.html#manifest",
      "consumes": [
        "art-160-vida-drr-transaction-reporter"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:057a79e66cb2603cd0a4c91cc179046b19ebe82956a4c3a37cf10e5a3ecd1cfb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L1V7ohfxlYyan3GP4UtPp4bF3vyHqUBm0ZF4NiMV6AoKCY7evuxPpaoNRRnc9JezPKc1PiRvQp/pH3M3njOXBh5U3lwvcLprkU0PfdTalPKesVF48K+hF5ROo2wx12LgF5ohuM8TFE4Yi/WJU/m+GVfAdBBKOAWFv9WYPtPRBrkhXYaCoI+f/GV6TpilooA4zz34I7+bw/ZE9j+A7cuLrAMkpRQ6P9KpPcuQF7ZcYH+TCXRGFh+Arw5fBRZXO0jBJaYeyc2N2MOiSnL/7WeapOBQKViV6DshvIqNi2xZbykHmFC5FGpjybSH8rS0xOD4yw/zPInnvSwsrmnUHsWSqw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:33935db59c19dd37252d639257327241dd805f1d076504cc8eb52bbe8272fcc8",
          "output": {
            "drr_gap_fields": [],
            "esl_fields_assessed": 4,
            "gap_count": 0,
            "harmonize_deadline": "2030-07-01",
            "migration_ready": true,
            "pre2024_domestic": false,
            "transaction_value": 50000
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-162-vida-platform-deemed-supplier-classifier",
      "tool_version": "1.0.0",
      "display_name": "ViDA Platform Deemed Supplier Classifier",
      "mcp_name": "classify_vida_platform_deemed_supplier",
      "mandate_type": "compliance_mandate",
      "wave": 29,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-162-vida-platform-deemed-supplier-classifier.html",
      "description": "Classify a digital platform as a ViDA deemed supplier under Art. 46a (amended VAT Directive): short-term accommodation (≤30 consecutive nights) or intra-EU road passenger transport where the underlying supplier has no valid VAT ID causes VAT liability to transfer to the platform. Returns deemed_supplier verdict, sector_eligible, and applicable deadline (mandatory 2028-07-01, MS extension option 2030-01-01). Root node of the vida-platform-and-registration chain. Zero network, zero PII. EU 2025/516.",
      "input_schema_ref": "chaingraph/art-162-vida-platform-deemed-supplier-classifier.html#manifest",
      "consumes": [],
      "feeds": [
        "art-163-vida-oss-registration-router"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:523805e9550b3f35628e46722c867689df3e80d5777a5961f2d8139922715403","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HWquwtSiupIfFJ2Bacx6b4PNbWXM3h19LQOc50yyFpYDS+PAGvHJzYuy9HcSOhMNn1Qh+cLVejqMkiBvdLrFaQYQc1AlA1yUxlwGR1waS6x5xbBsdqr+0M9mdSRowFPXHBNoIJObDRIBFot1KjHectUrAL5esnblco3krl0lC30ji+bMejDLcPjiAPK48/+WvyaffY8CGLHfHUX/gfKDjhRk+vhFOE0ftHgANoLo+jD+GCLddltH00i7iFLboXeMGFeMbFzfgvcKaR7LTH/LqJfQiDAWsepX9RcbSXHclw0WF9EJd9M5Ek49TKgjzMjRUWOwhdmvMZGmZUVQWfS2tg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:306592ddbf606383b90f796f4f694ffcfcef64c30b3788ca9e6c6bda5fcbf0b9",
          "output": {
            "deemed_supplier": true,
            "duration_nights": 3,
            "intra_eu_supply": true,
            "mandatory_from": "2028-07-01",
            "ms_extension_option": "2030-01-01",
            "sector": "short_term_accommodation",
            "sector_eligible": true,
            "supplier_has_valid_vat_id": false
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-163-vida-oss-registration-router",
      "tool_version": "1.0.0",
      "display_name": "ViDA OSS Registration Router",
      "mcp_name": "route_vida_oss_registration",
      "mandate_type": "compliance_mandate",
      "wave": 29,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-163-vida-oss-registration-router.html",
      "description": "Route a supply to the correct ViDA Single VAT Registration scheme: Union OSS (EU-established supplier, cross-border B2C or stock transfer within EU), Non-Union OSS (non-EU digital or deemed services to EU consumers), IOSS (non-EU goods ≤EUR 150 to EU consumers), or Domestic VAT (same-MS supply). ViDA extends Union OSS coverage from 2028-07-01. Returns recommended_scheme, scheme_rationale, and eligible_for_oss. Middle node of the vida-platform-and-registration chain. Zero network, zero PII. EU 2025/516.",
      "input_schema_ref": "chaingraph/art-163-vida-oss-registration-router.html#manifest",
      "consumes": [
        "art-162-vida-platform-deemed-supplier-classifier"
      ],
      "feeds": [
        "art-164-vida-compliance-readiness-diagnostic"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e9b1818d3a4a679dc9585a58e6326dbccbfd2d60ea6a738cf3cd6b51adfb12ef","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EVvxX+VVtQXWWPE7HbamJsFLlwyoDXQza3g8Pc6RiSUTf675+Iw6Q8hTq+RNtZUnDzP2FAJRDT+t44D5XgpvTAH0BjWd0CRaGFlXgOtihOnxBacYa0WABSRo808FAwstB4fpUQ8tPhMNUbKB+zBJEcY6Yhz5JogZrzjuJUOoVJAaV0RJI8C31qVRz7OrJwLyRX7bBxg06um2Pb8s96314hRVuhDgmfYKg06Lwo6vkTN8mgXWRWrdTHC8OAHmkLA/B5vBKsTGJ7tGVM/vveTBF40mokOUFpzRVAYqlrOVXkQGouwHlgA14+9ih2hMVLSlQV5d2EptQcG3DxP3H/zF6w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a214cd472eab7d344308be7f579d9839753e5c5b3409a92b86b8eec36b8161b4",
          "output": {
            "dest_in_eu": true,
            "destination_member_state": "FR",
            "eligible_for_oss": true,
            "recommended_scheme": "Union_OSS",
            "scheme_rationale": "EU-established supplier, cross-border B2C supply within EU",
            "seller_establishment": "DE",
            "seller_in_eu": true,
            "supply_type": "B2C_digital"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-164-vida-compliance-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "ViDA Compliance Readiness Diagnostic",
      "mcp_name": "run_vida_readiness_diagnostic",
      "mandate_type": "compliance_mandate",
      "wave": 29,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-164-vida-compliance-readiness-diagnostic.html",
      "description": "Scored ViDA readiness diagnostic across four dimensions: einvoice (EN 16931-1:2026 ready), drr (DRR reporting pipeline ready), platform (deemed-supplier assessed or not applicable), and oss (OSS/SVR scheme configured or not applicable). Returns readiness_score (0–100), gaps list, fully_ready boolean, and phased obligation timeline (2028-07-01 platform+SVR, 2030-07-01 DRR+e-invoice mandatory, 2035-01-01 legacy regime harmonization). Terminal node of the vida-platform-and-registration chain. Zero network, zero PII. EU 2025/516.",
      "input_schema_ref": "chaingraph/art-164-vida-compliance-readiness-diagnostic.html#manifest",
      "consumes": [
        "art-163-vida-oss-registration-router"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:574ee6c374f1501a9f75ec34933461c9ed1a9829b3d0882eba36dd0d3c1e93c4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "D+kKVIfQwsMUR0ytsxCsFH4GTu5htzgJZPatZ5H0cmcv4h9m7SvGThWCHvhZhrwAdFAWJsARyG9zr9rPAFAmhCEyZqEihSOvAmInw/7wEJFFqnHnunfEk42dHal3fJk7DEpAm1dU+tYVTMwoMtejJm0vWDvg7ueF/yNdeBU7zswvUpDomJewVcyuawuzSLx5B6kypQxyLyvD/mU2iUwBnxRECbVPPQ0jHLAicFM5wLHXDF63MFjj+G86bAqqgSfBCmQjHhobhUShB2HP98Aa4WHkHCq8o5DYESCadBbsXpIENVxjt6ClhYo3Su354dhj1/10mwC+eUbck3e+3CBXqg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:20759d261609657b9de21d7ae620b9fdb3cd542c992c145a04fd44e269235533",
          "output": {
            "dimensions_met": 4,
            "dimensions_total": 4,
            "fully_ready": true,
            "gaps": [],
            "readiness_score": 100,
            "timeline_obligations": [
              {
                "date": "2028-07-01",
                "scope": "Platform deemed-supplier rule + Single VAT Registration extended to all B2C / stock transfers"
              },
              {
                "date": "2030-07-01",
                "scope": "Mandatory DRR for intra-EU B2B cross-border + EN 16931 structured e-invoice mandatory"
              },
              {
                "date": "2035-01-01",
                "scope": "Pre-2024 domestic reporting regimes must harmonize to EU DRR standard"
              }
            ]
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-165-eudr-dds-field-validator",
      "tool_version": "1.0.0",
      "display_name": "EUDR DDS Field Validator",
      "mcp_name": "validate_eudr_due_diligence_statement",
      "mandate_type": "compliance_mandate",
      "wave": 30,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-165-eudr-dds-field-validator.html",
      "description": "Validate the required-field subset of an EUDR Due Diligence Statement (DDS) before TRACES NT filing: operator name, address, EORI, HS code, trade name, quantity, country of production, and geolocation indicator (or micro-operator postal-address exemption). Returns conformant verdict and missing-field list. Root node of the eudr-due-diligence-statement-validation chain. Zero network, zero PII. Reg. EU 2023/1115, mandatory 2026-12-30 (large/medium) / 2027-06-30 (SME).",
      "input_schema_ref": "chaingraph/art-165-eudr-dds-field-validator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-166-eudr-geolocation-plot-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:acd7dd7b0e4b050841535e867851410def190cd19b3c3965fea524418965bb8c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KyMY3BMdpCgQMI0SWXAIwHAKZ1XUD+ZvIIYt6j3EWDATe+pGjy7d6cEcs2QX2pi1yCJTkTRTpPXtx3Yp+MiyqRWNzNz3wO2u36jZ99KkNkoQosBBYD19HHYgJjxfD5huJZSDJKP/4gXPOSBMezs/H5DWB4Y+Ab0+blX4xeaezvUMXJK+q532HS5Zz2/n5hSso1oXqXCRyxFDWTwB3IS7cSJXKfNXKHPSE/KiflX+5TWTM0bJIL/6I1G5ktby3YDqG39MGyMMi5xSS/0He79Yv8XPOIm1rlI+ZGAJHVhJP3UGWcsisZ3FIskTseSiLP/tSiY4JxDnYfhDjNjyTDkCkQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:80c9045b6c606b3decc193bca5ebdeb2d7f64bea94ca8490b3ca80723a99be09",
          "output": {
            "conformant": true,
            "country_of_production": "BR",
            "fields_checked": 8,
            "fields_passed": 8,
            "micro_operator_exemption": false,
            "missing_fields": [],
            "quantity": 5000
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-166-eudr-geolocation-plot-validator",
      "tool_version": "1.0.0",
      "display_name": "EUDR Geolocation Plot Validator",
      "mcp_name": "validate_eudr_geolocation",
      "mandate_type": "compliance_mandate",
      "wave": 30,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-166-eudr-geolocation-plot-validator.html",
      "description": "Validate GeoJSON plot geolocation for EUDR compliance: geometry type (Point or Polygon), coordinate range validity, EUDR size rule (plots >=4 ha require Polygon, Art. 9(1)(d)), polygon ring closure, and micro-operator postal-address exemption path. Returns valid verdict and issues list. Feeds commodity scope classifier (art-167). Zero network, zero PII. Reg. EU 2023/1115.",
      "input_schema_ref": "chaingraph/art-166-eudr-geolocation-plot-validator.html#manifest",
      "consumes": [
        "art-165-eudr-dds-field-validator"
      ],
      "feeds": [
        "art-167-eudr-commodity-scope-classifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8f52903ef0106be3d988c08666ae2f0f87f7e1b19703d6d8c0a4dcfe6fd3079e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CDoPkBUhkXxavS0iUbz81HU8Vn3e9cg9CMPB2kZPR60Qn+eryOuzeVAoJRl/ZhYc6dIkkihv+ylqe/g8TMtlvgoSa7nebJOcIJWQjV5AJPCVwprahdl2+/78c9C0eSnfBPQHcJQ6N3um9hSZysdYxBvgh+NAo+8ATByC/pcN2CMuGwqFerJXF7GD21zOdJcNA48aAktsC67ioItfK1YfZysICstXP3qYSmyCvA7cCaD98rRMm+XwknVDU3NDmV17BcyaCwTxFiywAJZ5WJPi8DQThmDPBUe+XiIVXSqeBHcYCYkiN4RHjbkYLCWauALu55n4+kp61pJS76UKXkbb1w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4dc49c48148dcbe6e58e25dadda98142149713459c8f5fe26dbfb92c53e34fae",
          "output": {
            "area_ha": 2.5,
            "coordinates_valid": true,
            "geo_type": "Point",
            "issues": [],
            "micro_operator_exemption": false,
            "polygon_closed": null,
            "size_rule_met": true,
            "valid": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-167-eudr-commodity-scope-classifier",
      "tool_version": "1.0.0",
      "display_name": "EUDR Commodity Scope Classifier",
      "mcp_name": "classify_eudr_commodity_scope",
      "mandate_type": "compliance_mandate",
      "wave": 30,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-167-eudr-commodity-scope-classifier.html",
      "description": "Classify an HS code against EUDR Annex I to determine commodity scope (cattle, cocoa, coffee, oil palm, rubber, soya, wood, or out-of-scope), operator/trader role, SME status, DDS filing obligation, and enforcement deadline (large/medium 2026-12-30; micro/SME 2027-06-30). Returns obligations list and geo-exemption eligibility. Terminal node of the eudr-due-diligence-statement-validation chain. Zero network, zero PII. Reg. EU 2023/1115.",
      "input_schema_ref": "chaingraph/art-167-eudr-commodity-scope-classifier.html#manifest",
      "consumes": [
        "art-166-eudr-geolocation-plot-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:40d480ee243c1129a894f873de670a195ee2a65e7057d3c68c734f66227fb2da","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FZi/2yecGro8tWPk/Oz+2ozSXML/MTvo0Fy98n8YncoFHG5EaK4KD4W15CXIs3iYypVjXHGAQ64kIo350t3xLw47MCCdQSweRSUTCx8SV3CdpAaw84ljH3BIaxa3Fy08Ewax49AUDddMB3lDjI0oqUaxhwmZN5cIQHjKX9qseu0TGUDjC8k6rDU3zZ0e69myjcCFnmOyguw34IiFghctKiRZoafgUTwsKWgKPR/PVhCkGFFLuqDUPz0/6n1lE24XFkU/VpWtTF+8atjxFH3jhHXd2Rzl4OYRXu9qI/z7v2Ee8NCxUK3DaviWvRktkXTnQdcg/WAcpyJC26T1nfUIbw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:62feba4cddbad343479f4a00f123db4a563de584388751729239eb4f92a05c25",
          "output": {
            "commodity": "wood",
            "dds_filing_required": true,
            "deadline": "2026-12-30",
            "due_diligence_required": true,
            "entity_role": "operator",
            "geo_exemption_eligible": false,
            "hs4_matched": "4407",
            "in_scope": true,
            "is_micro": false,
            "is_sme": false,
            "obligations": [
              "File Due Diligence Statement (DDS) in TRACES NT before placing on EU market (deadline: 2026-12-30)",
              "Collect geolocation data for all production plots",
              "Retain DDS records for 5 years"
            ]
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-168-eudr-country-benchmark-risk-scorer",
      "tool_version": "1.0.0",
      "display_name": "EUDR Country Benchmark Risk Scorer",
      "mcp_name": "score_eudr_country_risk",
      "mandate_type": "compliance_mandate",
      "wave": 30,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-168-eudr-country-benchmark-risk-scorer.html",
      "description": "Score country-of-production against the EUDR benchmark risk classification (low/standard/high per Art. 29): low risk (EU/EEA + strong forest governance) -> 1% inspection rate, simplified due diligence; standard risk (unclassified) -> 3% inspection rate, full due diligence; high risk -> 9% inspection rate, enhanced due diligence. Returns benchmark_risk, inspection_rate_pct, and due_diligence_level. Feeds traceability linker (art-169). Zero network, zero PII. Reg. EU 2023/1115.",
      "input_schema_ref": "chaingraph/art-168-eudr-country-benchmark-risk-scorer.html#manifest",
      "consumes": [],
      "feeds": [
        "art-169-eudr-supply-chain-traceability-linker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0288186f1dd58a2533034a3b040a7d456f2cbb39fb19ee39c3c0b86c4e37bbdc","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HkPjMLDUXm9djGkiGCyepBPgoQjdReBhsdB78ai8jZ0i/jE3ZieIJoEPUEumaEhcwV42JVeeav+hBwU7nHUpNCOsqguhJQT4pdfYl4TZ5LkGwR067ITyGlbBaPY1ZbekAO9ZrNGYzxPUltssU8isW+AUO4eHcG7wX7dKzvXK4KodNIiSost+Xfvz2byucDyHPGh8is9uIQGZW3HaDq0xaRE0i8R6YQSgmUo8Lf06cflTwkv8uXt4h0RVhVfqUnrYEPVBNJ1r3OfF80GP6mkW/aufuBZHrYkTn7L0NKr8dwUUBCIluk65N4EkL5J+vJMsjpV6rGlZ53pWPvJdcuRw/A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f3846ac97626b7012c1ab423c85945a7c9bf2d7a0afe12e9631ff378a3f52ab3",
          "output": {
            "benchmark_risk": "low",
            "commission_delegated_act_note": "Country benchmark list subject to Commission delegated act under EUDR Art. 29 — verify against published classification before filing.",
            "country_code": "DE",
            "due_diligence_level": "simplified — Art. 13 EUDR (risk assessment; no mitigation measures if negligible deforestation risk)",
            "inspection_rate_pct": 1
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-169-eudr-supply-chain-traceability-linker",
      "tool_version": "1.0.0",
      "display_name": "EUDR Supply-Chain Traceability Linker",
      "mcp_name": "link_eudr_supply_chain_traceability",
      "mandate_type": "compliance_mandate",
      "wave": 30,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-169-eudr-supply-chain-traceability-linker.html",
      "description": "Validate EUDR single-DDS rule compliance and supply-chain traceability: first operators file the DDS; downstream operators reference upstream DDS reference numbers from TRACES NT. Checks single-DDS rule, TRACES NT reference format validity, plot geolocation coverage, and custody-chain completeness. Returns chain_integrity verdict and traceability_gaps list. Feeds readiness diagnostic (art-170). Zero network, zero PII. Reg. EU 2023/1115 Art. 4.",
      "input_schema_ref": "chaingraph/art-169-eudr-supply-chain-traceability-linker.html#manifest",
      "consumes": [
        "art-168-eudr-country-benchmark-risk-scorer"
      ],
      "feeds": [
        "art-170-eudr-readiness-diagnostic"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5290987894384c3baf43f5a162fb87c964f0ff074535604e4b89001db38a40b7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IfzCiXy2QYJwTNSvZrfCeNKBMB+JRMYSXM8R2yY4Q4EjPb8m4IG15w5kHwCcY7IB17ZUhzodSYTz+oIIaRxY2Q7yCEVhzpA/VGCrdSa1MfZJUK9bRmY0c9zRAuVrUMWfIwYICHmXe6MUjP6UlyNrPMydo1fadofk33Z4nPWVnyEqGWuVQ2fkTy1g5toYqx0sdKt8bz2/J4HOSM8NKPkMUQwpdHvVp1uReKtPYL1ZDl8kFRvLqRyK4Cd88BDtYfwDDussRoHPc+Cv9T1S4+zTHm1VoDWJyizlLpdLXM78uf0SLqsrssfh4Ztr2REIYYljTPjv2Z8XF5oZj2eiDBtAEA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:859e891c93c712a3871b60460f00826609cfaf50591e3d735b2b5241030e27c3",
          "output": {
            "chain_integrity": true,
            "custody_chain_complete": true,
            "linked_dds_count": 0,
            "operator_is_first": true,
            "plot_geolocation_present": true,
            "refs_valid": null,
            "single_dds_rule_met": true,
            "traceability_gaps": []
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-170-eudr-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "EUDR Readiness Diagnostic",
      "mcp_name": "run_eudr_readiness_fit",
      "mandate_type": "compliance_mandate",
      "wave": 30,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-170-eudr-readiness-diagnostic.html",
      "description": "A-F EUDR readiness diagnostic across six dimensions: scope mapping, geolocation data quality, DDS submission readiness (TRACES NT), country risk assessment, risk mitigation documentation, and 5-year retention system. Returns readiness_grade (A-F), readiness_score (0-100), gaps list, and dual enforcement deadlines (large/medium 2026-12-30; micro/SME 2027-06-30). Terminal node of the eudr-supply-chain-risk-and-traceability chain. Zero network, zero PII. Reg. EU 2023/1115.",
      "input_schema_ref": "chaingraph/art-170-eudr-readiness-diagnostic.html#manifest",
      "consumes": [
        "art-169-eudr-supply-chain-traceability-linker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:44e1baff3a59bb7abdc7c86ad7c7205ea8ade03711d4155ba4760b31d08d0371","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "J7C7L6Oo+cEsh8nWq4OMIHNBRypQJh1dmP9rOkIO0+cShrTOV2O5Mzf/8ACBE4/h36k/e2ApKYTAghjToCYQDB5VNZI6s+TE1rhB8+5psCuxB+NOGExqLNOuWemjSNHSLL0ZWl+xv1ARKqTy26DBktJh0hGsJmceSo1YPL/ZY9ggoQlrGY/xh424HHZfiReBio/QHqeGCnGN6VExaeJVMQbb7eXzxCDsC5aZhhIBWs3x62PnoggnBx4ZDcQlAH64LfDiNCdZGSub6UqOjwjVWSErTpTEvVHB+npDICC4gZ0qOGjFncdAXZkkv1mO9YZ2WEylA26HqHFQs0sXYYAmeQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:89338dd3a78df645d37c683e4dc45829e7112a641353153a208273f33288a798",
          "output": {
            "dimensions_met": 6,
            "dimensions_total": 6,
            "enforcement_deadlines": [
              {
                "date": "2026-12-30",
                "scope": "Large and medium operators: mandatory EUDR compliance (EUDR Art. 38)"
              },
              {
                "date": "2027-06-30",
                "scope": "Micro-enterprises and SMEs: mandatory EUDR compliance (EUDR Art. 38(3))"
              }
            ],
            "fully_ready": true,
            "gaps": [],
            "readiness_grade": "A",
            "readiness_score": 100
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-171-iso42001-aims-clause-conformance",
      "tool_version": "1.0.0",
      "display_name": "ISO 42001 AIMS Clause Conformance",
      "mcp_name": "assess_iso42001_aims_conformance",
      "mandate_type": "compliance_mandate",
      "wave": 31,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-171-iso42001-aims-clause-conformance.html",
      "description": "Assess ISO/IEC 42001 AIMS conformance across clauses 4-10 (context, leadership, planning, support, operation, evaluation, improvement) and six Annex A controls (AI policy, roles, impact assessment, data governance, system lifecycle, third-party supplier management). Scores each as present (1.0), partial (0.5), or absent (0) and returns overall_maturity (0-100), maturity_band (Initial/Developing/Defined/Managed/Optimizing), and a structured gap list. Root node of the ai-management-system-conformance chain. §16 proof candidate. Zero network, zero PII. ISO/IEC 42001:2023.",
      "input_schema_ref": "chaingraph/art-171-iso42001-aims-clause-conformance.html#manifest",
      "consumes": [],
      "feeds": [
        "art-172-ai-risk-impact-assessment-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6cf5102a16176e735d0a61a46e5bd06191bbc7ef5d12c2ce96cea472cd55e14f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G24WXmvxZ7kltaXBfme86p2o3vGIEKyrE/IKR+4NUNYiCYE65Fhnu5jFsmdtkExzxiK76olT9uTqH5hW4R2i1iVDqpDsq951oW9Sg5n5zAyHs6dQO7VyuIM+U7qHk9I+DQz5Z7+2nRrgvDIEsv0gN84aUTb2dLW5b1t+ja4uq5EX9ckf/9gVCyZagujzoAHb1DnuGEN8iMeJJIvW1W7Voi78JBNlej88pZSg1w/xJD+J6pHptnkbc/x8kV5Tt8jRH1QdkYEq/BN4zHImmJgWWaCCCua2ZXIxOqFRG9WkTzQCH5Y8CEHXBsXweqBNfctHMVIpgfMrvjOkwS6h0K0Vsw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:767c3818f856cde446abac43ffe9304f94a1aaa498dbc836f356522fa660b19e",
          "output": {
            "clause_score": 100,
            "clauses_fully_present": 7,
            "control_score": 100,
            "controls_fully_present": 6,
            "gaps": [],
            "maturity_band": "Optimizing",
            "overall_maturity": 100,
            "total_clauses": 7,
            "total_controls": 6
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-172-ai-risk-impact-assessment-validator",
      "tool_version": "1.0.0",
      "display_name": "AI Risk Impact Assessment Validator",
      "mcp_name": "validate_ai_impact_assessment",
      "mandate_type": "compliance_mandate",
      "wave": 31,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-172-ai-risk-impact-assessment-validator.html",
      "description": "Validate ISO 42005-style AI impact-assessment completeness across seven required elements: intended use, affected stakeholders (>=1), risk treatment definition, monitoring plan, formal approval, risk category identification (>=1), and data source documentation. Returns completeness_score (0-100) and gaps list. Feeds system governance classifier (art-173). Zero network, zero PII. ISO/IEC 42005.",
      "input_schema_ref": "chaingraph/art-172-ai-risk-impact-assessment-validator.html#manifest",
      "consumes": [
        "art-171-iso42001-aims-clause-conformance"
      ],
      "feeds": [
        "art-173-ai-system-governance-classifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:835086c93c872c7e1171afce4a0956dacbfd52fa9918c7d11cd23b4218fd07bd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HoynZUQsn9j4wZBWwLj3TDBaceebXWIGYUULZBNy9g0ebCC7FZp9uQHpXssvrv/W4i75o/zglOeDVm5WszFZfSH3sr4z52E6+C9VQsQQsbn3nUtWxwia7O7nppxwdRhoJEewP8fLf637Iae2D2XnHxBz8VGkcKgVu7EuCPxdl14tdHGsqbiuVZOlwV+AzmisQSurFfJwTh9vDlqYZOR6RS3Xakr7dI7pn9rjIVeL0AasoQQsx+imM3NjO0f5au+LFtGa+Es6fyqFDVeiZj3gLS+YBJQtnC5ZVGBxs1qwwsstxPGfN+v3zFgXlM1T6TfvwM0bwhq//I607V0J4S8PUw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0b06be3de276b4e5f12514eeb807b7d67e21f5f32214f1d7ffc034283e99628c",
          "output": {
            "complete": true,
            "completeness_score": 100,
            "fields_checked": 7,
            "fields_passed": 7,
            "gaps": []
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-173-ai-system-governance-classifier",
      "tool_version": "1.0.1",
      "display_name": "AI System Governance Classifier",
      "mcp_name": "classify_ai_system_governance",
      "mandate_type": "compliance_mandate",
      "wave": 31,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-173-ai-system-governance-classifier.html",
      "description": "Classify an AI system to its governance tier across EU AI Act (prohibited/high-risk/limited-risk/minimal-risk), NIST AI RMF profile (T1 basic/T2 standard/T3 enhanced), and ISO/IEC 42001 control set (light/standard/enhanced). Identifies GPAI provider status and systemic-risk flag. Terminal node of the ai-management-system-conformance chain. EU AI Act Art. 6-17 enforcement from 2 December 2027, per the Digital Omnibus amendments (June 2026); Art. 50 transparency stays 2 August 2026. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-173-ai-system-governance-classifier.html#manifest",
      "consumes": [
        "art-172-ai-risk-impact-assessment-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5caa326f1f78233acb0b409deb37a1a0a943cd726640f2c145b2ddcfb4f632e6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A5XbeggFbuSzoXk9VwVQYxMcSImIxg1ucLQCtic+Xk0FEL++xSBotnL1wmE9MmEOKo6fbmw9sXRVHqrjOXo6syunBV6b/a2DbhFyvTOtHjpJHZ3+nMdiKFWFZWnYhixPDWXjRsJVG4BNHR/PNsdkLXnl+9zoQUzxCFYyCsktosISQ+KLGGjyX4xadWhDG+OlXkXGEMknIacPYLsSseVHoBd08/mIGGYNiOFRIDSz8eOd2aXTFjfKL74je2tvwMFrAmCuxby5SzhUiAT5CjiofZfbG1D+NVNprRbhG30MetEKsUmbC/TeI4fQP/BLgqxnpAtMx/V1gdrI9xfS1jG1Uw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:258995f3afbefa66aca2a9a9cd3bf03d4f042fab633adb80061e51b6908758dd",
          "output": {
            "deployment_context": "credit",
            "eu_ai_act_tier": "high_risk",
            "gpai_obligations": {
              "applies": true,
              "systemic_risk": true
            },
            "iso42001_control_set": "enhanced",
            "nist_rmf_profile": "T3_enhanced",
            "use_case": "Automated credit scoring for consumer loans"
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-174-nist-ai-rmf-function-mapper",
      "tool_version": "1.0.0",
      "display_name": "NIST AI RMF Function Mapper",
      "mcp_name": "map_nist_ai_rmf_functions",
      "mandate_type": "compliance_mandate",
      "wave": 31,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-174-nist-ai-rmf-function-mapper.html",
      "description": "Map supplied AI controls and evidence to NIST AI RMF Govern (5 controls), Map (4), Measure (4), and Manage (4) functions: 17 controls total. Returns per-function coverage scores (0-100), coverage_band (Minimal/Partial/Substantial/Comprehensive), overall_coverage, and structured gap lists by function. Root node of the ai-governance-framework-crosswalk chain. NIST AI RMF 1.0 (2023). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-174-nist-ai-rmf-function-mapper.html#manifest",
      "consumes": [],
      "feeds": [
        "art-175-gpai-code-of-practice-conformance",
        "art-314-traiga-safe-harbor-pack-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a4ebaa6b0d2dc5a1fe2ef52ae2850bc85dcbea7221acd8dbae939d00039b6f9e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ImzUmE4P1VoBT6i0hmS8PQPHsijKScoWvP2QVJKuPY4rZI1x10Mjg44okWTLwKxotj93KTHPb8hB7CgxwabAuB1M6jfjquqhxJzdVAXYMkfXj6ylfmws4UqCiliHJTdtHh2P+QI08s9aPCePsjzEiz1T+vGkUTA3Dh/dUMk1oqoAvVrpAvbYcrBYz7iO24qCx2aLRM3Gn8PKSjsmnjquVgLfP+5C9m+2LJysCQTbi2CbUUYqg2m3P7p4QDshm8iHKZMwjFjVf/eH/8Tz8sDOws4Txmk1P2nIB6V3EaC8534T4Q/ilor+YLTSvnNZoCTjTsad4oBVkGMOsApSIfViUA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:61b5a1c66ec20e2f73941fabf94a4bb266733acba9c516eaefe0432ba6c83a94",
          "output": {
            "all_gaps": [],
            "controls_present": 17,
            "coverage_band": "Comprehensive",
            "function_coverage": {
              "GOVERN": {
                "gaps": [],
                "present": 5,
                "score": 100,
                "total": 5
              },
              "MANAGE": {
                "gaps": [],
                "present": 4,
                "score": 100,
                "total": 4
              },
              "MAP": {
                "gaps": [],
                "present": 4,
                "score": 100,
                "total": 4
              },
              "MEASURE": {
                "gaps": [],
                "present": 4,
                "score": 100,
                "total": 4
              }
            },
            "overall_coverage": 100,
            "total_controls": 17
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-175-gpai-code-of-practice-conformance",
      "tool_version": "1.0.0",
      "display_name": "GPAI Code of Practice Conformance",
      "mcp_name": "check_gpai_code_conformance",
      "mandate_type": "compliance_mandate",
      "wave": 31,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-175-gpai-code-of-practice-conformance.html",
      "description": "Check GPAI provider obligations under EU AI Act Art. 53 (technical documentation, training-data summary, copyright policy, model card, 4 base checks) and Art. 55 systemic-risk obligations (risk evaluation, adversarial testing, incident reporting, cybersecurity measures, 4 additional checks for systemic-risk models). Also scores voluntary Code of Practice sign-up. Returns base_score, systemic_score, overall_score, conformant flags, and gap lists. Feeds readiness diagnostic (art-176). GPAI enforcement Aug 2026. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-175-gpai-code-of-practice-conformance.html#manifest",
      "consumes": [
        "art-174-nist-ai-rmf-function-mapper"
      ],
      "feeds": [
        "art-176-ai-governance-readiness-diagnostic"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2d637077ba70bc4b83f6fac794cc8969d09aefb67b7e5db694afbe5d9ffe8907","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EYU32KYD3i6MUs8L989cMiGqZYVKParCN1SUzyr6c8orlgFFSMLXzckTNAoke+3r557x4Ea2d6CEKgjvvbIYyxl/AuHJnLC4+tD72dyeYPhhd1a/UEU9ncPw7CXolcurLv78DmXUNB3kPX7Q80ONeMJxwX+Y73fnYE3P+3TXTh4eBnppLa/9X5YTG174pHYKDhWQf6lhjCvCKs6ngfX4Gh8if3j4Kfq5pQwMYtx3joOAJvXbn7HncRl4XWg5xHduBjrikFi9ILxg8sHa/ArC2bFxDg+oZ9cq7dpVHKWQUCkn23w+u8n/1DLOxx3t0X74skZU/mf23G/hqtTR8DuCKg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7c0bcdb72883d5e2c0066fda3f6c8a1381a4c6a3afdd31f1820b91c7b344e092",
          "output": {
            "base_conformant": true,
            "base_gaps": [],
            "base_score": 100,
            "code_of_practice_signed": true,
            "is_gpai_provider": true,
            "is_systemic_risk": true,
            "overall_score": 100,
            "systemic_gaps": [],
            "systemic_risk_conformant": true,
            "systemic_score": 100
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-176-ai-governance-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "AI Governance Readiness Diagnostic",
      "mcp_name": "run_ai_governance_fit",
      "mandate_type": "compliance_mandate",
      "wave": 31,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-176-ai-governance-readiness-diagnostic.html",
      "description": "A-F AI governance readiness diagnostic across six dimensions spanning ISO/IEC 42001, NIST AI RMF, and EU AI Act convergence: AIMS documentation, impact assessment, NIST RMF mapping, GPAI obligation check, monitoring plan, and review cycle. Returns readiness_grade (A-F), readiness_score (0-100), gaps list, and frameworks_addressed map (ISO 42001, NIST RMF, EU AI Act). Terminal node of the ai-governance-framework-crosswalk chain. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-176-ai-governance-readiness-diagnostic.html#manifest",
      "consumes": [
        "art-175-gpai-code-of-practice-conformance"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9eade7087913b370413de5a95c491f8c88aa907701afba40c373dc637beef62d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Dh4nvIQ3Ok7V5tBrXzDSO5Pii2YIsij89YZzZTUZ75sd7Ctof/OhFG24mL/TBu6fn+VXjRXZGw09y5qqx8xyrQRluIXpQUN3e0zYZxVMv0qakbR4zbnZOoKHlssX1FzuI8cyfEJILGgiEuMGYHkOBye/VGII39BwzAFZltvD8QEO3H8e72pWzSqZLpu/+5vQEgfYNajIgWOrQC13ykLkwSZE2U1MfQwN2SYlISJJgTo1IBfpdEuqD9I2srJv0yP5GW2zgAoLJKqVPxzvWlk2Ya3EswY9czNl4ev6pKw8WR8GpXuc0T6WdZE5GPllcPGpF/cDUN7jfvpLauNXRBu5kA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:346f226eeab82aa9d7ec14160b0db4d0a84753c666a42cf04254c6154a81d62c",
          "output": {
            "dimensions_met": 6,
            "dimensions_total": 6,
            "frameworks_addressed": {
              "eu_ai_act": true,
              "iso_42001": true,
              "nist_rmf": true
            },
            "fully_ready": true,
            "gaps": [],
            "readiness_grade": "A",
            "readiness_score": 100
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-177-ifrs17-measurement-model-classifier",
      "tool_version": "1.0.0",
      "display_name": "IFRS 17 Measurement Model Classifier",
      "mcp_name": "classify_ifrs17_measurement_model",
      "mandate_type": "compliance_mandate",
      "wave": 32,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-177-ifrs17-measurement-model-classifier.html",
      "description": "Classify insurance contracts to their IFRS 17 measurement model: Premium Allocation Approach (PAA) for coverage periods of 12 months or less, Variable Fee Approach (VFA) for direct-participating contracts with investment-linked features (not reinsurance), or General Measurement Model/BBA as the default. Returns measurement_model (GMM/VFA/PAA), eligible_models, paa_eligible, vfa_eligible flags, and direct_participating indicator. Root node of the ifrs17-measurement-conformance chain. IFRS 17 live since Jan 1 2023. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-177-ifrs17-measurement-model-classifier.html#manifest",
      "consumes": [],
      "feeds": [
        "art-178-ifrs17-csm-rollforward-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:722f77361c37a5635fe5deb2077fcc3faccb5ec84a872dc0cdbfebc3027e0037","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ha3QWuhtZh6cJB+YPQTAJGsq1JtT250p+iFVBPjnUD4NoHOxN6NeQkiFeoDlY6IVMqEQG33wDnmSRN5FjTK35B3n7ZrPs6iHALX6l2jMOUUg+P8SnbzQsZujw1FV/asVA9OJakMD9mtvdBRlsvPmkGN9Cj0gXdvTv6D0xM+QAg4idRSt6ZeZE/lBXzzPLU6VxFVuxL/0Gu5Y1w3SLq3TQQmpwX23RuOn4jKYruJfqwOtzqvkej0Eh7Vkd6JuOYf0IpriXCmCeS2ccGr73jSBV1daZZefO19ZMm0F6RhiWCYSNcxhqHIYs15e8yrlg9LtVzYqXmJ51JjuPOMnXr0QhA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:681001a8db77505bda2ad9d358bef599d3f8c0014ac6c9704f735c164ce1a217",
          "output": {
            "coverage_period_months": 12,
            "direct_participating": false,
            "eligible_models": [
              "PAA",
              "GMM"
            ],
            "is_reinsurance": false,
            "measurement_model": "PAA",
            "paa_eligible": true,
            "vfa_eligible": false
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-178-ifrs17-csm-rollforward-validator",
      "tool_version": "1.0.0",
      "display_name": "IFRS 17 CSM Roll-Forward Validator",
      "mcp_name": "validate_ifrs17_csm_rollforward",
      "mandate_type": "compliance_mandate",
      "wave": 32,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-178-ifrs17-csm-rollforward-validator.html",
      "description": "Validate IFRS 17 Contractual Service Margin (CSM) roll-forward mechanics: opening CSM + new business + interest accretion + experience adjustments - coverage-unit release + FX adjustments = closing CSM. Flags onerous contracts when computed closing falls below zero (IFRS 17 para 47-50: no negative CSM; shortfall recognized as immediate loss component). NaN-safe numeric validation on all inputs. Feeds risk-adjustment checker (art-179). IFRS 17 para 44-50. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-178-ifrs17-csm-rollforward-validator.html#manifest",
      "consumes": [
        "art-177-ifrs17-measurement-model-classifier"
      ],
      "feeds": [
        "art-179-ifrs17-risk-adjustment-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6d63a964418acbc17998ddac7014b0d42e3a09197ea4e1ffe32feeea586fb11f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KzJinbiikbaT9xgEBtOjv+PDWaMYfGHRovmXEwayaWgHPWeLz3t1a+Y7/xr8sfEsyZbQJDSmVkJUrTPCZSaCGhDpc8NRF+BqAieVL85peZ4LokvYJN3yDvis/HZZmI+SEzLNYP74RfMTK/G/zh9x3BNdNFA1+R5WsMUQypCQ5HUrTcgwB388DBYPH2oarpsasojfHhiaGfGb55CkG1OQ/QuPUzhyQihqRlWYWHl9p4QfQJvY3dms48IJ7mOPthjIKjcsUshTerRR+YwAThukc/8u+marm90qMfM0ZvKEZIIkI5G2O/g+DNohhWAvMfQGk9qHmOjJVGe/jIvuawXokg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7a830297ff810b7cc92b55ac641227fcafdf761547ce8be312885f15340064ca",
          "output": {
            "closing_csm": 1120,
            "csm_valid": true,
            "experience_adjustments": -30,
            "fx_adjustments": 0,
            "interest_accretion": 50,
            "loss_component": 0,
            "new_business_csm": 200,
            "onerous": false,
            "opening_csm": 1000,
            "release_to_profit": 100
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-179-ifrs17-risk-adjustment-checker",
      "tool_version": "1.0.0",
      "display_name": "IFRS 17 Risk Adjustment Checker",
      "mcp_name": "check_ifrs17_risk_adjustment",
      "mandate_type": "compliance_mandate",
      "wave": 32,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-179-ifrs17-risk-adjustment-checker.html",
      "description": "Check IFRS 17 risk-adjustment (RA) disclosure completeness: validates technique (VaR/CTE/CoC/other per IFRS 17 para 119b), confidence-level disclosure for VaR and CTE techniques, positive RA amount, and onerous-contract loss-component recognition (IFRS 17 para 47-50). Returns ra_valid flag, technique_ok, gaps list, and onerous_properly_handled indicator. Terminal node of the ifrs17-measurement-conformance chain. IFRS 17 para 56-57 and 119. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-179-ifrs17-risk-adjustment-checker.html#manifest",
      "consumes": [
        "art-178-ifrs17-csm-rollforward-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:970c7d775e817baef21991c6c87e7dfecaf2829b129990bf7fdd268efe1fa610","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HSK/MmAUiDzpn2KAo7wcx354F+6iDGp7BcWZKnLIZzIij6JQ96sTNqTEmfgTfAiDXE1scv2LRDOyJ/qsS83K3xdKBVS7byH793kL2aBVX/Sy7rxkh+VwfIeOzDQvL10LGTvRB7X8mYuXK5tHNJ+rGnvbcKBadHQ4D7GjQ1a3hzIK54GsdPmp64OikRXg5aZ4qq9KmYWJpTXJZr3LPhI0USgc5Ill15/osLW7tB6Wh+xqbMbGAXcXJE7+LMsjwVdQINh6PB6IUV2iF0i8ewh89KKP+dJ45LLi8nDxGEYAGJ8fHcyh+8/a7JQWQII2lrTMkSeH6Ww8csmjbWpDoXlz1w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cacca123de894198ef315b84cd42f19583b621586ca4f825308461e966f4c11c",
          "output": {
            "confidence_disclosed": true,
            "confidence_level_pct": 0,
            "disclosed": true,
            "gaps": [],
            "loss_component_recognized": false,
            "onerous_contracts_identified": false,
            "onerous_properly_handled": true,
            "ra_amount": 500,
            "ra_valid": true,
            "technique": "CoC",
            "technique_ok": true
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-180-solvency2-scr-ratio-calculator",
      "tool_version": "1.0.0",
      "display_name": "Solvency II SCR Ratio Calculator",
      "mcp_name": "calculate_solvency2_scr_ratio",
      "mandate_type": "compliance_mandate",
      "wave": 32,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-180-solvency2-scr-ratio-calculator.html",
      "description": "Calculate Solvency II SCR and MCR coverage ratios from eligible own funds and capital requirements. Checks the three own-funds tiering limits per Delegated Regulation (EU) 2015/35: Tier-1 unrestricted >= 50% of SCR, Tier-1 total >= 80% of SCR, Tier-3 <= 15% of SCR. Returns scr_coverage_ratio, mcr_coverage_ratio, scr_breached, mcr_breached, tiering_ok, and per-tier percentages. Sec. 16 proof candidate. Root node of the solvency-ii-reconciliation-and-capital chain. Solvency II Dir. 2009/138/EC + Del. Reg. 2015/35. NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-180-solvency2-scr-ratio-calculator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-181-sii-ifrs17-reconciliation-bridger"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:58ddc09d3c1b6bccab424d5392e51c690e34d0466a76b885b19a819ef7f7875f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "C8sO0VZdvEomv+pOApQJav+GtNnF18xoN3Jak57mGsMh9Arow7gk6GNVlaVcAi1tXAJfgFbTHyoqN01X8ST1NRkSv5al1YBfa32BM83ZEFwOzcA/WqF7H/JsN4UllhFjAkwxuydOr36s6Wa3RvDzZYKrJmHEQLxXlLD67Vprs+8Otbp+JDnUYLe/ri3c++G0WYErI6xqzpjCvBPqgQ6KKwEwYQdhaxFFZWHjG9QjUjZNKlxN1zsqriEMJsQ1fLodLkL/bbvugLIsMIr8/pM4gShf+mWFZfZN+QZaXzKjzCAH739h2LFP5xhNUfIOrdJnixFj9PQ6EBpxIssJOe882g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5c5ce0419885329a41b4e3be2003e75bc84f4d2c6cffe5bbd9d67d458d7a045c",
          "output": {
            "eligible_own_funds": 1500,
            "mcr": 250,
            "mcr_breached": false,
            "mcr_coverage_ratio": 600,
            "scr": 1000,
            "scr_breached": false,
            "scr_coverage_ratio": 150,
            "tier1_total_limit_ok": true,
            "tier1_total_pct_of_scr": 100,
            "tier1_unrestricted_limit_ok": true,
            "tier1_unrestricted_pct_of_scr": 80,
            "tier3_limit_ok": true,
            "tier3_pct_of_scr": 10,
            "tiering_ok": true
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-181-sii-ifrs17-reconciliation-bridger",
      "tool_version": "1.0.0",
      "display_name": "SII-IFRS 17 Reconciliation Bridger",
      "mcp_name": "reconcile_sii_ifrs17",
      "mandate_type": "compliance_mandate",
      "wave": 32,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-181-sii-ifrs17-reconciliation-bridger.html",
      "description": "Bridge Solvency II technical provisions (best estimate + risk margin) to IFRS 17 insurance contract liabilities (fulfilment cash flows + risk adjustment + CSM). Computes bridge_delta and flags when the relative gap exceeds 10% of SII provisions. Compares risk adjustment against SII risk margin using EIOPA research benchmarks (RA typically 33-44% lower than risk margin for life insurance, FSI Insights 26). Feeds insurance reporting readiness diagnostic (art-182). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-181-sii-ifrs17-reconciliation-bridger.html#manifest",
      "consumes": [
        "art-180-solvency2-scr-ratio-calculator"
      ],
      "feeds": [
        "art-182-insurance-reporting-readiness-diagnostic"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:83afe488b0820b034337102a6031f5e0e2ead582faf4d3998b0d65dabc2def33","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ic/4UIXbRt7L6PBQx8wwcPfevHu9o91hecmwnEj+CpUDBRag4Tu6i4TAXWSFpD26YnqOX73FRpwtidTVnyIqRikzcq5HPOcCeXd2NEcKdjqcaLKXaB1nmhv5Alg4TJk5JdOEOBbUQcZRqUxtjZx/lqE5dMJvYabkwbNXfTUiEl0aSVv27Fg6PiAmIV7cK0L1XopsNMz5aOkR5XXpm8puhQsAoETyKD64PUTnctLinmD+l3ZRIw89gj7U/L/lWy1zLDN6q4sBpbWrV3xzKppHWF6v/DhIm1EvwRnFvUPzBhcb0dUeUesJqB0VPDfUx1GxJtd5csj5Yn5jhhrM/uN4QQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c6359bd684edd6f0f850aa8393553666a926775cdfd48f2c19fa006d2d3f8b06",
          "output": {
            "bel_fcf_delta": 200,
            "bridge_delta": 200,
            "bridge_within_tolerance": true,
            "ifrs17_csm": 300,
            "ifrs17_fcf": 9800,
            "ifrs17_insurance_contract_liabilities": 10800,
            "ifrs17_ra": 700,
            "ra_vs_risk_margin_ratio_pct": 70,
            "relative_bridge_delta_pct": 1.82,
            "rm_ra_delta": 300,
            "sii_best_estimate": 10000,
            "sii_risk_margin": 1000,
            "sii_technical_provisions": 11000
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-182-insurance-reporting-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Insurance Reporting Readiness Diagnostic",
      "mcp_name": "run_insurance_reporting_fit",
      "mandate_type": "compliance_mandate",
      "wave": 32,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-182-insurance-reporting-readiness-diagnostic.html",
      "description": "A-F insurance reporting readiness diagnostic across six dimensions: IFRS 17 measurement model election, CSM system implementation, risk-adjustment disclosure, Solvency II Pillar-3 QRT reporting, SII-IFRS 17 reconciliation, and ICS assessment for IAIGs. Returns readiness_grade (A-F), readiness_score (0-100), dimensions_met, and gaps list. Terminal node of the solvency-ii-reconciliation-and-capital chain. IFRS 17 + Solvency II + ICS. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-182-insurance-reporting-readiness-diagnostic.html#manifest",
      "consumes": [
        "art-181-sii-ifrs17-reconciliation-bridger"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b782a726871e3099cb51e0210048566f971438e63256bf61e5a39aec96bc4a90","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EbX6JF8DCs2F8szwCDHKNfYRRWvP0s33CFkCh6i7juUPoeAKVvP+dviicutdP6tbmY3wFz/Lx6MpCNc1Nf12aA4AAtUVyvtc67X4iPhepYj265IWrGedZOfm6iT4RjsaHcvani7oRrg3gy4Fzuli/D7DHEsftFVoObaelt2PldEmIynFWDjfnb/O7wg9xAHhh/WYOkW21bsAOqjBa/hRAgvLLUvxcJi7yWCNyDGz5EDwCpe3hMIZWAKDMfdvLCS3CRykQe0xDdhjWGqJd34CS8/iJyj61DzVRyb3TuRTwWcNjn6KJiTsphWYzK6ZesZfmCEipUerNbCIcCWWjMCKPQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:faf97f8205d36aaf3fa226df58a896d6dda658bc36631ddb72230edcc742d210",
          "output": {
            "dimensions_met": 6,
            "dimensions_total": 6,
            "fully_ready": true,
            "gaps": [],
            "readiness_grade": "A",
            "readiness_score": 100
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-183-irrbb-eve-shock-calculator",
      "tool_version": "1.0.0",
      "display_name": "IRRBB EVE Shock Calculator",
      "mcp_name": "calculate_irrbb_eve_shocks",
      "mandate_type": "compliance_mandate",
      "wave": 33,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-183-irrbb-eve-shock-calculator.html",
      "description": "Calculate Delta Economic Value of Equity (EVE) under the 6 BCBS d368 / EBA standardised IRRBB shock scenarios (parallel up, parallel down, short up, short down, steepener, flattener), recalibrated effective 1 Jan 2026. Duration-based sensitivity over 6 standardised repricing time buckets using a 200bp reference parallel shock and the BCBS d368 Annex 2 short/long tenor scalars. Returns per-scenario delta_eve, worst_scenario, and worst_delta_eve. Root node of the irrbb-supervisory-outlier-test chain. BCBS d368 (2024 recalibration). NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-183-irrbb-eve-shock-calculator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-184-irrbb-sot-eve-evaluator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:688cc0519d212cdc48f08b6a4d5ebce07750de7562edc9abad7f91202ba38bf9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FoCIo0R2L8k1XnzkEoo9qeSxOSlh7gfmYHSamq3vjy4V/8An8Rhmwh59sWV+0Zw3UvgKN+INbnSeinqIwlThNi2MV/abJdSa3AQol59Jt6MEDmjjH9hLDrs65DfmK1mCDP2wno+poNwsiWdi75/aN8X+hMS8Fxe7+5eGTFbr0QcSf20lTBW29FrzICqnU/ExpLpODQhupi3TXs4criC01wEwHLAHvMJ34ZCiJ6K4H+6Xikzjc6nzjGspOaUJ7abZFmel7tlGYSY43mRlTCSWMmy88xs2pCNlMOHKjqxQO/gBwN27/Upq5irTOdkb5rmvm20hsGrWx2v32Gbl634+uQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0e2d5676cf0630dbfdf841552043d7329a588e69fd00e39d12eedd367b0bc274",
          "output": {
            "buckets_used": [
              "on_1m",
              "m1_y1",
              "y1_y3",
              "y3_y5",
              "y5_y10",
              "y10_plus"
            ],
            "reference_parallel_shock_bps": 200,
            "shocks": {
              "flattener": {
                "delta_eve": -16.94
              },
              "parallel_down": {
                "delta_eve": 92.4
              },
              "parallel_up": {
                "delta_eve": -92.4
              },
              "short_down": {
                "delta_eve": 51.7
              },
              "short_up": {
                "delta_eve": -51.7
              },
              "steepener": {
                "delta_eve": -3.03
              }
            },
            "total_net_gap": 2000,
            "worst_delta_eve": -92.4,
            "worst_scenario": "parallel_up"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-184-irrbb-sot-eve-evaluator",
      "tool_version": "1.0.0",
      "display_name": "IRRBB SOT EVE Evaluator",
      "mcp_name": "evaluate_irrbb_sot_eve",
      "mandate_type": "compliance_mandate",
      "wave": 33,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-184-irrbb-sot-eve-evaluator.html",
      "description": "Evaluate the EBA Supervisory Outlier Test (SOT) on Economic Value of Equity: the worst-case delta EVE decline across the 6 standardised shock scenarios versus the EU-wide hard threshold of 15% of Tier 1 capital (EBA RTS on the SOT / EBA Guidelines on IRRBB and CSRBB, EBA/GL/2022/14). Returns delta_eve_pct_of_tier1 and eve_outlier. Section 16 proof candidate. Second node of the irrbb-supervisory-outlier-test chain. NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-184-irrbb-sot-eve-evaluator.html#manifest",
      "consumes": [
        "art-183-irrbb-eve-shock-calculator"
      ],
      "feeds": [
        "art-185-irrbb-sot-nii-evaluator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:83f3aad85600dfd0e80b47b86e5d42e5774e39b792077038e2debae508d10ed5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JRkxsXIDo/pVHGQhhq+Wz67kORMx09G3OoLAL/zSYkIYMWVNoydfw3JDCiBlaVwhcUUo3+w2kZTLsiOmH5WkMyzhwG3sEs08ww+gsbZZUSwTjFx+QjcHouZZjec7yRBOKmG0sXAzyODZ7xA70dEwhUjh3Sj+PTzt2nV/Ru9ClTMPJ5Ufv+g6awfUzdkHRBkRGFeBiqKHc34437hUKwJp0SNUCMgepBX/89BGQOTufJaCao54cu5qVN7q+AYulooQAR2iL1iPDBPMTFtPDKOsN3jpiwf+NT2/rghDUq2nh8AwG1zFkwtU+A6OeojYMWDqSNViPEqWlAY3h6LAgxS6og==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5794bcfaef4c1bdb472d92429ccb10bb70cc989bb6009e5257be767ed5045214",
          "output": {
            "delta_eve_pct_of_tier1": 18,
            "eve_outlier": true,
            "sot_eve_threshold_pct": 15,
            "tier1_capital": 1000,
            "worst_delta_eve": -180
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-185-irrbb-sot-nii-evaluator",
      "tool_version": "1.0.0",
      "display_name": "IRRBB SOT NII Evaluator",
      "mcp_name": "evaluate_irrbb_sot_nii",
      "mandate_type": "compliance_mandate",
      "wave": 33,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-185-irrbb-sot-nii-evaluator.html",
      "description": "Evaluate the Net Interest Income (NII) leg of the EBA Supervisory Outlier Test: the worst-case 1-year delta NII under parallel up/down shocks versus a caller-supplied threshold (EBA leaves NII SOT calibration to competent-authority / institution discretion under EBA Guidelines on IRRBB and CSRBB, EBA/GL/2022/14 -- no single EU-wide bright-line percentage exists, unlike the EVE leg). Returns delta_nii_pct_of_nii, threshold_set, and nii_outlier. Terminal node of the irrbb-supervisory-outlier-test chain. Exports as Policy Mandate JSON or W3C VC. NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-185-irrbb-sot-nii-evaluator.html#manifest",
      "consumes": [
        "art-184-irrbb-sot-eve-evaluator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2d05e7c0659fd1f50c44dfda82c85033da1c389295bdad27c99998a4077f98cc","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ECDrYSbqei7lu3UBIKdjltBDfbEi7dWFiBSw0KN3lYAP/0Bis4heyIVxBa5RYVQPOuvcLJIDoOq+Af68bPjiVhOfonPl6JKCBV3lrivdMfAGp0SSBwaLuzETi5gc83J0CDJilZHjC+x47lHG0JclmpiP7fWiX7Xvkvcjm/rIVUYLYQyKA5+KXDHHbqNzrmr/MqAA3q0qPBYYECLu49j8/w/GAq8x8+Y2HPqKEP1Rlvhi2TX4e/qXeAih1N13T1NJIxO7R7Y7ZfY1ucUpBRMOXB/yraO/ckIYa5Pwrys5OWYFgme1qsSUNm9ylRfEKZhqv3PEIw7o6EfHSJBLBqel1Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6e045c217ba902420fc6574d594198e3b8734793fefa05da01511ecca3ef6101",
          "output": {
            "delta_nii_pct_of_nii": 15,
            "nii_outlier": true,
            "projected_nii": 1000,
            "sot_nii_threshold_pct": 10,
            "threshold_set": true,
            "worst_delta_nii": -150
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-186-irrbb-standardised-approach-mapper",
      "tool_version": "1.0.0",
      "display_name": "IRRBB Standardised Approach Mapper",
      "mcp_name": "map_irrbb_standardised_approach",
      "mandate_type": "compliance_mandate",
      "wave": 33,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-186-irrbb-standardised-approach-mapper.html",
      "description": "Map non-maturing deposit (NMD) positions to the EBA standardised / simplified-standardised approach behavioural caps (BCBS d368 para 87 / Annex 2): retail transactional core proportion capped at 90% / average maturity capped at 5 years; retail non-transactional (savings) core capped at 70% / 4.5 years; wholesale core capped at 50% / 4 years. Flags behavioural-option add-ons (e.g. mortgage prepayment) requiring separate treatment. Root node of the irrbb-measurement-and-disclosure chain. NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-186-irrbb-standardised-approach-mapper.html#manifest",
      "consumes": [],
      "feeds": [
        "art-187-irrbb-csrbb-scope-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3687fcacedfebe176360464c1aaed42703249cb1305e2538b3058ef6a417c271","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "K0gOSeRL/1jOtlAllwIf24arbjIh3ypGUivphqo8XKEe03CgnUArmk6Gav8jh9Tf1bBasAjpkBfIuuGZMm1pgyBwetT6bvRKZk98j2+SUzSDjemqKG4qPC3mAW/dsmPDBqi9KbFUTGtMPmTESHvo1sCsAMMhOkQ69QxrPxmf5/4IcliQYqdPzbgJ0n7KM5fCOmsUXnnoC7N07hUelxraoguQzbl9PwDMnTsqpNEkJdGF8AbxsB90G64W9b+e+WGiCqIPcmEfcdtXfyOTA5nwm28IHi0xF9ulz5le13H8EZcsHqC4f0UR2xBu0g06t/kJ0Afd60pswhxBkZqH3DoO+w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b5b2e6bd45519c0629a39c3fce52df820cfd4dda2689bd77c94db263574b3312",
          "output": {
            "behavioural_mortgage_prepay_pct": 15,
            "behavioural_option_addon_required": true,
            "core_capped": true,
            "core_deposit_pct_applied": 90,
            "core_deposit_pct_input": 95,
            "deposit_category": "retail_transactional",
            "maturity_cap_years": 5
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-187-irrbb-csrbb-scope-checker",
      "tool_version": "1.0.0",
      "display_name": "IRRBB CSRBB Scope Checker",
      "mcp_name": "check_irrbb_csrbb_scope",
      "mandate_type": "compliance_mandate",
      "wave": 33,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-187-irrbb-csrbb-scope-checker.html",
      "description": "Identify Credit Spread Risk in the Banking Book (CSRBB) scope per EBA Guidelines on IRRBB and CSRBB (EBA/GL/2022/14): instruments held at fair value whose credit-spread risk is not fully captured by credit-risk or IRRBB frameworks (FVOCI/AFS bond books, fair-valued loans, liquidity-buffer bonds) put a bank in scope, requiring a defined methodology and ICAAP inclusion. No EU-wide materiality threshold is prescribed -- proportionality is a competent-authority / institution judgment. Second node of the irrbb-measurement-and-disclosure chain. NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-187-irrbb-csrbb-scope-checker.html#manifest",
      "consumes": [
        "art-186-irrbb-standardised-approach-mapper"
      ],
      "feeds": [
        "art-188-irrbb-disclosure-readiness-diagnostic"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:fea6edb4b186ef335fd7e3df37d128065a18992ad5cfb21893345d0ed47e2a22","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KwPFR6pAgMGj7jTla5Tx5HLFtbv2+o/dRaDi+GaaTHoooZHMvP/jGxqJaOE6dLstaaFoEMoYTWBgC8cAmorTfyn0tKVgunzQFYc+0Ve+HcyylxpEOStklG/VrfxlJ9GiKP4UYk4DFqOGIiXyYEy8txj2XYRZ1Deec/EohBC7eN4SNSSsRf9dMctkhTSHpALtoF9WmlNA8/QB6MuV6QrU+iZrz8eEPF7zQGBvEzINtWFHzRsGHAp6ecJmDqGUjYzEMEjrqOHGX7QT/3fg3JPyxM3tdVx7h7VycfXmxQwF2igZcDYJmIwlDwjl6bzedAXUNKj58nrnZK4ftcp8U+2apg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e0668a442d00bd348f2bffbd00bb409b194bafaab9f69418d35947ff666d3e53",
          "output": {
            "csrbb_conformant": false,
            "csrbb_included_in_icaap": true,
            "csrbb_methodology_defined": false,
            "gaps": [
              "csrbb_methodology_defined"
            ],
            "in_scope": true,
            "in_scope_amount": 700
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-188-irrbb-disclosure-readiness-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "IRRBB Disclosure Readiness Diagnostic",
      "mcp_name": "run_irrbb_disclosure_fit",
      "mandate_type": "compliance_mandate",
      "wave": 33,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-188-irrbb-disclosure-readiness-diagnostic.html",
      "description": "A-F IRRBB disclosure readiness diagnostic across five dimensions: EVE shock calculation performed, SOT (EVE + NII) evaluated, standardised approach mapped, CSRBB scope assessed, and Pillar 3 IRRBB1 disclosure template ready. Returns readiness_grade (A-F), readiness_score (0-100), dimensions_met, and gaps list. Terminal node of the irrbb-measurement-and-disclosure chain. BCBS d368 + EBA GL/2022/14 + Pillar 3 IRRBB1. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-188-irrbb-disclosure-readiness-diagnostic.html#manifest",
      "consumes": [
        "art-187-irrbb-csrbb-scope-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9339e768762bca73b88956e51e3ffc9500c8f2a6a54cba095f989992be265292","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GO9s4aru+w6VyuvTrKjrPmOWsyLRrYdAftew0o0K8NgtFDRDlu1CmXfQNTmJl//Gdqr+e77bhSeNBMF+UlxK1QoARrevn3wSJgd757VJMkfiClqAAkaWzuh+ILX9IMj+AeF7J8NOozSQy4bAv3l/An/yIQuDS6tq3JzmjEGjB7kM4U0j3/h77ayiYVLmhwamFHKchiBA7BJdROLRG8vGESVGeOqrYuoPF0Oui5MdcywxrW9LgR2hrjVXpohd2naHJeItIolLVUB4N9TSflCuNbfrD3DvghAvGz3WGfy4D0YG1FMRneUkJpYyhNX9T/1Ns20c0rPdr2hNLZ5XVIj+AQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8418e9871aa09dc9174086e526349fff95d1cb3cbdacb85afce0a2a729ee5829",
          "output": {
            "dimensions_met": 5,
            "dimensions_total": 5,
            "fully_ready": true,
            "gaps": [],
            "readiness_grade": "A",
            "readiness_score": 100
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-189-markdown-document-converter",
      "tool_version": "1.0.0",
      "display_name": "Markdown Document Converter",
      "mcp_name": "convert_markdown_document",
      "mandate_type": "compliance_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-189-markdown-document-converter.html",
      "description": "Deterministic Markdown to HTML and plain text over a hand-rolled CommonMark subset (headings, bold/italic/code spans, fenced code, blockquotes, one-level lists, links, images as links, horizontal rules, GFM pipe tables). All raw HTML in the input is escaped, so the output is injection-safe. Returns html, plain_text, stats (headings, links, code_blocks, tables, words), and SHA-256 digests of the input, HTML, and plain text computed over exact UTF-8 bytes with no normalization. Feeds the conversion receipt builder. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-189-markdown-document-converter.html#manifest",
      "consumes": [],
      "feeds": [
        "art-191-conversion-receipt-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:366d56b7225bb3a094fb31f8ff393b6a63adf21a07735d58df87c49b385b71cd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "B12U6vyDFqbOPrcDYbYcgJBHBAFnFI6lY0C+T0o/O24kLpLG/VEc+OdElqwo5jTfh5wUhvqS+gb744bvPRYfdAdHOMf5Ev0GYNqFTPwgW2mUNd6QizJx6Z8u6i5e9wsAD5utqtcVAqTP3OjJ2fwcw978R/1fy21NJGtoe01V318LCiVLIfIEPOusiiLjDPofZqCdeMiBV+TztTV077MvwwlFXjn/MAkgrOD1qqoT+E8yUDtw9Pl/wHYiZOOwJyOZLzvLbwuj7+HzyxVkRygzZs9PwWhSur+InpG9nAJWEccYF5i9hJZ1XGggJTt2cDFAGPfxDtRTrCmCf2yjKjFTxQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:366d56b7225bb3a094fb31f8ff393b6a63adf21a07735d58df87c49b385b71cd",
      "output": {
        "digest_basis": "utf8-bytes-no-normalization",
        "html": "<h1 id=\"title\">Title</h1>\n<p>Hello <strong>world</strong>, see <a href=\"https://ainumbers.co\">docs</a>.</p>\n<ul><li>one</li><li>two</li></ul>\n<table><thead><tr><th>Col A</th><th>Col B</th></tr></thead><tbody><tr><td>1</td><td>2</td></tr></tbody></table>\n<pre><code class=\"language-js\">const x = 1;</code></pre>",
        "html_sha256": "c49cf9924398223cb01a5795ea60f6e702a54aac39baceef4be72219168ef4c6",
        "input_sha256": "28d294f76701db2241538a4179d6af0a20300b93c8f2f1e636ff572b03afbf04",
        "plain_text": "Title\n\nHello world, see docs.\n\n- one\n- two\n\nCol A\tCol B\n1\t2\n\nconst x = 1;",
        "plain_text_sha256": "11ae6f0d37921a9cc5dc2f546badfd051dc846a99825cc51c6814c35109c66b9",
        "stats": {
          "code_blocks": 1,
          "headings": 1,
          "links": 1,
          "tables": 1,
          "words": 19
        }
      }
    }
  },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-190-tabular-data-converter",
      "tool_version": "1.0.0",
      "display_name": "Tabular Data Converter",
      "mcp_name": "convert_tabular_data",
      "mandate_type": "compliance_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-190-tabular-data-converter.html",
      "description": "Deterministic conversion across CSV, JSON (array of objects), and GFM pipe tables with RFC 4180 CSV parsing (quoted fields, embedded delimiters and newlines, escaped quotes). JSON key order follows header order. Numbers stay strings unless coerce_types is set, and then only strings matching a strict finite-decimal pattern are coerced, so non-finite values can never be produced. Ragged rows, duplicate headers, and coercions are surfaced in warnings, never silently dropped. Returns converted text, row_count, column_count, columns, warnings, and input and output SHA-256 digests. Feeds the conversion receipt builder. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-190-tabular-data-converter.html#manifest",
      "consumes": [],
      "feeds": [
        "art-191-conversion-receipt-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ebda2b1d4bde79561f6c8555da36e765a44fa6a0b32cf475c953c59d3f38bb67","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "H5IqWRY7PNY7AENxYWTroPib//0QiFP4CiB/Iz2sa+kl/MSLrSynmP6beKFdLR29vpE2XqsvU0/o3VkDDA+e9Sbqt2EMc1WnWfZDOrLDT5SqXLBvSzNgRZ2G2zQYw/71KBE+2UlPv2AJWNAZYr4GIg7hp8azKKg+Ag5OSuTZzHkIUiu+J3dX8p1fFpV5d9QsVU0O3t4E48PCeLgBItV4XBC6EEwZ90onx0WYN1OUaoPkPBOjTEXk59x1sUFJND1BGt+Foto1CebkgMDFBi3Bj4BFcRlyGwO9qQ4sAg0vMTEvvM7VCntQDEseKyEBrP3Bg+DOaL0TlKjYVAP1vH/hug==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ebda2b1d4bde79561f6c8555da36e765a44fa6a0b32cf475c953c59d3f38bb67",
      "output": {
        "column_count": 2,
        "columns": [
          "name",
          "qty"
        ],
        "converted": "[\n  {\n    \"name\": \"apple\",\n    \"qty\": 3\n  },\n  {\n    \"name\": \"pear\",\n    \"qty\": 5\n  }\n]",
        "error": null,
        "input_sha256": "925f5d6affa9dfeba471f6fedd4fca7f8c15e4c0de43c42e7718f1881b174b88",
        "output_sha256": "4ab6df5a1aca0fed1c712c12b271e51e63d7976b9229df69793ecbe6bdec5d89",
        "row_count": 2,
        "source_format": "csv",
        "target_format": "json",
        "warnings": [
          "coerced \"3\" to number 3",
          "coerced \"5\" to number 5"
        ]
      }
    }
  },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-191-conversion-receipt-builder",
      "tool_version": "1.0.0",
      "display_name": "Conversion Receipt Builder",
      "mcp_name": "build_conversion_receipt",
      "mandate_type": "cryptographic_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-191-conversion-receipt-builder.html",
      "description": "Binds one file-conversion event into a canonical receipt tying the input digest to the converter identity, the parameters, and the output digest. binding_sha256 is SHA-256 over the JCS-canonical receipt with binding_sha256 removed. Any external converter, including the heavy WASM Conversion Lab tools, can feed it digests, and it is the documented hand-off point for BrowserChain anchoring. This binds a transformation edge between two digests, which is a different job from anchor_document_integrity (art-121, existence and timestamp of one document). Returns the receipt plus checks for hex validity, converter identity completeness, and self-conversion. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-191-conversion-receipt-builder.html#manifest",
      "consumes": [],
      "feeds": [
        "art-192-conversion-receipt-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e9c4a6255342b4fb2f2bd3687128e671dad4028f95ca277ee482fabe7b2b83ce","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JD5VQvLViDo2V4XdFqIuTDmIQ+vBwNBYxFWar5jhyX4Zpoqzmy8LexDCedLTPPOAxI/JAcjTwiRP/KEOTXXsAyetPNz6djs5Q33NkY9j26xQwyGbH75hU+1c7bPzOmK3LZsKzhO2F483fvQLQTtevrkzscGPGk2J8UECSivt25EGMVANx9CyH9YyFXIDrUhGo6Vg2MMabOsHYDrXF23laRapqTBR+sXxUKMObhQymDpb6IJKa3D5yW+oUMkKz20MEnnxH8JQlX093Zs04MWjgqAbDN20OqLGD2Zbj2xGsyEsnWPVVQEuyffyA5Pfl5Qa20kaGCbWSMEl8sJESu2ZhQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:fe8a41d83ea5eaabdcef73754d6758eb23fbe1550f5f16408f1aa180a8204679",
          "output": {
            "all_checks_pass": true,
            "checks": [
              {
                "check": "input_sha256_is_64_hex",
                "detail": "valid",
                "pass": true
              },
              {
                "check": "output_sha256_is_64_hex",
                "detail": "valid",
                "pass": true
              },
              {
                "check": "converter_identity_complete",
                "detail": "name and version present",
                "pass": true
              },
              {
                "check": "not_self_conversion",
                "detail": "input and output digests differ",
                "pass": true
              },
              {
                "check": "parameters_free_of_pii_keys",
                "detail": "no PII-carrier keys detected",
                "pass": true
              }
            ],
            "receipt": {
              "binding_sha256": "7c0e135c7d670decbdea449f9dc580b75cc01ef50eb4bb3f5d3540050b6a30e7",
              "converter": {
                "name": "art-189-markdown-document-converter",
                "version": "1.0.0"
              },
              "input": {
                "format": "markdown",
                "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
              },
              "output": {
                "format": "html",
                "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
              },
              "parameters": {
                "heading_ids": true,
                "table_support": true
              },
              "receipt_version": "1.0"
            }
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-192-conversion-receipt-verifier",
      "tool_version": "1.0.0",
      "display_name": "Conversion Receipt Verifier",
      "mcp_name": "verify_conversion_receipt",
      "mandate_type": "cryptographic_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-192-conversion-receipt-verifier.html",
      "description": "Re-verifies a conversion receipt from art-191: recomputes binding_sha256 over the JCS-canonical receipt and compares, checks structure and hex fields, and optionally compares digests re-hashed from the actual files. Returns a verdict of valid, binding_mismatch, digest_mismatch, or malformed, plus a per-check detail list. This verifies the domain receipt inside the artifact, which is distinct from verify_execution_hash, the utility that verifies the section 4 artifact envelope. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-192-conversion-receipt-verifier.html#manifest",
      "consumes": [
        "art-191-conversion-receipt-builder"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:77570734c4be05d8e8a9f816845247675a55ed85b3e6ce17165b857dfd39da02","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JJ9t8oKd5KEi6GtKlKYOTTFtVHhIYV4dIs/KMIg1zWoLbKUvnH38HHRu8FdaFRbZlFxacrUCckcuYcnmV3g/LArSxj6dxvB8ha0KaTwEL1tfq5uYGrRnUlws4ELbhofdI7t4FiEBB5ADQsHzSY9wodUreEMEZMVAoiDjfhUqGy8DB0oXmukIh7CgA5pFPC8fpPHxVio+MfPc/Vp9INR1oQcLgQdPKhiVN64hieizg560EIWNwmUScaztm76H9+ePF68+jir/JAJJTwZ0yWfkCUM8gC37vptlxugAUZcgsp0FbtyrfqZUvGggEEOhjP1/GBgez+asXq8VkbFdce5j4Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4ed6c01dbc352e44035af7c2e8fc7633139e9ab6b9d2bc4c122848b91fcf9935",
          "output": {
            "binding_ok": true,
            "checks": [
              {
                "check": "receipt_structure_and_version",
                "detail": "receipt_version 1.0 with input/output/converter/binding present",
                "pass": true
              },
              {
                "check": "input_sha256_is_64_hex",
                "detail": "valid",
                "pass": true
              },
              {
                "check": "output_sha256_is_64_hex",
                "detail": "valid",
                "pass": true
              },
              {
                "check": "converter_identity_complete",
                "detail": "name and version present",
                "pass": true
              },
              {
                "check": "binding_sha256_matches",
                "detail": "recomputed binding equals stored binding",
                "pass": true
              },
              {
                "check": "recomputed_input_digest_matches",
                "detail": "rehashed input matches receipt",
                "pass": true
              },
              {
                "check": "recomputed_output_digest_matches",
                "detail": "rehashed output matches receipt",
                "pass": true
              }
            ],
            "digest_ok": true,
            "verdict": "valid"
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-193-metadata-sanitization-prover",
      "tool_version": "1.0.0",
      "display_name": "Metadata Sanitization Prover",
      "mcp_name": "prove_metadata_sanitization",
      "mandate_type": "compliance_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-193-metadata-sanitization-prover.html",
      "description": "Produces a proof-of-sanitization record binding the original digest to the findings removed, redacted, or retained and to the sanitized digest, with a deterministic residual-risk analysis by file type (JPEG COM segments, PNG textual chunks, PDF and DOCX XMP and embedded-object metadata). The kernel receives field names and categories only, never metadata values, because those values can themselves be PII such as GPS coordinates and author names. Returns the sanitization record, residual_risks, and a verdict of sanitized, partially_sanitized, or not_verifiable. Feeds the conversion receipt builder. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-193-metadata-sanitization-prover.html#manifest",
      "consumes": [],
      "feeds": [
        "art-191-conversion-receipt-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2d8ae35efdc10161078c887a54e33ac94a5faba77d639714ebe390c32a9759b0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Ipygd92A3GLAMQ0j2mq34sBsoAig5aWN1Gua87VpEY0jWEjuYD7neHwjcWQNdnddReTJWOuKFZO4cFCOySaLLw0CJpz2GrUIRNI1QVKrGe1A1SPoawAIy7PJtcBCTiIJEpjlcbZixhdHNDJNg2+isMSR/2RhEt87mzZn191mWuwrg2BHu6kO55BsUsRPqtyujTgceUDmMAV05bUoIHQndx0TG0pAbgVNqdTU0m1ms2Nw7XW0QlGVDnXUIgGLhTQ8J4jHu1wMZZfbO2Qrr/DLNuT9anpspNLk5j1EgCQLI4snpEAKTXoGG/oUWA1DsgFk9U5i5n1C/YxKgjYsyoER7w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c4d7d0c35dbd55d229bc2f9c2386b3e73d0ed78fc2ea41a8064e6d0e7c08a08b",
          "output": {
            "residual_risks": [],
            "sanitization_record": {
              "bytes_after": 203100,
              "bytes_before": 204800,
              "counts": {
                "redacted": 0,
                "removed": 4,
                "retained": 0,
                "total": 4
              },
              "file_type": "jpeg",
              "findings": [
                {
                  "action": "removed",
                  "category": "gps",
                  "field": "GPSLatitude"
                },
                {
                  "action": "removed",
                  "category": "gps",
                  "field": "GPSLongitude"
                },
                {
                  "action": "removed",
                  "category": "device",
                  "field": "Make"
                },
                {
                  "action": "removed",
                  "category": "comment",
                  "field": "UserComment"
                }
              ],
              "original_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "record_sha256": "d0e39cef2c4cc122a9e6a9cccef8e9f7ea20a43b2f627c2b6268984ece0d9b8f",
              "record_version": "1.0",
              "sanitized_sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "verdict": "sanitized"
            },
            "verdict": "sanitized"
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-194-digest-manifest-builder",
      "tool_version": "1.0.0",
      "display_name": "Digest Manifest Builder",
      "mcp_name": "build_digest_manifest",
      "mandate_type": "cryptographic_mandate",
      "wave": 34,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-194-digest-manifest-builder.html",
      "description": "Binds N file digests into one canonical, hash-anchored manifest. manifest_sha256 is SHA-256 over the JCS-canonical sorted entries array. This builds flat manifests with no tree, which is a different job from verify_merkle_batch (cry-04, which verifies Merkle proofs); BrowserChain's log owns Merkle trees. Also serves the plain checksum-tool use case. Returns the manifest plus checks for duplicate names, duplicate digests, malformed hex, and path-like names that are flagged and basenamed. Feeds the conversion receipt builder. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-194-digest-manifest-builder.html#manifest",
      "consumes": [],
      "feeds": [
        "art-191-conversion-receipt-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f7773f9cb20b6ccffd83c7dc8eadff91a541c6046f38620c66139db89449959b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-02"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HCsssgjvdhYeDSGI89H17RfgINlPVIiaFo2n7IQ067cvNcfXaPzXkHOGLBgPWNCwDqVm6NlAXwEeAQuuA1xKnyUx9z//VjcDIK482+cDxbmR9DLzzMV00ft/50pcWs0xEeGXrED6NR5QO3s4hpC11sWxiBfmRGgnFL4a0FHzuKUgF5dtWftOUYHZ0afuafmtEdQbnfFOnZri1guMtiR9wgWnqs/uqivV6NISqV2Od+VIp4ITBK5VO3db98X8cEW9GfL92x7lYAb+li1PKkXj5BMDJXoJqWjkkNLXrBnQRD4wG6Gnya3X9D35hzEahbMz7Nw0Rf53vopv4hU9GxQnog==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:784e8fbbe151a2af772343ca7a7d86d69293ddf2fb54a58aeb41223f7c4394f4",
          "output": {
            "all_checks_pass": true,
            "checks": [
              {
                "check": "all_digests_64_hex",
                "detail": "all digests are 64 hex",
                "pass": true
              },
              {
                "check": "no_duplicate_names",
                "detail": "no duplicate names",
                "pass": true
              },
              {
                "check": "no_duplicate_digests",
                "detail": "no duplicate digests",
                "pass": true
              },
              {
                "check": "no_path_like_names",
                "detail": "no path-like names",
                "pass": true
              }
            ],
            "manifest": {
              "entries": [
                {
                  "bytes": 512,
                  "media_type": "text/csv",
                  "name": "data.csv",
                  "sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                },
                {
                  "bytes": 10240,
                  "media_type": "application/pdf",
                  "name": "report.pdf",
                  "sha256": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
                }
              ],
              "entry_count": 2,
              "manifest_sha256": "19c3913b698f2732bb2d2c397e89021001cbd510a4d322577da915c94ef8e52f",
              "manifest_version": "1.0",
              "purpose": "release-bundle",
              "sort": "name",
              "total_bytes": 10752
            }
          }
        }
      },
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ]
    },
    {
      "tool_id": "art-195-creative-commons-license-chooser",
      "tool_version": "1.0.0",
      "display_name": "Creative Commons License Chooser",
      "mcp_name": "choose_cc_license",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-195-creative-commons-license-chooser.html",
      "description": "Deterministic two-question decision tree mapping creator answers (waive all rights, allow commercial, allow adaptations) to the matching Creative Commons 4.0 license (CC0, CC BY, BY-SA, BY-ND, BY-NC, BY-NC-SA, BY-NC-ND). Returns license id, SPDX id, canonical deed URL, required elements, and attribution requirement. Selection only, not legal advice. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-195-creative-commons-license-chooser.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:23d99c49276243711b0b156cb0a24b24261b258f8c17e768786073d33139e117","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "J37haMkTVLwQsrNwd90IjQOPxDrO0iyHqRxSGMp0QHswHzOScIloqewblL5YeoRlcT8fPiSooOK+XzsSMuIX8xaZfdgHAhNiB4bO6BvgAyUgbveykActBc6HWmcoZhMeCCA5QGraIfbWAkMVY/xSzM0eKBRqCfnYNt+d4SEYmmgWJliR4+PS6RTBHU51BGFb+ayoT3Nhe6xSiNbUtYFlARiZZMs6tL15oCoDHYrHuthx+lduNmvWYJnpF3tllHSvL/ooPKRNbFk9kj19lVrbbJd/eelN8msoPOVNalWhuawRZ/4fcKu5QdmyR4upW6+uGZBsFYOaa6JqFFU+LJeREQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:23d99c49276243711b0b156cb0a24b24261b258f8c17e768786073d33139e117",
      "output": {
        "attribution_required": false,
        "disclaimer": "Selection only. Not legal advice. Verify against the canonical CC deeds before relying on any output for commercial or legal decisions.",
        "license_id": "CC0-1.0",
        "license_name": "CC0 1.0 Universal (Public Domain Dedication)",
        "license_url": "https://creativecommons.org/publicdomain/zero/1.0/",
        "required_elements": [],
        "source": "https://creativecommons.org/choose/",
        "spdx_id": "CC0-1.0"
      }
    }
  }
    },
    {
      "tool_id": "art-196-cant-be-evil-license-selector",
      "tool_version": "1.0.0",
      "display_name": "Can't Be Evil License Selector",
      "mcp_name": "select_cbe_license",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-196-cant-be-evil-license-selector.html",
      "description": "Rights-matrix lookup for a16z's six Can't Be Evil NFT licenses. Maps creator answers (waive all, commercial use, exclusivity, objectionable-use restriction) to the matching license. Returns both on-chain enum names (launch alias and current Oct 2022 name), Solidity LicenseVersion ordinal, both Arweave manifest URIs, full rights matrix, and normative caveats verified against canonical license PDFs. Selection only, not legal advice. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-196-cant-be-evil-license-selector.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9281484d2db7355117c3b8c416300df1a4c338d05dee08de26207a46a20def74","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "H69PdsrN90Vrmigc5qT+Q2dKBTEt57/ToijoKnpMq7EGGzUa2TKl+zie5hYiKe1ocn0d2aFkp8WjcIAILjW2dwdOjYNC2TAUPsNcVCoAVMs5LrifUF85lQXOa+xmSYxMHhqvsr4Kzj+qSKFy2TBmU4Pdx3G6uOxIkoJluWU5MtoS6S9XZtqCktm1Q0TL+IYK921lpOKPbRCBcaZ4UKifkQ8uAHdnofmNGAhGBW/ZsUm201poQxtCeRJUBfJE2lYsL1B3qRfvxo6SiPpA7lHXoEt1Bj/46mAxI/UYvDwFxI4Tmu9fErT7pXXg3mx3Qlk4/0R3ry/Q6OP4cpOk5L0AZg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:9281484d2db7355117c3b8c416300df1a4c338d05dee08de26207a46a20def74",
      "output": {
        "arweave_uri": "ar://zmc1WTspIhFyVY82bwfAIcIExLFH5lUcHHUN0wXg4W8/0",
        "arweave_uri_legacy": "ar://_D9kN1WrNWbCq55BSAGRbTB4bS3v8QAPTYmBThSbX3A/0",
        "caveats": [
          "CC0 waives all rights. No copyright, no conditions. The general public receives the grant, not only the NFT holder.",
          "No §2/§3 apparatus applies. There are no sublicensing conditions, exclusivity terms, or breach-termination provisions."
        ],
        "cbe_id": "CBE_CC0",
        "commercial": true,
        "creator_retains": false,
        "current_enum_name": "PUBLIC",
        "derivatives": true,
        "disclaimer": "Selection only. Not legal advice. The canonical Arweave license texts govern; verify before relying on any output for commercial or legal decisions.",
        "exclusivity": null,
        "launch_alias": "CBE_CC0",
        "license_version_index": 0,
        "matrix_verified": "2026-07-02",
        "objectionable_use_restriction": false,
        "reference_url": "https://github.com/a16z/cant-be-evil/",
        "sublicense": null
      }
    }
  }
    },
    {
      "tool_id": "art-197-pil-flavor-mapper",
      "tool_version": "1.0.0",
      "display_name": "Story PIL Flavor Mapper",
      "mcp_name": "map_pil_flavor",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-197-pil-flavor-mapper.html",
      "description": "Maps creator answers (commercial use, derivatives allowed, optional minting fee, revenue share percent) to a Story Protocol Programmable IP License flavor and emits the full PILTerms struct. Three flavors: non_commercial_social_remixing (licenseTermsId=1, the protocol constant), commercial_use, and commercial_remix. Selection only, not legal advice. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-197-pil-flavor-mapper.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:59ffd31eb91e148f5ffd33a6d7d396cef95c7f55035d3cbe8e8c0457f2cb58ea","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json",
        "pdf",
        "vc"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KKz5G8p/PJOav8GamJr8Xux9UxLFlR/+Bl0b9p546XQgGC40rp9TVIod2ZE1EqZBbgbVIz8O3f7ntI2haJ3JaBZztR54w+XyS+P+WQHd3Fk0MQ4MLbnnMLN6O1cDYiYhKlN/jJPd4LuBwxb0ESypxW3L1MmCQWQh+L1phrJqZG8mRDyP+Pvx9z+BCFDuvWkk52zbgvMaRqb2G4ztdMtFaxvbvu479pppVJSuFm/wz2IYqK3LNE1PKFytzlfCjfX9LTmCQq0Eb4E/0Ahk0JPMcSqp+GpHV0SMkcg2cD0PLTQrJW7I5fc6Ogmvro4iFOVdXdnlF3UoOSSkoPiW/j+JqA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:59ffd31eb91e148f5ffd33a6d7d396cef95c7f55035d3cbe8e8c0457f2cb58ea",
      "output": {
        "disclaimer": "Selection only. Not legal advice. Story PIL documentation and license text govern; consult a licensed attorney before relying on any output.",
        "docs": "https://docs.story.foundation/concepts/programmable-ip-license/pil-flavors",
        "flavor": "non_commercial_social_remixing",
        "flavor_label": "Non-Commercial Social Remixing",
        "license_terms_id": 1,
        "pil_terms": {
          "commercialAttribution": false,
          "commercialRevShare": 0,
          "commercialUse": false,
          "defaultMintingFee": 0,
          "derivativesAllowed": true,
          "derivativesAttribution": true,
          "derivativesReciprocal": true,
          "licenseTermsId": 1,
          "transferable": true
        }
      }
    }
  }
    },
    {
      "tool_id": "art-198-cross-license-rights-comparator",
      "tool_version": "1.0.0",
      "display_name": "Cross-License Rights Comparator",
      "mcp_name": "compare_rights_matrix",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-198-cross-license-rights-comparator.html",
      "description": "Compares any two licenses from the CC, CBE, and PIL families on a 9-dimension rights vector (copy, display, commercial, exclusive, modify, sublicense, share_alike, attribution, revocable). Returns a diff array and a partial-order permissiveness result: a_more_permissive, b_more_permissive, equal, or incomparable. Informational Rosetta stone for cross-framework license selection. Not legal advice.",
      "input_schema_ref": "chaingraph/art-198-cross-license-rights-comparator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:24102c5196e98e7832f199ffd32f1801cda6dcf14ae89fb8e8d89fdfcd8963f2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BwqqF4HZUOohRU961h5+wtNhJTXkZ3aFbOtTdNkuwUYsPw5K6R8lbTIzhRKqHV3HL9DDrPn/eOI/8IyXn5DDcwOtfT7KhcA2KccovW+bO8wLeMFkeMExRJqCO4FhZizZC5oflkF3h+Jx53J8Z2M38FP5O76tZ18nD78rRGKvk+EE9k02H1iwcC7xRAuXPOUk+xwmGYTN0eFo2CCprHFZzweBNsx+sNs3BKTI5PhIR7cxiNxPJRy5al4Sn7E5rZzLJ8mEpGm9BXWpfRp8Z3+QupxlIK8t0qspToYOaRKYU6ALvaElJGrHGXYq37E2Ecg03szp7XhyoVB8jNTv7/YfDA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0a969b8fd3f487eb397e7e73a41003585a86554fe2e451af6ba5ed2a181e06fe",
          "output": {
            "checks": [
              {
                "check": "ref_a_recognized",
                "detail": "resolved to cc:CC0-1.0",
                "pass": true
              },
              {
                "check": "ref_b_recognized",
                "detail": "resolved to cc:CC-BY-4.0",
                "pass": true
              }
            ],
            "diff": [
              {
                "key": "attribution",
                "ref_a": false,
                "ref_b": true
              }
            ],
            "dimensions": [
              "copy",
              "display",
              "commercial",
              "exclusive",
              "modify",
              "sublicense",
              "share_alike",
              "attribution",
              "revocable"
            ],
            "disclaimer": "Selection only. Not legal advice. Consult the canonical license texts and a licensed attorney before relying on any comparison for commercial or legal decisions.",
            "matrix_note": "Canonical rights vectors encode the stated terms of published license texts. This comparison is informational only, not legal advice.",
            "more_permissive_than": "a_more_permissive",
            "ref_a": {
              "family": "cc",
              "id": "CC0-1.0"
            },
            "ref_b": {
              "family": "cc",
              "id": "CC-BY-4.0"
            },
            "sources": {
              "cbe": "https://github.com/a16z/cant-be-evil/",
              "cc": "https://creativecommons.org/choose/",
              "pil": "https://docs.story.foundation/concepts/programmable-ip-license/pil-flavors"
            },
            "vector_a": {
              "attribution": false,
              "commercial": true,
              "copy": true,
              "display": true,
              "exclusive": false,
              "modify": true,
              "revocable": false,
              "share_alike": false,
              "sublicense": true
            },
            "vector_b": {
              "attribution": true,
              "commercial": true,
              "copy": true,
              "display": true,
              "exclusive": false,
              "modify": true,
              "revocable": false,
              "share_alike": false,
              "sublicense": true
            }
          }
        }
      }
    },
    {
      "tool_id": "art-199-license-election-certifier",
      "tool_version": "1.0.0",
      "display_name": "License Election Certifier",
      "mcp_name": "certify_license_election",
      "mandate_type": "cryptographic_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-199-license-election-certifier.html",
      "description": "Binds a license election (family, id, params) to a named asset and licensor DID, producing a deterministic terms_hash via SHA-256 over the JCS-canonical election core. Emits a portable certificate object with all fields needed for downstream verification. Not legal advice. Selection only.",
      "input_schema_ref": "chaingraph/art-199-license-election-certifier.html#manifest",
      "consumes": [
        "art-197-pil-flavor-mapper",
        "art-196-cant-be-evil-license-selector",
        "art-195-creative-commons-license-chooser"
      ],
      "feeds": [
        "art-200-license-election-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:72d98f80efe5fb34421fb246ca4e8071db4f48d55a8e4abb445b06414241b441","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json",
        "vc"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "H8varzpz+KUv4R1EbE0DTK7OKG5XaJ2vVkgMtHz3O80KpmxdAshM4zS+ZrNCPeKTG6O1LCitwMWpp+NOE8oNbQo5kP5HCBRN9VWpYEbwlRzsgadIej85TvG/CXajrs62DUPjaPOGhWZ5mOkK9lF8newsJXsGumS2zXTcZM2ndX8snz/RNjmH9cXmHstO1DDZc+POVRmud7cXFLQmyFzsyy9C9COgsdMhQwxv0yBeoQrCjzL72Ms9qx2jxHfa2jNBKvSfXxXd5GTIxwj/mxXC40m7Q4SZSg2hCKqsl8Af96YS1cv8wbRUrMvVu2G5Ze82PhxN3SPDfssevmvilSixFg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:9e6754740132a1b2861c70cdbc8bfdf0a81db6eb225378f0a30d596e542fccb4",
          "output": {
            "all_checks_pass": false,
            "certificate": {
              "asset_ref": "",
              "certificate_version": "1.0",
              "certification_note": "This certificate records the licensor's stated election of a published license for the named asset. It is not a legal opinion, not a legal guarantee, and does not constitute on-chain registration. Consult the canonical license texts and a licensed attorney before relying on it.",
              "disclaimer": "Not legal advice. Selection only.",
              "license_election": {
                "family": "",
                "id": "",
                "params": {}
              },
              "licensor_did": "",
              "terms_hash": "2f70d6f79e9cebca6febd1321324dc755c7893af20ddc0b33f5a3538e3d74707"
            },
            "checks": [
              {
                "check": "asset_ref_present",
                "detail": "asset_ref is empty (empty-input mode)",
                "pass": false
              },
              {
                "check": "licensor_did_present",
                "detail": "licensor_did is empty (empty-input mode)",
                "pass": false
              },
              {
                "check": "license_family_known",
                "detail": "license_election.family not recognised (cc, cbe, pil, embedded supported)",
                "pass": false
              },
              {
                "check": "license_id_present",
                "detail": "license_election.id is empty",
                "pass": false
              }
            ],
            "terms_hash": "2f70d6f79e9cebca6febd1321324dc755c7893af20ddc0b33f5a3538e3d74707"
          }
        }
      }
    },
    {
      "tool_id": "art-200-license-election-verifier",
      "tool_version": "1.0.0",
      "display_name": "License Election Verifier",
      "mcp_name": "verify_license_election",
      "mandate_type": "cryptographic_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-200-license-election-verifier.html",
      "description": "Verifies a certificate produced by the License Election Certifier by recomputing the SHA-256 terms_hash over the JCS-canonical election core and comparing it against the stored hash. Returns verdict (valid | binding_mismatch | incomplete_fields | malformed), binding_ok flag, recomputed_terms_hash, and per-check results. Not legal advice.",
      "input_schema_ref": "chaingraph/art-200-license-election-verifier.html#manifest",
      "consumes": [
        "art-199-license-election-certifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a0aa948c199ee9e9b22b9f8c9e710dba6a6762acfa6cee243e6f2a9669dab881","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I5s6KrczgN0P/Km+PU/WZ45KKrvTLLJfQ9izxZU5AZwrSZVBlOTyrbB3VHxW8DzUdiuf97dP4/2KZCvE0fcuIge7MX1pU/EhWaWHeS1xqx2Wm7SgSBTcZEzsXDmoZVLEBJudmZx5X+37CAIJJiFnf5EAcSYqdJWC8OZZbD4LBfIWSQdbDA+TRRbW4AVlA2QGNUCzSjxHrXoJarFRr96pfCu8+Psbxo92jWOPsIP5/4oydrMTvQwpCPRkJ+u941C0KRQwfUvlQTUr3mym+c7VOPMsg38wxJjDUsJWluLHCiEFJEY8aBaoIQe7zh0T0YhsulJZIxgVuKp19XgHjyj/kg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f69cf1d86ab73cf798cb19feca98110a519b22e96a5b384c63ff955c86dd3971",
          "output": {
            "binding_ok": false,
            "checks": [
              {
                "check": "certificate_structure_and_version",
                "detail": "missing or malformed certificate structure (expected certificate_version 1.0)",
                "pass": false
              }
            ],
            "verdict": "malformed"
          }
        }
      }
    },
    {
      "tool_id": "art-201-iscc-content-code-generator",
      "tool_version": "1.0.0",
      "display_name": "ISCC Content Code Generator",
      "mcp_name": "generate_iscc_code",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-201-iscc-content-code-generator.html",
      "description": "Generates ISO 24138 ISCC content fingerprints for digital content. Computes Instance-Code (BLAKE3 data integrity), Data-Code (CDC + minhash similarity), optional Meta-Code (simhash over title n-grams from the supplied title), and a composite ISCC-CODE when at least one unit is available. Pure-JS implementation matching the iscc-core conformance vectors. TEXT and METADATA scope only.",
      "input_schema_ref": "chaingraph/art-201-iscc-content-code-generator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-202-tdmrep-reservation-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4dfd4472b91697eea65c4241ac425e012eeff7afe0d270e7da548a4904d9b4bc","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:33ac2853cd94704e42ceeab58625f396f74ef3286fa96d1a744d82c1167b7ca5","valid_from":"2026-07-11"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:33ac2853cd94704e42ceeab58625f396f74ef3286fa96d1a744d82c1167b7ca5",
        "seal": "Amcy4xDxyNUoReCBx7TAQsKmHzsrdjtnVYGNgMnmTSIXe/NYkyi/tn2ppHtoIpWs0aX+ZNN8n0WXiT6kDw1Qvxjhpj/wFGJmgtHwB62KDCdRMAS4yy3cM6nP62+XTXtSBrC5Z9Xze+beBwa3z7f05IZlaDxrRFKBwt9yanvj6/MIWUkmU1SStcIGIGJGRlfxz07fey2Tg7LpdUJaSPAm1hCItTybWmUoLFklm3eYQQ5/zN2iuz5BtTA1E5z2MQgFHgLCjwQKCTOIqiztKWp2ItYnc7OdE/GoGRK5QyCM3+4LTDLbPCNGp2f1H4BJh4WdJNDED0nfHaxkLOhUwnULkA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4dfd4472b91697eea65c4241ac425e012eeff7afe0d270e7da548a4904d9b4bc",
          "output": {
            "conformance_pass": true,
            "data_code": "ISCC:GAASL4F2WZY7KBXB",
            "datahash": "1e20af1349b9f5f9a1a6a0404dea36dcc9499bcb25c9adc112b7cc9a93cae41f3262",
            "input_bytes": 0,
            "instance_code": "ISCC:IAA26E2JXH27TING",
            "iscc_code": "ISCC:KUACL4F2WZY7KBXBV4JUTOPV7GQ2M"
          }
        }
      }
    },
    {
      "tool_id": "art-202-tdmrep-reservation-builder",
      "tool_version": "1.0.0",
      "display_name": "TDMRep AI Training Reservation Builder",
      "mcp_name": "build_tdm_reservation",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-202-tdmrep-reservation-builder.html",
      "description": "Builds W3C TDMRep AI-training rights reservation records from a reservation flag, optional location scope pattern, optional policy URL, and optional ISCC content reference. Outputs a tdmrep.json rule array, HTTP Content-Usage header equivalents, and HTML meta-tag equivalents per the W3C TDM Reservation Protocol and IETF AIPREF draft.",
      "input_schema_ref": "chaingraph/art-202-tdmrep-reservation-builder.html#manifest",
      "consumes": [
        "art-201-iscc-content-code-generator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:77d5d176f6eb5aa056509c41f30ed50029f753eba0fb68413759e38b7b670e08","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GH3ZFhWwlRfmC0BTyvb6XPc4KYHwMopKafHAly/Ece0jvONi1aSBgQhdz90wiQ6Z9ChJImkfodGBAZtsnWBZ0BA7M8lfjfUzkHPAWD7JTzsGGI/hBaLeplGY6bS1oVbLHB7/ZettabrGrWa2B9nHip5K63Pxzdfv2W/U/dlWkLAQiFodsQbjm/LY6yyHKxTN9QWQ9e/Y2xcMEaB57mghBxI8MRikDHcLSdhIWSWDQjLT0caV4urqAtaEMFWrD5eBLi6IQchj8ZpOLR7dclc72++evvB+TvqIG+IEc4w3IHocsruYQRQJWjBakENdMsZAgoFlK0CL+64v1nKVlQ+3LA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a55c3d85f15dc1a68b5d2126f315b23bd0db8f68591eb905ae3edff3c56f1f1a",
          "output": {
            "aipref_spec": "https://datatracker.ietf.org/doc/draft-ietf-aipref-attach/",
            "all_checks_pass": true,
            "content_usage_header": "tdm-reservation: 1",
            "iscc_ref": null,
            "location": "/",
            "meta_tag_html": "<meta name=\"tdm-reservation\" content=\"1\">",
            "schema_checks": [
              {
                "check": "reservation_value",
                "detail": "tdm-reservation: 1 (rights reserved)",
                "pass": true
              },
              {
                "check": "location_format",
                "detail": "location valid: /",
                "pass": true
              },
              {
                "check": "policy_url_format",
                "detail": "policy_url not provided (optional)",
                "pass": true
              }
            ],
            "tdm_reservation": 1,
            "tdmrep_json": [
              {
                "location": "/",
                "tdm-reservation": 1
              }
            ],
            "tdmrep_spec": "https://www.w3.org/community/reports/tdmrep/CG-FINAL-tdmrep-20240202/"
          }
        }
      }
    },
    {
      "tool_id": "art-203-embedded-license-selector",
      "tool_version": "1.0.0",
      "display_name": "Embedded License Selector",
      "mcp_name": "select_embedded_license",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-203-embedded-license-selector.html",
      "description": "Maps creator answers to the SolSea and ALL.ART 4-tier embedded-license menu: Private/No Commercial, Personal/Public Display/No Commercial, Public Display/No Commercial, or Reproduction/Commercial. Outputs the elected tier id, label, rights vector, decision path, and source citation. Not legal advice. Selection only.",
      "input_schema_ref": "chaingraph/art-203-embedded-license-selector.html#manifest",
      "consumes": [
        "art-198-cross-license-rights-comparator"
      ],
      "feeds": [
        "art-204-license-compatibility-checker"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4df7afd6d6833091adcbe684200a36fa88d6d1497cb1fac1d17f76919a1a9a05","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LTSaI2HZFcjUp9eFQ5sExcLa9decr0pALdLVu5goNegvDXqGPUObKzPof+DtVU3tSehhZZYBZ0ZjWJ2oGMEpgStBu+UWRKWaDk03ITeaNHW65STzq4WwIqr3AC1h49VsIkWYWI8h2MNjXc66yZZkfys1VwGP5V4dGXmLFyivvAkbwOPoDAo4m3RbhCYFX1d+797i1f6oP4vQ/lZRwFZZMRBTnerL2D4BEtD3X1jlqe1mcamkG4kNJ9FfdDkwC3k9EV45TMaBmKUfRoSqg9uFoS3/iPA4qdXJ+GhOIcZ9ozctobzt1v8CNS083T0dJuNgUtb78FrUrWl4ZqzAyecuMw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f1072b3b61018a0154fced660f5cee501b1061aff5aa46a4c8063de665557191",
          "output": {
            "decision_path": [
              "commercial_use=false, public_display=false → PRIVATE_NC"
            ],
            "description": "Private use only. No public display, no sharing, no commercial use.",
            "disclaimer": "Not legal advice. Selection only. The published SolSea/ALL.ART license terms govern. Consult a licensed attorney for your jurisdiction.",
            "inputs_resolved": {
              "allow_sharing": false,
              "commercial_use": false,
              "public_display": false
            },
            "label": "Private / No Commercial",
            "rights": {
              "allow_sharing": false,
              "commercial_use": false,
              "public_display": false
            },
            "source_family": "SolSea/ALL.ART embedded-license",
            "source_url": "https://solsea.io/license",
            "tier_id": "PRIVATE_NC"
          }
        }
      }
    },
    {
      "tool_id": "art-204-license-compatibility-checker",
      "tool_version": "1.0.0",
      "display_name": "License Compatibility Checker",
      "mcp_name": "check_license_compatibility",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-204-license-compatibility-checker.html",
      "description": "Checks whether a child license can derive from a parent asset license. Returns compatible flag, reason codes (ND_BLOCKS_DERIVATIVE, SA_REQUIRES_SAME_LICENSE, NC_BLOCKS_COMMERCIAL, PIL_RECIPROCAL_MISMATCH, CBE_PERSONAL_NO_DERIVATIVE), required_child_license when ShareAlike or reciprocal forces a specific choice, and an SPDX-satisfies result for Creative Commons families. Not legal advice. Selection only.",
      "input_schema_ref": "chaingraph/art-204-license-compatibility-checker.html#manifest",
      "consumes": [
        "art-203-embedded-license-selector",
        "art-198-cross-license-rights-comparator"
      ],
      "feeds": [
        "art-205-license-terms-assembler"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:bfd5a5f39b32798e40fc9cc82a2029d902936a511baf42cbd99668b985cf56ae","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "D/MFTfK5y9Nb1As8wXW71bGMd369apB7EeLXskT9QtgnkvnDNT3ZD7vUQhdSDTy4L6ZlJaTOR3dkRPGwd/Bp/AFktUXKVLJ4PPVz4tETHsjUNGVk8YWkhGg1OosXjxm4B9I6DecmTYgyVjQLvBVo+QQEPmSFQmXD8WhQwMTIoV8UTjVOm2jW6zU5McJJxxp2BBS1Vzov3s7rPkv3gLu1OBWj+1VaU2hX13rGqjDeGTpMK719pLo1GEzW2QaExwlEGUucptqNYe3LYUbRKAp7bH8Kf+HrJjjIPTBmEwDTrF4NgEgp0Bec9AUUuKdZd38XuXyGJdSt3lZjpgrOMFniSQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8b12ff53caa318509fd4581b935236bb0fc33a7eb00a4bdc787fff4b672af7d9",
          "output": {
            "checks": [
              {
                "check": "input_present",
                "detail": "parent_license and child_license are required",
                "pass": false
              }
            ],
            "child_license": null,
            "compatible": null,
            "disclaimer": "Not legal advice. Selection only. The published license terms govern. Consult a licensed attorney for your jurisdiction.",
            "parent_license": null,
            "reason_codes": [],
            "required_child_license": null,
            "spdx_satisfies": null
          }
        }
      }
    },
    {
      "tool_id": "art-205-license-terms-assembler",
      "tool_version": "1.0.0",
      "display_name": "License Terms Assembler",
      "mcp_name": "assemble_license_terms",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-205-license-terms-assembler.html",
      "description": "Renders a deterministic license term sheet by substituting field values into a pre-approved template (CC-STANDARD-USE, IP3-RIGHTS-RECORD, NFT-EMBEDDED-LICENSE). No bespoke legal drafting. Outputs rendered plain text and HTML. Not legal advice. Substitution into fixed templates only.",
      "input_schema_ref": "chaingraph/art-205-license-terms-assembler.html#manifest",
      "consumes": [
        "art-204-license-compatibility-checker"
      ],
      "feeds": [
        "art-206-rights-record-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:bebb5b6028df2c00c50d629078971ca09785b5ca51b473d2515c05becc4ca1aa","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AMRv8mdriKucSnStzxqhIRWZd1FfaoitkaBrIAdMfzwjA7PtAEsCzYkNJ5x0j37cXQC80VCQpdpCmdsFqXk4tAK09EMBtYjDxFLvRr+djyrMgEwaS8bTy8JRA61+iyRhHbK84BFUYWXP+fOMFgHj4bdTdcgViqTiShn6OioKwK8Y0tgAubERBDeIxscAuXzUXOnScrmLx0A7a80SF3+V5wMKl3geFeQaRI1qSQApiVpXlFuKL5z/eu6t/HswLnbmEcWcjUFdXIddRK8TXsLH4rZWpGP9hLTTY8bJDsNWuIAgDfQXNWFYWZIhSqsZ1fBkT5KUJ2L/Swj4JLQcoYKYpA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b5e2662f57cf7a833c0c375d8fed4b05329469baa84d9c27e05c52931b8c76d3",
          "output": {
            "available_templates": [
              "CC-STANDARD-USE",
              "IP3-RIGHTS-RECORD",
              "NFT-EMBEDDED-LICENSE"
            ],
            "checks": [
              {
                "check": "template_id_present",
                "detail": "template_id is required. Available: CC-STANDARD-USE, IP3-RIGHTS-RECORD, NFT-EMBEDDED-LICENSE",
                "pass": false
              }
            ],
            "disclaimer": "Not legal advice. Fixed templates only. Consult a licensed attorney for your jurisdiction.",
            "fields_missing": [],
            "fields_used": {},
            "rendered_html": null,
            "rendered_text": null,
            "template_id": null
          }
        }
      }
    },
    {
      "tool_id": "art-206-rights-record-builder",
      "tool_version": "1.0.0",
      "display_name": "Rights Record Builder",
      "mcp_name": "build_rights_record",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-206-rights-record-builder.html",
      "description": "Builds a normalized IP3-style rights-portfolio row from licensor, licensee, territory, term, rights vector, and renewal fields. Computes a deterministic record_hash via SHA-256 over the JCS-canonical rights row. Not legal advice. Documentation of stated parameters only.",
      "input_schema_ref": "chaingraph/art-206-rights-record-builder.html#manifest",
      "consumes": [
        "art-205-license-terms-assembler"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8f35e055dceefb5e3f15d1f661ea140e9414f44f8804e17f8a67f35739d0bfc2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EA9WyUYid6ZVdFbX6q95uSmQ5t2X7yS/lqVlW181MEIgtM7XQLzSQqy6bkv1L36G80HUPcV3T2D/M3pnsKaSGQUB2h+DyW858k6bKEP7T/3jCDkvsFqm1lDydwE8nHXSH3o8EAX8HB7OtOZqACfv+yjofLUHRTL5W24vHpJbozYLr0r01NOpy/yvlACwyhZjB1j786FWpn4KWIJFPUPiKw79kirlRclPZkiLiiHUne+6+wJCVAiwGEbzajpsRgu+AFshCjf0xy8+MkyRu6dFwGOA3Q9VcfWFmBcwydh3fogE2opY2No+eoXN7YxKKOq+5y9FWZzFwQrPSYx0mOKmRw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:51aad90e950af9a03457afd3ac39ad8721b587b298c0f0148e2f70cfac2d0b45",
          "output": {
            "all_checks_pass": false,
            "checks": [
              {
                "check": "licensor_present",
                "detail": "licensor is empty (empty-input mode)",
                "pass": false
              },
              {
                "check": "licensee_present",
                "detail": "licensee is empty (empty-input mode)",
                "pass": false
              },
              {
                "check": "asset_ref_present",
                "detail": "asset_ref not provided (optional)",
                "pass": false
              },
              {
                "check": "license_id_present",
                "detail": "license_id not provided (optional)",
                "pass": false
              },
              {
                "check": "term_years_positive",
                "detail": "term_years is 0 or not provided (empty-input mode)",
                "pass": false
              }
            ],
            "disclaimer": "Not legal advice. This record documents the stated parameters only. No enforcement, no on-chain registration. Consult a licensed attorney for your jurisdiction.",
            "record_hash": "fb018f83c1df15ba041b30935785806ce5a192fb7280c4434dde7d7eacf62153",
            "rights_row": {
              "asset_ref": null,
              "license_id": null,
              "licensee": null,
              "licensor": null,
              "renewal": "none",
              "rights_vector": {
                "attribution": false,
                "commercial": false,
                "copy": false,
                "display": false,
                "exclusive": false,
                "modify": false,
                "revocable": false,
                "share_alike": false,
                "sublicense": false
              },
              "term_years": 0,
              "territory": "Worldwide"
            }
          }
        }
      }
    },
    {
      "tool_id": "art-207-attribution-string-generator",
      "tool_version": "1.0.0",
      "display_name": "Attribution String Generator",
      "mcp_name": "generate_attribution_string",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-207-attribution-string-generator.html",
      "description": "Generates a human-readable TASL (Title/Author/Source/License) attribution line plus machine-readable ccREL JSON-LD and RDFa blocks for any Creative Commons licensed work. Source of truth: Creative Commons Rights Expression Language (ccREL) specification. Not legal advice. Selection and formatting aid only.",
      "input_schema_ref": "chaingraph/art-207-attribution-string-generator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:93ef8ec9fa4ffdc03b213bad686e8ed98f183bbb707fce9629bf0721e6cff2a5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DAA4Enfn5lANb917xgODPeUcp6x6rB0VootQHfdoahkU9TS5vILntFdOf75sb0pLdfa81gnilnTruitcXEtiARW1zggy0MKQwgHgGSg75qsq1WIsRMVwqb3e2SBvFvidLsp9G18X/CowfP3QKbqVamAhaN08u5wpGvlACF5PkWkrl0CDX4uyNNnIQGgm6Jyz9TsB+O0ao8Y6dZdmSc6x0go60KheGiLaiAZHYj9Grho2hBxeeg4gvucUf8ZfyJ3gJqC1CTqR/s3xc2LdZ9AEMDAOAxvj5qFl0y0LSrpUtAkjM1/sBhRHwxlLytFoV5fYnkFi5MXsEI45Hndu9UQ+4g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cc3b6c632194a1636f68cec2d7eb0539953a1097d57f1fe72c4b763e7f45c982",
          "output": {
            "disclaimer": "Not legal advice. This output formats attribution metadata only. Verify against the current CC ccREL specification before relying on it for commercial or legal purposes. Consult a licensed attorney for your jurisdiction.",
            "errors": [],
            "json_ld": {
              "@context": {
                "cc": "https://creativecommons.org/ns#",
                "dc": "http://purl.org/dc/elements/1.1/",
                "dct": "http://purl.org/dc/terms/"
              },
              "@id": "https://example.com/photo",
              "@type": "cc:Work",
              "cc:attributionName": "Jane Smith",
              "cc:attributionURL": "https://example.com/photo",
              "cc:license": "https://creativecommons.org/licenses/by/4.0/",
              "dc:creator": "Jane Smith",
              "dc:source": "https://example.com/photo",
              "dc:title": "My Photograph"
            },
            "license_name": "Creative Commons Attribution 4.0 International",
            "license_spdx": "CC-BY-4.0",
            "license_url": "https://creativecommons.org/licenses/by/4.0/",
            "rdfa_html": "<p xmlns:cc=\"https://creativecommons.org/ns#\" xmlns:dct=\"http://purl.org/dc/terms/\" about=\"https://example.com/photo\">\n  <span property=\"dct:title\">My Photograph</span> by\n  <a rel=\"cc:attributionURL\" href=\"https://example.com/photo\" property=\"cc:attributionName\">Jane Smith</a>\n  is licensed under\n  <a rel=\"license\" href=\"https://creativecommons.org/licenses/by/4.0/\">CC BY 4.0</a>.\n</p>",
            "tasl_line": "\"My Photograph\" by Jane Smith (https://example.com/photo) is licensed under CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/).",
            "valid": true
          }
        }
      }
    },
    {
      "tool_id": "art-208-royalty-split-validator",
      "tool_version": "1.0.0",
      "display_name": "Royalty Split Validator",
      "mcp_name": "validate_royalty_split",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-208-royalty-split-validator.html",
      "description": "Validates a royalty-split configuration against ERC-2981 and 0xSplits rules: share sum, per-recipient cap, no duplicate or zero addresses, basis-point range, and address format. Reports per-rule pass/fail and a deterministic config fingerprint. Validation only; no on-chain calls, no distribution. Not legal advice.",
      "input_schema_ref": "chaingraph/art-208-royalty-split-validator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e264583d242ab0d715775d7f1ac1a87d7a26916f3fa44a5082a6c2facfa61705","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DMgIwhGSP8Pr2bFmU6bjaWkMR5x1jPUdQsyu+ECdajMCf8ULR8zyZMEfFQo/3X+RrekQU83LSQqGUl0UTE7mXBN69BmJttJufwpAPoPWRgq9ZCubrPP6QqH0zfqLe6hfBwrnNwhpOiJ0GW1aGxwH78EUW3NditHiRsux8Gw70ZYmoXx8arXlBS6nYXYKCTZ758touLm7EKIJBQauVaafry2ghbu+RaD7NKcGLGyiX1tdqm5Ev/Dqg4y9QiK7tUmnCw7609y3BkYdGmjCnvsrrcHchnBO1eyDB4b6ci98xAoJ9cau+MoCUYKApU2YQyGMfUA7dlNIGjiQGr9Js9YIIQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2557aa246acd58ad2bc959114d9e9bac628b76e313a687a08348a16c33972955",
          "output": {
            "cap_bps": 5000,
            "config_hash": "0xdda8f343",
            "disclaimer": "Not legal advice. Validation only; no on-chain calls, no royalty distribution. ERC-2981 is advisory. Consult a licensed attorney and review the 0xSplits documentation for your deployment.",
            "mode": "bps",
            "recipient_count": 2,
            "rules": [
              {
                "detail": "Sum: 10000 bps (must equal 10000)",
                "id": "sum",
                "label": "Share sum",
                "pass": true
              },
              {
                "detail": "Cap: 5000 bps (50%) -- all entries within cap",
                "id": "cap",
                "label": "Per-recipient cap",
                "pass": true
              },
              {
                "detail": "All addresses are unique",
                "id": "dups",
                "label": "No duplicate addresses",
                "pass": true
              },
              {
                "detail": "No blank or zero addresses",
                "id": "no_blank",
                "label": "No zero/blank addresses",
                "pass": true
              },
              {
                "detail": "All values in range",
                "id": "range",
                "label": "Share values 0-10000 bps",
                "pass": true
              },
              {
                "detail": "All addresses pass format check",
                "id": "addr_fmt",
                "label": "Address format (0x + 40 hex chars)",
                "pass": true
              }
            ],
            "sum": 10000,
            "valid": true
          }
        }
      }
    },
    {
      "tool_id": "art-209-nft-metadata-validator",
      "tool_version": "1.0.0",
      "display_name": "NFT Metadata Validator",
      "mcp_name": "validate_nft_metadata_art209",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-209-nft-metadata-validator.html",
      "description": "Validates ERC-721/ERC-1155 and OpenSea NFT metadata JSON against required fields (name, description, image), recommended fields (external_url, animation_url, attributes), attribute entry structure, and license field presence. Schema check only; no on-chain calls. Not legal advice.",
      "input_schema_ref": "chaingraph/art-209-nft-metadata-validator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f44568d42f15c3115cd7fa67045fb18872ae4cc0ba789b6bede70f9448176a1b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I5alFkBC7hec8r/W9ty2NdR8V47Pq0+dDqzJeiSz4jEv4YlxK/r1i/MscXARqOsKDsCn7A8KTzwwmibQz8lakAnKQ0FBo2aAexQBPGp+gtYzwiQIeA7oeADzdV9C7trcJyJHLU+K6hR9GjDdjXRbdBvOhCqV/u4iLB01pMKyKYIQbuDp9Ate9f94KCbtiTdX3VPU1mz8A0D/50VVxkCaYSWYKvMYOQ7NKopzZv83/I14e4n82kbioeiu23C8X7a3G42m1Vhn1qlaWa99Tud3F3yvMQ3+Q2hOMfuJUB2D5iUBRPq2Iqhfg5l4QzjtUQopw5zkPgT3zs+QG7aT67LPAw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:87972c28cc06505e0cac65a400724692a0ed5c42149e0beeae70c09629308792",
          "output": {
            "all_pass": true,
            "checks": [
              {
                "detail": "Present: \"Cosmic Horizon #42\"",
                "field": "name",
                "group": "required",
                "label": "name (string, required)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present (21 chars)",
                "field": "description",
                "group": "required",
                "label": "description (string, required)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present: ipfs://QmTestHash1234/image.png",
                "field": "image",
                "group": "required",
                "label": "image (URI, required)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present: https://cosmichorizon.example.com/token/42",
                "field": "external_url",
                "group": "recommended",
                "label": "external_url (URL, recommended)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Not present (optional). Include for audio, video, or interactive content.",
                "field": "animation_url",
                "group": "recommended",
                "label": "animation_url (URL, optional)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "Present: 1 attribute(s)",
                "field": "attributes",
                "group": "recommended",
                "label": "attributes (array, recommended)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "All 1 attribute entries have trait_type and value",
                "field": "attributes[].structure",
                "group": "recommended",
                "label": "attributes entry structure (trait_type + value)",
                "pass": true,
                "warn": false
              },
              {
                "detail": "license field present: \"CC BY 4.0\"",
                "field": "license",
                "group": "license",
                "label": "License field presence",
                "pass": true,
                "warn": false
              }
            ],
            "disclaimer": "Not legal advice. Schema check only; no on-chain calls. Marketplace acceptance may vary. Consult a licensed attorney for rights and license matters.",
            "fail_count": 0,
            "field_count": 6,
            "required_pass": true,
            "valid": true,
            "warn_count": 0
          }
        }
      }
    },
    {
      "tool_id": "art-210-ipfs-cid-computer",
      "tool_version": "1.0.0",
      "display_name": "IPFS CID Computer",
      "mcp_name": "compute_ipfs_cid",
      "mandate_type": "compliance_mandate",
      "wave": 35,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-210-ipfs-cid-computer.html",
      "description": "Computes a CIDv1 content address for text or metadata using SHA-256 multihash, raw codec (0x55), and base32 lowercase multibase prefix. Use to verify what tokenURI resolves to before minting. Metadata-scale inputs only. Not legal advice.",
      "input_schema_ref": "chaingraph/art-210-ipfs-cid-computer.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:dac326da6a1226cfd8f7e34a91e43143f1b9721fe0de9210224b8cb275eef503","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-03"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FMU4AvHwkkPER2jo9OBbtjlDbCBcvw2Utw+5ifRqgw0PQ4VvnYLweUtpn6DhDSMaOmL87dzd+M59X6kXVVpPvyrW7ORn2EH3qSq5enT4r60BYNhRFl20O1mtrSjYNJ9UK7Yk9UNE5EzaCqMH3SI6FGOkUV27CGKOPpa5FPzBrYAaOXb3OtniJeE8Tdn5D2KTQuWHWqtXapRfEY0cQYz6lQLX4cFqWLAo2Yx39BovrYCjWK0qT3027UFr9QRMnkTpAqcFwbQrb66TLQkQTwvQtpOSn7rK14k8G5R4O7rJdawO+0h5eA26+aelj69VXVdWAvqTmJvm7K1lJkL6tpJFNA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2e46366b60cf89d36ddd8e956711f51b24d0ed21227a8984c59d31881b9ae230",
          "output": {
            "byte_length": 11,
            "cid": "bafkreifzjut3te2nhyekklss27nh3k72ysco7y32koao5eei66wof36n5e",
            "cid_bytes_hex": "01551220b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
            "codec": "raw",
            "codec_code": "0x55",
            "digest_hex": "b94d27b9934d3e08a52e52d7da7dabfac484efe37a5380ee9088f7ace2efcde9",
            "digest_length": 32,
            "disclaimer": "Not legal advice. CID is computed from your input text only. No pinning, no network. Verify against ipfs add --cid-version=1 for your codec before use.",
            "known_vector_verified": true,
            "multihash_fn": "sha2-256",
            "multihash_fn_code": "0x12"
          }
        }
      }
    },
    {
      "tool_id": "art-211-prediction-market-analyzer",
      "tool_version": "1.0.0",
      "display_name": "Prediction Market Analyzer",
      "mcp_name": "analyze_prediction_market",
      "mandate_type": "event_market_pnl",
      "wave": 36,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-211-prediction-market-analyzer.html",
      "description": "Computes prediction market PnL, implied probability, break-even, no-vig fair value, expected value, Kelly stake, and odds conversion for binary and scalar contracts. Covers Polymarket, Kalshi, CME Event, and Robinhood. Includes Brier and log-score forecast accuracy metrics. Not financial advice.",
      "input_schema_ref": "chaingraph/art-211-prediction-market-analyzer.html#manifest",
      "consumes": [],
      "feeds": [
        "art-212-prediction-market-arbitrage"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3db60f420ca07f2d35c4aa2707c39a13b6e04399b65f0924f3e1c71d1b619885","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AmHAf9faGaiuwccR/CLWqywKob1J/zWVOEv0eAcx1h8mLwT8PWDeLg8g35t5gOPf20s0czoNJnTWZNXMdPe5NAXPUGl7mH2LHP4uvIo/zV88ScfGjH3xasdyd6YlvGhZJIrLpogzCzOH+sIfU4Kp7eU7gJOr/639zUZVYl9ZI4wtHl8CmqlIC/qCXOX5zXwU+HucuP5ad034+tviZXppvStms5ktbu4eCv2648/Cl3rPO20DlRGV+UVKTxZz1GDhBxVUvC+wNsOH8kWMbzuyGGXIV0b8AfFcqsi44j/z+okVj18TiLtEaEbRDi/DU9O6uK/NLEGEtbpQh62qmK7UWg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3db60f420ca07f2d35c4aa2707c39a13b6e04399b65f0924f3e1c71d1b619885",
          "output": {
            "break_even_probability": 0.6,
            "brier_score": null,
            "disclaimer": "Not financial advice. For informational purposes only. Verify all fee schedules with the venue before trading.",
            "entry_price": 0.6,
            "expected_value": null,
            "fee_paid": 0,
            "half_kelly_stake": null,
            "implied_probability": 0.6,
            "kelly_fraction": null,
            "log_score": null,
            "mode": "binary",
            "n_contracts": 100,
            "no_vig_fair_value": 0.6,
            "odds_american": -150,
            "odds_decimal": 1.6667,
            "odds_fractional": "2/3",
            "payout": 1,
            "pnl": 40,
            "side": "yes",
            "venue": "polymarket",
            "won": 1
          }
        }
      }
    },
    {
      "tool_id": "art-212-prediction-market-arbitrage",
      "tool_version": "1.0.0",
      "display_name": "Prediction Market Arbitrage",
      "mcp_name": "find_prediction_arbitrage",
      "mandate_type": "event_market_pnl",
      "wave": 36,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-212-prediction-market-arbitrage.html",
      "description": "Calculates cross-venue prediction market arbitrage: gross spread, fee-adjusted net edge, required capital, and minimum spread to survive fees. Covers Polymarket, Kalshi, SX Bet, and Robinhood. A 6% gross spread nets roughly 1-2% after Kalshi fees. Not financial advice.",
      "input_schema_ref": "chaingraph/art-212-prediction-market-arbitrage.html#manifest",
      "consumes": [
        "art-211-prediction-market-analyzer"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:50383b30da28ddff91ea438dbd7fb49e6a9688b10a493a72d42811a35733f2b9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "K3ez39WVpPoNYRu79e7EwfEwLxF1oNcRx9xG9EEZW8MXXJcdctdijyGUnnqfJTFlsc0eAuvBpK3zf3KQh1k/2Cjen+hOC+EPCxWPMCNrAqnRcbH+La5HOBA131E8LwYoLz/o0sR3Z/R9auEzNSPUayCQKum3Ii6ZmIAQRcrg3OwpF+3DOR7davXCIru0rGYBg3ZWB22eC+iwZoFWrEaNDSTQ9WY5vFEpyb7Wk34O/1eT7+hCr/lFWMFeiQ1CJWUFKq9iSMf02sYpS2oneNnxYQS4U7SpZPgz3D1l7r7ajZIfHn3QejS+2iYm9mSKegfbCsky3/Y0bToaYW9dPxQGCA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:50383b30da28ddff91ea438dbd7fb49e6a9688b10a493a72d42811a35733f2b9",
          "output": {
            "arb_exists": true,
            "capital_deployed": 1000,
            "consensus_gap": 0.05,
            "disclaimer": "Not financial advice. Arb opportunities are transient and may disappear before execution. Verify current prices and fees with each venue. For informational purposes only.",
            "fee_a": 0,
            "fee_b": 18.43,
            "gross_profit": 52.63,
            "gross_spread": 0.05,
            "gross_spread_pct": 5,
            "implied_prob_yes_a": 0.45,
            "implied_prob_yes_b": 0.5,
            "k_contracts": 1052.6316,
            "min_spread_to_break_even": 0.0175,
            "net_edge_pct": 3.42,
            "net_profit": 34.2,
            "no_price_b": 0.5,
            "payout": 1,
            "stake_total": 1000,
            "total_fees": 18.43,
            "venue_a": "polymarket",
            "venue_b": "kalshi",
            "yes_price_a": 0.45
          }
        }
      }
    },
    {
      "tool_id": "art-213-perp-liquidation-calculator",
      "tool_version": "1.0.0",
      "display_name": "Perp Margin and Liquidation Calculator",
      "mcp_name": "compute_perp_margin",
      "mandate_type": "derivatives_margin_health",
      "wave": 36,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-213-perp-liquidation-calculator.html",
      "description": "Computes perp liquidation price, margin health, buffer, and distance to liquidation for isolated and cross-margin modes. Covers Hyperliquid, dYdX v4, Binance, GMX, and generic venues. Includes portfolio-margin spot-offset and cross-margin efficiency calculation. Not financial advice.",
      "input_schema_ref": "chaingraph/art-213-perp-liquidation-calculator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-214-perp-position-lifecycle"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2fccd34d45ee83dbb10844e720e1c4469b6f63bec1243d60757849f139768803","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Emf6Rn+xvZjmi033faNUjzTf09VG14bSYkyb468bI+gvYNpARcJEFwc9T1jHPTh7fwvS+URJkXYYeTPv3WlQLCtKfzFnVQHpXSfRiZnMXcvo/DG9XCVNqXdOSbi3lscpHHjWYjJfPa1QSPFlZzGb9JtnzuRRk2l9xbOogzorkzQL+/mkzUX1p3h5YnNz4IOJYWw6vghLyXHC3s67/p6KuwfJjJ+Ql4VWLeAp+6JjEe9J8XyKZnZncaIluvK3PhKRAI5zRL5TqM0CIvekFF0nbbK8WMf24ru8MgMVoiB+AHotLNRmjMKNnn5PI19+4H9WKYZ5tvwGKnyTGV2iq4QNVw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2fccd34d45ee83dbb10844e720e1c4469b6f63bec1243d60757849f139768803",
          "output": {
            "buffer": 3000,
            "buffer_pct": 60,
            "cross_margin_efficiency": null,
            "disclaimer": "Not financial advice. Liquidation parameters vary by venue, tier, and market conditions. Verify MMR tiers and mark-price rules with your venue before trading. For informational purposes only.",
            "distance_to_liq_pct": 6.25,
            "entry_price": 50000,
            "health": "AMBER",
            "imr_pct": 20,
            "initial_margin": 10000,
            "leverage": 5,
            "liq_price": 45000,
            "maintenance_threshold": 5000,
            "margin_balance": 8000,
            "mark_price": 48000,
            "mark_price_note": "Liquidation is triggered at the mark price (not last-traded). On Hyperliquid, mark = median(spot, bid, ask). Divergence from entry can cause liquidation before the price you see on charts.",
            "mmr_pct": 10,
            "mode": "isolated",
            "notional": 50000,
            "portfolio_margin_note": null,
            "position_size": 1,
            "side": "long",
            "unrealized_pnl": -2000,
            "venue": "hyperliquid"
          }
        }
      }
    },
    {
      "tool_id": "art-214-perp-position-lifecycle",
      "tool_version": "1.0.0",
      "display_name": "Perp Position Lifecycle",
      "mcp_name": "model_perp_position",
      "mandate_type": "derivatives_margin_health",
      "wave": 36,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-214-perp-position-lifecycle.html",
      "description": "Models a full perp position from open to close: liquidation price, realized PnL, cumulative funding over the holding period, taker and maker fees, and margin return. Hyperliquid hourly funding cadence default. Static-string timestamps. Not financial advice.",
      "input_schema_ref": "chaingraph/art-214-perp-position-lifecycle.html#manifest",
      "consumes": [
        "art-213-perp-liquidation-calculator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:aa963eb24ee88e725b08bbaaf443a0f756a8d42eb469f9c1fe1e68ef75dc4cf6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "MBWX0RF3bD9kwLkUkq2QDofeMBa55oxnr1JWqvKHqc0Fo/Mn9ynj9CX2RP+K6AJfXcBjCkJPHvCaiONf9iLkFAlcbnGWEbgPE+hArzi5vuxS0CpMctGXb8S2U1HhSTiwDrO20Rc2vW1h1nYThTroz0GxkMRm05YVSXZL3IYtvOUDoSYcSNJrVMKsT8OlzaUilvjAQaSYaE7UiwxMMRhxKQG6QRSy9KZOp5Unc0eh33sIVZvjh0laUX32PWoeQRzYIXYETYbAjqx2/EiGiQvTmK2yVnjUdxjbO/SL4J61eRAsH1tiZw9hEaBsI1gPybESwD0TFXFacGERTiLBNwjRrw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:aa963eb24ee88e725b08bbaaf443a0f756a8d42eb469f9c1fe1e68ef75dc4cf6",
          "output": {
            "close_fee": 30.25,
            "close_fee_type": "taker",
            "close_ts": "2026-07-02T00:00:00Z",
            "disclaimer": "Not financial advice. Funding rates are variable and unpredictable. Liquidation price is approximate (isolated margin). Actual outcomes depend on mark price, funding cadence, and venue rules. For informational purposes only.",
            "entry_price": 50000,
            "exit_price": 55000,
            "funding_rate_per_interval": 0.0001,
            "initial_margin": 10000,
            "leverage": 5,
            "liq_price": 45000,
            "maintenance_threshold": 5000,
            "margin_return_pct": 48.2225,
            "margin_returned": 14822.25,
            "mmr_pct": 10,
            "n_intervals": 24,
            "notional": 50000,
            "open_fee": 27.5,
            "open_fee_type": "taker",
            "open_ts": "2026-07-01T00:00:00Z",
            "position_size": 1,
            "price_delta": 5000,
            "realized_pnl_gross": 5000,
            "realized_pnl_net": 4942.25,
            "side": "long",
            "total_fees": 57.75,
            "total_funding_impact": 120,
            "total_net_pnl": 4822.25,
            "venue": "hyperliquid"
          }
        }
      }
    },
    {
      "tool_id": "art-215-reg-z-appendix-j-apr",
      "tool_version": "1.1.0",
      "display_name": "Reg Z Appendix J APR Solver",
      "mcp_name": "compute_reg_z_appendix_j_apr",
      "mandate_type": "compliance_mandate",
      "wave": 37,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-215-reg-z-appendix-j-apr.html",
      "description": "Reg Z Appendix J actuarial APR solver. Bracketed bisection on the general actuarial equation (12 CFR 1026 Appendix J), with the odd-days fraction priced at simple interest per (b)(6) and only full unit-periods compounded. Handles regular and irregular payment schedules with an odd-days fractional first period, and reports a rate only when a sign-change bracket was established. Pure ECMA-262 arithmetic, no floating-point built-ins beyond basic operations. APR accuracy, TRID disclosure, and QM spread test input.",
      "input_schema_ref": "chaingraph/art-215-reg-z-appendix-j-apr.html#manifest",
      "consumes": [
        "art-332-build-amortization-schedule"
      ],
      "feeds": [
        "art-217-trid-apr-accuracy"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:23d06ce0530f333676cee2d8435ec0f6622170fc8040d471151cd64a01025225","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "MBd6BxEyTGeDZRNZ/aKFreZ229BNzILoim18As7EcnwAxnogxWxD9SD944ISqPIs2iF0Lwm7aKmtcb9ejDihRA1dkahKzFIa3PB8G93f5aqXZLEAP6UIRIusirq+D/AyAWm1aTnzG+eiXl28wVBfGzqzsx8cD76vDEf+Tmij8ZQfmacS0DYo8d1mK4slgQ+54204adoO+RLLehu+WJ+IYwFsS6d7fg4fd/gtdKQvN18tKI70ROYt0v0GvAaGc881FSRKXgqd530txm3CnORfYcdGMUfvbe1fJWnOQZiaCd0BG+EDt1J4hr3+jRdsZ+GRAfIsYJeKaMKzfqBuKT1lig==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:23d06ce0530f333676cee2d8435ec0f6622170fc8040d471151cd64a01025225",
          "output": {
            "advance_total": 6000,
            "apr_pct": 11.9961,
            "bracketed": true,
            "converged": true,
            "finance_charge": 778.32,
            "iterations": 24,
            "note": "APR solved by bracketed bisection on the Appendix J (b)(8) general equation. The odd-days fraction is priced at simple interest, (1 + f*i), per (b)(6); only the integer count of full unit-periods is compounded. A rate is reported only when a sign-change bracket was established; otherwise apr_pct is null and APR_NOT_BRACKETED or APR_DID_NOT_CONVERGE is raised. Input APOR separately for QM spread test.",
            "num_payments": 24,
            "payment_total": 6778.32,
            "periodic_rate": 0.009997,
            "periods_per_year": 12,
            "regulatory_basis": "Reg Z Appendix J, 12 CFR 1026 Appendix J (general actuarial equation)"
          }
        }
      }
    },
    {
      "tool_id": "art-216-trid-tolerance-cure",
      "tool_version": "1.0.0",
      "display_name": "TRID Fee Tolerance and Cure",
      "mcp_name": "compute_trid_tolerance_cure",
      "mandate_type": "compliance_mandate",
      "wave": 37,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-216-trid-tolerance-cure.html",
      "description": "TRID fee tolerance analysis and cure calculation per Reg Z §1026.19(e)(3). Classifies each closing fee into zero-tolerance, ten-percent cumulative, or no-tolerance-limit bucket. Computes 10% bucket aggregate overage, identifies violations, and returns the cure amount required to make the consumer whole under TRID.",
      "input_schema_ref": "chaingraph/art-216-trid-tolerance-cure.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9be448c7f2f02ca2d2b223550734fe431b0dacf6d93db36ccae0cb6963e83cb3","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A4PNXnPJlc5mxHOq1PX7BCXUB8TwXL1sja/IaLdwTSwd3OO5V2OuGZFeaDmqPIsMivSRwOehr0T59wRPzQPOFw/6BwJul+TlOpd66bc3+iKGIL7+YFK9DA8arSw0FdO8CCN2wl/ZXXCU1SIZ2D5aeGwTCiXmHyMtoJAuwEIHsJMDbKKnkxiU4kLwMmDt+sVOcie4BwO9RLnFjVPX3x3LCi3ZD1aTVWj/TQlYyfzX9HjvR2036Hqnk0d3QIsG3DT4KZZQci0AoC0KY9hJL2axaH4dAQNUCxCYpHKx168esJoaaZUKfSEkxVY9LlxTJfUnCXsdG9mztCJYcz7OdZIn0Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:9be448c7f2f02ca2d2b223550734fe431b0dacf6d93db36ccae0cb6963e83cb3",
          "output": {
            "cure_amount": 0,
            "cure_required": false,
            "fee_analysis": [
              {
                "bucket": "zero_tolerance",
                "cd_amount": 1500,
                "increase": 0,
                "le_amount": 1500,
                "name": "origination_fee",
                "status": "ok",
                "violation": false
              },
              {
                "bucket": "ten_pct_cumulative",
                "cd_amount": 640,
                "increase": 40,
                "le_amount": 600,
                "name": "appraisal",
                "status": "in_ten_pct_bucket",
                "violation": false
              },
              {
                "bucket": "ten_pct_cumulative",
                "cd_amount": 1250,
                "increase": 50,
                "le_amount": 1200,
                "name": "title_service",
                "status": "in_ten_pct_bucket",
                "violation": false
              },
              {
                "bucket": "no_tolerance_limit",
                "cd_amount": 1100,
                "increase": 200,
                "le_amount": 900,
                "name": "hazard_insurance",
                "status": "no_limit",
                "violation": false
              }
            ],
            "note": "Changed-circumstance fees are excluded from comparison. Bucket assignment is the caller's responsibility per regulatory classification rules.",
            "regulatory_basis": "Reg Z §1026.19(e)(3), TRID fee tolerance rules (Loan Estimate to Closing Disclosure)",
            "ten_pct_bucket_increase": 90,
            "ten_pct_bucket_le_sum": 1800,
            "ten_pct_excess": 0,
            "ten_pct_threshold": 180,
            "ten_pct_violation": false,
            "total_violations": 0,
            "violations": [],
            "zero_tolerance_violations": 0
          }
        }
      }
    },
    {
      "tool_id": "art-217-trid-apr-accuracy",
      "tool_version": "1.0.0",
      "display_name": "TRID APR Accuracy Verifier",
      "mcp_name": "verify_trid_apr_accuracy",
      "mandate_type": "compliance_mandate",
      "wave": 37,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-217-trid-apr-accuracy.html",
      "description": "TRID APR accuracy check per Reg Z §1026.22(a). Verifies disclosed APR against actual APR within 1/8 percentage point tolerance for regular transactions or 1/4 percentage point for irregular transactions. Returns verdict: accurate, accurate_overstated_ok, understated_violation, or overstated_violation. APR understatement is a TILA violation; overstatement within tolerance is not.",
      "input_schema_ref": "chaingraph/art-217-trid-apr-accuracy.html#manifest",
      "consumes": [
        "art-215-reg-z-appendix-j-apr"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a74ebe7cdb837e03a939cbe160d49a4f412192f9c98d5d928c8daddda570f8fd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "L8sdeeLsOadoU68HtVaHkMNoJ/KASw3ue7hREtxuGhocYd+yVqpGLIGvjt6war6xf0MrJdhEG2Ay+iOq8aq5IQJ24OvahEnhL/gWc+E/bHRojddumw6jOfEtFDMuH+j1IreA/YFXA61JPPpRiG1wp+YBLtFEwbQ7vu64fwG1oDAAanWiTF9RHUmOrkRWJ2LOiIAlwv173dquWxcsXxdsJDATOS2noFSYzffHFTJOHEguuBHb5sOUlr5WAb73zdXkJEb0FDT7zZiBni5QY6jDtT3/8pmPJxGNFqUn2jCh4hMBN46iJM+/75lfltgpYCi68AK96UsR19bIhsruLmJmBg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a74ebe7cdb837e03a939cbe160d49a4f412192f9c98d5d928c8daddda570f8fd",
          "output": {
            "abs_difference_pct": 0.055,
            "actual_apr_pct": 6.82,
            "difference_pct": 0.055,
            "disclosed_apr_pct": 6.875,
            "headroom_pct": 0.07,
            "irregularity_reasons": [],
            "is_irregular_transaction": false,
            "note": "1/8 pp tolerance for regular transactions; 1/4 pp for irregular (multiple advances, irregular periods, or irregular amounts). Overstatement within tolerance is not a TILA violation; understatement is.",
            "regulatory_basis": "Reg Z §1026.22(a), 12 CFR 1026.22 APR accuracy tolerance",
            "tolerance_pct": 0.125,
            "verdict": "accurate_overstated_ok",
            "within_tolerance": true
          }
        }
      }
    },
    {
      "tool_id": "art-218-qm-points-and-fees",
      "tool_version": "1.0.0",
      "display_name": "QM Points and Fees Test",
      "mcp_name": "check_qm_points_and_fees",
      "mandate_type": "compliance_mandate",
      "wave": 37,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-218-qm-points-and-fees.html",
      "description": "Qualified Mortgage points-and-fees test per Reg Z §1026.43(e)(3). Applies version-pinned 2021-2026 tier table with Federal Register citations. Covers five tiers: 3% for loans over tier-1 minimum, fixed dollar amounts for mid-range loans, 5% and 8% for smaller loans. Agents hallucinate current-year thresholds; this node supplies authoritative version-pinned values.",
      "input_schema_ref": "chaingraph/art-218-qm-points-and-fees.html#manifest",
      "consumes": [],
      "feeds": [
        "art-219-qm-apr-apor-spread"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IQqWGYRAJpZpgx6zdSmC6sgn1BnWdL81VwhUEmnlfMkuxBPqalZl8iBACiHjCr4qoFYgWLzDJQuBB6Pyl64XSCTYQyjrKQA5UA20TK5mCRbk7jVHM4mn6u9egHJRkbYEGtlTXM5izz979ddtnJJq82Zqij1VM1uShO8rHkaTnywIZGpKIbetgnGDq6snxpZPLv9frGXxSITGkQNGZ5kwlyrGTb2cA4zvmYpYI4y16oZAK2uBjdWpWDxsobvurYfyJ0ezOH3HJSUOCpyi79deECfvtH7mBpvdiRTO+/nzGIUc7Q/aXF0ihovBNL0K8gtNDs+0//R5Y8M2dv/sDrX60Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d7ba34da2e378662fbb05bc23d6aad6b0b4660bbae6f3111e0dd1c471209029b",
          "output": {
            "effective_date": "2026-01-01",
            "fr_citation": "FR 2025-22773 (effective Jan 1, 2026)",
            "headroom": 1500,
            "limit": 13500,
            "limit_fixed": null,
            "limit_pct": 3,
            "limit_type": "pct",
            "loan_amount": 450000,
            "note": "Thresholds are version-pinned. Run lookup_reg_z_thresholds for year-by-year table. Points-and-fees definition: §1026.32(b)(1). Confirm current thresholds at consumerfinance.gov/rules-policy/final-rules.",
            "pass": true,
            "points_and_fees": 12000,
            "regulatory_basis": "Reg Z §1026.43(e)(3)(ii), QM points-and-fees test",
            "tier_label": ">= $137,958: 3%",
            "year": 2026
          }
        }
      }
    },
    {
      "tool_id": "art-219-qm-apr-apor-spread",
      "tool_version": "1.0.0",
      "display_name": "QM APR-APOR Spread Classifier",
      "mcp_name": "classify_qm_apr_apor_spread",
      "mandate_type": "compliance_mandate",
      "wave": 37,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-219-qm-apr-apor-spread.html",
      "description": "QM APR-APOR spread test per Reg Z §1026.43(e)(2)(vi) and §1026.43(b)(4). Classifies a loan as general_qm_safe_harbor, general_qm_rebuttable_presumption, or general_qm_fail based on spread versus APOR and HPCT threshold. Size-adjusted thresholds for first-lien standard (2.25 pp), small loan (3.5 pp), manufactured housing (6.5 pp), and subordinate lien (3.5 pp). Caller must supply APOR from the FFIEC weekly rate spread table.",
      "input_schema_ref": "chaingraph/art-219-qm-apr-apor-spread.html#manifest",
      "consumes": [
        "art-218-qm-points-and-fees"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:9a3c7fb7f2a17cb3b8ba3e352f32b1d77d7d51093e23fa65165e7d3d594b106b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "E94HTqEYQZaZz6nAtp3yqVz9dinDwRuu31MCjdOF0VEdvfDLYFBY5yqROS4HEvSbsKAPShbQ9HcbRHhimSyAtxVaE7MvbRLv9CmYQ5bPX66Qa/hw7jQclpCjTheKNlTnEtQYn9jFBEX4HJH5syokRumZscdzUWrQPyUwoLL6dc8eFwIHvpA4WTsaIl7+1IX2AmnbXO8RYB0F8Atc86zkEhtmqQEEen415DvLoacyRxOD16JL3fWnD1BHgotsa7gICIS+mObjUDxWgipexHUOKHXbCOyKiQ0C+AtN5HqjjK8bp2ZZawOJWw5PnwmJHFPMdM0hXu9IJMoG1kgOSPhJ2g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:9a3c7fb7f2a17cb3b8ba3e352f32b1d77d7d51093e23fa65165e7d3d594b106b",
          "output": {
            "apor_pct": 5,
            "applicable_threshold_pct": 2.25,
            "apr_pct": 6.875,
            "fr_citation": "Reg Z §1026.43(e)(2)(vi)(A)-(C); Dodd-Frank Act §1412; CFPB QM Rule Jan 2021; CFPB 2021 General QM Final Rule (FR 2020-28417)",
            "general_qm_pass": true,
            "headroom_pct": 0.375,
            "hpct_threshold_pct": 1.5,
            "is_hpct": true,
            "is_manufactured_housing": false,
            "lien_type": "first",
            "loan_amount": 450000,
            "note": "APOR must be supplied by caller from FFIEC weekly APOR table (ffiec.gov/ratespread). This node does not bundle APOR data. 2026 loan-size cutoff $137,958 per FR 2025-22773.",
            "qm_status": "general_qm_rebuttable_presumption",
            "regulatory_basis": "Reg Z §1026.43(e)(2)(vi) (QM spread test) and §1026.43(b)(4) (HPCT safe-harbor vs rebuttable presumption)",
            "spread_pct": 1.875,
            "threshold_basis": "first_lien_standard_2.25pp",
            "year": 2026
          }
        }
      }
    },
    {
      "tool_id": "art-220-reg-z-threshold-lookup",
      "tool_version": "1.0.0",
      "display_name": "Reg Z Threshold Lookup",
      "mcp_name": "lookup_reg_z_thresholds",
      "mandate_type": "compliance_mandate",
      "wave": 37,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-220-reg-z-threshold-lookup.html",
      "description": "Reg Z version-pinned threshold lookup service. Tables: qm_points_fees, hoepa, hpml, card_penalty. 2021-2026 rows with Federal Register citations and effective dates. This node exists because agents reliably hallucinate current-year dollar thresholds. Annual refresh cadence with FR citation pinning. Covers CARD Act penalty fee note: the CFPB dollar-eight late-fee cap rule was vacated May 2025; prior safe-harbor amounts apply.",
      "input_schema_ref": "chaingraph/art-220-reg-z-threshold-lookup.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:224b7fe562fe4671cc165a1228afc28e82d8abbdfc5ec4c9e93ee480e50587a5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GcK1XGGleYcY7w85P9dR1/UzFc+XU+p8gZvuJ1OVBwEgBxfbk13tXnnkIO6wAuc8WSc+cqjUxEujPIshO4h+vy26nkWBtqMTqjJ6E43CtURMhveZzvelRInfuo9IpsuiBIVgRvd8LUjduaNNASqDoDtIHA8VkS2A+ynICvP+cvwOxOwGUlcUfilBWDJjqewf+mriaMDv0cYmRk+Xizir0SIHQfMCRvx/JEpiG0/vIRu7/7r6DMPCeTEiNvRrVAIaG+7KWgbxlxaj3qV9Or1StecqMZDApFbd49B/ygEvOWIDUWaiULRfl4ijrfM1b22bWKZFXigTjW5CXk9tzLlQFg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:224b7fe562fe4671cc165a1228afc28e82d8abbdfc5ec4c9e93ee480e50587a5",
          "output": {
            "available_years": [
              2021,
              2022,
              2023,
              2024,
              2025,
              2026
            ],
            "data": {
              "effective": "2026-01-01",
              "fr_citation": "FR 2025-22773, effective 2026-01-01",
              "tier_1_min": 137958,
              "tier_1_pct": 3,
              "tier_2_fixed": 4139,
              "tier_3_min": 27592,
              "tier_3_pct": 5,
              "tier_4_fixed": 1380,
              "tier_5_pct": 8
            },
            "note": "This node exists because agents hallucinate current-year dollar thresholds. Values are pinned at build time; refresh yearly. Always verify at consumerfinance.gov for the latest effective rule.",
            "regulatory_basis": "Reg Z 12 CFR 1026 (version-pinned threshold table)",
            "table": "qm_points_fees",
            "year": 2026
          }
        }
      }
    },
    {
      "tool_id": "art-221-llpa-stack",
      "tool_version": "1.0.0",
      "display_name": "LLPA Stack Calculator",
      "mcp_name": "compute_llpa_stack",
      "mandate_type": "compliance_mandate",
      "wave": 38,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-221-llpa-stack.html",
      "description": "Fannie Mae public LLPA (Loan-Level Price Adjustment) matrix calculator. FICO-by-LTV base grid plus feature surcharges: cash-out refinance, second home, investment property, warrantable condo, subordinate financing. Applies FTHB AMI waiver (SEL-2023-07, up to 1.75 pp reduction for first-time buyers at or below 100% AMI). Table version: FNM-LLPA-2025-11-01 (Fannie Mae public publication). Not check_agency_eligibility_matrix (DU/LPA approval grid) or check_conforming_loan_limit (FHFA size limits).",
      "input_schema_ref": "chaingraph/art-221-llpa-stack.html#manifest",
      "consumes": [
        "art-222-agency-eligibility-matrix"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7221a3468182a878ebf517663153a90e4973b4125fe3d77c8a44789898b785ad","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EB456eyN9ddC0ybQhiu3iGb7Jcdx68roFPgSJkbEvfUufb9sAffKSfY1yc2mMUJpzlFrf0c9EQe466+q6iJnbRdEO1AipCKEGnDlOfoftCo6y9cx8+ogVgwkTQsv4y+JFpJGoYNgLt8mDMZ8Kee4sexJsBZ6hDKGB1CxUgRCFSMu5kXF3mHw7+m+SeUs6CQpQs8jt707kz8zc2LRYUqRmyLKGw0jQwfrhiw91339/5ltmhV9iKRb2Ss5DQKNSjFgKcXhQdL4n/J8CIyg9dghjwVrUaDpLNwdPukQ3YVENvgPN17ylUwGR4ira2h7mjYa6UXVSQLpAA6udpiKE8Cr8g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7221a3468182a878ebf517663153a90e4973b4125fe3d77c8a44789898b785ad",
          "output": {
            "base_llpa": 0,
            "components": [
              {
                "label": "Base LLPA (primary)",
                "value": 0
              }
            ],
            "feature_llpa": 0,
            "fico_band": "740+",
            "fthb_eligible": false,
            "fthb_waiver": 0,
            "ltv_band": "<=60",
            "pii_note": "All inputs processed locally in your browser. No data is transmitted.",
            "regulatory_basis": "12 USC 4501 (FHFA charter); Fannie Mae Selling Guide B3-4.1-02; SEL-2023-07 FTHB waiver",
            "table_source": "Fannie Mae LLPA Matrix effective 2025-11-01 (fanniemae.com; public)",
            "table_version": "FNM-LLPA-2025-11-01",
            "total_llpa_pct": 0
          }
        }
      }
    },
    {
      "tool_id": "art-222-agency-eligibility-matrix",
      "tool_version": "1.0.0",
      "display_name": "Agency Eligibility Matrix",
      "mcp_name": "check_agency_eligibility_matrix",
      "mandate_type": "compliance_mandate",
      "wave": 38,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-222-agency-eligibility-matrix.html",
      "description": "Fannie Mae DU and Freddie Mac LPA agency eligibility matrix. Checks DTI caps (DU/LPA: 50%; manual UW: 36% housing / 45% total), LTV/CLTV/HCLTV maximums by occupancy type (primary/second home/investment) and loan purpose (purchase/rate-term/cash-out), and multi-unit property constraints. Returns eligible_flag (ELIGIBLE or INELIGIBLE) and detailed per-check results. Table version: FNM-LPA-ELIGIBILITY-2026-01-01. Not compute_llpa_stack (LLPA pricing surcharges) or check_conforming_loan_limit (FHFA loan size limits).",
      "input_schema_ref": "chaingraph/art-222-agency-eligibility-matrix.html#manifest",
      "consumes": [
        "art-223-conforming-loan-limit"
      ],
      "feeds": [
        "art-221-llpa-stack"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1974e5147a75759c71c8deb05d10e26b2803fb3ce6c5947cabd998c089cf0e49","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "D4Qh/vnDzY7EkWwcqP+6UQFW8xqufh25w7fk7CdZekUgSTj7xvPVESUAQqT1q6thFqseNdfto4GSXJ7y6F+asx2+RbII76vqlUkAlTefoF8uQ34sPVzlgxzKsIIm6pZdLlBN5G4+mRbtxbxgAj+iH0sgk3O3x19VEdB3tedaXxsZwiz+xNuMsOcymLi9KbUyKeDxTu7hUrjU30K05oUgcRkxrUjRXC0wdBawwOr9mM8fheZOmebNsZpuBCOQkZZ4IuqMi5BmDg9YbB+k/2fk/+O6OFv26pj3Stm+lIEho10arVRynqisa/hvDoJOLSxaVvEbKm1VwAnmXcfK/rvmUA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1974e5147a75759c71c8deb05d10e26b2803fb3ce6c5947cabd998c089cf0e49",
          "output": {
            "checks": [
              {
                "actual": 740,
                "check": "fico_minimum",
                "note": null,
                "pass": true,
                "required": 620
              },
              {
                "actual": 80,
                "check": "ltv",
                "pass": true,
                "required_max": 97
              },
              {
                "actual": 80,
                "check": "cltv",
                "pass": true,
                "required_max": 105
              },
              {
                "actual": 80,
                "check": "hcltv",
                "pass": true,
                "required_max": 105
              },
              {
                "actual": 40,
                "check": "dti_total",
                "pass": true,
                "required_max": 50,
                "underwriting": "du"
              }
            ],
            "eligible": true,
            "eligible_flag": "ELIGIBLE",
            "fails": [],
            "max_cltv_pct": 105,
            "max_dti_pct": 50,
            "max_hcltv_pct": 105,
            "max_ltv_pct": 97,
            "pii_note": "All inputs processed locally in your browser. No data is transmitted.",
            "product_notes": [],
            "regulatory_basis": "12 USC 4501 (FHFA); Fannie Mae Selling Guide; Freddie Mac Single-Family Guide; DU v11.1+",
            "table_source": "Fannie Mae Selling Guide B3-2-01/B3-3.1-09 (DU); Freddie Mac Guide Ch.5100 (LPA); effective 2026-01-01",
            "table_version": "FNM-LPA-ELIGIBILITY-2026-01-01",
            "underwriting_type": "du"
          }
        }
      }
    },
    {
      "tool_id": "art-223-conforming-loan-limit",
      "tool_version": "1.0.0",
      "display_name": "Conforming Loan Limit Check",
      "mcp_name": "check_conforming_loan_limit",
      "mandate_type": "compliance_mandate",
      "wave": 38,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-223-conforming-loan-limit.html",
      "description": "FHFA annual conforming loan limit classifier. 2026 baseline: $806,500 (1-unit), $1,032,650 (2-unit), $1,248,150 (3-unit), $1,550,400 (4-unit). High-cost county and AK/HI/Guam/USVI ceiling at 150% of baseline. Classifies loans as conforming, super-conforming, or jumbo. Accepts optional county-level limit override from FHFA FullCountyLoanLimitList2026.xlsx. Table version: FHFA-CLL-2026. Not lookup_reg_z_thresholds (Reg Z consumer-protection dollar thresholds) or check_agency_eligibility_matrix (DU/LPA approval parameters).",
      "input_schema_ref": "chaingraph/art-223-conforming-loan-limit.html#manifest",
      "consumes": [],
      "feeds": [
        "art-222-agency-eligibility-matrix"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:114e209f4a992a5b64a0357a6263fe467420738e6ac70b6c238b17987521fb40","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KoFXRAC1yuVUmDFIy5OrJuOiTtgf9w9OcLsHALXLVhoQ4AMJUEUgT+WNhpUiLNU6OYWTPeWL7werPUBGChZWKxayhDLRq1rAHwSWDRAs/6ND9WkLj4MnR1U/Z3sw0dkeAayUGkgH75EpCWetqFAMj1Mu8XthKvpQThDIqaWYCD8lpderyzcbCr4R1XMx27x/+fR5LkJsse4G7BKhHrhkFyhAvmpXoISLFeWECpsnznUC2LsS8cs+dsiTRVrDSe0+HCnx9fzRl2ZyMJw9IOb3m/buyZe1cdRTbPFBzndFG1Ub4m4mL3Rn6qwSYXEb6/VXYTBVX66rJ/kftRVNVJfnzw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:114e209f4a992a5b64a0357a6263fe467420738e6ac70b6c238b17987521fb40",
          "output": {
            "applicable_limit": 806500,
            "baseline_limit": 806500,
            "classification": "conforming",
            "conforming": true,
            "high_cost_ceiling": 1209750,
            "is_ak_hi_territory": false,
            "jumbo": false,
            "limit_tier": "baseline",
            "loan_amount": 700000,
            "loan_program": "VA",
            "note": "County-level limit sourced from caller (county_limit_override) when provided. Baseline and ceiling values are 2026 FHFA announcement. Verify high-cost designation against FHFA county dataset for exact limit.",
            "pii_note": "All inputs processed locally in your browser. No data is transmitted.",
            "regulatory_basis": "12 USC 1454 (Freddie Mac Charter §305); 12 USC 1717 (Fannie Mae Charter §304(b)); Housing and Economic Recovery Act 2008 §201; FHFA Annual CLL Adjustment",
            "state_code": null,
            "super_conforming": false,
            "table_source": "FHFA 2026 Conforming Loan Limits (FHFA.gov, Nov 2025 announcement; FullCountyLoanLimitList2026.xlsx)",
            "table_version": "FHFA-CLL-2026",
            "units": 1
          }
        }
      }
    },
    {
      "tool_id": "art-224-fha-mip-eligibility",
      "tool_version": "1.0.0",
      "display_name": "FHA MIP Eligibility Calculator",
      "mcp_name": "compute_fha_mip_eligibility",
      "mandate_type": "compliance_mandate",
      "wave": 38,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-224-fha-mip-eligibility.html",
      "description": "FHA mortgage insurance premium (MIP) eligibility and cost calculator per HUD Handbook 4000.1. UFMIP: 1.75% of base loan. Annual MIP grid (0.15%-0.75%) by base loan amount vs $726,200 threshold, LTV, and term. MIP duration: 11 years when original LTV at or below 90%; life-of-loan when above 90%. Qualifying ratios: 31% front-end / 43% back-end (compensating factors to 40%/57%). Credit score floors: 580 for 96.5% LTV; 500-579 for 90% max. Table version: HUD-MIP-ML2023-05-ML2024-01 (HUD Mortgagee Letter 2023-05, effective 2023-03-20).",
      "input_schema_ref": "chaingraph/art-224-fha-mip-eligibility.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0188afefdc40d10dd5d1058b02fdf32126f50994c6cdfc0389f7e1cf93cfe295","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F9EnDRXkPOm14zvQV1E0bkWMmUP9RkyCczZveW9CSjIORjkARL18R6CGALd8Lt+7B+K2dH0T3GDbcOIng1YHLgmnBWLY17q4WYCOjkQSlt/O9fKLEFKyTfypJF9ncb8fE59YhE0N2ntWm4oUVQG6rckroga/pgtS94z79btZ64sXXLuh8k2rTZp30xBUBvx+VR9aeXoLZd+B2ZgFRgUCRyUmEvTtfbzhQttvt4dVAdKQovySXsPTGslMgQtbxISREdycNfRTWE6pktk/wj1MpSP80NDXy44wrwiQa9asCA0W3atkPFf8HXToS4Ik2qKuC9DKKOdOqbGiHcp01C/gjw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0188afefdc40d10dd5d1058b02fdf32126f50994c6cdfc0389f7e1cf93cfe295",
          "output": {
            "annual_mip": {
              "annual_amount": 1650,
              "duration": "life_of_loan",
              "monthly_amount": 137.5,
              "rate_pct": 0.55
            },
            "dti": {
              "back_dti_ok": true,
              "back_end_actual_pct": 42,
              "back_end_guideline_pct": 43,
              "compensating_factors_needed": false,
              "front_dti_ok": true,
              "front_end_actual_pct": 30,
              "front_end_guideline_pct": 31
            },
            "fha_eligible": true,
            "fico_eligible": true,
            "ltv_eligible": true,
            "max_ltv_pct": 96.5,
            "note": "FHA MIP rates from ML 2023-05 (reduced rates effective Mar 2023). Verify current Mortgagee Letter schedule for any updates beyond 2025.",
            "pii_note": "All inputs processed locally in your browser. No data is transmitted.",
            "regulatory_basis": "12 USC 1709 (National Housing Act §203(b)); HUD Handbook 4000.1; 24 CFR Part 203",
            "table_source": "HUD Handbook 4000.1 §II.A.8.p-q; HUD Mortgagee Letter 2023-05 (effective 2023-03-20); ML 2024-01",
            "table_version": "HUD-MIP-ML2023-05-ML2024-01",
            "ufmip": {
              "amount": 5250,
              "note": "Financed into loan amount (or paid at closing)",
              "rate_pct": 1.75
            }
          }
        }
      }
    },
    {
      "tool_id": "art-225-va-funding-fee-residual",
      "tool_version": "1.0.0",
      "display_name": "VA Funding Fee and Residual Income",
      "mcp_name": "compute_va_funding_fee_residual",
      "mandate_type": "compliance_mandate",
      "wave": 38,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-225-va-funding-fee-residual.html",
      "description": "VA home loan funding fee (38 USC §3729) and residual income qualification. Funding fee table: first vs subsequent use, down-payment tiers (0%/5-9.99%/10%+), exemptions for service-connected disability/surviving spouse/Purple Heart. IRRRL: 0.50%. Residual income: VA Pamphlet 26-7 Ch.4 Tables 41A/41B by region (Northeast/Midwest/South/West) and family size; $80 per member above five. DTI benchmark: 41% (triggers residual income review when exceeded). Table versions: VA-FF-2025-01-01 (VA Circular 26-25-3); VA-PAMPHLET-26-7-CH4-2024.",
      "input_schema_ref": "chaingraph/art-225-va-funding-fee-residual.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0a2c6c768159e004a4be516f27462520d1e1459d4323169d1530a336a0172053","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AH/0eycffPuWRNJGhc11AjmK7FSsAKznGXysG1Ovv3cmckEiUbdNgy/9OtiMCLjcfcNJvgI4GHwjyuhYGn84qAA25bDGjuNB0hutjkU+55zIQRW1R19hlOPIeZVM1/o8AH5zlcoNbmRHL42NC/t5L1vpfnZ0ZwL7bw/+0iebenoFaFLkyK9hSSNijXy5fyJWaZQOZ6jP/i3CBZK9texbCQhmdjJ7Fj8H+t1G/rmRI52ewQbEmzdo8+DVfwhLqsSmHCpW+g6D+/buphV+OOIgibcaWnf9Ty/l5zz7oC5fXHUQXHUvZLHSKgNPegCv6VLqIzYlGzrXvczkbqVjzY1nCQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0a2c6c768159e004a4be516f27462520d1e1459d4323169d1530a336a0172053",
          "output": {
            "dti": {
              "actual_pct": 35,
              "benchmark_pct": 41,
              "ok": true,
              "residual_review_triggered": false
            },
            "funding_fee": {
              "amount": 6450,
              "basis": "purchase_first_dp_tier0",
              "exempt": false,
              "financed_loan_amount": 306450,
              "rate_pct": 2.15
            },
            "pii_note": "All inputs processed locally in your browser. No data is transmitted.",
            "regulatory_basis": "38 USC §§3701-3729 (VA Home Loan Program); 38 CFR Part 36; VA Pamphlet 26-7",
            "residual_income": {
              "actual_monthly": 4000,
              "family_size": 2,
              "margin": 3262,
              "meets_requirement": true,
              "region": "SO",
              "required_monthly": 738,
              "state_code": "TX"
            },
            "table_source_funding_fee": "38 USC §3729(a)(2); VA Circular 26-25-3 (effective 2025-01-01)",
            "table_source_residual": "VA Pamphlet 26-7 Ch.4 Tables 41A/41B (2024 edition)",
            "table_version_funding_fee": "VA-FF-2025-01-01",
            "table_version_residual": "VA-PAMPHLET-26-7-CH4-2024"
          }
        }
      }
    },
    {
      "tool_id": "art-226-mismo-uldd-ulad",
      "tool_version": "1.0.0",
      "display_name": "ULDD/ULAD Structural Linter",
      "mcp_name": "lint_mismo_uldd_ulad",
      "mandate_type": "compliance_mandate",
      "wave": 38,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-226-mismo-uldd-ulad.html",
      "description": "ULDD Phase 5 / ULAD structural lint of required data points, enumerations, and conditionality rules. Checks field presence against ULDD Phase 5 required set, validates enum values from the public Fannie Mae ULDD Phase 5 Data Stencil and Freddie Mac ULAD Data Dictionary v1.3, enforces ARM-conditional fields, range constraints, and indicator consistency. ULDD Phase 5 mandate effective 2025-07-28. Inputs are bounded structural fields only; loan PII never leaves the browser. Lints public ULDD/ULAD data dictionaries only; does not embed or validate against the membership-licensed MISMO v3.x Reference Model schema. Table version: ULDD-PHASE5-ULAD-1.3-2025-07-28.",
      "input_schema_ref": "chaingraph/art-226-mismo-uldd-ulad.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5b09063e1cbd268666c288bd86047df127316f8a8e314b985ea89b240bc4ac13","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "C1D4t0bhWPUnyWKNChypamNySNwbC5AAreXYoKT9x7QpWyry0R7aSHFgnWU/XEJQYupkFP+UWtYZd0cZ6M6C/CWrifUNUoHu5lhUw3CSbG0CLUMfkXO50ZKtTPqlp1bCFlmp7CrdGasmr7WTbqcMAxa3W54SrkxX9vQh4XOeP2ASB+Wdu1AV6YPspT9FqAnEL6cuWUusSehx20vsQmwbLAEa8z0JxCuh2yvdRH3rcaWKN0R84XlyRzcobSuzlZK/KKaE0BlcixrVVmxj+KXYzK/tNAb2m4GPhC8O4qxEp/QTBMghINpcSyittRWTnzrKPgSGJtZr9x7aeGGPYo54zA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5b09063e1cbd268666c288bd86047df127316f8a8e314b985ea89b240bc4ac13",
          "output": {
            "error_count": 0,
            "errors": [],
            "field_results": [
              {
                "field": "loan_purpose_type",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "amortization_type",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "loan_amount",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "ltv_pct",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "occupancy_type",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "property_type",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "number_of_units",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "interest_rate_pct",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "loan_term_months",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "credit_score",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "dti_pct",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "channel_type",
                "present": true,
                "required": true,
                "status": "ok"
              },
              {
                "field": "doc_type",
                "present": true,
                "required": true,
                "status": "ok"
              }
            ],
            "fields_supplied": 13,
            "license_note": "Lints against public ULDD Phase 5 / ULAD data dictionaries. Does not embed or validate against the membership-licensed MISMO v3.x Reference Model schema.",
            "lint_pass": true,
            "pii_note": "All inputs are processed locally in your browser. No data is transmitted. Loan data is PII: use structural/synthetic inputs only.",
            "regulatory_basis": "12 USC 4501 (FHFA); Fannie Mae ULDD Phase 5 mandate; Freddie Mac ULAD v1.3; Uniform Mortgage Data Program (UMDP)",
            "table_source": "Fannie Mae ULDD Phase 5 Data Stencil (public, fanniemae.com); Freddie Mac ULAD Data Dictionary v1.3 (public, freddiemac.com); ULDD Phase 5 mandate effective 2025-07-28",
            "table_version": "ULDD-PHASE5-ULAD-1.3-2025-07-28",
            "uldd_mandate_date": "2025-07-28",
            "uldd_phase": "Phase 5",
            "warning_count": 0,
            "warnings": []
          }
        }
      }
    },
    {
  "tool_id": "art-227-validate-adverse-action-notice",
  "tool_version": "1.0.0",
  "display_name": "Validate Adverse Action Notice",
  "mcp_name": "validate_adverse_action_notice",
  "mandate_type": "compliance_mandate",
  "wave": 39,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-227-validate-adverse-action-notice.html",
  "description": "Validates an adverse action notice against Reg B §1002.9 completeness requirements: reason count (max 4), prohibited vague reason codes (CFPB Circulars 2022-03/2023-03), required content fields (creditor name, date, statement of rights), and FCRA §615(a) rights disclosure when a credit score was used. Outputs compliance_score (0-100), violation list, and a remediation checklist. Reg B 12 CFR §1002.9, ECOA 15 USC §1691, FCRA §615(a).",
  "input_schema_ref": "chaingraph/art-227-validate-adverse-action-notice.html#manifest",
  "consumes": [
    "art-228-build-adverse-action-notice"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8e6f6cc5b36d30e20843f8cc21fc37c9ed8e4e3e3754df6df4f74bb1f12ce44a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Evvi8BhmS2cHsVydr5gxjG69aNE/5ES9ZmY00GdmjYQQ0YcnKdcy+EEP+78uIZSEu15LKiyxDvNzrISd5rCsCBEC+0jNRB9xP2pHOoWSyAck5kro1yM2Mu7x49sl4eLdGwIP9noHr6uuu4ZXwsfpBXRIG+UZSftWSvCXPCQ7yTghOj10PKp7W0UjkOR/s6T2DNgzJzF+P6nD4ycdd0Ya4S9Ei+21eYxzWzqwkpd2R1NH050orp5F/fFCYN/O6r2HLAudsCUIFB2HDmbN/McMJosSbgglVENF6/IUEHnY1DcE8YrL1VI2ECBmYld1UmiX8b96BPf5PXwToI9eR9+0FA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8e6f6cc5b36d30e20843f8cc21fc37c9ed8e4e3e3754df6df4f74bb1f12ce44a",
      "output": {
        "action_taken": "denied",
        "compliance_score": 1,
        "compliant": true,
        "credit_score_used": true,
        "fcra_required": true,
        "fcra_violations": 0,
        "pii_note": "All inputs are processed locally in your browser. No data is transmitted. Do not enter real personal data.",
        "reason_count": 4,
        "reason_count_valid": true,
        "regulatory_basis": "Reg B §1002.9(a)(2)(i) (12 CFR Part 1002); ECOA 15 USC §1691(d); FCRA §615(a) 15 USC §1681m(a); CFPB Circular 2022-03; CFPB Circular 2023-03",
        "table_source": "CFPB Circular 2022-03 (Aug 2022); CFPB Circular 2023-03 (Sep 2023); 12 CFR §1002.9; 15 USC §1681m",
        "table_version": "REG-B-ADVERSE-ACTION-2024-CFPB-CIRC-2023-03",
        "violation_count": 0,
        "violations": [],
        "warning_count": 0,
        "warnings": []
      }
    }
  }
},
    {
  "tool_id": "art-228-build-adverse-action-notice",
  "tool_version": "1.0.0",
  "display_name": "Build Adverse Action Notice",
  "mcp_name": "build_adverse_action_notice",
  "mandate_type": "compliance_mandate",
  "wave": 39,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-228-build-adverse-action-notice.html",
  "description": "Assembles an adverse action notice skeleton from SHAP-ranked principal-factor codes (FICO reason codes 01-40, VantageScore VS001-VS015). Resolves codes to full human-readable text, orders sections per Reg B §1002.9, and appends the FCRA §615(a) credit score disclosure when a credit score was used in the decision. Exports a receipt artifact. Reg B 12 CFR §1002.9, CFPB Circulars 2022-03/2023-03, FCRA §615(a).",
  "input_schema_ref": "chaingraph/art-228-build-adverse-action-notice.html#manifest",
  "consumes": [],
  "feeds": [
    "art-227-validate-adverse-action-notice"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:bfe3703cd0865de7a9b879deac13cfa62aa8fdd55eab3348fa8ddc4570a11df1",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "F8WbncsriBIxo6OPNRXs9CzLHluW78K64OwLHjhVOy0i8GlY0XD7XakX+NyP/mqD0md/yJNQhCAujNJn/mucMCePXOQq8X9zvXeNYtBTJCWAx9rRP/I3X287gCTpBM04J8gn1HS/qPWAWUjz6O2aNqB7h1jvraA8KNck0NC+iuwA24flFayrnD6NAGG9l4ZhAIwCTm9tkWnorJf9m9nZQAE0UcFWtS3jgSp8kC+YYh3ISKJml0qd9QoX3yHqGaeeLIfz9O0B1/qMHS6wMPynEIUJ6mAk9oVRhahUhWPSjLcZzI8ccAre6To1E/xIj7Z6d4m+7lqd/k49gZBNqxFm2Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:bfe3703cd0865de7a9b879deac13cfa62aa8fdd55eab3348fa8ddc4570a11df1",
      "output": {
        "compliance_flags_raised": 0,
        "notice_sections": {
          "action_statement": "We have taken the following action on your application: DENIED",
          "applicant": "Applicant",
          "credit_score_disclosure": {
            "key_factors": [
              "Serious delinquency, derogatory public record, or collection filed",
              "Proportion of balances to credit limits too high on bank revolving or other revolving accounts",
              "Too many recent inquiries in the last 12 months"
            ],
            "score": 620,
            "score_date": "2026-01-15",
            "score_range": "300 to 850",
            "score_source": "FICO 8"
          },
          "date": "2026-01-15",
          "ecoa_statement": "The federal Equal Credit Opportunity Act prohibits creditors from discriminating against credit applicants on the basis of race, color, religion, national origin, sex, marital status, age, because all or part of the applicant's income derives from any public assistance program, or because the applicant has in good faith exercised any right under the Consumer Credit Protection Act. The federal agency that administers compliance with this law concerning this creditor is: [Insert applicable federal agency].",
          "fcra_rights": {
            "cra_address": "PO Box 740241 Atlanta GA 30374",
            "cra_name": "Equifax",
            "cra_phone": "1-800-685-1111",
            "dispute_statement": "If you find that any information in the consumer report used in making this credit decision is inaccurate, you have the right to dispute the matter with the reporting agency.",
            "free_copy_statement": "You have the right to obtain a free copy of your consumer report from the consumer reporting agency named above, if you request it no later than 60 days after you receive this notice."
          },
          "header": "First National Bank -- Adverse Action Notice",
          "reasons": [
            {
              "code": "22",
              "description": "Serious delinquency, derogatory public record, or collection filed",
              "position": 1,
              "source": "fico"
            },
            {
              "code": "10",
              "description": "Proportion of balances to credit limits too high on bank revolving or other revolving accounts",
              "position": 2,
              "source": "fico"
            },
            {
              "code": "08",
              "description": "Too many recent inquiries in the last 12 months",
              "position": 3,
              "source": "fico"
            }
          ]
        },
        "pii_note": "All inputs are processed locally in your browser. No data is transmitted. Use synthetic placeholders only.",
        "receipt_metadata": {
          "action_taken": "denied",
          "anchor_recommendation": "Anchor this execution receipt at anchor.ainumbers.co to create durable, timestamped evidence per Reg B §1002.12(b)(4)",
          "credit_score_disclosed": true,
          "ecoa_rights_included": true,
          "fcra_rights_included": true,
          "notice_type": "adverse_action",
          "reason_codes": [
            "22",
            "10",
            "08"
          ],
          "reason_count": 3,
          "regulation": "Reg B §1002.9 (12 CFR Part 1002); FCRA §615(a) (15 USC §1681m)",
          "retention_requirement": "ECOA Reg B §1002.12: 25-month record retention for credit application files"
        },
        "regulatory_basis": "Reg B §1002.9 (12 CFR Part 1002); ECOA 15 USC §1691(d); FCRA §615(a) 15 USC §1681m(a); CFPB Circular 2022-03; CFPB Circular 2023-03",
        "resolved_reasons": [
          {
            "code": "22",
            "description": "Serious delinquency, derogatory public record, or collection filed",
            "rank": 1,
            "shap_value": -0.32,
            "source": "fico"
          },
          {
            "code": "10",
            "description": "Proportion of balances to credit limits too high on bank revolving or other revolving accounts",
            "rank": 2,
            "shap_value": -0.18,
            "source": "fico"
          },
          {
            "code": "08",
            "description": "Too many recent inquiries in the last 12 months",
            "rank": 3,
            "shap_value": -0.12,
            "source": "fico"
          }
        ],
        "table_source": "CFPB Circular 2022-03 (Aug 2022); CFPB Circular 2023-03 (Sep 2023); FICO public reason codes (myFICO.com); VantageScore public reason codes (vantagescore.com)",
        "table_version": "REG-B-NOTICE-BUILDER-2024-CFPB-CIRC-2023-03"
      }
    }
  }
},
    {
      "tool_id": "art-229-compute-disparity-metrics",
      "tool_version": "1.0.0",
      "display_name": "Compute Disparate Impact Metrics",
      "mcp_name": "compute_disparity_metrics",
      "mandate_type": "compliance_mandate",
      "wave": 39,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-229-compute-disparity-metrics.html",
      "description": "Computes three fair lending disparate impact metrics from aggregate lending counts: 4/5ths (80%) rule (adverse_impact_ratio) per EEOC 29 CFR §1607.4(D), z-statistic for statistical significance of the approval-rate difference, and standardised mean difference (Cohen's d). Inputs are aggregate counts only; no individual applicant records, names, demographic identifiers, or scores. ZERO PII BY CONSTRUCTION. EEOC Uniform Guidelines on Employee Selection Procedures (29 CFR §1607), HMDA/Reg C.",
      "input_schema_ref": "chaingraph/art-229-compute-disparity-metrics.html#manifest",
      "consumes": [
        "art-230-compute-hmda-rate-spread"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1dc8545c4d3f629c66a7ba5ecc65ad105f855135774e745190e7d089b5ad9b27","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BdXJ3wtetYbubXPz3CS5C7kar/WZpvvaLgTwtgAnMGoEkspOwYqmWs9/OpwufQu+VBG8p+A9qd4lTZEIiHYY8xzgzNtUdodd7t9REjqBauFxWEBfhLmDS+pj/inF/N72BknYNn1bKeRqY6z+gUudl4n3vPkgpdjItm2eAw3MLocapJAMzZgWrFYP2bounKY6d04p/s2DEGjx+p0meYnQnRVDKG0E9iWl1sjDPlkT7qOcW1RodfmTtC4y2WSkPOzYH7TVqwf/ly3hr1eEILkfBqvFL5J0sXgZ3w+nGxVNRkYjy3T3YaqVC6x5SC3gkj3k89hz8/n83bTvSsGN0BVg2A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1dc8545c4d3f629c66a7ba5ecc65ad105f855135774e745190e7d089b5ad9b27",
          "output": {
            "adverse_impact_ratio": 0.7778,
            "four_fifths_flag": true,
            "four_fifths_result": "ADVERSE_IMPACT_FLAGGED",
            "four_fifths_threshold": 0.8,
            "group_a": {
              "approval_rate": 0.7,
              "approvals": 70,
              "label": "protected_class",
              "total": 100
            },
            "group_b": {
              "approval_rate": 0.9,
              "approvals": 90,
              "label": "control_group",
              "total": 100
            },
            "n_total": 200,
            "odds_ratio": 0.2593,
            "pii_note": "All inputs are aggregate count data only. No individual applicant records are processed. Zero PII by construction.",
            "pooled_proportion": 0.8,
            "regulatory_basis": "29 CFR §1607.4(D) (EEOC UGSP); ECOA 15 USC §1691; 12 CFR Part 1002 (Reg B); HMDA 12 USC §2801; OCC Fair Lending Handbook 2020",
            "standardized_mean_difference": -3.6515,
            "table_source": "29 CFR Part 1607 Uniform Guidelines on Employee Selection Procedures (Federal Register 43 FR 38290 1978-08-25); CFPB HMDA Examination Procedures; OCC Fair Lending Handbook Oct 2020",
            "table_version": "EEOC-UGSP-29CFR1607-2024",
            "two_proportion_z": -3.5355,
            "z_critical_flag_onetail_05": true,
            "z_critical_flag_twotail_05": true,
            "zero_pii_confirmation": "Inputs are aggregate count data only. No individual applicant records processed."
          }
        }
      }
    },
    {
      "tool_id": "art-230-compute-hmda-rate-spread",
      "tool_version": "1.0.0",
      "display_name": "Compute HMDA Rate Spread",
      "mcp_name": "compute_hmda_rate_spread",
      "mandate_type": "compliance_mandate",
      "wave": 39,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-230-compute-hmda-rate-spread.html",
      "description": "Computes the HMDA rate spread (APR minus APOR) per FFIEC methodology and classifies against HMDA reportability thresholds: 1.5 pp (first lien), 3.5 pp (subordinate lien), 6.5 pp (HELOC). Outputs rate_spread_pct, lien classification, is_reportable flag, and HPML indicator (1.5 pp first / 3.5 pp sub, triggers escrow and appraisal requirements under TILA). Table version: FFIEC-RATE-SPREAD-METHODOLOGY-2023.",
      "input_schema_ref": "chaingraph/art-230-compute-hmda-rate-spread.html#manifest",
      "consumes": [],
      "feeds": [
        "art-229-compute-disparity-metrics"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:bf8ab4e43a576fd89244c8f1a43a0adb3c8ae4fb433d163a90773584efe86b9b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IJT9CAbHeDeesTcHVb9z87IG23o5sBCe+d/pUW48aCIWs1xf6DqmERQHtlQA7C9AddNG/6kZ98Td3xSpmM54XwNHJiT0Ah6jRMD6XPq70UhlyVGV2UdTCmo01OB6d/+zC1Uv8M5IWIeFj2bHc3OHbN13S2QJjRkU6WA6/q3V8V0jP9wbmIue5Ch1WEMcaDBpxWXyKzTqg4N9FXWhmzFGrCLQvCaEMKuYdOM2M/G5QQMgiTyJ6yLghaOe7daEKBYpCQE+JBG9tYI1677iy8t1NVEMf2YpdAiwpapeUlk4xYQgBRVha55rOoYaTD5RiFriVBXVWG5uc4oPCig2ffGW0g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bf8ab4e43a576fd89244c8f1a43a0adb3c8ae4fb433d163a90773584efe86b9b",
          "output": {
            "apor_pct": 5.5,
            "apor_source_note": "APOR must be sourced from FFIEC weekly table at ffiec.gov/ratespread for the applicable lock date and comparable transaction term.",
            "apr_pct": 7,
            "hmda_report_code": "1.500",
            "is_reportable": true,
            "lien_type": "first",
            "lock_date": "2026-01-15",
            "pii_note": "All inputs are processed locally in your browser. No data is transmitted.",
            "product_type": "closed_end",
            "rate_spread_pct": 1.5,
            "regulatory_basis": "12 CFR §1003.4(a)(12); HMDA 12 USC §2801; FFIEC Rate Spread methodology",
            "reportability_threshold_pct": 1.5,
            "table_source": "12 CFR §1003.4(a)(12) (2018 HMDA Final Rule FR 2015-26607, effective Jan 2018); FFIEC Rate Spread Calculator (ffiec.gov/ratespread); first-lien threshold 1.5pp; subordinate 3.5pp; HELOC first-lien 6.5pp",
            "table_version": "HMDA-FFIEC-RATE-SPREAD-2024-12CFR1003"
          }
        }
      }
    },
    {
  "tool_id": "art-231-compute-mla-mapr",
  "tool_version": "1.0.0",
  "display_name": "Compute MLA MAPR",
  "mcp_name": "compute_mla_mapr",
  "mandate_type": "compliance_mandate",
  "wave": 39,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-231-compute-mla-mapr.html",
  "description": "Computes the Military Annual Percentage Rate (MAPR) per 32 CFR §232.4(c) and checks compliance with the 36% cap. MAPR includes all charges excluded from Reg Z APR: credit insurance premiums, debt suspension/cancellation fees, annual membership fees, participation fees, and application fees (credit card only). Bona fide fee exemption: $100/year maximum. Flags MAPR_EXCEEDS_CAP_VIOLATION when MAPR > 36%. DoD MLA rule (32 CFR Part 232), effective October 3, 2016.",
  "input_schema_ref": "chaingraph/art-231-compute-mla-mapr.html#manifest",
  "consumes": [],
  "feeds": [
    "art-232-compute-scra-rate-cap"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:e6ea4f134e6e8a83ead3c9b8c4003302fff90bb70c26a05c76538c4722c64e41",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GpouG4DiitjkdoltG7zvTOirMNvF3MtencacZLEPj4sIQIunbf+ElXhd7ew6RXwiw9OUQokvzmvUAEmJxz9vjyHuLt2DlnxKnF5z5ic1l+b6QrMKVQIHqymm1cerrfhLBCSe1CkgY40gkt2Zhe/rBGJ1NqKvmEv07S/oQPVF1mwt1fH2FOasZFEsmYw0E5vFvk8oyPeVqLK0bjmLwR35FhCdfrzjPstumV7df/1mxdQ/BwEVKzmK6olP+fUu7Hh+ILttROmjOzhACE2qvt5Mgwi+3DXYCAcipM+Ccji6mt8JFVq8K6Tad/RyGRRovAUwuSvAsfN6tqAhtEy9Wj4Z+g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e6ea4f134e6e8a83ead3c9b8c4003302fff90bb70c26a05c76538c4722c64e41",
      "output": {
        "application_fee_excluded": 0,
        "bona_fide_fee_annual_limit": 100,
        "credit_card_annual_fee_included": 0,
        "credit_insurance_premium_total": 200,
        "effective_finance_charge": 800,
        "exceeds_cap": false,
        "is_credit_card": false,
        "loan_amount": 10000,
        "mapr_cap_pct": 36,
        "mapr_pct": 28,
        "participation_fee_excluded": 0,
        "pii_note": "All inputs are processed locally in your browser. No data is transmitted.",
        "regulatory_basis": "10 USC §987(b); 32 CFR §232.4(c); DoD MLA rule effective Oct 3, 2016",
        "stated_apr_pct": 28,
        "table_source": "10 USC §987(b); 32 CFR Part 232 (Federal Register 80 FR 43560 Jul 22 2015, effective Oct 3 2016); 32 CFR §232.4(c)(1)(iii)(A) finance charges; 32 CFR §232.4(c)(1)(iii)(B) bona-fide application fee exclusion; 32 CFR §232.4(c)(1)(iii)(C) bona-fide participation fee exclusion, $100/yr limit at 32 CFR §232.4(c)(2)(ii)(B)",
        "table_version": "MLA-DOD-32CFR232-2016-10-03",
        "term_months": 12,
        "total_excluded_charges": 0,
        "total_includable_charges": 1000
      }
    }
  }
},
    {
      "tool_id": "art-232-compute-scra-rate-cap",
      "tool_version": "1.0.0",
      "display_name": "Compute SCRA Rate Cap",
      "mcp_name": "compute_scra_rate_cap",
      "mandate_type": "compliance_mandate",
      "wave": 39,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-232-compute-scra-rate-cap.html",
      "description": "Computes the SCRA 6% interest rate cap per 50 USC §3937 for pre-service loan obligations. Calculates covered months, excess interest, and forgiveness amount. Excess interest is always forgiven (not deferred) per 50 USC §3937(a)(2). Checks servicemember notification requirement. Flags SCRA_RATE_CAP_VIOLATION (original rate > 6%) and SCRA_NOTIFICATION_MISSING. Table: SCRA-50USC3937-2022.",
      "input_schema_ref": "chaingraph/art-232-compute-scra-rate-cap.html#manifest",
      "consumes": [
        "art-231-compute-mla-mapr"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0a3d8bc33a4d50ca92a1673b6b23e5bcb483ad80dc375dfba12094440fc0d32d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "B3RAVhZrxYYEo1H6oJBwtijcM2UwY0u989vCXCYbo0MOSiDvFXGbrDfQKk0GfGoTCm/zSoIJMlssm4H3yV52TghbnvAzxGFbj7lacj+wBB3mdCbqQ8lUJ16ZG2jFUWutME1o6ANQb4y5uxc9gmp9fDM1MZo2K+fKm0+tJYRuLKMP5MHB7JKTDjxSCNKLel+gTvvq3gMARdoQ1tJhIs7YSx1zhEjVGRiVorr3O5ffBqfLuxBaHzSir2ShYRCFdNTkDgst7Py4jC0yk6533JJo2BGhVyyB8YgJ5l8iyGu5z5kS1C9cxKSVZPgExjLu7WYeGZL11dEdzItx7JBvIMaTmg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0a3d8bc33a4d50ca92a1673b6b23e5bcb483ad80dc375dfba12094440fc0d32d",
          "output": {
            "capped_rate_pct": 6,
            "covered_months": 12,
            "effective_rate_pct": 6,
            "exceeds_cap": true,
            "excess_forgiven": true,
            "excess_rate_pct": 2,
            "interest_delta_forgiven": 200,
            "is_pre_service_obligation": true,
            "loan_balance": 10000,
            "original_rate_pct": 8,
            "pii_note": "All inputs are processed locally in your browser. No data is transmitted.",
            "regulatory_basis": "50 USC §3937 (SCRA); formerly Soldiers and Sailors Civil Relief Act 50 USC §527; DoD Financial Management Regulation 7000.14-R Vol 7A Chapter 40",
            "retroactive_credit": 200,
            "scra_note": "Per 50 USC §3937(a)(2), excess interest above 6% must be forgiven -- creditor may not collect deferred excess after active duty ends. This is not a deferral.",
            "servicemember_notified": true,
            "table_source": "50 USC §3937 (SCRA codified 2003, Pub. L. 108-189 Dec 19 2003); 50 USC §3937(a)(1) 6% annual rate cap; 50 USC §3937(a)(2) excess forgiven not deferred; 50 USC §3937(d) 180-day notice requirement",
            "table_version": "SCRA-50USC3937-2024",
            "total_interest_at_cap": 600,
            "total_interest_at_original_rate": 800
          }
        }
      }
    },
    {
      "tool_id": "art-233-check-card-act-ability-to-pay",
      "tool_version": "1.0.0",
      "display_name": "Check CARD Act Ability to Pay",
      "mcp_name": "check_card_act_ability_to_pay",
      "mandate_type": "compliance_mandate",
      "wave": 39,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-233-check-card-act-ability-to-pay.html",
      "description": "Evaluates a credit card application against CARD Act §1026.51 ability-to-pay requirements. Computes monthly minimum payment from the requested credit limit and minimum payment percentage. Checks DTI against the 45% threshold using income and assets. Applies the under-21 independent-income restriction (§1026.51(b)). Reports the §1026.52(b) penalty fee safe harbor ($32 first violation / $43 subsequent). CFPB $8 late fee rule vacated January 17, 2025 (Fifth Circuit, No. 24-10266); $32/$43 thresholds remain in effect.",
      "input_schema_ref": "chaingraph/art-233-check-card-act-ability-to-pay.html#manifest",
      "consumes": [],
      "feeds": [
        "art-228-build-adverse-action-notice"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d86f9301b3835cd8d80c1ed5bfa8cc607bbeb1876e91b2482c16eb64316db228","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G5sdbSeQs4p8i0XGI87ca/Hn/D9QM+4j3z/K5Y2ymUIFtX3caRhSpBpq1HrGzTNvuAwoNSq8xiQZXKc0tUnq+SBksIQWtYYteyFmHNCgHhyvpZma0t66uzmK9NhSMH1XKDCwOEdIIPgvlcWRQ0Qq6Rb0boYj72Z4JV1PNN/2pTcmDrIGu6TXkH/0s5y/rWDu7kIybcwwtmXjOi9Wdm2BUAC5s6drxd+zgwTgG4fbsZh3VTHi9XmSJf7kmAA30xqNH6H0FkbaT44dTkj2KI58zIjOXG3Rm1KW9ynBqNs4/Nkjg18qpanq3FtCLLMEl65SvyMmOBclWnSeZ6WBm7aZpQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d86f9301b3835cd8d80c1ed5bfa8cc607bbeb1876e91b2482c16eb64316db228",
          "output": {
            "ability_to_pay_result": "REQUIRES_COSIGNER_UNDER_21",
            "annual_income": 0,
            "annual_minimum_payments_est": 240,
            "dti_ratio": 999,
            "dti_threshold": 0.45,
            "has_cosigner": false,
            "income_and_assets": 0,
            "method_a_sufficient": false,
            "method_b_sufficient": false,
            "method_used": "income_assets",
            "monthly_debt_obligations": 0,
            "monthly_housing_payment": 0,
            "monthly_income": 0,
            "monthly_minimum_payment_est": 20,
            "penalty_fee_safe_harbor": {
              "first_violation": 32,
              "rule_note": "CFPB $8 late-fee rule vacated Jan 2025; safe harbor reverts to 2024 CFPB CPI index values per 12 CFR §1026.52(b)(1)(ii)",
              "subsequent_within_6_cycles": 43,
              "table_version": "2024-01-01"
            },
            "pii_note": "All inputs are processed locally in your browser. No data is transmitted.",
            "regulatory_basis": "15 USC §1665e (CARD Act §109); 12 CFR §1026.51 (ability to pay); 12 CFR §1026.51(a)(2) (under-21); 12 CFR §1026.52(b) (penalty fee safe harbor)",
            "requested_credit_limit": 1000,
            "requires_cosigner": true,
            "table_source": "CARD Act of 2009 Pub. L. 111-24 §109; 12 CFR §1026.51 (effective Aug 22 2010); 12 CFR §1026.52(b)(1)(ii)(A) $32 first-violation safe harbor (2024); 12 CFR §1026.52(b)(1)(ii)(B) $43 subsequent safe harbor (2024); CFPB CPI adjustment 2024-01-01",
            "table_version": "CARD-ACT-REG-Z-1026-51-52-2024",
            "total_assets": 0,
            "total_monthly_obligations": 20,
            "under_21_restriction": true
          }
        }
      }
    },
    {
      "tool_id": "art-234-test-hoepa-high-cost",
      "tool_version": "1.0.0",
      "display_name": "HOEPA High-Cost Mortgage Trigger Test",
      "mcp_name": "test_hoepa_high_cost",
      "mandate_type": "compliance_mandate",
      "wave": 39,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-234-test-hoepa-high-cost.html",
      "description": "Tests all three HOEPA high-cost mortgage triggers per Reg Z §1026.32(a)(1): (i) APR trigger (APOR+6.5pp first-lien, APOR+8.5pp subordinate or dwelling below $50k); (ii) points-and-fees trigger (5% of loan or $1,380 floor, 2026, FR 2025-22773); (iii) prepayment penalty trigger (>36 months or >2% of prepaid amount). Outputs is_high_cost plus which triggers fired. Consumes art-220 (lookup_reg_z_thresholds) for the pinned HOEPA threshold table. Use test_hpml_escrow (art-235) for HPML escrow, not HOEPA. Use check_qm_points_and_fees (art-218) for the QM points-and-fees ability-to-repay test.",
      "input_schema_ref": "chaingraph/art-234-test-hoepa-high-cost.html#manifest",
      "consumes": [
        "art-220-reg-z-threshold-lookup"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Gl8A7VFBM6UzpU9ct+CI0PAZk9lAkdOzq1v2QRRtuJwrIWFi/8SCu/iCr+pFQSWoV1BzbK9i1MC26dGBH1ypTiMtxhUCh1Kni1slwuJ6fPP/ZFUA94PQGaE5yThkY1AQJXrNyp5W06oGh0q+ZcCWjfG4mRx4bXaX448bH7Pgclwb3h1qy+1z6z1kh+3kcA4fHhkrqk04YddkXAfjV+Q47Qym9v/5k2/W9a1IlWPDWG1SAq0vQJCGy62K9NbplZOwKEGml+xWCBW+FsYZ2O1jXTSnEfxfTMpfRnb4JETlvG4H3ic5Y1+U9f54m52vDszkTncxonkkKZvNZrKxmlYMYg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e5a263ed1661368515b9067ec68da298ff6673a824b28c901bb1325bcf51a2a7",
          "output": {
            "apor_pct": 5.5,
            "apr_pct": 12.5,
            "apr_spread_pct": 7,
            "apr_threshold_basis": "first_lien_standard_6.5pp",
            "apr_threshold_pct": 6.5,
            "apr_trigger_met": true,
            "consumes": "art-220 (lookup_reg_z_thresholds) supplies the HOEPA threshold table (table: hoepa). This node pins the same values for local deterministic compute.",
            "fr_citation": "FR 2025-22773, effective 2026-01-01; 12 CFR §1026.32(a)(1)(ii)",
            "has_prepayment_penalty": false,
            "is_high_cost": true,
            "is_small_dwelling": false,
            "lien_type": "first",
            "loan_amount": 400000,
            "note": "HOEPA restrictions apply if ANY trigger is met. APOR must be supplied by caller from FFIEC weekly APOR table (ffiec.gov/ratespread). For HPML escrow requirement: use art-235 (test_hpml_escrow).",
            "points_and_fees": 5000,
            "points_fees_floor": 1380,
            "points_fees_limit": 20000,
            "points_fees_limit_pct": 5,
            "points_fees_trigger_met": false,
            "pp_pct_limit": 2,
            "pp_period_limit_months": 36,
            "prepayment_penalty_pct": 0,
            "prepayment_penalty_period_months": 0,
            "prepayment_penalty_trigger_met": false,
            "regulatory_basis": "12 CFR §1026.32(a)(1) HOEPA high-cost mortgage trigger test. APR trigger: §1026.32(a)(1)(i). Points-and-fees trigger: §1026.32(a)(1)(ii). Prepayment penalty trigger: §1026.32(a)(1)(iii).",
            "table_version": "HOEPA-REGZ-2026-01-01",
            "triggers_fired": [
              "apr_trigger"
            ],
            "year": 2026
          }
        }
      }
    },
    {
      "tool_id": "art-235-test-hpml-escrow",
      "tool_version": "1.0.0",
      "display_name": "HPML Definition and Escrow Requirement Test",
      "mcp_name": "test_hpml_escrow",
      "mandate_type": "compliance_mandate",
      "wave": 39,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-235-test-hpml-escrow.html",
      "description": "Tests whether a loan qualifies as a Higher-Priced Mortgage Loan (HPML) per Reg Z §1026.35(a)(1): APOR+1.5pp first-lien, APOR+2.5pp jumbo, APOR+3.5pp subordinate (Dodd-Frank structural thresholds, unchanged since 2014). Applies §1026.35(b)(1) escrow requirement for first-lien HPMLs and checks §1026.35(b)(2) exemptions (rural or underserved small creditor, condo master policy). Consumes art-220 (lookup_reg_z_thresholds) for the pinned HPML threshold table. For HOEPA high-cost triggers (APOR+6.5pp/8.5pp): use test_hoepa_high_cost (art-234), not this node.",
      "input_schema_ref": "chaingraph/art-235-test-hpml-escrow.html#manifest",
      "consumes": [
        "art-220-reg-z-threshold-lookup"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:41826ca9f3d3ba48ad150289c96f2aad017594ea96ff49fb448fabf84fdb6bef","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DIxHdZNT7yvo9XM8vAzDM/uHR/B12GzOM0JyQyr5NPUH7PTaHgAJH6O48GM5p+Ukjvu28+Ud2pO1zVsb3zSsRwU9a+qX17lMHRYwhTMI4W0XLoKtSjtb7BFL8jJGjHUoBZ9i4hMkwpUWnOSAP5INrGwn2gvp2J+fU5NDapFBmlsYaILJVSyDz5wgeIhF0fhvblNh75HDMMI6KK2h37dCTBypGtd7ElWF0BURRWQj2wKwE8wr8+CRQn9rxlGMV6tOGt6ObsuwyBTGMw8AF3EPA5Np+XxNAfn13EnxqCN/IGESVHud3JdwZXp5vlAdqoVYEOGD25SQGrDM/0zxeHyQ4Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:41826ca9f3d3ba48ad150289c96f2aad017594ea96ff49fb448fabf84fdb6bef",
          "output": {
            "apor_pct": 5.5,
            "apr_pct": 7.5,
            "apr_spread_pct": 2,
            "consumes": "art-220 (lookup_reg_z_thresholds) supplies the HPML threshold table (table: hpml). HPML spread thresholds (1.5/2.5/3.5 pp) are structural Dodd-Frank values, not CPI-adjusted.",
            "escrow_exemption": null,
            "escrow_exemption_basis": null,
            "escrow_required": true,
            "fr_citation": "Reg Z §1026.35(a)(1); Dodd-Frank Act; Reg Z §1026.35 Final Rule (FR 2013-01730, eff. Jan 10, 2014). Structural thresholds unchanged since 2014.",
            "is_hpml": true,
            "is_jumbo": false,
            "lien_type": "first",
            "note": "HPML escrow applies to first-lien transactions only; subordinate liens are not subject to §1026.35(b) escrow. For HOEPA high-cost test (APOR+6.5pp/8.5pp): use art-234 (test_hoepa_high_cost). APOR must be supplied by caller from FFIEC weekly table (ffiec.gov/ratespread).",
            "regulatory_basis": "Reg Z §1026.35(a)(1) HPML definition; §1026.35(b)(1) escrow requirement (first-lien HPML, minimum 5 years); §1026.35(b)(2) rural/underserved small creditor and condo master-policy exemptions.",
            "spread_threshold_basis": "first_lien_standard_1.5pp",
            "spread_threshold_pct": 1.5,
            "table_version": "HPML-REGZ-2026-01-01",
            "year": 2026
          }
        }
      }
    },
    {
      "tool_id": "art-236-build-ai-decision-log-record",
      "tool_version": "1.1.0",
      "display_name": "AI Decision Log Record Builder (EU AI Act Art 12)",
      "mcp_name": "build_ai_decision_log_record",
      "mandate_type": "compliance_mandate",
      "wave": 40,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-236-build-ai-decision-log-record.html",
      "description": "Builds an EU AI Act Art 12(2)-conformant decision log record for high-risk AI systems in financial services. Computes chain_position (first/chained), art12_completeness_score (12 required fields), retention_months (>= 6 months, configurable), and anchor_surface instructions for composing anchor.ainumbers.co/mcp. subject_ref is a STRUCTURAL field only (opaque reference, never a real natural-person identifier; no PII enters this kernel). When the caller declares which sealed decision artifact this record evidences, this node also wraps it as a section-27.6 evidence bundle over that subject. Disambiguates from build_session_receipt (cry-01): that node logs MCP session I/O; this node builds a regulatory Art 12 decision record. Run classify_annex3_decisioning_obligations (art-238) first to confirm is_high_risk before generating Art 12 records.",
      "input_schema_ref": "chaingraph/art-236-build-ai-decision-log-record.html#manifest",
      "consumes": [],
      "feeds": [
        "art-237-validate-agent-audit-trail",
        "art-238-classify-annex3-decisioning-obligations"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:38e616aa1627146cb9496fe598eea7869de615e58bcc59363e22fc24da851e1c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IwCE/oiKLmbo9dZZxSDOv80IMmu7RRhrEm5ThBQqtyglkFuF+eFEzrwyx0Otm0riUrGSsaV7+zsRlT/NmuJ/cgQRAlcY8fYvUSVniemVoddxHpIeHS2ejmcAMFXmL6hMBfz+xKzvQ5gUIC3q5NTqOUCp+CKOSoGuIOczj+RmW3QmlNw7KZw8ILx/OsLDKY73wAJhQw9ddhQQdqZ2bjFIHSFATA2E8LVcJu/MkH0krYNuwUAPZ/TM0Zy1WPQ7zxByJX+atuZL8daR31UQ+XHM7OvWtVS+IBl2LLARdTB000QedT9HixgsqbFN99Dv1C7gw/iJfIcCAYyxuN+R54JT/w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ddb7da11f55693e35c501b0f9df6ff4e73eda5978e48d4e720d80b36f78d6014",
          "output": {
            "anchor_surface": "anchor.ainumbers.co/mcp",
            "anchor_tools": {
              "batch": "anchor_batch",
              "note": "Use anchor_hash for individual records; anchor_batch for high-volume agent log streams (Merkle tree over N leaf hashes).",
              "single": "anchor_hash"
            },
            "art12_completeness_score": 100,
            "art12_fields_present": true,
            "chain_position": "first",
            "confidence": 0.92,
            "decision_label": "CREDIT_APPROVED",
            "enforcement_dates": {
              "digital_omnibus_proposed": "2027-12-02",
              "note": "Digital Omnibus (provisional agreement 7 May 2026) proposes Annex III high-risk obligations to 2 Dec 2027; legal effect only on formal adoption. Verify current AI Act status.",
              "original": "2026-08-02"
            },
            "input_digest": "abc123def456abc123def456abc123def456abc123def456abc123def456abcd",
            "missing_art12_fields": [],
            "model_id": "credit-ai-v2",
            "model_version": "2.1.0",
            "operator_id": "bank-xyz",
            "output_digest": "def456abc123def456abc123def456abc123def456abc123def456abc123def4",
            "override_by": null,
            "override_flag": false,
            "pii_note": "subject_ref is a STRUCTURAL field for synthetic/opaque case IDs only. MUST NOT contain real personal identifiers (names, SSN, NPI, or similar). Zero PII by construction.",
            "record_status": "COMPLETE",
            "regulatory_basis": "EU AI Act (Reg. 2024/1689) Art 12(2), Art 26(6), Annex III 5(b) creditworthiness / 5(c) life-health insurance pricing",
            "retention_months": 12,
            "sha256_prev_record": "",
            "subject_ref": "CASE-0042",
            "system_context": "",
            "table_version": "EU-AIA-ART12-2024-1689-R1"
          }
        }
      }
    },
    {
      "tool_id": "art-237-validate-agent-audit-trail",
      "tool_version": "1.0.0",
      "display_name": "Agent Audit Trail Conformance Validator (IETF AAT)",
      "mcp_name": "validate_agent_audit_trail",
      "mandate_type": "compliance_mandate",
      "wave": 40,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-237-validate-agent-audit-trail.html",
      "description": "Validates agent audit trail records against IETF draft-sharif-agent-audit-trail-00 (AAT, expires Sept 2026). Checks required fields (agent_identity, action_class, outcome, trust_level, timestamp), sha256_prev_record chain-link format (/^[0-9a-f]{64}$/ or empty for first record), ECDSA signature presence, and enum conformance for action_class / outcome / trust_level. Returns conformance_result: CONFORMANT | PARTIAL | NON_CONFORMANT | EMPTY_INPUT with aat_completeness_score and validation_errors. Disambiguates from the RFC 9421 HTTP message signature nodes (art-129..132): those validate HTTP message signatures; this node validates agent-to-agent audit trail records per the IETF AAT draft.",
      "input_schema_ref": "chaingraph/art-237-validate-agent-audit-trail.html#manifest",
      "consumes": [
        "art-236-build-ai-decision-log-record"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4b708c0479222377ddaec18a19c7c15708dac8a9bc59d4e6e6b53661301c9801","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GMQp4786fmfc71eOqOmtUH+ykR0iYogvWm3b/BvWQrIGWNEX6F6EUXqplfaeBEu4YCp8ARJcMVSVmV6J+ChjkASJripFkku/f9ZvYoXNdzjZyn85e/pUJjVQVzLE2iTvGL7FVE0/KbwMZISQ3+ZNUeqAbOvM5Y2TjQYVuoUnWtgT+eaBoxeK47lbOcQzzS2Obze6ZkbgRjh7EpJDQJ6WnAx8BgTRUT+i8KanpZMamvknt+pxRgFIp53h/7+r8yGXKD1QRfrlevxAYN0E5OzG/3ccb3CxD06dZioY55AVoMUcfelOLktruL0yXQbIn+0aEVX67G+ReFpx+pb5HZp3DQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4b708c0479222377ddaec18a19c7c15708dac8a9bc59d4e6e6b53661301c9801",
          "output": {
            "aat_completeness_score": 100,
            "aat_required_fields_present": true,
            "action_class": "EXECUTE",
            "action_detail": null,
            "agent_identity": "did:web:agent.example.com#key-1",
            "alignment_note": "Aligned with IETF draft-sharif-agent-audit-trail-00 (I-D expires Sept 2026). Not a certified standard conformance check — no conformance authority exists for this draft.",
            "chain_position": "chained",
            "conformance_result": "CONFORMANT",
            "ecdsa_present": true,
            "outcome": "SUCCESS",
            "record_id": "rec-001",
            "regulatory_basis": "IETF draft-sharif-agent-audit-trail-00; RFC 8785 (JSON Canonicalisation Scheme); EU AI Act (Reg. 2024/1689) Art 12(2)",
            "sha256_chain_format_valid": true,
            "sha256_prev_record": "aabbccdd11223344aabbccdd11223344aabbccdd11223344aabbccdd11223344",
            "table_version": "AAT-DRAFT-SHARIF-00-2026",
            "trust_level": "HIGH",
            "validation_errors": [],
            "validation_warnings": []
          }
        }
      }
    },
    {
      "tool_id": "art-238-classify-annex3-decisioning-obligations",
      "tool_version": "1.0.0",
      "display_name": "EU AI Act Annex III FS Decisioning Obligations Classifier",
      "mcp_name": "classify_annex3_decisioning_obligations",
      "mandate_type": "compliance_mandate",
      "wave": 40,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-238-classify-annex3-decisioning-obligations.html",
      "description": "EXTENDS run_ai_act_highrisk_fit (art-64). Resolves financial-services-specific Art 12, 26, and 27 compliance obligations for Annex III 5(b) creditworthiness and 5(c) life/health insurance pricing AI systems. Caller supplies is_high_risk from art-64. When is_high_risk=false returns scope_verdict=OUT_OF_SCOPE (no obligations apply). When high-risk, maps obligations: Art 12(2) decision logging, Art 26(6) FRIA and human oversight (deployer duty), Art 27(1) EU AI Act public database registration. Enforcement: 2 December 2027, per the Digital Omnibus amendments (Parliament final approval, 16 June 2026); original date was 2026-08-02. Disambiguates from run_ai_act_highrisk_fit (art-64): that node classifies whether a system is high-risk; this node classifies WHICH FS-specific obligations apply once high-risk is confirmed.",
      "input_schema_ref": "chaingraph/art-238-classify-annex3-decisioning-obligations.html#manifest",
      "consumes": [
        "art-64-ai-act-highrisk-fit-diagnostic"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8bc32901d512c613154fd05bc8dba90a59d45911b83c8c2b2174ad8fddce59cb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Hu8CzF+/nDmhBEtCGbaYS2u7Ou15R8n2+mf3j9RNlUMJ6uGksEnkvErZorgYg+5fPy1Jv0F2K2pwnWtbTCD1hgyuMjaafGWtSWwYIa8TtsCVkIMJJG0HByKZVyqJxe+FKjI8KELZZMH5G2PKasXvTnErGc+1xTQdArWLv0IEP2EFaxlQdONvrn3fbhJth//a31K1IYdoTWkA9Nokse9EaCgMmJpKPjE22Htwuh7PFlXW6u5AaGdiB3gezqbkEP8WI2CD+7ovFApgXTQX1YsWtMugme4nGVHsejpXgpKA1D0btGwkSIfaYb8y5OlXmjMLmKJi8nM6YUDvvYGIhuye/g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0b45d429f6c43e46f0917a4fdb5c651ce821e6ee33ad8dd67223d6bdfb394431",
          "output": {
            "all_obligations_met": true,
            "annex3_category": "5b_creditworthiness",
            "art12_logging_required": true,
            "art26_deployer_duties_apply": true,
            "compliance_gaps": [],
            "db_registration_required": true,
            "do_now": [],
            "enforcement_dates": {
              "digital_omnibus_proposed": "2027-12-02",
              "note": "Digital Omnibus (provisional agreement 7 May 2026) proposes Annex III high-risk obligations to 2 Dec 2027. Verify current AI Act status.",
              "original": "2026-08-02"
            },
            "enforcement_readiness": "READY",
            "extends_note": "This node extends run_ai_act_highrisk_fit with FS-specific Art 12 and Art 26 obligations. Run art-64 first to confirm is_high_risk=true.",
            "extends_tool": "run_ai_act_highrisk_fit (art-64)",
            "fria_required": true,
            "is_5b_creditworthiness": true,
            "is_5c_life_health_insurance": false,
            "is_high_risk": true,
            "obligations": [
              {
                "article": "Art 12(2)",
                "obligation": "Log inputs, outputs, timestamps, model version, override flags, natural-person-ID field. Retain >= 6 months.",
                "status": "IMPLEMENTED"
              },
              {
                "article": "Art 26(6)",
                "obligation": "Deployer: conduct FRIA before deployment for Annex III 5(b)/(5)(c) systems. Maintain human oversight mechanism.",
                "status": "IMPLEMENTED"
              },
              {
                "article": "Art 27(1)",
                "obligation": "Register creditworthiness AI system in EU AI Act public database before deployment.",
                "status": "IMPLEMENTED"
              }
            ],
            "regulatory_basis": "EU AI Act (Reg. 2024/1689) Annex III 5(b), 5(c); Art 12(2) (decision logging); Art 26(6) (deployer duties + FRIA); Art 27(1) (EU database registration)",
            "scope_verdict": "ANNEX3_5B_CREDITWORTHINESS",
            "table_version": "EU-AIA-ANNEX3-FS-2024-1689-R1"
          }
        }
      }
    },
    {
      "tool_id": "art-239-test-bifsg-bias-thresholds",
      "tool_version": "1.0.0",
      "display_name": "BIFSG Insurance Proxy Bias Threshold Test (Colorado SB 21-169)",
      "mcp_name": "test_bifsg_bias_thresholds",
      "mandate_type": "compliance_mandate",
      "wave": 40,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-239-test-bifsg-bias-thresholds.html",
      "description": "Tests BIFSG proxy bias thresholds under Colorado SB 21-169 / Reg. 10-1-1 for insurance AI models. ZERO PII: accepts aggregate regression outputs only (p-value, marginal effect %, premium delta per $1,000 face) -- no individual applicant data, proxy scores, or demographic identifiers enter this kernel. Statistical prong: p < 0.05 AND marginal effect >= 5 percentage points. Premium prong (standalone): premium >= 5% above average per $1,000 face. Annual attestation due December 1: anchor execution_hash at anchor.ainumbers.co/mcp (COMPOSE, do not rebuild). Disambiguates from compute_disparity_metrics (art-229): that node applies ECOA/HMDA 4/5ths adverse impact rule for lending; this node applies Colorado SB 21-169 p-value and premium-rate bias tests for insurance AI.",
      "input_schema_ref": "chaingraph/art-239-test-bifsg-bias-thresholds.html#manifest",
      "consumes": [],
      "feeds": [
        "art-240-assess-naic-ais-program-readiness"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:701d442f76691b38e5ab0fce5525b2d882260a259477651757e4f1cf0c4f9638","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-04"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "I+1rEq+XKa03HQa/na/iNRoqWJe8wWFsR8i+w33dG+AfFaUms3mE1wWvYIp2HC5ESdwXtYcX+wTkhomctntmNgONSCQur5muTtqjoUBvnylEVnOTDiBqoDdnD0OGZuJiGGEEmZ3DwNFOM7FzKwk43PZ09Y0/TdjBUcvINJZK/B0vG7evVYZJLpaIaH01QYpe/QCh30MbeTbN6zN5g1gPliZDOsNcWeec0+Jysdwne4KaVjjPGKQQmK7fJ0zteocmD2xK/iUx+4bFvEopY7ho+HGOo+Ch5DgIyoX16kTOi2sGRMTPNjYv36m6zUuZEWZd6hgqKuRYdf/esKy1L/eE4A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:701d442f76691b38e5ab0fce5525b2d882260a259477651757e4f1cf0c4f9638",
          "output": {
            "anchor_instruction": "Anchor the execution_hash at anchor.ainumbers.co/mcp using anchor_hash. The RFC 3161 timestamp IS the annual attestation evidence. One anchor per year, before November 30.",
            "attestation_deadline": "December 1 each year (Colorado SB 21-169 / Reg. 10-1-1)",
            "attestation_year": 2026,
            "bias_detected": true,
            "do_now": [
              "Approval-rate bias detected (p < 0.05 AND marginal effect >= 5pp). Document remediation plan per Colorado Reg. 10-1-1 §[6].",
              "Review and update BIFSG proxy variable handling in model pipeline.",
              "Notify Colorado Division of Insurance of material bias finding per SB 21-169 §3.",
              "Anchor this test result at anchor.ainumbers.co/mcp (anchor_hash) before December 1 to constitute annual attestation evidence."
            ],
            "marginal_effect_flag": true,
            "marginal_effect_pct": 7.3,
            "marginal_effect_threshold_pp": 5,
            "model_type": "underwriting",
            "p_value": 0.02,
            "p_value_significant": true,
            "p_value_threshold": 0.05,
            "pii_note": "Inputs are AGGREGATE regression outputs only (p-value, marginal effect %, premium delta). No individual applicant data, proxy scores, demographic identifiers, or personal information enters this kernel. Zero PII by construction.",
            "premium_flag": false,
            "premium_per_1000_above_avg_pct": 0,
            "premium_threshold_pct": 5,
            "regulatory_basis": "Colorado SB 21-169 (signed 2021-07-06); Colorado Reg. 10-1-1 (effective 2023-11-14, Colorado Division of Insurance, Market Regulation Branch)",
            "remediation_required": true,
            "table_source": "Colorado SB 21-169 §3; Colorado Code of Regulations Title 3, Article 4, Part 10-1-1 (effective 2023-11-14)",
            "table_version": "CO-SB21169-REG10-1-1-2023",
            "test_context": "approval_rate",
            "test_result": "BIAS_DETECTED_REMEDIATION_REQUIRED"
          }
        }
      }
    },
    {
  "tool_id": "art-240-assess-naic-ais-program-readiness",
  "tool_version": "1.0.0",
  "display_name": "NAIC AI Systems Program Readiness Assessment",
  "mcp_name": "assess_naic_ais_program_readiness",
  "mandate_type": "compliance_mandate",
  "wave": 40,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-240-assess-naic-ais-program-readiness.html",
  "description": "Scores insurance AI program readiness against the NAIC Model Bulletin on the Use of Artificial Intelligence Systems by Insurers (adopted 4 Dec 2023) and the NAIC AI Systems Evaluation Tool (exposure draft v4.0, Sep 2025). Six dimensions scored 0-3 (Not Started/Planning/Partial/Implemented): Governance & Accountability, Risk Management Framework, Data Governance & Bias Monitoring, Testing & Validation, Transparency & Explainability, Complaint & Audit Readiness. Total 0-18; readiness tier: GREEN >= 78% (EXAM_READY), YELLOW >= 44% (IN_PROGRESS), RED < 44% (SIGNIFICANT_GAPS). 24+ states have adopted or substantially adopted the NAIC AI Model Bulletin as of mid-2026; 12-state market-conduct exam pilot ran Jan-Sep 2026 (verify current adoption status with NAIC and your state regulator).",
  "input_schema_ref": "chaingraph/art-240-assess-naic-ais-program-readiness.html#manifest",
  "consumes": [
    "art-239-test-bifsg-bias-thresholds"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ed2e6920e271e9beb07ec2b652b464385e213299d2abc4cbe33b2a28397bbc61",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ib7jxGpow8xHP7/G4mi9V+dJQWoE6ot7Lsp325d0dGknQw4WSqcMl878yr2HpenT8IaLWZXvkFcZFSy6oxMXmQEH75pOl6eiZDO6TykxazlXLdbbt2/CkCP9RgIq97+SB4Bx/AlqiP/2Nd+R2gjbSAzGfvvYNfyTFOo3wTHmp8ct9/HpcYVhqsLPsvW+IWlDgfDCEXPdwEn7l2AjbklS6As7g4o4jmyhQITjoEFYNeErCMtE23b/ByrzVsqBiSlzJdYgl0BmQnI846RvQtRRCUObWprtdcJEg3lKO47ovkMemYYjwkF6BlG+tWjk3pnRxnTa6UEryT5VPN/GRTK5BA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ed2e6920e271e9beb07ec2b652b464385e213299d2abc4cbe33b2a28397bbc61",
      "output": {
        "adopted_states_note": "NAIC AI Model Bulletin adopted or substantially adopted by 24+ states as of mid-2026. 12-state market-conduct exam pilot ran Jan-Sep 2026 (verify current adoption status with NAIC and state regulator before relying on this count).",
        "dimension_scores": [
          {
            "dimension": "Governance & Accountability",
            "score": 3,
            "status": "IMPLEMENTED"
          },
          {
            "dimension": "Risk Management Framework",
            "score": 3,
            "status": "IMPLEMENTED"
          },
          {
            "dimension": "Data Governance & Bias Monitoring",
            "score": 3,
            "status": "IMPLEMENTED"
          },
          {
            "dimension": "Testing & Validation",
            "score": 3,
            "status": "IMPLEMENTED"
          },
          {
            "dimension": "Transparency & Explainability",
            "score": 3,
            "status": "IMPLEMENTED"
          },
          {
            "dimension": "Complaint & Audit Readiness",
            "score": 3,
            "status": "IMPLEMENTED"
          }
        ],
        "do_now": [
          "All dimensions at Partially Implemented or above — focus on documentation and exam-evidence preparation."
        ],
        "exam_pilot_note": "12-state market-conduct exam pilot ran Jan-Sep 2026 per NAIC. Verify current exam schedule with your state regulator.",
        "gaps": [],
        "max_score": 18,
        "readiness_label": "EXAM_READY",
        "readiness_pct": 100,
        "readiness_tier": "GREEN",
        "regulatory_basis": "NAIC Model Bulletin on the Use of Artificial Intelligence Systems by Insurers (adopted 4 Dec 2023); NAIC Principles on Artificial Intelligence (adopted 14 Aug 2020); NAIC AI Systems Evaluation Tool (exposure draft v4.0, Sep 2025; 12-state pilot, not yet adopted); NAIC Market Regulation Handbook (2024)",
        "table_source": "NAIC Model Bulletin on the Use of Artificial Intelligence Systems by Insurers (adopted 4 Dec 2023, naic.org); NAIC AI Systems Evaluation Tool (exposure draft v4.0, Sep 2025; anticipated adoption 2026 Fall National Meeting, naic.org)",
        "table_version": "NAIC-AIS-BULLETIN-2023-R1",
        "total_score": 18
      }
    }
  }
},
    {
      "tool_id": "art-241-cbpr-structured-address-linter",
      "tool_version": "1.0.0",
      "display_name": "CBPR+ Structured Address Linter",
      "mcp_name": "lint_cbpr_structured_address",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-241-cbpr-structured-address-linter.html",
      "description": "Lints a single pacs.008 PostalAddress24 block against the SWIFT CBPR+ November 2026 mandate. Detects unstructured AdrLine-only addresses (prohibited), hybrid silent-fail duplication (AdrLine echoing structured field values, which causes STP rejection without a visible error code), and address structure type (FULLY_STRUCTURED, HYBRID, UNSTRUCTURED, EMPTY). Per-message lint -- for batch verification of migrated address archives use verify_address_migration_batch (rca-03).",
      "input_schema_ref": "chaingraph/art-241-cbpr-structured-address-linter.html#manifest",
      "consumes": [],
      "feeds": [
        "art-242-pacs008-party-completeness-validator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:63e488bc42ce3ecf75573b02a8fae9dd4044c91928f1f019e53895bf08f6bf86","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CbzGhSJVCFkha+UaDaPbk1CywRltJvDFYSE5BVH6N4ApreevBqMI6rEZkeX8shF1uABm0vU4VnCurWvbS1qiNyVJejFPERSa9jwvzoS8jwZI3r9cbLdRQ5a9lf3ZGRYtLDvBQszPGgpDzArE9XUCOIdHAkaQJC0VZ2x6U9VMoGwGQgEY8FFZ+pE2hoBj0HypOIBQb8IUof9gA2j1Z6HHfQ8QrYWYj1L8ejO8x5IWi2ySmyOuk0UBJUuhoT4xi7uzJmVAwX1Akg3poHae8SZbMkj/f4sKqt66cxzTcvjkosQDijCqDHuWX/vp8gmSfLcaOQB+gEpmYfyhAYoNt8c0FQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:63e488bc42ce3ecf75573b02a8fae9dd4044c91928f1f019e53895bf08f6bf86",
          "output": {
            "cbpr_plus_deadline": "2026-11-14",
            "compliant": true,
            "disambiguation": "lint_cbpr_structured_address checks per-message Nov-2026 hybrid/fully-structured rule lint including the AdrLine silent-fail duplication rule. For batch verification of already-migrated address archives use verify_address_migration_batch (rca-03). For ISO 20022 securities settlement messages (sese/semt) use lint_securities_settlement_message (art-82). This tool operates on pacs.008 payments address blocks only.",
            "error_count": 0,
            "pii_note": "All fields operate on STRUCTURAL address components only. No real party PII enters this kernel -- use synthetic or anonymised address data.",
            "readiness_pct": 100,
            "regulatory_basis": "SWIFT CBPR+ Structured Address Migration Bulletin; ISO 20022 PostalAddress24 element set (MX catalogue); SEPA and CHAPS aligned Nov 2026",
            "structure_type": "FULLY_STRUCTURED",
            "table_source": "SWIFT CBPR+ Structured Address Migration Bulletin (verify current guidance at swift.com/cbpr-plus-migration); ISO 20022 PostalAddress24 element set (iso20022.org MX catalogue)",
            "table_version": "CBPR-PLUS-STRUCTURED-ADDRESS-NOV2026-V1",
            "violations": []
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-242-pacs008-party-completeness-validator",
      "tool_version": "1.0.0",
      "display_name": "pacs.008 Party Completeness Validator",
      "mcp_name": "validate_pacs008_party_completeness",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-242-pacs008-party-completeness-validator.html",
      "description": "Validates BIS CPMI d218 harmonised data requirements for a pacs.008 payment instruction: UETR UUIDv4 format, debtor and creditor names, BIC format, LEI format (presence and format; full mod-97 check-digit validation is in lint_lei_payment_binding art-246), and purpose code format. Outputs a CPMI d218 completeness score. Does not validate PostalAddress24 structure (use lint_cbpr_structured_address art-241) or PQC crypto readiness (use check_iso20022_pqc_readiness art-87).",
      "input_schema_ref": "chaingraph/art-242-pacs008-party-completeness-validator.html#manifest",
      "consumes": [
        "art-241-cbpr-structured-address-linter"
      ],
      "feeds": [
        "art-246-lei-payment-binding-linter"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a003fc6cc8dfa80d68668f62938102ca8f06da330407616dc9d04f146303706e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F37WEW901LE00P5whdph8eOHhbFF7wYBYO3c7zrtY5Iiyc8gqfIx22H7b2yRMCdXsxL66PdBhwP147HGZW6RNxTPGJrzTi06m9wK75YIcTa5bruq0KTvo2exjldPnyf0IK91MJrsZEKJ7Naps9q258EMgeHG2Y6G30NAPm4gn/ABdDj5VuvwEICF7bDaVCzNif6RqcUspvL0083BPVUUWCS9pE3rVUA4yRFNQvWJxep4YAK5cdqELKREc3Sb64cND9tIrBpQQnSMYvYtR94ZWyKUavrh12jlNQcGPwB3mAkCPeURLCNQerjRMNHyZtQouFWg/ui1/B3hQH7Huc/3ew==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a003fc6cc8dfa80d68668f62938102ca8f06da330407616dc9d04f146303706e",
          "output": {
            "compliant": true,
            "cpmi_d218_score": 100,
            "disambiguation": "validate_pacs008_party_completeness checks CPMI d218 structural completeness of pacs.008 party data (UETR UUIDv4, names, BIC format, LEI format). For full LEI mod-97 check-digit validation and Wolfsberg transparency scoring use lint_lei_payment_binding (art-246). For ML-DSA/PQC crypto readiness use check_iso20022_pqc_readiness (art-87). For PostalAddress24 structure use lint_cbpr_structured_address (art-241).",
            "error_count": 0,
            "field_status": {
              "creditor_agent_bic": {
                "present": true,
                "valid": true
              },
              "creditor_lei": {
                "present": true,
                "valid": true
              },
              "creditor_name": {
                "present": true
              },
              "debtor_agent_bic": {
                "present": true,
                "valid": true
              },
              "debtor_lei": {
                "present": true,
                "valid": true
              },
              "debtor_name": {
                "present": true
              },
              "purpose_code": {
                "present": true,
                "valid": true
              },
              "uetr": {
                "present": true,
                "valid": true,
                "value_note": "550e8400..."
              }
            },
            "issues": [],
            "pii_note": "Operates on structural identifiers (UETR, BIC, LEI) and party name length only. No real PII processed -- use synthetic or anonymised party data.",
            "regulatory_basis": "BIS CPMI d218 \"Harmonised ISO 20022 data requirements for cross-border payments\"; SWIFT CBPR+ November 2026 mandate; ISO 9362 BIC; ISO 17442 LEI",
            "table_source": "BIS CPMI Paper d218 \"Harmonised ISO 20022 data requirements for cross-border payments\" (bis.org/cpmi/publ/d218.htm); ISO 20022 External Code Set ExternalPurpose1Code (iso20022.org)",
            "table_version": "BIS-CPMI-D218-PARTY-COMPLETENESS-V1",
            "warning_count": 0
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-243-purpose-code-requirement-checker",
      "tool_version": "1.0.0",
      "display_name": "ISO 20022 Purpose Code Requirement Checker",
      "mcp_name": "check_purpose_code_requirement",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-243-purpose-code-requirement-checker.html",
      "description": "Given a beneficiary country and payment amount, determines whether ExternalPurpose1Code (Purp/Cd) or ExternalCategoryPurpose1Code (CtgyPurp/Cd) is mandatory per BIS CPMI d218 jurisdiction profiles (UAE, India, Bahrain, Jordan, China, Malaysia mandate purpose codes). Also checks SwiftGo eligibility (amount at most $12,500 USD and ExternalCategoryPurpose1Code in accepted set). Outputs purpose_code_compliant, code_type_required, and swiftgo_eligible.",
      "input_schema_ref": "chaingraph/art-243-purpose-code-requirement-checker.html#manifest",
      "consumes": [],
      "feeds": [
        "art-247-prevalidation-readiness-scorer"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2ff736927d33cc21662cf8751c9182933760e8d7bf20ec50e5dcbd5b93e48615","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F3j3kZ6ss61eIxVt3vtlRQrsGS9bxauRNtBe4buhj4wDIgtgeXu8WJxLiUy4jZw4VVwmejFRSL8P7di4NRnVEgofUKZnCjrWs2haSyr3xDTenDTtl0RGBBqPC6J/qKkCJMe6I6StnY8jY+wRmoqCEDY24PrxYAgkQuPuRS36hIEWR2H6IX0pimUMrUVKvDUEUrPZ1fFdvijnwFqVOCJyTTBRvC4h5BtZtfqMF+na3PDr2/OYk1Ic43MZcbTmZhKeKa9dKgbTTyP4pqj9VzxH2cvPlhd1vbEiSez6XY38IBgnMWtRbmRZSwUOioRyOf4IJ4MgIP6mjpmyG7cIcwZ/AQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2ff736927d33cc21662cf8751c9182933760e8d7bf20ec50e5dcbd5b93e48615",
          "output": {
            "category_purpose_code_provided": true,
            "code_type_required": "PurpCd",
            "issues": [],
            "jurisdiction_reason": "UAE Central Bank requires PurpCd on all inbound cross-border payments.",
            "jurisdiction_requires_purpose_code": true,
            "pii_note": "Payment amount is used only for SwiftGo eligibility threshold check. No party PII processed. Use synthetic amounts for testing.",
            "purpose_code_compliant": true,
            "purpose_code_provided": true,
            "purpose_format_valid": true,
            "regulatory_basis": "BIS CPMI d218 country payment profiles; SWIFT SwiftGo eligibility criteria; ISO 20022 ExternalPurpose1Code and ExternalCategoryPurpose1Code (iso20022.org External Code Set)",
            "required_code_types": [
              "PurpCd"
            ],
            "swiftgo_accepted_category_codes": [
              "SALA",
              "PENS",
              "TRAD",
              "CORT",
              "BEXP",
              "SUPP",
              "DIVI",
              "BENE",
              "OTHR",
              "CHAR"
            ],
            "swiftgo_amount_ok": true,
            "swiftgo_category_ok": true,
            "swiftgo_eligible": true,
            "swiftgo_max_usd": 12500,
            "swiftgo_notes": [],
            "table_source": "BIS CPMI d218 country payment profiles (bis.org/cpmi/publ/d218.htm); SWIFT SwiftGo eligibility rules (swift.com/our-solutions/global-financial-messaging/swiftgo); ISO 20022 External Code Sets ExternalPurpose1Code and ExternalCategoryPurpose1Code",
            "table_version": "ISO20022-PURPOSE-CODE-JURISDICTION-V1"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-244-gpi-tracker-lifecycle-simulator",
      "tool_version": "1.0.0",
      "display_name": "SWIFT GPI Tracker Lifecycle Simulator",
      "mcp_name": "simulate_gpi_tracker_lifecycle",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-244-gpi-tracker-lifecycle-simulator.html",
      "description": "Validates SWIFT GPI pacs.002 payment status code transitions against the GPI state machine (PDNG, ACSP, ACSP/ACWC, ACCC, RJCT) and checks the Universal Confirmation SLA (ACCC must be sent within 24 hours of ACSP). Detects invalid transitions, transitions from terminal states, and SLA at-risk or breached conditions. For use in agent-driven GPI payment monitoring workflows.",
      "input_schema_ref": "chaingraph/art-244-gpi-tracker-lifecycle-simulator.html#manifest",
      "consumes": [],
      "feeds": [
        "art-245-mt-mx-translation-fidelity-scorer"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:95a121c21ae663021a54823e43d3f181762a899c730c31f7d5356f12cd1ba043","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F25gYmJrelOjAOYhOVC1hXel3okXR83JjC8guetKZK0e4mSH8q+LwqrocnzeHtvDohptIAsFjxBKHAoJN1VFmRUXYKoZy2qSMRPIkNKBnCT4N9g6oTCt9ygcPgNr9FS5BWtnuAFoUUKsYDds612XL+CD14n4jDdClRX4Vus9AEgRlsJ8RZ5+3GJo5+Pfhl2RZuHSNtStCLvxna0tbdpjpROebJWa+j1L33kOkt9vG6NvBlGH7bo94PJ/Etq3cNhLDZrNxmD6Kt5oKsbfjzNNm+Yqv2FuYIDmQNePZxuLVnAILcuMYyH15lBc8TH3PeHM8sSZqEBwGcZzj4v/aSdHuA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:95a121c21ae663021a54823e43d3f181762a899c730c31f7d5356f12cd1ba043",
          "output": {
            "allowed_next_statuses": [
              "ACSP",
              "ACSP/ACWC",
              "ACCC",
              "RJCT"
            ],
            "amount_usd": 50000,
            "current_status": "ACSP",
            "hours_elapsed": 12,
            "is_rejected": false,
            "is_settled": false,
            "is_terminal": false,
            "issues": [],
            "lifecycle_states": [
              "PDNG",
              "ACSP",
              "ACSP/ACWC",
              "ACCC",
              "RJCT"
            ],
            "next_status": "ACCC",
            "pii_note": "Payment amount used only for context. No party PII processed. Use synthetic amounts and UETR values for testing.",
            "regulatory_basis": "SWIFT GPI Universal Confirmation rules; ISO 20022 pacs.002 ExternalPaymentTransactionStatus1Code; SWIFT GPI Tracker service description",
            "sla_breached": false,
            "sla_hours_limit": 24,
            "sla_note": "Universal Confirmation SLA met: ACCC sent 12.0h after ACSP (limit 24h).",
            "stage_description": "Accepted and in settlement process -- correspondent acknowledged the payment, settlement underway.",
            "table_source": "SWIFT GPI Tracker specification (swift.com/our-solutions/global-financial-messaging/swift-gpi); SWIFT Innotribe GPI Universal Confirmation SLA rules; ISO 20022 pacs.002 ExternalPaymentTransactionStatus1Code",
            "table_version": "SWIFT-GPI-STATUS-LIFECYCLE-V1",
            "transition_reason": "ACSP -> ACCC is a valid GPI lifecycle transition.",
            "transition_valid": true
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-245-mt-mx-translation-fidelity-scorer",
      "tool_version": "1.0.0",
      "display_name": "MT103 to MX Translation Fidelity Scorer",
      "mcp_name": "score_mt_mx_translation_fidelity",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-245-mt-mx-translation-fidelity-scorer.html",
      "description": "Scores ISO 15022 MT103 to ISO 20022 pacs.008 translation fidelity for CBPR+ November 2026 migration. Checks field presence mapping (:20: to UETR, :50K/A to Dbtr/Nm, :59/:59A to Cdtr/Nm, :52A/:57A to BIC agents, :70: to RmtInf/Ustrd, :71A to ChrgBr), truncation risks (140-char remittance info, address line lengths), and charge bearer code mapping (OUR=DEBT, SHA=SHAR, BEN=CRED). Outputs fidelity score and per-field mapping results.",
      "input_schema_ref": "chaingraph/art-245-mt-mx-translation-fidelity-scorer.html#manifest",
      "consumes": [
        "art-244-gpi-tracker-lifecycle-simulator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:df068aac811711ab2100e95147d96ce76694c32836ca079e405fbd586fbe351a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DcjEl9whIglowMmICnwXqGNPKcyHbaWoUavHxtygjSwBkwOsRPC2C7pnpEbwyC1ZudsPYYL/c9siVrmJyczo4BslVP95puQHyGY3vgonbQ+PrGkMDgDbVNH+Pc4SyuGOHAm5ZMAcjucCUeVvTpECHkZkSMMH9p7tPWdE7kZX8YUNEEWVtH6fTki5wXASh1FDCCFpJVJuNoP/2BIpUTnNLwfM4d4hrjzbng2pwKx7S/EJTCNfzW+N2i82ORMiQGahDqYygmRgA3LXB+L8O0krdYPPnwARQOLLTdI4nPvqkBos3ORUsn7y3JD5+8+oksFgrS+q2kRfUxgWqAPG45fu6A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:df068aac811711ab2100e95147d96ce76694c32836ca079e405fbd586fbe351a",
          "output": {
            "cbpr_plus_deadline": "2026-11-14",
            "charge_bearer_map": {
              "BEN": "CRED",
              "OUR": "DEBT",
              "SHA": "SHAR"
            },
            "compliant": true,
            "error_count": 0,
            "fidelity_score": 100,
            "fidelity_tier": "HIGH",
            "issues": [],
            "mapping_results": [
              {
                "mt_field": ":20: TRN",
                "mt_present": true,
                "mx_field": "UETR",
                "mx_present": true,
                "note": ":20: is the MT reference; pacs.008 requires a new UUIDv4 UETR (not a direct carry-over of :20:)."
              },
              {
                "mt_field": ":50K/A OrderingCustomer",
                "mt_present": true,
                "mx_field": "Dbtr/Nm",
                "mx_present": true,
                "note": ":50K: 4 lines x 35 chars; Dbtr/Nm allows 140 chars. Name truncation risk if MT line contained both name and account on same line."
              },
              {
                "mt_field": ":59/A Beneficiary",
                "mt_present": true,
                "mx_field": "Cdtr/Nm",
                "mx_present": true,
                "note": ":59: 4 lines x 35 chars; Cdtr/Nm max 140 chars. Beneficiary name + address must be split into Nm and PostalAddress24 in pacs.008."
              },
              {
                "mt_field": ":52A OrderingInstitution",
                "mt_present": true,
                "mx_field": "DbtrAgt/BICFI",
                "mx_present": true,
                "note": ":52A BIC carries directly to DbtrAgt/BICFI. Direct 1-to-1 mapping."
              },
              {
                "mt_field": ":57A AccountWithInstitution",
                "mt_present": true,
                "mx_field": "CdtrAgt/BICFI",
                "mx_present": true,
                "note": ":57A BIC carries directly to CdtrAgt/BICFI. Direct 1-to-1 mapping."
              },
              {
                "mt_field": ":70: RemittanceInfo",
                "mt_present": true,
                "mx_field": "RmtInf/Ustrd",
                "mx_present": true,
                "note": ":70: allows 4 lines x 35 chars = 140 chars. RmtInf/Ustrd max 140 chars. Near-identical capacity but line concatenation must not lose data."
              },
              {
                "mt_field": ":71A DetailsOfCharges",
                "mt_present": true,
                "mx_field": "ChrgBr",
                "mx_present": true,
                "note": "OUR->DEBT, SHA->SHAR, BEN->CRED. Direct table mapping."
              }
            ],
            "pii_note": "MT and pacs.008 field values are processed structurally (presence, length, code mapping). No real party PII processed. Use synthetic message fields for testing.",
            "regulatory_basis": "SWIFT CBPR+ mandatory migration deadline 14 Nov 2026; SWIFT MT103 Standards Release Guide; ISO 20022 pacs.008.001.10",
            "table_source": "SWIFT Standards Release Guide MT103 (swift.com/standards); ISO 20022 pacs.008.001.10 message definition (iso20022.org); SWIFT CBPR+ Translation Rules for MT103 to pacs.008 migration",
            "table_version": "MT103-PACS008-FIELD-MAP-CBPR-V1",
            "truncation_risks": []
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-246-lei-payment-binding-linter",
      "tool_version": "1.0.0",
      "display_name": "Wolfsberg Payment Transparency & LEI Binding Linter",
      "mcp_name": "lint_lei_payment_binding",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-246-lei-payment-binding-linter.html",
      "description": "Full ISO 17442 LEI check-digit validation via ISO 7064 Mod 97-10 for originator and beneficiary LEIs in pacs.008. Also scores Wolfsberg Payment Transparency Standards across six fields (originator name, account, LEI; beneficiary name, account, LEI) and assigns a transparency tier (HIGH, MEDIUM, LOW). LEIs are public GLEIF registry data -- no PII involved. For format-only LEI checks within broader party completeness validation use validate_pacs008_party_completeness (art-242).",
      "input_schema_ref": "chaingraph/art-246-lei-payment-binding-linter.html#manifest",
      "consumes": [
        "art-242-pacs008-party-completeness-validator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3eb46ada4f435f3207e14efe0cd5349dd78613e1b50bbe42bb85cd95e2cd3c05","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LtNhxffw0FMSE2Aeiq9E0muhOHs+IQWr76N6LOIWRj0RGfOGPXPcnAxEFDMKT3U8c2sunRYTAQhBRNDEPto1Gh3MKLOVNvcXCzl2VukiZs+oWejwsPgJud6lu4XVlB1iKuQEzCpdEEwZEI/w8IwU/r27lGxm68lYOtWr4vaYsiUCo/FOR7vI+IRkYuCNwKKwR6bX+g8pNTeM5O98WM1f9y+6RuLwRLOUCRfkeuy9txxcqs7BuJE+CSiJhcz9Ev1kBBZmp2ySzhu2btN2XaqoZoALWZEephFqWf/vzdcUuwEnQGlIyQAZgKawM/mmB69vd6yubm0qjTCtDBgLrHz44w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3eb46ada4f435f3207e14efe0cd5349dd78613e1b50bbe42bb85cd95e2cd3c05",
          "output": {
            "error_count": 0,
            "issues": [],
            "lei_results": {
              "beneficiary": {
                "error": null,
                "lei": "00000000000000000001",
                "valid": true
              },
              "originator": {
                "error": null,
                "lei": "00000000000000000001",
                "valid": true
              }
            },
            "lei_valid": true,
            "pii_note": "LEIs are PUBLIC registry data (GLEIF global LEI database, gleif.org). Party names and account identifiers are processed structurally for presence/format only. No real PII processed -- use synthetic data for testing.",
            "regulatory_basis": "ISO 17442:2020 Legal Entity Identifier; ISO 7064:2003 Mod 97-10; Wolfsberg Payment Transparency Standards 2023; CPMI d218 LEI mandate guidance",
            "table_source": "ISO 17442:2020 Legal Entity Identifier (iso.org/standard/78829.html); ISO 7064:2003 Mod 97-10 check digit algorithm; Wolfsberg Payment Transparency Standards 2023 (wolfsberg-principles.com/documents/wolfsberg-payment-transparency-standards)",
            "table_version": "ISO17442-LEI-CHECK-2024 + WOLFSBERG-PAYMENT-TRANSPARENCY-2023",
            "wolfsberg_field_results": [
              {
                "label": "Originator name",
                "present": true,
                "weight": 20
              },
              {
                "label": "Originator account",
                "present": true,
                "weight": 15
              },
              {
                "label": "Originator LEI",
                "present": true,
                "weight": 20
              },
              {
                "label": "Beneficiary name",
                "present": true,
                "weight": 20
              },
              {
                "label": "Beneficiary account",
                "present": true,
                "weight": 15
              },
              {
                "label": "Beneficiary LEI",
                "present": true,
                "weight": 20
              }
            ],
            "wolfsberg_transparency_score": 100,
            "wolfsberg_transparency_tier": "HIGH"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-247-prevalidation-readiness-scorer",
      "tool_version": "1.0.0",
      "display_name": "Cross-Border Payment Prevalidation Readiness Scorer",
      "mcp_name": "prevalidation_readiness_scorer",
      "mandate_type": "compliance_mandate",
      "wave": 41,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-247-prevalidation-readiness-scorer.html",
      "description": "Aggregate CBPR+ pre-validation readiness check for a single pacs.008 payment instruction. Combines IBAN mod-97 check (ISO 13616), BIC format (ISO 9362), LEI format (ISO 17442, presence and format only), UUIDv4 UETR, and PostalAddress24 structure (CBPR+ Nov-2026 hybrid/fully-structured rules) into a single /ready boolean for STP gate use. Gate node for the cross-border-payment-prevalidation chain: ready=true means the instruction passes pre-validation; ready=false means remediation is required.",
      "input_schema_ref": "chaingraph/art-247-prevalidation-readiness-scorer.html#manifest",
      "consumes": [
        "art-243-purpose-code-requirement-checker"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5474f7090f70ee2ec83b77349b3e6a1aa511bfb76c6e43c9b8972f5556b752c7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Bw+Q+ugNmjB+PK2HCTiEz0GuLvxPLKkZGvWgfayPbs8f20AxmVb2/UyOV8RunDjjPtP9JRtbi3UCahlL1ZXlLhXN0URWWr5XLzUZqWwKRLx+7FDd3SajdgbEzAYDm0VPITvW8UCxV7JnJCUJMWjQCA7pZG7gKwVvhjPahmM34m0IneuKJ51Qi4Z2WbrZ7o6fk/Sek9+KldYRmD+/r17r9yE/PixqBNSR4nnvFJiqvyesY3AIdE5Ejnm526cek68LKkuAEn8rnL0+EiqZ982G8C1KP0i97B3fMVwxcp31RcctJyik8c1fuHC0ubL7mMzf/bK4LdfJdeDKmrD1gN9WYQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5474f7090f70ee2ec83b77349b3e6a1aa511bfb76c6e43c9b8972f5556b752c7",
          "output": {
            "cbpr_plus_deadline": "2026-11-14",
            "chain_gate_note": "ready=true means this payment instruction passes CBPR+ pre-validation for STP; ready=false means one or more checks failed and remediation is required before submission.",
            "check_details": {
              "address": {
                "error": null,
                "type": "FULLY_STRUCTURED",
                "valid": true
              },
              "bic": {
                "error": null,
                "provided": true,
                "valid": true
              },
              "iban": {
                "error": null,
                "provided": true,
                "valid": true
              },
              "lei": {
                "error": null,
                "provided": true,
                "valid": true
              },
              "uetr": {
                "error": null,
                "provided": true,
                "valid": true
              }
            },
            "checks_passed": 5,
            "checks_total": 5,
            "pii_note": "IBAN, BIC, and LEI are structural payment identifiers, not personal data. All checks are format/structure only. No real party PII processed -- use synthetic identifiers for testing.",
            "readiness_pct": 100,
            "ready": true,
            "regulatory_basis": "SWIFT CBPR+ Structured Address Migration Bulletin; BIS CPMI d218; ISO 13616 IBAN; ISO 9362 BIC; ISO 17442 LEI; ISO 20022 pacs.008.001.10",
            "remediation_actions": [],
            "table_source": "SWIFT CBPR+ Structured Address Migration Bulletin (swift.com/cbpr-plus-migration); BIS CPMI d218; ISO 13616:2020 IBAN; ISO 9362:2022 BIC; ISO 17442:2020 LEI; ISO 20022 pacs.008.001.10 (iso20022.org)",
            "table_version": "CBPR-PLUS-PREVALIDATION-COMPOSITE-V1"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-248-compute-remittance-disclosure",
      "tool_version": "1.0.0",
      "display_name": "Remittance Disclosure Calculator (Reg E Subpart B)",
      "mcp_name": "compute_remittance_disclosure",
      "mandate_type": "compliance_mandate",
      "wave": 42,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-248-compute-remittance-disclosure.html",
      "description": "Computes the required Reg E subpart B (12 CFR 1005.31/1005.32) remittance disclosure fields: transfer_amount_usd (send minus fees), exchange_rate_disclosed, amount_received_dest in destination currency, fees breakdown, total_to_sender_usd, disclosure_type (EXACT or ESTIMATED), estimate_permissible flag, and accounting identity check. Pre-transfer receipt anchor point for CFPB exam and error-resolution disputes (12 CFR 1005.33). ZERO PII: amounts, rates, fees, and taxes only. Gate node for the remittance-disclosure-and-corridor-cost chain.",
      "input_schema_ref": "chaingraph/art-248-compute-remittance-disclosure.html#manifest",
      "consumes": [],
      "feeds": [
        "art-249-compare-corridor-cost"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:18f88fa54000e35774488e4e653fe00d09df23fee91ad40e50611f194cf1d7f7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JwF++Vkvfvq72SlpvK1joDW4SLfMjzMsLz/50+7yiGQj/dpMfVIk68ArOLVVD8oZP9ggRDRgn0K9Q56JnESjbiwC7pkxgtW9Ia/s6ynuKggmWeagCz/RBdvds1htKoJJEfK9uqOlKKpRZWhduvsRDqWGvm+HyGUp1y1pYoKz5w0Wmv036aXbiG01Qxf9UqZxfxgH+ukR0dYlEhCQW2bqyBpxiKVLoTWHf4aktTJ+LLMAENrUE/wuFXlL4Jq36xoJHuMxskcm75BOO5pN+mjDtXNLfMd/UcmjOyW1DVYIK5sMmL7ZaUk7An4TWPQdeDQo4gO6O11bWFqSWoNIzm6zCA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:18f88fa54000e35774488e4e653fe00d09df23fee91ad40e50611f194cf1d7f7",
          "output": {
            "accounting_identity_delta": 0,
            "accounting_identity_ok": true,
            "amount_received_dest": 17098.72,
            "anchor_surface": "anchor.ainumbers.co/mcp -- anchor execution_hash pre-transfer to create a tamper-evident disclosure receipt for CFPB exam and error-resolution disputes (12 CFR §1005.33)",
            "destination_country": "MX",
            "destination_currency": "MXN",
            "disclosure_type": "EXACT",
            "estimate_permissible": false,
            "exchange_rate_disclosed": 17.15,
            "fees": {
              "provider_fee": 2.99,
              "taxes": 0,
              "third_party_fees": 0,
              "total_fees_usd": 2.99
            },
            "pii_note": "ZERO PII: amounts, rates, fees, taxes only. No sender, recipient, or account data enters this kernel.",
            "regulatory_basis": "12 CFR §1005.31 (Reg E subpart B, CFPB) required disclosure field set; 12 CFR §1005.32 estimate permissibility conditions",
            "required_fields_complete": true,
            "table_source": "12 CFR §1005.31 (CFPB, effective 2013, current 2024 ed.); 12 CFR §1005.32 estimate conditions",
            "table_version": "REG-E-SUBPART-B-12CFR1005.31-2024",
            "total_to_sender_usd": 1000,
            "transfer_amount_usd": 997.01
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-249-compare-corridor-cost",
      "tool_version": "1.0.0",
      "display_name": "Corridor Cost Comparator (World Bank RPW)",
      "mcp_name": "compare_corridor_cost",
      "mandate_type": "analytics_mandate",
      "wave": 42,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-249-compare-corridor-cost.html",
      "description": "Benchmarks a remittance corridor total cost (fee % + FX margin %) against the World Bank Remittance Prices Worldwide (RPW) Q1 2026 snapshot for the same origin-destination pair, the SmaRT global average (6.36%), and the SDG 10.c 3% target. Reports meets_sdg_target, vs_rpw_benchmark, cost_at_200_usd, and cost_at_500_usd. For stablecoin corridor all-in economics use model_stablecoin_corridor_economics (art-250). For Reg E disclosure arithmetic use compute_remittance_disclosure (art-248). ZERO PII: corridor codes, amounts, and rates only.",
      "input_schema_ref": "chaingraph/art-249-compare-corridor-cost.html#manifest",
      "consumes": [
        "art-248-compute-remittance-disclosure",
        "art-250-model-stablecoin-corridor-economics"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5b97702d4128add63e1efcd5e53b18eb0f0c6775b5e0a7192e52492070064bec","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BfRcNiHyPBLZCbUmWZSxdXqOVxIeKHznW2QSdgGxbR8jq6SU6/qth0oEs89tQjO4XJA1GsmU+7Qb/1SWUrp2owFmaRW1tD2DFEkDSiXDIdjXSq1aBWpGY1oqnIs5rKPMEd+kXnItnsHmQFDCIOCC5U2t+yX0C3ZTjFdtB28maQogPVcGNAOjT1gWR3rKZd4at1Taq9O9waHxYe55sJGP5hP9iqhZquR3PO9AMZGTyaO8Y0lFyJHL+f7v8j7dsqdOFenkFLoKzpSZFI0cT/JKWjSbaHSRA8dXUjFBE7Ec42gVjiai+IYvb4/jm16IplN0KNQfGoGXmfGNkZSd52y0Hw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5b97702d4128add63e1efcd5e53b18eb0f0c6775b5e0a7192e52492070064bec",
          "output": {
            "corridor": "US-MX",
            "cost_at_200_usd": 5.98,
            "cost_at_500_usd": 14.94,
            "disambiguation": "compare_corridor_cost uses World Bank RPW cross-corridor cost benchmarking (fee % + FX margin %). For Arc Protocol CPN-specific economics use model_arc_cpn_economics. For Tempo Network protocol economics use model_tempo_payment_economics. For x402 protocol settlement use model_x402_settlement. For stablecoin corridor all-in economics (on-ramp+chain+off-ramp+float) use model_stablecoin_corridor_economics.",
            "fee_pct": 2,
            "from_country": "US",
            "fx_margin_pct": 0.9884,
            "meets_sdg_target": true,
            "pii_note": "ZERO PII: amounts, rates, corridor codes only. No sender or recipient data enters this kernel.",
            "regulatory_basis": "World Bank RPW methodology (fee_pct + fx_margin_pct vs mid-market reference); SDG 10.c <=3% target (UN 2030 Agenda); SmaRT corridor average (RPW Q1 2026 global mean 6.36%)",
            "rpw_benchmark_pct": 3.88,
            "rpw_corridor_avg_200": 3.88,
            "rpw_corridor_avg_500": 2.99,
            "rpw_service_count": 22,
            "sdg_target_pct": 3,
            "send_amount": 200,
            "service_name": "SDG-3pct-exact",
            "smart_global_avg_pct": 6.36,
            "table_source": "World Bank Remittance Prices Worldwide (RPW) Database, Q1 2026 quarterly snapshot (remittanceprices.worldbank.org). SDG 10.c target: <=3% total cost by 2030 (UN Sustainable Development Goal 10, Target 10.c). SmaRT = Simple Mean of Remittance Transfers average across sampled corridors.",
            "table_version": "RPW-Q1-2026-SNAPSHOT",
            "to_country": "MX",
            "total_cost_pct": 2.9884,
            "vs_rpw_benchmark": -0.8916,
            "vs_sdg_target": -0.0116,
            "vs_smart_avg": -3.3716
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-250-model-stablecoin-corridor-economics",
      "tool_version": "1.0.0",
      "display_name": "Stablecoin Corridor Economics Model",
      "mcp_name": "model_stablecoin_corridor_economics",
      "mandate_type": "analytics_mandate",
      "wave": 42,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-250-model-stablecoin-corridor-economics.html",
      "description": "Models the all-in cost of a USDC-based remittance corridor: on-ramp fee, chain gas fee, off-ramp/local-rail fee, FX spread, and pre-funding float savings vs correspondent banking. Computes gross/net cost in bps and %, savings vs traditional MTO benchmark, and break-even send amount. Rail-agnostic: parameterises the Felix/Circle/Bitso pattern but is NOT tied to a specific protocol. Disambiguates from model_x402_settlement (x402 protocol), model_tempo_payment_economics (Tempo Network), and model_arc_cpn_economics (Arc Protocol CPN). For RPW cross-corridor benchmarking use compare_corridor_cost (art-249). ZERO PII.",
      "input_schema_ref": "chaingraph/art-250-model-stablecoin-corridor-economics.html#manifest",
      "consumes": [],
      "feeds": [
        "art-249-compare-corridor-cost"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:65998d555685be3e102ff17ae1fd898ca63aa688a69873358fa6d7a520660f2b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AzS2cgup4yjktpvumpEp7COfj2WHvgqDWzSzhi9p2G8wRxOHdagH2n7/0p5N3gdet4qePFINIPxceTgpbLo9AC8O4ukhGRQzeusOY4e3QpAwg+rFMHAmOwzbGhBMLHP/Ive7p+CepHdfgVjtpSNi/raYHhcCsOi0o+XrJt31siIclP7r9J5f0PnxaYG0qItHmZN3SYWyAS6xkXFXjTiBexWzS8w25BicHoPdTE5W05z1U47Cachh3PwmhZ+/MGWTGT1NcrZN6Nmou8+1sH60hWlNa5G88tR8c9jZDHs6fWMi+s0rz+hfJGKh3jIJlbP99t71T6ncISJ8NQxxiDMRLA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:65998d555685be3e102ff17ae1fd898ca63aa688a69873358fa6d7a520660f2b",
          "output": {
            "break_even_usd": 0.2,
            "chain_fee_usd": 0.01,
            "correspondent_cost_pct": 6,
            "correspondent_cost_usd": 60,
            "disambiguation": "model_stablecoin_corridor_economics models GENERIC USDC remittance corridor all-in cost (on-ramp+chain+off-ramp+FX+float savings) and break-even vs traditional MTO. It is rail-agnostic. For protocol-specific economics use: model_x402_settlement (x402 protocol), model_tempo_payment_economics (Tempo Network), model_arc_cpn_economics (Arc Protocol CPN). For cross-corridor cost benchmarking against World Bank RPW data use compare_corridor_cost.",
            "float_savings_usd": 0,
            "fx_markup_share_of_traditional": 3.3333,
            "fx_spread_usd": 2,
            "gross_cost_bps": 100.1,
            "gross_cost_pct": 1.001,
            "gross_stablecoin_cost_usd": 10.01,
            "meets_sdg_target": true,
            "net_cost_bps": 100.1,
            "net_cost_pct": 1.001,
            "net_stablecoin_cost_usd": 10.01,
            "off_ramp_fee_usd": 3,
            "on_ramp_fee_usd": 5,
            "pii_note": "ZERO PII: amounts, rates, fee percentages only. No sender, recipient, or account data enters this kernel.",
            "regulatory_basis": "Generic USDC corridor model; World Bank RPW Q1 2026 global average (6.36%); SDG 10.c 3% target; Felix/Circle case study benchmarks (Stripe 2024)",
            "savings_vs_traditional_pct": 4.999,
            "savings_vs_traditional_usd": 49.99,
            "sdg_target_pct": 3,
            "send_amount_usd": 1000,
            "table_source": "Felix/Circle USDC corridor case study (Stripe, 2024); World Bank RPW Q1 2026 global avg 6.36%; industry on-ramp benchmark 0.5-2%; off-ramp/local-rail benchmark 0.3-1.5%; correspondent pre-funding float benchmark 2-7% annually on float balance.",
            "table_version": "STABLECOIN-CORRIDOR-ECON-V1-2026"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-251-compute-parametric-trigger-payout",
      "tool_version": "1.0.0",
      "display_name": "Parametric Trigger Payout Calculator",
      "mcp_name": "compute_parametric_trigger_payout",
      "mandate_type": "compliance_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-251-compute-parametric-trigger-payout.html",
      "description": "Evaluates parametric insurance triggers and computes payout amounts. Supports three trigger types: threshold (binary payout at a threshold index level), tiered (step-based payout tiers), and linear_index (proportional payout between threshold and exhaustion). Produces a tamper-evident trigger receipt suitable for anchoring at anchor.ainumbers.co/mcp as a neutral dispute artifact per IAIS ICP 19. Use in parametric-trigger-adjudication chain (gated) or cat-bond-trigger-validation chain (linear). ZERO PII: index values, thresholds, and coverage amounts only.",
      "input_schema_ref": "chaingraph/art-251-compute-parametric-trigger-payout.html#manifest",
      "consumes": [],
      "feeds": [
        "art-252-validate-cat-bond-trigger-terms"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:21c850de44ea52edcd069ddb042c208ec8d8df8175a09b3fc3c9478245db8158","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A9l9QktjK8lqoaZp51WB8b8ehV4I1TIqphVCtooDIEgfWX7vv9ZImuje8NIB+LFfFxvE+p6kYfds80Nkl7fqJgVMncRaY0KX/rjYH3fMqiGDTCO2IACgPCE0ZXJHWodFEp/Q5USxO0QKr/15eO6R/I+h0wamcvRDVBJ2Xco5Nb0lLOQRfqV3GwtsJnayrirsMPMppomKcQoS0vWDsUADkRl44XKP4D2agYp6xzV25IDQ9uTPha+tyE66wdL0dtoWE3efNqeyn2nQj/rI+lssAm9fuWD7/DarjwhjLxy8Yw0Zaw29oqxJy6ST2dyw1n2d7ne7Su525NV13Dy/GKXa8Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:21c850de44ea52edcd069ddb042c208ec8d8df8175a09b3fc3c9478245db8158",
          "output": {
            "anchor_surface": "anchor.ainumbers.co/mcp -- anchor execution_hash immediately upon trigger event to create a tamper-evident dispute artifact that neither policyholder nor insurer controls (neutral adjudication record).",
            "coverage_amount": 50000,
            "index_value": 120,
            "not_legal_advice": "Not legal or actuarial advice. Trigger determinations require review by a licensed actuary and the controlling policy language.",
            "parametric_limit": 50000,
            "payout_amount": 50000,
            "pii_note": "ZERO PII: index values, thresholds, and coverage amounts only. No policyholder, event-location, or personal data enters this kernel.",
            "regulatory_basis": "ISO 11116:2023 parametric insurance trigger methodology; Swiss Re sigma 1/2024 cat bond trigger types (indemnity / industry loss / parametric / modelled); trigger receipt = neutral dispute artifact per IAIS ICP 19 claims handling principle.",
            "table_source": "ISO 11116:2023 (parametric insurance); Swiss Re sigma 1/2024 (cat bond triggers); AIR Worldwide trigger methodology guide 2023",
            "table_version": "PARAMETRIC-TRIGGER-MATH-V1.0-2025",
            "threshold_used": 100,
            "tier_matched_index": null,
            "trigger_fraction": 1,
            "trigger_hit": true,
            "trigger_receipt": {
              "coverage_amount": 50000,
              "index_value": 120,
              "max_index_used": null,
              "parametric_limit": 50000,
              "payout_amount": 50000,
              "threshold_used": 100,
              "tier_matched_index": null,
              "trigger_fraction": 1,
              "trigger_hit": true,
              "trigger_type": "threshold"
            },
            "trigger_type_used": "threshold"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-252-validate-cat-bond-trigger-terms",
      "tool_version": "1.0.0",
      "display_name": "Cat Bond Trigger Terms Validator",
      "mcp_name": "validate_cat_bond_trigger_terms",
      "mandate_type": "compliance_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-252-validate-cat-bond-trigger-terms.html",
      "description": "Validates catastrophe bond trigger term structure and computes layer arithmetic: attachment/exhaustion point ordering, pro-rata layer penetration factor, payout amount, and layer position (BELOW_ATTACHMENT / WITHIN_LAYER / ABOVE_EXHAUSTION). Cat bonds outstanding $63.9B Q1 2026 (record $25.6B issuance 2025). Validates ISDA/IAIS trigger term constraints including attachment > 0 and exhaustion > attachment. Use in parametric-trigger-adjudication chain downstream of trigger evaluation, or standalone in cat-bond-trigger-validation chain. ZERO PII.",
      "input_schema_ref": "chaingraph/art-252-validate-cat-bond-trigger-terms.html#manifest",
      "consumes": [
        "art-251-compute-parametric-trigger-payout"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2d69f187e9c32ff8b2bcd4346e912a0546f39bd91839fd9b301e67c13e36a438","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CrB5NZq0aRr/cpLT64uT/ZuRirA0XkGPnifOWRXvtoMPi+HhXBW9iqEpI6vUJtHZZsyqhWw7LgMYr/Dfji8ugwUEb2NVnc+Rngm6RaKNxrCH6/PPSDhdnLXOMpIKouWSBmpYTFSQppuTdVEYQOPXtX+PImJ7aEUCMdXcQNHQUIAtluiMWS3OJFNKhjfUmwWwxx1byPTGGfsA51DJjY8OXhTyiQUoSoOxVEpUb8T8b4En6T9dXGLWIV+RQ/da0ib+KWbDrwUXLTkc05f1nnZ75Lv/CBNxb+UKMOxfWyjfj7Yna66X81RYjA4u+6wB1nFDffcjGOM/xW3CvQPRPgtCxg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2d69f187e9c32ff8b2bcd4346e912a0546f39bd91839fd9b301e67c13e36a438",
          "output": {
            "attachment_breached": true,
            "cascade_attachment_check": null,
            "coverage_amount_used": 500000000,
            "excess_above_attachment": 250000000,
            "exhaustion_reached": false,
            "implied_coverage": 500000000,
            "issues": [],
            "layer_position": "WITHIN_LAYER",
            "layer_width": 500000000,
            "not_legal_advice": "Not legal or actuarial advice. Final payout determination requires review of the controlling bond indenture and independent loss verification.",
            "payout_amount": 250000000,
            "pii_note": "ZERO PII: layer terms and aggregate loss amounts only. No policyholder, claimant, or event-specific personal data enters this kernel.",
            "pro_rata_factor": 0.5,
            "regulatory_basis": "ISDA/IAIS cat bond trigger definitions; Swiss Re sigma cat bond trigger methodology (indemnity / industry loss index / parametric / modelled loss). Layer arithmetic per standard IAIS ICP 13 reinsurance principles.",
            "table_source": "ISDA/IAIS cat bond trigger definitions; Swiss Re sigma 1/2024; ARTEMIS.bm cat bond market data Q1 2026; NAIC catastrophe bond guidelines",
            "table_version": "CAT-BOND-TRIGGER-TERMS-V1.0-2025",
            "terms_valid": true
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-253-run-illustration-selfsupport-test",
      "tool_version": "1.0.0",
      "display_name": "Life Illustration Self-Support Test (NAIC Model 582)",
      "mcp_name": "run_illustration_selfsupport_test",
      "mandate_type": "compliance_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-253-run-illustration-selfsupport-test.html",
      "description": "Runs the NAIC Model Regulation 582 §8C self-support test (year 15 and year 20 account value positive) and §8D lapse-support prohibition check for life insurance illustrations. ASOP 24 compliant. Inputs: projected account values, premium payments, cost of insurance, expense charges, credited interest, and optional lapse rates per policy year. Outputs: self_support_pass (both year-15 and year-20), lapse_support_flag, and illustration_valid. Use in life-illustration-self-support-test linear chain. ZERO PII: projected cash flows and policy mechanics only.",
      "input_schema_ref": "chaingraph/art-253-run-illustration-selfsupport-test.html#manifest",
      "consumes": [],
      "feeds": [
        "art-254-compute-rbc-action-level"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7752a4c0f60362741de571e3a2ec25b3797b26ca9da1f2d301742e230dc2a91e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F6hyoLXi6kTLmJP4wYxN+iuZXJveZPUYjk6jtNqHCsUoZHt2HmCPxAqNl7jmDX4/jPTpJAyCLz4D12Josh/kbAQ0EaYT8UkWoXEN9/DM90jCYj9C2drHj45KQzNuZ82yHrE18IM6H0Z1YxjRj/VbIIwEy70d0ccrh8xVgW+n2GAaC5avwJmRhnc582feapzuqnwGu8wblQjC1rjj5ho3yi8wu3NuptYVigQovX+td6Ve5SjM8qPCQgS5LUqvEGjpBp4w8Xl/6rIwy8vWapy0d+G/O6qV/N1MeA5N1Lf1uyUgy3riycHNIwAsQAYXa0C/GHsb5J1r6q26P5trPL3J2Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7752a4c0f60362741de571e3a2ec25b3797b26ca9da1f2d301742e230dc2a91e",
          "output": {
            "account_value_yr15": 1500,
            "account_value_yr20": 2000,
            "cumulative_net": 1900,
            "face_amount": 100000,
            "illustration_valid": true,
            "issues": [],
            "lapse_adjusted_av_yr20": 2000,
            "lapse_support_flag": false,
            "not_legal_advice": "Not legal or actuarial advice. Final illustration certification requires review and sign-off by a qualified actuary per ASOP 24 and applicable state regulations.",
            "pii_note": "ZERO PII: projected cash flows and policy mechanics only. No policyholder name, age, health classification, or personal data enters this kernel.",
            "policy_years_provided": 20,
            "regulatory_basis": "NAIC Model Regulation 582 §8C (self-support test at year 15 and year 20) and §8D (lapse-support prohibition); ASOP 24 (Actuarial Standard of Practice for Illustrations). Applicable to life insurance illustration requirements in all US states adopting Model 582.",
            "self_support_pass": true,
            "self_support_yr15_pass": true,
            "self_support_yr20_pass": true,
            "table_source": "NAIC Model Regulation 582 §8C Self-Support Test; §8D Lapse-Support Test; ASOP 24 (2014); NAIC Life Insurance Illustrations Model Regulation (2001 revision)",
            "table_version": "NAIC-MODEL-582-ILLUSTRATION-TESTS-V1.0-2025",
            "total_coi": 1000,
            "total_expenses": 400,
            "total_interest": 900,
            "total_premiums": 2400
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-254-compute-rbc-action-level",
      "tool_version": "1.0.0",
      "display_name": "NAIC RBC Action Level Calculator",
      "mcp_name": "compute_rbc_action_level",
      "mandate_type": "compliance_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-254-compute-rbc-action-level.html",
      "description": "Computes NAIC Risk-Based Capital (RBC) action level classification for US P&C, life, and health insurers. RBC ratio = TAC / ACL * 100%. Action levels: NO_ACTION (>=200%), COMPANY_ACTION (150-200%), REGULATORY_ACTION (100-150%), AUTHORIZED_CONTROL (70-100%), MANDATORY_CONTROL (<70%). Also runs the NAIC trend test (10+ ppt decline two consecutive years with ratio <250%) when prior-year data supplied. Applies NAIC RBC Model Laws #312 (life), #315 (P&C), #315H (health). Use in insurer-rbc-action-level chain (gated on NO_ACTION). ZERO PII: capital totals only.",
      "input_schema_ref": "chaingraph/art-254-compute-rbc-action-level.html#manifest",
      "consumes": [
        "art-253-run-illustration-selfsupport-test"
      ],
      "feeds": [
        "art-257-calculate-claims-stp-economics"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a55fcead8d91066d4678479d0792b6faacc67a98b724625025533952be8d0ec3","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EFw4KbsmUwc0LmW1T+GGa0R8eehb8PYL3mH5116ulecjXVPow9JC8qQmlQksW6DY05qM97JxMnDeW21gLPLrgSKNCmveZ8x9u6ZDhy01ExCBLUuWA04bky4iipe0xpcXGFwu6oKHZUJ4rVyXNz8bbs4q6zyrzvkwDp7jCRljqJcCmt/Tl5LZS6m9oZYeGT6vK9GHJnJzWl+O06oQfmiXYBjdnTCg83RtmxdKvYBb4STNwtRZBCq+lunlGbv+7wZCExSpvkQzO399O6zzz8i5GZIC1xJ3Aphui8UTBsEDtsYnQUDBNdi9xL0xX+iWUpgCGyH5VpajgaPrPr4n5tp0lg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a55fcead8d91066d4678479d0792b6faacc67a98b724625025533952be8d0ec3",
          "output": {
            "action_level_code": "NO_ACTION",
            "action_level_description": "Above 200% ACL — no NAIC regulatory action required.",
            "action_level_label": "No Action Level",
            "action_levels_reference": [
              {
                "code": "MANDATORY_CONTROL",
                "description": "Regulatory takeover authority. State must take action to protect policyholders.",
                "label": "Mandatory Control Level",
                "rbc_pct_acl": 70
              },
              {
                "code": "AUTHORIZED_CONTROL",
                "description": "State authorized but not required to take control.",
                "label": "Authorized Control Level",
                "rbc_pct_acl": 100
              },
              {
                "code": "REGULATORY_ACTION",
                "description": "Detailed corrective action plan required; state can examine/require action.",
                "label": "Regulatory Action Level",
                "rbc_pct_acl": 150
              },
              {
                "code": "COMPANY_ACTION",
                "description": "Company must file RBC plan with comprehensive corrective strategy.",
                "label": "Company Action Level",
                "rbc_pct_acl": 200
              },
              {
                "code": "NO_ACTION",
                "description": "Above 200% ACL — no regulatory action required.",
                "label": "No Action Level",
                "rbc_pct_acl": null
              }
            ],
            "authorized_control_level": 100000000,
            "headroom_to_next_level_pct": 100,
            "insurer_type": "pc",
            "not_legal_advice": "Not legal or actuarial advice. RBC calculations require review by a qualified actuary and the applicable state insurance department. NAIC RBC Ratio is not the sole indicator of insurer solvency.",
            "pii_note": "ZERO PII: capital totals and RBC formula components only. No policyholder, premium, or personal data enters this kernel.",
            "prior_year_rbc_ratio": null,
            "rbc_ratio_pct": 300,
            "regulatory_basis": "NAIC RBC Model Laws #312 (life), #315 (P&C), #315H (health). Action levels: Company Action (200% ACL), Regulatory Action (150%), Authorized Control (100%), Mandatory Control (70%). TAC/ACL calculation follows the applicable NAIC RBC formula for the insurer type.",
            "table_source": "NAIC RBC Instructions (2024 edition): Life RBC (LR023), P&C RBC (Exhibit 1), Health RBC (HR-1). NAIC Model Laws: Life Insurance RBC Model Law #312, P&C RBC Model Law #315, Health RBC Model Law #315H.",
            "table_version": "NAIC-RBC-ACTION-LEVELS-2024",
            "threshold_breached_pct": null,
            "total_adjusted_capital": 300000000,
            "trend_test_applicable": false,
            "trend_test_triggered": false,
            "two_year_rbc_ratio": null
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-255-compute-lcm-rate-derivation",
      "tool_version": "1.0.0",
      "display_name": "LCM Rate Derivation Calculator",
      "mcp_name": "compute_lcm_rate_derivation",
      "mandate_type": "analytics_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-255-compute-lcm-rate-derivation.html",
      "description": "Computes the Loss Cost Multiplier (LCM) and indicated insurance rate from user-supplied loss costs and expense/profit loadings. LCM = 1 / (1 - LAE% - fixed_exp% - variable_exp% - profit%). Indicated rate = loss_cost * LCM. Supports credibility-weighted blending of user's own loss costs with a complement. PROPRIETARY-DATA: this kernel performs LCM decomposition arithmetic ONLY on user-supplied loss costs -- it NEVER embeds, redistributes, or references ISO/Verisk advisory loss cost rate pages (Verisk-proprietary). ASOP 25 compliant. ZERO PII: aggregate rate components only.",
      "input_schema_ref": "chaingraph/art-255-compute-lcm-rate-derivation.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d206ed051fd45134f40a3c4a1c1d7ff696243aa84d005225fe8c3d4e9084dca4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Gb6gAKeW8WpwszYpZS3tqq7mYar8+c7XqlzxJK1THmcj80uElhfcV095hqnazFERb6zaX+Y4rkjNeqz09STx+wqUpkej+azBHefXZfsxqnr+1+sFEhpDjg1rzZ1RHbElGE4IKvYD62QDAkCu+mkXry2v9SdiG9P1uOayuWUOVu0N0iV948BwbtaK+XsLgYKbEWjT+w63PjozXYDqdf+c9SyW456T98xtNXXxT12wDR4qcusYSB69WL5byC/HyyFpHMRLnIfq8LYsR1AXAssVw+HSNku9fS6/jjTOoyboXUYcX/JtK0YWz46AzriBSRPMqXBk/hdLM40mQyCrrAVHIg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d206ed051fd45134f40a3c4a1c1d7ff696243aa84d005225fe8c3d4e9084dca4",
          "output": {
            "complement_loss_cost": 120,
            "credibility_weighted_loss_cost": 120,
            "credibility_z": 1,
            "current_rate": null,
            "denominator_valid": true,
            "fixed_expense_pct": 0.08,
            "indicated_rate": 184.62,
            "issues": [],
            "lae_pct": 0.12,
            "lcm": 1.5385,
            "lcm_denominator": 0.65,
            "not_legal_advice": "Not legal or actuarial advice. Rate filings require certification by a qualified actuary and approval by the applicable state insurance department.",
            "pii_note": "ZERO PII: aggregate rate components only. No policyholder, premium, or personal data enters this kernel.",
            "profit_pct": 0.05,
            "proprietary_data_notice": "USER-SUPPLIED LOSS COSTS ONLY. This kernel performs LCM decomposition arithmetic exclusively. It does not embed, store, or redistribute ISO/Verisk advisory loss costs or any proprietary rate-bureau filing. Ensure your pure_loss_cost input is approved and non-proprietary.",
            "pure_loss_cost": 120,
            "pure_loss_cost_loaded": 184.62,
            "rate_change_direction": null,
            "rate_change_pct": null,
            "regulatory_basis": "ASOP 25 (Premium Calculations); state rate filing regulations (SERFF). LCM formula: rate = loss_cost × LCM; LCM = 1 / (1 - LAE% - fixed_exp% - variable_exp% - profit%). Rate adequacy review required by qualified actuary.",
            "table_source": "Actuarial Standard of Practice No. 25 (Premium Calculations); Willis Towers Watson Rate Adequacy methodology; user-supplied loss costs only — no ISO/Verisk advisory rates embedded.",
            "table_version": "LCM-DECOMPOSITION-MATH-V1.0-2025",
            "total_loading": 0.35,
            "variable_exp_pct": 0.1
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-256-validate-openids-homeowners-record",
      "tool_version": "1.0.0",
      "display_name": "openIDS Homeowners Record Validator",
      "mcp_name": "validate_openids_homeowners_record",
      "mandate_type": "compliance_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-256-validate-openids-homeowners-record.html",
      "description": "Validates homeowners insurance data records against the openIDS Homeowners Data Standard v1.0 (AAIS / Linux Foundation, November 2025) -- the first free open (Apache-2.0) insurance data standard. Checks required sections (policy, insured_location, coverage, premium), required fields per section, policy type (HO-1..HO-8, DP-1..DP-3), date ordering, payment plan, construction type, coverage limit positivity, and PII field detection. NOT an ACORD validator -- ACORD XML/AL3 is membership-licensed and is not referenced or reproduced here. ZERO PII: structural/field validation only.",
      "input_schema_ref": "chaingraph/art-256-validate-openids-homeowners-record.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1b6e89be4bc17a5622e6bd5153cc9520c91514b8c0ddd89759d30ffae9bd3c5e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GgD2vXK0y/O4rI2hjGF998vK6Wrq/ZUhPz9GPbfl0ecfVUAIwOwurB3HpmfvDrBNS9H0jBBTyf6lg67+NW+cgwYDSAKw6Qazg9d3L0DjNzs6l/IgjmG/UTE3a6ExA2FtAI3pgEN2JRzofF5f+1/NOXaOiw1EXmlq4LONK2OxX2oVsKogsVP9liFitXOXolYSSEyRkJioF2rZlRBQztawbi7wtoSepTWxaoI7Ygb4d+ZIkFBTxXF+1kKRP9ovo5/VHsbSV/ppcfQMcMpZ/mrwv2a0kJHIcgkWYiDuEi+MMrwpKOLZC2JcXM0a1UBFFDDes6/O4UY4U3Kc3F6UyiSogQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1b6e89be4bc17a5622e6bd5153cc9520c91514b8c0ddd89759d30ffae9bd3c5e",
          "output": {
            "error_count": 0,
            "errors": [],
            "not_legal_advice": "Not legal or insurance regulatory advice. Insurance record format compliance must be verified by licensed insurance professionals and applicable state DOI requirements.",
            "pii_fields_found": [],
            "pii_note": "ZERO PII: structural/field validation only. Record content is inspected for field presence and type; personal data is flagged as a warning, not stored or logged.",
            "record_valid": true,
            "regulatory_basis": "openIDS Homeowners Data Standard v1.0 (AAIS / Linux Foundation, November 2025). First open (Apache-2.0) homeowners insurance data standard. NOT an ACORD validator -- ACORD XML/AL3 is membership-licensed and not reproduced here.",
            "section_results": {
              "coverage": {
                "field_errors": [],
                "present": true
              },
              "insured_location": {
                "field_errors": [],
                "present": true
              },
              "policy": {
                "field_errors": [],
                "present": true
              },
              "premium": {
                "field_errors": [],
                "present": true
              }
            },
            "sections_present": 4,
            "sections_required": 4,
            "standard_version": "openIDS-Homeowners-v1.0",
            "table_source": "openIDS Homeowners Data Standard v1.0, AAIS / Linux Foundation, November 2025. Available at openids.org. Apache-2.0 licensed.",
            "warning_count": 0,
            "warnings": []
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-257-calculate-claims-stp-economics",
      "tool_version": "1.0.0",
      "display_name": "Claims STP Economics Calculator",
      "mcp_name": "calculate_claims_stp_economics",
      "mandate_type": "analytics_mandate",
      "wave": 43,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-257-calculate-claims-stp-economics.html",
      "description": "Computes the financial business case for insurance claims Straight-Through Processing (STP) automation. Models handling cost reduction from current to target STP rates, leakage delta (change in claim payment leakage from automated vs manual handling), net annual benefit, NPV over a configurable projection horizon, IRR, and per-claim cost reduction. Covers industry benchmarks from McKinsey Insurance 2024, Accenture Claims Transformation 2025, and Majesco Claims Technology Survey 2024. Use in insurer-rbc-action-level chain (downstream when capital below 200% ACL triggers corrective action). ZERO PII: aggregate portfolio metrics only.",
      "input_schema_ref": "chaingraph/art-257-calculate-claims-stp-economics.html#manifest",
      "consumes": [
        "art-254-compute-rbc-action-level"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:705011effaaf8ceec89ff5d39d51b1a8bf478dbd66ded2dfe68639036e90ef20","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AZXaC+g7iIaPbrbGeXEyjTUollqzQRpYkLbzqf2dgfoWKUqvxZS6p/Ux36RLs5uKhe+aKaXE1gJZ785PvX8D5gf/IkLVuYvyDdonbhGk80WxIiQRMVGh3NGvEDSGjSHOJqiotPvJaYZnMVZ7exGYLGR4Wq3sdiU88GX1bcAJaagTV6eZQbsVwiqQkwa49v4kPJ39APdmSRHRFEWFixNRQiFnhqWvTGiZSCME8CdNHPGz1C2m3jN44kJQkOAwappRAajvhhlP2Msmz5mnKX+Odx10JocXFXBSAs1K3ZbB5V8HWzrD9KmCishVdG3AkQMdz5f5+YuTqTgnU6EYAQCnxA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:705011effaaf8ceec89ff5d39d51b1a8bf478dbd66ded2dfe68639036e90ef20",
          "output": {
            "annual_cashflows": [
              {
                "cashflow": 5425000,
                "discounted_cashflow": 4931818.18,
                "year": 1
              },
              {
                "cashflow": 5425000,
                "discounted_cashflow": 4483471.07,
                "year": 2
              },
              {
                "cashflow": 5425000,
                "discounted_cashflow": 4075882.79,
                "year": 3
              },
              {
                "cashflow": 5425000,
                "discounted_cashflow": 3705348,
                "year": 4
              },
              {
                "cashflow": 5425000,
                "discounted_cashflow": 3368498.18,
                "year": 5
              }
            ],
            "annual_handling_savings": 5425000,
            "cost_reduction_pct": 44.11,
            "cost_reduction_per_claim": 54.25,
            "current_annual_cost": 12300000,
            "current_avg_cost_per_claim": 123,
            "current_manual_claims": 60000,
            "current_stp_claims": 40000,
            "discount_rate_pct": 10,
            "irr_pct": 105.54,
            "leakage_increase": 0,
            "leakage_reduction": 0,
            "net_annual_benefit": 5425000,
            "net_leakage_impact": 0,
            "not_legal_advice": "Not legal, actuarial, or investment advice. STP investment decisions require enterprise business case review and actuarial sign-off on leakage assumptions.",
            "npv": 15565018.22,
            "payback_years": 0.92,
            "pii_note": "ZERO PII: aggregate portfolio metrics and cost inputs only. No claimant, policyholder, or claim-event personal data enters this kernel.",
            "projection_years": 5,
            "regulatory_basis": "NAIC Claims Process Innovation Working Group (2023); IAIS ComFrame (proportionality in claims governance). STP automation economics benchmarks per McKinsey Insurance 2024 and Majesco Claims Technology Survey 2024.",
            "stp_rate_improvement_ppt": 35,
            "table_source": "McKinsey Insurance 2024 (claims automation ROI benchmarks); Accenture Claims Transformation 2025; Majesco Claims Technology Survey 2024; NAIC Claims Process Innovation Working Group 2023.",
            "table_version": "CLAIMS-STP-ECONOMICS-V1.0-2025",
            "target_annual_cost": 6875000,
            "target_avg_cost_per_claim": 68.75,
            "target_manual_claims": 25000,
            "target_stp_claims": 75000
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-258-parse-camt053-reconciliation",
      "tool_version": "1.0.0",
      "display_name": "ISO 20022 camt.053 Statement Reconciliation",
      "mcp_name": "parse_camt053_reconciliation",
      "mandate_type": "analytics_mandate",
      "wave": 44,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-258-parse-camt053-reconciliation.html",
      "description": "Classifies ISO 20022 camt.053 BkTxCd entries by Domain, Family, and SubFamily per the CGI-MP camt.053 Usage Guide v5.0 and the ISO 20022 ExternalBankTransactionCode1Code registry 2023-03. Validates the OPBD + sum(movements) = CLBD balance equation. Scores structured-remittance match rate. Emits reconciliation_status (CLEAN / PARTIAL_MATCH / LOW_MATCH_RATE / FAILED_BALANCE), match_rate_pct, and domain_buckets[]. Used in corporate TMS straight-through reconciliation. ZERO PII: no account-holder names or identifiers enter this kernel.",
      "input_schema_ref": "chaingraph/art-258-parse-camt053-reconciliation.html#manifest",
      "consumes": [],
      "feeds": [
        "art-263-score-cash-forecast-accuracy"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:483a887df68aeec8656fdaced42c4550167da3ee49bfb2273f2076c6fcaf1dd4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LasJ05u7c7s43H65EUdHjVTXcv6OXPDLGWLIIqLY1qslGNn48Q8VeD4TVl9xAlfdP0S/VeuksGbC/xT5JrSnohfIm9xCeLedoqyqJkGGMkC1+uIpRlToYAmXvSue1wOoGeMQiS2Zjdw/Rtto+DaPT7dadpI4HFztDlJZTCohXh8t8ChGZ7g3LLWgq4rsQk9FLMIGRiuiraa04XlL+z6KKi3Ox5D8NTp1x+tkV3CNzwP62g/a7lEYDT6FJBeMfIY3I5yxfYC9Qe0rUe9lwIi4Q19PB/Gu6+5KIaC4OmN45LgkCDePHFHuBMu8AQ4KXdmkHDk4N9SB+V1XDetg7PlQuw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:483a887df68aeec8656fdaced42c4550167da3ee49bfb2273f2076c6fcaf1dd4",
          "output": {
            "balance_equation_passes": true,
            "bucket_amounts": {
              "CREDIT_ISSUED": 1500,
              "CREDIT_RECEIVED": 2000
            },
            "calculated_closing": 10500,
            "closing_balance": 10500,
            "credit_sum": 2000,
            "day_count_convention": "ACT/360",
            "debit_sum": 1500,
            "match_rate_pct": 100,
            "not_legal_advice": "Not accounting, tax, or legal advice. Reconciliation output requires review by qualified finance staff before use in financial statements.",
            "opening_balance": 10000,
            "pii_note": "ZERO PII: structural statement fields, amounts, and transaction codes only. No account holder, beneficiary, or personal data enters this kernel.",
            "reconciliation_status": "CLEAN",
            "regulatory_basis": "ISO 20022 camt.053 BkTxCd Domain/Family/SubFamily classification per ExternalBankTransactionCode1Code registry 2023-03; balance equation OPBD + Σ movements = CLBD per CGI-MP camt.053 Usage Guide v5.0. Use for automated corporate TMS reconciliation. NOT for reconcile_mpp_subscription (MPP settlement) or reconcile_emir_pairing (EMIR trade reports).",
            "structured_count": 2,
            "table_source": "ISO 20022 ExternalBankTransactionCode1Code registry 2023-03 release; CGI-MP camt.053 Usage Guide v5.0 2023",
            "table_version": "ISO20022-BKTXCD-2023-03",
            "total_transactions": 2,
            "tx_counts_by_bucket": {
              "CREDIT_ISSUED": 1,
              "CREDIT_RECEIVED": 1
            },
            "unstructured_count": 0,
            "variance": 0
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-259-compute-multilateral-netting",
      "tool_version": "1.0.0",
      "display_name": "Multilateral Cash Netting",
      "mcp_name": "compute_multilateral_netting",
      "mandate_type": "analytics_mandate",
      "wave": 44,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-259-compute-multilateral-netting.html",
      "description": "Computes N-entity corporate cash netting: gross inter-company positions to net positions to minimum settlement legs using the BIS CPMI greedy matching algorithm (Net Settlement Framework 2012). Reports wire-count savings and netting_efficiency_pct. Corporate cash netting only -- NOT estimate_ficc_margin_netting (FICC US-Treasury clearing). Netting statement suitable for anchor_batch Merkle-leaf receipts. ZERO PII: aggregate entity balances only, no account-holder identifiers.",
      "input_schema_ref": "chaingraph/art-259-compute-multilateral-netting.html#manifest",
      "consumes": [],
      "feeds": [
        "art-260-allocate-ihb-interest"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b7089aa25886b5b582762b25cc7ac53e5df80ad74303d473ee1f0a86788e6b9d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CuSssKMmhGnqupsRwH6u0Ymx2dsIP/XKQlv2aP1trDIcx1lPvmRQsxseq2EbwKeuw3BfH2A3h4HBxKx16AL5AQHjpCcQMaJbQb/Rmk8fkpKU9TdkBKgQH6ssU1/gayQAF5Owx/40KbACrA+U72WbsaDnWjZjd+54D1DrXQn+KYIe3fHub1N6jGntA0cJgwwBC4HefV+7Yp8ZZeajDm4j8B9Y3WQzG9aLL3FKdZUsLuhKDS6aaA5OVpwvzmVG0UYOI8A0897X3sf8B5hav+EW38kQ5XAZZhfCbtfuaXpnL6MuhQVkc+H/RS1nTS0proVdFdGDE3oAH/yeWoM+xfAhSA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b7089aa25886b5b582762b25cc7ac53e5df80ad74303d473ee1f0a86788e6b9d",
          "output": {
            "anchor_surface": "anchor.ainumbers.co/mcp -- use anchor_batch to anchor the netting statement as a Merkle tree (one leaf per entity). Each entity receives an individual inclusion proof of the same net settlement cycle.",
            "base_currency": "USD",
            "entity_count": 3,
            "entity_net_positions": [
              {
                "currency": "USD",
                "entity_id": "ENTITY_A",
                "entity_name": "Parent Co",
                "net_amount": -400,
                "role": "PAYER"
              },
              {
                "currency": "USD",
                "entity_id": "ENTITY_B",
                "entity_name": "Sub US",
                "net_amount": 200,
                "role": "RECEIVER"
              },
              {
                "currency": "USD",
                "entity_id": "ENTITY_C",
                "entity_name": "Sub EU",
                "net_amount": 200,
                "role": "RECEIVER"
              }
            ],
            "gross_count": 3,
            "gross_volume": 2400,
            "net_count": 2,
            "net_volume": 400,
            "netting_efficiency_pct": 83.33,
            "not_legal_advice": "Not legal or accounting advice. Netting arrangements must be validated under applicable netting law (e.g. ISDA master netting agreement, national netting legislation).",
            "pii_note": "ZERO PII: entity IDs, currency codes, and amounts only. No account holder, beneficial owner, or personal data enters this kernel.",
            "regulatory_basis": "Multilateral netting per SWIFT gpi multilateral netting guide; BIS CPMI net settlement framework (2012, cpmi96). NOT estimate_ficc_margin_netting (FICC clearing margin netting). This node computes corporate CASH netting for TMS / in-house-bank settlement cycles. Netting statement suitable for anchor_batch Merkle-leaf receipts.",
            "settlement_legs": [
              {
                "amount": 200,
                "currency": "USD",
                "from_entity": "ENTITY_A",
                "to_entity": "ENTITY_B"
              },
              {
                "amount": 200,
                "currency": "USD",
                "from_entity": "ENTITY_A",
                "to_entity": "ENTITY_C"
              }
            ],
            "table_source": "SWIFT gpi multilateral netting guide; ISO 20022 pacs.010 Financial Institution Credit Transfer; BIS CPMI net settlement framework 2012",
            "table_version": "MULTILATERAL-NETTING-MATH-V1.0-2025",
            "wire_count_savings": 1,
            "wire_count_savings_pct": 33.33
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
  "tool_id": "art-260-allocate-ihb-interest",
  "tool_version": "1.0.0",
  "display_name": "IHB Interest Allocation",
  "mcp_name": "allocate_ihb_interest",
  "mandate_type": "analytics_mandate",
  "wave": 44,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-260-allocate-ihb-interest.html",
  "description": "Allocates overnight in-house-bank (IHB) interest across notional pool or ZBA sweep members. OECD Transfer Pricing Guidelines 2022 Chapter X arm's-length rate. Supports ACT/360, ACT/365, and 30/360 day-count conventions. Per-member withholding tax deduction. Returns per-member gross_interest, withholding_amount, net_interest, and total_interest_allocated. ZERO PII: member IDs are entity references only, no personal account-holder data.",
  "input_schema_ref": "chaingraph/art-260-allocate-ihb-interest.html#manifest",
  "consumes": [
    "art-259-compute-multilateral-netting",
    "art-262-validate-ebam-acmt-flow"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:6e9a9c6e57168ff88d9a4933856fe6f04ecc88942a01e7937c076d1e80235b76",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-05"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GTp6qxHd+RUyLgUqrGdFL3RwR2jYrz6VYOS3fX15NJcgKdnhR/oZcvbQBTl2icVHG5CLlaCY5bwnWjep8Lec4A8NwuTvqkSgkHXbqNNjKkUTWCrs8YjJRHMbXuGlVNnvBRNBV7dD7XNsWbiQONTb6zMcP4UQB/iwNmocafpo4wQszZK7EGJ47U5DEl9jos/MyOApCQXo7Dd87fqVo0910htSatvZhRaAepp24nbhlcRUU5S0IK+lkd2WjG+bfw7nHD2mG3ebnSYEAK8QlUsRqrRgK0w1aHlg6sdhj0NJjGwb8k55z7l2D6pFiyBvbuYRUEZ5WLdkNkzZUARRsypvIw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:6e9a9c6e57168ff88d9a4933856fe6f04ecc88942a01e7937c076d1e80235b76",
      "output": {
        "allocations": [
          {
            "allocation_basis": "PRO_RATA_NOTIONAL",
            "balance": 500000,
            "entity_id": "PARENT_CO",
            "gross_interest": 1250,
            "net_interest": 1250,
            "withholding_amount": 0,
            "withholding_rate": 0
          },
          {
            "allocation_basis": "PRO_RATA_NOTIONAL",
            "balance": -200000,
            "entity_id": "SUB_A",
            "gross_interest": 0,
            "net_interest": 0,
            "withholding_amount": 0,
            "withholding_rate": 0
          }
        ],
        "arm_length_rate": 0.05,
        "base_currency": "USD",
        "day_count_convention": "ACT/360",
        "day_count_fraction": 0.083333,
        "days": 30,
        "entity_count": 2,
        "net_interest_payable": 1250,
        "not_legal_advice": "Not tax, legal, or accounting advice. IHB structures require review by qualified transfer-pricing advisors and local tax counsel.",
        "oecd_tp_compliant": true,
        "pii_note": "ZERO PII: entity IDs, aggregate balances, rates, and period parameters only. No account holder, ultimate beneficiary, or personal data enters this kernel.",
        "pool_net_balance": 300000,
        "pool_type": "notional",
        "regulatory_basis": "Interest allocation per OECD TP Guidelines 2022 Ch.X §C (cash pooling, arm's-length principle); pool leader earns spread between lending/borrowing rates; arm_length_rate should reflect comparable uncontrolled transactions. Day-count per ISDA Definitions 2006 §4.16; ACT/360 default per euro money-market convention (the Eurosystem applies the day-count convention actual/360, per the ECB monetary policy glossary). Withholding tax per member jurisdiction. ZERO PII.",
        "table_source": "OECD Transfer Pricing Guidelines 2022 Ch.I (arm's-length standard) + Ch.X §C (intra-group financial transactions, cash pooling); OECD BEPS Action 4 (interest deductibility); ACT/360, ACT/365 and 30/360 day-count conventions per ISDA Definitions 2006 §4.16",
        "table_version": "OECD-TP-IHB-INTEREST-ALLOC-2022",
        "total_interest_allocated": 1250
      }
    }
  },
  "compute_proof_ready": "ready"
},
    {
      "tool_id": "art-261-test-hedge-effectiveness",
      "tool_version": "1.0.0",
      "display_name": "Hedge Effectiveness Test",
      "mcp_name": "test_hedge_effectiveness",
      "mandate_type": "compliance_mandate",
      "wave": 44,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-261-test-hedge-effectiveness.html",
      "description": "ASC 815-20-35 retrospective hedge effectiveness test. Computes dollar-offset ratio (fair-value change of hedging instrument / hedged item, must be 80-125%) and OLS R-squared regression (must be >=0.8) using pure deterministic arithmetic -- no Math.sqrt/log/pow transcendentals. RFC 3161 anchor surface for timestamped hedge designation evidence. Emits is_effective (bool), offset_ratio_pct, r_squared, and compliance_flags. ZERO PII: price series data only.",
      "input_schema_ref": "chaingraph/art-261-test-hedge-effectiveness.html#manifest",
      "consumes": [],
      "feeds": [
        "art-263-score-cash-forecast-accuracy"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2240e320a2d2880ca48fbe570ff159401593baa97abc367db0c558dc06cca5cd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KZJrWX/CipugdVS6zvPudhPl2C3oUWOQff8qH/Q7I14p+I11u5/uA7+g6WO5GeAxQgmKkM7n/nn2UiR2bdfBMhgJ80vqJxj9A9sxRY0HXh23FpPgTKIACjCSR9kCbgZKA0lUm+XHVvjbq3hlAgUTHRJqUhBzQX9+hWR/1KGgi6IA6ORPhthks/f+3cAteQdTGSmbHP4jwwVqc5xPgN/6vQT80nEO2/u6BG+QyUP/RE4jyxhTW/cbXwqZD0SWgZuLIBRXgMghdozsOkB2kZB64vaLQiZUdTYM0/g2Xq92818nE090PG6RePYcIH8lW2bqMTao2c/7VlFSfjArs/YHCQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2240e320a2d2880ca48fbe570ff159401593baa97abc367db0c558dc06cca5cd",
          "output": {
            "anchor_surface": "anchor.ainumbers.co/mcp -- anchor the execution_hash at designation date to create RFC 3161 contemporaneous evidence that the hedge effectiveness test ran at designation, not backfilled (FASB ASC 815 anti-backdating rationale).",
            "asc815_80_125_band": "80%-125% (ASC 815-20-35)",
            "cumulative_hedged_change": 300,
            "cumulative_hedging_change": -290,
            "dollar_offset_effective": true,
            "dollar_offset_ratio": -0.9667,
            "effectiveness_reason": "Both dollar-offset (80-125%) and OLS regression (beta approx -1, R-squared >= 0.80) pass.",
            "effectiveness_standard": "asc815",
            "hedge_ratio": 1,
            "ifrs9_hedge_ratio_passes": true,
            "is_effective": true,
            "method_applied": "both",
            "not_legal_advice": "Not accounting or legal advice. Hedge effectiveness assessments must be reviewed by qualified accounting professionals and auditors before use in hedge accounting documentation.",
            "observation_count": 5,
            "ols_alpha": 0.16418,
            "ols_beta": -0.969403,
            "pii_note": "ZERO PII: fair-value or cash-flow changes, aggregate statistics only. No counterparty, notional terms, or personal data enters this kernel.",
            "r_squared": 0.9999,
            "regression_effective": true,
            "regulatory_basis": "ASC 815-20-35: dollar-offset 80-125% OR regression (beta approx -1, R-squared >= 0.80) for highly effective designation; FASB ASU 2017-12 simplification; IFRS 9.6.4.1: economic relationship + credit risk non-dominant + hedge ratio. ZERO PII: changes arrays and aggregate statistics only.",
            "table_source": "ASC 815-20-35 (hedge accounting, dollar-offset + regression); FASB ASU 2017-12; IFRS 9.6.4.1 (effectiveness requirements); IAS 39 AG105-AG113",
            "table_version": "ASC815-HEDGE-EFFECTIVENESS-V2023"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-262-validate-ebam-acmt-flow",
      "tool_version": "1.0.0",
      "display_name": "eBAM Account Message Flow Validation",
      "mcp_name": "validate_ebam_acmt_flow",
      "mandate_type": "compliance_mandate",
      "wave": 44,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-262-validate-ebam-acmt-flow.html",
      "description": "Validates the CGI-MP eBAM 2023 account message state machine across acmt.007 (opening request), acmt.010 (opening confirmation), acmt.011 (closing request), acmt.017 (modification request), and acmt.019 (modification confirmation) message types. Detects orphan messages (confirmation without matching request). Determines final acmt_state (OPENING_CONFIRMED / CLOSURE_CONFIRMED / MODIFICATION_CONFIRMED / PENDING / INVALID). ZERO PII: account_reference_id is a business identifier, not personal data.",
      "input_schema_ref": "chaingraph/art-262-validate-ebam-acmt-flow.html#manifest",
      "consumes": [],
      "feeds": [
        "art-260-allocate-ihb-interest"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4c2c59094077b7f535e7fc1557867c48c163b79d2f4ddf7a001b0d15daf4b1e5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Dp4WPKRSgXMkGGj4GayPdQ/WYU37Lz2pQ+AaQzxsXIgSFu1w7nQaIp37Iph7qPLQowdSnd6TSyBVauYER0QZGi7Y5RWqYEt/nNoJQZeQ08l2BkTiVspgKgsNFRvQn/rWFNK6ezWEzMDG8oIqu6NX8TRJEGiLQipZA9iYwnBWP1EfaJUjg3lMBe6PSwqv4rGcxkarn6ZVYHFaap9SGroi1ijJdsq8pRJH/bfp8R+NS45F2SzGDehSiUUfwBnQt6wOE3XiweYwBZfK9oH4tToFwny4r46aBrtbLu7fbQOm4OwaTiE9exhljaFmBfR4sTXLcOMHhgOvy81BTclb1vcy8A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4c2c59094077b7f535e7fc1557867c48c163b79d2f4ddf7a001b0d15daf4b1e5",
          "output": {
            "ack_count": 1,
            "acmt_state": "OPENING_CONFIRMED",
            "error_count": 0,
            "is_valid": true,
            "message_sequence": [
              {
                "account_id": "ACC-ALPHA-001",
                "expects_ack": true,
                "label": "AccountOpeningRequest",
                "msg_id": "MSG-001",
                "msg_type": "acmt.007",
                "role": "REQUEST",
                "seq": 1,
                "valid": true
              },
              {
                "account_id": "ACC-ALPHA-001",
                "label": "AccountRequestAcknowledgement",
                "msg_id": "MSG-002",
                "msg_type": "acmt.010",
                "ref_message_id": "MSG-001",
                "resolves": "MSG-001",
                "role": "ACK",
                "seq": 2,
                "valid": true
              }
            ],
            "not_legal_advice": "Not legal or compliance advice. eBAM flow validation requires review by qualified treasury operations staff and the account servicer.",
            "orphan_count": 0,
            "orphan_requests": [],
            "pii_note": "ZERO PII: message type codes, sequence numbers, account identifiers (synthetic/structural), and state machine fields only. No account holder, signatory, or personal data enters this kernel.",
            "regulatory_basis": "CGI-MP eBAM Usage Guide 2023: acmt.007 AccountOpeningRequest / acmt.010 AccountRequestAcknowledgement / acmt.011 AccountModificationRequest / acmt.017 AccountClosureRequest / acmt.019 AccountReport state-machine. Each REQUEST must be followed by an ACK (acmt.010); REPORT (acmt.019) is permitted at any point. Gated chain routes on /acmt_state.",
            "report_count": 0,
            "request_count": 1,
            "table_source": "CGI-MP eBAM Usage Guide 2023 v1.0; ISO 20022 acmt message catalogue (acmt.007.001.06 / acmt.010.001.04 / acmt.011.001.07 / acmt.017.001.05 / acmt.019.001.07); SWIFT eBAM SLA guidelines 2023",
            "table_version": "CGI-MP-EBAM-2023",
            "total_messages": 2,
            "validation_errors": [],
            "validation_warnings": [],
            "warning_count": 0
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-263-score-cash-forecast-accuracy",
      "tool_version": "1.0.0",
      "display_name": "Cash Forecast Accuracy Scoring",
      "mcp_name": "score_cash_forecast_accuracy",
      "mandate_type": "analytics_mandate",
      "wave": 44,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-263-score-cash-forecast-accuracy.html",
      "description": "Scores treasury cash forecast accuracy per AFP Cash Forecasting Survey 2024 benchmarks. Computes MAPE and directional bias across T+1/T+7/T+30/T+90+ horizon buckets. Detects persistent timing bias (>75% same-sign errors over >=4 observations). Returns overall_accuracy_tier (EXCELLENT <5% / GOOD 5-10% / ACCEPTABLE 10-20% / POOR >20%), by_horizon breakdown, and timing_bias_detected. ZERO PII: aggregate monetary amounts only, no account-holder identifiers.",
      "input_schema_ref": "chaingraph/art-263-score-cash-forecast-accuracy.html#manifest",
      "consumes": [
        "art-258-parse-camt053-reconciliation",
        "art-261-test-hedge-effectiveness"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:624814c99e28e6097a9caa57f6273ad1edc0501ba9c8e8473ca8a1caff6b94e6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BIAVbtGfX4vrwrFM3wchGpJcvHYIm8UcajBLOR6H2DAXiHjmxbEo2359WmU93pQ1Z2GQEmYWSOfOpPJmaPkxWB53MMFjn3SMC6fS1cqJEJej8hxyGZbmImrrUsDJAhc3Jt7dOBVty6xJTFSlcrJdXXsycX+vEISktBfcvBTZLCEmRJyUitOAoQgPMDCO2rF+lIpFLeT9Mlop6qpL3XpvURCOgpOZgHK0PaL/+n2QbJH0eQ2emhVbSVt8oSML27ALLJmTo0VoZ6zkh5q6q3Zrwio5BDDaXzInpN3/tLtngjQv3c8a7PpO1616zKPI74ureKJn3MqLuG0zrtk+1nWoLw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:624814c99e28e6097a9caa57f6273ad1edc0501ba9c8e8473ca8a1caff6b94e6",
          "output": {
            "afp_benchmark_tiers": "EXCELLENT < 5% / GOOD 5-10% / ACCEPTABLE 10-20% / POOR >= 20% (AFP Cash Forecasting Survey 2024)",
            "by_horizon": {
              "T+1": {
                "accuracy_tier": "EXCELLENT",
                "bias_pct": 2,
                "mape_pct": 2,
                "n": 1
              }
            },
            "not_legal_advice": "Not financial or investment advice. Cash forecast accuracy scoring is for internal TMS benchmarking only.",
            "overall_accuracy_tier": "EXCELLENT",
            "overall_bias_pct": 2,
            "overall_mape_pct": 2,
            "persistent_sign_periods": 0,
            "pii_note": "ZERO PII: forecast amounts, actual amounts, and horizon metadata only. No account holder, cash-pool owner, or personal data enters this kernel.",
            "regulatory_basis": "AFP Cash Forecasting Survey 2024 MAPE benchmarks; Gartner Treasury Analytics 2023 T+1/T+7/T+30 horizon tiers. MAPE = mean(|actual-forecast|/|actual|)*100; bias = mean((forecast-actual)/|actual|)*100; persistent directional bias (>75% same-sign) flagged as systematic timing issue.",
            "skipped_zero_actual": 0,
            "table_source": "AFP Cash Forecasting Survey 2024; Gartner Treasury Analytics 2023; GTreasury TMS Benchmark 2024",
            "table_version": "AFP-CASH-FORECAST-KPI-2024",
            "timing_bias_detected": false,
            "total_observations": 1
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-264-validate-commission-hierarchy",
      "tool_version": "1.0.0",
      "display_name": "Commission Hierarchy Validator",
      "mcp_name": "validate_commission_hierarchy",
      "mandate_type": "compliance_mandate",
      "wave": 45,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-264-validate-commission-hierarchy.html",
      "description": "BFS structural validation of multi-level sales commission hierarchies. Detects orphan agents (unreachable from root), circular references (cycle in parent chain), split-sum violations (direct-report allocations exceeding 100% of parent), and max-depth-exceeded flag. Returns is_valid (bool), violations[], and structural metrics. Accepts agent_id, parent_id, split_pct arrays. No National Producer Numbers, SSNs, or TINs. Zero PII by construction.",
      "input_schema_ref": "chaingraph/art-264-validate-commission-hierarchy.html#manifest",
      "consumes": [],
      "feeds": [
        "art-266-reconcile-commission-statement"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ad511a9f6b10970b9bdc169af8f6c79d2affad7b21087262e6a7f9cf3041760c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HPtJ4qydnR+lCenfhexcePeBOyzN09SHbpKF8czO4ucfbrjAEvX5hNwZxbvQQJSVHBDMSR6iti6GEZXkhCuTHBhhDekC5Te5Otw0md0THzHHtHhHQhca/8buC5gpCXdoKFGF63s8kNPmLZL2IEWGvKUHaZePnPWfZN3pE35AcGMCoq8cbZoacv+IZ6qoibCW7cfYCVY0Umad+uOjrHt7UhHUsUw6zi5LCwhps7B5xIgem8hgcMzCi5KAqm3Rudx/CL86ZvsZgmPSgGUQ9Zv7de17f9KT9fdC77zdDMSCQREHCBknq4uZU/GVLPoSjtHlVs0+xsBKFPedNyQtPBHp3w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ad511a9f6b10970b9bdc169af8f6c79d2affad7b21087262e6a7f9cf3041760c",
          "output": {
            "agent_count": 3,
            "by_level": [
              {
                "agent_count": 1,
                "agents": [
                  "NP1"
                ],
                "level": 0,
                "total_split_pct": 0
              },
              {
                "agent_count": 1,
                "agents": [
                  "ManagerA"
                ],
                "level": 1,
                "total_split_pct": 60
              },
              {
                "agent_count": 1,
                "agents": [
                  "AgentX"
                ],
                "level": 2,
                "total_split_pct": 50
              }
            ],
            "is_valid": true,
            "not_legal_advice": "Not legal or accounting advice. Commission hierarchy validation is for structural compliance review only; consult your carrier agreements and accountants for binding interpretation.",
            "orphan_count": 0,
            "override_stacking_detected": false,
            "pii_note": "ZERO PII: synthetic agent identifiers and numeric split percentages only. No agent name, SSN, NPN, address, or personal data enters this kernel.",
            "regulatory_basis": "ASC 340-40-05-1: incremental costs of obtaining a contract must be recognized as assets if expected recovery is probable; hierarchy splits determine which agent cost layers are incremental. ZERO PII: synthetic agent-id graphs and split percentages only.",
            "table_source": "ASC 606 (revenue recognition) + ASC 340-40 (incremental costs of obtaining a contract); hierarchy split logic per carrier commission agreement structural norms; ICM Commission Management best practices 2024",
            "table_version": "ASC606-COMMISSION-HIERARCHY-V2024",
            "total_levels": 3,
            "violations": []
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-265-amortize-asc606-commissions",
      "tool_version": "1.0.0",
      "display_name": "ASC 340-40 Commission Amortization",
      "mcp_name": "amortize_asc606_commissions",
      "mandate_type": "compliance_mandate",
      "wave": 45,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-265-amortize-asc606-commissions.html",
      "description": "Computes ASC 340-40-25-4 practical expedient (contract_term_months <= 12 -> expense immediately, apply_expedient=true) and full straight-line amortization schedules for longer-term capitalized incremental costs of obtaining a contract under ASC 606. Returns apply_expedient (bool), monthly_amortization, cumulative_amortized_pct, and remaining_book_value per commission line. Zero PII by construction.",
      "input_schema_ref": "chaingraph/art-265-amortize-asc606-commissions.html#manifest",
      "consumes": [
        "art-266-reconcile-commission-statement"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e2860ee1786ecfb80cab10fca8acd74b179d8d80a1063d4ffa45ea30045cdbe5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Br41BiDJVu8U/D4pNSrHZV2kxvwLpwmHWlJJ40DbURwfJqPf1hfC5VnuBZrcNIo3Qk21O1one1moch2gLqkUfy+lA7VgumFSCq1TErKUas5aVrqb4DaPl8MRN2q9gOQiAbCBkezZCuX1CnFKu2ofVv/QXheT7jEulTkOMU0N5PUb5OX2iA+LjTUorWY83ab5H/a98xq4hE0nP7lpIKnGOhwqTz31I2WMSJfdLUx3FLoviG3UngV0iYdEP8QH54OaFSDLIyAQJd97/YM5zEFuYzW9mKiKUCsokeYn/MO1OPwSeDTNuKp1u2BCTyHCyRUEXYytd7f8GfQcBsdg4lNqeQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e2860ee1786ecfb80cab10fca8acd74b179d8d80a1063d4ffa45ea30045cdbe5",
          "output": {
            "amortization_period_months": 6,
            "annual_amortization": 24000,
            "apply_expedient": true,
            "asc340_40_compliant": true,
            "carrying_amount": 12000,
            "impairment_flag": false,
            "incremental_cost_test_passed": true,
            "monthly_amortization": 2000,
            "not_legal_advice": "Not accounting or legal advice. ASC 340-40 amortization analysis must be reviewed by qualified CPAs and auditors. This output is for structural analysis only.",
            "pii_note": "ZERO PII: numeric cost and term inputs only. No agent name, SSN, NPN, contract party, or personal data enters this kernel.",
            "regulatory_basis": "ASC 340-40-25-1: incremental costs to obtain a contract recognized as assets. ASC 340-40-25-4: practical expedient to expense if amortization period <=1 year. ASC 340-40-25-3: renewal-commensurate commissions amortize over original contract term. ASC 340-40-35-1: impairment test required. FASB ASU 2014-09. ZERO PII: cost amounts and contract terms only.",
            "renewal_treatment": "EXPEDIENT",
            "table_source": "ASC 340-40 (Other Assets and Deferred Costs -- Contracts with Customers): incremental cost of obtaining a contract, practical expedient <=12 months, renewal-commensurate test, impairment. ASC 606 (Revenue from Contracts with Customers).",
            "table_version": "ASC340-40-COMMISSION-AMORTIZATION-V2023",
            "total_amortization_periods": 6
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-266-reconcile-commission-statement",
      "tool_version": "1.0.0",
      "display_name": "Commission Statement Reconciler",
      "mcp_name": "reconcile_commission_statement",
      "mandate_type": "compliance_mandate",
      "wave": 45,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-266-reconcile-commission-statement.html",
      "description": "Line-item reconciliation of expected vs. received commission payments per contract. Computes variance_amount and variance_pct per line. Sets has_discrepancy (bool) when any line exceeds the tolerance_pct threshold. Returns discrepancy_lines[] and summary totals. Gate signal for commission-integrity-and-amortization chain (has_discrepancy=true exits early). Zero PII by construction.",
      "input_schema_ref": "chaingraph/art-266-reconcile-commission-statement.html#manifest",
      "consumes": [
        "art-264-validate-commission-hierarchy"
      ],
      "feeds": [
        "art-265-amortize-asc606-commissions"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d648555778e4cc13b038fe1a93fb7fe4325cb249ee3196abf2129e00853ff899","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JfuWG7tZu/YpbyIqjJ0UOQK8o6HEQXqXeXtz0R+DQswFjUiYnRuflySxpURUjimuLTPxrvaHgGHvRtCt7yJnMixDayOgBwt6nHX4a9WbzG3y3Yb5s9dtPkA522h3MzWnGxU5STT8V+/5hWeEubc2rSJaxDNyyAMxmSxpgyHYEHoj36GjrVHS0DMiXOTzUn5acVRy+osOHLrB2wPebCOyEBlFexHoNMKC/FZVe/50OEs0/544m1FLMVSGvXNcIRvVGVr8ZJOwcy0q/rnOZ8EMnqMD3ZVuTSGtkjYIxEmiBAopnpqFvQ2N8AcaB/TJSBvYRHaxI1zdKCoZ3iO4rUN8gg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d648555778e4cc13b038fe1a93fb7fe4325cb249ee3196abf2129e00853ff899",
          "output": {
            "discrepancy_amount": 0,
            "discrepancy_classification": "WITHIN_TOLERANCE",
            "discrepancy_pct": 0,
            "has_discrepancy": false,
            "line_count": 1,
            "line_results": [
              {
                "agent_id": "AGT001",
                "commission_rate_pct": 10,
                "discrepancy_amount": 0,
                "discrepancy_pct": 0,
                "discrepancy_type": "NONE",
                "expected_commission": 1000,
                "gross_premium": 10000,
                "split_pct": 100,
                "stated_commission": 1000,
                "within_tolerance": true
              }
            ],
            "not_legal_advice": "Not accounting or legal advice. Commission reconciliation results require review by qualified CPAs before financial statement adjustments.",
            "pii_note": "ZERO PII: gross premium amounts, commission rates, and split percentages only. No agent name, SSN, NPN, policyholder, or personal data enters this kernel.",
            "regulatory_basis": "ASC 606 (Revenue from Contracts with Customers): agent commissions are variable consideration; discrepancies require investigation and potential revision of estimated transaction price. AFP Commission Management Survey 2024: 3-7% of commission payments contain material discrepancies. ZERO PII: premium amounts, rates, and split percentages only.",
            "table_source": "Carrier commission reconciliation standard: gross_premium * commission_rate_pct * split_pct/100; ICM Commission Reconciliation Best Practices 2024; AICPA Industry Best Practices for Insurance Commission Accounting.",
            "table_version": "COMMISSION-RECONCILIATION-V2024",
            "tolerance_pct": 1,
            "total_expected": 1000,
            "total_stated": 1000
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-267-check-producer-license-reciprocity",
      "tool_version": "1.0.0",
      "display_name": "NAIC Producer License Reciprocity Check",
      "mcp_name": "check_producer_license_reciprocity",
      "mandate_type": "compliance_mandate",
      "wave": 45,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-267-check-producer-license-reciprocity.html",
      "description": "Checks NAIC producer license reciprocity for non-resident filing across target states per MDL-218 and NIPR Reciprocity Matrix 2024. Returns all_reciprocal (bool), non_standard_states[] (CA, FL, NJ, NY, HI, MN, WI -- require independent filing), and coverage_by_target[] with per-state reciprocal flag, LOA gaps, and independent-filing notes. State codes and NAIC LOA enum codes only. No National Producer Numbers. Zero PII by construction.",
      "input_schema_ref": "chaingraph/art-267-check-producer-license-reciprocity.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0120faf130b1725fa559dce448a0de45da7826fbc88e6b8377b94f361601beea","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "DcBpiJN3JUGcyPdAxwEUHkbVT+b4h7nc15O3Jl8IflknzQHbU3nz5UKzGGek9TQy5aSOTiOGXF+yUnocTSbsdRmNwf8nH8kUhYvPusT/LIX6Ngs41ScwKVHv94JbzKMVEEZ95aPHfTxz2/tXof+1DOK6IDXwCXNmHn/v+/oWdB0mfHzKpjYzO0lk7o+FO4CZSrlRZqAErVTJFSfT9Y6EeQAZ1STbpvmebX39i4rUD5uHcAq8Kty/BBkNXfO6BBFABN/zCe7D4WiFKTpSnUcZi+dwfRkbGQzX7pZgQMqRwxAt2/uoClY0DVuSxR0YwyMz6zu+Z3EvoLXSDWRB/AieNQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0120faf130b1725fa559dce448a0de45da7826fbc88e6b8377b94f361601beea",
          "output": {
            "all_reciprocal": true,
            "coverage_by_target": [
              {
                "flags": [],
                "is_non_standard": false,
                "loa_gaps": [],
                "note": "Standard NAIC reciprocity applies; non-resident license available without exam",
                "reciprocal": true,
                "target_state": "TX"
              },
              {
                "flags": [],
                "is_non_standard": false,
                "loa_gaps": [],
                "note": "Standard NAIC reciprocity applies; non-resident license available without exam",
                "reciprocal": true,
                "target_state": "IL"
              },
              {
                "flags": [],
                "is_non_standard": false,
                "loa_gaps": [],
                "note": "Standard NAIC reciprocity applies; non-resident license available without exam",
                "reciprocal": true,
                "target_state": "CO"
              }
            ],
            "invalid_loa_codes": [],
            "loa_codes": [
              "L",
              "H",
              "A"
            ],
            "non_standard_states": [],
            "not_legal_advice": "Not legal advice. Producer licensing requirements change; verify all reciprocity determinations with NIPR and state insurance departments before submitting non-resident license applications.",
            "pii_note": "ZERO PII: state codes and LOA enum codes only. No NPN, SSN, PDB, producer name, or personal data enters this kernel. Use NIPR for live NPN verification.",
            "regulatory_basis": "NAIC Producer Licensing Model Act (MDL-218): reciprocal licensing for non-resident producers if resident state has substantially similar licensing requirements. 50 USC producer licensing: state-specific. NIPR Gateway = authoritative current data. ZERO PII: state/LOA enum inputs only. Never real NPN, SSN, or PDB data.",
            "resident_state": "OR",
            "table_source": "NAIC State-Based Systems Producer Licensing Reciprocity Matrix 2024; NIPR Reciprocity Data 2024. Non-standard states: CA (no non-resident reciprocity), FL (background check required), NJ (limited life LOA), NY (independent license required), HI (limited), MN (state exam required), WI (limited P&C). Verify current matrix with NIPR before any license filing.",
            "table_version": "NAIC-PRODUCER-RECIPROCITY-MATRIX-2024",
            "target_state_count": 3
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
  "tool_id": "art-268-compute-cdd-ownership-25pct",
  "tool_version": "1.0.0",
  "display_name": "FinCEN CDD 25% Beneficial Ownership Attribution",
  "mcp_name": "compute_cdd_ownership_25pct",
  "mandate_type": "compliance_mandate",
  "wave": 45,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-268-compute-cdd-ownership-25pct.html",
  "description": "Recursive indirect natural-person beneficial ownership computation via ownership-tier multiplication. 25% threshold per FinCEN CDD Rule 31 CFR 1010.230 bank KYB customer due diligence. Returns is_beneficial_owner (bool), total_indirect_pct, and per-natural-person breakdown. Exactly 25% IS a beneficial owner (>=25 threshold). NOT the CTA/BOI domestic reporting rule (31 USC 5336) removed by FinCEN IFR 2025-03-21. For OFAC 50%-Rule sanctions aggregation see art-91-ownership-50pct-aggregator. Synthetic entity IDs only. Zero PII by construction.",
  "input_schema_ref": "chaingraph/art-268-compute-cdd-ownership-25pct.html#manifest",
  "consumes": [],
  "feeds": [
    "art-269-validate-w8-series-structural"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:642fc536fb114413087309fee7485f146927deeabb3ad8e9eac8e3bf98f5d36a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-05"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EbtcQIJ6AnLj+Vel63nLK37HYRNKxpQrtHRQTGxBgtYZiJdY2Mmi4l2aHuBEv6+Nk4UeYSTAEMvz+4dJfvE2oQDmA9RVbByT7DKmwFZxt8BRnZJpY11iAbb+SU6BTlaAGHE0AswHl6NmDFGKfgDgX6kGWEDgmi3sGGqs9gbZGMgYva9phA9mZfb7oawu8cSsTuyI9SJSFWVBy22f2wVOJCqmQy8o0dmHoVtsFdidlRbv2TXV1tbPnAfC118nbmhzAkhyPLVNH6VY6LwhOdi2AYoTEv9y9MUu1FsVyIe/75ADnz3U07ZTvn1/Ztrekfdq+eRWhBO5F7emoKmM2440cg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:642fc536fb114413087309fee7485f146927deeabb3ad8e9eac8e3bf98f5d36a",
      "output": {
        "below_threshold": [],
        "below_threshold_count": 0,
        "beneficial_owner_count": 1,
        "beneficial_owners": [
          {
            "direct": true,
            "entity_id": "EntityABC",
            "indirect_ownership_pct": 25,
            "natural_person_id": "NP_ALPHA"
          }
        ],
        "entities_evaluated": 1,
        "is_beneficial_owner": true,
        "methodology": "FinCEN CDD Rule 31 CFR 1010.230: indirect ownership multiplication through tiers; sum of fractional stakes >= 25% = beneficial owner determination for legal-entity KYB customer due diligence",
        "not_legal_advice": "Not legal or compliance advice. FinCEN CDD Rule determinations must be made by qualified BSA officers in conjunction with your institution's CDD program policies and procedures.",
        "pii_note": "ZERO PII: synthetic entity identifiers and ownership percentages only. No actual beneficial-owner name, SSN, EIN, address, or personal data enters this kernel. Use FINCEN system or your KYB provider for live beneficial-owner verification.",
        "regime_note": "FinCEN CDD Rule bank KYB (31 CFR 1010.230) -- NOT the CTA/BOI (31 USC 5336) domestic reporting rule. 25% threshold for legal-entity beneficial ownership certification. Domestic CTA beneficial-ownership reporting removed by FinCEN interim final rule effective 2025-03-21 (published 26 Mar 2025); CTA now applies to foreign reporting companies only. This kernel is the 25% bank KYB threshold for legal-entity customer CDD -- distinct from aggregate_ownership_50pct (OFAC/BIS Affiliates Rule 50% sanctions ownership aggregation, different threshold and regime); see ART-91.",
        "regulatory_basis": "FinCEN CDD Rule 31 CFR 1010.230: covered financial institutions must identify beneficial owners of legal entity customers (25% threshold for equity owners). Ownership multiplication through tiers: indirect ownership stake = product of fractional ownership pcts along ownership chain. ZERO PII.",
        "table_source": "FinCEN Customer Due Diligence (CDD) Rule, 31 CFR 1010.230 (final rule published 11 May 2016; applicability date 2018-05-11): 25% beneficial-ownership threshold for legal-entity customers. FinCEN FAQ on CDD Rule (2016). FinCEN Interim Final Rule effective 2025-03-21 (published 26 Mar 2025) narrowing CTA to foreign reporting companies. FFIEC BSA/AML Examination Procedures 2024. Recursive indirect multiplication per FinCEN guidance on ownership attribution through tiered structures. ZERO PII: synthetic entity graphs only.",
        "table_version": "FINCEN-CDD-RULE-31CFR1010.230-2024",
        "threshold_pct": 25
      }
    }
  },
  "compute_proof_ready": "ready"
},
    {
      "tool_id": "art-269-validate-w8-series-structural",
      "tool_version": "1.0.0",
      "display_name": "W-8 Series Structural Validator",
      "mcp_name": "validate_w8_series_structural",
      "mandate_type": "compliance_mandate",
      "wave": 45,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-269-validate-w8-series-structural.html",
      "description": "Validates W-8 series form structural consistency for withholding tax compliance. Checks: form-type/Chapter 3 status compatibility (FORM_CH3_MISMATCH for W-8BEN-E + Individual mismatch etc.), Chapter 3/Chapter 4 FATCA cross-check (CH3_CH4_INCONSISTENT), 3-year validity window expiring Dec 31 of third year per Treas. Reg. 1.1441-1(e)(4)(ii) (FORM_EXPIRED), and treaty dividend rate against IRS Pub 901 table (TREATY_RATE_MISMATCH). Returns is_structurally_valid, violations[], validity_expiry_date, and days_until_expiry. Structural form codes only. No TIN. Zero PII by construction.",
      "input_schema_ref": "chaingraph/art-269-validate-w8-series-structural.html#manifest",
      "consumes": [
        "art-268-compute-cdd-ownership-25pct"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a1851d45c46b04a84e8841137e3fe46ec0b91c345ba39ce7ce125fe9e446ce5e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-05"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LTiu1DLqUy+mUhkLa51Xuy1ZEOwz+Iyq7Ln5RfpKrlYgA96FpuSYzsLkHRC08Amm4MhA8gO6p3nxbC4mtVglxhuqT6CTOICRltWpahgsefnQ5GZglNxbgNFxZ3qC+2ymKp2UD8pLzpIH7ySyOzQoIUBp90obulj1WKD6qYlHXU0aJdSG5Gr2PoSze5psT2ZLFU8XvLe+wG6LcoLVIcs33y4CHbc8nLwFatpp924/g2+QatTct9xhbki5OcsWMve/CDx9y1wmftfknMiUBKa255s73lTd8E07oMfRxa+LLvAH/+C51p5hzaC/J4JTkwTIjTP6UG56XoPuuLiZwUImvw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a1851d45c46b04a84e8841137e3fe46ec0b91c345ba39ce7ce125fe9e446ce5e",
          "output": {
            "ch3_ch4_consistent": true,
            "chapter3_status": "Individual",
            "chapter4_fatca_status": "",
            "days_until_expiry": 906,
            "form_ch3_compatible": true,
            "form_type": "W-8BEN",
            "is_structurally_valid": true,
            "not_legal_advice": "Not tax or legal advice. W-8 structural analysis requires review by qualified tax counsel; consult current IRS instructions and your withholding agent policies before certifying beneficial ownership.",
            "pii_note": "ZERO PII: structural form type, Ch.3/Ch.4 status codes, treaty country code, and dates only. No TIN, EIN, name, address, or real beneficial-owner data enters this kernel.",
            "regulatory_basis": "Treas. Reg. §1.1441: withholding on US-source income to foreign persons. §1.1441-1(e)(4)(ii): W-8 valid 3 calendar years after signing year. FATCA §§1471-1474 Chapter 4 status requirements for W-8BEN-E. IRS Pub 901 treaty rates. ZERO PII: structural form-type/status/treaty codes only.",
            "statutory_withholding_rate_pct": 30,
            "table_source": "IRS W-8BEN Instructions (Rev. Oct 2021); IRS W-8BEN-E Instructions (Rev. Oct 2021); IRS W-8ECI, W-8EXP, W-8IMY Instructions; IRS Publication 901 US Tax Treaties dividend rates; Treas. Reg. §1.1441-1(e)(4)(ii) 3-year validity window.",
            "table_version": "IRS-W8-SERIES-CH3-CH4-2024",
            "treaty_country": "GB",
            "treaty_rate_expected": 15,
            "treaty_rate_pct": 15,
            "treaty_rate_valid": true,
            "validity_expiry_date": "2027-12-31",
            "validity_window_ok": true,
            "violation_count": 0,
            "violations": []
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-270-perp-funding-carry",
      "tool_version": "1.0.0",
      "display_name": "Perp Funding and Carry Calculator",
      "mcp_name": "compute_perp_funding",
      "mandate_type": "analytics_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-270-perp-funding-carry.html",
      "description": "Computes perpetual futures funding rates, compound annual APR, and cross-venue funding differential arbitrage (Hyperliquid hourly vs Binance 8-hour cadence). Models delta-neutral carry strategies combining perp short funding with DeFi collateral yield (Ethena sUSDe). Includes basis analytics and Hyperliquid 4%/hr cap note. Not financial advice.",
      "input_schema_ref": "chaingraph/art-270-perp-funding-carry.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:aee8d23400f51967716d7a7033f200fa5947d81889f3f656b06fced816014de1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-06"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JTPWedjCgi4AinQM854HrKsRRLuaKbVPbXSvzh/QG00nQT9Uu4k0mh/JISXVagecxzl8fUuFhrJ+LMoOBYJGFyhn+6o4aOgrrLz4UR7ytiqjrbdeoNqr8fqUPa/Nkx/OB6C+q8lX56SFiD4cFQazPrH8erCLU24Q7EljRHp6QGImlGBjDSja9t9gP0kWSxWJ3eIThOeEERSftyJFmIoiZRlhGuHzmGsskG+V8r165KFmKq/B9fRNTah2e2Pwd6DWLLSHcFXboXY7pusu1/CaSZUdAdd/NVpxnKuAehTHIqwZs/zQZCXfSV/K1oN23MxxwoX6k020MsFoN82NXhGeFg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:aee8d23400f51967716d7a7033f200fa5947d81889f3f656b06fced816014de1",
          "output": {
            "annualized_basis_pct": 0,
            "asset": "BTC",
            "basis_pct": 0,
            "basis_perp_price": 60000,
            "basis_spot_price": 60000,
            "basis_usd": 0,
            "cadence_hours": 1,
            "compound_annualized_rate_pct": 140.117,
            "cross_venue_arb": null,
            "delta_neutral_carry": null,
            "funding_rate_pct_per_period": 0.01,
            "hl_funding_cap_pct_per_hour": 4,
            "hl_typical_rate_note": "Hyperliquid typical funding ~0.01%/hr (cap 4%/hr). Simple annualized at typical rate: 0.01 * 8760 = 87.6%. Compound: (1.0001)^8760 - 1 = ~143%.",
            "hourly_rate_pct": 0.01,
            "not_financial_advice": "Not financial or investment advice. Perpetual funding rates are volatile; liquidation risk, basis risk, and smart contract risk all apply. For informational purposes only.",
            "pii_note": "ZERO PII: rate inputs and venue parameters only. No account, API key, wallet address, or personal data enters this kernel.",
            "regulatory_basis": "Perpetual futures funding is market-determined and changes continuously. Delta-neutral carry strategies combine DeFi and perpetual futures exposure; they are unregulated in most jurisdictions. Verify all rates with venue APIs before trading.",
            "simple_annualized_rate_pct": 87.6,
            "table_source": "Hyperliquid documentation 2024 (hourly funding cap 4%/hr, taker 3.5 bps); Binance perpetuals fee schedule 2024 (8h funding, taker 5 bps); Ethena sUSDe documentation for delta-neutral carry strategy. Compound APR: (1 + hourly_rate/100)^8760 - 1 using deterministic fdlibm pow.",
            "table_version": "PERP-FUNDING-CARRY-2024",
            "venue": "hyperliquid"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-271-defi-lending-health",
      "tool_version": "1.0.0",
      "display_name": "DeFi Lending Health and Liquidation Monitor",
      "mcp_name": "assess_defi_lending",
      "mandate_type": "analytics_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-271-defi-lending-health.html",
      "description": "Computes DeFi lending health factor, liquidation price, borrow capacity, and distance to liquidation for Aave v3, Morpho Blue, Fluid, Sky (MakerDAO v2), and Liquity v2. Handles LTV mode (Aave/Morpho/Fluid) and collateral-ratio mode (Sky/Liquity). Per-protocol liquidation mechanism notes. Not financial advice.",
      "input_schema_ref": "chaingraph/art-271-defi-lending-health.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:49f4ca16e07b64152890ad0db1fe9b6bd52fd1c42e01b5113844e0dac0f424a1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-06"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ACVt0hGq/Z6H178R8WZDTEg9DPuzqlCficEbznpANXAmriR5jxn9ZYHZGNIAMjGrlFJkLN6iaDkXFZjaKkJ0dgfJKxEoaz2xTON3kc1mBNuJFNPyndkk37Jo+cEisktJEQm5nNX9LRQ0H5hT79833N2B/vpfSV+eZOd82kvvfpIHYr/n3E78Yk2oojZIi8+WNS3AOCUYv2jGkZ1OzsEByy5rbJWVIETIbk47utL/X99ZA0jLyFWOwRhKh7YXj4cwEsRnr4ENk1/y+XlaTs/paD4eVUOcE6G5gtcOxDlXr2kno0W7x8l5WrGcszrNoSpITDbR5MWeZk7qbS/FO7AJuA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:49f4ca16e07b64152890ad0db1fe9b6bd52fd1c42e01b5113844e0dac0f424a1",
          "output": {
            "borrow_capacity_usd": 3300,
            "buffer_to_liquidation_pct": 39.759,
            "collateral_value_usd": 10000,
            "current_ltv_pct": 50,
            "debt_value_usd": 5000,
            "distance_to_liquidation_pct": 39.759,
            "health_factor": 1.66,
            "health_status": "WATCH",
            "liquidation_bonus_pct": 5,
            "liquidation_mechanism": "fixed_bonus",
            "liquidation_mechanism_note": "Aave v3 fixed 5% liquidation bonus; close factor 50% (up to 100% when HF < 0.95). Any address may trigger liquidation. ETH/USDC main market default thresholds.",
            "liquidation_penalty_usd": 250,
            "liquidation_price_usd": 1204.819277,
            "liquidation_threshold_pct": 83,
            "not_financial_advice": "Not financial or investment advice. DeFi lending carries smart contract risk, oracle manipulation risk, and liquidation risk. Verify current parameters with protocol risk dashboards before taking any position.",
            "pii_note": "ZERO PII: position amounts and protocol parameters only. No wallet address, ENS name, or personal data enters this kernel.",
            "protocol": "aave",
            "regulatory_basis": "DeFi lending is unregulated in most jurisdictions. Health factor and liquidation prices are computed from protocol parameters entered by the user; this is not a live risk monitor. Protocol parameters change via governance vote.",
            "table_source": "Aave v3 Risk Parameters 2024; Morpho Blue vault documentation; Fluid Protocol 2024; Sky (MakerDAO v2) Clipper liquidation; Liquity v2 specification. HF formula: collateral * liq_threshold / debt (Aave-style). Sky/Liquity use collateral-ratio mode. Not live oracle data.",
            "table_version": "DEFI-LENDING-PROTOCOLS-2024"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-272-restaking-risk",
      "tool_version": "1.0.0",
      "display_name": "Restaking Delegation and Slashing Risk Analyzer",
      "mcp_name": "assess_restaking_risk",
      "mandate_type": "analytics_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-272-restaking-risk.html",
      "description": "Models restaking delegation rewards, operator fees, AVS yield, and slashing-waterfall risk for EigenLayer and Symbiotic. Computes slashing exposure through a configurable first-loss buffer-tranche model, probability-weighted expected annual slash cost, and slashing-insurance economics. Not financial advice.",
      "input_schema_ref": "chaingraph/art-272-restaking-risk.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:fa0c0c6dff1a33577f8de9a44bbd6c3d35d4a2d544a0d9f83ed9c1635870b792","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-06"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JYvkohoFMyHmtgTSnPW2YPNVh27xEp0U5jroygfH5qUEoBVvxMt674BYK0DT9oe+9xdoeKSARHGMR0zwNZbIWBKna+Gf1IjC63mEuYW7UGz6DFg5D3UMjlLL01aM7At2AlCHCdVB/EYWavk+T67Ca5w1+XZOvA6Di03/5gpAtdoUu9G6FAjH2Tp7lSFrV/rE2YsxgSoTyWSknPMwM8AsQSv6SD0Kqv3IfQXwMAXFvdE85B2LAqDUfHl5WR3nge6ZAGYod1c+Rd0bWVDtx/WMMSBwQIyP48quoG0fg1jD+mgK14GVgncgDfZCEHv9cT49dfSAO5dof4VtgTE0L/waCg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:fa0c0c6dff1a33577f8de9a44bbd6c3d35d4a2d544a0d9f83ed9c1635870b792",
          "output": {
            "buffer_absorbs_usd": 0,
            "delegator_net_slash_eth": 0.32,
            "delegator_net_slash_usd": 1120,
            "eth_price_usd": 3500,
            "expected_annual_slash_usd": 5.6,
            "first_loss_tranche_pct": 0,
            "gross_apy_pct": 6,
            "gross_usd_per_year": 6720,
            "insurance_enabled": true,
            "insurance_makes_sense": false,
            "insurance_premium_pct_of_rewards": 0.5,
            "insurance_premium_usd_per_year": 30.24,
            "max_slash_usd": 1120,
            "net_apy_pct": 5.4,
            "net_apy_risk_adjusted_pct": 5.395,
            "net_usd_per_year": 6048,
            "net_usd_per_year_risk_adjusted": 6042.4,
            "net_with_insurance_apy_pct": 5.368,
            "net_with_insurance_usd_per_year": 6012.16,
            "not_financial_advice": "Not financial or investment advice. Restaking carries smart contract risk, operator risk, slashing risk, and liquidity risk. Verify current operator and AVS conditions before delegating.",
            "operator_cut_pct": 0.6,
            "operator_fee_usd_per_year": 672,
            "pii_note": "ZERO PII: staking amounts and protocol parameters only. No wallet address, staking key, operator identity, or personal data enters this kernel.",
            "protocol": "eigenlayer",
            "protocol_note": "EigenLayer: Ethereum restaking. ETH or LST delegated to operators who opt into AVS (Actively Validated Services). Slashing conditions defined per-AVS; operator+delegator both exposed. Three-party model: restaker, operator, AVS.",
            "regulatory_basis": "Restaking is an unregulated activity in most jurisdictions. Slashing conditions vary by AVS/network and operator behavior. This model uses protocol-level parameters; actual slashing probability depends on operator diligence and AVS code correctness.",
            "risk_reward_ratio": 0.1852,
            "slash_magnitude_pct": 1,
            "slashing_risk_pct": 0.5,
            "staked_eth": 32,
            "staked_usd": 112000,
            "table_source": "EigenLayer restaking documentation 2024 (operator/AVS model, slashing conditions); Symbiotic protocol specification 2024 (three-way opt-in, burner routers); slashing-insurance premium benchmarks ~0.5% of rewards per market survey 2024.",
            "table_version": "RESTAKING-PROTOCOLS-EIGENLAYER-SYMBIOTIC-2024"
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-273-pendle-yield",
      "tool_version": "1.0.0",
      "display_name": "Pendle Yield Tokenization Analyzer (PT/YT)",
      "mcp_name": "compute_pt_yt_yield",
      "mandate_type": "analytics_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-273-pendle-yield.html",
      "description": "Decomposes Pendle Finance yield tokenization: PT implied fixed yield, YT leverage and break-even APY, PT+YT=1 invariant check, and time-to-maturity analytics. Covers Pendle/Ethena sUSDe presets. Determines whether YT is profitable at current underlying APY and by how much. Not financial advice.",
      "input_schema_ref": "chaingraph/art-273-pendle-yield.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:11142b24e8baee3beb0ab8ef15ab1c5ddc7fbe07ad7b5b63b7d81d66ff289439","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-06"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CqEdBG2ZUvkL6da+msUm+TBjH2EyKEWl2wlp/UTUhE0iW52be4fIJMbhm3E6GWMfw7sxrS/D3mUa3W5fFwAeFRYBne70JtaFpKH+isa+080gB7MCthnjOF93rVyyOU1eG+QV/zi7Yw2Xv8eQVq42oy5VoXvULS4R6fy+RaSd7/ISegz5CL4tYv45vUL3tiR1xBPG32dulRaxaRpb/HSv6At7PDq3x8TklUIjI9fE5CsRJU1i42439ta1ZSEfJKVUK2aTk3i+ZOYj42RnZqJFjabOH+WzO3hGRxRV7xKPppULAJ6XGifmfyVEU+tL09LEGX0eeIERKI1dRjpxgcts/g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:11142b24e8baee3beb0ab8ef15ab1c5ddc7fbe07ad7b5b63b7d81d66ff289439",
          "output": {
            "days_to_maturity": 180,
            "invariant_holds": true,
            "investment_usd": 10000,
            "not_financial_advice": "Not financial or investment advice. PT and YT prices change continuously with AMM trading. Underlying yields are variable; YT carries total loss risk if underlying yield drops to zero. For informational purposes only.",
            "pii_note": "ZERO PII: market prices and yield inputs only. No wallet address, LP position, or personal data enters this kernel.",
            "pt_discount_pct": 6,
            "pt_implied_fixed_yield_pct": 13.3681,
            "pt_price": 0.94,
            "pt_profit_at_maturity_usd": 638.3,
            "pt_return_to_maturity_pct": 6.383,
            "pt_simple_apr_pct": 12.9433,
            "pt_units_bought": 10638.2979,
            "pt_yt_sum": 1,
            "regulatory_basis": "Pendle Finance operates as a decentralized yield-tokenization protocol. PT and YT are experimental DeFi instruments; they are unregulated in most jurisdictions. This model uses entered market prices and does not reflect live AMM state.",
            "table_source": "Pendle Finance documentation 2024 (PT/YT mechanics, v2 AMM); Pendle v2 whitepaper. PT implied yield: (1/pt_price)^(365/days) - 1. YT break-even: yt_price / years_to_maturity. Deterministic pow via fdlibm port (_detmath). Not live price data.",
            "table_version": "PENDLE-YIELD-DECOMPOSITION-2024",
            "underlying_apy_pct": 12,
            "years_to_maturity": 0.4932,
            "yt_break_even_apy_pct": 12.1667,
            "yt_leverage": 16.6667,
            "yt_levered_apy_pct": 200.0004,
            "yt_margin_of_safety_pct": -0.1667,
            "yt_net_pnl_if_underlying_stable_usd": -136.99,
            "yt_payout_if_underlying_stable_usd": 9863.01,
            "yt_price": 0.06,
            "yt_profitable_at_current": false,
            "yt_units_bought": 166666.6667
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-274-compile-work-mandate",
      "tool_version": "1.0.0",
      "display_name": "Work Mandate Compiler",
      "mcp_name": "compile_work_mandate",
      "mandate_type": "governance_mandate",
      "wave": 47,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-274-compile-work-mandate.html",
      "description": "Compiles a §22 Work Mandate document into a deterministic §21.4 gated-chain config. Transforms scope.tool_ids (or scope.chains) into an ordered steps[] skeleton, maps conditions into gate rules (op/value/next), and maps escalation_triggers into rules whose next routes to the reserved 'escalate' target (§22.3). All conditions and triggers must share one RFC 6901 pointer per §22.4 Rule 2; multi-pointer policies are rejected with error:'multi_pointer_gate'. Default for every gate is 'escalate'. Same mandate always produces byte-identical config (deterministic, hash-stable). Not a payment-mandate builder, not an audit-mandate tool, not an agent-OBO validator -- this compiles a policy mandate into an enforceable gated-chain config. Zero PII: structural mandate fields only.",
      "input_schema_ref": "chaingraph/art-274-compile-work-mandate.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:dfaeb21e94c9b39448879e93b1365cb0b50c1251a16b57a90133275b8739d6ad","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-06"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "J3FK4b19i3Uf3wScfSA0BjkELFOBWvCoLsLe10P1zXwU2yxq75VpAim8MhkR3ts+Uhx6HH5563a2LX8H5qN2EgrqOJd+qSADI5rciz5VO3W06EwtMXmyRNmhMJimrAC6E1oT62gbgnvwcQ9YyhjQiQLOZs9fkdZgKnzBp2iPwYsAQe+B7cR1kuiNjsMmZ0Q5n5oYsqd4c6OhW03VvQjkGAtBCwNv750jbvog6g2IWgl6vv4QcLR65MAQr1/jCYuOHx86hs+vAteBuqybGz0Be18Y+lCMDkepbdCcu5hwW0gIwIUYQoHFq+YR93Wk9X9hH9Elbrz9TjLNI3KSaMnwvQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:dfaeb21e94c9b39448879e93b1365cb0b50c1251a16b57a90133275b8739d6ad",
          "output": {
            "chain_config": {
              "steps": [
                {
                  "gate": {
                    "default": "escalate",
                    "input": "/decision/approved",
                    "rules": [
                      {
                        "next": "record_outcome",
                        "op": "eq",
                        "value": true
                      }
                    ]
                  },
                  "id": "assess_loan",
                  "tool_id": "assess_loan"
                },
                {
                  "id": "record_outcome",
                  "tool_id": "record_outcome"
                }
              ]
            }
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
      "tool_id": "art-275-genius-reserve-disclosure-checker",
      "tool_version": "1.0.0",
      "display_name": "GENIUS Act Monthly Reserve Disclosure Checker",
      "mcp_name": "check_genius_reserve_disclosure",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-275-genius-reserve-disclosure-checker.html",
      "description": "Lints an extracted monthly reserve disclosure against GENIUS Act S.394 §4: composition-category eligibility, tenor, custody locations, a dual_control(2) CEO/CFO certification gate (distinct CEO and CFO identities required, per FDIC NPR 2026-04-10 and OCG SPEC.md §27.3), registered-examiner presence, month-over-month diff, and an on-chain supply cross-check against a pasted figure. Successor to the pre-issuance precheck_reserve_attestation (art-06): that tool is the pre-issuance readiness gate, this is the recurring post-issuance monthly filing check. Never claims cryptographic verification of the source PDF.",
      "input_schema_ref": "chaingraph/art-275-genius-reserve-disclosure-checker.html#manifest",
      "deadline": "2027-01-18",
      "deadline_note": "GENIUS Act effective ≤ January 2027; monthly reserve composition reports required for licensed issuers; >$50B issuers subject to annual PCAOB audit. Re-verify against final-rule text on/after 2026-07-18.",
      "consumes": [],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0f28358a1106be5fd951174ff9984a32af17133642481706a056f43ce6fe0d22","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A0BSd+yshPOT0VRmB/MqzwHJtFWFXoPiRNxfvrRvCbwS+oJAY8sv5PP0nofWfKi8pS/pElzRsOdmUQMqdOUZjS6iYzub02DTTc1DU9HnBIccEUoaFydXddcAA4yWBSQhEDuLlhcIYk8/txHCHx5/d3zrUz+h15oin4pUvbBeyAkwSWYa98DvZ5jhfuxCDkTeFyl1E+KRc1B0B4Huh0oPKg58LysrPplcN28mbTL7LfKuDCYB2AQIbmxS4XgShTX+BDAJwKgJ8iUxP/dTrloMLwv8OhzhSLFAJWDaT6DktJgnsNM8SE1/MiWeu4a/h+rv8wO7HX6iD+FjlDQBBT+zyw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0f28358a1106be5fd951174ff9984a32af17133642481706a056f43ce6fe0d22",
          "output": {
            "applicable_deadline": "2027-01-18",
            "asset_results": [],
            "ceo_certified": false,
            "cfo_certified": false,
            "conditional_assets_usd": 0,
            "coverage_ratio_pct": 0,
            "custody_disclosed": false,
            "custody_locations": [],
            "dual_control_satisfied": false,
            "examiner_name": null,
            "failing_dimensions": [
              {
                "detail": "Reserves (0.00) cover only 0.00% of outstanding tokens. Shortfall: 0.00.",
                "dim": "Coverage ratio < 100%",
                "ref": "GENIUS Act S.394 §4(a)"
              },
              {
                "detail": "Monthly report requires a dual_control(2) CEO/CFO certification. CEO certification missing. CFO certification missing.",
                "dim": "CEO/CFO certification",
                "ref": "GENIUS Act S.394 §4; FDIC NPR 2026-04-10; OCG SPEC.md §27.3 dual_control(2)"
              },
              {
                "detail": "No registered public accounting firm named as examiner for this report.",
                "dim": "Registered accounting-firm examiner",
                "ref": "GENIUS Act S.394 §4"
              }
            ],
            "gate_policy": "dual_control(2)",
            "mom_diff": null,
            "monthly_disclosure_determination": "FAIL",
            "onchain_supply_check": {
              "delta": null,
              "match": null,
              "note": "User-pasted on-chain supply figure compared numerically against the reported outstanding-tokens field. NOT a live network fetch and NOT a cryptographic verification of the source disclosure PDF (zero-fetch, zero-PII tool).",
              "onchain_supply": null,
              "provided": false,
              "reported_outstanding_tokens": 0
            },
            "pdf_extraction_note": "This linter operates on extracted disclosure fields (JSON), not the source PDF filing. It does NOT cryptographically verify the underlying published PDF — PDF-only publishing is the industry gap (see XBRL US comment letters). Successor to the pre-issuance art-06 attestation pre-check; not a substitute for it. Re-verify against GENIUS Act final-rule text on/after 2026-07-18.",
            "prohibited_assets_usd": 0,
            "registered_examiner_named": false,
            "regulatory_framework": "GENIUS Act S.394 §4 — Monthly Reserve Composition Report",
            "report_month": "",
            "reserve_shortfall_usd": 0,
            "total_liabilities_usd": 0,
            "total_reserves_usd": 0
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-276-mutual-nda-composer",
      "tool_version": "1.0.0",
      "display_name": "Mutual NDA Composer",
      "mcp_name": "assemble_mutual_nda",
      "mandate_type": "compliance_mandate",
      "wave": 49,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-276-mutual-nda-composer.html",
      "description": "Assembles a Common Paper Mutual NDA (Version 1.0, CC BY 4.0) from your Cover Page Key Terms: purpose, effective date, MNDA term, term of confidentiality, and governing law and jurisdiction. The Standard Terms body is vendored verbatim and never modified; only the Cover Page varies. Emits the assembled agreement plus a contract-api.json variable map twin for agent consumption. Party identity, signatures, and notice addresses stay as literal placeholder tokens for your own off-platform signing flow. Not legal advice.",
      "input_schema_ref": "chaingraph/art-276-mutual-nda-composer.html#manifest",
      "consumes": [],
      "feeds": [
        "art-277-agreement-acceptance-binder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:91212db29e804d760fdea1ab5633eeaae9a06c743518d3b746a30c50f026116d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GOf0hkqrvFkS4anTxn0iAdiOmXTDfv03ZajGnLfbZLQT/rE/WNqtlyNDklYxTmlv5nWw1idQfRkQ9VXJtcLzOiLZIwC0xMnkZIAjbGCKs0ZS9w3qPoHO/5AI4cjqctpBI5KaIXZhyiWJbA9360lAf+O1rL3+JxhbAmIuU4MoU4IGdISAzaPcgojeBigi6xHzkLamIsiXWprihZypunLcvC8t3lkV57WHjf1ZnQjjFiW6FRnfWaZBqvQOYEBjBJDIKTpo5yhadrSZYkisB1crIyKTvJEOhyQHc9+sdCjcPNQiFM/HJ1KJjghb4VhNGJylcHXxs2wg6GMyjjp52hwJ8Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:91212db29e804d760fdea1ab5633eeaae9a06c743518d3b746a30c50f026116d",
          "output": {
            "assembled_markdown": null,
            "attribution": "Common Paper Mutual Non-Disclosure Agreement, Version 1.0, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
            "body_sha256": "51accb97035821280371ff3088871e3866927ef0ce60e64ed5244883f11b6cfe",
            "checks": [
              {
                "check": "required_fields_present",
                "detail": "Missing required Key Terms: purpose, effective_date, mnda_term_mode, confidentiality_term_mode, governing_law, jurisdiction",
                "pass": false
              },
              {
                "check": "mnda_term_mode_valid",
                "detail": "invalid mnda_term_mode: ",
                "pass": false
              },
              {
                "check": "confidentiality_term_mode_valid",
                "detail": "invalid confidentiality_term_mode: ",
                "pass": false
              },
              {
                "check": "mnda_term_years_present_if_needed",
                "detail": "ok",
                "pass": true
              },
              {
                "check": "confidentiality_term_years_present_if_needed",
                "detail": "ok",
                "pass": true
              }
            ],
            "contract_api": {
              "attribution": "Common Paper Mutual Non-Disclosure Agreement, Version 1.0, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
              "body_sha256": "51accb97035821280371ff3088871e3866927ef0ce60e64ed5244883f11b6cfe",
              "selected_clause_ids": [],
              "template_id": "common-paper-mnda-v1.0",
              "variable_map": {
                "confidentiality_term_mode": "",
                "confidentiality_term_years": null,
                "effective_date": "",
                "governing_law": "",
                "jurisdiction": "",
                "mnda_term_mode": "",
                "mnda_term_years": null,
                "modifications": "None.",
                "purpose": ""
              }
            },
            "cover_page_markdown": null,
            "disclaimer": "Not legal advice. This tool assembles a fixed, vendored Standard Terms body with your Cover Page Key Terms; it does not draft, modify, or advise on the agreement. Consult a licensed attorney for your jurisdiction.",
            "license": "CC-BY-4.0",
            "source_url": "https://commonpaper.com/standards/mutual-nda/1.0",
            "template_id": "common-paper-mnda-v1.0",
            "zero_pii_notice": "Party identity, signatures, and notice addresses are never filled by this tool and remain literal {{placeholder}} tokens for your own off-platform e-sign flow."
          }
        }
      },
      "compute_proof_ready": "ready",
      "export_capability": [
        "json"
      ]
    },
    {
      "tool_id": "art-277-agreement-acceptance-binder",
      "tool_version": "1.0.0",
      "display_name": "Agreement Acceptance Binder",
      "mcp_name": "bind_agreement_acceptance",
      "mandate_type": "compliance_mandate",
      "wave": 49,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-277-agreement-acceptance-binder.html",
      "description": "Binds a party's acceptance to a specific assembled agreement artifact, referenced by its execution_hash, template_id, and vendored body_sha256, never by re-embedding the agreement text. Carries no party identity, only the accepting role and the referenced hashes. An OPTIONAL section-16 eddsa-jcs-2022 signature on the emitted artifact turns this into a countersignable acceptance receipt; an optional previous_proof_hash links a second party's acceptance to the first, forward-compatible with a future proof-chain endorsement. Not legal advice.",
      "input_schema_ref": "chaingraph/art-277-agreement-acceptance-binder.html#manifest",
      "consumes": [
        "art-276-mutual-nda-composer"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f89876aa4e8bd2c8202f42f53375dcaadcf311417577d08361dc752421a2a965","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "H41o/EQfSEDAKiSymZXhzsS2qgR+OzFqhEk7ZaZ1mYokVbo8DEN0KAHyIJw8mgysc6YCQl95rtukiyiG9/1brgSDCEYqFQ07CghweA//cuj14IQGQGuFWvR2FFWQqbzVCN9hvcbxiuoIVfbNI288rUTfqCMiTAubW1Kcd/4Uju4IdyRKGeGS52S/Ir1BHq+Oim9dV7E7tdplMgNRyHKpAxGqNNf7ocXsFZy74HxAXtTIzVRKw7ct+LdAKcweR//uFYkCLreU7ofrFzFegrQmnRdHKVx5q25CNoZSyjAbiqYqvsgldktC8NHT8vwOxIyhfq5rS/mIahMzzjVfjt0sZw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f89876aa4e8bd2c8202f42f53375dcaadcf311417577d08361dc752421a2a965",
          "output": {
            "acceptance_statement": null,
            "accepted_body_sha256": null,
            "accepted_template_id": null,
            "accepting_party_role": null,
            "checks": [
              {
                "check": "referenced_execution_hash_valid",
                "detail": "referenced_execution_hash must be a 64-char lowercase hex SHA-256",
                "pass": false
              },
              {
                "check": "body_sha256_valid",
                "detail": "body_sha256 must be a 64-char lowercase hex SHA-256",
                "pass": false
              },
              {
                "check": "template_id_present",
                "detail": "template_id is required",
                "pass": false
              },
              {
                "check": "accepting_party_role_valid",
                "detail": "accepting_party_role must be one of: party_a, party_b",
                "pass": false
              },
              {
                "check": "previous_proof_hash_valid_if_present",
                "detail": "ok",
                "pass": true
              }
            ],
            "disclaimer": "Not legal advice. Records a stated acceptance of a specific referenced artifact; it does not itself establish legal effect, identity, or enforceability. An OPTIONAL §16 eddsa-jcs-2022 signature on this artifact turns it into a countersignable receipt.",
            "previous_proof_hash": null,
            "referenced_execution_hash": null,
            "zero_pii_notice": "This receipt carries no party identity, only the accepting role and the referenced artifact hashes. Real signer identity stays off-platform."
          }
        }
      },
      "compute_proof_ready": "ready",
      "export_capability": [
        "json"
      ]
    },
    {
      "tool_id": "art-278-reputation-score-aggregator",
      "tool_version": "1.0.0",
      "display_name": "Provable Reputation Score Aggregator",
      "mcp_name": "aggregate_reputation_score",
      "mandate_type": "attestation_mandate",
      "wave": 49,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-278-reputation-score-aggregator.html",
      "description": "Aggregates a set of OCG execution receipts (attestations) into a deterministic, groth16-provable reputation score across competence, integrity, timeliness, and cooperation. Exponential decay by age, self-issued attestations excluded, duplicate receipts deduped. Aggregation-math design credit: Vouch Protocol (Apache-2.0, never a runtime dependency); this is a clean-room reimplementation of the aggregation math only.",
      "input_schema_ref": "chaingraph/art-278-reputation-score-aggregator.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7d2c98e83ecc6bbe23df123d45d26fe3f2b31d5dc6484e5983f535fdbd271c86","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BAJNR7serpnUx3iuAmj4aNJSDvr3t2hcxPqZ6djK+jksPrVKsKDcAGYOKUSid71HrqHQjn8LrTeYuHiUfVg9FiIIkmalwAr5J7J7AgIDrIRgXUAyaMEibxW2nO0jGiraLBwoGpVxFN4TLEoJRDE7Y128QIbk4GRm4r9tsioHJqoUig2M73E22me0vI0qWGw0lTD4a+7nQq/KUpiRh8uoqx0aOjsvvJSh1oi1vQVxIGk3nNGb4pw2V8ME5no0lsFwBMwwUxfmGNsjajGd2WJndcz/jTxshH9oYKtMwpoeAp0f6T1d0RRsNQpxwZ9f9iYwrnfJJZgBizmEq3cMvn1bqg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7d2c98e83ecc6bbe23df123d45d26fe3f2b31d5dc6484e5983f535fdbd271c86",
          "output": {
            "as_of": "2026-01-01",
            "attestation_count": 2,
            "composite": 0.452885,
            "decay_half_life_days": 180,
            "dims": {
              "competence": 0.61154,
              "cooperation": 0.29423,
              "integrity": 0.50577,
              "timeliness": 0.4
            },
            "excluded_self_issued": 0,
            "insufficient_evidence": false,
            "subject_id": "agent-alpha"
          }
        }
      },
      "compute_proof_ready": "ready",
      "export_capability": [
        "xlsx"
      ]
    },
    {
      "tool_id": "art-279-state-proof-verifier",
      "tool_version": "1.0.0",
      "display_name": "State-Proof Verifier",
      "mcp_name": "verify_eth_state_proof",
      "mandate_type": "cryptographic_mandate",
      "wave": 49,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-279-state-proof-verifier.html",
      "description": "Verifies an EIP-1186 (eth_getProof) account and storage Merkle-Patricia-Trie proof against a caller-supplied trusted state root using a pure-JavaScript keccak-256 plus RLP decoder and bounded trie walk. Zero-egress, no RPC call. Does not verify that the state root itself belongs to a real canonical block; consensus-proof (light-client header) verification is out of scope. Persona: fund administrator or auditor confirming tokenized-MMF or deposit-token holdings without trusting an RPC provider.",
      "input_schema_ref": "chaingraph/art-279-state-proof-verifier.html#manifest",
      "deadline": null,
      "deadline_note": "No statutory deadline; general-purpose cryptographic verification primitive for the Verify-Rails band.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:cdf00978c1f9c8e64aa49fd927d7dab925a232f49b3f745381396674785ce592","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IHiTuIB+jpL6byyhi+4GUigLgGA64hXMkQ4w03gVRWkAkHNsGNLTIUABlqQ6yBFGEpyM93AcVi9IWZj+rQQbBCFSNL2d7GBmX0PwmFT9tAnaP1h+qdvHtYdpjG8xO86HFg1pW4oJyd1a+bXVsWlYVFNEMedgwtCEQIASoGLYQj8G0Xi1On6DhEmrNmC0O4B6VYhIEWtVmKOWc6egp9bMNQYFXaCW1mToFa/et3l6HFKsI3jOOChe9c4k/CsZRQ3EAXSLs8ERgZBEJSsVqjspodPU49GeqFwXWkCm4SU45H8HbOstxxbHN8wDDdzqCYfV6297daeMdA0CRw6pYN4tkg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cdf00978c1f9c8e64aa49fd927d7dab925a232f49b3f745381396674785ce592",
          "output": {
            "account": null,
            "account_exists": false,
            "address": "",
            "block_state_root": "",
            "bounded_limits": {
              "max_account_proof_nodes": 32,
              "max_node_hex_len": 1200,
              "max_storage_proof_nodes": 16,
              "max_storage_slots": 8
            },
            "diagnostic": null,
            "errors": [
              "block_state_root must be 32 bytes hex",
              "address must be 20 bytes hex",
              "account_proof must be non-empty"
            ],
            "proof_nodes_consumed": 0,
            "receipt_statement": null,
            "regulatory_note": "Consensus-proof (light-client header) verification is out of scope for this tool — the state root is a caller-supplied trust anchor, not independently verified against a beacon-chain header.",
            "storage_results": [],
            "verdict": "INVALID_PROOF"
          }
        }
      },
      "compute_proof_ready": "ready",
      "export_capability": [
        "json"
      ]
    },
    {
      "tool_id": "art-280-reserve-proof-verifier",
      "tool_version": "1.0.0",
      "display_name": "Reserve Proof Verifier",
      "mcp_name": "verify_reserve_proof",
      "mandate_type": "compliance_mandate",
      "wave": 49,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-280-reserve-proof-verifier.html",
      "description": "Verifies a Merkle-sum Proof-of-Reserves customer-inclusion proof (OKX, Binance, Gate, Kraken export formats, or a generic canonical shape) against a declared root, and checks a Chainlink PoR / NAVLink aggregator round for staleness and deviation. Part of the Reserve Verification Family alongside check_genius_reserve_disclosure (art-275). Composes with verify_eth_state_proof (VR-1) when an on-chain storage proof is available. Records what is NOT proven: liabilities completeness, off-balance-sheet encumbrances, and point-in-time-only scope. Not a PCAOB audit.",
      "input_schema_ref": "chaingraph/art-280-reserve-proof-verifier.html#manifest",
      "deadline": null,
      "deadline_note": "Voluntary attestation practice (Merkle-sum PoR + Chainlink PoR/NAVLink); no statutory deadline. Distinct from the GENIUS Act S.394 §4 monthly filing deadline tracked by art-275.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:309081fd66892352af23884e11bc1173c96b88fc3bbebe8ffce1db60bb235dba","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FdQ5sUf+4DPxXft56Bd3PdBug49DypRAKu+XDsxEkOApE6UKC2nLZLIdlq62fQk0Dgj9/e1r/J4DQbpUUoz1kwIoc6cvA9cA+T/tbNRe4a3RvWIP3jBQhMyWDEFdq/LRLn6fxSPNxV8/jTCqa8/HPBpmXDlF6ycmjURoIggV+4UINUnS+OCrESIFzYcGWQjkG/PgnyLbxX+RW2pYi6nleykkPz+VzorEhEK/iFPRwt5/TbY5e+/vwLfUqwzvWfcPBhiWoohNqmapEARY+val83I3WiTQ7QfEfapvJ3LlRN8XWPsIt5FghCFxQInyfrsz5RcfQH5guscLboh3SO36wQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:309081fd66892352af23884e11bc1173c96b88fc3bbebe8ffce1db60bb235dba",
          "output": {
            "computed_leaf_hash": "ef12efbd765f9ad308460dc13dd2d5d06784bbe91adb0bf5fa752eddf10a38eb",
            "computed_root": {
              "hash": "ef12efbd765f9ad308460dc13dd2d5d06784bbe91adb0bf5fa752eddf10a38eb",
              "sum": 0
            },
            "declared_root": {
              "hash": "",
              "sum": 0
            },
            "exchange": "generic",
            "inclusion_verified": false,
            "not_proven": [
              {
                "detail": "Only the audited customer set is provable from a single-leaf inclusion proof. An issuer could omit accounts from the tree entirely and this proof cannot detect the omission.",
                "item": "Total liabilities completeness"
              },
              {
                "detail": "Pledges, rehypothecation, or liens against reserve assets are not visible in a Merkle-sum inclusion 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 performs no audit and carries no PCAOB or other audit-firm opinion; it is a cryptographic inclusion check only.",
                "item": "PCAOB audit opinion"
              }
            ],
            "por_round": null,
            "regulatory_framework": "Voluntary Merkle-sum PoR attestation (Summa report structure) + Chainlink PoR/NAVLink round data; not a GENIUS Act §4 filing (see art-275) and not a PCAOB audit.",
            "reserve_proof_determination": "FAIL",
            "root_hash_match": false,
            "storage_proof_composition": {
              "composed": false,
              "note": "Composition hook stubbed, no on-chain storage-proof result supplied (VR-1 composes here once available); the inclusion result above is self-contained and does not depend on this.",
              "source": null
            },
            "structural_error": null,
            "sum_verified": true
          }
        }
      }
    },
    {
      "tool_id": "art-281-sco60-crypto-asset-exposure-classifier",
      "tool_version": "1.0.0",
      "display_name": "SCO60 Crypto-Asset Exposure Classifier",
      "mcp_name": "classify_sco60_exposure",
      "mandate_type": "compliance_mandate",
      "wave": 50,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-281-sco60-crypto-asset-exposure-classifier.html",
      "description": "Classifies a crypto-asset position into Basel SCO60 Group 1a, 1b, 2a, or 2b (BCBS d545 Prudential treatment of cryptoasset exposures), applies the Group 1 infrastructure-risk capital add-on, and checks the Group 2 exposure limit of 1% of Tier 1 capital. National implementation timelines vary; never asserts jurisdictional adoption. NaN-safe. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-281-sco60-crypto-asset-exposure-classifier.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:27ca4b94e8f9b63be974894cab2c35fdb00b72b8c405455fead9dc3a6de0cdd9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "export_capability": [
        "json",
        "vc"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F2dUiaaVVqJ2RXCE86Nfb/kMDMU6tSYs8Ll59emoaPsQSMG00lp8vgJrTpr1heBESbipqq87npgvxBR/vLVRRSybEIdzBETlqpizqix58sU+7yw/jhy6iowT+yv5WfZoBJ4otpDTtGWFS4Y7EBswS+Cv1vulL8RyMwBmvKir5xgVgiuY+kFlcTn0A9PL0UVaUmb+qCwOGOuogms9yi/oBSHciyNmG3sEib0bLz0e5dCMK/ai5sYyV0mCOXMRNHJOLZkg8R6PpTu7PjXU6xGEQ4pvSQTVIx4l1knMVzFRxosfi05lZLo06zkRVAG2ujJXDaHUCyVBmTGm/VXsnMw5pg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:27ca4b94e8f9b63be974894cab2c35fdb00b72b8c405455fead9dc3a6de0cdd9",
          "output": {
            "base_risk_weight_pct": 100,
            "classification": "tokenized_traditional",
            "gaps": [
              "INFRA_ADDON_CAPPED_AT_LOCAL_MAX"
            ],
            "group": "1a",
            "group2_exposure_pct_tier1": 0,
            "group2_limit_breached": false,
            "infra_addon_capped": true,
            "infra_addon_pct_applied": 150,
            "infra_addon_pct_input": 200,
            "pillar3_precheck_pass": true,
            "risk_weight_applied_pct": 250
          }
        }
      }
    },
    {
      "tool_id": "art-282-social-security-claiming-optimizer",
      "tool_version": "1.0.0",
      "display_name": "Social Security Claiming-Age Optimizer",
      "mcp_name": "optimize_social_security_claim_age",
      "mandate_type": "compliance_mandate",
      "wave": 50,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-282-social-security-claiming-optimizer.html",
      "description": "Models Social Security claiming-age tradeoffs from a claimant's own PIA/FRA statement figures: early-claim reduction and delayed-retirement-credit factors, earnings-test withholding below FRA, lifetime present value at 62/FRA/70/chosen age, and the 62-vs-70 undiscounted break-even age. Root node of the retirement-decumulation-decisions chain. No SSA API, no PII stored. NaN-safe. Zero network.",
      "input_schema_ref": "chaingraph/art-282-social-security-claiming-optimizer.html#manifest",
      "consumes": [],
      "feeds": [
        "art-283-pension-lump-sum-vs-annuity-decision-engine"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:83b81f55de1dfe9bda0dc897482ce07935b420bc7f4b93f30ffd3e01d7ae7a35","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "export_capability": [
        "json",
        "vc"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F2vI2zngiSLoEI8zwF3294H7tdCDKEy8z1q7Tc7rX6UFYCC/FJ1MLf0G6j0I42kDl2ezEpF4ymmFZXoo8I40wi08Ieq5A9F2nBwjy/aJcQKd/fsRyTLGs+d6f+0sUXrOJZYH0tpgVF5DMNfR4ma5Vi+1WRuJc9P69c+w9j9IeJUXyi/BiEoDGy9Oj5QW/f3vHQGeim/Z/KWoJq8E8Q30agNaFS87cQGX6O1MRrSgGVJu0DcxjNdtAX7kzNzAs2GwH0MPqqpcLxMbRYQZwukhE9nkkDuNTsl2VXeekfkg31waemwHcQe3E6K9GRTu+m0IfPe5mu8N6sh1ig5bE9QPdg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:83b81f55de1dfe9bda0dc897482ce07935b420bc7f4b93f30ffd3e01d7ae7a35",
          "output": {
            "birthYear": 1960,
            "breakEvenAge62vs70": 81,
            "claimAge": 62,
            "earningsTestAnnualLimit": 23400,
            "fullRetirementAge": 67,
            "lifetimePV": 284540.1995057521,
            "longevityAge": 85,
            "monthlyBenefitAtClaimAge": 1400,
            "pia": 2000,
            "recommendedClaimAge": 70
          }
        }
      }
    },
    {
      "tool_id": "art-283-pension-lump-sum-vs-annuity-decision-engine",
      "tool_version": "1.0.0",
      "display_name": "Pension Lump-Sum vs. Annuity Decision Engine",
      "mcp_name": "compare_pension_lump_sum_annuity",
      "mandate_type": "compliance_mandate",
      "wave": 50,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-283-pension-lump-sum-vs-annuity-decision-engine.html",
      "description": "Compares a defined-benefit pension lump-sum offer against the single-life and joint-survivor annuity streams: present value at the stated discount rate with an optional labeled COLA assumption, survivor-option monthly cost, break-even discount rate, and undiscounted break-even age. Terminal node of the retirement-decumulation-decisions chain. Figures are user-supplied off the claimant's own election paperwork, no PII stored. NaN-safe. Zero network.",
      "input_schema_ref": "chaingraph/art-283-pension-lump-sum-vs-annuity-decision-engine.html#manifest",
      "consumes": [
        "art-282-social-security-claiming-optimizer"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f6d1afb8e2ecf41c2176368c4f1383cba8b5ffe9cbfed4ac2b8f12760984e828","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "export_capability": [
        "json",
        "vc"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "MF4JKSOBiHc/jElpjIk9k7hoiq70uhjmKsto9XRB9JImUNJzW08UJ4FJ0t6NSiokqUoBfedVZSxI0jyN5TTt7AOQLmKbUPUVQLoextOnLqfllkP891m+t8z6FISDSdxUGp1+sBxJQ0/Euv944+1xQjofhbRNYxr5PV/ECtMe1MIPXjfSGXlkOMwPJdEC9bXe1LDbNwYEibk8oOXdN3H9HC75AAyl8NkaKnpaWwvIa+LesLEPj1j1prpOL0f/2+A8L1V6cxoIwt850OLXZZMP+T+f+2MtSrOQNgXGogm+PK8A4Bv3dIVQ4rh1kYR2RqLcndLFxM8zPA0e+qYG1KlM/g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f6d1afb8e2ecf41c2176368c4f1383cba8b5ffe9cbfed4ac2b8f12760984e828",
          "output": {
            "annuityPV": 479957.2447459364,
            "breakEvenAge": 78,
            "breakEvenRate": 9.1089965190159,
            "colaApplied": true,
            "lumpSum": 300000,
            "recommendation": "annuity",
            "reinvestmentRequiredReturn": 9.1089965190159,
            "survivorOptionCostMonthly": 200,
            "survivorPct": 75
          }
        }
      }
    },
    {
      "tool_id": "art-284-did-webvh-log-verifier",
      "tool_version": "1.0.0",
      "display_name": "did:webvh DID Log Verifier",
      "mcp_name": "verify_did_webvh_log",
      "mandate_type": "compliance_mandate",
      "wave": 50,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-284-did-webvh-log-verifier.html",
      "description": "Verifies a did:webvh self-certifying DID log: per-entry self-hash integrity, sequential versionId numbering, update-key-authorized Ed25519 signatures on every entry, deactivation status, and optional resolved-document match. did:webs is superseded by did:webvh (DIF/ToIP, June 2026). Verify-only: never operates witness/registry infrastructure, never resolves a live document over the network.",
      "input_schema_ref": "chaingraph/art-284-did-webvh-log-verifier.html#manifest",
      "consumes": [
            "art-04-agent-identity-attestation-checker"
      ],
      "feeds": [
            "art-285-acdc-delegation-chain-verifier"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [
            {
                  "system": "sha256-source",
                  "image_id": "sha256:81db00c29bffa3930a936bf2799074b45050cf8e17021a34267efb1418a52acc",
                  "valid_from": "2026-07-10"
            },
            {
                  "system": "risc0",
                  "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
                  "valid_from": "2026-07-10"
            }
      ],
      "export_capability": [
            "xlsx"
      ],
      "compute_proof": {
            "type": "ZkVmReceipt",
            "system": "risc0",
            "receiptFormat": "groth16-bn254",
            "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
            "seal": "KZJETpuw+o08sU+w+uv5JrnQTd0FQLG1G8Bq6Nm2Xlsb6Iz0o1QqJI+IBxWdKSJ4p+6BhbKU5AzQZ5n5JD9eQQSiiFxzD2+FfA73bCTNSd8quHFh0a33mTAXukPJmLzLIK/6fgqQBiMcpLmcI5oX5YMsR2vRafK1BRD4GkHFpbklPdNHOSza7ox1cPAxuri5Vz/aGzEzY8bkMJXq/7lnrCrEZLbBRAu61JDC1Ju2OQgnUPSULJaOLLqiBUk2xk/pHiB6OZ0ZNH3zT9VY1KETQmN9qzzj8HFrWXVfs18+6xQPePRFf1dK5pD5TBB97cLM0povAtpwCAwew6Rv3941Tg==",
            "journal": {
                  "chaingraph_version": "0.4.0",
                  "kernel_digest": "sha256:81db00c29bffa3930a936bf2799074b45050cf8e17021a34267efb1418a52acc",
                  "output": {
                        "current_version_id": "2-81ead391846f6088ddab084e2119b8304224a671b6c3f4b598605661ccd91196",
                        "deactivated": false,
                        "did": "did:webvh:{SCID}:example.com:agents:alpha",
                        "entries_checked": 2,
                        "failures": [],
                        "valid": true
                  }
            }
      }
},
    {
      "tool_id": "art-285-acdc-delegation-chain-verifier",
      "tool_version": "1.0.0",
      "display_name": "ACDC Delegation Chain Verifier",
      "mcp_name": "verify_acdc_delegation_chain",
      "mandate_type": "compliance_mandate",
      "wave": 50,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-285-acdc-delegation-chain-verifier.html",
      "description": "Verifies a chain of Authentic Chained Data Containers (ACDC): per-credential SAID self-addressing integrity, issuer-to-issuee edge linkage between successive credentials, schema SAID match, termination at a stated root AID, and revocation-status passthrough (report, never resolve). KERI/ACDC/CESR ratified by the Trust over IP Foundation, January 2026. Verify-only; JSON-serialized ACDCs only, CESR binary streams not yet accepted.",
      "input_schema_ref": "chaingraph/art-285-acdc-delegation-chain-verifier.html#manifest",
      "consumes": [
        "art-284-did-webvh-log-verifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6126b6c80552a767fe0de0b45f76f0896f0dbb7f0576c62d25a6968418f9f819","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "export_capability": [
        "xlsx"
      ],
      "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IINTknPyYX1syxtjfx3tJK0898raMCeRIvw/nxsAU5sfcJx1hEZI24xfTrXuuZHTLt9Y6rP+fxtNKO8eUOd09wKrU6Y3cUzSweDGLGzbjalkeAIrG1JSaIGsptl1QnHrKyNQzffr0zipkjCxWUE8ri8ysOMyhffRP7SDjNHzyhABWN1plsULZEgRP/JsWL5QDT3wK8oJDKDqBr0fJXFEvg/uFeCRpAGHCFSvGanPWWJlBGNcnhER5+9qDfu72t2NEnvZMuTDW8Y41qX3wZnaOq/TaPV/lOpgxULJ+gYJU40q4/nfZQ46Wcn/qR4F0aJO4J41l3+fZk4Qs5XcHfPyMw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:6126b6c80552a767fe0de0b45f76f0896f0dbb7f0576c62d25a6968418f9f819",
      "output": {
        "chain_depth": 3,
        "edge_failures": [],
        "revocation_status_reported": [],
        "root_aid_matched": true,
        "said_failures": [],
        "valid": true
      }
    }
  }
    },
    {
      "tool_id": "art-286-anchored-extract-verifier",
      "tool_version": "1.0.0",
      "display_name": "Anchored Extract Verifier",
      "mcp_name": "verify_anchored_extract",
      "mandate_type": "compliance_mandate",
      "wave": 51,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-286-anchored-extract-verifier.html",
      "description": "Verifies an extract's Merkle inclusion against a root only when that root is anchored by a recognized source: a recognized OCG artifact/chain envelope, or an external anchor (RFC 3161 timestamp, OpenTimestamps, Sigstore transparency log, or an on-chain commitment composed via verify_eth_state_proof, VR-1). Explicitly refuses (anchored:false) a self-produced root with no recognized anchor class; the universal self-produced hash-chain explorer stays dead. Not-X-use-Y: use art-280 (verify_reserve_proof) for Merkle-SUM Proof-of-Reserves inclusion specifically; this kernel verifies plain (non-sum) Merkle inclusion for any anchored extract.",
      "input_schema_ref": "chaingraph/art-286-anchored-extract-verifier.html#manifest",
      "deadline": null,
      "deadline_note": "Voluntary evidentiary practice aligned with amended AS 1105 (FY2026) and the AICPA practice aid on not relying on unanchored chain explorers; no statutory deadline.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7532df2eced1bf011b8bb608c7ca0038e116d7d554d5439e90d09905d997091c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Dpr6QJO6pO7c/feJMDdhISvFugepOFba2PHDulndfr0ab8ZL4+SdGeWcV0vD+nWJ6iGOwLJqTgXBXEJYknX7IhzgGRCFKg8oqgBq1qvFsl9g+UmJ3XrZ/+ppriRo+TFLC5yulH56MVXgY6R7Z70pA2lxgmlAj9wnuya76uLITg8sFjE/qYc0TvI1gtX8e5iq4IXXW/0D0DZI+NoBsMKoExIpBrJDWGMA/Bu5p7zUM0sgPf83jRzSk51+s3jjzXgAAeI7W0wApr+55Uqbqoseqp/w1xEFF/NlfGq/H4WwxRUdAuASO8aMgDcZbIazCd+/nAg0G7+SdH+YVWzct4hDWA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:7532df2eced1bf011b8bb608c7ca0038e116d7d554d5439e90d09905d997091c",
          "output": {
            "anchor_note": "No external anchor of a recognized class was supplied; a self-produced root is not verifiable by this kernel.",
            "anchored": false,
            "anchored_extract_determination": "REFUSED_UNANCHORED",
            "claimed_root": null,
            "computed_root": "08679e383d66dbc4192bae473a37843066188e42635077349d1c7db7cf25b20c",
            "escalation": null,
            "not_proven": [
              {
                "detail": "This kernel verifies inclusion of a leaf hash under a root; it does not inspect or validate the extract's underlying content beyond that hash.",
                "item": "Extract contents beyond the leaf"
              },
              {
                "detail": "Inclusion of one leaf does not prove the root commits to a complete or unaltered set of records; items could be omitted from what the root represents.",
                "item": "Completeness of the committed set"
              },
              {
                "detail": "An RFC 3161/OTS/Sigstore/on-chain anchor proves the root existed no later than the anchor's own timestamp; it does not prove the extract is currently accurate or unchanged since.",
                "item": "Freshness beyond the anchor's own time semantics"
              },
              {
                "detail": "A self-produced hash chain with no external anchor is explicitly refused by this kernel (anchored:false): it is not treated as verified evidence.",
                "item": "Universal chain-explorer equivalence"
              }
            ],
            "regulatory_framework": "Voluntary anchored-extract verification aligned with amended AS 1105 (FY2026) and the AICPA practice aid on not relying on unanchored chain explorers; not a PCAOB audit.",
            "root_match": false,
            "source_class": null,
            "structural_error": null
          }
        }
      },
      "compute_proof_ready": "ready",
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-287-revocation-status-verifier",
      "tool_version": "1.0.0",
      "display_name": "Revocation-Status Verifier",
      "mcp_name": "verify_revocation_status",
      "mandate_type": "compliance_mandate",
      "wave": 52,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-287-revocation-status-verifier.html",
      "description": "Checks a receipt's optional W3C BitstringStatusList credentialStatus reference and reads the revocation bit at statusListIndex from a supplied, zero-egress status list credential. A set bit means revoked, and revocation overrides the receipt's own signature validity even when that signature is cryptographically valid. Absence of a credentialStatus reference is its own no-signal state, never treated as evidence of active status. Not-X-use-Y: this kernel checks revocation status only, it does not verify the underlying §16 signature itself.",
      "input_schema_ref": "chaingraph/art-287-revocation-status-verifier.html#manifest",
      "deadline": null,
      "deadline_note": "Voluntary evidentiary practice per SPEC.md §REVOKE-1 (OPTIONAL, additive profile); no statutory deadline.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1bba28fe16295e569ea0581670c5d95070c8d2057df9d9b6f24da30624c4c6f6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LEWhHJbhoTraUeVWr/U7XJAvagjhUafG/e2ZNldw2NUYi7KyzH4xcMXsFQJxI3QwaRlKW60noTipjwW5Z6GxiyoZtR1vUTB0MEGEeuftnsQwHwlvdjvjkulBZ31IWkjDHgBWhjwA2I5e6gVkvD85HZN7/psPgTiSGEMX7KaHNfMo9eRFM9VfjHgWpXz3vp3K/+jpSF5HJu9maGb2YtQ3LRSOEhsHv+1Vsta3OjdSpA2I+O0pQzs6fiidK2zMvPhpFokhdynz8WoYvJDKP7wK9SVzlD2lc1bzyeqVG1Nc63cIDzxLEQglPpg9pVjnD/xSYIma1e1MU2M6qowdidiMfQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1bba28fe16295e569ea0581670c5d95070c8d2057df9d9b6f24da30624c4c6f6",
          "output": {
            "note": "No credentialStatus was supplied on the receipt; absence is not evidence of active status.",
            "revoked_for_purpose": null,
            "status": "no-signal",
            "status_list_credential_url": null,
            "status_list_index": null,
            "structural_error": null
          }
        }
      },
      "export_capability": [
        "pdf",
        "xlsx"
      ]
    },
    {
      "tool_id": "art-288-map-iso20022-to-evm-calldata",
      "tool_version": "1.0.0",
      "display_name": "ISO 20022-to-EVM Calldata Mapper",
      "mcp_name": "map_iso20022_to_evm_calldata",
      "mandate_type": "compliance_mandate",
      "wave": 53,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-288-map-iso20022-to-evm-calldata.html",
      "description": "Deterministic bind of an ISO 20022 pacs.008 (customer credit transfer) or pacs.009 (FI credit transfer) payment message to EVM contract-call arguments, plus an OCG receipt of the mapping: resolved call, field bindings, unmapped required fields, and ABI type coercions. Draft-pinned generic ISO-20022-to-EVM profile: Swift blockchain-based shared ledger MVP (Besu/EVM-compatible, live 2026-07-09) has not published a field-binding table or a fixed contract ABI shape. Never queries a chain or RPC.",
      "input_schema_ref": "chaingraph/art-288-map-iso20022-to-evm-calldata.html#manifest",
      "deadline": null,
      "deadline_note": "Swift shared-ledger MVP live 2026-07-09, 17-bank pilot; agentic-commerce corridor use is a stated next application.",
      "consumes": [],
      "feeds": [
        "art-291-screen-onledger-transfer-batch"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:c434dd10ec7cc8e96757d0f1679f3dc90861bb065ca053bfa7646a8afa6e0a6c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-13"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "H3b3uIetFBoSDVKP4pfnFleTEBbA8jmjLMpWyJnn3W4TRTDVx0VrJprKZ9ImVbAyNFQqe/Ng5sBnmxiqBqL2gyYJ9OKxwFQkU0Z0JZzKvZMfBlPXj/lOMoqNu6yPU/J6EPgGlKQZp8dxrq1r7vPiNpxphM+MNivaX/n3ik5PoUUBz4s4ipVGoe4oyqDeCi82dC53aBAZ9MtebaU1AEkBxgi1jLLWGAgN6CRIw9v4OtAQ+8W/fU0VcP43K2M1xrk+JmLWmFp65Wl36Az0XE3JE47G5WeQIoofAvuFD5zySMAc17hzVsYNWeQuXtpEE/uO2CR8UeKguVJ7arRgJpG+AA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c434dd10ec7cc8e96757d0f1679f3dc90861bb065ca053bfa7646a8afa6e0a6c",
          "output": {
            "abi_type_coercions": [
              {
                "abi_input": "amount",
                "coercion": "decimal-to-minor-units-uint256",
                "iso_field": "instructedAmount",
                "type": "uint256"
              },
              {
                "abi_input": "currency",
                "coercion": "utf8-to-bytes32-padded",
                "iso_field": "currency",
                "type": "bytes32"
              },
              {
                "abi_input": "creditor",
                "coercion": "utf8-to-bytes32-padded",
                "iso_field": "creditorAccount",
                "type": "bytes32"
              }
            ],
            "draft_pinned": true,
            "field_bindings": [
              {
                "abi_input": "amount",
                "iso_field": "instructedAmount",
                "resolved": true,
                "type": "uint256"
              },
              {
                "abi_input": "currency",
                "iso_field": "currency",
                "resolved": true,
                "type": "bytes32"
              },
              {
                "abi_input": "creditor",
                "iso_field": "creditorAccount",
                "resolved": true,
                "type": "bytes32"
              }
            ],
            "iso_message_type": "pacs.008",
            "mapping_ok": true,
            "mapping_profile": "draft-generic-evm",
            "mapping_profile_version": "SLI-DRAFT-GENERIC-EVM-2026-07-13",
            "resolved_call": {
              "args": [
                "125050",
                "0x5553440000000000000000000000000000000000000000000000000000000000",
                "0x474232394e57424b363031363133333139323638313900000000000000000000"
              ],
              "function": "settlePayment"
            },
            "unmapped_required_fields": [],
            "warnings": []
          }
        }
      }
    },
    {
      "tool_id": "art-289-lint-besu-settlement-contract",
      "tool_version": "1.0.0",
      "display_name": "Besu Settlement Contract Linter",
      "mcp_name": "lint_besu_settlement_contract",
      "mandate_type": "compliance_mandate",
      "wave": 53,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-289-lint-besu-settlement-contract.html",
      "description": "Static conformance lint of a permissioned-EVM settlement contract (Solidity source or ABI) against six invariants: atomic PvP/DvP (paired-or-revert), no native-token/msg.value settlement dependence, a finality-hook/settlement event, a compliance-gate modifier preceding every value transfer, bounded participant-set loops, and upgradeability disclosure. Lightweight in-browser parse only, never solc, never a network call. v1 scope is source + ABI; bytecode/opcode heuristics are deferred. Not a security audit.",
      "input_schema_ref": "chaingraph/art-289-lint-besu-settlement-contract.html#manifest",
      "deadline": null,
      "deadline_note": "Swift shared-ledger MVP live 2026-07-09; bank settlement contracts moving from design to production review.",
      "consumes": [],
      "feeds": [
        "art-292-attest-settlement-orchestrator"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8452fcfb980e34593a3e46cab2d75a620d9e598ea12e618b94c74b04ff1f4ce7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-13"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LGv28MjYwvkciIV4MTOtsqM9cKlImvPNV9vXHf1K4Ncmy3biacp8soX+bDW3Mf7WFKqMOCkENFILZlqiqbhGEwTBPo9J40yglpAfIcmmp+yopoU2xW8tV6i0n1VDi9l2GMbAskJZR1u1sUjH/dAtkc0bdp2rq96H7iFcvifOlx4lZSBx78K13X0LlyzWEv1UeIscaC7ohzQroySXW+RICA36pFzRfclkDvkBmPohZ8R2E7+PIBb6SQ8O30m4uD7hLef7VwrLvLjBay+UJ9Q8w572lMZ1UY1tMS7IheSN0mwFFjKl0gHoDO+JfWV7rv1WCy6LSuZRsbY7bL11s94lWA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8452fcfb980e34593a3e46cab2d75a620d9e598ea12e618b94c74b04ff1f4ce7",
          "output": {
            "artifact_kind": "solidity",
            "fail_count": 0,
            "findings": [
              {
                "locus": "contract body",
                "rationale": "Two or more paired transfer calls guarded by require(...) found (atomic PvP/DvP heuristic).",
                "rule_id": "R1",
                "severity": "pass"
              },
              {
                "locus": "function modifiers/body",
                "rationale": "No payable functions or msg.value reads; settlement does not depend on the native token.",
                "rule_id": "R2",
                "severity": "pass"
              },
              {
                "locus": "event declarations",
                "rationale": "A Settled/Finalized/Settlement-named event declaration is present.",
                "rule_id": "R3",
                "severity": "pass"
              },
              {
                "locus": "transfer function signatures",
                "rationale": "Every transfer-named function carries a compliance-gate modifier (onlyCompliant/whenNotPaused/complianceGate).",
                "rule_id": "R4",
                "severity": "pass"
              },
              {
                "locus": "loop bounds",
                "rationale": "No unbounded participant-set loop pattern detected.",
                "rule_id": "R5",
                "severity": "pass"
              },
              {
                "locus": "upgradeability pattern",
                "rationale": "No upgradeable-proxy pattern (delegatecall/UUPS/TransparentUpgradeableProxy) detected.",
                "rule_id": "R6",
                "severity": "pass"
              }
            ],
            "invariants_pass": {
              "R1": true,
              "R2": true,
              "R3": true,
              "R4": true,
              "R5": true,
              "R6": true
            },
            "overall": "pass",
            "ruleset_profile": "sli-besu-settlement-v1",
            "warn_count": 0
          }
        }
      }
    },
    {
      "tool_id": "art-290-check-linea-l2-finality-window",
      "tool_version": "1.0.0",
      "display_name": "Linea L2 Finality Window Classifier",
      "mcp_name": "check_linea_l2_finality_window",
      "mandate_type": "compliance_mandate",
      "wave": 53,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-290-check-linea-l2-finality-window.html",
      "description": "Classifies a tokenized-deposit transfer’s finality risk given L2-batch to L1-settlement timing: soft (unsubmitted), batched (submitted, not yet final), or l1_final tier, reorg-window risk, and a safe-to-release verdict against a corridor policy cutoff. Fills the L2 gap classify_settlement_asset_finality does not cover. Classifies supplied state only, never observes the chain or an RPC. Draft-pinned generic optimistic/batched L2 model; Linea-specific published finality windows were not found at STEP-0 re-verify (2026-07-13). Not check_cash_leg_finality or classify_settlement_asset_finality.",
      "input_schema_ref": "chaingraph/art-290-check-linea-l2-finality-window.html#manifest",
      "deadline": null,
      "deadline_note": "Swift shared-ledger MVP live 2026-07-09; deposit-token interop checker trigger fired.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:96bc4cfa0b4c4dc33183c6c6c36cb074ef7ecf0c8a4e10dbd7552fefa7eeeb97","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-13"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "AESar2uNNaj0oxrSutJgygHh/AOYjANch0TDJZlnyo4JEP3uHXT6BrSxGuwmsgnxx5ElOAvMHpSpPB6n/GY//i1EA/Vk/+sF1X3J2dZ34VqpstQlQ4DyEYwr9DtH+ewiB5k6WpjRGLkyZaJ8Di93nCZzsUz7XK+1GRamkMU81bYMrLYJcdaRgYlcmaw0B4bwSnWHQjMswHvhVToxKsFQDAsY4XttMBhRtUhU9q5iIi6Hq/zZ1PuxBteVguCamEbBCeeB86uqiOERPxYSTNJfL2tJ+iWW10SwqEXsfHpN7Y0Y7saj+nykx9asJ7GGk05E9tVAUGWUkT+sX7S36122jA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:96bc4cfa0b4c4dc33183c6c6c36cb074ef7ecf0c8a4e10dbd7552fefa7eeeb97",
          "output": {
            "corridor_cutoff": "batched",
            "draft_pinned": true,
            "finality_tier": "l1_final",
            "rationale": [
              "l2_block=1234567, batch_submission_status=submitted, l1_finalization_status=finalized, asset_type=tokenized_deposit.",
              "Classified finality_tier=\"l1_final\" (reorg_window_risk=\"none\") from supplied state only; this kernel classifies supplied state and does NOT observe the chain.",
              "finality_tier meets or exceeds the required corridor_cutoff (\"batched\"); release is safe under the supplied policy."
            ],
            "reorg_window_risk": "none",
            "safe_to_release": true
          }
        }
      }
    },
    {
      "tool_id": "art-291-screen-onledger-transfer-batch",
      "tool_version": "1.0.0",
      "display_name": "On-Ledger Transfer Batch Screen",
      "mcp_name": "screen_onledger_transfer_batch",
      "mandate_type": "compliance_mandate",
      "wave": 53,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-291-screen-onledger-transfer-batch.html",
      "description": "Batch-level pre-commit sanctions and purpose-code screen for a shared-ledger transfer batch, modeled on the shipped screen_tip20_transfer_batch pattern: per-transfer status, screening-list hits, purpose-code validity, a batch-clean verdict, and coverage gaps. Reuses the same purpose-code enum and screening-hit shape as check_purpose_code_requirement / check_screening_list_coverage rather than duplicating their logic. Zero-network; screens against supplied flagged-name lists only.",
      "input_schema_ref": "chaingraph/art-291-screen-onledger-transfer-batch.html#manifest",
      "deadline": null,
      "deadline_note": "Swift shared-ledger MVP live 2026-07-09, 17-bank pilot moving tokenized-deposit transfers.",
      "consumes": [
        "art-288-map-iso20022-to-evm-calldata"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8b96056cb0c7a9e5152efaff0a3b8d4eb6cf558db3e7627a0aef99ed7511841b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-13"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ErEJfxVOiY2lB9ZrJ+/n4St9nxBoUUd8iTwTjdgf8QkuT2Yk7D6W4E5uVXj1KhKwrxNRFIxa4gXQ0MXEpNX1TiaPPM401vidC/zQvWDsptrd7NpIKFk8U/cfh2DJEOC2GJMWYdp+BU423iKK09di6hX2ptto4wGRIGm3Hn56Uc8ITM7xsc8tMkLRxsIkCJXOL4/CCvWHEY/md2yz00BV/Aenz9fqDm7NToYuOzZKiaaKgPvNv97PPPxTT6ggO/JFGDLB9heXN2QX4wwd1Uvr56ZKbdYl5TPWNFetEh5m1/kFAPzXHhPIsl0GcXWKG8QJfGTJUaX4Ozsom6BVSVAeaA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8b96056cb0c7a9e5152efaff0a3b8d4eb6cf558db3e7627a0aef99ed7511841b",
          "output": {
            "batch_clean": true,
            "coverage_gaps": [],
            "per_transfer": [
              {
                "hits": [],
                "index": 0,
                "purpose_code_ok": true,
                "status": "clean"
              },
              {
                "hits": [],
                "index": 1,
                "purpose_code_ok": true,
                "status": "clean"
              }
            ],
            "profile": "sli-batch-screen-v1",
            "transfer_count": 2
          }
        }
      }
    },
    {
      "tool_id": "art-292-attest-settlement-orchestrator",
      "tool_version": "1.0.0",
      "display_name": "Settlement Orchestrator Attestation",
      "mcp_name": "lint_settlement_orchestrator_conformance",
      "mandate_type": "infrastructure_mandate",
      "wave": 53,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-292-attest-settlement-orchestrator.html",
      "description": "Extends the lint_mcp_server_conformance (art-33) self-reported conformance lint to the settlement decision path: checks the off-chain orchestrator deciding commit/halt on a shared-ledger orchestration layer, never the ledger itself. Four-domain check (manifest lint, decision-policy reference, kernel-binding audit, transport audit) into a composite ship-readiness grade, binding the decision policy and invoked kernels to an execution-receipt chain. This is an unsigned lint result, not a signed attestation. audit_signature.signatures is empty by design, as it is on every unsigned OpenChainGraph node. Formerly named attest_settlement_orchestrator; that name remains accepted permanently.",
      "input_schema_ref": "chaingraph/art-292-attest-settlement-orchestrator.html#manifest",
      "deadline": null,
      "deadline_note": "Swift shared-ledger MVP live 2026-07-09; orchestration-layer attestation need follows the settlement-contract lint.",
      "consumes": [
        "art-289-lint-besu-settlement-contract"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e62a92dde406825f63c0b95978cb5a1070ed19f539f9c3a665a53cd2257c5ee0","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-13"}],
      "export_capability": [
        "pdf",
        "xlsx"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "G0YfyxZbFmI4xLWn4U3W0wLerIPg9BiiOgk/32jSeYsBdERULs2hOAPAPYsb/A5/u+cOB05RK01XYKxpmVrv/gyP0ykvay6C+tyZkDUHuzexLU10YWeIubFdMJafPBouIF3Qk/TGxEUteUsovfbHfjZFaRqUAEZn4F2GKqGF06kLPFFKkcXPJbLERP/ZPLBymDONEMemSwTBUfBPn5BHTRq4yCtjTVmYMkW87MByCBpveBfoLboxQNdBNK0yvCjXIazChhU0BN4NvR0QRMSDeDvvk2OtYRwWzVMNHX+IcxMsAhaJBOJ4BBweqgg7ozlFdyBDE4e2ksdT7QBJkI5m1w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4e7ce5129e31667f5c70ae5a5beb2d34564f5217b8e87133a8732f2bfdfee90d",
          "output": {
            "attestation": {
              "bound_tool_ids": [
                "art-288-map-iso20022-to-evm-calldata",
                "art-291-screen-onledger-transfer-batch"
              ],
              "composite_grade": "A",
              "composite_score": 100,
              "decision_policy_ref": "policy://sli/commit-halt-v1",
              "orchestrator_name": "swift-ledger-orchestrator",
              "transport": "https"
            },
            "checks": [
              {
                "code": "A01",
                "note": "name=swift-ledger-orchestrator",
                "status": "pass"
              },
              {
                "code": "A02",
                "note": "version=1.0.0",
                "status": "pass"
              },
              {
                "code": "A03",
                "note": "description present and non-trivial",
                "status": "pass"
              },
              {
                "code": "B01",
                "note": "decision_policy_ref=policy://sli/commit-halt-v1",
                "status": "pass"
              },
              {
                "code": "B02",
                "note": "decision_policy_ref uses a stable reference-safe charset",
                "status": "pass"
              },
              {
                "code": "C01",
                "note": "kernel_bindings count=2",
                "status": "pass"
              },
              {
                "code": "C02",
                "note": "2/2 bindings carry {tool_id, mcp_name}",
                "status": "pass"
              },
              {
                "code": "C03",
                "note": "no duplicate tool_id in kernel_bindings",
                "status": "pass"
              },
              {
                "code": "D01",
                "note": "transport=https",
                "status": "pass"
              },
              {
                "code": "D02",
                "note": "transport carries transit encryption",
                "status": "pass"
              }
            ],
            "overall": "pass",
            "per_domain_scores": [
              {
                "domain": "A",
                "label": "Orchestrator Manifest Lint",
                "score": 100
              },
              {
                "domain": "B",
                "label": "Decision Policy Reference",
                "score": 100
              },
              {
                "domain": "C",
                "label": "Kernel Binding Audit",
                "score": 100
              },
              {
                "domain": "D",
                "label": "Transport Audit",
                "score": 100
              }
            ]
          }
        }
      }
    },
    {
  "tool_id": "art-293-einvoice-format-validator",
  "tool_version": "1.1.0",
  "display_name": "E-Invoice Format Validator",
  "mcp_name": "validate_einvoice_format",
  "mandate_type": "compliance_mandate",
  "wave": 46,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-293-einvoice-format-validator.html",
  "description": "Conformance-validate a structured e-invoice extract against version-pinned Factur-X, XRechnung, PINT-AE, MyInvois, Peppol BIS 3.0/EN 16931 core (Belgium), or KSeF FA(3) (Poland) format rules: mandatory-field presence, currency/VAT-category codelist membership, line-item cardinality. Returns per-rule findings, missing_fields, and structural_completeness. Root node of the einvoice-validation-pipeline chain. Zero network, zero PII. Not a legal-validity determination.",
  "input_schema_ref": "chaingraph/art-293-einvoice-format-validator.html#manifest",
  "consumes": [],
  "feeds": [
    "art-294-einvoice-vat-calc-verifier"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5daa83b6ade4cbfb782fb404e16e80077c9264bb4f636e9c1d6e564294e89f58",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-06-28"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DGMSs/AtKA2UzfDqordsmsdzshSCnj6vNXHNGQhKunEBTfEVnqbMSNMvfxX/L1ihcoDIl1ZC5p2O6X6IFbpfvy74PTbF/qSCKsMj2b2CnXnFEzkOrzISCrzFCRa7i1zjFZfQd9nRojqY9OZ93F/g+iijzwCpVCBGNHt4V1lnlYIbwTcoNvYVOPLLPs1+4Ju5FsHDshruGx324jgXDXMHzB1we740BR7GW3rgGXdeHqSNCiz7qhfgSM2H4F2+LbQfGvguNrHWCnIcngqUyf8wFitdGqz4Gj6WK/yqMB26QCsPmC1tX9Jyh2JStYrTX52Y7wYXOhjvyjy+ZInRW7GHog==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5daa83b6ade4cbfb782fb404e16e80077c9264bb4f636e9c1d6e564294e89f58",
      "output": {
        "findings": [
          {
            "pass": true,
            "rule": "mandatory_field:invoice_number"
          },
          {
            "pass": true,
            "rule": "mandatory_field:invoice_date"
          },
          {
            "pass": true,
            "rule": "mandatory_field:currency_code"
          },
          {
            "pass": true,
            "rule": "mandatory_field:seller_name"
          },
          {
            "pass": true,
            "rule": "mandatory_field:seller_vat_id"
          },
          {
            "pass": true,
            "rule": "mandatory_field:buyer_name"
          },
          {
            "pass": true,
            "rule": "mandatory_field:leitweg_id"
          },
          {
            "pass": true,
            "rule": "codelist:currency_code"
          },
          {
            "pass": true,
            "rule": "cardinality:line_items_non_empty"
          },
          {
            "pass": true,
            "rule": "codelist:line[0].vat_category"
          },
          {
            "pass": true,
            "rule": "codelist:line[1].vat_category"
          }
        ],
        "format": "xrechnung",
        "line_item_count": 2,
        "missing_fields": [],
        "parse_error": null,
        "rule_set_version": "XRechnung CIUS 3.0.2 (DRAFT-PIN, unconfirmed as of 2026-07-13)",
        "structural_completeness": true
      }
    }
  },
  "export_capability": [
    "json",
    "vc"
  ]
},
    {
      "tool_id": "art-294-einvoice-vat-calc-verifier",
      "tool_version": "1.0.0",
      "display_name": "E-Invoice VAT Calculation Verifier",
      "mcp_name": "verify_einvoice_vat_calc",
      "mandate_type": "compliance_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-294-einvoice-vat-calc-verifier.html",
      "description": "Recompute an e-invoice's line VAT, per-category tax subtotals, tax total, and grand total from its line items under a supplied rounding convention, then compare against the document-asserted amounts. Reverse-charge and zero-rate categories are treated as zero VAT. Verifies arithmetic consistency only, not statutory rate correctness. Middle node of the einvoice-validation-pipeline chain. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-294-einvoice-vat-calc-verifier.html#manifest",
      "consumes": [
        "art-293-einvoice-format-validator"
      ],
      "feeds": [
        "art-295-einvoice-jurisdiction-mandate-router"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:986d37866299487054398f63d3e4ea13b3ae3c3ccd2e7c315e21d8269f9696e2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CARRGt3XF4/EShqj0tFEGDef5xZjy1UeWVwWewQWzaowELJhvP8QGqW0Cr4cmms2181IJ/CI3s/uIYFPFuc9lQwvSYonJfQIKzQ+uYAg8sT5G0KRXpt3xFbIhTBjgFleH7PcvTKVKC4MJ2eQkhbHezDoi80veq9x7bZM1JiHPQYJfR9HmSaDQZWnng2f5hL+PO8zlfJbzz+Yo2E4NndkVRdLhCssetRiRB3QH5lGx+696raSyuu1MZxtuyE3nxMKLcgdKerDLyTxWNHOcyCvynaQXmKdLMKAyHZSkAad2LAnXKMHxbGC716l9bDi7LJWko3gYLcc3Ldd6noF50Oqtg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:986d37866299487054398f63d3e4ea13b3ae3c3ccd2e7c315e21d8269f9696e2",
          "output": {
            "consistent": true,
            "grand_total_computed": 1690,
            "grand_total_delta": 0,
            "parse_error": null,
            "rounding": {
              "granularity": "per-line",
              "method": "half-up"
            },
            "subtotal_deltas": [
              {
                "matched_asserted_subtotal": true,
                "tax_amount_computed": 190,
                "tax_amount_delta": 0,
                "taxable_amount_computed": 1000,
                "taxable_amount_delta": 0,
                "vat_category": "S",
                "vat_rate_pct": 19
              },
              {
                "matched_asserted_subtotal": true,
                "tax_amount_computed": 0,
                "tax_amount_delta": 0,
                "taxable_amount_computed": 500,
                "taxable_amount_delta": 0,
                "vat_category": "Z",
                "vat_rate_pct": 0
              }
            ],
            "tax_total_computed": 190,
            "tax_total_delta": 0
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
  "tool_id": "art-295-einvoice-jurisdiction-mandate-router",
  "tool_version": "1.1.0",
  "display_name": "E-Invoice Jurisdiction Mandate Router",
  "mcp_name": "route_einvoice_jurisdiction_mandate",
  "mandate_type": "compliance_mandate",
  "wave": 46,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-295-einvoice-jurisdiction-mandate-router.html",
  "description": "Deterministic lookup over a version-pinned mandate table: given supplier/buyer country, transaction type, and transaction date, routes to the applicable e-invoicing regime, format, phase status, and transmission channel. Covers France (PDP, B2B receive obligation live 2026-09-01), Germany (XRechnung), UAE (PINT-AE pilot), Malaysia (MyInvois), Belgium (Peppol BIS 3.0, mandatory since 2026-01-01), and Poland (KSeF FA(3), mandatory-use phase-in from 2026-02-01). Third node of the einvoice-validation-pipeline chain. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-295-einvoice-jurisdiction-mandate-router.html#manifest",
  "consumes": [
    "art-294-einvoice-vat-calc-verifier"
  ],
  "feeds": [
    "art-296-einvoice-transmission-receipt-builder"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:0b10eacc01a0d809c04d6f3548e9c09c589eb0eeb330672b8dfaab9877cd9d20",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-06-28"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "MAkrD3Ow9M14uF6astVODm7aHvGtjWLdC5DAuxtf6iMB2D1M3LFGw2CO8dfjKzjnJQsR1tf8Bnp8UNMAZ7NkTxybKoY2QX3hPuR9JBpACivhkBQqTdH0jdG4InBU7RNVK6m2/d291qXV7aX75lqUTNdY2UKmFJUY933hVDfcs2QVNfczdit0v7cf2ynA3ev/pEp2b6+KE6wK/0pEjEUDPSPThX2wvmnG9zsQOk9NMHFbGAEYbaFdGbHmBzTfoGgyEEtAT+J9m80yi+K0fSxztmzrfRpbhkovPK5H8R3U7nYoHw6mGRII+sBZuZEky+ikO93qgPiq8xQIb7TRrZpeIw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:0b10eacc01a0d809c04d6f3548e9c09c589eb0eeb330672b8dfaab9877cd9d20",
      "output": {
        "applicable_format": "factur-x_or_ubl",
        "mandatory_from": "2026-09-01",
        "phase_status": "mandatory",
        "regime_country": "FR",
        "table_version": "einvoice-mandate-table-2026-07-24",
        "transmission_channel": "PDP"
      }
    }
  },
  "export_capability": [
    "json",
    "vc"
  ]
},
    {
  "tool_id": "art-296-einvoice-transmission-receipt-builder",
  "tool_version": "1.1.0",
  "display_name": "E-Invoice Transmission Receipt Builder",
  "mcp_name": "build_einvoice_transmission_receipt",
  "mandate_type": "compliance_mandate",
  "wave": 46,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-296-einvoice-transmission-receipt-builder.html",
  "description": "Build a hash-anchored receipt proving a specific e-invoice's transmitted bytes were format-validated and VAT-arithmetic-checked, with the routed mandate attached. Binds to the as-transmitted document digest (and, for hybrid Factur-X, the embedded XML digest separately). Proves validation was run; never certifies tax compliance, legal validity, or clearance-platform acceptance. Carries SPEC.md §27 pre-transmission gate wiring (review_required release gate, emergency_override for a rejected batch) -- schema-only, enforcement pending HA-RETRO-1. Terminal node of the einvoice-validation-pipeline chain. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-296-einvoice-transmission-receipt-builder.html#manifest",
  "consumes": [
    "art-295-einvoice-jurisdiction-mandate-router"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:efd9144454c833bea1da03c8c2003da04d8d3b21f33bd1e5e963a512bf21278c",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-06-28"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EAQLt/dpwIWHHsKzSZrsOu6CuLrc/6ammJe0snA7L5cmHniBFuF+h7LeZ7m52QHW67mIK+4/nSsnBZNZTQOhGgPsnzGprHu1KvbBmS66PiIRMftkAsdZFy9paQ+zXkfbCcH7A5Et7zUddcgCPgqSwqYWs52LV48SBEmAC3FfTZ4j7U3GM/+6yxxHumVbxFJQrK3cL9d+oPygRBqNhKveliOjp0kBFMEkPW1aerjbkfD/G6rNDYAkumkB7fzehvF4B1m33mkcT9yIHrCxzm/9+Vhx1ttV2msRUlEVA8pFuHgcVSxc4FAY7BZ8u34wK8LMuTqCIevTLFLnV6XkNrUDvw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:efd9144454c833bea1da03c8c2003da04d8d3b21f33bd1e5e963a512bf21278c",
      "output": {
        "claim_strength": "format_and_arithmetic_verified",
        "document_sha256": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "embedded_xml_sha256": null,
        "format": "xrechnung",
        "format_gate_passed": true,
        "ha_wiring": {
          "enforcement": "schema_only_pending_HA-RETRO-1",
          "override_gate_policy": "emergency_override",
          "release_gate_policy": "review_required",
          "release_gate_role": "reviewer"
        },
        "not_legal_advice": "Proves the transmitted document was format-validated and VAT-arithmetic-checked. Does not certify tax compliance, legal validity, or clearance-platform acceptance.",
        "routed_mandate": {
          "applicable_format": "factur-x_or_ubl",
          "mandatory_from": "2026-09-01",
          "phase_status": "mandatory",
          "regime_country": "FR",
          "table_version": "einvoice-mandate-table-2026-07-13",
          "transmission_channel": "PDP"
        },
        "steps": [
          {
            "gate_passed": true,
            "mcp_name": "validate_einvoice_format",
            "tool_id": "art-293-einvoice-format-validator"
          },
          {
            "gate_passed": true,
            "mcp_name": "verify_einvoice_vat_calc",
            "tool_id": "art-294-einvoice-vat-calc-verifier"
          },
          {
            "gate_passed": true,
            "mcp_name": "route_einvoice_jurisdiction_mandate",
            "tool_id": "art-295-einvoice-jurisdiction-mandate-router"
          }
        ],
        "validated": true,
        "vat_gate_passed": true
      }
    }
  },
  "export_capability": [
    "json",
    "vc"
  ]
},
    {
      "tool_id": "art-297-agentic-dispute-ce30-linter",
      "tool_version": "1.0.0",
      "display_name": "Agentic Dispute CE3.0 Evidence Linter",
      "mcp_name": "lint_compelling_evidence_ce30_agentic",
      "mandate_type": "compliance_mandate",
      "wave": 47,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-297-agentic-dispute-ce30-linter.html",
      "description": "Deterministic lint of a supplied agentic-dispute evidence bundle against Visa CE3.0 compelling-evidence requirements, agentic-transaction profile: authorization-at-delegation (AP2 mandate), agent-identity (TAP signature + agentic token), fulfillment (delivery proof), plus the CE3.0 prior-transaction linkage test. Verify-side evidence assembly only -- never a win/loss prediction or a claim of Visa/Mastercard acceptance. Terminal node of the assemble-agent-dispute-evidence chain. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-297-agentic-dispute-ce30-linter.html#manifest",
      "deadline": null,
      "deadline_note": "Visa VAMP dispute-ratio threshold tightened 2026-04-01; Mastercard Agent Pay Acceptance Framework broadly available 2026",
      "consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-23-visa-trusted-agent-protocol-inspector",
        "art-24-mastercard-agentic-token-builder",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d3eda08f22ed67d0de0b0d7d5ca2877c9954ecff416aae4cf51d9906260ae374","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IPNtpSOfaF0LHuR0ekzqrrq1SPZxzItWUWqk1ZzeNgoTKl6sfpFdG/Xmn+u5gUc4rafMhNU9gaiFb9Y3pgwP+A8t6NeQ/JYTTYOzCMHpQUYk8vpkeiaC5JWsXVBmM67GDT9xZS+DRqsmfbylCidxCyhJRmyXyTEcyWhtQeUaSDEn7weYtR5LpNYj8QPr+E+c7uCDtPNcMiiBHAtKYpJM4QTe9yyNPSZRIJkLqKWvnWIdtdFY5KtZ+DkJ+/f5F1EuKMo1BBS5kQymJrOA9NczV/gTYyf0W3ikmc09zoxMVYEX+aHnfoO9iHWFsowKDmeZCGEMGcRw9+2V41PQqojItg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d3eda08f22ed67d0de0b0d7d5ca2877c9954ecff416aae4cf51d9906260ae374",
          "output": {
            "ce30_prior_txn_test": "not_applicable",
            "ce30_readiness": "ready",
            "insufficient_evidence": false,
            "missing_elements": [],
            "network": "visa",
            "not_a_win_prediction": "Asserts that the supplied delegation, agent-identity, and fulfillment artifacts replay to this evidence bundle and, where supplied, meet the CE3.0 prior-transaction linkage test. Never a prediction of dispute outcome or a claim of Visa/Mastercard acceptance.",
            "per_element": [
              {
                "element": "authorization_at_delegation",
                "status": "present"
              },
              {
                "element": "agent_identity",
                "status": "present"
              },
              {
                "element": "fulfillment",
                "status": "present"
              }
            ],
            "reason_code": "10.4"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-298-aca-affordability-safe-harbor",
      "tool_version": "1.0.0",
      "display_name": "ACA Affordability Safe-Harbor Calculator",
      "mcp_name": "compute_aca_affordability_safe_harbor",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-298-aca-affordability-safe-harbor.html",
      "description": "Compute the ACA employer-mandate affordability percentage under each of the three IRC 4980H(a)(1)(B) safe harbors (W-2 wages, rate-of-pay, federal poverty line) against a supplied lowest-cost self-only monthly premium, using the version-pinned 2026 affordability threshold (9.96%, IRS Rev. Proc. 2025-25). Returns per-harbor affordability verdicts and which harbor(s) the offer satisfies. Root node of the aca-226j-response-composer chain. Not tax or legal advice -- calculation evidence only. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-298-aca-affordability-safe-harbor.html#manifest",
      "deadline": null,
      "deadline_note": "2026 ACA affordability threshold rose to 9.96% (IRS Rev. Proc. 2025-25), largest single-year jump since indexing began",
      "consumes": [],
      "feeds": [
        "art-299-aca-esrp-exposure"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:517e7ad37c5723b7df461c5830be597d989342422f3c60cad22e15cdcd8d7695","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "B6fGh0cd/JTuCm3j0AZCiOpR9VYy1svzjss0YMyDcukPEoLoTYZUf9pRZtx6+ep/pbuj/DxnXBA2pQ67ME4WdiTB8J9ZU+v59TGDxYzRkPePm34VS+WMtB70q0x86E0DE5k988FJQMDohn4QqJy7S/YHJzxwKdsp70QchamOYcoGS25lv5xA5F2SDwMbkZYrYDaPcygb3S06a6avigRczCNs9CF6cA8qL8bxO0JwGW54aJkCwdVEcIvJeKKPPLSdCW9Bh019N6aVpbesRGCbxCjkXhNqA2x3a5S5EyLOJbIDDfIFDvF6sYgnc6FrAdDbF0xEMe2sqYz3bL2vCb0dnQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:517e7ad37c5723b7df461c5830be597d989342422f3c60cad22e15cdcd8d7695",
          "output": {
            "affordability_pct": 0.0996,
            "error": null,
            "harbors": {
              "fpl": {
                "affordable": true,
                "computed": true,
                "monthly_max_employee_contribution": 129.895
              },
              "rate_of_pay": {
                "affordable": null,
                "computed": false,
                "monthly_max_employee_contribution": null
              },
              "w2": {
                "affordable": true,
                "computed": true,
                "monthly_max_employee_contribution": 99.59999999999998
              }
            },
            "harbors_satisfied": [
              "w2",
              "fpl"
            ],
            "lowest_cost_self_only_monthly_premium": 90,
            "satisfies_any_harbor": true,
            "tax_year": "2026"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-299-aca-esrp-exposure",
      "tool_version": "1.0.0",
      "display_name": "ACA Employer Shared Responsibility Payment Exposure Calculator",
      "mcp_name": "compute_esrp_exposure",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-299-aca-esrp-exposure.html",
      "description": "Compute proposed IRC 4980H(a) (\"no offer to 95%\") and 4980H(b) (\"unaffordable / not minimum value\") Employer Shared Responsibility Payment exposure from supplied full-time-employee counts, minimum-essential-coverage offer counts, and PTC-triggering employee counts, using the version-pinned 2026 per-employee penalty amounts ($3,340 (a) / $5,010 (b) annual, IRS Rev. Proc. 2025-26). Returns the controlling penalty and monthly breakdown. Exposure math only, not a determination that an assessment is owed. Feeds the terminal aca-226j-response-composer receipt. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-299-aca-esrp-exposure.html#manifest",
      "deadline": null,
      "deadline_note": "2026 4980H(a)/(b) annual penalty amounts confirmed via IRS Rev. Proc. 2025-26",
      "consumes": [
        "art-298-aca-affordability-safe-harbor"
      ],
      "feeds": [
        "art-300-aca-226j-response-evidence-pack"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:d07a15cc7c7b3da43db92b15595249dcb3e8a81ca73d2e0144172de35b6e410e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JIM9Z0nTznA9/mAJ5io7a/ct2+XQjgb1+9Wg4gH6xR8FOENGqAJ1um5boRtqxla9KTr6gdy9vddxmcvjQZIezQdHlE4YGCZP3byRhyKourqSHqP0BjhKbVvmBrmjT4gPBqlv4Ce2tAHZQYMQV4CijzbbooFR2zEgIc7yK/kszEEmbTxklmOCKK37zatjU6O5vkuzjIkwB7f4+XsWj0wkpRHcJLTM2XttC/riNKKsWjkSbblAjZVvE3S99wC/ED5SK3v8Jxn/5JiaUR57qH9r3iAFJyu9z4JyI4R2fw2V8oAsiLyyhCVVkix+xj3+/U5f+TdeDIbnjXd4L2lAhQSNxg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d07a15cc7c7b3da43db92b15595249dcb3e8a81ca73d2e0144172de35b6e410e",
          "output": {
            "a_applicable": true,
            "a_exposure_annual": 567800,
            "a_monthly_per_employee": 278.3333333333333,
            "b_applicable": false,
            "b_exposure_annual": 25050,
            "b_monthly_per_employee": 417.5,
            "controlling_exposure_annual": 567800,
            "controlling_penalty": "a",
            "coverage_offer_rate": 0.75,
            "error": null,
            "offer_rate_threshold": 0.95,
            "tax_year": "2026"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-300-aca-226j-response-evidence-pack",
      "tool_version": "1.0.0",
      "display_name": "226J Response Evidence Pack Builder",
      "mcp_name": "build_226j_response_evidence_pack",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-300-aca-226j-response-evidence-pack.html",
      "description": "Terminal node of the aca-226j-response-composer chain: assembles a replayable evidence pack responding to an IRS Letter 226J proposed Employer Shared Responsibility Payment assessment. Recomputes the affordability and exposure position against the IRS-asserted figure, computes the response-window deadline from the supplied letter date, and records a named-HR/benefits-officer attestation closure (mirrors the shipped ML-2 escalation-closure pattern). Not a guarantee of abatement -- this is the employer's replayable dispute evidence, never a determination of liability. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-300-aca-226j-response-evidence-pack.html#manifest",
      "deadline": null,
      "deadline_note": "Letter 226J response-window length DRAFT-PINNED at 30 days pending a confirmed Rev. Proc. citation -- re-verify before relying on the computed deadline",
      "consumes": [
        "art-299-aca-esrp-exposure"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4d4fb49f4aacbbbdeaa9aa38d119217e3cfd2e5234bb80c9fd6bb055afb5fcc9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "B9fSFuUN/CvQgSfqwGRLVZGspRF5H4GJ/IJUHEsAJscGH21kXmsJo9tHINrbuARnNkwBwthJXLYJz/VT7YtJHwfZvbNSDsM3VcwbH9SepCaT72Wq9Q8TSmvmSkTklw3xDGecxh7F5pyys96mKkA/kunQp3Z0rvJ8qj/hzlJSLaoMGWQ1LNkENT5upklRcW4/b2Bdl41DX9fnhieAM5z7aC3SBzyV/PHeWmZxMYryqcIKk4jA/QO525k1NohTRhLeLnVS4jnPjXveHYNCsDVAMe+btxDX5Y+KJdDHZ8H5+BoAndDQMAmr4Nf9w6EWpIN7q3X4BrPLHyR8rdZKuqu27w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4d4fb49f4aacbbbdeaa9aa38d119217e3cfd2e5234bb80c9fd6bb055afb5fcc9",
          "output": {
            "attestation": {
              "signed_at": "2026-08-10T15:00:00Z",
              "signer_name": "Jordan Rivera",
              "signer_title": "VP, Total Rewards",
              "status": "closed"
            },
            "disputed_employee_count": 2,
            "error": null,
            "exposure_delta": 0,
            "irs_asserted_esrp_annual": 567800,
            "letter_date": "2026-08-03",
            "recomputed_exposure_annual": 567800,
            "response_deadline": "2026-09-02",
            "response_window_days": 30,
            "response_window_source": "DRAFT-PIN 30 days (traditional Letter 226J response period; unconfirmed 90-day reports as of 2026-07-13 not yet reconciled to a cited Rev. Proc.)"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-301-section125-ndt",
      "tool_version": "1.0.0",
      "display_name": "§125 Cafeteria Plan Nondiscrimination Tester",
      "mcp_name": "run_section125_ndt",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-301-section125-ndt.html",
      "description": "Runs the §125 cafeteria-plan nondiscrimination tests from supplied aggregate participant counts: an eligibility-ratio test and a contributions-and-benefits ratio test (§410(b)-style ratio-percentage analogy -- IRS has never finalized regs under §125(g)(3), DRAFT pending final rules), and the statutory key-employee 25% concentration limit (IRC §125(b)(2), fixed). Returns per-test pass/fail and the concentration ratio. Not a plan-qualification opinion -- verify-side employer-evidence assembly only. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-301-section125-ndt.html#manifest",
      "deadline": null,
      "deadline_note": "Eligibility-ratio and contributions-and-benefits thresholds are DRAFT (no finalized §125(g)(3) regs); key-employee 25% concentration limit is a fixed statutory constant (IRC §125(b)(2))",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:88e54dc6a5136721213a32c5acbcb0563bf120ad2af4e3f8e9f58caadc9665da","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Exumf4QAJtYX1u2d7yIRuZAT92LvgjxSwaUEEFLTQq0Ht+02K7qfp73o0dYFbJGj18Qbv0RkaUhnhKupCHtQUyVDjpRxXowXMupHI2nlaTh4DCOZRw38v3UltN1L6UEqKOGla38npscxcd9wX3Lhx/o90ukB1pxIHa2uO65dxRQFqGhhB+hgMtRYmLcaery1HiNqhYqAAUf6BT6dNO0fZw8ILxGGcV3BC1MkSqgbfDzkMRY3o+izco3d+0un674oDG0S2TkrQKyPZ2isL3pFzJwN5qSO5d7h/dWeygtshCYDpDUkN0y9zg7it+4xvMgcupXmd3fPNUPxqLpC99Ttkw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:88e54dc6a5136721213a32c5acbcb0563bf120ad2af4e3f8e9f58caadc9665da",
          "output": {
            "all_tests_pass": true,
            "benefits": {
              "hce_avg_benefit_pct": 0.055,
              "nhce_avg_benefit_pct": 0.06,
              "pass": true,
              "ratio": 1.0909090909090908,
              "threshold": 1
            },
            "concentration": {
              "concentration_ratio": 0.15,
              "limit": 0.25,
              "pass": true
            },
            "eligibility": {
              "hce_eligibility_rate": 1,
              "nhce_eligibility_rate": 0.9,
              "pass": true,
              "ratio": 0.9,
              "threshold": 0.7
            },
            "error": null
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-302-401k-adp-acp-test",
      "tool_version": "1.0.0",
      "display_name": "401(k) ADP/ACP Nondiscrimination Tester",
      "mcp_name": "run_401k_adp_acp_test",
      "mandate_type": "compliance_mandate",
      "wave": 48,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-302-401k-adp-acp-test.html",
      "description": "Runs the IRC §401(k)(3) Actual Deferral Percentage test and the §401(m)(2) Actual Contribution Percentage test from supplied HCE vs NHCE deferral/match percentages (current-year or prior-year method), applying the fixed statutory permitted-disparity limits (1.25x, or 2 percentage points and 2x, whichever is greater). ACP is optional. Returns per-test pass/fail and the percentage-point excess if failed -- a simplified excess figure, not a full leveling-method dollar correction schedule. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-302-401k-adp-acp-test.html#manifest",
      "deadline": null,
      "deadline_note": "IRC §401(k)(3)(A)(ii)/§401(m)(2) permitted-disparity limits are fixed statutory constants, not annually indexed",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:b5846a6b36327671eca8553c1a075d732ce6a236e0cf86fbd688c4ee4e52a6ad","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F2km2eJ6kTYYDgBGLW0BjjUAUO7mZ2KWkeH12QQU4KkmowL3HWA0uPc/9hfTVgCkLbsBGKMIkwEyLCb3KCqLGCT7p30HK8Ems8xYN8MsQiWkK/uY253uSVoOWAqIM6D0G0nHugFKgGVmc0mkMqNWXzhn4azSL2y0rz9dyATHZ3Mji5qXzYP0lYOQPlzJjjEc0ArgfhX+h6UB4vJPkpDvDByHaoVYYsmvx49yFIpfDv+E7FTSwtEYYuXYCv7CG0L3E8UnJCJiSws/2IBiCnbF3ZCQczwfEvjL7hZRLb6TvsgJP2SedOy7D4U5HDGlcMmVzw1Sg+A3bvVyMxdmEaQQlg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b5846a6b36327671eca8553c1a075d732ce6a236e0cf86fbd688c4ee4e52a6ad",
          "output": {
            "acp": {
              "allowed_max_pct": 0.05500000000000001,
              "computed": true,
              "excess_pct": 0,
              "hce_pct": 0.04,
              "nhce_pct": 0.035,
              "pass": true
            },
            "adp": {
              "allowed_max_pct": 0.07,
              "computed": true,
              "excess_pct": 0,
              "hce_pct": 0.06,
              "nhce_pct": 0.05,
              "pass": true
            },
            "all_tests_pass": true,
            "error": null,
            "method": "current_year"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-303-aiuc1-control-evidence-linter",
      "tool_version": "1.0.0",
      "display_name": "AIUC-1 Control Evidence Linter",
      "mcp_name": "lint_aiuc1_control_evidence",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-303-aiuc1-control-evidence-linter.html",
      "description": "Lints a supplied control-evidence bundle against the 23 automatable AIUC-1 v2026-Q1 controls (pillars A-F): version-guards the catalog, classifies each automatable control receipt-backed, attestation-only, or missing, and reports per-pillar and overall coverage. The ~26 procedural AIUC-1 controls are structurally out of automatable scope and are reported as such, never claimed covered. Asserts the supplied evidence replays to this coverage score; never that any control is certified, and never an AIUC/underwriter endorsement. Not the same as an underwriting decision or a policy-selling tool. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-303-aiuc1-control-evidence-linter.html#manifest",
      "deadline": null,
      "deadline_note": "AIUC-1 churns quarterly (2026-Q1 catalog pinned); a version mismatch REFUSES scoring rather than silently scoring against a stale catalog.",
      "consumes": [],
      "feeds": [
        "art-304-aiuc1-evidence-pack-assembler"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:6f0ccad9827533502bb1df8c0b7beedc187822ea5f7bf07363637c00336b8f21","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IDPCckn4FlYyoo4/4thrjzHqHRCCrJoOFuct1ftYO/YO014ExwsJjiD6+rT2sP96HguOg1SqpoCjKjH+4pWWHBVsDNl488KJeUvaaUqd0CkAVb1UIPAi4k3mZ6abd20iIp3JPTnELuqMQeFBULgrdTc56SPTCgAKKO4ekm3hja4pbo+qa19OMi1Xzr3jagmsqarWHwcPr7v66k1RXPlWxRYacYkysK3Hwa/jDpP7roKB5yt1NnpUQzqxmwkT2M6dG3vINi2VxhLvBZ1G+945ECJAmKjxAgyMimBIRzpgkochVMuZBDThZHw0jgGbrDYph19w2cxDDDDtNwrHxnP57Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6f0ccad9827533502bb1df8c0b7beedc187822ea5f7bf07363637c00336b8f21",
          "output": {
            "aiuc1_version": "2026-Q1",
            "attestation_only_count": 0,
            "automatable_scope": 23,
            "insufficient_evidence": false,
            "missing_count": 0,
            "overall_coverage": 1,
            "per_control": [
              {
                "control_id": "AIUC-A-01",
                "pillar": "A",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-A-02",
                "pillar": "A",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-A-03",
                "pillar": "A",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-A-04",
                "pillar": "A",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-B-01",
                "pillar": "B",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-B-02",
                "pillar": "B",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-B-03",
                "pillar": "B",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-B-04",
                "pillar": "B",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-C-01",
                "pillar": "C",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-C-02",
                "pillar": "C",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-C-03",
                "pillar": "C",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-C-04",
                "pillar": "C",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-D-01",
                "pillar": "D",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-D-02",
                "pillar": "D",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-D-03",
                "pillar": "D",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-D-04",
                "pillar": "D",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-E-01",
                "pillar": "E",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-E-02",
                "pillar": "E",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-E-03",
                "pillar": "E",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-E-04",
                "pillar": "E",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-F-01",
                "pillar": "F",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-F-02",
                "pillar": "F",
                "status": "receipt-backed"
              },
              {
                "control_id": "AIUC-F-03",
                "pillar": "F",
                "status": "receipt-backed"
              }
            ],
            "per_pillar_coverage": {
              "A": 1,
              "B": 1,
              "C": 1,
              "D": 1,
              "E": 1,
              "F": 1
            },
            "procedural_controls_out_of_scope": 26,
            "receipt_backed_count": 23,
            "version_mismatch": false
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-304-aiuc1-evidence-pack-assembler",
      "tool_version": "1.0.0",
      "display_name": "AIUC-1 Evidence Pack Assembler",
      "mcp_name": "assemble_aiuc1_evidence_pack",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-304-aiuc1-evidence-pack-assembler.html",
      "description": "Assembles a signed, AIUC-1 control-keyed evidence pack from execution receipts, escalation closures, and work mandates: binds each mapped control to its resolved artifact digests, computes pack_claim_strength as the honest minimum across bound controls, and exports an OSCAL Assessment Results document (arXiv:2604.13767 AI-evidence property-extension mapping, cited not vendored) plus an optional cadence attestation referencing the shipped aggregate_execution_receipts kernel. Verify-side evidence assembly only; never asserts these controls are certified or that any underwriter accepts the pack. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-304-aiuc1-evidence-pack-assembler.html#manifest",
      "deadline": null,
      "deadline_note": "Version-pinned to the same 2026-Q1 AIUC-1 catalog anchor as art-303; a mismatch REFUSES assembly.",
      "consumes": [
        "art-303-aiuc1-control-evidence-linter",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "feeds": [
        "art-305-aiuc1-evidence-freshness-lint"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:bde1926d75bbc6dbc37f1d43332bd1684a077131e61b89d6e99929a12b8cf33c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GM3RQ9yP/vGqU4E+u6AnsVRC7ZTvHr4r98nZtqthIrIVeUheNMM+1h9fpSsuGnKWoWuujOE93BSHdZVKGMJPIAE/3ZdrN5ST7p4N7Qnd3Pzo/6HNPpIfsOoMa37TTKGwLhQe2mxamLJpgp2vZ2OMUjW8gOxm/3OOc6lBv6DFTlwBEelg3UEA2Be6XK20StJdZ+wCo2xIwwnyLMurt1SaDwbLLdbFrgXxhpq0HlteblJWX1JB7yugHCairH7QE0vpDMMtR8C6uRPDRGXPQkQ3c0OJ0ooD0twBkDkGPKIsD/wLD+hMLieOFmQrnDri3WWGrEWJIQM8bOMPEkwUoS1n/w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bde1926d75bbc6dbc37f1d43332bd1684a077131e61b89d6e99929a12b8cf33c",
          "output": {
            "aiuc1_version": "2026-Q1",
            "anchor": null,
            "cadence_attestation": {
              "all_within_cadence": true,
              "period_days": 90,
              "rows": [
                {
                  "control_id": "AIUC-A-01",
                  "max_gap_days": 45,
                  "within_cadence": true
                }
              ]
            },
            "controls": [
              {
                "artifact_digests": [
                  "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
                ],
                "claim_strength": "receipt-backed",
                "control_id": "AIUC-A-01",
                "status": "receipt-backed"
              },
              {
                "artifact_digests": [
                  "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
                  "sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd"
                ],
                "claim_strength": "receipt-backed",
                "control_id": "AIUC-B-01",
                "status": "receipt-backed"
              },
              {
                "artifact_digests": [
                  "sha256:eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
                ],
                "claim_strength": "receipt-backed",
                "control_id": "AIUC-E-01",
                "status": "receipt-backed"
              }
            ],
            "insufficient_evidence": false,
            "oscal_assessment_results": {
              "_source_citation": "arXiv:2604.13767 AI-evidence property-extension mapping (Apache-2.0 reference implementation); documented mapping only, not a runtime dependency.",
              "aiuc1_version": "2026-Q1",
              "results": [
                {
                  "control_id": "AIUC-A-01",
                  "state": "satisfied"
                },
                {
                  "control_id": "AIUC-B-01",
                  "state": "satisfied"
                },
                {
                  "control_id": "AIUC-E-01",
                  "state": "satisfied"
                }
              ],
              "type": "oscal-assessment-results"
            },
            "pack_claim_strength": "receipt-backed",
            "version_mismatch": false
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-305-aiuc1-evidence-freshness-lint",
      "tool_version": "1.0.0",
      "display_name": "AIUC-1 Evidence Freshness Lint",
      "mcp_name": "lint_insurance_evidence_freshness",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-305-aiuc1-evidence-freshness-lint.html",
      "description": "Freshness lint keyed to the AIUC-1 quarterly re-test cadence: flags any control whose newest receipt is more than 90 days old and computes cert_expiry (cert_anniversary plus 12 months) with cert_expired / cert_expiring_within_days flags. Pure civil-calendar day-count arithmetic, never a Date object, so the verdict is byte-identical across browser, server, and zkVM guest. Freshness/expiry flags only, never a certification claim. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-305-aiuc1-evidence-freshness-lint.html#manifest",
      "deadline": null,
      "deadline_note": "AIUC-1 quarterly re-test cadence (90-day staleness threshold) and a 12-month cert period are fixed constants documented in the kernel header, not annually indexed.",
      "consumes": [
        "art-304-aiuc1-evidence-pack-assembler"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8dbc646bb29e68a985eb5fdcf053ed106137917d9b89dd4ec179f792589bf9cf","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JNHZ4sSxLnNIcyeduonJvA7ez+Q7lTVD7jMc58osw4QI3Yt4wyz1hur0RAR6rgEhR9SC/vahYsengXsUpfV6DS62jhcb4+xMCIEoQ4d9HMI3CJDXKzEoX5JFcISEsB9PBVo/jEEq9oXYx1/Z+5aLw62fpaGCnlO2nHT4qh1ThDcvt4DpMiZOx6xha8+WHMDOOW/nqUFEW0tQZDmqPj+3FCPshgYMzvNYSK9rvtVvPO9EfM+sBnCivt1rDXLBM6hxLpZOhvMLmg6llZVeg50wErJyF3WHg5yqI+EAl/axDPokf6ly/ot920ak0bfrkewxoqxWp4V1rkqEG/mcAq/n6w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8dbc646bb29e68a985eb5fdcf053ed106137917d9b89dd4ec179f792589bf9cf",
          "output": {
            "as_of": "2026-07-14",
            "cert_expired": false,
            "cert_expiring_within_days": false,
            "cert_expiry": "2027-01-10",
            "insufficient_evidence": false,
            "stale_controls": [],
            "stale_count": 0
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-306-agent-insurability-evidence-scorer",
      "tool_version": "1.0.0",
      "display_name": "Agent Insurability Evidence Scorer",
      "mcp_name": "score_agent_insurability_evidence",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-306-agent-insurability-evidence-scorer.html",
      "description": "Scores an agent execution evidence bundle for underwriter-facing evidence completeness across four dimensions (determinism, replayability, oversight density, dispute history) using a version-pinned rubric selected by underwriter_profile: aiuc, aisure (Munich Re aiSure evidence-doc list), armilla (KPI-warranty dimensions), or generic (equal-weight union). Optional incident_history (shared incident_record schema) and reputation inputs are supported; self-asserted reputation is recorded but zero-weighted in the composite. This scores evidence completeness only, never an insurability decision, a reserve attestation, or an insurable/not-insurable verdict -- selling or underwriting insurance is out of scope. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-306-agent-insurability-evidence-scorer.html#manifest",
      "deadline": null,
      "deadline_note": "Rubric weight tables are version-tagged (rubric-2026-q1); a rubric revision bumps the version, not the fixed threshold logic.",
      "consumes": [],
      "feeds": [
        "art-307-claim-dispute-bundle-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f50363027fceb9b9a98ba34c1f35c4327444cc91359d34e351167d15f2812013","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "B215HasEeJPWKtO+V0EREOhvMVoKgFbsnT9YxBstpOIWVmEvcfwItHqJCmAP8qYAFjuiGtQCHfhjJguMOhJsbhkHQgBaT08RanoWlBX1oFqCLfjjPVyrILt9vdH9CyuGDVCxziGMGYcBwmCc9agsDkFUmTq5diuI0qi/k1DLYkMtINtejB4sVqc45UTNDAlXKp6Dt5iJ4zdfcAeBnGcjBSQ+rBA92Mnbw+8Zfym8+QpedbQcOSkr9UghPHLLUQvuDzU+6qm2UiwTpB/CVdHDmJPKuyqGinSan4AvPzXbYO0d2wBBxafhzF13PvTQSKND9G05lKFvmSazfM6fiwtAvQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:f50363027fceb9b9a98ba34c1f35c4327444cc91359d34e351167d15f2812013",
          "output": {
            "composite": 0.7999999999999999,
            "dims": {
              "determinism": 1,
              "dispute_history": 0.5,
              "oversight_density": 0.5,
              "replayability": 1
            },
            "incident_history_provided": false,
            "insufficient_evidence": false,
            "reputation_self_asserted": false,
            "rubric_version": "rubric-2026-q1",
            "underwriter_profile": "aiuc"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-307-claim-dispute-bundle-builder",
      "tool_version": "1.0.0",
      "display_name": "Claim Dispute Bundle Builder",
      "mcp_name": "build_claim_dispute_bundle",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-307-claim-dispute-bundle-builder.html",
      "description": "Assembles a two-sided replay-challenge dossier for a disputed execution_claim: binds the claim digest and challenge to replay instructions and receipt digests, and, when a warranty_kpi_breach input is supplied (matching both Armilla Guaranteed and Munich Re aiSure settlement shapes), computes measured-vs-threshold from the supplied receipts and records breach or no-breach as a replayable claim. Never a settlement decision -- the bundle serves both the underwriter and the insured party reviewing the same replay instructions. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-307-claim-dispute-bundle-builder.html#manifest",
      "deadline": null,
      "consumes": [
        "art-306-agent-insurability-evidence-scorer"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1daef6202ad1566e6f94d6f395e4e645e4d15288589e2864a84c2c2e33415211","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "J1CUG38dqoGHvVtEQNOtayMcS6KEka2ukdW0gCRgzRgb1aqfuGq+gQ41+nS0oXCvnwxc7w8viH9tkCo8VHYXryrKB7wCK4fxkREvPAbhwYlsSYAyjci26XbtXtBT8VH3C4aFFNXTivZQwcusa7V5JF3JqhK6mZRp0UYVw3ofp4UF0vDFTu5lhPO+FqMRC9BPj+zqvS2tHR0+QdGF81Q/GAeBHTode3+h9fygKzMoAO3YFUAQZhu0ktNNw/1i6vFrHWIGXbFdT3BL0IpKQ7RT4PwzB2uMdlkjjvC9zvlgYXgadSw7pmzDX9OtZFqwADbefIuMAIVF7CSCf2JDmr3mZQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1daef6202ad1566e6f94d6f395e4e645e4d15288589e2864a84c2c2e33415211",
          "output": {
            "bundle_claim_strength": "receipt-backed",
            "challenge_digest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
            "claim_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "insufficient_evidence": false,
            "kpi_breach": {
              "breached": true,
              "kpi": "uptime_pct",
              "measured": 97.2,
              "threshold": 99.5
            },
            "receipts": [
              {
                "receipt_hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
              }
            ],
            "replay_instructions": "Replay tool_id art-251-compute-parametric-trigger-payout with the recorded policy_parameters and confirm execution_hash reproduces sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; cross-check 1 bound receipt(s)."
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-308-pld-disclosure-pack-builder",
      "tool_version": "1.0.0",
      "display_name": "PLD Disclosure Pack Builder",
      "mcp_name": "build_pld_disclosure_pack",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-308-pld-disclosure-pack-builder.html",
      "description": "Assembles a disclosure/rebuttal pack for a disputed window under EU Product Liability Directive 2024/2853 (transposes 2026-12-09; AI is a \"product\"; non-disclosure or an AI Act breach triggers a rebuttable presumption of defectiveness). Collects the receipt set for the disputed window into a hash-anchored trace with replay instructions and a defectiveness-rebuttal mapping (which receipts rebut which presumption trigger: non-disclosure vs AI-Act-breach), flagging any gap in window coverage. Asserts the inputs replay to this trace; never a legal conclusion of non-defectiveness. AILD is confirmed withdrawn (Oct 2025); PLD is the only surviving EU frame this maps to. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-308-pld-disclosure-pack-builder.html#manifest",
      "deadline": null,
      "deadline_note": "National PLD transposition text lands through H2 2026; the presumption-trigger taxonomy (non_disclosure, ai_act_breach) is static and does not track member-state transposition drift.",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4d73f240d1e0e36ad7081116436c2a27d5b2c23d184cc4269306079ed753ccfb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IcMV7OntfxhTa9knOX67nmXk2XbAA0/wT60vYCZtKCMhUnqtUs+rGQaHQENdIfXJcMGV0ib+mlKn8JBFQfXSYwQg0HQVgCT+Kcr+ldwWKeNeS+8mJ/YjiJKN6wIy9nenKROAY37Nirx0cJpiYMdtO5zeVGRfgE1mZEix+jeZEOcH83BN6zPKclgiNmi1BP4yDk2wtw+5g+UPtOBVX/h53Bv7Few9Aynz0iLG1nvIY4+4JFFZGkiYjF5Kh/oJ1DYPKVw7Uy/crvhYFzFxvGQacmM0nHsJW+yH/3dmgL+7xk8X11jYC+4N/QxHG97yUnosNvLT616u2xt2cp1X9tiQ8A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4d73f240d1e0e36ad7081116436c2a27d5b2c23d184cc4269306079ed753ccfb",
          "output": {
            "alleged_defect": null,
            "anchor": null,
            "disputed_window": {
              "from": "2026-01-01",
              "to": "2026-06-30"
            },
            "gap_in_window": false,
            "insufficient_evidence": false,
            "product_ref": "agent-checkout-v3",
            "rebuttal_mapping": [
              {
                "presumption_trigger": "non_disclosure",
                "rebutting_receipts": [
                  "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
                ]
              },
              {
                "presumption_trigger": "ai_act_breach",
                "rebutting_receipts": [
                  "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
                ]
              }
            ],
            "replay_instructions": "Replay each of the 2 receipt(s) for agent-checkout-v3 over the window 2026-01-01..2026-06-30 and confirm execution_hash reproduces every receipt_hash in trace_digest.",
            "trace_digest": "trace:2:sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa,sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-309-parametric-index-deriver",
      "tool_version": "1.0.0",
      "display_name": "Parametric Index Deriver",
      "mcp_name": "derive_parametric_index_from_receipts",
      "mandate_type": "compliance_mandate",
      "wave": 54,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-309-parametric-index-deriver.html",
      "description": "Deterministically aggregates a named metric (mean, sum, count, max, or min) across a receipt set into a parametric index value: receipts as an oracle replacement, replay-on-challenge instead of trust-the-feed. Feeds the shipped compute_parametric_trigger_payout kernel, which performs the actual trigger-vs-payout math; this kernel never reimplements that logic. The index is a replayable derived value, never a settlement trigger by itself. Not the same as check_agency_eligibility_matrix or any lending eligibility tool -- this is an insurance-evidence parametric index. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-309-parametric-index-deriver.html#manifest",
      "deadline": null,
      "consumes": [],
      "feeds": [
        "art-251-compute-parametric-trigger-payout"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:69501cd554f59d8ca92176964a10773dad63d5b7c1e4ae06af5eda6fbe9d29c6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Akf3Ftq4keVXkwYiCtB5/0v/ZdRv0H30cy2nH3k0Y5YnKEoNEDEcqyEjlzm/JTmRDG0UE0YsA9R+VqoB+zSv7gXZW8GCuWMtXO6YjZWYXNJCu4QMQfjVytF4pCg4utKNBrUtuDZBgXiYQpmrvJ7d56P0NtuQkqlAa6zeXq27tLsn+PbhGPiDNhdEXhhbAK0GhscBD7n7Ie/XmxTwdy/W9Ar/w535cV0DrCHsTacDXu4oGKgSKrwvWGIOT/i9UZ/KDHUhcBx6v3HxUofk8VNyP33994xDTg4EEu26r6qzILwVjbkPYcc5NH2wrph5OjWZDSKwNpVBJXbBtlHprhHfOw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:69501cd554f59d8ca92176964a10773dad63d5b7c1e4ae06af5eda6fbe9d29c6",
          "output": {
            "aggregation": "mean",
            "contributing_receipts": 3,
            "index_value": 20,
            "insufficient_evidence": false,
            "metric": "wind_speed_mph",
            "window": {
              "from": "2026-08-01",
              "to": "2026-08-31"
            }
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-313-traiga-exposure-assessor",
      "tool_version": "1.0.0",
      "display_name": "TRAIGA Exposure Assessor",
      "mcp_name": "assess_traiga_exposure",
      "mandate_type": "compliance_mandate",
      "wave": 55,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-313-traiga-exposure-assessor.html",
      "description": "Assesses supplied Texas AI-deployment attributes and intentional-use assertions against the Texas Responsible AI Governance Act (TRAIGA, HB 149, eff. 2026-01-01): applicability flag plus prohibited-use-category matches (intentional self-harm/violence/illegal-activity incitement, intentional unlawful discrimination, illegal sexual content, child impersonation). Asserts the supplied inputs replay to this exposure finding, never that a violation has legally occurred (TRAIGA's intent standard is a separate legal determination this kernel does not make). Root node of the traiga-safe-harbor chain. Not the same as the EU AI Act or Colorado high-risk classifiers. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-313-traiga-exposure-assessor.html#manifest",
      "deadline": null,
      "consumes": [],
      "feeds": [
        "art-314-traiga-safe-harbor-pack-builder"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:46ddb72f43e3a33e75b6718621bc06971855f36c96ee9be5c32f9d28277ca6ac","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HrAkDM0NmlOmIPsNlIfl04g2Ak+WTw62Bo75xIva5BEu5rntts+5IbFGNVs74oB/gqES6f0c912J+jNqVnb4Fyo4QG4C3KVc9nkA82eHVBFvWVSjS7Ziexs+yxRiqfpBFs0A61oSfOpInojPk+Dxf4cQZxMW/fGEm6yV8gTFcUUT7GqOtZltJIMEEo10ogFn7J9VbPwHy7xGjFhErmNpOhs/nMAMgIXI6zBZy/8VWCcshOJ5ErcCqy/Qb2LqzWLfKnuVJSb6DkKBPyQj9P6VG+TL83yztlWHBoIJVnccGg0mHceRtfOBZtNl+jPnwSYpUu2nyZCxU/0Xjzd4oM4buA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:46ddb72f43e3a33e75b6718621bc06971855f36c96ee9be5c32f9d28277ca6ac",
          "output": {
            "cure_window_days": 60,
            "matched_prohibited_uses": [],
            "penalty_per_violation_usd": 200000,
            "prohibited_use_detected": false,
            "statute_citation": "Tex. Bus. & Com. Code Ch. 552-553 (TRAIGA, HB 149), eff. 2026-01-01",
            "traiga_applicable": false
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-314-traiga-safe-harbor-pack-builder",
      "tool_version": "1.0.0",
      "display_name": "TRAIGA Safe Harbor Pack Builder",
      "mcp_name": "build_traiga_safe_harbor_pack",
      "mandate_type": "compliance_mandate",
      "wave": 55,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-314-traiga-safe-harbor-pack-builder.html",
      "description": "Assembles a supplied NIST AI RMF function-mapping result (map_nist_ai_rmf_functions) and TRAIGA exposure-assessment result into an affirmative-defense evidence bundle under Tex. Bus. & Com. Code §553.106: eligible only when the RMF coverage band is Substantial or Comprehensive AND no prohibited use was detected upstream. Framed as evidence toward the statutory affirmative defense, never a guarantee the defense succeeds -- that determination belongs to a court or the Texas Attorney General. Terminal node of the traiga-safe-harbor chain. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-314-traiga-safe-harbor-pack-builder.html#manifest",
      "deadline": null,
      "consumes": [
        "art-313-traiga-exposure-assessor",
        "art-174-nist-ai-rmf-function-mapper"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:cda8ec3e208db10583b64a541b161952225891579c887aa1c900f1ab1e317f20","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LxK/SokYK7NsqGhw3Idkgqa8Jo+id1IHMVZMpfppklUPzPb+FXIMKhLUstnpNo1901eM4UfAYivwWFsTjhq2IS0ACgY7OO4zc9s1dvEO+Dghflvvt+sGPgvDoCd+VybkFVK428izsqc4SgWN8YpuMQfsgOEvo9mCm9j6wa+KCUYSPR0C4pBHM1FDdrH4i4ZMlyOfSWx2E9vtTfPBf31X+AMBkQpYU7snT7eT593+kZ9xO5CTVH80cMDml5DjoKgAI0BukUf/oeNv9OP3E7Imam1H98zJdy+Id/QMJdPxvCksyt3eCZo46DgrB5VsPO1eszV1zu7PKY+gf1ZC69PXow==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cda8ec3e208db10583b64a541b161952225891579c887aa1c900f1ab1e317f20",
          "output": {
            "coverage_band": null,
            "eligible_for_affirmative_defense_evidence": false,
            "framing": "evidence toward the statutory affirmative defense; not a guarantee the defense succeeds",
            "insufficient_evidence": true,
            "meets_substantial_compliance_bar": false,
            "overall_coverage": null,
            "prohibited_use_detected": null,
            "statute_citation": "Tex. Bus. & Com. Code §553.106 (TRAIGA affirmative defense), eff. 2026-01-01"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-315-ab2013-training-data-disclosure-linter",
      "tool_version": "1.0.0",
      "display_name": "AB 2013 Training Data Disclosure Linter",
      "mcp_name": "lint_ab2013_training_data_disclosure",
      "mandate_type": "compliance_mandate",
      "wave": 55,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-315-ab2013-training-data-disclosure-linter.html",
      "description": "Lints a supplied generative-AI training-data disclosure against the 12 datapoint categories required by California AB 2013 (Cal. Bus. & Prof. Code §22757.7, eff. 2026-01-01): dataset sources/owners, purpose alignment, datapoint counts and types, IP status, licensing, personal/aggregate-consumer-information inclusion, cleaning/processing description, synthetic-data use, and collection time period/dates. Per-datapoint present/missing findings; DRAFT-PINNED against secondary-source statute summaries, not a primary-text re-read. Asserts the supplied disclosure replays to this coverage finding, never that the developer is AB 2013 compliant or that this is legal advice. Root node of the ca-genai-disclosure chain. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-315-ab2013-training-data-disclosure-linter.html#manifest",
      "deadline": null,
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:669f7fe95b37812eccdd1636cf1b71298e1b1e396e96e5b505afa035a479631e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FVNiEpRU3TUbaJX/b4o3LSajuB0ex882L2v6RG0m1E4d3FEUIXAtzgr3RDNhinz69CahiaIMymFAbH37icDCSS6ng6Qgq+/FHPADdfygExv3dNSx4sKdqWf3ZjwcUlZGAM7vfb75Rx5eaV05M0Q2r4W0xbebHCyicSSZo9eKMTsgGwyoHvgEOCwXfDkvgiEHOq+5s1B/9tQCMs1yfrxqyAYFzeUFwbmNlEh7m827u2jhE/3JxrzOZ+5/PqtUpOubAJ7O5PcibTDrOaP7XQ0q5YxJIwc3DFZl4xxPiVqRFG0lDygyJ1dNlTbxd5MZlJ3DRrPHga7SnjQawZ5KXRsx8Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:669f7fe95b37812eccdd1636cf1b71298e1b1e396e96e5b505afa035a479631e",
          "output": {
            "all_present": false,
            "insufficient_evidence": true,
            "missing_datapoints": [
              "dataset_sources_or_owners",
              "dataset_purpose_alignment",
              "number_of_datapoints",
              "types_of_datapoints",
              "ip_status_copyright_trademark_patent_or_public_domain",
              "purchased_or_licensed",
              "includes_personal_information",
              "includes_aggregate_consumer_information",
              "cleaning_processing_or_modification_description",
              "synthetic_data_use",
              "collection_time_period",
              "collection_dates_or_version"
            ],
            "per_datapoint": [
              {
                "datapoint": "dataset_sources_or_owners",
                "status": "missing"
              },
              {
                "datapoint": "dataset_purpose_alignment",
                "status": "missing"
              },
              {
                "datapoint": "number_of_datapoints",
                "status": "missing"
              },
              {
                "datapoint": "types_of_datapoints",
                "status": "missing"
              },
              {
                "datapoint": "ip_status_copyright_trademark_patent_or_public_domain",
                "status": "missing"
              },
              {
                "datapoint": "purchased_or_licensed",
                "status": "missing"
              },
              {
                "datapoint": "includes_personal_information",
                "status": "missing"
              },
              {
                "datapoint": "includes_aggregate_consumer_information",
                "status": "missing"
              },
              {
                "datapoint": "cleaning_processing_or_modification_description",
                "status": "missing"
              },
              {
                "datapoint": "synthetic_data_use",
                "status": "missing"
              },
              {
                "datapoint": "collection_time_period",
                "status": "missing"
              },
              {
                "datapoint": "collection_dates_or_version",
                "status": "missing"
              }
            ],
            "present_count": 0,
            "statute_citation": "Cal. Bus. & Prof. Code §22757.7 (AB 2013), eff. 2026-01-01 -- DRAFT-PINNED against secondary-source summaries",
            "total_datapoints": 12
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-316-sb53-frontier-scope-checker",
      "tool_version": "1.0.0",
      "display_name": "SB 53 Frontier Scope Checker",
      "mcp_name": "check_sb53_frontier_scope",
      "mandate_type": "compliance_mandate",
      "wave": 55,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-316-sb53-frontier-scope-checker.html",
      "description": "Routes supplied model compute (FLOPs, as a decimal string above the 2^53 safe-integer range) and developer annual revenue through the California SB 53 Transparency in Frontier Artificial Intelligence Act (eff. 2026-01-01) scope thresholds: 10^26 FLOP frontier-model bar and $500M large-frontier-developer revenue bar. Returns in-scope flags and the triggered obligation set (transparency report, catastrophic-risk-assessment summary, and for large frontier developers the safety-framework publication, annual update, incident reporting, and whistleblower-channel obligations). Asserts a scope/obligation finding only, never that those obligations have been fulfilled. Standalone -- deliberately not folded into the CAIA/TRAIGA/AB2013 chains (narrow frontier-lab audience). Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-316-sb53-frontier-scope-checker.html#manifest",
      "deadline": null,
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:bf76db6dbd58cc21042569b32a4e5b60d9f4e3b31a1cded90fb40558f07ff584","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FZX0sncU+kiXbyCR/ppgBmEqL4N2L5im9OgsqUDl0OQbqcZrJTe99fluECztRi1siSsBcKXVf5Oq5rHJPQnaqBZRrfOJLO0ujAv3SlZ8tF7eefFb2dAwPlf/yEbE5TC7H2jF82I2NqZfKoEcZJgDzmEaVr5YOnusO6waHtp+35ooIuM/95VwtohR7Pi39fPejPYFqVfZws8juzJjqz/vWAn5VJ7f9M/rrCr5qAaJUak/ELXEDSHJU9Q9h7nvUwMBBrNTubmim3fiPQg2L37FDHeAevgxeS8rvAZ71/CTbBsGxYBAl04x8Sj/PZKlTl4zZ1xfvWaqCcJ01u5JBVEnfA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:bf76db6dbd58cc21042569b32a4e5b60d9f4e3b31a1cded90fb40558f07ff584",
          "output": {
            "compute_flops": "0",
            "flop_threshold": "1e26",
            "is_frontier_model": false,
            "is_large_frontier_developer": false,
            "large_developer_revenue_threshold_usd": 500000000,
            "obligation_set": [],
            "statute_citation": "Cal. SB 53 (Transparency in Frontier Artificial Intelligence Act), eff. 2026-01-01"
          }
        }
      },
      "export_capability": [
        "json",
        "vc"
      ]
    },
    {
      "tool_id": "art-317-rhc-multiplier-reconciler",
      "tool_version": "1.0.0",
      "display_name": "ERC-8056 Multiplier Reconciler",
      "mcp_name": "reconcile_erc8056_multiplier",
      "mandate_type": "collateral_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-317-rhc-multiplier-reconciler.html",
      "description": "Reconciles Robinhood Chain stock-token corporate actions against the ERC-8056 scaled UI amount surface. Stock tokens never rebase; splits and dividends land as a uiMultiplier() change plus a UIMultiplierUpdated event while raw balanceOf stays static until redemption. Checks declared corporate-action ratio against the multiplier transition, monotonic event sequencing, and raw-balance invariance. First tooling anywhere for ERC-8056 reconciliation. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-317-rhc-multiplier-reconciler.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:429e977403062feed23c749598080acc370be7c4fbe83704b1c1884bccc3a94f","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": "CuURyry0ac5LKKpeYMridogfII7RsazbwpJDoLWxGskg2jpItF72PKoZbLOam4q/6gVNvBmrp7EYvREUNDdbsxbqqIeClC/Da9AM7ytYR4Kt33ptigud8MEvONDj+G/4F+yyODIIaw1yVXWmtQ32gmM+8AgSo/XQIiTDw0l+lZ8tRUpx2ILPnVet5aF9nPyL19XWMhsqutZH88LYTuyVQyMOZlOdERNNtkAFLq87upzyChf3FkxyIOrOoT3yTuSULL+4Bf7GmPVGKMmNB7vzGQjS3h5gLLZRDU9hQIDxwewbOmZCWDkpSrMY3/faIdAWZymHCei/DTLMnYYS3NBLZQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:429e977403062feed23c749598080acc370be7c4fbe83704b1c1884bccc3a94f",
          "output": {
            "computed_ratio": 2,
            "declared_action_type": "split",
            "discrepancies": [],
            "event_count": 1,
            "expected_ratio": 2,
            "ratio_match": true,
            "raw_balance_invariant": true,
            "verdict": "RECONCILED"
          }
        }
      }
    },
    {
      "tool_id": "art-318-rhc-regime-mapper",
      "tool_version": "1.0.0",
      "display_name": "Financial-Instrument Regime Mapper",
      "mcp_name": "map_robinhood_chain_regime",
      "mandate_type": "crypto_regulatory_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-318-rhc-regime-mapper.html",
      "description": "Maps the regulatory regime implied by a pasted Robinhood Chain stock-token characterization. The tokens are tokenized debt securities issued by Robinhood Assets (Jersey) Limited, which puts them inside the MiCA Article 2(4)(a) financial-instrument carve-out, the inverse of the MiCA/GENIUS crypto-asset regime that applies to Tempo and Arc. Flags MiFID II transferable-security classification, prospectus exposure, the no-US-persons gate, and SPV voting-rights disclosure. Never asserts a legal conclusion, only the regime the given characterization implies. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-318-rhc-regime-mapper.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:a254b7eb00a32b29a66ec968198d5fcaf29bff88a1a9881739f2a25b5ec59856","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": "GRn1ZWhDzfpDS7jP6siQOGyfZ1iJIAECFA4282VGuWYLmJOwJr7zHHWXoBpD3MppjKmmfEVlWU8jTn/wL8uSNSJytFW6NAys4PkDb71mUOQ5rt9jVUvasRcUFRHvkPYTCRlRNjdlfFduuqe1fREjIXrsUueywrlHNM3eC+83ejAKUfU8nphTDUCdK76JkAGf+VvaItuODyBpYRCe6GxEFQB7SMdpfan+BD5PUZ2NwAbtM5FmCHiRJGc7mXBNvzK1GII5n9+0I+PoMY86M1sg2t7q9FrSFYs5EehrgbgENYEwDwnTU+QraLWQQDBjWL3K6p8Mj2RQ0+PgFjKO7KEhqQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a254b7eb00a32b29a66ec968198d5fcaf29bff88a1a9881739f2a25b5ec59856",
          "output": {
            "assumptions": [
              "MiCA_inapplicable_given_debt_security_characterization",
              "prospectus_exposure_flagged_for_EU_public_offer",
              "SPV_is_holder_of_record_token_holders_have_no_voting_rights"
            ],
            "disclose_no_voting_rights": true,
            "issuer_entity": "Robinhood Assets (Jersey) Limited",
            "mica_carveout_applies": true,
            "mifid2_transferable_security": true,
            "note": "This node maps the regime implied by the pasted characterization; it does not render a legal conclusion.",
            "prospectus_exposure": true,
            "regime_tree": [
              {
                "applicable": false,
                "assumption": "instrument characterized as a tokenized debt security wrapped via an SPV",
                "basis": "Art. 2(4)(a) financial-instrument carve-out",
                "framework": "MiCA"
              },
              {
                "applicable": true,
                "assumption": "characterization as given, not independently verified",
                "basis": "debt security issued by a regulated entity implies transferable-security classification",
                "framework": "MiFID II"
              }
            ],
            "us_persons_gate_violated": false
          }
        }
      }
    },
    {
      "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"
          }
        }
      }
    },
    {
      "tool_id": "art-320-rhc-collateral-haircut",
      "tool_version": "1.0.0",
      "display_name": "Halt + Staleness Collateral Haircut",
      "mcp_name": "compute_stock_token_collateral_haircut",
      "mandate_type": "collateral_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-320-rhc-collateral-haircut.html",
      "description": "Layers a feed-staleness, sequencer-downtime, and underlying-halt haircut on top of a base repo haircut for Robinhood Chain stock tokens posted as collateral. 46 percent of first-week stock-token transfers settled outside NYSE hours, and the docs name Chainlink staleness checks plus Arbitrum sequencer-uptime validation as required practice. Downstream of check_tokenized_collateral_eligibility and calculate_repo_haircut in the collateral-haircut chain. Returns a liquidation-risk classification: normal, elevated, or blocked. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-320-rhc-collateral-haircut.html#manifest",
      "consumes": [
        "505-tokenized-collateral-eligibility-checker",
        "508-repo-haircut-collateral-calculator"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:fd8a869feabce17a886f3ccfab9cd1934a02f866b36883269c186a0af544c5a0","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": "Is7jy6qrflxYyg3s7F5ffKtcgxlkMIW8C5iQv0SQEIwan/0V1jKVeSJlwq8gr2Qgq45gAJjkwflBjW7bs7jbsSXh+HalgkmU9s2UcgoxgqRm2wQ4F3q23U8zKc990zxwHG51aCdiKiRWo1DktIlOafPTF41NzDoIR+4zRnlokhgIszV157Su9znOAChFEbmh/B9YG92YuEs7rXPtZ0h3/RtoFqwPH1Sra3Mmkjpoa1jjZxQ9Z5L288COPm1QlzMWFtlA/Fg5si2wG7S34ka1hUzBJ28RWkv5kCv3KgH77iIsFLiKURA+3HBMyYBEyzaRLTdPeah8np0Ds8OEn80c/g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:fd8a869feabce17a886f3ccfab9cd1934a02f866b36883269c186a0af544c5a0",
          "output": {
            "adjusted_collateral_value": 85000,
            "base_haircut": 0.15,
            "extra_haircut": 0,
            "feed_stale": false,
            "final_haircut": 0.15,
            "liquidation_risk": "normal",
            "sequencer_down_grace_expired": false,
            "sequencer_down_within_grace": false,
            "underlying_halted": false,
            "verdict": "HAIRCUT_COMPUTED"
          }
        }
      }
    },
    {
      "tool_id": "art-321-rhc-bold-finality-classifier",
      "tool_version": "1.0.0",
      "display_name": "BoLD Challenge-Window Finality Classifier",
      "mcp_name": "classify_bold_challenge_finality",
      "mandate_type": "settlement_finality_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-321-rhc-bold-finality-classifier.html",
      "description": "Classifies a settlement-finality claim on Robinhood Chain, an Arbitrum Orbit dedicated blockchain using BoLD interactive fraud proofs, into soft, posted, challengeable, or final. Onchain settlement inside the roughly week-long BoLD challenge window is optimistic, not final, and a claim asserting final finality inside that window is flagged as overstated. Downstream of classify_settlement_asset_finality in the finality-classification chain; follows the check_linea_l2_finality_window shape as a precedent only, since the proof system differs. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-321-rhc-bold-finality-classifier.html#manifest",
      "consumes": [
        "art-59-settlement-asset-finality-classifier"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:843562f81f65f23041c7aed365bb1e7119591065931b82e37682c2ad6489ea93","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": "A3jamsw7GqGzP0pFnShpad8/vnGuhlWUw2BxvAIgT7UnjbSCV3dCK7aEN+jsJ8fJAz174Pwl5U3LpwRsxN368hIyrdY1zERWXY5RilPL9XuLEx0msYi+kwmdVvSdCIFjMFfvUYZZka2HX+HVfANXNh+3qe9KGwM/kP8NPp1Q3dQB6Q+M7pueKdsGXaJFEKQC7EwT9Ie2z/6i8Ssumo7EIijYoRD9dApTXmaEttWSobP/5I74x7RFZEKSvgI4SZx9CWDHqt4Xy+kLU9SiDm2z0pC5m2BI+CbqnUIYfqYsQc4SW3XCquPQKwhQw3zDdE9QG8jqqG+bkbqao0wbLJ9C6w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:843562f81f65f23041c7aed365bb1e7119591065931b82e37682c2ad6489ea93",
          "output": {
            "challenge_window_seconds": 604800,
            "claim_verdict": "SUPPORTED",
            "earliest_final_at": 605800,
            "finality_claim": "final",
            "finality_class": "final",
            "verdict": "CLASSIFIED"
          }
        }
      }
    },
    {
      "tool_id": "art-322-rhc-ap-redemption-stress",
      "tool_version": "1.0.0",
      "display_name": "AP Concentration + Redemption-Path Stress",
      "mcp_name": "stress_test_ap_redemption_path",
      "mandate_type": "collateral_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-322-rhc-ap-redemption-stress.html",
      "description": "Stress-tests the one-token-equals-one-share economic-exposure claim for Robinhood Chain stock tokens against actual redemption reachability. BBVI is the sole Authorised Participant at issuance; only Authorised Participants may subscribe or redeem directly from Robinhood Assets (Jersey) Limited after KYB, everyone else is secondary-market-only. Enumerates AP concentration, premium/discount exposure if the sole AP stops market-making, and issuer-credit exposure distinct from the underlying equity. Verify-only; never recommends a position. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-322-rhc-ap-redemption-stress.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:043b1b5c17986181cd446d5ffa5594209cc4cf4e29416c72e3a47a436160ea2d","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": "BMz2BkAgSDaiR3CrTHiFeD6lFhtomT8d5r3kazcGaXMOhVz0sVIVhTUVkejAx/e7Bp37tRBVd0bGia/vXv8PKh7PE1rAPcERBNIr4U0NUYHKt+OJZGpOY3Q8yy619HX1CzEwVlLGeXlAsqrXfS77+OWZzDQOVepwNGK/nwuhNnciE0CeKR7ltwmUXyI0bjDjS0dzb//l+undGH++79saNCMSN/ZaTG+Hdq3xWCCEPgeoo2clJ5EB7jlaSXn51/mXMEVfv7WSEMcpENGcufH4F1k/NygPoCkypuWF9udesrIiayeR+Cngh1pX0ICHYj0ZMp6VsGEi/ZshZKSZjTQ7xg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:043b1b5c17986181cd446d5ffa5594209cc4cf4e29416c72e3a47a436160ea2d",
          "output": {
            "ap_count": 1,
            "concentration_risk": "SINGLE_AP_CONCENTRATION",
            "issuer_credit_exposure_distinct": true,
            "liquidity_flag": "THIN",
            "not_investment_advice": "This node enumerates structural dependency only. It does not recommend a position.",
            "premium_discount_exposure": true,
            "redemption_path": "secondary_market_only",
            "redemption_reachable_for_non_ap": false,
            "structural_dependencies": [
              "sole_AP_market_making_dependency",
              "non_AP_holders_cannot_redeem_directly_from_RHJ",
              "issuer_credit_exposure_to_RHJ_distinct_from_underlying_equity",
              "thin_secondary_market_depth"
            ],
            "verdict": "STRESS_ENUMERATED"
          }
        }
      }
    },
    {
      "tool_id": "art-323-rhc-fit-diagnostic",
      "tool_version": "1.0.0",
      "display_name": "Robinhood Chain Fit Diagnostic",
      "mcp_name": "run_robinhood_chain_fit_diagnostic",
      "mandate_type": "agent_guardrail_mandate",
      "wave": 56,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-323-rhc-fit-diagnostic.html",
      "description": "12-question A-F diagnostic grading a firm's Robinhood Chain adoption fit across four paths: stock-token application, collateral/lending venue, index/basket product, and agent-settlement automation. Routes to the reconciliation, regime-mapping, valuation-lint, collateral-haircut, BoLD-finality, and AP-redemption-stress workflows. Deliberately does not reuse the MiCA/GENIUS question set from the Tempo and Arc diagnostics, since Robinhood Chain stock tokens sit in the opposite regulatory carve-out. Zero network, zero PII.",
      "input_schema_ref": "chaingraph/art-323-rhc-fit-diagnostic.html#manifest",
      "consumes": [],
      "feeds": [
        "art-317-rhc-multiplier-reconciler",
        "art-318-rhc-regime-mapper",
        "art-319-rhc-valuation-linter",
        "art-320-rhc-collateral-haircut",
        "art-321-rhc-bold-finality-classifier",
        "art-322-rhc-ap-redemption-stress"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e09470ce920af00e8494502ae75b0a5986c163b2150f95ec58478d93c87e1a47","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": "KTPo1nSH68AbMbu7wGMcHcawA0IP9ZKAR0C/oW4sluEOlhtNJOsi+Br6n79cyY87dD17ewXNOKWgzrP4BNH7miDNmf+Xej9pXfZM0QzOEwCGCU4rPQeFPEXzozoafKs+HJIwuuu/lu6B/HJQu0Ipq4NFNyMqfWyFjIFCrMW33VQLGcw8GSjbcB0MYI4HRp/bZrAmLMgC7mOv94Nck4aYMxiV/kBuRGDMrfkUn4bXkW04zj6U0YhbSTvSitYHQx/aEqXaO4w+7itiQ57oipua9tUOqQx6qgyM7lXBOqOmUmYOaKTylthTp6xgj8nrf00HorE7rL/CbqWZujjqCIXeZQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e09470ce920af00e8494502ae75b0a5986c163b2150f95ec58478d93c87e1a47",
          "output": {
            "path_results": [
              {
                "chains": [
                  "rhc-multiplier-reconciliation",
                  "rhc-valuation-lint"
                ],
                "id": "stock_app",
                "label": "Stock-Token Application",
                "max": 12,
                "pct": 0,
                "score": 0
              },
              {
                "chains": [
                  "rhc-collateral-haircut"
                ],
                "id": "collateral_venue",
                "label": "Collateral / Lending Venue",
                "max": 12,
                "pct": 0,
                "score": 0
              },
              {
                "chains": [
                  "rhc-regime-mapping"
                ],
                "id": "index_basket",
                "label": "Index / Basket / Compliance Characterization",
                "max": 12,
                "pct": 0,
                "score": 0
              },
              {
                "chains": [
                  "rhc-bold-finality-classification",
                  "rhc-ap-redemption-stress"
                ],
                "id": "agent_settlement",
                "label": "Agent-Settlement / Redemption Risk",
                "max": 12,
                "pct": 100,
                "score": 12
              }
            ],
            "primary_path": "agent_settlement",
            "routed_workflows": [
              "rhc-bold-finality-classification",
              "rhc-ap-redemption-stress"
            ],
            "total_max": 48,
            "total_pct": 25,
            "total_score": 12,
            "verdict": "D"
          }
        }
      }
    },
    {
      "tool_id": "art-324-tvm-npv",
      "tool_version": "1.0.0",
      "display_name": "Net Present Value (NPV)",
      "mcp_name": "compute_npv",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-324-tvm-npv.html",
      "description": "Net present value of a cash flow series, discounted at a declared periodic rate. Accepts either caller-supplied period offsets or dated cash flows converted to years under a declared day-count convention (30/360, ACT/360, ACT/365, or a simplified ACT/ACT). Deterministic pow via Taylor-series exp/ln, no engine transcendentals. Foundation primitive for downstream valuation and lease/loan analytics.",
      "input_schema_ref": "chaingraph/art-324-tvm-npv.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:73ed269fd294aec7d9ff692c40383f59d38689eac424726d8c135c52ff8c78a2","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": "JcZ/mqytJtBb7GWrfCV+nmpzM63UscAIEkKTVh68pIEO55N7C9WyE3x2pIEitOLWeo9Y4UbxaiPI/QXYeWPIyi+tEh02bTnLOCHLin3kp8diTNmUxzzcdfm9A1+nvzD2FWCFL9fCv/T/PWUF5eL2RTsE0IvOqO+/UCH1u6yBbVssm5YP0/bRHC4Ztf8Un/nomKFiSykk4e0j+wr+sQ54ESaZs0Vz4bZlHTs+8pKdlS8a6IdUsqdUnmhHCfMPq/r4IIeA+vfJB/Wi6o52MAhuMCCGFk0+5185ZYuyzFqrojQLeHoZnB6lwlCM7PJXfUesCUJ3jNcUv1xa6Vm6fQ47gw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:73ed269fd294aec7d9ff692c40383f59d38689eac424726d8c135c52ff8c78a2",
          "output": {
            "day_count_convention": "n/a (periods mode — t supplied directly)",
            "discount_rate_pct": 10,
            "mode": "periods",
            "note": "NPV = sum(CF_t / (1+r)^t). Periods mode: t is a caller-supplied period offset in the rate's own unit. Dates mode: t derived via declared day_count_convention (30/360, ACT/360, ACT/365, ACT/ACT-simplified) from valuation_date. Deterministic pow via Taylor-series exp/ln, no engine transcendentals.",
            "npv": -5.26,
            "num_cash_flows": 4,
            "regulatory_basis": "Standard discounted cash flow NPV, textbook definition (Brealey/Myers Ch.2)",
            "total_undiscounted": 200
          }
        }
      }
    },
    {
      "tool_id": "art-325-tvm-irr",
      "tool_version": "1.0.0",
      "display_name": "Internal Rate of Return (IRR)",
      "mcp_name": "compute_irr",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-325-tvm-irr.html",
      "description": "Internal rate of return for an equal-period cash flow series, solved by deterministic bisection over a declared rate bracket with declared tolerance and iteration cap. Never Newton/derivative-based, so no float-drift nondeterminism. Reports whether the bracket contained a sign change and whether the search converged.",
      "input_schema_ref": "chaingraph/art-325-tvm-irr.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ce6c2877623d0c8092e2ec9a670ce48ce411824ec8006e77f813ecce62070b6d","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": "CGcHoi5fZLCAl+KPTf1IJKVPYKndsnldUImGfFza+FgwTeQlgESKYtO/bYcHT6AiLKywKTuHunRlAO5Sl3+elg9xtmq2nXoBbogUMt7JmtK1NFeHzolDY6RfyNevDitzIAT2rEukjw0keONAGyhAok3MOyNtbwvV3ULdu5CsiPYNsYDDfRpt+C5WYNNV9zP8LEvuGWp1BbQpLkRvf74Z4gxSlOMo3DgmAHIQkZspu+dZUoq9MqC46aS7RycMELpeK80FWomO9LSwbtK9ClOsE5khLk6D8Z3SaOk9NQ9w0zIHCwwppVecAIs7QnOnn1o5g0lmELcBUIkoE+Hi5PaXVg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ce6c2877623d0c8092e2ec9a670ce48ce411824ec8006e77f813ecce62070b6d",
          "output": {
            "bracket_hi_pct": 1000,
            "bracket_lo_pct": -99.99,
            "converged": true,
            "irr_pct": 14.488844,
            "iterations": 34,
            "method": "bisection",
            "note": "IRR solved by deterministic bisection over the declared [bracket_lo, bracket_hi] rate bracket with declared tolerance and iteration cap — never Newton/derivative-based, so no float-drift nondeterminism. Requires a sign change in NPV(bracket_lo)..NPV(bracket_hi); widen the bracket if bracket_valid is false. Equal-period cash flows only (index 0..n-1); for irregular dated flows use XIRR.",
            "num_cash_flows": 5,
            "regulatory_basis": "Standard internal rate of return, textbook definition (root of NPV as a function of the discount rate)",
            "tolerance": 1e-09
          }
        }
      }
    },
    {
      "tool_id": "art-326-tvm-xirr",
      "tool_version": "1.0.0",
      "display_name": "XIRR (Irregular Dated Cash Flows)",
      "mcp_name": "compute_xirr",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-326-tvm-xirr.html",
      "description": "Annualized rate of return for irregular-interval dated cash flows, matching Excel XIRR semantics exactly: fixed actual/365 day count, anchored to the first cash flow date, solved by deterministic bisection over a declared rate bracket. Companion to compute_irr for cash flows that do not fall on equal periods.",
      "input_schema_ref": "chaingraph/art-326-tvm-xirr.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:3248ec11b6d575a1795556fc220cc80b0f59b917cf7753117589a66df18b53a6","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": "JMmDe3iKBFmO5M1Skj2OV8lfsWU1OKb6BGE8y3aEY10WR0WBBlBCwt5aCdcLRid+v81N2wsmv8rnm2Jk7fLhQiNdI7u+WOVEcOFwBY3aSUMMaWlrA7CGkgMy2BI14TVKH1Vx4ACsH81Fw2/8x5IGjzG7bSrEWphxtRcKsbyKpa8FD3ge9zcI3IRfB5ylLgx+chdpzmIq/nXUZS8TTCWL0hbc0KuFHENQvqT3T2nCB6OijMqQvbLbRN1/8pImbocFH4XfFspXvPh3twNvotFAywkkyWb/91tI9glNuwwayFwMCtrZ2XC2iWDdip59X+iBs7fVHyOey8Bp9ysD/K7v/w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:3248ec11b6d575a1795556fc220cc80b0f59b917cf7753117589a66df18b53a6",
          "output": {
            "anchor_date": "2008-01-01",
            "bracket_hi_pct": 1000,
            "bracket_lo_pct": -99.99,
            "converged": true,
            "day_count_convention": "ACT/365",
            "iterations": 34,
            "method": "bisection",
            "note": "XIRR solved by deterministic bisection over the declared [bracket_lo, bracket_hi] rate bracket. Day count is fixed at actual/365 per Excel/1004 semantics (not caller-configurable, matching the published XIRR definition exactly). Requires a sign change in NPV(bracket_lo)..NPV(bracket_hi) across the dated flows; widen the bracket if bracket_valid is false.",
            "num_cash_flows": 5,
            "regulatory_basis": "Excel XIRR semantics: actual/365 day-count, anchored to the first cash flow date, annualized rate solved from irregular-interval dated cash flows",
            "tolerance": 1e-09,
            "xirr_pct": 37.336253
          }
        }
      }
    },
    {
      "tool_id": "art-327-tvm-annuity",
      "tool_version": "1.0.0",
      "display_name": "Annuity PV / FV / Payment Solver",
      "mcp_name": "compute_annuity",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-327-tvm-annuity.html",
      "description": "Solves present value, future value, or payment for an ordinary annuity or annuity-due, given the other two plus rate and number of periods, using the standard closed-form annuity factor. Matches Excel PV/FV/PMT semantics including the due=true (beginning-of-period) adjustment.",
      "input_schema_ref": "chaingraph/art-327-tvm-annuity.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:165274b6b7aaf7bdd149aa20b208b60dd4d5a632e159d6801d213a8808b2e4e9","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": "GJpUlJS7nzHWZx613AfNpgY1K3Vop5FDj8NWT86tVcoi+2fbK8uTBqsu4cm3Sa1qj0OlIoS2p6Ox3cO0YWeMDSJNjzg8pbr6i6kElup753c9mzaQIEVdo+FKkzAhvBybA22eE0fz57Duv4134+k234/tiYocXmX+8N8BrciciPQKGp258TwC/U/9Q8AyYyl0VF22egN3cvO7eka1WsmP+xX6Xbz0vZk8gayCgp6L+1EI0DA+0BC6fg1lWC5Q3bpADNWfRlQzzWxY0GlPpGj5pzCIZRDSz/tQnOBQ/KcveR0wIZsgEOQwcZbE5rnF7FmbZJZQOSErTGnNvijMJDt35w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:165274b6b7aaf7bdd149aa20b208b60dd4d5a632e159d6801d213a8808b2e4e9",
          "output": {
            "annuity_factor": 22.110544,
            "due": false,
            "fv": 0,
            "note": "One of pv/fv/pmt is solved from the other two plus rate_pct/nper via the closed-form annuity factor (1-(1+r)^-n)/r, adjusted by (1+r) when due=true (annuity-due, payments at period start). Deterministic pow via Taylor-series exp/ln, no engine transcendentals.",
            "nper": 24,
            "pmt": -100,
            "pv": 2211.05,
            "rate_pct": 0.6666666666666667,
            "regulatory_basis": "Standard time-value-of-money annuity identity (Excel PV/FV/PMT semantics), ordinary and annuity-due",
            "solved_for": "pv"
          }
        }
      }
    },
    {
      "tool_id": "art-328-tvm-breakeven",
      "tool_version": "1.0.0",
      "display_name": "Breakeven / CVP Analysis",
      "mcp_name": "compute_breakeven",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-328-tvm-breakeven.html",
      "description": "Standard cost-volume-profit breakeven analysis: breakeven units and revenue from fixed costs, price per unit, and variable cost per unit, plus contribution margin ratio and an optional margin-of-safety calculation against a supplied current volume.",
      "input_schema_ref": "chaingraph/art-328-tvm-breakeven.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:8ee3fde4026fd67095856d912a31f30448034efb23fcf876c670c518b1e1cb54","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": "JgGSDFoZIEG/JuLk5o2zr4ANQz8Fub23N89j7+8UYxop8kJTNdO+08j3AQ2NRrEuWflRMIVPNVItayDDwG/55Cpg4di2FRtmK7oXPmCyqFHcC6DNZy5rc2ih+EHOIrjbHrEQy3u5it2q7tGPVvod9RFB1wZ+wsXljQ0bgnBAvQQkJ/cbo11c+OsljiaFQ0BBx4jG5wPrMqMhe6SWMf6e+Sl5l/+RIpH541s6R1waGfm+oCSF1x2gRmCM64oO+IuCHS4RnKz8Uf9HgtK+rqihNyiRaVNzCy7x/XRzCI3u7PEXsWYQPj4S13deJg+S20O6fpsbFLEYnGNLAi4NF9lA8Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:8ee3fde4026fd67095856d912a31f30448034efb23fcf876c670c518b1e1cb54",
          "output": {
            "breakeven_revenue": 125000,
            "breakeven_units": 5000,
            "contribution_margin_ratio": 0.4,
            "fixed_costs": 50000,
            "margin_of_safety_pct": 16.6667,
            "margin_of_safety_units": 1000,
            "note": "breakeven_units = fixed_costs / (price_per_unit - variable_cost_per_unit). margin_of_safety fields populate only when current_units is supplied and unit_contribution is positive.",
            "price_per_unit": 25,
            "regulatory_basis": "Standard cost-volume-profit (CVP) breakeven analysis, textbook definition (managerial accounting)",
            "unit_contribution": 10,
            "variable_cost_per_unit": 15
          }
        }
      }
    },
    {
      "tool_id": "art-329-tvm-bond-duration",
      "tool_version": "1.0.0",
      "display_name": "Bond Macaulay / Modified Duration",
      "mcp_name": "compute_bond_duration",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-329-tvm-bond-duration.html",
      "description": "Macaulay and modified duration for a standard even-period bullet bond, given face value, coupon rate, yield to maturity, years to maturity, and compounding frequency. Prices the schedule and reports the PV-weighted average time to cash flows in years. Feeds compute_dv01 and compute_convexity for full fixed-income risk analytics.",
      "input_schema_ref": "chaingraph/art-329-tvm-bond-duration.html#manifest",
      "consumes": [],
      "feeds": [
        "art-330-tvm-dv01",
        "art-331-tvm-convexity"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:1a9ea550792a2f97b68467d9ee4ba5672eb14643c70df767526da61b7913d531","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": "JK7QgUMv2B2wRlq2x+blwGpzbiHHrMz4LqpaohcO8KASwdVhOgtuYQZYDlBsihuAHkZm8L0UzLsjnfs7CeRekii77dfSl0a5DcyQ4JD9HgwTT+pPnA/n4cb9ZWtAfupnG2ATIzEJbBp3Kn7WuuS953BxMaScy5UTgstuT1FEExkmpdUdPT87CfyyXPf1eYx0AXVPX93mAVD2D5xncLWxgxAGWvlwPL4MDnxXeVKvOm+ehFt7K6PHEpGAeUFQE/48Ei9H8fqYkBQawZCVAnX9Ejydzmc2ECKhss8dH5mz89YPTerT2Hbjz8uOp/RUqvFMYLT682KhBjH6c4qTsrSDmQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:1a9ea550792a2f97b68467d9ee4ba5672eb14643c70df767526da61b7913d531",
          "output": {
            "coupon_rate_pct": 6,
            "day_count_convention": "30/360",
            "face_value": 1000,
            "macaulay_duration_years": 4.361458,
            "modified_duration_years": 4.193709,
            "note": "Even-period bullet-bond schedule only (no odd first coupon / stub-period support, declared limitation). Macaulay duration = weighted-average time to cash flows (in years) using PV weights at the periodic yield; modified duration = Macaulay / (1 + periodic yield). day_count_convention is echoed for receipt transparency but the schedule itself assumes even periods.",
            "num_periods": 10,
            "periods_per_year": 2,
            "price": 918.89,
            "regulatory_basis": "Standard bullet-bond Macaulay and modified duration, textbook definition (Fabozzi, Bond Markets)",
            "years_to_maturity": 5,
            "ytm_pct": 8
          }
        }
      }
    },
    {
      "tool_id": "art-330-tvm-dv01",
      "tool_version": "1.0.0",
      "display_name": "Bond DV01 (Price Value of a Basis Point)",
      "mcp_name": "compute_dv01",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-330-tvm-dv01.html",
      "description": "DV01 / price value of a basis point for a standard even-period bullet bond, computed by full central-difference reprice at yield plus and minus a declared basis-point shock, not the linear modified-duration approximation. Stays accurate for large coupons or short maturities where the linear approximation drifts. Same bond schedule builder as compute_bond_duration.",
      "input_schema_ref": "chaingraph/art-330-tvm-dv01.html#manifest",
      "consumes": [
        "art-329-tvm-bond-duration"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:76262e8984a1549f9ff95eb1312333c269fc15afbeb9c2f7fc6a7364393ef966","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": "DDq+++Ouc5jJdYha0F1UTljYTvGl5sTdwgijg4fwOLcBkR+M8M0K8PoTwzcRuYN4iw6mYMutvRa1dIArFgz0kQacr7OmZKJmJvXc7mPM9gwqo2TLLEgCa5VWt8FuA7AWCh3U6x4tL2K0d7AEEVCrdmkFaQX0Tu6pvA7x3pqLwMwbZE1aM35lZSA0VxX1prFxqenArcIvytLwrZoOHiAqRQiw/L8dCli5P85GSoy9tPqztWb9kJnvTlQkzLcCJEUOABuMNqhJBGMOOnimIFSYYWqcFvVvUWRBEmfJ5pCbhP0ZiJrPnVAeqvWoXlR6DCXxm/fxBmk//IdHx+wWC3Cz3g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:76262e8984a1549f9ff95eb1312333c269fc15afbeb9c2f7fc6a7364393ef966",
          "output": {
            "coupon_rate_pct": 6,
            "dv01": 0.385356,
            "face_value": 1000,
            "method": "central_difference_full_reprice",
            "note": "DV01 computed by full central-difference reprice at yield +/- shock_size_bp basis points (default 1bp), not the linear modified-duration approximation, so it stays accurate for large coupons or short maturities. Same even-period bullet-bond schedule as compute_bond_duration (no odd first coupon / stub support, declared limitation).",
            "periods_per_year": 2,
            "price": 918.89,
            "price_down_shock": 919.28,
            "price_up_shock": 918.51,
            "regulatory_basis": "DV01 / price value of a basis point (PVBP), standard fixed-income risk measure (Fabozzi, Bond Markets)",
            "shock_size_bp": 1,
            "years_to_maturity": 5,
            "ytm_pct": 8
          }
        }
      }
    },
    {
      "tool_id": "art-331-tvm-convexity",
      "tool_version": "1.0.0",
      "display_name": "Bond Convexity",
      "mcp_name": "compute_convexity",
      "mandate_type": "analytics_mandate",
      "wave": 57,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-331-tvm-convexity.html",
      "description": "Standard closed-form convexity for a bullet bond, annualized by compounding frequency squared. Second-order complement to modified duration for estimating bond price sensitivity to larger yield moves; optionally reports the convexity price-adjustment term for a declared yield shock. Same bond schedule builder as compute_bond_duration.",
      "input_schema_ref": "chaingraph/art-331-tvm-convexity.html#manifest",
      "consumes": [
        "art-329-tvm-bond-duration"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:56d259be1b9261ab5eb2f2370e7965b48ec47f329ad585c5e980a327525262c5","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": "BEJW6q0tq67BQJJ2sSk2puc32LwQUokPPL6b2udESA8piPh5IrHZneVPQwF4ZGBdimjouqvbeUd60wdUEY12hg1prxyhO5AiTmljVG42UKM/0TRWA5DFuurSjp/nEah4LEvZ4Pf01bH9A6/7O7+rjyNYZF+GZM2tuBKCfHinxNUWBeYMUjSJuPgJaa1EP4aUj8isdKBuvleCBV7pMbMiMAujZBRe289u0Usfpxz6Oo+VRhrMEPBMpnejUl1ozBofGD8M5Rv3PpeVuyvamuoEY7k08/lNL2VvQNdbsdKlq48DjuomeGw+wP9hOObHkCjCSiuvQoGrtj8YU3K7vx6Mcw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:56d259be1b9261ab5eb2f2370e7965b48ec47f329ad585c5e980a327525262c5",
          "output": {
            "convexity": 21.151083,
            "convexity_price_adjustment_pct": null,
            "coupon_rate_pct": 6,
            "face_value": 1000,
            "note": "Convexity = sum(CF_t * t*(t+1) / (1+y)^(t+2)) / Price, annualized by dividing by periods_per_year^2. Same even-period bullet-bond schedule as compute_bond_duration/compute_dv01 (no odd first coupon / stub support, declared limitation). convexity_price_adjustment_pct only populates when yield_shock_bp is supplied (0.5 * convexity * dy^2 second-order term).",
            "num_periods": 10,
            "periods_per_year": 2,
            "price": 918.89,
            "regulatory_basis": "Standard closed-form bond convexity, textbook definition (Fabozzi, Bond Markets Ch.4)",
            "years_to_maturity": 5,
            "ytm_pct": 8
          }
        }
      }
    },
    {
  "tool_id": "art-332-build-amortization-schedule",
  "tool_version": "1.0.0",
  "display_name": "Amortization Schedule Builder",
  "mcp_name": "build_amortization_schedule",
  "mandate_type": "compliance_mandate",
  "wave": 59,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-332-build-amortization-schedule.html",
  "description": "Deterministic amortization schedule builder covering level-payment, ARM (index plus margin, periodic and lifetime caps, recast), interest-only, balloon, and temporary buydown (2-1 or 3-2-1) structures, per the unit-period and odd-days conventions in 12 CFR 1026 Appendix J. Returns the full period-by-period schedule (principal, interest, ending balance), totals, a schedule_digest, and advances/payments arrays shaped for direct use as the actuarial APR solver's input. Cents-integer fixed-point math throughout; no floating-point drift.",
  "input_schema_ref": "chaingraph/art-332-build-amortization-schedule.html#manifest",
  "consumes": [],
  "feeds": [
    "art-215-reg-z-appendix-j-apr"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:8885c70d3b73687cac1d701f769dca9e13c67e4101c9ff6cd9707922f141439b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"F2IU+UOo8i+xJ9p6reR9Cxlvl0UE4bgvDL3CTaeA0B0Clu7SOVOsI8kcpaQvJxh75mT1nvqozveWpHhP1v9QUyE69Ufid+YVfVHZc2jXX9yaSf49zeCRoeLRbSUgG3g/LLi0fBixaO3ePTJIqNAfjBsMLcdpJa5mDc3W9CHPfRImp1zaQEasEUpku/gJ+McRX6ER8FZxLYN5lza0t4uFXBKR62FCgbHmgQYETytOy3pJ4F6lBfpOjtsfnQZu/3Q/Dnak7wUxWMRQa8Mxf7YcYNSRGHUzEOhdD9dMALIDnugjDygvgK4rrmLwdFvBHkp+pTcj6L6K+H8+M+NsrOhIvA==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:8885c70d3b73687cac1d701f769dca9e13c67e4101c9ff6cd9707922f141439b","output":{"advances":[{"amount":6000,"periods_from_consummation":0}],"loan_amount":6000,"note":"Odd-days fraction shifts periods_from_consummation for the first period per Appendix J unit-period convention; it does not change per-period interest/principal allocation. Feed advances/payments directly into compute_reg_z_appendix_j_apr (art-215) for an actuarial APR on this schedule.","note_rate_pct":12,"num_payments":24,"odd_days":0,"payment_amount":282.44,"payments":[{"amount":282.44,"periods_from_consummation":1},{"amount":282.44,"periods_from_consummation":2},{"amount":282.44,"periods_from_consummation":3},{"amount":282.44,"periods_from_consummation":4},{"amount":282.44,"periods_from_consummation":5},{"amount":282.44,"periods_from_consummation":6},{"amount":282.44,"periods_from_consummation":7},{"amount":282.44,"periods_from_consummation":8},{"amount":282.44,"periods_from_consummation":9},{"amount":282.44,"periods_from_consummation":10},{"amount":282.44,"periods_from_consummation":11},{"amount":282.44,"periods_from_consummation":12},{"amount":282.44,"periods_from_consummation":13},{"amount":282.44,"periods_from_consummation":14},{"amount":282.44,"periods_from_consummation":15},{"amount":282.44,"periods_from_consummation":16},{"amount":282.44,"periods_from_consummation":17},{"amount":282.44,"periods_from_consummation":18},{"amount":282.44,"periods_from_consummation":19},{"amount":282.44,"periods_from_consummation":20},{"amount":282.44,"periods_from_consummation":21},{"amount":282.44,"periods_from_consummation":22},{"amount":282.44,"periods_from_consummation":23},{"amount":282.47,"periods_from_consummation":24}],"periods_per_year":12,"regulatory_basis":"12 CFR 1026 Appendix J (Reg Z general actuarial equation, unit-period and odd-days conventions). Buydown modeling (temp_buydown) is a schedule-construction convenience, not an Appendix J concept.","schedule":[{"ending_balance":5777.56,"interest":60,"payment_amount":282.44,"period_index":1,"periods_from_consummation":1,"principal":222.44},{"ending_balance":5552.9,"interest":57.78,"payment_amount":282.44,"period_index":2,"periods_from_consummation":2,"principal":224.66},{"ending_balance":5325.99,"interest":55.53,"payment_amount":282.44,"period_index":3,"periods_from_consummation":3,"principal":226.91},{"ending_balance":5096.81,"interest":53.26,"payment_amount":282.44,"period_index":4,"periods_from_consummation":4,"principal":229.18},{"ending_balance":4865.34,"interest":50.97,"payment_amount":282.44,"period_index":5,"periods_from_consummation":5,"principal":231.47},{"ending_balance":4631.55,"interest":48.65,"payment_amount":282.44,"period_index":6,"periods_from_consummation":6,"principal":233.79},{"ending_balance":4395.43,"interest":46.32,"payment_amount":282.44,"period_index":7,"periods_from_consummation":7,"principal":236.12},{"ending_balance":4156.94,"interest":43.95,"payment_amount":282.44,"period_index":8,"periods_from_consummation":8,"principal":238.49},{"ending_balance":3916.07,"interest":41.57,"payment_amount":282.44,"period_index":9,"periods_from_consummation":9,"principal":240.87},{"ending_balance":3672.79,"interest":39.16,"payment_amount":282.44,"period_index":10,"periods_from_consummation":10,"principal":243.28},{"ending_balance":3427.08,"interest":36.73,"payment_amount":282.44,"period_index":11,"periods_from_consummation":11,"principal":245.71},{"ending_balance":3178.91,"interest":34.27,"payment_amount":282.44,"period_index":12,"periods_from_consummation":12,"principal":248.17},{"ending_balance":2928.26,"interest":31.79,"payment_amount":282.44,"period_index":13,"periods_from_consummation":13,"principal":250.65},{"ending_balance":2675.1,"interest":29.28,"payment_amount":282.44,"period_index":14,"periods_from_consummation":14,"principal":253.16},{"ending_balance":2419.41,"interest":26.75,"payment_amount":282.44,"period_index":15,"periods_from_consummation":15,"principal":255.69},{"ending_balance":2161.16,"interest":24.19,"payment_amount":282.44,"period_index":16,"periods_from_consummation":16,"principal":258.25},{"ending_balance":1900.33,"interest":21.61,"payment_amount":282.44,"period_index":17,"periods_from_consummation":17,"principal":260.83},{"ending_balance":1636.89,"interest":19,"payment_amount":282.44,"period_index":18,"periods_from_consummation":18,"principal":263.44},{"ending_balance":1370.82,"interest":16.37,"payment_amount":282.44,"period_index":19,"periods_from_consummation":19,"principal":266.07},{"ending_balance":1102.09,"interest":13.71,"payment_amount":282.44,"period_index":20,"periods_from_consummation":20,"principal":268.73},{"ending_balance":830.67,"interest":11.02,"payment_amount":282.44,"period_index":21,"periods_from_consummation":21,"principal":271.42},{"ending_balance":556.54,"interest":8.31,"payment_amount":282.44,"period_index":22,"periods_from_consummation":22,"principal":274.13},{"ending_balance":279.67,"interest":5.57,"payment_amount":282.44,"period_index":23,"periods_from_consummation":23,"principal":276.87},{"ending_balance":0,"interest":2.8,"payment_amount":282.47,"period_index":24,"periods_from_consummation":24,"principal":279.67}],"schedule_type":"level_payment","totals":{"ending_balance":0,"num_payments":24,"total_interest":778.59,"total_principal":6000},"unit_period_days":30}}}
},
    {
      "tool_id": "art-335-compute-dti-ratios",
      "tool_version": "1.0.0",
      "display_name": "DTI Ratio Calculator",
      "mcp_name": "compute_dti_ratios",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-335-compute-dti-ratios.html",
      "description": "Front-end (housing) and back-end (total) debt-to-income ratios per Fannie Mae Selling Guide B3-6-02 and Freddie Mac Single-Family Seller/Servicer Guide 5401.2. Classifies the back-end ratio into a standard-manual / extended-manual-compensating-factors / DU-LPA-only / exceeds-max tier and flags whether the loan is within the max DTI for the selected underwriting type (DU, LPA, or manual). Feeds art-222-agency-eligibility-matrix as one of its DTI inputs. Not check_agency_eligibility_matrix itself, which performs the full multi-check eligibility decision.",
      "input_schema_ref": "chaingraph/art-335-compute-dti-ratios.html#manifest",
      "consumes": [],
      "feeds": [
        "art-222-agency-eligibility-matrix"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2e686160add3cada6ff0482be86c0e368cd1680f7566f8deac31974459f9dc69","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GEoFE4JrgX7PmT4738g4zWH3KVV7NFpArgUPwlrYKV4t76zCwbry+1SkVQYcrCvbYsKpdFAgl6a8+IDxoWFPbCzTaEtOEuxYTmZaB2q6IQf7QhsBZ9JaZ+kkAwlLtA9fFf89gJYCc5+r9fSZUIXWIeIvAfovWXzkvWN9UbSXeFQgf7PAx7BL+XzkeAXqfsZ+1b03jiTO6NuLLG5jCTk4ZBftaqk4mNSmKqwNsKxlZg4aNHWNP/0w2Kdn4eWAo2LtGEynr3nDRTqT0EW3v3nc0YZOi2v7AmwrFjRfptuwjWUd8z3/z4DQvKKmwBsFS2IxeNUNo8vF22FQmqQV39r0GQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:2e686160add3cada6ff0482be86c0e368cd1680f7566f8deac31974459f9dc69",
          "output": {
            "back_end_dti_pct": 30,
            "dti_tier": "standard_manual",
            "front_end_dti_pct": 22.5,
            "gross_monthly_income": 8000,
            "housing_payment_pitia": 1800,
            "max_dti_pct": 50,
            "note": "Front-end = housing payment (PITIA) / gross monthly income. Back-end = total monthly debt / gross monthly income. Tier bands are representative GSE manual-underwriting / AUS bands -- confirm against the current Selling Guide / Seller Guide and the specific AUS findings for the loan in question. Not check_agency_eligibility_matrix (art-222), which consumes this ratio as one of several eligibility checks.",
            "other_monthly_debts": 600,
            "regulatory_basis": "Fannie Mae Selling Guide B3-6-02 (Debt-to-Income Ratios); Freddie Mac Single-Family Seller/Servicer Guide 5401.2 (Debt payment-to-income ratio)",
            "total_monthly_debt": 2400,
            "underwriting_type": "du",
            "within_max": true
          }
        }
      }
    },
    {
      "tool_id": "art-336-compute-ltv-ratios",
      "tool_version": "1.0.0",
      "display_name": "LTV/CLTV/HCLTV Ratio Calculator",
      "mcp_name": "compute_ltv_ratios",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-336-compute-ltv-ratios.html",
      "description": "Loan-to-value, combined LTV, and home-equity combined LTV per Fannie Mae Selling Guide B2-1.1-03 and Freddie Mac Single-Family Seller/Servicer Guide 5401.1. Applies the lesser-of-value-or-price rule for purchases, appraised value for refinances, and includes the full HELOC credit limit (not just the drawn balance) in HCLTV. Feeds art-222-agency-eligibility-matrix as its LTV/CLTV/HCLTV inputs. Not check_agency_eligibility_matrix itself, which performs the full multi-check eligibility decision.",
      "input_schema_ref": "chaingraph/art-336-compute-ltv-ratios.html#manifest",
      "consumes": [],
      "feeds": [
        "art-222-agency-eligibility-matrix"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:65a08e84465e1ec8ca4a01e9b4b0c7d7d5c566ca467f6efdf622598c36511706","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"KTxcvINeWMXKzskWT24frTjFA2ukX6ORhe17+NGapbUoFDxRToPz5lMpWPusMjjhSb/yoRyOglJuRbpaHt6EyQoCyx7PwAP/C/le8JPA/kCYf1zZNp/u2LZs014b3hdZCRxho5TTaZdh49fQSEqQH7O8trMaEJHZJ5SRno7ieKUHRD6t7aNpKAP357lvzCQJBRiM3mBtDtM6E0MbFZoo2Cgkp5JxyxOrtYlUeRHCSh/qTkvDT7y11dCtbGyx1ytjI8LUKtlWoan2XFYPqbNlMS9SG6123+U/mHv/6i2EnPwHt3vu8CclV2A3McJRTQ4UMddeMelovaKpKiLugC3g4Q==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:65a08e84465e1ec8ca4a01e9b4b0c7d7d5c566ca467f6efdf622598c36511706","output":{"appraised_value":500000,"cltv_pct":80,"first_lien_amount":392000,"hcltv_pct":80,"heloc_credit_limit":0,"ltv_pct":80,"note":"CLTV includes closed-end subordinate financing at the drawn balance. HCLTV includes the full HELOC credit limit whether or not fully drawn, per B2-1.1-03. Value used is the lesser of appraised value and sales price for purchases; appraised value only for refinances. Not check_agency_eligibility_matrix (art-222), which consumes these ratios as inputs to its own LTV/CLTV/HCLTV eligibility checks.","regulatory_basis":"Fannie Mae Selling Guide B2-1.1-03 (LTV, CLTV, HCLTV Ratios); Freddie Mac Single-Family Seller/Servicer Guide 5401.1 (LTV/TLTV/HTLTV ratios)","sales_price":490000,"subordinate_lien_amount":0,"transaction_type":"purchase","value_used":490000}}}
    },
    {
      "tool_id": "art-338-compute-federal-withholding",
      "tool_version": "1.0.0",
      "display_name": "Federal Withholding Calculator (Percentage Method)",
      "mcp_name": "compute_federal_withholding",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-338-compute-federal-withholding.html",
      "description": "Federal income tax withholding via the IRS Publication 15-T (2025) percentage method, Worksheet 1A, for a 2020-or-later Form W-4. Supports single/MFS, married filing jointly, and head of household, plus Step 3 dependents credit, Step 4(a) other income, Step 4(b) deductions, and Step 4(c) extra withholding. STANDARD Withholding Rate Schedules only; the Form W-4 Step 2 multiple-jobs checkbox table is out of scope for v1. Federal only, not tax advice, state withholding out of scope. Feeds art-339-compute-gross-to-net as its federal_withholding_per_period input. Not compute_gross_to_net itself, which adds FICA and produces net pay.",
      "input_schema_ref": "chaingraph/art-338-compute-federal-withholding.html#manifest",
      "consumes": [],
      "feeds": [
        "art-339-compute-gross-to-net"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:510689cdacc57d0934a872451735f41f2e58e4b71158ca7acf61f3738a74936b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "CgThEFm1coJPCB2VulvL8LCrPH9s2JG03IEQVyNzCFMTEccP13R5TuhiVqYbIgkl3qMiiB7l1dGt2K6rXlwNMwKPKXab91GZjWQ54tHdL24UwP+C/BR47AYG5OkN61PUJxpdK6jeuwq4arGbjOARe+wjK/J1f7pXLHQ8gTLZLr0UwuqSG36J02gQ3F31dqllZGao1C1vHElJUNlHaCB2BgOnHrJdtS855XR4aiL+CDtQts/Ntd9kXdPdRBQ0TKr3AkZTXbujTmhWNXp9UhLoDd+qtgzXVLgYLd9Gpjl1C30FNV8E12e+4gBePNqdYpvVoYosQWGdX2058dnBXVGt5g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:510689cdacc57d0934a872451735f41f2e58e4b71158ca7acf61f3738a74936b",
          "output": {
            "adjusted_annual_wage_amount": 43400,
            "bracket_at_least": 18325,
            "bracket_rate": 0.12,
            "constants_version": "2025",
            "federal_withholding_per_period": 161.6,
            "filing_status": "single_or_mfs",
            "note": "STANDARD Withholding Rate Schedules only (Form W-4 Step 2 multiple-jobs checkbox not supported in v1). Federal withholding only; not tax advice; state and local withholding out of scope.",
            "pay_frequency": "biweekly",
            "periods_per_year": 26,
            "regulatory_basis": "IRS Publication 15-T (2025), Section 4, Percentage Method Tables for Automated Payroll Systems; Worksheet 1A.",
            "step3_credit_this_period": 0,
            "step4c_extra_withholding_per_period": 0,
            "tentative_annual_withholding": 4201.5,
            "tentative_withholding_this_period": 161.6
          }
        }
      }
    },
    {
      "tool_id": "art-339-compute-gross-to-net",
      "tool_version": "1.0.0",
      "display_name": "Gross-to-Net Payroll Calculator (FICA)",
      "mcp_name": "compute_gross_to_net",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-339-compute-gross-to-net.html",
      "description": "Gross-to-net payroll calculation: FICA (Social Security 6.2% up to the 2025 $176,100 wage base, Medicare 1.45% uncapped, Additional Medicare Tax 0.9% on cumulative wages over $200,000 per IRC 3101(b)(2)), pretax deduction ordering (401(k)/HSA/Section 125 reduce both FICA and federal-taxable wages), and net pay. federal_withholding_per_period is a declared input, normally fed from art-338-compute-federal-withholding's output, since kernels cannot import one another. Federal only, not tax advice, state withholding and state payroll taxes out of scope. Consumes art-338-compute-federal-withholding. Not compute_federal_withholding itself, which only computes the federal income tax withholding line.",
      "input_schema_ref": "chaingraph/art-339-compute-gross-to-net.html#manifest",
      "consumes": [
        "art-338-compute-federal-withholding"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:949b39c2c3461b1855d81d48fe4f12b764bd6dca603183b7909b69d7b0dde81a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "LOps2hfJhoXoTJ430cgjDMysczmJTkdI6tbsKzApCQgCchYwsCh0qBVoE5HdnlEBMskRzqLXs0HfCz5/tFa0VByezs03Og0/bGO64m/+duPF5V7bKmKePwelxaZ8maVQKObf3+bSnJlS6rFj/wdA5KsRJ3mXaIN0t5jFkGcLlc8PTk2XYKDSmyD+6NXWqSYKy75T0eX3lJrrmhVyburYSwoHsT2ASnLIRl3Yi4XrM6aJHvQKK2OsCZC1eTXS1RqNFi7NpSBD2xjnZbeBXSc5mSPXug4GKaSNhJFheCfbjLoIo12D2JGf0ZvF/s2v5Ms1UhOU+3sKXHEdrRF5QnupiA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:949b39c2c3461b1855d81d48fe4f12b764bd6dca603183b7909b69d7b0dde81a",
          "output": {
            "additional_medicare_tax": 0,
            "additional_medicare_threshold": 200000,
            "additional_medicare_wages_this_period": 0,
            "constants_version": "2025",
            "federal_withholding_per_period": 300,
            "fica_tax_total": 214.2,
            "fica_wages_this_period": 2800,
            "medicare_tax": 40.6,
            "net_pay": 2235.8,
            "note": "Federal FICA and net pay only; not tax advice. State/local withholding and state disability/unemployment employee contributions out of scope. federal_withholding_per_period is a declared input (e.g. from compute_federal_withholding), not recomputed here.",
            "post_tax_other_deductions": 50,
            "pretax_reduces_fica_and_fit": 200,
            "regulatory_basis": "IRC 3101/3121 (FICA); SSA 2025 Contribution and Benefit Base ($176,100 OASDI wage base); IRC 3101(b)(2) Additional Medicare Tax ($200,000 employer-withholding threshold).",
            "social_security_tax": 173.6,
            "ss_taxable_wages_this_period": 2800,
            "ss_wage_base": 176100,
            "ytd_fica_wages_after_period": 12800
          }
        }
      }
    },
    {
      "tool_id": "art-340-compute-flsa-regular-rate",
      "tool_version": "1.0.0",
      "display_name": "FLSA Regular Rate & Overtime Calculator",
      "mcp_name": "compute_flsa_regular_rate",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-340-compute-flsa-regular-rate.html",
      "description": "FLSA regular rate of pay and overtime premium per 29 CFR 778, Subpart C, including nondiscretionary-bonus reallocation into the regular rate (778.110, 778.208-778.209) and the 0.5x overtime premium for hours over 40 in the workweek (778.107). Federal only, not legal advice; state daily/weekly overtime rules out of scope. Multi-workweek bonus proration is the caller's responsibility: nondiscretionary_bonus_amount is the portion already allocated to the single workweek being computed. Not compute_gross_to_net or compute_federal_withholding, which handle payroll tax withholding rather than wage-hour overtime obligations.",
      "input_schema_ref": "chaingraph/art-340-compute-flsa-regular-rate.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:dc00a21aac85481160cee3c24ff63e9fae0faace62668602b069aab28cb7a06a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Aw5dDs40FxOBLDwR/dpyioxQEZL4GykyB6E1/zA592UsismtbHlXDEABsN3QlqB5AWyZwrMr70HbiW7PIzvo7Q4fSgnKdJyuO1/qNNTJn9jBg+rtZCVqBMTn7PnmnjIkHHwpCDUT//KLmyJa7kNBuiZEkBa5UJpYQzdeVxw+2QcI7oRi1CqTda+DT4XOS53k4ncJJk6Te46l824zvGXFlhCWA8u/PcT+aPxF2Bk547n/B8ahJC4ZzsEr39WjwXnJDiuCy9Djo0eGBjb+C4ri02yj2Ulc3TecUUryq1FzJKImKj+Df18F8WiI9WT9n7lrUvpbTimwFKux76YvpGSJTQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:dc00a21aac85481160cee3c24ff63e9fae0faace62668602b069aab28cb7a06a",
          "output": {
            "constants_version": "2025",
            "discretionary_bonus_excluded": 0,
            "hourly_rate": 15,
            "hours_worked_week": 45,
            "nondiscretionary_bonus_amount": 100,
            "note": "Federal FLSA only; not legal advice. State daily/weekly overtime rules (which may be more protective) out of scope. nondiscretionary_bonus_amount must already be the portion allocated to THIS workweek -- multi-week bonus proration (778.209) is the caller's responsibility.",
            "other_includable_pay": 30,
            "overtime_hours": 5,
            "overtime_premium_pay": 44.73,
            "regular_rate": 17.89,
            "regulatory_basis": "29 CFR 778, Subpart C (778.107-778.122): regular rate = all non-excludable remuneration / total hours worked (778.109); nondiscretionary bonuses included (778.110, 778.208-778.209); overtime premium = 0.5x regular rate per hour over 40/week (778.107).",
            "straight_time_pay": 675,
            "total_pay_due": 849.73,
            "total_remuneration": 805
          }
        }
      }
    },
    {
      "tool_id": "art-342-compute-escrow-analysis",
      "tool_version": "1.0.0",
      "display_name": "RESPA Aggregate Escrow Analysis",
      "mcp_name": "compute_escrow_analysis",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-342-compute-escrow-analysis.html",
      "description": "12 CFR 1024.17 (Reg X) aggregate escrow accounting method: builds a 12-month trial running balance from a starting balance, a monthly escrow deposit, and the projected annual disbursement schedule, compares the low point to the 1/6-of-annual-disbursements cushion target, and classifies the account as balanced, shortage, deficiency, or surplus with the corresponding spread/refund remedy. Not test_hpml_escrow (art-235), which tests whether an escrow account was required to be established in the first place.",
      "input_schema_ref": "chaingraph/art-342-compute-escrow-analysis.html#manifest",
      "consumes": [
        "art-235-test-hpml-escrow"
      ],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:e607aef8dedf929559f5a0daafd8a26ba54b900cd7d64c91ee96f5c88416aa9d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KMcILdhORk9JaRTz74LqQbD1aJd1//VTd5uXt2vahYYNiW8oFb6p0g4q/YZcZvieUAdONtk3iHOPbTOouzwV0QfTEgX9Qs50qFwP7dyRSVpIIG3Mx9sJIblGmO/25sSjKR0If/HU9CMonuD1jwAOW2vOJbWw1KF3Ldh5cfcAsCwBxN5niOvvOqRh1zIBg9BdGB8eB5me89x86urYJHA/qRkEjBFQbhamgOf8b6BdiYO+PiVCswPa3LE5ooPXvBYrCI+VaNp8kT3yFkC4iAIOCVjTJxdIUA43DrupvCln+fcuwIHQeibSsveM7rXHW2b9zFsjpO3WiovOq7tJ/tLRSA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e607aef8dedf929559f5a0daafd8a26ba54b900cd7d64c91ee96f5c88416aa9d",
          "output": {
            "account_status": "balanced",
            "cushion_fraction_used": 0.16666666666666666,
            "cushion_target": 500,
            "deficiency_amount": 0,
            "low_point_balance": 500,
            "low_point_month": 6,
            "monthly_deficiency_spread_amount": 0,
            "monthly_escrow_payment": 250,
            "monthly_shortage_spread_amount": 0,
            "new_monthly_escrow_payment": 250,
            "note": "Deficiency = a negative trial balance at any point in the computation year. Shortage = the low point falls short of the cushion target without going negative. Surplus = the low point exceeds the cushion target. Pairs with test_hpml_escrow (art-235), which determines whether an escrow account was required to be established for a first-lien HPML in the first place (§1026.35(b)).",
            "regulatory_basis": "12 CFR 1024.17 (Reg X) aggregate escrow accounting method: (c)/(b) cushion cap (1/6 estimated total annual disbursements); (d) trial running balance; (f)(1) deficiency remedies (30-day demand or spread over at least 2 years); (f)(2) shortage remedies (spread over at least 12 months when the shortage equals or exceeds one month’s escrow payment) and mandatory refund of a surplus of $50 or more within 30 days.",
            "shortage_amount": 0,
            "shortage_spread_required": false,
            "spread_vs_target": 0,
            "starting_balance": 800,
            "surplus_amount": 0,
            "surplus_refund_required": false,
            "total_annual_disbursements": 3000,
            "trial_balances": [
              800,
              1050,
              1300,
              950,
              1200,
              1450,
              500,
              750,
              1000,
              1250,
              1500,
              1750,
              800
            ]
          }
        }
      }
    },
    {
      "tool_id": "art-344-compute-mlr-rebate",
      "tool_version": "1.0.0",
      "display_name": "MLR Rebate Calculator",
      "mcp_name": "compute_mlr_rebate",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-344-compute-mlr-rebate.html",
      "description": "Medical Loss Ratio numerator/denominator, credibility-adjustment tier, 3-year premium-weighted averaging, and rebate math per 45 CFR 158 (ACA MLR rule). Classifies member life-years into non-credible / partially-credible / fully-credible bands, computes the current-year adjusted MLR and the 3-year average against the market threshold (80% individual/small-group, 85% large-group), and applies the de minimis payment floor.",
      "input_schema_ref": "chaingraph/art-344-compute-mlr-rebate.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:cbfd7b14ca5eea94ba5e2f06b9b61ae2e75e52cb321068fd05eaad7b4969ee28","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "MFzeYp9Mti2I9lKTDOuco49ciO7Rg3RWotYNmrCLIkcMCVC603I9A/q0oUve9QLKzYEahc+dFWlAioM2eQN6jQkwMGcQfNIzPAYjRV5WfdsjF8HqhshDHKZOibusDt4oBEjeoUeEOAtGItHN9R1T1Uqr5NSxMYVeBiihe60bA8gb3NEHUR1+rcVTjOKOaSYTVBpxZoL8v3QQefdLhyNL7yuiJtm/GlesKl8XriumyG4fpbPGnkhA7eh4zOPqZq0XB98vzTVSztWz37VxRaGfteIYX8oFqufB4NFNTVCMlI0vHG127y6x5Ft0/BszeQVdIJbLRJcZNGiZrcTHKwNowA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:cbfd7b14ca5eea94ba5e2f06b9b61ae2e75e52cb321068fd05eaad7b4969ee28",
          "output": {
            "adjusted_earned_premium": 4800000,
            "adjusted_incurred_claims": 4260000,
            "constants_version": "2026",
            "credibility_adjustment_pct_points": 0,
            "credibility_tier": "fully_credible",
            "current_year_adjusted_mlr_pct": 88.75,
            "de_minimis": false,
            "market": "large_group",
            "member_life_years": 100000,
            "note": "Credibility-adjustment table is a REPRESENTATIVE linear taper, not the exact CMS deductible-banded schedule -- confirm the precise add-on against the current CMS MLR credibility-adjustment table before filing. De minimis check approximates per-enrollee rebate using member_life_years as the enrollee-count proxy.",
            "raw_mlr_pct": 88.75,
            "rebate_amount": 0,
            "rebate_owed": false,
            "rebate_pct_points": 0,
            "regulatory_basis": "45 CFR 158 (ACA Medical Loss Ratio rule): numerator/denominator 158.140-158.162, credibility adjustment 158.230-158.232, 3-year averaging 158.221, rebate calculation 158.240, de minimis 158.243.",
            "reporting_year": 2026,
            "three_yr_average_mlr_pct": 88.75,
            "threshold_pct": 85,
            "years_included_in_average": 1
          }
        }
      }
    },
    {
      "tool_id": "art-346-compute-experience-mod",
      "tool_version": "1.0.0",
      "display_name": "NCCI Experience Modification Calculator",
      "mcp_name": "compute_experience_mod",
      "mandate_type": "compliance_mandate",
      "wave": 60,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-346-compute-experience-mod.html",
      "description": "Workers'-compensation experience rating modification (NCCI Experience Rating Plan Manual published national formula): per-claim primary/excess loss split at the state split point, then Mod = (Ap + W×Ae + (1-W)×Ee + B) / (Ep + B). Split point, expected losses, expected primary losses, weighting value, and ballast value are licensed NCCI/state rating-bureau table values supplied by the caller from their own experience rating worksheet -- this node never vendors or reproduces those tables, only the published split-and-mod formula.",
      "input_schema_ref": "chaingraph/art-346-compute-experience-mod.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:23a53d6a4168ee19c365556e8672f02cf9d36e2f6445a4d2fc8db1c511d953f5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HNTRFu/CbaXsMBG4OyHqBGLLURGevV/CdJfyxf9pIg4uo1vTlOn4UOyf2M3XR7s/htXDa1oiEJHy6I81ArJpoyCEJgTzXY2dFSNPAXAbQur0wQabT/uETIXEBUPHGKvVGLJ5sfMBwRXczwtMyx4LurZjL7pdwE1OtRFdu7ibp6wEwUGxqDklJrhE9TIoHe03FCpYPrjQ6yxzAqdkXSB7Vy7TofN6Q3+oNu5fbOEtGyEwFsr2SyurqOLqH1NbxzGaEjpiYERtrNWvpq/LkGv4vjUNUq+WRYKf88cq73vb1EYBIr6ctv3A43qa2yfl+4HGFN8Kexz5PVPydMf3ZJ/18A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:23a53d6a4168ee19c365556e8672f02cf9d36e2f6445a4d2fc8db1c511d953f5",
          "output": {
            "actual_excess_losses": 35000,
            "actual_primary_losses": 38000,
            "actual_total_losses": 73000,
            "ballast_value": 12000,
            "claim_count": 3,
            "expected_excess_losses": 36000,
            "expected_losses": 60000,
            "expected_primary_losses": 24000,
            "mod": 2.38,
            "note": "Split point, expected losses, expected primary losses, weighting value, and ballast value are licensed NCCI/state rating-bureau table values supplied by the caller from their own NCCI experience rating worksheet -- this kernel never vendors or reproduces those tables, only the published per-claim split and mod formula.",
            "rating_class": "debit",
            "regulatory_basis": "NCCI Experience Rating Plan Manual (published national experience rating formula: Mod = (Ap + W×Ae + (1-W)×Ee + B) / (Ep + B))",
            "split_point": 15000,
            "weighting_value": 0.25
          }
        }
      }
    },
    {
      "tool_id": "art-348-score-credit-model-quantized",
      "tool_version": "1.0.0",
      "display_name": "Quantized Credit Model Scorer",
      "mcp_name": "score_credit_model_quantized",
      "mandate_type": "credit_assessment",
      "wave": 58,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-348-score-credit-model-quantized.html",
      "description": "Runs a fixed, int8-quantized logistic-regression-class credit-decisioning model as a pure integer inference kernel and returns the score it produced from the supplied normalized inputs. Proves that THIS fixed quantized model produced THIS score from THESE inputs. It is not a fairness attestation and not a model-quality certification, and the underlying model is a synthetic offline demand-test artifact, not fit for real regulatory credit decisioning. The quantization_parity block on the artifact records the float-vs-quantized agreement rate measured over 1000 held-out vectors.",
      "input_schema_ref": "chaingraph/art-348-score-credit-model-quantized.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:dc6397d80f24256dca54268da76455d52adbc30581facc329dbec8aa51fbefeb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "E5Pe+3S0r0WgEOPyjf2DG1KWAkP51KF61AJWpQBm6o4soGrhFobDn5C/iET/jf/PuJrSKQFX8ZcFozcojHLgMSrdGaBPAwM4OsHpHwP2W/6wFfCkenv8EWpfkNx4x2XvGbdVy7H6u70g5FRFYfWSmsXYN/QzL5bBcfhoirs0XWMDyU4LBRNe5Tk2pW9mtk1oIMuBivEdmq1e8Jxr5DYjThbjOzmDAExk49FHrnajd02mlPvGj6J+c2ulzyBoCWfmCcRNxD9mtoIVwrb3KWdWwxcbRPS0C5nANpXjzCldAEkbVSGVffbBHip1epQoULHGZ43c1kndOqmZ4q0x9dt7bw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:dc6397d80f24256dca54268da76455d52adbc30581facc329dbec8aa51fbefeb",
          "output": {
            "accumulator_fixp": -16382468,
            "bits": 8,
            "decision": 0,
            "n_features": 10,
            "quant_method": "static-linear",
            "threshold_fixp": 0
          }
        }
      }
    },
    {
      "tool_id": "art-349-fedwire-structured-address-linter",
      "tool_version": "1.0.0",
      "display_name": "Fedwire Structured Address Linter",
      "mcp_name": "lint_fedwire_structured_address",
      "mandate_type": "compliance_mandate",
      "wave": 46,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-349-fedwire-structured-address-linter.html",
      "description": "Lints a Fedwire or CHIPS ISO 20022 PostalAddress24 block against the November 2026 structured-address mandate (network param selects fedwire or chips; rules verified byte-identical between the two networks at build time). On 2026-11-16 Fedwire and CHIPS remove the fully-unstructured postal address option in favor of a single hybrid format -- Town Name and Country always required, up to 2 supplemental AdrLine elements of 70 chars each. Detects unstructured AdrLine-only addresses (prohibited), hybrid silent-fail duplication (AdrLine echoing structured field values, which causes STP rejection without a visible error code), and address structure type (FULLY_STRUCTURED, HYBRID, UNSTRUCTURED, EMPTY). For the SWIFT CBPR+ cross-border equivalent use lint_cbpr_structured_address (art-241).",
      "input_schema_ref": "chaingraph/art-349-fedwire-structured-address-linter.html#manifest",
      "consumes": [],
      "feeds": [
        "art-350-fedwire-address-sweep"
      ],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5d00ddaa78f298a5fa938bf6f520102ef38a75b1de34b7fdb631905ef13cadc8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-17"}],
      "export_capability": [
        "json"
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "H/A8IcYSlMGTwYh7MFf38Zbdx/Fe/CC72NTGKjGqpf4lvhtU7VoM48IL9O4pceRcvW6TEU7Yfnu4Qpp+5OyGMhvWRXG3EnEASc76brj/r7nkNbadejVPB/xhuXGyKR3BK96WjA2SPKYEXoaqMTb89C9NIAhP6ZQ7o7oLh1qdPVEubV4fycNy8XwoWVRr2HJMn963MOSOn8rzs9EIc0r8+CRrJkUabV8yQ6aKE9hr/ZznrFhorMY2c7KDaB/c79tlIH2QNnFt9v+Ra52zK/qgOOnurly+YpZiMQKWFtiXix4mFmWTZ9rPuffcz0lfzR0PjlCg9QenVZfOCzYMCqNDrQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5d00ddaa78f298a5fa938bf6f520102ef38a75b1de34b7fdb631905ef13cadc8",
          "output": {
            "compliant": true,
            "disambiguation": "lint_fedwire_structured_address checks per-message Fedwire/CHIPS Nov-2026 hybrid/fully-structured rule lint (network param selects fedwire or chips; rules are byte-identical on both as of build-time verification, so one kernel covers both networks). For the SWIFT CBPR+ cross-border equivalent use lint_cbpr_structured_address (art-241).",
            "error_count": 0,
            "fedwire_chips_deadline": "2026-11-16",
            "network": "fedwire",
            "pii_note": "All fields operate on STRUCTURAL address components only. No real party PII enters this kernel -- use synthetic or anonymised address data.",
            "readiness_pct": 100,
            "regulatory_basis": "Federal Reserve Financial Services Fedwire Funds Service ISO 20022 November 2026 Release; The Clearing House CHIPS ISO 20022 implementation (aligned to Fedwire address rules)",
            "structure_type": "FULLY_STRUCTURED",
            "table_source": "Federal Reserve Financial Services, Fedwire Funds Service ISO 20022 November 2026 Release FAQ (frbservices.org/resources/financial-services/wires/iso-20022-implementation-center/november-release-faq); The Clearing House CHIPS ISO 20022 address rules (aligned to Fedwire)",
            "table_version": "FEDWIRE-CHIPS-STRUCTURED-ADDRESS-NOV2026-V1",
            "violations": []
          }
        }
      },
      "compute_proof_ready": "ready"
    },
    {
  "tool_id": "art-350-fedwire-address-sweep",
  "tool_version": "1.0.0",
  "display_name": "Fedwire Payment-File Address Sweep",
  "mcp_name": "sweep_fedwire_addresses",
  "mandate_type": "compliance_mandate",
  "wave": 46,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-350-fedwire-address-sweep.html",
  "description": "Batch-sweeps a Fedwire or CHIPS payment file (CSV, one record per row) through the November 2026 structured-address mandate lint (lint_fedwire_structured_address, art-349) per record. Returns a rejection-risk report -- violation counts by rule and the worst offenders -- and a remediation-worksheet receipt (file digest, per-record findings digest, risk score), so a migration team can triage a whole payment file before the 2026-11-16 cutover instead of discovering rejections message-by-message in production. Reuses art-349's rule set rather than reimplementing it -- one kernel is the source of truth for Fedwire/CHIPS structured-address rules.",
  "input_schema_ref": "chaingraph/art-350-fedwire-address-sweep.html#manifest",
  "consumes": [
    "art-349-fedwire-structured-address-linter"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:64b884c3d7960d52db974c9c447144a64692ab993d434cad556a8b72ee062104","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"Iq8T6RI91qjpTuoP62a204PtIfQ15di9QGyEQDIK3Bgstcr4xubB/6naYc0lOgzNJrnjr3M6ednQYKFVPOK4iAVVBiU7Xt4GeOaHHMpzRUhWhZH3ELFCNSFrawQ5jiB4IoVRv9U/tPekmtcDWgpJt0AbxCvrr7W3kJM4s5zDZL8ikUwpOMWpRV2LiRwahL3dbkSyufeT6xZw/1NHV/3FWgsowCQ6c8GLfeAbSUu2R4G3nQUGYebFibKGa58kBkyWLf87X5Vzi2tJ7zbyzYAYGHTAAe0wxyFJF4Pg7suCAf4uHQN09QFz88Ar8HvRTJqhmlbckQcdmJ912YKR59Bo1A==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:64b884c3d7960d52db974c9c447144a64692ab993d434cad556a8b72ee062104","output":{"disambiguation":"sweep_fedwire_addresses batch-sweeps a payment file (CSV or pre-parsed records) through the same rules as lint_fedwire_structured_address (art-349), per record, and rolls the results into a rejection-risk report. For a single-message lint use lint_fedwire_structured_address (art-349) directly.","fedwire_chips_deadline":"2026-11-16","pii_note":"All fields operate on STRUCTURAL address components only. No real party PII enters this kernel -- use synthetic or anonymised payment-file data.","regulatory_basis":"Federal Reserve Financial Services Fedwire Funds Service ISO 20022 November 2026 Release; The Clearing House CHIPS ISO 20022 implementation (aligned to Fedwire address rules)","rejection_risk_report":{"by_rule":{},"compliant_count":3,"compliant_pct":100,"non_compliant_count":0,"parse_errors":[],"total_records":3,"worst_offenders":[],"worst_offenders_truncated":false},"risk_score":0,"table_source":"Federal Reserve Financial Services, Fedwire Funds Service ISO 20022 November 2026 Release FAQ (frbservices.org/resources/financial-services/wires/iso-20022-implementation-center/november-release-faq); The Clearing House CHIPS ISO 20022 address rules (aligned to Fedwire)","table_version":"FEDWIRE-CHIPS-STRUCTURED-ADDRESS-NOV2026-V1"}}}
},
    {
  "tool_id": "art-352-etr-control-evidence-checker",
  "tool_version": "1.0.0",
  "display_name": "ETR Singularity & Exclusive-Control Evidence Checker",
  "mcp_name": "check_etr_control_evidence",
  "mandate_type": "compliance_mandate",
  "wave": 61,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-352-etr-control-evidence-checker.html",
  "description": "Checks a supplied electronic transferable record (ETR/eBL) document digest and control-assertion set (platform identity, singularity assertion, control-transfer events with timestamps and signatures as supplied) against MLETR Art. 10/11 functional-equivalence elements: integrity ref, singularity assertion present, control chain continuous, no overlapping-control intervals. Walks the supplied event log as a single chain of custody and flags any event that does not extend it as an overlapping/unknown-party control claim -- pure interval/chain math over the evidence as presented, not a legal opinion or registry attestation of which copy is authoritative. For general eBL/MLETR functional-equivalence self-assessment scoring use validate_mletr_record (art-53); this tool verifies a concrete supplied control-transfer event log for singularity/exclusivity specifically.",
  "input_schema_ref": "chaingraph/art-352-etr-control-evidence-checker.html#manifest",
  "consumes": [],
  "feeds": [
    "art-55-trade-document-provenance-verifier"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:e9bbe808cfaec0c0c043fb1b8936ec1bff6a491ee704298662e13591cfdbdd8f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Lbkpgvk4Ztz9RkpiIuIY9xflXE89XaGNCG9FvMoWQ00QISsbqFMjsDF0OI/C0rL5A0u4IMX/mYRKlk8ErQflQAtWBG9frUSw3AekxQWwN+ngxRCA0BMxHm1P7bF7ropZDxi4JDfH57n0m4uaPlxiuG2R5u5s/CUmtY7FGYEcrLYP3jQoxOC7muf0l+pLAirI4FUCuVrwG04SaMVv8eo2Ayd8cWocfw5CbJXfRTMX4XqL7ArfLPQZAMh1XSS4ElbcGnQEjBqLMrSXK8X7hVoTKh8VJx+bKfqDVN7D5Ps0fhQU4zjp61wec0uMsqWbpsRjdCuLwaKvV/KFHae6nwWrtQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e9bbe808cfaec0c0c043fb1b8936ec1bff6a491ee704298662e13591cfdbdd8f",
      "output": {
        "chain_summary": {
          "final_holder": "Buyer-C",
          "final_interval_open": true,
          "holder_intervals": [
            {
              "end_epoch_ms": 1000,
              "holder": "Carrier-A",
              "start_epoch_ms": null
            },
            {
              "end_epoch_ms": 2000,
              "holder": "Bank-B",
              "start_epoch_ms": 1000
            },
            {
              "end_epoch_ms": null,
              "holder": "Buyer-C",
              "start_epoch_ms": 2000
            }
          ],
          "malformed_event_count": 0,
          "overlap_event_count": 0,
          "total_events": 2,
          "valid_chain_events": 2
        },
        "document_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "element_checklist": {
          "chain_continuity": {
            "article": "MLETR Art. 11 -- exclusive control (chain continuity)",
            "detail": "2 control-transfer event(s) form one unbroken chain from \"Carrier-A\" to \"Buyer-C\".",
            "result": "pass"
          },
          "exclusive_control": {
            "article": "MLETR Art. 11 -- exclusive control (no overlapping claims)",
            "detail": "No two parties claim overlapping control of the record at any point in time.",
            "overlap_events": [],
            "result": "pass"
          },
          "integrity_ref": {
            "article": "MLETR Art. 10 -- integrity of the electronic record",
            "detail": "document_digest is a well-formed sha256 reference.",
            "result": "pass"
          },
          "singularity": {
            "article": "MLETR Art. 10 -- singularity / authoritative copy",
            "detail": "A named platform_identity asserts sole-authoritative-copy control (singularity_assertion=true).",
            "result": "pass"
          }
        },
        "malformed_events": [],
        "note": "Educational element checklist against UNCITRAL MLETR Arts. 10-11 functional-equivalence criteria for singularity and exclusive control, computed by interval/chain math over the SUPPLIED control-assertion set only. Not a legal opinion, not a registry attestation of which copy is authoritative -- verify the platform's own reliable-system status independently.",
        "overall_verdict": "reliable_evidence",
        "platform_identity": "AcmeChain eBL Registry"
      }
    }
  }
},
    {
  "tool_id": "art-353-etr-possession-chain-builder",
  "tool_version": "1.0.0",
  "display_name": "ETR Possession-Chain Receipt Builder",
  "mcp_name": "build_etr_possession_chain",
  "mandate_type": "cryptographic_mandate",
  "wave": 61,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-353-etr-possession-chain-builder.html",
  "description": "Builds a hash-chained possession-receipt evidence pack for an electronic transferable record (ETR) under UNCITRAL MLETR Art. 10/11: given the ETR's own document digest and an ordered set of control-transfer events (from_holder, to_holder, timestamp, signature -- all as supplied), each receipt binds the prior receipt's hash, so reordering, inserting, or deleting a transfer breaks the chain. Also checks holder-to-holder continuity and timestamp ordering, and computes a SHA-256 Merkle root over the chain -- a portable evidence pack a holder can present to a bank or court. Does not itself assess MLETR Art. 10/11 singularity/exclusive-control legal elements; that verdict is check_etr_control_evidence (art-352).",
  "input_schema_ref": "chaingraph/art-353-etr-possession-chain-builder.html#manifest",
  "consumes": [
    "art-352-etr-control-evidence-checker"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:13ba0669d5e6d376f027ff9d182bc9d5578a33196aa58a755e376dc29a2c4888","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EsU+Ypl/A8CiFlVBTwpzBQuVv7t4F8JHvnulPnJgFUUe+DbnnTM8T0947BgM7Doyg7xKGfq/O2vo6urogMo6lgK66mfTKs5yfXWRdEEe3wi1xi9u8/AtNIIWtv07+ziND1hNCt3JkQ2z/TYeWrk+tD6YPUvOIKoeg2BXeHpphZcIaEELbHHXPgGI4bp5e1Nf/aCFRXAyBmNc7f4rhhyrZgA/3Rm7Trpq4MGXTKG2TPHMNvuBauCT6R1ZaTXiVR8cBBwidljmU8JbZKIjRipqDcy5IBpBxcAfRe7VpDakMt0QL6cVPAQVuAaSb2vw8SdRM7IEdJgRmZJZP49F3JUwWA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:13ba0669d5e6d376f027ff9d182bc9d5578a33196aa58a755e376dc29a2c4888",
      "output": {
        "chain_continuous": true,
        "continuity_breaks": [],
        "document_digest": "sha256:0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0aa0",
        "event_count": 0,
        "final_holder": null,
        "merkle_root": null,
        "note": "Hash-chained possession receipts over supplied control-transfer events, each receipt binding the prior receipt hash. Detects reordering/insertion/deletion of transfers. Does not itself assess MLETR Art. 10/11 singularity/exclusive-control legal elements -- see check_etr_control_evidence (art-352).",
        "possession_receipts": null,
        "timestamp_order_valid": true
      }
    }
  }
},
    {
  "tool_id": "art-354-mletr-jurisdiction-adoption-lookup",
  "tool_version": "1.0.0",
  "display_name": "MLETR Jurisdiction-Adoption Lookup",
  "mcp_name": "lookup_mletr_jurisdiction_adoption",
  "mandate_type": "compliance_mandate",
  "wave": 47,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-354-mletr-jurisdiction-adoption-lookup.html",
  "description": "Static citation-table lookup of UNCITRAL MLETR (Model Law on Electronic Transferable Records) adoption status per jurisdiction -- statute, scope, and effective date, data_version stamped -- and a corridor verdict for whether an electronic bill of lading (eBL) is legally effective end-to-end between an origin and destination jurisdiction (UK, Singapore, UAE, Bahrain, France, Japan, India, US, Germany at this data_version). Answers the 'is an eBL legally effective in corridor X->Y' practitioner question that sits upstream of the MLETR control-evidence chain (art-352/art-353).",
  "input_schema_ref": "chaingraph/art-354-mletr-jurisdiction-adoption-lookup.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:182b05c2f8ecd1a36f271bfffc299baad5f581b051bf9b4f921e9e9521599ab7","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ADftQRe+sBiFSvFB5ZmcNMrZecjxXdfA58hOKCCDWnYYJPxXwwel3jwJOTtIn3GxOapYbLR6Zj1T5evp1GAeQB2wPcYRSNNRvxQ4Y9iDrxYm5EApn8ZFpi52/twzgo8sHGfy7NQS/sUpiFGUn13tpbiAby/FXwt++7mZfoZS6zQZyvYOaCFx4pArHcw0IGX0MaTJGEJGwVWeHOudEk1QaC8rk1mOw2VBc0mRYdxZhpI2L+XnROJRu5l5eHovAlj0FudJ+JVKUqQQ9qOzrQlapjgmGs4UqoSwNhjyXJ7aW+gGcMBjxVeOZRnyJ6mcxpK+j7rxtLbLNcQkVko3YzUftg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:182b05c2f8ecd1a36f271bfffc299baad5f581b051bf9b4f921e9e9521599ab7",
      "output": {
        "corridor": {
          "destination": {
            "citation": "Singapore Statutes, Electronic Transactions Act Part IVA",
            "code": "SG",
            "effective_date": "2021-02-01",
            "input": "Singapore",
            "name": "Singapore",
            "scope": "Electronic transferable records -- first national MLETR adoption worldwide.",
            "status": "adopted",
            "statute": "Electronic Transactions (Amendment) Act 2021"
          },
          "origin": {
            "citation": "UK Public General Acts 2023 c.8",
            "code": "UK",
            "effective_date": "2023-09-20",
            "input": "UK",
            "name": "United Kingdom",
            "scope": "Possessable electronic documents incl. bills of lading, bills of exchange, promissory notes.",
            "status": "adopted",
            "statute": "Electronic Trade Documents Act 2023 (ETDA 2023)"
          }
        },
        "data_version": "MLETR-JURISDICTION-ADOPTION-2026-07-17-V1",
        "disambiguation": "lookup_mletr_jurisdiction_adoption is a static citation-table lookup -- statute, scope, and effective date per jurisdiction, plus a corridor verdict. It is NOT a legal opinion and does NOT assess a specific eBL document (use validate_mletr_record, art-53, for a document-level MLETR Art.10/11 conformance check).",
        "ebl_legally_effective": true,
        "table_source": "UNCITRAL Model Law on Electronic Transferable Records (MLETR, 2017) national-adoption tracking (uncitral.org/en/texts/ecommerce/modellaw/electronic_transferable_records/status); national gazette/statute citations per jurisdiction, verified at build.",
        "verdict": "MLETR_CORRIDOR_RECOGNIZED"
      }
    }
  }
},
    {
  "tool_id": "art-355-erba-standardized-rwa-calculator",
  "tool_version": "1.0.0",
  "display_name": "ERBA / Standardized RWA Calculator (Basel Endgame 2026)",
  "mcp_name": "compute_rwa_erba_2026",
  "mandate_type": "capital_assessment",
  "wave": 48,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-355-erba-standardized-rwa-calculator.html",
  "description": "Credit-risk expanded risk-based approach (ERBA) / standardized-approach RWA calculator per the 2026 Basel Endgame reproposal (BCBS/US NPR, reproposed 2026-03-19, comments closed 2026-06-18, final expected ~Q4 2026). Runs an exposure book -- residential real estate by LTV band, retail (QRRE transactor/revolver, other retail), corporate (ECRA external-rating or SCRA unrated), SME support factor, off-balance-sheet CCFs -- through a chosen rule_set (2023 original NPR or 2026 reproposal) and returns per-exposure risk weights, aggregate RWA, and a receipt. rule_status stays proposed until the rule finalizes. Feeds compare_basel_2023_vs_2026 for the versus-2023 capital delta.",
  "input_schema_ref": "chaingraph/art-355-erba-standardized-rwa-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:99791def46ab9a59fb40a172849acf5aa989fe19c873d272759c2ddf8bcfd80d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HQFUUDkmF7I0EHLRB103qW5dsgFzUmwpN31cm4VP9wMu72/CpJmldDQZ2JTcg/QbE7QsYweL9OFy1RqZ4G3rpSdpeCf+KXLs1gvM5WoLBynxU1l3VyGqBBHewRwddqEPLusOTUs4TJrJzG+0vPhGCoTyYGIFza/vHTbDyqgLPzsnYoSosmoeTJH8yIu2nYxS2es4WEtOunzO+DfBoU0MtB+DB0De4k90Rh0iBLno+kKRiedTJP2VYXbHgMI+QlL5In+yuDZ1QsFkkLdPpXMWPV6BZzF4/233odEArdpUhUAIYuS4DM0jTfwmBMHyqPSJRzK+hELLRQq2MBifrqAcpA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:99791def46ab9a59fb40a172849acf5aa989fe19c873d272759c2ddf8bcfd80d",
      "output": {
        "aggregate_rwa": 1267250,
        "average_risk_weight": 63.204488778054866,
        "constants_version": "BASEL-TAKE2-ERBA-2026-07-17-V1",
        "disambiguation": "compute_rwa_erba_2026 computes per-exposure standardized/ERBA risk weights and aggregate RWA under a chosen Basel Endgame rule_set (2023 original NPR or 2026 reproposal). It does NOT run scenario replay (see sim-03-basel-rwa-scenario-modeler) and does NOT compare rule sets in one call (see compare_basel_2023_vs_2026, BT-3) -- run twice with different rule_set values for a delta.",
        "exposure_count": 5,
        "per_exposure": [
          {
            "basis": "residential_re_ltv_band",
            "category": "residential_re",
            "credit_equivalent_amount": 200000,
            "effective_risk_weight": 30,
            "exposure_amount": 200000,
            "id": "e1",
            "risk_weight": 30,
            "rwa": 60000,
            "sme_support_factor": 1
          },
          {
            "basis": "qrre_transactor",
            "category": "retail_qrre_transactor",
            "credit_equivalent_amount": 5000,
            "effective_risk_weight": 45,
            "exposure_amount": 5000,
            "id": "e2",
            "risk_weight": 45,
            "rwa": 2250,
            "sme_support_factor": 1
          },
          {
            "basis": "ecra_external_rating",
            "category": "corporate",
            "credit_equivalent_amount": 1000000,
            "effective_risk_weight": 75,
            "exposure_amount": 1000000,
            "id": "e3",
            "risk_weight": 75,
            "rwa": 750000,
            "sme_support_factor": 1
          },
          {
            "basis": "ecra_external_rating",
            "category": "corporate",
            "credit_equivalent_amount": 500000,
            "effective_risk_weight": 85,
            "exposure_amount": 500000,
            "id": "e4",
            "risk_weight": 100,
            "rwa": 425000,
            "sme_support_factor": 0.85
          },
          {
            "basis": "off_balance_ccf_unconditionally_cancellable_then_scra_unrated",
            "category": "off_balance",
            "credit_equivalent_amount": 30000,
            "effective_risk_weight": 100,
            "exposure_amount": 300000,
            "id": "e5",
            "risk_weight": 100,
            "rwa": 30000,
            "sme_support_factor": 1
          }
        ],
        "rule_set": "2026",
        "rule_set_label": "Basel III Endgame -- 2026 reproposal (BCBS/US NPR, comments closed 2026-06-18)",
        "rule_status": "proposed",
        "table_source": "Illustrative approximation of BCBS/US Basel III Endgame reproposal (2026-03-19) standardized/ERBA risk-weight bucket structure, contrasted against the original 2023 US NPR. NOT a verbatim regulatory-text transcription -- verify against the final published rule (~Q4 2026).",
        "total_exposure_amount": 2005000
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-356-compute-oprisk-sma-2026",
  "tool_version": "1.0.0",
  "display_name": "Basel Operational Risk SMA (2026 Reproposal)",
  "mcp_name": "compute_oprisk_sma_2026",
  "mandate_type": "capital_assessment",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-356-compute-oprisk-sma-2026.html",
  "description": "Basel Standardized Measurement Approach (SMA) for operational-risk capital per the July 2026 US Basel Endgame reproposal (comment period closed 2026-06-18, final expected ~Q4 2026): marginal Business Indicator Component across the $1bn/$30bn buckets (12%/15%/18%) and the Internal Loss Multiplier, applying the reproposal's US-variant ILM neutralization to 1 by default with a switch to model the non-neutralized BCBS d424 formula. rule_status: proposed -- re-pin at finalization. Formula-focused; does not model scenario/portfolio replay (see the SIM-REPLAY suite for that).",
  "input_schema_ref": "chaingraph/art-356-compute-oprisk-sma-2026.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:e67b9da9f48f588611dee11e1da315939919a5a8b20c287a02840be84ccad970","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KydyquX+90JF7NmVHYVK9RIX84d4o7c3d6vXJNGyPI0X8irjbfoknOjWjKSqrhfHJtPjwQiYZ0cZbw7vbk/1xSW1NXXxOWjr+f2Tjhv/vKHi5O1I9zI7AgpsXNo2SVXHAbawlLENWo/hLqfDw/EP8go8Z3USvRI3OEBq9cH6Wzodz6ShkOuqsgqDBGNpPHJBgdksvVs5XGErHZ2oFCZHsC9iDMgq5pE4r9xAP1GfdyMxTb0dQxUBQLYJLQblpCrmFlueiXXRAhBkcTdW4g6npWSL//0isZu/hb1gsu8U1Z0CKENwowksojxvVDN62W4+DikzxoswefZsRrAdjUfWGA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e67b9da9f48f588611dee11e1da315939919a5a8b20c287a02840be84ccad970",
      "output": {
        "average_annual_loss": 0,
        "bucket": 1,
        "business_indicator": 500000000,
        "business_indicator_component": 60000000,
        "constants_version": "BASEL-SMA-US-2026-PROPOSAL-2026-03-19",
        "fc_avg": 50000000,
        "ildc_avg": 300000000,
        "internal_loss_multiplier": 1,
        "loss_component": 0,
        "note": "Bucket coefficients applied MARGINALLY, not as a flat rate on the whole Business Indicator. ILM neutralization is a US-specific reproposal choice, not a BCBS-standard default -- set use_us_ilm_neutralization:false to model the non-neutralized ILM (BCBS d424 formula) with annual_op_losses supplied.",
        "operational_risk_capital": 60000000,
        "regulatory_basis": "BCBS d424 (Dec 2017 Basel III finalization) Standardized Measurement Approach for operational risk, as carried into the US Basel Endgame reproposal (three NPRs proposed 2026-03-19, comment period closed 2026-06-18): Business Indicator Component via marginal bucket coefficients (12%/15%/18% at $1bn/$30bn), Internal Loss Multiplier neutralized to 1 for US banking organizations per the reproposal (contested provision, subject to change at finalization), RWA = Operational Risk Capital x 12.5.",
        "rule_status": "proposed",
        "rwa": 750000000,
        "sc_avg": 150000000,
        "use_us_ilm_neutralization": true
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-357-basel-2023-vs-2026-capital-delta-comparator",
  "tool_version": "1.0.0",
  "display_name": "Basel 2023-vs-2026 Capital-Delta Comparator",
  "mcp_name": "compare_basel_2023_vs_2026",
  "mandate_type": "compliance_mandate",
  "wave": 48,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-357-basel-2023-vs-2026-capital-delta-comparator.html",
  "description": "Runs the same portfolio through the 2023 Basel III Endgame NPR risk-weight framework and the 2026 reproposal (2026-03-19, three NPRs) framework, then reports the RWA and minimum-capital delta -- the 'reproduce the $87.7bn relief story on OUR book' tool. Representative credit-risk asset-class risk-weight buckets plus a simplified operational-risk SMA business-indicator coefficient, NOT an exhaustive regulatory table. rule_status:'proposed' -- final rule expected ~Q4 2026, re-pin WU pre-authorized at finalization. References compute_rwa_erba_2026 (art-355) and compute_oprisk_sma_2026 (art-356) by tool_id for future chain wiring.",
  "input_schema_ref": "chaingraph/art-357-basel-2023-vs-2026-capital-delta-comparator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:afd75d6663426db39230590951e6f665c53303dff3f98827c91c30ff6fb6d1b6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FjvCwKAQVey2V3jinFzDcXX95JWL44pwTjBGC8ieuwUt/AtkNov+Zx7rCb5BPUDx0lotpHnPEPmx8GkW/UhoOwbgsy+QNO1utk5Ncg/BPwrGZkOgluMBtDfhtVFwrIgqLy+OgH8hcdCAoqraqlsY/BvnRg8WfczVwAciET8RdSAgFLNadsuibFxGkLbis1qzvJDQa2TgS5IETJLZy8TCeA2/o/SgSHZxObpwmCBLaxwz08KH/QP0yTTTWqk4yVSAG7oUJ17smuOYm/1oUTJpcijf2N6p82RcC+2xBhxIZqYpXc/4S2lwjTJaQVpJwdvfNgP0nJzjYVlRDi2JQK0qSg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:afd75d6663426db39230590951e6f665c53303dff3f98827c91c30ff6fb6d1b6",
      "output": {
        "business_indicator": 800000,
        "constants_version": "BASEL-2023-VS-2026-DELTA-2026-07-17-V1",
        "credit_rwa_2023": 6700000,
        "credit_rwa_2026": 4600000,
        "delta_capital": -192000,
        "delta_capital_pct": -0.3037974683544304,
        "delta_rwa": -2400000,
        "direction": "NET_RELIEF_2026_VS_2023",
        "disambiguation": "compare_basel_2023_vs_2026 is a representative-bucket credit + operational-risk capital-delta comparator, NOT an exhaustive regulatory RWA engine. rule_status:\"proposed\" -- final rule expected ~Q4 2026; this tool will be re-pinned at finalization. It does NOT replace compute_rwa_erba_2026 (art-355, exposure-level ERBA) or compute_oprisk_sma_2026 (art-356, full SMA) for production-grade single-rule-set computation.",
        "op_capital_2023": 96000,
        "op_capital_2026": 72000,
        "op_rwa_2023": 1200000,
        "op_rwa_2026": 900000,
        "portfolio_summary": [
          {
            "amount": 5000000,
            "asset_class": "residential_mortgage_low_ltv",
            "rw_2023": 0.4,
            "rw_2026": 0.2,
            "rwa_2023": 2000000,
            "rwa_2026": 1000000
          },
          {
            "amount": 3000000,
            "asset_class": "corporate_investment_grade",
            "rw_2023": 0.65,
            "rw_2026": 0.5,
            "rwa_2023": 1950000,
            "rwa_2026": 1500000
          },
          {
            "amount": 2000000,
            "asset_class": "retail_other",
            "rw_2023": 1,
            "rw_2026": 0.85,
            "rwa_2023": 2000000,
            "rwa_2026": 1700000
          },
          {
            "amount": 1000000,
            "asset_class": "off_balance_sheet_commitment",
            "rw_2023": 0.75,
            "rw_2026": 0.4,
            "rwa_2023": 750000,
            "rwa_2026": 400000
          }
        ],
        "referenced_tool_ids": {
          "erba_2026": "compute_rwa_erba_2026",
          "oprisk_sma_2026": "compute_oprisk_sma_2026"
        },
        "rule_status": "proposed",
        "source": "Basel III Endgame 2023 NPR (88 Fed. Reg. 64028, 2023-09-18) vs 2026 reproposal (three NPRs, 2026-03-19, comments closed 2026-06-18) -- representative credit-risk RW buckets + simplified operational-risk SMA business-indicator coefficient (BI <=1bn bucket, ILM neutralized both years pending US-variant confirmation). rule_status: proposed.",
        "total_capital_2023": 632000,
        "total_capital_2026": 440000,
        "total_rwa_2023": 7900000,
        "total_rwa_2026": 5500000,
        "unrecognized_asset_class": false
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-358-simulate-output-floor",
  "tool_version": "1.0.0",
  "display_name": "Basel Output-Floor Phase-In Simulator",
  "mcp_name": "simulate_output_floor",
  "mandate_type": "compliance_mandate",
  "wave": 61,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-358-simulate-output-floor.html",
  "description": "Basel III finalization / 2026 reproposal output-floor simulator: applies the published floor mechanic (applied RWA = max(internal-model RWA, floor% x standardized RWA)) across a caller-supplied annual phase-in schedule, returning the year-by-year capital impact path, the first binding-floor year, and the maximum incremental RWA the floor adds versus the internal model. Phase-in years and floor percentages are jurisdiction-specific and, pre-finalization, still proposed -- this node takes them as inputs from the caller's own rule text and never vendors or hardcodes a phase-in table.",
  "input_schema_ref": "chaingraph/art-358-simulate-output-floor.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:8f781a73d514cd1ee4db0e654c32b3a632a43e3a7fdd02cc1c2f881a6bfbd873","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HldrQoQy+0HnbXiR2v82q+IPBFHXTncz4AdgrX+sadIZ7dK+iVrTnnIX4htr1CE0kU9KoRFYAaFwik/pVZZDCSDSBSgW5/MA/ca5Sj/agA12rl3p9/hRjRiF3E8EStjxF735stkxbmOLxkAFmklSk5NBxw37GTa/VDUiaDkCKBANAPZFZqi9J1jl3wwhdUcpojWBgJ7Q47luY3Oq0metmxmHKeIGHFAVj7dQnF12BikxieBG/N0UpICm2HbJte6BJjdBVuxictKsgoj1NRtvHQQIs4nwMbESYsXd6V237YEIQ+pNH3KSZ6DTV+UDSVL0XW2dmqzzrQifxtN+l2dyjA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8f781a73d514cd1ee4db0e654c32b3a632a43e3a7fdd02cc1c2f881a6bfbd873",
      "output": {
        "binding_floor_year": null,
        "capital_impact_path": [
          {
            "applied_rwa": 800000,
            "binding": false,
            "floor_pct": 0.5,
            "floor_rwa": 500000,
            "incremental_rwa": 0,
            "year": 2025
          },
          {
            "applied_rwa": 800000,
            "binding": false,
            "floor_pct": 0.55,
            "floor_rwa": 550000,
            "incremental_rwa": 0,
            "year": 2026
          },
          {
            "applied_rwa": 800000,
            "binding": false,
            "floor_pct": 0.6,
            "floor_rwa": 600000,
            "incremental_rwa": 0,
            "year": 2027
          },
          {
            "applied_rwa": 800000,
            "binding": false,
            "floor_pct": 0.65,
            "floor_rwa": 650000,
            "incremental_rwa": 0,
            "year": 2028
          },
          {
            "applied_rwa": 800000,
            "binding": false,
            "floor_pct": 0.7,
            "floor_rwa": 700000,
            "incremental_rwa": 0,
            "year": 2029
          },
          {
            "applied_rwa": 800000,
            "binding": false,
            "floor_pct": 0.725,
            "floor_rwa": 725000,
            "incremental_rwa": 0,
            "year": 2030
          }
        ],
        "floor_ever_binds": false,
        "internal_model_rwa": 800000,
        "max_incremental_rwa": 0,
        "note": "Phase-in schedule (years and floor percentages) is supplied by the caller from their own jurisdiction’s finalized or proposed rule text -- this kernel applies the published floor mechanic and never vendors or hardcodes a phase-in table.",
        "regulatory_basis": "Basel III finalization output floor (BCBS d424 / 2026 US reproposal): applied RWA = max(internal-model RWA, floor% x standardized RWA).",
        "rule_status": "proposed",
        "standardized_rwa": 1000000
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-359-idv-session-receipt-builder",
  "tool_version": "1.0.0",
  "display_name": "IDV/KYC Session Evidence Receipt Builder",
  "mcp_name": "build_idv_session_receipt",
  "mandate_type": "compliance_control",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-359-idv-session-receipt-builder.html",
  "description": "Hash-chains an identity-verification (IDV/KYC) session's declared results into a tamper-evident session receipt, per attempt: session metadata (verifier identity + version, timestamp), capture-chain attestation (C2PA manifest digest if present), injection-detection verdict, liveness verdict, document-check digest, and device-signal summary. Every verifier-sourced field is labeled asserted: this kernel attests the session record as declared, not detection quality or subject genuineness. Zero PII by construction: consumes only digests, booleans, and scores, and rejects any raw-data-shaped input (images, biometric templates) before compute proceeds.",
  "input_schema_ref": "chaingraph/art-359-idv-session-receipt-builder.html#manifest",
  "consumes": [],
  "feeds": [
    "art-418-idv-verification-failure-incident-composer"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:7536fd33a1939b2ccca8c639a235de97b52d53a4897d621ce3a6af1218aae4a5","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"ItJLoA6yQhwVN7pOIlEKAmpfDwYQCv52FfVMCcD5I+UOzzpeKoFkv+KFdncbaj17milsWS53WWRgYvI6UmN7TyCWy6zd9Hhvf3XTysJjft/+n+KJbyW4PY2ZeEZaxVY2JUEklXInvkl79PlEE5Pe6ssZ481/DfBNlGjU4+sG7VQEczdVeyHlqXbSMTZEDCG6bvNAZ9bu8rATUMnESH7YBQu623Vszz+yx30xsLUfsI+NBGp9BrT8CUkhx3KTI4tXGhyd2C0fYJciLzJw3iZdwwuX8w33jsF09z6rMPPzc10TpP/JFcfJbADV+Ie6qLh+AuxLnhQYm5kYipId1WqUXQ==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:26c871dce0c13abab30f09deb7464533b71aeb0efca02e190a0bd388dd7274a1","output":{"missing_fields":[],"note":"Hash-chained IDV/KYC session evidence receipt. Attests the session record AS DECLARED by the verifier -- not detection quality, not subject genuineness. All verifier-sourced fields are labeled \"asserted\". Zero PII: digests/booleans/scores only, raw-data-shaped inputs are rejected.","rejected":false,"session":{"capture_chain":{"label":"asserted","manifest_digest":"sha256:aa11aa11aa11aa11aa11aa11aa11aa11aa11aa11aa11aa11aa11aa11aa11aa1","manifest_present":true},"device_signal":{"label":"asserted","risk_score":0.05,"summary":"consistent-device-fingerprint"},"document_check":{"digest":"sha256:bb22bb22bb22bb22bb22bb22bb22bb22bb22bb22bb22bb22bb22bb22bb22bb2","label":"asserted","verdict":true},"injection_detection":{"confidence":0.97,"label":"asserted","vendor":"DetectCo","vendor_version":"1.4.0","verdict":false},"liveness":{"label":"asserted","method":"active-challenge","score":0.94,"verdict":true},"session_id":"sess-2026-0001","timestamp":"2026-07-18T09:00:00Z","verifier_id":"vendor-alpha-idv","verifier_version":"3.2.1"},"session_complete":true,"session_receipt":null}}}
},
    {
  "tool_id": "art-361-camera-provenance-check",
  "tool_version": "1.0.0",
  "display_name": "Camera-Provenance Check",
  "mcp_name": "check_camera_provenance",
  "mandate_type": "compliance_control",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-361-camera-provenance-check.html",
  "description": "Structural check on an IDV/KYC capture's C2PA manifest: claim well-formedness, hard-binding hash assertion, and claim-signature reference (art-123 reuse), plus a digitalSourceType read off the c2pa.actions assertion that flags trainedAlgorithmicMedia so a downstream reader knows the capture was declared AI-generated rather than a live camera capture. Structural check only, no trust-list or chain-of-trust claim. Feeds the session receipt builder's capture-chain field (art-359).",
  "input_schema_ref": "chaingraph/art-361-camera-provenance-check.html#manifest",
  "consumes": [],
  "feeds": [
    "art-359-idv-session-receipt-builder"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:66a38ec12dbba452a125bf4d8d7e48439c603c7307af287f274e17bac14aa6eb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"Ak69p4fxWoSJjbeQNjuT1F0y9RPzpniIvIecATgBFz4hfsD8KB0OkVYkyejW4K2EDs1rEwrxqN/0ZHPSPHsXGBb7Lj0G81agPkT5JfWEZCrEFRAWyvbvYgkKzsitP7khGgLD4zDErVknrmrMnVl1jV8rYXHftwQ70FXzvb5tw4IeslbvhqpNQiVVvq5jQVWcTqSZZJJAQ7pZ/cXRB00mNhTUX7sw6rL3WBmW6YBzHmoHTJhzo+r/1TULFX37waBDE/CVJEpWWofXNn4Kh+keoJxvanOjMqIKeB02b1t8ONMjP6MUerZ3zkZ6w7z0hAIzaeS2GR3iNeCK0u3/gj7Q+A==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:66a38ec12dbba452a125bf4d8d7e48439c603c7307af287f274e17bac14aa6eb","output":{"capture_chain_field":{"label":"asserted","manifest_digest":"sha256:9c1185a5c5e9fc54612808977ee8f548b2258d31","manifest_present":true},"digital_source_type":"http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture","has_actions":true,"has_hard_binding":true,"manifest_present":true,"manifest_valid":true,"missing_elements":[],"note":"Structural check only -- no trust-list / chain-of-trust claim. digitalSourceType is read verbatim off the c2pa.actions assertion as declared by the manifest generator.","provenance_label":"genuine_capture_asserted","rejected":false,"trained_algorithmic_media_flagged":false}}}
},
    {
  "tool_id": "art-362-compute-raroc-loan-price",
  "tool_version": "1.0.0",
  "display_name": "RAROC Loan Pricing Calculator",
  "mcp_name": "compute_raroc_loan_price",
  "mandate_type": "compliance_mandate",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-362-compute-raroc-loan-price.html",
  "description": "Risk-Adjusted Return on Capital (RAROC) loan pricing per Basel II BCBS 128 (2006) / Basel III BCBS 189 (2010) simplified public approximation of the IRB economic-capital formula (single-factor Vasicek model at 99.9% confidence, or the SA risk-weight bucket table). Returns RAROC versus hurdle rate, economic capital, net income waterfall, and the break-even spread. Provable node counterpart to tools/437-raroc-loan-pricing.html; simplified public approximation, not a substitute for an internally approved IRB model.",
  "input_schema_ref": "chaingraph/art-362-compute-raroc-loan-price.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:924bffad0e3ca899065de2ce2e30a9339ed8b16a215ac8a5bf606f8fc0a9cc0b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"CPEt8oYwKW853xYRkKXFJ3Em3vreJehWXFG06a2Df28vlTwIeWyckri6Q1k4Cr2yn9zkxhKuoM3ehR3Yj8cEFy3Ue9JfGvPXI0YhlwntVz9YGyn10lEpIAlNyRNii+TNF4G+bOaiCkfQk7VSbt9B/PH/a6ZFN8eqbyBY6GK3/U8s8iomnLdPWBJchNLJDNUEMLIxBbXUZ6AGJJNx3mOgPQ1ewaXmDaqpjgg/lPDq5hGp3YJkLAuRxAhW0klHrFS4A2ScBDSdNy2WrObmDR02SdxurOrRR+80zWTXf1fR6FcN93KXqaxQ4s93XIPuGmFyBoz0k1wJDTFw0/u1oqAStA==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:924bffad0e3ca899065de2ce2e30a9339ed8b16a215ac8a5bf606f8fc0a9cc0b","output":{"break_even_gap_bps":-100,"break_even_spread_bps":150,"capital_approach":"airb","drawn_musd":42.5,"economic_capital_musd":3.2,"expected_loss_musd":0.03,"funding_cost_musd":2.04,"gross_revenue_musd":3.37,"hurdle_rate_pct":12,"net_income_after_tax_musd":0.9,"net_income_before_tax_musd":1.2,"note":"RAROC = Net Income after Tax / Economic Capital. AIRB/FIRB economic capital uses the Basel single-factor Vasicek model at 99.9% confidence; SA approach uses a risk-weight bucket table.","operating_cost_musd":0.1,"raroc_pct":28,"regulatory_basis":"Basel II BCBS 128 (2006); Basel III BCBS 189 (2010). Simplified public approximation of the IRB economic-capital formula; not a substitute for an internally approved IRB model.","undrawn_musd":7.5,"value_creating":true,"value_spread_pct":16}}}
},
    {
  "tool_id": "art-363-compute-dscr",
  "tool_version": "1.0.0",
  "display_name": "DSCR & Interest Coverage Ratio Calculator",
  "mcp_name": "compute_dscr",
  "mandate_type": "compliance_mandate",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-363-compute-dscr.html",
  "description": "Debt Service Coverage Ratio and Interest Coverage Ratio suite: Basic/Cash/FCF DSCR, Fixed Charge Coverage Ratio (FCCR), EBIT- and EBITDA-basis ICR, and Net/Gross Leverage, evaluated against a published lender threshold matrix (investment grade, leveraged loan, CRE, infrastructure, SME/mid-market). Provable node counterpart to tools/438-dscr-interest-coverage-calculator.html.",
  "input_schema_ref": "chaingraph/art-363-compute-dscr.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:72672db356155cb674c7b09b6e09d78072704a9700fd99f431fead87a6816ac9","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"JemyXOjWxP6rzhzEx6q/djxSHdELxKSMrP5yPE2V/qME9gwf3juoXAA6gsHTwZX0cn0kACCSI9zOhXPdxbEgwxJ78Ejle1TQrJzsFH89aLj74KVqoSQyE9veY7x6+8UPA/H4FDDnxTLsAHNmHwF2PKs1g3LFGd8u9uQ2gE/1PjkPm81VY49XpwHXpddwf17TAk5KE9uPHfvjP5MJfcnOxierV8qFZj0Hf6BFdS8b7lHQjc54FT0s3d/ZFxXnzI3fDZRMMf75U4197A8UxoG/1CC3kTHdHTGfCvEoDM9eQLQutl2rtOfPyQS1a+I5bHcXI5HKM3dTRygSECHEgbGGCg==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:72672db356155cb674c7b09b6e09d78072704a9700fd99f431fead87a6816ac9","output":{"basic_dscr":2.73,"cash_dscr":1.73,"fccr":2.46,"fcf_dscr":1.59,"gross_leverage":2.67,"icr_ebit_basis":3.67,"icr_ebitda_basis":5,"lender_assessment":[{"dscr_min":1.5,"dscr_pass":true,"icr_min":4,"icr_pass":true,"lender_category":"Investment Grade Corporate","meets_threshold":true},{"dscr_min":1.25,"dscr_pass":true,"icr_min":2.5,"icr_pass":true,"lender_category":"Leveraged Loan (BB)","meets_threshold":true},{"dscr_min":1.25,"dscr_pass":true,"icr_min":null,"icr_pass":null,"lender_category":"CRE / Property","meets_threshold":true},{"dscr_min":1.15,"dscr_pass":true,"icr_min":null,"icr_pass":null,"lender_category":"Infrastructure","meets_threshold":true},{"dscr_min":1.2,"dscr_pass":true,"icr_min":2,"icr_pass":true,"lender_category":"SME / Mid-market","meets_threshold":true}],"net_leverage":2.27,"note":"Ratios with a non-positive denominator return null rather than an unbounded or NaN value.","regulatory_basis":"Standard credit-analysis DSCR/ICR/leverage definitions used in commercial lending covenant testing; lender threshold matrix reflects typical market convention, not a regulatory mandate.","total_debt_service_musd":11}}}
},
    {
  "tool_id": "art-364-compute-lcr-nsfr-leverage",
  "tool_version": "1.0.0",
  "display_name": "LCR / NSFR / Leverage Ratio Calculator",
  "mcp_name": "compute_lcr_nsfr_leverage",
  "mandate_type": "compliance_mandate",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-364-compute-lcr-nsfr-leverage.html",
  "description": "Basel III Liquidity Coverage Ratio (BCBS 238), Net Stable Funding Ratio (BCBS 295), and Leverage Ratio (BCBS 270, finalized BCBS 360) point-in-time calculator from caller-supplied HQLA positions, outflow/inflow categories, ASF/RSF items, and capital/exposure figures. Deterministic single-scenario point calculation, distinct from the Monte Carlo stress distribution in sim-01-lcr-nsfr-liquidity-stress-test. Provable node counterpart to tools/469-lcr-calculator.html, tools/470-nsfr-calculator.html, and tools/471-leverage-ratio-calculator.html.",
  "input_schema_ref": "chaingraph/art-364-compute-lcr-nsfr-leverage.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:168029eb2a2ece66535b95015170c82a1babc5d499325845f30b73065fedb204","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Gg0Ok7mdLxc7LbuhFhRsupr1jh1wyflio2+JPxZ7Lior/qyLSzRoZjwTyoC06cXP+CYKzAF9YuzlEAApNx6onAwUObwZ6uBjiYVWOsFm0Q1soJaUSJHWAbf5xO11EhxbJljgU5SIKFx7rqTaiUozBKwXB2YqSdsvywOqsy4BjX8XaAsW+8ujJEVzUlCMUoToiMyC1PRV9M+ifD2k/p78dx+HkOrsdTgJ/tO+zL94EtMv0OHmoqEyu5qCL8/ufLt5AA9pq5Yw0FvDuYSjVHBwl/QNmAqEf2ZL8WvBbLjX9zwbHbbeVwipX5gkIOG5N9raNqC9nugZy7TaPhVJdOWraQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:168029eb2a2ece66535b95015170c82a1babc5d499325845f30b73065fedb204",
      "output": {
        "lcr": {
          "gross_inflows_musd": 900,
          "gross_outflows_musd": 1400,
          "hqla_total_musd": 7075,
          "inflow_cap_musd": 1050,
          "lcr_compliant": true,
          "lcr_pct": 1415,
          "lcr_surplus_shortfall_musd": 6575,
          "net_cash_outflows_musd": 500,
          "net_inflows_musd": 900
        },
        "leverage": {
          "gsib_leverage_buffer_pct": 0,
          "leverage_ratio_compliant": true,
          "leverage_ratio_pct": 7.86,
          "min_leverage_ratio_pct": 3,
          "tier1_capital_musd": 5500,
          "total_exposure_musd": 70000
        },
        "note": "Deterministic point calculation from caller-supplied positions and regulatory factors for a single reporting date. For a stochastic multi-scenario liquidity stress distribution, use sim-01-lcr-nsfr-liquidity-stress-test.",
        "nsfr": {
          "nsfr_compliant": true,
          "nsfr_pct": 234.68,
          "total_asf_musd": 14550,
          "total_rsf_musd": 6200
        },
        "regulatory_basis": "Basel III Liquidity Coverage Ratio (BCBS 238); Net Stable Funding Ratio (BCBS 295); Leverage Ratio (BCBS 270, finalized BCBS 360)."
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-365-compute-globe-topup-tax",
  "tool_version": "1.0.0",
  "display_name": "GloBE Top-Up Tax & QDMTT Allocation Calculator",
  "mcp_name": "compute_globe_topup_tax",
  "mandate_type": "compliance_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-365-compute-globe-topup-tax.html",
  "description": "OECD Pillar Two GloBE top-up tax calculator: per-jurisdiction substance-based income exclusion (SBIE), effective tax rate (ETR), and top-up-rate/top-up-amount, then allocates the top-up across QDMTT, IIR, and UTPR, applying the OECD Side-by-Side Safe Harbour (approved/declassified 5 January 2026) when the caller declares a Central Record listing of a Qualified SbS Regime, a Filing Constituent Entity election, and a fiscal year on or after 1 January 2026 -- when it applies, Top-up Tax is deemed zero for both the IIR and the UTPR. Ports the calculation from tools/473-globe-etr-jurisdiction-calculator.html and tools/474-topup-tax-qdmtt-calculator.html into one provable kernel. SBIE payroll/asset rates and the 15% minimum rate are OECD-published transitional table values pinned behind a constants_version field -- a rate change is a version bump, never a silent recompute. Jurisdiction-level QDMTT enactment/rate and the Central Record listing are caller-supplied, never vendored. KNOWN-WRONG (comment only, not behaviour, recorded 2026-08-17 per ART9-CITATION-FIX-1): the kernel source at chaingraph/kernels/art-365-compute-globe-topup-tax.kernel.mjs line 49 cites the SBIE transitional rates as 'Art. 9.1' -- the correct citation is Art. 9.2 (Art. 9.1 is Tax Attributes Upon Transition; Art. 9.2 is the Transitional relief for the Substance-based Income Exclusion, per research/ART9-NUMBERING-CONFIRM-1.md and research/ART9-NUMBERING-DENY-1.md). This node is sealed (compute_proof_ready: ready) so the kernel comment is left uncorrected per SO #36 -- no GPU re-prove for a comment. The kernel's behaviour is correct and cleared ART-365-SIDEBYSIDE-1 with zero divergences; fix the comment only if art-365 is ever legitimately re-proved for another reason.",
  "input_schema_ref": "chaingraph/art-365-compute-globe-topup-tax.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:13a6650112aa3c9d98d82f8b01e865c13a0a80fedbda70988c9d012207a66e89",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-06-28"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:de3005f9b2846ff25659cc52323f9bce8093981048dd8ae03553686389afc980",
      "source_url": "https://www.oecd.org/content/dam/oecd/en/topics/policy-sub-issues/global-minimum-tax/side-by-side-package.pdf",
      "retrieved_at": "2026-08-15",
      "clause_path": "Ch5 box item 1"
    },
    {
      "digest": "sha256:ecd621f3fe6bc4c2f5f4a0cca50e8f8303ce1d13816b5f169b2844587abbf067",
      "source_url": "https://www.oecd.org/content/dam/oecd/en/topics/policy-sub-issues/global-minimum-tax/side-by-side-package.pdf",
      "retrieved_at": "2026-08-15",
      "clause_path": "Ch5 box item 6"
    },
    {
      "digest": "sha256:874f502629427c1761dd8fce3ef48cb91699bf6e23231919f9080fcca05845c9",
      "source_url": "https://www.oecd.org/content/dam/oecd/en/topics/policy-sub-issues/global-minimum-tax/side-by-side-package.pdf",
      "retrieved_at": "2026-08-15",
      "clause_path": "Ch5 para 28"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "BOTJ811JnhL8gHIBQ3I9MdSVJT3ipRGyr8Z/SypS1KAYlUi5sjaJ8NiNt1swRgqaItVf72kyF2tsW94NlMmsdgnJMCIDPYxPp9J5aq+Y3eQpRw2W7dmR0ZbUY0pzgkkXD0DdVIydtypC2MKFTDZIPI0QsNYCz2ysYuV4fY7aryUa2Rmx+CqfbKSCDGfpv9LldNtcYKi+9BLCobSGT0+ApR66lNeYrJktdz2fjVJgtFToBvFPMDYq/MNW4q723ASDE56Hp1+3X/SB8tHpy0wYkT2quRqEZke8rS7iXBPb0y4h77oF8ZIQLK3tHVmKI20laCGMW+PqUhknBabX+zb3gg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:13a6650112aa3c9d98d82f8b01e865c13a0a80fedbda70988c9d012207a66e89",
      "output": {
        "aggregate_etr": 0.127059,
        "central_record_sbs": [
          "US"
        ],
        "constants_version": "oecd-globe-sbie-2024-2027-transitional-v1",
        "fy": 2026,
        "globe_min_rate": 0.15,
        "jurisdictions": [
          {
            "assets": 300,
            "below_min_etr": true,
            "etr": 0.14,
            "iir_collected": 0,
            "income": 500,
            "income_net_sbie": 466.2,
            "jur": "DE",
            "payroll": 200,
            "qdmtt_collected": 4.662,
            "qdmtt_enacted": true,
            "qdmtt_rate": 0.15,
            "sbie": 33.8,
            "sbie_payroll_rate": 0.094,
            "taxes": 70,
            "top_up_amount": 4.662,
            "top_up_rate": 0.01,
            "utpr_collected": 0
          },
          {
            "assets": 100,
            "below_min_etr": true,
            "etr": 0.1,
            "iir_collected": 0,
            "income": 200,
            "income_net_sbie": 187.48,
            "jur": "IE",
            "payroll": 80,
            "qdmtt_collected": 9.374,
            "qdmtt_enacted": true,
            "qdmtt_rate": 0.15,
            "sbie": 12.52,
            "sbie_payroll_rate": 0.094,
            "taxes": 20,
            "top_up_amount": 9.374,
            "top_up_rate": 0.05,
            "utpr_collected": 0
          },
          {
            "assets": 120,
            "below_min_etr": true,
            "etr": 0.12,
            "iir_collected": 4.1508,
            "income": 150,
            "income_net_sbie": 138.36,
            "jur": "SG",
            "payroll": 60,
            "qdmtt_collected": 0,
            "qdmtt_enacted": false,
            "qdmtt_rate": 0,
            "sbie": 11.64,
            "sbie_payroll_rate": 0.094,
            "taxes": 18,
            "top_up_amount": 4.1508,
            "top_up_rate": 0.03,
            "utpr_collected": 0
          }
        ],
        "low_etr_count": 3,
        "note": "SBIE payroll rate defaults to the OECD transitional table for fy when not supplied; the tangible-assets SBIE rate is held at the published steady-state 5% regardless of fy, matching the source tools. Jurisdiction-level qdmtt_rate/qdmtt_enacted are caller-supplied, not vendored. The SbS Safe Harbour (us_exempt, keeping the legacy field name) requires all three of a declared Central Record listing (central_record_sbs), a declared Filing CE election (sbs_election), and a fiscal year on or after 2026 -- it is never inferred from parent_hq alone, and when it applies the Top-up Tax for that jurisdiction is deemed zero for both the IIR and the UTPR, not routed between them.",
        "parent_hq": "US",
        "regulatory_basis": "OECD Pillar Two GloBE Model Rules (Dec 2021) + GloBE Commentary (Mar 2022) + Administrative Guidance (2023-2024) + OECD/G20 Inclusive Framework Side-by-Side Package (approved/declassified 5 January 2026) Ch5 SbS Safe Harbour",
        "sbs_election": false,
        "total_iir_collected": 4.1508,
        "total_income": 850,
        "total_qdmtt_collected": 14.036,
        "total_taxes": 108,
        "total_top_up_tax": 18.1868,
        "total_utpr_collected": 0,
        "us_exempt": false
      }
    }
  }
},
    {
  "tool_id": "art-366-price-embedded-insurance",
  "tool_version": "1.0.0",
  "display_name": "Embedded Insurance Pricing Modeller",
  "mcp_name": "price_embedded_insurance",
  "mandate_type": "analytics_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-366-price-embedded-insurance.html",
  "description": "Embedded-insurance unit economics for a platform attaching per-transaction coverage: per-transaction premium, monthly/annual gross written premium, net written premium after reinsurance cession, expected losses, commission and opex cost, underwriting profit, combined ratio, expense ratio, and breakeven loss ratio. Ports the calculation from tools/446-embedded-insurance-pricing-modeller.html into a provable kernel. Losses apply against net written premium while commission and opex apply against gross written premium -- the source tool's own simplification, ported as-is.",
  "input_schema_ref": "chaingraph/art-366-price-embedded-insurance.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:922020678b293aa6eb63c4a37bcb255584dbba538057ff12e804602c901705fe","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"KxDGjS8Ex2imp7+sTYQHCqXh1UTwOtUMPTtOa8aAg0IcTPsu0Kf99P36+KV185FC4lPld1Q0lDyAcl8sVA1Q3iBfwMsnPS9bTYUzigNhT33CkJTYHuOVO848T1jf9zmbA+S0xBGkVAmUHpGc4+CdUGL/sI/VMtB4YvVjERCi588OYAjPhzG0ndclqxaKEb45NxAa1oUaKnXg4Ec6wNGDag/Usx0CRClPwc2WCwhcSvAISril7SkXGzd72Nsl3mPNDU3JM36sA3i3w/8LXG1ZW4v+i2haK3VQ0jNWKmXWj10YFa0nCTuwuVNeo8D/TeZpSrINDW/XRRQDQPAg4CIY+Q==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:922020678b293aa6eb63c4a37bcb255584dbba538057ff12e804602c901705fe","output":{"annual_gwp":882000,"breakeven_loss_ratio_pct":47.14,"combined_ratio_pct":92,"commission_cost":220500,"expected_losses":339570,"expense_ratio_pct":37,"monthly_gwp":73500,"net_written_premium":617400,"note":"Losses apply against net written premium (post-reinsurance); commission and opex apply against gross written premium, matching the source tool simplification.","opex_cost":105840,"per_tx_premium":12.25,"underwriting_profit":-48510}}}
},
    {
  "tool_id": "art-367-compute-cross-border-fees",
  "tool_version": "1.0.0",
  "display_name": "Cross-Border B2B Fee Calculator",
  "mcp_name": "compute_cross_border_fees",
  "mandate_type": "analytics_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-367-compute-cross-border-fees.html",
  "description": "Itemizes a single cross-border B2B invoice's total cost stack: FX spread cost, payment-method/correspondent fee, VAT or reverse-charge cost, documentary-credit cost, and reconciliation cost, plus total cost as a percentage of invoice value. Ports the calculation from tools/141-cross-border-b2b-fee-calculator.html into a provable kernel. VAT treatment, documentary-credit cost, and correspondent fees are caller-supplied, never vendored. Pairs with the already-shipped compare_corridor_cost node (art-249), which benchmarks a remittance corridor against World Bank RPW / SDG 10.c targets rather than itemizing a single invoice.",
  "input_schema_ref": "chaingraph/art-367-compute-cross-border-fees.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ab7cc7c6345a21988fca592f503a6b89a4ddc3fe97267f8996170f1021619817","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"D8PU0VUcTuzGzzvNaFwQ84yXtcCUKJZvLzKa3GjE/LEo7ECZZIlP6/pRhTQ7XiD5zLpq7/ZbywBoxwWaOAWsiRCh2TgBm83WQ2jlL+t4BrPofGCBPWItaB+Tu7tphxTAJmtyaKmUIzRpwlkWQqw+uw/sKKEYynFM83fj3emBfJwOUx1L6XDNo2j1IAjNzfoEqR4ChDFvgrD9qB34VIPlTicodt7oTuz/+GhYkVk8GiImUkjQd3iHwfbNWWVym6/iL5lj8eWPR42iLoMPtWtSwYwNQ5KWLxtD/73VDhYX4ssGMJIhe0tfr6s0Bn+lsz38AxqPvUzYyxFhKPlF+sMOhA==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:ab7cc7c6345a21988fca592f503a6b89a4ddc3fe97267f8996170f1021619817","output":{"dest_country":"GB","disambiguation":"Itemizes one cross-border B2B invoice cost stack. For remittance-corridor benchmarking against World Bank RPW / SDG 10.c targets, see compare_corridor_cost.","doc_cost":0,"fx_cost":637.5,"fx_spread_bps":75,"invoice_amount":85000,"method_fee":35,"origin_country":"US","pct_of_invoice":0.8053,"recon_cost":12,"regulatory_basis":"VAT/reverse-charge treatment, documentary-credit fees, and correspondent/method fees are caller-supplied per their own treaty position and banking agreement -- this kernel never vendors a VAT-treaty or correspondent-fee table, only the published cost-stack formula.","total_cost":684.5,"vat_cost":0,"vat_rate":0}}}
},
    {
  "tool_id": "art-368-compute-fx-netting-positions",
  "tool_version": "1.0.0",
  "display_name": "Multilateral FX Netting Calculator",
  "mcp_name": "compute_fx_netting_positions",
  "mandate_type": "analytics_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-368-compute-fx-netting-positions.html",
  "description": "Multilateral FX netting across up to 8 currencies: nets each currency's payable/receivable exposures in FCY, converts to USD at a caller-supplied spot-plus-forward-points effective rate, and returns gross volume, net volume, netting efficiency, estimated settlement savings, and per-currency residual position with an approximate 95%-confidence VaR. Ports the calculation from tools/105-fx-netting-simulator.html into a provable kernel. Spot rates, forward points, and 30-day volatility are caller-supplied reference data, never vendored.",
  "input_schema_ref": "chaingraph/art-368-compute-fx-netting-positions.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:f7c40844e14788edbc93617ffab9ff10e02f9ced7a427a11d232041defcb2f78","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"HN5NSyJDWcSHESufJ4YVtikSwvuFAQOb4D9TIqn/ASQGawgCKPRqrjMKIqqrNFOm7HNP0LTJbgjGx0OJyxBQUi/KX3By4LlJ2UxTfMb8YUh95Us6O1Gv0tw+ngC/pQS0MByYL/Tuu70U7aeD0tzfvboNmo5NxcfUz5mZCwugjZkEl5UsEvTyEKo3uX85skI/kPS6tYqFKHQNviwML/i0ERIoNhw5v19T0IWYw3SMe8T1QLGWQxxohPXi56QobH6TJzsj2jtj8VibtQZPsu6YqDQ9bFRFSwVDwx7off+ha08brwdgSCzX7IQ9MiYaTMgbk7deu1yiXGPnC4xYROte3A==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:f7c40844e14788edbc93617ffab9ff10e02f9ced7a427a11d232041defcb2f78","output":{"currency_count":3,"estimated_settlement_savings_usd":90,"gross_volume_usd":3970500,"net_volume_usd":604900,"netting_efficiency_pct":84.77,"positions":[{"ccy":"EUR","net_fcy":-230000,"net_usd":-249550,"var_approx_usd":13176.24},{"ccy":"GBP","net_fcy":160000,"net_usd":202400,"var_approx_usd":12690.48},{"ccy":"JPY","net_fcy":-23000000,"net_usd":-152950,"var_approx_usd":10347.07}],"regulatory_basis":"Settlement cost estimate uses SWIFT-wire mid-range per-transaction cost; VaR uses a 95% one-tailed normal approximation (z=1.65) against caller-supplied 30-day volatility. Spot rates, forward points, and volatility inputs are caller-supplied reference data, never vendored."}}}
},
    {
  "tool_id": "art-369-run-rate-shock-ladder",
  "tool_version": "1.0.0",
  "display_name": "Rate Shock Ladder Replay",
  "mcp_name": "run_rate_shock_ladder",
  "mandate_type": "analytics_mandate",
  "wave": 64,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-369-run-rate-shock-ladder.html",
  "description": "US OCC/FDIC interest-rate-risk parallel shock ladder: sweeps four prescribed parallel magnitudes (+/-100/200/300/400bp) over a bucketed repricing-gap schedule, returning both a duration-weighted delta-EVE leg and a 12-month cumulative-gap delta-NII leg per shock. Optional non-parallel steepener/flattener presets are caller-declared (short/long tenor bps split), not baked-in regulatory scalars. Distinct from the shipped BCBS d368 / EBA standardised six-scenario convention (art-183/art-185): sweeps multiple magnitudes rather than one, and combines EVE+NII in a single kernel. Complements CC-A repricing-gap schedules or user-supplied gap tables. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-369-run-rate-shock-ladder.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:225cfd55e3d840c397a4282c89669257f774926ce11c8062c5dbe6d249cc730e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "C/4HBVyibAVKYkVQINsomTvwp/1jQNPNMNkyhVd7nmUAQ/ugei9fqhAH+SNX+tAl1bohIk4FoyF7WHAbydtk4i6ARWFJjO24g/aQ24P84km4JmWHyCjDJhDbDqRMg7PCJUwXfjRSe0e3zI4zTvuvqevIvu3BcdXkasnYSTbVraYbiqWBGxKOdUFiZtQQlRvfOuZE+yBbYzlFg1IQ4en5zhhFHhyBLgvf1AupNW4JqcHPxjgS5/O08Mpi0OQEEZKQDJLEcb7kq9vcNVpJ8ioFkfNOxz99+BIMXopMgQERZTMVaTgfyEczTwO/9UO8nF+zYgd1aMSYpU0GYppsBl5sfg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:225cfd55e3d840c397a4282c89669257f774926ce11c8062c5dbe6d249cc730e",
      "output": {
        "buckets_used": [
          "on_1m",
          "m1_y1",
          "y1_y3",
          "y3_y5",
          "y5_y10",
          "y10_plus"
        ],
        "convention": "US OCC/FDIC parallel rate-shock ladder",
        "ladder": {
          "parallel_down_100bp": {
            "delta_eve": 25040,
            "delta_nii": -3000,
            "shock_bps": -100
          },
          "parallel_down_200bp": {
            "delta_eve": 50080,
            "delta_nii": -6000,
            "shock_bps": -200
          },
          "parallel_down_300bp": {
            "delta_eve": 75120,
            "delta_nii": -9000,
            "shock_bps": -300
          },
          "parallel_down_400bp": {
            "delta_eve": 100160,
            "delta_nii": -12000,
            "shock_bps": -400
          },
          "parallel_up_100bp": {
            "delta_eve": -25040,
            "delta_nii": 3000,
            "shock_bps": 100
          },
          "parallel_up_200bp": {
            "delta_eve": -50080,
            "delta_nii": 6000,
            "shock_bps": 200
          },
          "parallel_up_300bp": {
            "delta_eve": -75120,
            "delta_nii": 9000,
            "shock_bps": 300
          },
          "parallel_up_400bp": {
            "delta_eve": -100160,
            "delta_nii": 12000,
            "shock_bps": 400
          }
        },
        "magnitudes_bps": [
          100,
          200,
          300,
          400
        ],
        "nii_12m_gap": 300000,
        "preset_shocks": {
          "flattener": {
            "delta_eve": 15085,
            "delta_nii": null,
            "long_bps": -50,
            "short_bps": 100
          },
          "steepener": {
            "delta_eve": -27605,
            "delta_nii": null,
            "long_bps": 100,
            "short_bps": -50
          }
        },
        "total_net_gap": 500000,
        "worst_delta_eve": -100160,
        "worst_scenario": "parallel_up_400bp"
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-370-supervisory-scenario-replay",
  "tool_version": "1.0.0",
  "display_name": "Supervisory Scenario Replay (DFAST-lite)",
  "mcp_name": "replay_supervisory_scenario",
  "mandate_type": "capital_assessment",
  "wave": 2,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-370-supervisory-scenario-replay.html",
  "description": "Replays the Fed's published 2026 28-variable supervisory scenario paths (baseline and severely adverse, Q1:2026-Q1:2029) against user-supplied loss and PPNR coefficient functions, producing a quarterly P&L and capital walk. This is a replay of user functions over official published inputs, not the Fed's model and not a DFAST submission.",
  "input_schema_ref": "chaingraph/art-370-supervisory-scenario-replay.html#manifest",
  "deadline": "2027-02-01",
  "deadline_note": "Annual re-pin — Fed publishes new supervisory scenarios each February",
  "consumes": [],
  "feeds": [
    "sim-01-lcr-nsfr-liquidity-stress-test",
    "sim-03-basel-rwa-scenario-modeler"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:1e4fce8fd6091dfe615782e95fda6b777a3c36d0fe5d65cf211f2957d69a64cd","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JbyiYQSMSyXS2LVoELp5rNrnK1LFnH6cR4BImUSzX6ofFd1tgrnCiru+CltX0bG9qtYzc8/1qYSL/p1PGyruaRR/ZAv/RmDdoiFnbZlV3cQ66IjUZ8PdOX0lpUkff0kOBJR7VVD9J9QbjzZ58RqGGNN/mrh7cIF03CiJOSGQ1c8XYqNEbHGq33lm2gXiP/Xy9brGEMO2/9nqxJR//wXyhRnRveaGdCxgkoiOsZ2T8UnCNszRy6oUYC4coI/iidxTGMTgwFsW/FfCaa/o6+UWwmHQaQs/gZWzOg02xlkjx10RZrFp62L3xVHi80iitE7cN4wdcRJsccWBo50uQjI4hQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:1e4fce8fd6091dfe615782e95fda6b777a3c36d0fe5d65cf211f2957d69a64cd",
      "output": {
        "ending_capital_mn": 7333.89,
        "not_a_submission": "This is a replay of user-supplied loss/PPNR functions over the Fed's published scenario paths. It is not the Fed's model, not a DFAST submission, and not a supervisory result.",
        "quarters": [
          {
            "capital_mn": 5227.36,
            "capital_ratio_pct": 13.0684,
            "date": "2026Q1",
            "loss_mn": 0,
            "net_income_mn": 227.36,
            "ppnr_mn": 287.8,
            "pretax_income_mn": 287.8
          },
          {
            "capital_mn": 5427.86,
            "capital_ratio_pct": 13.5696,
            "date": "2026Q2",
            "loss_mn": 34,
            "net_income_mn": 200.5,
            "ppnr_mn": 287.8,
            "pretax_income_mn": 253.8
          },
          {
            "capital_mn": 5606.48,
            "capital_ratio_pct": 14.0162,
            "date": "2026Q3",
            "loss_mn": 67.5,
            "net_income_mn": 178.62,
            "ppnr_mn": 293.6,
            "pretax_income_mn": 226.1
          },
          {
            "capital_mn": 5768.75,
            "capital_ratio_pct": 14.4219,
            "date": "2026Q4",
            "loss_mn": 96,
            "net_income_mn": 162.27,
            "ppnr_mn": 301.4,
            "pretax_income_mn": 205.4
          },
          {
            "capital_mn": 5923.19,
            "capital_ratio_pct": 14.808,
            "date": "2027Q1",
            "loss_mn": 116.3,
            "net_income_mn": 154.44,
            "ppnr_mn": 311.8,
            "pretax_income_mn": 195.5
          },
          {
            "capital_mn": 6069.97,
            "capital_ratio_pct": 15.1749,
            "date": "2027Q2",
            "loss_mn": 134.8,
            "net_income_mn": 146.78,
            "ppnr_mn": 320.6,
            "pretax_income_mn": 185.8
          },
          {
            "capital_mn": 6218.33,
            "capital_ratio_pct": 15.5458,
            "date": "2027Q3",
            "loss_mn": 145,
            "net_income_mn": 148.36,
            "ppnr_mn": 332.8,
            "pretax_income_mn": 187.8
          },
          {
            "capital_mn": 6376.25,
            "capital_ratio_pct": 15.9406,
            "date": "2027Q4",
            "loss_mn": 148.1,
            "net_income_mn": 157.92,
            "ppnr_mn": 348,
            "pretax_income_mn": 199.9
          },
          {
            "capital_mn": 6550.13,
            "capital_ratio_pct": 16.3753,
            "date": "2028Q1",
            "loss_mn": 135.9,
            "net_income_mn": 173.88,
            "ppnr_mn": 356,
            "pretax_income_mn": 220.1
          },
          {
            "capital_mn": 6732.46,
            "capital_ratio_pct": 16.8312,
            "date": "2028Q2",
            "loss_mn": 126.2,
            "net_income_mn": 182.33,
            "ppnr_mn": 357,
            "pretax_income_mn": 230.8
          },
          {
            "capital_mn": 6924.11,
            "capital_ratio_pct": 17.3103,
            "date": "2028Q3",
            "loss_mn": 114.4,
            "net_income_mn": 191.65,
            "ppnr_mn": 357,
            "pretax_income_mn": 242.6
          },
          {
            "capital_mn": 7124.22,
            "capital_ratio_pct": 17.8105,
            "date": "2028Q4",
            "loss_mn": 104.7,
            "net_income_mn": 200.11,
            "ppnr_mn": 358,
            "pretax_income_mn": 253.3
          },
          {
            "capital_mn": 7333.89,
            "capital_ratio_pct": 18.3347,
            "date": "2029Q1",
            "loss_mn": 92.8,
            "net_income_mn": 209.67,
            "ppnr_mn": 358.2,
            "pretax_income_mn": 265.4
          }
        ],
        "scenario": "severely_adverse",
        "scenario_release_date": "2026-02-04",
        "scenario_set_digest": "sha256:f09487a32bd73b5ac1293ff9496b6484ca0e0102c3829ddaf5bb7d76aa0595e8",
        "scenario_source_url": "https://www.federalreserve.gov/publications/files/2026-final-supervisory-stress-test-scenarios-20260204.pdf",
        "starting_capital_mn": 5000,
        "trough_capital_mn": 5000,
        "trough_capital_ratio_pct": 12.5,
        "trough_quarter": null
      }
    }
  },
  "compute_proof_ready": "ready",
  "export_capability": [
    "xlsx",
    "csv",
    "pdf",
    "xbrl:ocg-ext"
  ]
},
    {
  "tool_id": "art-371-simulate-var-monte-carlo",
  "tool_version": "1.1.1",
  "display_name": "Portfolio VaR — Monte Carlo (Integer PRNG)",
  "mcp_name": "simulate_var_monte_carlo",
  "mandate_type": "risk_control",
  "wave": 2,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-371-simulate-var-monte-carlo.html",
  "description": "Monte Carlo portfolio Value-at-Risk and Expected Shortfall over a one-factor correlated-asset model. Integer-only xoshiro256** PRNG and fixed-point arithmetic run the full path simulation, so a declared seed replays byte-identically, and a tampered seed produces a different hash. Declares the SPEC.md §24.6.2 seeded-stochastic determinism class; the PRNG algorithm, seed, and draw count are carried in the receipt as ordinary inputs/outputs.",
  "input_schema_ref": "chaingraph/art-371-simulate-var-monte-carlo.html#manifest",
  "deadline": null,
  "consumes": [],
  "feeds": [
    "qfa-02-portfolio-var-engine",
    "qfa-03-stress-test-engine"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:e43e90202b192f7f8a4b0d8f5da090c81db5ea4e4d492e6c8a398ce189ac8736","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:d022c4822d2fee377994fcc2aa06d8b004c2c2709cc128a6428b8f9bcfa07988","valid_from":"2026-07-21"}],
  "compute_proof_ready": "ready",
  "export_capability": [
    "xlsx",
    "csv",
    "pdf",
    "xbrl:ocg-ext"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:d022c4822d2fee377994fcc2aa06d8b004c2c2709cc128a6428b8f9bcfa07988",
    "seal": "HL8YPNqiHP0V1qLsF4e1e1PldzriJ6YFEG0//4XRUo4oftNzc+twr6x/CJ5Uks9XxNjz7GxP3FU+1VkmdsniTwkdCYmZxVp/QMSMC6kdVCSaf37q3uoCUXJPY1fPM6tLFR/5ee+E+4jarhEdzVC5XdNRBADsu34XSXrJVZOMH0MNt+rPyAYQryAkjCEAPsmJDLJXQOtx8P36hPedpulN+QCC8T2ZHOSHtivWBfJkrnAKId0bqMDEhkppjEZ1dPeMIayjVtKfb/OWsWOwD6UZijsVmpknzPLQKX5zA5v6WgktUh3c8pEpfmYSDAgbueZXcUdO4EYNZ4bovQOnl2pW7w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e43e90202b192f7f8a4b0d8f5da090c81db5ea4e4d492e6c8a398ce189ac8736",
      "output": {
        "compliance_flags": ["VAR_WITHIN_LIMITS"],
        "conf_level": 0.99,
        "correlation": 0.3,
        "draw_count": 1320000,
        "es_dollar_mm": 6.9437,
        "holding_period": 10,
        "mc_es_pct": 0.069437,
        "mc_var_pct": 0.060781,
        "n_assets": 10,
        "n_paths": 10000,
        "prng_algorithm": "xoshiro256**",
        "seed": 42,
        "var_dollar_mm": 6.0781,
        "verdict": "MODERATE_RISK"
      }
    }
  }
},
    {
  "tool_id": "art-373-recompute-fund-nav",
  "tool_version": "1.0.0",
  "display_name": "Recompute Fund NAV",
  "mcp_name": "recompute_fund_nav",
  "mandate_type": "attestation_mandate",
  "wave": 51,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-373-recompute-fund-nav.html",
  "description": "Recomputes a fund's net-asset-value-per-share from SUPPLIED holdings (quantity x supplied price, multi-currency with supplied FX), accruals (income and expense with a declared day-count convention), liabilities, and shares outstanding, using fixed-point BigInt money math throughout (no float accumulation). Applies a declared rounding mode (e.g. $0.0001 for a money-market fund vs $0.01 for a standard fund) and returns a full component breakdown. HARD FENCE: every price and FX rate is supplied and asserted, never fetched (zero-egress); this recomputes the arithmetic over declared inputs and attests THAT, never a fair-value opinion, never an independent valuation, never live market data. First entry of the Funds/NAV family (nav-verification-pack) alongside test_nav_error_materiality (FN-2) and compute_fund_expense_ratios (FN-3). Not fund_share_class_composer (asset allocation) or any pricing/valuation tool. 40-Act/UCITS citations informative only.",
  "input_schema_ref": "chaingraph/art-373-recompute-fund-nav.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; NAV recomputation is a continuous fund-operations control, not a periodic filing.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:3814c169b6e2757ca9d93f31022a7c6234d75676d9a66c7d253f672a4a4ae8ac","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"CexGiapTPiHiR1dklWtUFDyQsVVtDi3tTs0I/Nbqp4IG5/vtzLnwvZ9MWOP8yF4Y5641EYfFjfVT9KYiTgRcMikz3EEqMcymr+pT92oZmThmiQEOi35L9OSAK/m2PzluGHXctN0hin9RqldHfPSfMM17PUWPvxiJOjMF/E2ySdsoMVxL3MisS4nwcbWDjxdRlBWU8l+DcV09tRS8PJ5rUinqhaBes6PEgbuG/mT1D1BnEeOD5EVXtpgonpNCJ7XsFIH+UoO0YSdrOk+XnvFzPrA2C04oZXrvvMlCfJfXniAYOwSBhJgyNBG/tx0xgnkEiHdtVm449S8AX+PDZNWlFg==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:3814c169b6e2757ca9d93f31022a7c6234d75676d9a66c7d253f672a4a4ae8ac","output":{"base_currency":"USD","components":{"accrued_expense":[],"accrued_expense_total":"0.00000000","accrued_income":[],"accrued_income_total":"0.00000000","holdings":[{"base_value":"10005.00000000","currency":"USD","local_value":"10005.00000000","price":"10.00500000","quantity":"1000.00000000","security_id":"SEC-A"},{"base_value":"10010.00000000","currency":"USD","local_value":"10010.00000000","price":"20.02000000","quantity":"500.00000000","security_id":"SEC-B"}],"holdings_value":"20015.00000000","liabilities":[],"liabilities_total":"0.00000000","net_assets":"20015.00000000","shares_outstanding":"15000.00000000","total_assets":"20015.00000000","total_liabilities":"0.00000000"},"fence":"Pricing/FX inputs are SUPPLIED, asserted, and digested into this receipt. This kernel recomputes the ARITHMETIC over those declared inputs and attests THAT — never a fair-value opinion, never a valuation, never live market data (zero-egress by contract).","fund_id":"FUND-STD-01","nav_per_share":"1.33","not_proven":[{"detail":"Every price and FX rate is caller-supplied and asserted. This kernel performs no market-data lookups (zero-egress) and does not verify these values against any external source.","item":"Price/FX accuracy"},{"detail":"This is arithmetic recomputation over declared inputs, never an independent fair-value opinion or third-party valuation.","item":"Fair value / independent valuation"},{"detail":"All inputs are point-in-time as supplied by the caller; this kernel makes no claim about market conditions at any other moment.","item":"Live/real-time pricing"},{"detail":"40-Act/UCITS references are informative context only; this kernel makes no claim of compliance with either framework's NAV-computation or filing rules.","item":"Regulatory NAV filing compliance"}],"regulatory_framework":"40-Act/UCITS NAV-computation conventions referenced as informative context only; this kernel makes no compliance claim under either framework.","rounding":{"decimal_places":2,"mode":"half_up"},"structural_error":null,"valuation_date":"2026-07-18"}}}
},
    {
  "tool_id": "art-374-test-nav-error-materiality",
  "tool_version": "1.0.0",
  "display_name": "Test NAV-Error Materiality",
  "mcp_name": "test_nav_error_materiality",
  "mandate_type": "attestation_mandate",
  "wave": 51,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-374-test-nav-error-materiality.html",
  "description": "Compares an erroneous NAV-per-share against a corrected NAV-per-share against a DECLARED materiality policy (the industry half-cent absolute and 1% relative conventions, plus the fund's own policy taken as an input) using fixed-point BigInt money math throughout. Returns a material/immaterial verdict, affected-period math, an estimated impact figure, and a reprocessing-need indication. The fund-ops incident artifact. HARD FENCE: the erroneous and corrected NAV values are supplied and asserted, never independently recomputed here; this attests the arithmetic of the error comparison against a declared policy, never an accounting opinion, never a determination that a fund must reprocess, never advice. Second entry of the Funds/NAV family (nav-verification-pack) alongside recompute_fund_nav (FN-1) and compute_fund_expense_ratios (FN-3). Not recompute_fund_nav (independent NAV recomputation) or any fair-value/pricing tool.",
  "input_schema_ref": "chaingraph/art-374-test-nav-error-materiality.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; NAV-error materiality testing is a fund-operations incident-response control, not a periodic filing.",
  "consumes": [
    "art-373-recompute-fund-nav"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ea70af686a6a7920e78cc9a8c561971099404d2b051fae1c6f6fcf613ab89e7a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"J2MQqIYkffFMdOGanfutegsltkJKuLwGpMSz6x/L3+ke88ly3noRuzpzqRXZdAPuuPapMsCe8LRQ7JbVQCJuKi7zOXloOvp6isIipHDzMSYWTKtPmBORvljtjcZFxDaSAf/W76ul4LpZGlaEc+WCKhXhpPUDqRxSk4JysKE84LcmJGFPwdpzbBEmtec86sGW+vwknh6QWe0jT4ICrGM4pQ9Mo/bPzNqJa8aZewUmePY+tyBKfDeybbbF6COLEBbBGiUwtr6bPdkiQTqulnc9HWWfW+vySaoHX6+Jy/WLfNcAbMEEANTNRylXtk7yKo6efu9FO0jApDx8sZz5Qih8Bg==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:ea70af686a6a7920e78cc9a8c561971099404d2b051fae1c6f6fcf613ab89e7a","output":{"affected_period":{"days":null,"end_date":null,"start_date":null},"declared_policy":{"absolute_breach":false,"absolute_threshold":"0.00500000","material":false,"percent_breach":false,"percent_threshold":"1.000000","policy_source":"industry_default"},"error":{"corrected_nav_per_share":"10.00000000","erroneous_nav_per_share":"10.00100000","error_amount":"0.00100000","error_amount_abs":"0.00100000","error_direction":"overstated","error_pct_abs":"0.010000"},"estimated_impact":null,"fence":"The erroneous and corrected NAV-per-share values are SUPPLIED, asserted, and digested into this receipt. This kernel attests the ARITHMETIC of the error comparison against a DECLARED materiality policy — never an accounting opinion, never a determination that a fund must reprocess, never advice. It computes what the declared policy implies.","fund_id":"FUND-A","industry_convention":{"absolute_breach":false,"absolute_threshold":"0.005","material":false,"percent_breach":false,"percent_threshold":"1"},"materiality_verdict":"IMMATERIAL","not_proven":[{"detail":"This kernel computes what the DECLARED materiality policy implies over the supplied error figures. It is never an accounting opinion, never a legal or regulatory determination of materiality.","item":"Accounting opinion"},{"detail":"A material-verdict flag indicates a reprocessing REVIEW is warranted per the declared policy. The decision to reprocess, and how, rests with the fund’s accounting/compliance function, never this kernel.","item":"Reprocessing decision authority"},{"detail":"The erroneous and corrected NAV-per-share values are caller-supplied and asserted, not independently recomputed or verified here (see recompute_fund_nav, art-373, for that arithmetic).","item":"NAV accuracy of underlying inputs"},{"detail":"The half-cent and 1% figures are common industry conventions, not a codified SEC/40-Act materiality rule. This kernel makes no compliance claim under either framework.","item":"Regulatory materiality standard"}],"regulatory_framework":"Industry half-cent / 1% NAV-error materiality conventions referenced as informative context only; this kernel makes no compliance claim under any specific regulatory framework.","reprocessing_need_indicated":false,"shares_outstanding":null,"structural_error":null,"valuation_date":"2026-07-18"}}}
},
    {
  "tool_id": "art-375-compute-fund-expense-ratios",
  "tool_version": "1.0.0",
  "display_name": "Compute Fund Expense Ratios",
  "mcp_name": "compute_fund_expense_ratios",
  "mandate_type": "attestation_mandate",
  "wave": 51,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-375-compute-fund-expense-ratios.html",
  "description": "Computes a fund's gross and net expense ratios and Total Expense Ratio (TER) from SUPPLIED gross expense components (flat amounts or accruals, using the identical accrual conventions as recompute_fund_nav/FN-1) and average net assets, applying any declared fee waivers/caps strictly in a DECLARED order using fixed-point BigInt money math throughout (no float accumulation). Waiver ordering is the substance: the order in which fixed-dollar caps, percent-of-remaining reimbursements, and rate caps apply changes the net expense ratio, so the order is a required declared input, never a house convention, and every waiver's running-balance effect is returned for audit. HARD FENCE: every expense component, average-net-assets figure, and waiver term is supplied and asserted, never fetched (zero-egress); this recomputes the arithmetic over declared inputs and attests THAT, never an opinion on expense accuracy and never a compliance determination. Third entry of the Funds/NAV family (nav-verification-pack) alongside recompute_fund_nav (FN-1) and test_nav_error_materiality (FN-2). 40-Act/UCITS citations informative only.",
  "input_schema_ref": "chaingraph/art-375-compute-fund-expense-ratios.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; fund expense-ratio computation is a continuous fund-operations control, not a periodic filing.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:21e7330a4b9eb3f27ddcd9bbe5fb4dcf6e3143f9aa9c05faea150bb6c5a2c1c1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"AD79WIrGYupI3KJdrqsKn0MD6/h3VKVle6vjF5DNGoAd1LrCyIR4Y3IqZJdcu74utaz6xOhqbCLulXbWEtS0sh8K0QaHm35UVGtte4vrDkiosV1USc4ig2r4eQNqRrQhI1Wd10v1NoGO6nXVBxCRhgJ8cXkPY+LNhzbdtbde5CsG6ROu847XJT4j9B9++/Xo4dlvMPHvW17ojE0AynlgeAZ0jS0E8MwkB+vYOAlNoQepcBbSfWSPbFbl3NprfDoQBrtgzHVtpLYpDtdsuL+U9FgIFO6sfLVEtOnx73Wp9E8tyDkwuoHkQFLiSOPETQ+DY1SuZqoYGSmpzWrLsSMENA==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:21e7330a4b9eb3f27ddcd9bbe5fb4dcf6e3143f9aa9c05faea150bb6c5a2c1c1","output":{"components":{"average_net_assets":"100000000.00000000","gross_expense_components":[{"amount":"750000.00000000","day_count_convention":"actual/365","description":"management fee"},{"amount":"150000.00000000","day_count_convention":null,"description":"admin fee"},{"amount":"100000.00000000","day_count_convention":null,"description":"12b-1 fee"}],"gross_expense_total":"1000000.00000000","net_expense_total":"1000000.00000000","waivers_applied":[]},"fence":"Expense components, average net assets, and waiver terms are SUPPLIED, asserted, and digested into this receipt. This kernel recomputes the ARITHMETIC over those declared inputs, applying waivers strictly in the DECLARED order, and attests THAT — never an opinion on expense accuracy, never a compliance determination.","fund_id":"FUND-EXP-01","gross_expense_ratio":"0.0100","net_expense_ratio":"0.0100","not_proven":[{"detail":"Every gross expense component, average-net-assets figure, and waiver term is caller-supplied and asserted. This kernel performs no fund-administrator or market-data lookups (zero-egress) and does not verify these figures against any external source.","item":"Expense accuracy"},{"detail":"This kernel applies declared waiver terms arithmetically in the declared order. It makes no judgment on whether a waiver is contractually valid, economically reasonable, or permitted under a fund's governing documents.","item":"Waiver economic substance / permissibility"},{"detail":"40-Act/UCITS references are informative context only; this kernel makes no claim of compliance with either framework's expense-ratio disclosure or filing rules.","item":"Regulatory NAV/expense filing compliance"},{"detail":"TER here equals the gross expense ratio over the declared gross_expense_components. If acquired-fund fees, transaction costs, or other components belong in a fund's reported TER, they must be declared as gross_expense_components — this kernel cannot infer omissions.","item":"Total Expense Ratio scope completeness"}],"period_end":"2026-12-31","period_start":"2026-01-01","regulatory_framework":"40-Act/UCITS expense-ratio disclosure conventions referenced as informative context only; this kernel makes no compliance claim under either framework.","rounding":{"decimal_places":4,"mode":"half_up"},"structural_error":null,"total_expense_ratio":"0.0100"}}}
},
    {
  "tool_id": "art-376-score-payee-name-match",
  "tool_version": "1.0.0",
  "display_name": "Payee Name-Match Score (VoP/CoP)",
  "mcp_name": "score_payee_name_match",
  "mandate_type": "compliance_mandate",
  "wave": 2,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-376-score-payee-name-match.html",
  "description": "Deterministic, versioned single-pair payee name-matching score for Verification-of-Payee / Confirmation-of-Payee evidence. Normalizes (diacritic stripping, legal-entity suffix removal), scores by integer Levenshtein edit distance against both a plain and a token-sorted form, and bands the result MATCH / CLOSE_MATCH / NO_MATCH against declared thresholds. algorithm_version is carried in the receipt so a score is reproducible evidence, not a black-box vendor output. Distinct from the batch aggregate analyser art-11: this scores one declared pair for downstream session-receipt binding.",
  "input_schema_ref": "chaingraph/art-376-score-payee-name-match.html#manifest",
  "deadline": null,
  "deadline_note": "EU IPR VoP mandatory since October 2025; UK CoP 2.0 richer-metadata requirements published",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:de422d2d169f590fa61cfe8f37060bd7af2944def5730c83f77b88c6ed538871","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "B1lsJbiH9mvCkgN6m+TPr9+AKSYB6fmipWjSj5N4oDkizhKL9P97Z78FSuW2y2eQACTi3zpT3gxxq+Q8JJFMlCnzzPaT7dZQQ9b1V4vjifWlgTnOL/EW2vnblzof2gNHD2Br1cQt3fdQ7qc5FyHrZBunniwJtJM4JlM+M4UZOxUGUF5GM/oTqDjfZhvMi1WgujvWJfDYdLrhADj5y1wk5gskabqKi0mVPxRQmZMQfrPcfCCxLu+Jf67DTIign5v2F5wrP8EXFftZjj2cOZd0GSx+nfzeNhOxirKXw9gAeWYTbY7044DaNw7tkTM1SqBPQKIEGY8zV9ahYOYOg/JjSg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:de422d2d169f590fa61cfe8f37060bd7af2944def5730c83f77b88c6ed538871",
      "output": {
        "algorithm_version": "vop-namematch-1.0.0",
        "close_match_threshold": 80,
        "compliance_flags": [
          "VOP_NAME_MATCH"
        ],
        "entity_suffix_stripped": false,
        "match_band": "MATCH",
        "match_threshold": 95,
        "normalized_account_name": "john smith",
        "normalized_reference_name": "john smith",
        "score": 100,
        "transliteration_in_scope": false
      }
    }
  },
  "export_capability": [
    "xlsx",
    "csv",
    "pdf",
    "xbrl:ocg-ext"
  ]
},
    {
  "tool_id": "art-377-build-vop-session-receipt",
  "tool_version": "1.0.0",
  "display_name": "VoP Session Receipt Builder",
  "mcp_name": "build_vop_session_receipt",
  "mandate_type": "compliance_mandate",
  "wave": 2,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-377-build-vop-session-receipt.html",
  "description": "Builds a signed, hash-chained Verification-of-Payee / Confirmation-of-Payee session receipt: binds the declared match result (score, band, algorithm_version or an external source), the warning text and severity shown, and the consumer's action (proceeded, abandoned, retried) across a session's attempts. Each attempt's receipt hash chains to the prior one, rooted at a session-anchored genesis hash, so any reordering or edit breaks the downstream chain. Attests the computation over the declared session record, not ground-truth identity and not the PSP's own UI -- that assertion is the PSP's, bound here as evidence. Verifies fully offline.",
  "input_schema_ref": "chaingraph/art-377-build-vop-session-receipt.html#manifest",
  "deadline": null,
  "deadline_note": "PSR reimbursement-review reporting due October 2026; EU IPR VoP mandatory since October 2025",
  "consumes": [
    "art-376-score-payee-name-match"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:0a05ff3c98289d522ac8c33f9348e44f835c6ace45f93a2e25e4fa6d7871f317","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"DDReaNueroIivPh0n9i6rLsuTUzcHACv9ACapdMeh+waotFJXfDVocMZ4RFUMh9xrQjPuiDPcl7jg2cq4sPl4w444wdbk91zy2evXsCvBpK3mG6l8l9RP4Br3+s2gy8RJBtGC1O5X2jRbva7rQ03FBTn4S8lKsidWF8AP55dOgYPziygJwmED5nCsC3pUNnvCq7Xv00vhV4PMaF2JrieOBwO38OVMiIMoa3j9p/OeO2LkyBAFNgjk04YPIAHaIC3Br6v7UIuh9MRbVvddK7W4FMyVeRZAd0J4GXDuxpz2FEkzHZHXrqmy7O7HUxjnCfUCvGrTNoarMaIV6nczd2AUw==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:0a05ff3c98289d522ac8c33f9348e44f835c6ace45f93a2e25e4fa6d7871f317","output":{"attempt_count":1,"chain_genesis_hash":null,"final_match_band":"MATCH","final_receipt_hash":null,"note":"Attests the computation over the declared session record -- match result, warning shown, and consumer action as asserted by the PSP -- NOT ground-truth identity and NOT the PSP's own UI. Hash-chained per attempt; tampering with any attempt breaks every downstream receipt hash. Verifies fully offline.","session_id":"vop-sess-0001","session_outcome":"proceeded","session_receipts":null,"warning_overridden":false}}},
  "export_capability": [
    "xlsx",
    "csv",
    "pdf",
    "xbrl:ocg-ext"
  ]
},
    {
  "tool_id": "art-378-quarterly-test-evidence-composer",
  "tool_version": "1.1.0",
  "display_name": "Quarterly Agent Test Evidence Composer",
  "mcp_name": "build_agent_test_evidence",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-378-quarterly-test-evidence-composer.html",
  "description": "Composes a quarterly agent testing-evidence pack: test-suite identity and digest, per-test receipts with an honest deterministic/estimated determinism class, pass rate, and a regression comparison chained to the prior quarter's pack digest. A declared prior-pack digest that does not match the caller-supplied prior record is flagged as a broken chain rather than silently accepted. When the caller declares which sealed subject artifact the pack evidences, the per-test receipt digests wrap as a section-27.6 evidence bundle over that subject. Evidence format only -- never a certification claim. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-378-quarterly-test-evidence-composer.html#manifest",
  "deadline": null,
  "deadline_note": "No regulatory deadline; evidence-format tooling run on the adopter's own quarterly test cadence.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:4110cf70767dc5ed8b26fc3543ef15d71239a5f52a8e9396832ac105f212de32","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"JTG2iU3IuV2O6TItcAICPlFtRPsmgtzd+DeU+JtcpA4FVgtatLziksvKvnTVv2RXq79pPyE8w+mByFZr6veYpx+euTJfPXFQnx02u/zt/K8dtSUc8KcmaNNEp0CtrXm0H761azgUwQwE6VCZJ5YaOoGe8OshC6dCHdpuT7cKOf8XpCoTOqL1G9UYrQAxOwKA2GVQUQ18knzDfNbkEWkNRiUhmhVgnr8OvXEAnn2z9JmkCcp6LnsVG2yDO/fWZdQoIeguEyFEI9Fmd0USHsdOKZhHtfilfEE9MtRJhYzTTfsVYKd3iwaTjretZ++v9XX9yyq/BWzWALvuzFlCn0LFAw==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:3f76ae3282468ab897b279b659f06df7297ae43b7c7955ac6691e6ac6e4c15d1","output":{"aiuc_version":"2026-Q1","certification_note":"Prepared for AIUC-1 technical testing evidence; not a certification and not an underwriting decision.","chain_intact":true,"declared_prior_pack_digest":null,"pack_claim_strength":"evidence-backed","pass_rate":1,"passed":3,"per_test":[{"coerced_from_forbidden_class":false,"determinism_class":"deterministic","prng":null,"receipt_digest":"sha256:2222222222222222222222222222222222222222222222222222222222222222","status":"pass","test_id":"t1"},{"coerced_from_forbidden_class":false,"determinism_class":"deterministic","prng":null,"receipt_digest":"sha256:3333333333333333333333333333333333333333333333333333333333333333","status":"pass","test_id":"t2"},{"coerced_from_forbidden_class":false,"determinism_class":"estimated","prng":{"algorithm":"xoshiro256**","draws":10000,"seed":"42"},"receipt_digest":null,"status":"pass","test_id":"t3"}],"prior_quarter":null,"quarter":"2026-Q1","regression":{"delta":null,"regressed":false},"suite":{"suite_digest":"sha256:1111111111111111111111111111111111111111111111111111111111111111","suite_id":"agent-e2e-suite","suite_version":"3.4.0"},"tamper_detected":false,"total":3}}},
  "export_capability": [
    "json",
    "vc"
  ]
},
    {
  "tool_id": "art-379-agent-incident-record-composer",
  "tool_version": "1.0.0",
  "display_name": "Agent Incident Record Composer",
  "mcp_name": "build_agent_incident_record",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-379-agent-incident-record-composer.html",
  "description": "Composes a structured agent incident/failure record from caller-declared inputs: agent identity, an optional mandate hash, an incident description with an honest severity class, session evidence digests, remediation status, and an optional cross-link to an escalation record or a signed failure receipt. A missing agent identity degrades the record's claim strength rather than being silently accepted, and a malformed cross-link hash is flagged, not hidden. This is an evidence format for an incident the caller declares, not an incident-detection system, not a determination of fault, and not an insurance adjudication. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-379-agent-incident-record-composer.html#manifest",
  "deadline": null,
  "deadline_note": "No regulatory deadline; evidence-format tooling recorded on the adopter's own incident-response cadence.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ca7adfd773fa280aeacd5abc28dd20e505612adeceeb7d9311e419c794920177","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"Few5i4icL0pHK7e/BY7u8TBGoQllYH9QchQ8n3oh6bYcniNVy4rbm51ACIrUEnGsFFrvqNeLOuQfOs+pBGvDDSLCus4D7UiC4OEvZK3W42wkpvsKwm47DxMr2RAg9RMrLcJnBXCm2Nuj1cLHsj6BXvKFjsLkIsVmph7k7bp70gEReZqLp1smNgFnjd9AJQR41FIJnvIzMGB38URY8tHN4S59pn1urhCa0hmwEP1LPyCdOzm4R7pSkHKVZi/o15X3I1/xdXp4CLi0MQ6MRIEeO2xcBN/HeoNBuP95JMxB7noYXY6iDbGofk9JBeHtU4d8Qg9mmu5um83jFTGRQLhNqQ==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:ca7adfd773fa280aeacd5abc28dd20e505612adeceeb7d9311e419c794920177","output":{"agent_identity":{"agent_id":"agent://underwriting-bot/v3","agent_version":"3.2.1"},"cross_linked":true,"escalation_cross_link":{"escalation_record_hash":"sha256:dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd","escalation_record_hash_well_formed":true,"failure_receipt_hash":null,"failure_receipt_hash_well_formed":false},"evidence_count":2,"incident":{"description":"Agent issued three duplicate payment instructions within a single session.","detected_at":"2026-07-18T14:02:00Z","incident_id":"INC-2026-0417","severity_class":"contraindicated","severity_coerced_from_forbidden_class":false},"invalid_evidence_count":0,"mandate_hash":"sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","record_claim_strength":"evidence-backed","record_note":"This is an incident evidence record for an incident the caller declares; not an incident-detection system, not a determination of fault, and not an insurance adjudication.","remediation":{"notes":"Duplicate instruction #3 held pending manual review.","status":"in_progress","status_coerced_from_forbidden_class":false},"session_evidence":[{"digest":"sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb","evidence_type":"otel_span"},{"digest":"sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc","evidence_type":"in_toto_link"}]}}},
  "export_capability": [
    "json",
    "vc"
  ]
},
    {
  "tool_id": "art-380-build-ai-workpaper-record",
  "tool_version": "1.1.0",
  "display_name": "AI-Tool-Usage Workpaper Record",
  "mcp_name": "build_ai_workpaper_record",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-380-build-ai-workpaper-record.html",
  "description": "Composes a documentation-element workpaper record from an existing OCG receipt (tool identity, execution hash, kernel digest), a declared determinism class and conventions, engagement metadata, and a reviewer sign-off statement. Maps to the six elements firms must document for AI/technology-assisted audit evidence under amended AU-C 500 / PCAOB guidance: tool identity, inputs, outputs, limitations, sign-off, and optional linkage to a prior workpaper. An evidence format, not an audit opinion -- makes no PCAOB or AICPA endorsement or compliance-sufficiency claim. An OPTIONAL section-16 eddsa-jcs-2022 signature on the emitted artifact turns the declared sign-off into a countersigned record. When the caller supplies a reviewer identity, the declared sign-off additionally remaps to a section-27.1 approval record over the referenced receipt's execution hash.",
  "input_schema_ref": "chaingraph/art-380-build-ai-workpaper-record.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:15049d4459f060c77f8ccefdcfff425170a1c8103384869b81c002b2f12602b1","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"DmMlByLh8h0AuVmel4TaCcB+o1j2OovVxNjIrimBi2wpnfFtIbkjbOr4ibX61wCvbDliyKDR76QhoPCm+fh7vAToYwZS42m+xgrwJLCYD5k4vPYjvg9cZHHSK+RWJzwBHugqe9xMLBWsrh0JG+rRpM/FIJJcK4G+u3e9MHrAj/wsutOUzh5dRimtyHDbFEj7fXxAs0AYVgmYOYZvJdf1LRtFON+v7llU1eewr1UnyoWpz+GLUOtVuLfCd8YPiPO2Cn/DDuZL1WRl0dwXSsTMVfKr1pj32ewjkEx7v59QSzwwOyCCyAgQusNbpSixgd1QKihmgLDSIMyykwMNVNU7zA==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:5857b0def8cbc21476aefaf427076ca7e7f387209dac53d47a2afb6fc230891e","output":{"checks":[{"check":"receipt_tool_id_present","detail":"art-367-compute-cross-border-fees","pass":true},{"check":"receipt_tool_version_present","detail":"1.0.0","pass":true},{"check":"receipt_execution_hash_valid","detail":"ok","pass":true},{"check":"receipt_kernel_digest_valid","detail":"ok","pass":true},{"check":"determinism_class_valid","detail":"deterministic","pass":true},{"check":"declared_conventions_present","detail":"VAT/reverse-charge treatment, documentary-credit fees, and correspondent fees are caller-supplied inputs, not a vendored treaty table; the kernel applies only the published cost-stack formula.","pass":true},{"check":"documentation_standard_ref_present","detail":"AU-C 500 (as amended for AI/technology-assisted evidence), documentation elements per PCAOB audit-AI-tools research project (2026-05-05)","pass":true},{"check":"engagement_id_present","detail":"ENG-2026-0417","pass":true},{"check":"reviewer_role_present","detail":"engagement_reviewer","pass":true},{"check":"previous_workpaper_hash_valid_if_present","detail":"ok","pass":true}],"disclaimer":"This is an evidence format, not an audit opinion. It does not assert PCAOB or AICPA endorsement, or that the referenced engagement complies with any standard -- it is designed to satisfy the documentation elements (tool identity, inputs/outputs, limitations, sign-off) described in the cited standard reference. The declared reviewer sign-off becomes a countersigned record only once an OPTIONAL section-16 eddsa-jcs-2022 signature is applied to this emitted artifact.","documentation_standard_ref":"AU-C 500 (as amended for AI/technology-assisted evidence), documentation elements per PCAOB audit-AI-tools research project (2026-05-05)","engagement":{"engagement_id":"ENG-2026-0417","reporting_period":"FY2026 Q2"},"evidence_binding":{"execution_hash":"68a8b0eecde6775111d0301139900b213700c16917ccd395db4495f7f9bebf94","generated_at":"2026-07-18T00:00:00.000Z"},"limitations":{"declared_conventions":"VAT/reverse-charge treatment, documentary-credit fees, and correspondent fees are caller-supplied inputs, not a vendored treaty table; the kernel applies only the published cost-stack formula.","determinism_class":"deterministic"},"previous_workpaper_hash":null,"sign_off":{"reviewer_role":"engagement_reviewer","reviewer_statement":"I have reviewed the referenced tool identity, execution hash, and declared limitations for this engagement."},"tool_identity":{"kernel_digest":"sha256:ab7cc7c6345a21988fca592f503a6b89a4ddc3fe97267f8996170f1021619817","tool_id":"art-367-compute-cross-border-fees","tool_version":"1.0.0"},"zero_pii_notice":"This record carries no client or personnel identity beyond a declared reviewer role and an engagement identifier the caller controls. Real reviewer identity stays off-platform."}}},
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-385-agent-token-scope-checker",
  "tool_version": "1.0.0",
  "display_name": "Agent Token Scope Checker",
  "mcp_name": "check_agent_token_scope",
  "mandate_type": "compliance_mandate",
  "wave": 47,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-385-agent-token-scope-checker.html",
  "description": "Compares a requested agent action (amount, currency, merchant category, timestamp) against an agent token or mandate's declared scope: spend cap, currency, MCC allow-list, and expiry. If an attenuation chain of ancestor tokens is supplied, also checks that each delegation link narrows -- never widens -- the parent's bounds. Returns an in-scope or out-of-scope verdict and receipt. Pure evaluation only -- never authorizes, blocks, or executes a payment. Consumes the same mandate-chain vocabulary as art-01; distinct job -- one requested action against one token's bounds, not full mandate-chain structural validation.",
  "input_schema_ref": "chaingraph/art-385-agent-token-scope-checker.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ceb4b481b11aabd4718fed5d5c1d67fb69a5b58a07e48c5d1be12bbe8113af1a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json",
    "pdf",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"LJepG7PeVxLTmzTCL6FNtW9XddRi9IsdogtYd72AYNcVv4FXWSRszxVqTJvvWmJXEWv4SEzPX0kFBywyfW1m/Ssqgl0mJ0r3cRYm27uUlA6UXGIZTD9knNkULjtrmikGIBmRNg3GiL9k6y+nwKa+T/c/Y2oN5EBL9GI1UJIBmqAo7R3laOjjxxaCtQnX6YeeDl0Fs3cUOb3PD8PCWfRxzhvhF75YspRo07bZZreNw/ElVmgYzjBCQNmYw+BRKcuOI3BO/hjPwuJGVJ/9XuYxRQDltc/k+GM6GQ1KgmYF/3wofUJzwd7oP4ZehAgt9Z66klatZ1ICJsU8d7YS8cjK9A==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:ceb4b481b11aabd4718fed5d5c1d67fb69a5b58a07e48c5d1be12bbe8113af1a","output":{"attenuation_depth":0,"checks_run":5,"enforcement":"none","failing_checks":[],"token_id":"tok_leaf_1","verdict":"IN_SCOPE"}}}
},
    {
  "tool_id": "art-386-lint-cbom-structure",
  "tool_version": "1.0.0",
  "display_name": "CBOM Structural Lint & CNSA-2.0 Classifier",
  "mcp_name": "lint_cbom_structure",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-386-lint-cbom-structure.html",
  "description": "Validates a pasted CycloneDX 1.6 Cryptography Bill of Materials against a hand-derived field subset (algorithm, key size, certification level, crypto functions) and classifies declared algorithm assets as quantum-vulnerable (RSA, ECDSA/ECDH, DH, SHA-1) or CNSA-2.0 target-aligned (ML-KEM-1024, ML-DSA-87, AES-256, SHA-384/512). Structural and classification checks only; every finding asserted from the pasted CBOM. Not a scanner, not discovery, not a cryptographic audit.",
  "input_schema_ref": "chaingraph/art-386-lint-cbom-structure.html#manifest",
  "deadline": null,
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:d82c9dafda429dc646d851ed45d680724fa9e2d9c308b29e2d9a6ac10f24c257","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LWO3GiJh1la9l79u7LDmPlhpYvYvj8V7wWNVKDgx/xAVStinFm8+kCVwVgxj7hKWBAD5YXs/Q4jhSeOiloyHxx1bZSLUg3UI3uW74yS2QprTOvbtTkTWzQZdYxmY/wAfK3EO3YSesxs/zm5CAMlIyw2bBuX5vxMbsU52oduq+v8sTnvQbX/UC0oKs1HufTabuImkrllFRrrdC7I41wtW4g+MPkp/DJLLq1cauh40gSiVmFyXzPV+w2swDukFDOQJAUeeq8uTNJPHvj5x7hfoC2dU5SFwEACzXZZxJieoahsWWn8sfdNLegBlqsCefwqIMbqC9zVb/hiT1igcHifCEA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d82c9dafda429dc646d851ed45d680724fa9e2d9c308b29e2d9a6ac10f24c257",
      "output": {
        "cbom_structurally_valid": false,
        "cnsa2_ready_count": 1,
        "compliance_flags": [
          "STRUCTURAL_LINT_ONLY_NOT_A_SCANNER",
          "CBOM_STRUCTURAL_ISSUES_FOUND",
          "QUANTUM_VULNERABLE_PRIMITIVES_ASSERTED"
        ],
        "data_version": "cnsa2-targets-2026-07-18",
        "findings": [
          {
            "classification": "asserted:quantum_vulnerable",
            "index": 0,
            "matched_pattern": "RSA",
            "name": "RSA-2048",
            "parameter_set_identifier": "2048",
            "primitive": "signature",
            "status": "STRUCTURAL_VALID"
          },
          {
            "classification": "asserted:cnsa2_ready",
            "index": 1,
            "matched_pattern": "ML-KEM-1024",
            "name": "ML-KEM-1024",
            "parameter_set_identifier": "ML-KEM-1024",
            "primitive": "key-encapsulation",
            "status": "STRUCTURAL_VALID"
          },
          {
            "classification": "asserted:quantum_vulnerable",
            "index": 2,
            "matched_pattern": "SHA-1",
            "name": "SHA-1",
            "parameter_set_identifier": "SHA-1",
            "primitive": "hash",
            "status": "STRUCTURAL_VALID"
          },
          {
            "classification": "asserted:unclassified",
            "index": 3,
            "missing_fields": [
              "cryptoProperties.algorithmProperties.certificationLevel"
            ],
            "name": "AES-256-GCM",
            "status": "STRUCTURAL_INVALID"
          }
        ],
        "structural_issues": [],
        "structurally_invalid_count": 1,
        "total_algorithm_assets": 4,
        "total_components": 4,
        "unclassified_count": 0,
        "verdict": "INVALID_CBOM",
        "vulnerable_count": 2
      }
    }
  },
  "export_capability": [
    "json",
    "csv",
    "pdf"
  ]
},
    {
  "tool_id": "art-387-pqc-deadline-ladder-calculator",
  "tool_version": "1.0.0",
  "display_name": "CNSA 2.0 Deadline Ladder Calculator",
  "mcp_name": "compute_pqc_deadline_ladder",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-387-pqc-deadline-ladder-calculator.html",
  "description": "Per-row CNSA 2.0 post-quantum migration deadline for a supplied system inventory (system class, asset type, deployment date): applicable deadline, days remaining, the earliest binding constraint, and a FIPS 140-2 Historical-list exposure flag. Every deadline is declared with a source citation so a regulatory date shift is a data re-pin, not a code change. Structural date math only, findings asserted, not legal advice.",
  "input_schema_ref": "chaingraph/art-387-pqc-deadline-ladder-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:22f4891e4f4169482a7f9026e33d39349cbee9578f4001be24826afadcb85c1c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {"type":"ZkVmReceipt","system":"risc0","receiptFormat":"groth16-bn254","imageId":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","seal":"HjqvPuvtGMZsd+pmuKZVKpuNOSGO2m4oLfsB7CWKwr8KJ7kXURXFInBRaEfhxnrsdkMGR1mkrAg8Xyul7EhqtypgEn1d25jU+PbGJ125tnIXV9D55RtMvaoFsMHO03goC/kjfierEuIg7HqPvWbezBQ66aerR1NXOGkXzKt+SbwScV0jZTnz1P6Wd7AVhfjkmrtdyh24Dh5NZe0WZ/V9rh9GPoIK0OCr8rJJArfsvLqkPMP2VEAHjTccQCXujLDxIh3U9h85s/NoPoGLb1S257kYkShhBFY1EVXgzywJyKYvxFe6L37Jx38PblVBDEo4xVGZoy/ZNqL8dC/nXrhJFw==","journal":{"chaingraph_version":"0.4.0","kernel_digest":"sha256:22f4891e4f4169482a7f9026e33d39349cbee9578f4001be24826afadcb85c1c","output":{"note":"DECISION-SUPPORT DRAFT, findings asserted. Not legal advice, not a compliance determination, not an audit. Computes what the declared deadlines imply for the supplied inventory only.","policy_deadlines_used":{"cnsa_exclusive_deadline":{"date":"2033-12-31","source":"NSA CNSA 2.0 migration timeline: NSS systems CNSA-2.0-exclusive by 2033."},"fips_140_2_historical_date":{"date":"2026-09-21","source":"NIST: FIPS 140-2 validated-module certificates move to the Historical list on 2026-09-21."},"key_establishment_deadline":{"date":"2030-12-31","source":"NSA CNSA 2.0 migration timeline: NSS key-establishment transition to be complete by 2030-12-31."},"new_deployment_signing_deadline":{"date":"2027-01-01","source":"NSA CNSSP-15 / CNSA 2.0 Advisory: new NSS deployments and exclusive-use software/firmware signing must adopt CNSA 2.0 by 2027-01-01."},"signature_deadline":{"date":"2031-12-31","source":"NSA CNSA 2.0 migration timeline: NSS signature transition to be complete by 2031-12-31."}},"reference_date":"2030-12-30","rows":[{"applicable_deadline":"2030-12-31","asset_type":"key-establishment","days_remaining":1,"deployment_date":"2024-01-01","earliest_binding_constraint":"key_establishment_deadline","fips_140_2_certified":false,"fips_140_2_historical_exposure":false,"flags":["DEADLINE_IMMINENT"],"row_id":"KE-1","system_class":"commercial-fin"}],"summary":{"fips_exposure_count":0,"imminent_count":1,"invalid_row_count":0,"past_due_count":0,"row_count":1}}}}
},
    {
  "tool_id": "art-388-tempo-fee-amm-converter",
  "tool_version": "1.0.0",
  "display_name": "Tempo Fee-AMM Conversion Calculator",
  "mcp_name": "convert_tempo_fee_amm",
  "mandate_type": "treasury_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-388-tempo-fee-amm-converter.html",
  "description": "Converts a supplied fee-token amount to the validator's token through Tempo's enshrined protocol Fee AMM (Tempo has no native gas token): validatorTokenOut = userTokenIn x 0.9970, 30bps to LPs. Checks the conversion against declared pool reserves for liquidity sufficiency and returns output-or-failure, never a silent overdraw. Fixed-point BigInt math at attodollar scale; calculator only, zero egress.",
  "input_schema_ref": "chaingraph/art-388-tempo-fee-amm-converter.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:2d03df3ee9d7450686eb4fb59512bb3e13c77915d6a1e96c27354725185e0ca2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DZuuHFwd7cDdR6HiBXHxDdToNGqqyVxojSukZciaROkvtzwAU7nYEd7qu25IInR1hRO/gR8XE8w+/D6SdmEtEB5drOe81tn6ADa5fOkiju5MUUOeofOgfK/rcKyIOzAKBeZCLqDFYvH+16wZPYs36ZirRaoduPXYwtfwUeykHu8rRMhrHiqYQvZyUww8pjSdg9m3L1zPl/5R2/b7dLrRMAPVyH4/LInZaP+srIDD/xZkxIEDxzNFA9/dzvPZ3TAGAyaBGFUKJ4MkPvEHEDCf4rn4SevWsWnoUhE+EfWR0YMVPqfafoKvE4mQzaYWtGLGQGGeyvhErgPpGW/DOBsb4A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2d03df3ee9d7450686eb4fb59512bb3e13c77915d6a1e96c27354725185e0ca2",
      "output": {
        "conversion_ok": true,
        "fee_token": "USDT",
        "lp_fee_amount": "3000000000000000000",
        "max_pool_utilization_bps": 3000,
        "note": "Fee-AMM rate (0.9970 / 30bps LP fee) per docs.tempo.xyz/protocol/fees/spec-fee. Pool-utilization guard is a declared calculator parameter, not a Tempo protocol constant.",
        "pool_utilization_bps": 19,
        "reason": null,
        "validator_token": "USDC",
        "validator_token_out": "997000000000000000000"
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-389-tempo-mainnet-fee-capacity",
  "tool_version": "1.0.0",
  "display_name": "TIP-1010 Mainnet Fee & Payment-Lane Capacity Calculator",
  "mcp_name": "compute_tempo_mainnet_fee_capacity",
  "mandate_type": "treasury_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-389-tempo-mainnet-fee-capacity.html",
  "description": "Per-tx fee (fee_microusd = ceil(base_fee_attodollars_per_gas x gas_used / 1e12)) and payment-lane TPS headroom for a supplied payment mix, against the published TIP-1010 mainnet constants (base fee 2e10 attodollars/gas, 500M gas/block, ~94% payment-lane reservation). Successor to model_tempo_gas_economics (art-107), which predates these constants. Every parameter is declared with its TIP-1010 citation and carried as protocol_version so a base-fee governance change is a data re-pin, never a code change. Does not read /docs/api/rpc (outside Tempo's stable API contract). Fixed-point BigInt math, calculator only, zero egress.",
  "input_schema_ref": "chaingraph/art-389-tempo-mainnet-fee-capacity.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:cfa8b47b776f0402746e4968070394d060291ee3afe265412a07fcd2018194ac","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GbP8LO6pRxYNO/+QPn/TrPZu3LV7FYo66LCOgANqWdMwF9H4sZU4bpaU7G4u/JuySfZp3V805HY+HZ9lQmq5ty81Dh7az1ZWiPOTnZanODqdTBsuS9nLpW6saOwfEIAMKJSs0bZdNOV4xvddihUiO3GuLXXcPt+1LBwoHQwG+j8oJWBFmSwXlOSrX6MRg06uKpkoGldG+LMJQTPeQj0rLQgBS5HEda1biuox1FBC84n4F5cgAgx90Vpgr8Q43CoPFl0nKG5gvPr/hxmKTd+2LtwMjTlTsRD8dX7O725ORV8HKQu8nHxCuQ+tLOjwWLGgKsSIM/J0T9wh5nkUob2oXg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:cfa8b47b776f0402746e4968070394d060291ee3afe265412a07fcd2018194ac",
      "output": {
        "block_time_seconds": 1,
        "line_items": [
          {
            "count": "100",
            "fee_microusd_per_tx": "1000",
            "gas_used": "50000",
            "label": "tip20-transfer",
            "max_tx_per_block_payment_lane": "9400",
            "total_fee_microusd": "100000",
            "tps_headroom": 9400
          },
          {
            "count": "10",
            "fee_microusd_per_tx": "4000",
            "gas_used": "200000",
            "label": "complex-tx",
            "max_tx_per_block_payment_lane": "2350",
            "total_fee_microusd": "40000",
            "tps_headroom": 2350
          }
        ],
        "note": "Base fee and lane limits are DECLARED per TIP-1010 and are governance-adjustable via hardfork -- re-pin protocol_parameters when TIP-1010 is superseded, never hard-code a new constant into this kernel. Not fetched from /docs/api/rpc (outside Tempo's stable API contract).",
        "protocol_parameters_used": {
          "base_fee_attodollars_per_gas": "20000000000",
          "block_gas_limit": "500000000",
          "general_lane_gas_limit": "30000000",
          "payment_lane_gas_limit": "470000000"
        },
        "protocol_version": "TIP-1010",
        "summary": {
          "line_item_count": 2,
          "total_fee_microusd": "140000",
          "total_gas_used": "7000000"
        }
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-390-tip20-memo-commitment-validator",
  "tool_version": "1.0.0",
  "display_name": "TIP-20 Memo/Commitment Validator",
  "mcp_name": "validate_tip20_memo_commitment",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-390-tip20-memo-commitment-validator.html",
  "description": "Validates a TIP-20 TransferWithMemo's 32-byte memo as a hash-or-locator commitment: checks length/hex form, recomputes the SHA-256 commitment over a supplied off-chain payload or a templated invoice-ID locator, and reports whether the memo matches. Integrity-only -- distinct from screen_tip20_transfer_batch (art-38, AML/Travel Rule screening of a transfer batch). Calculator only, zero egress.",
  "input_schema_ref": "chaingraph/art-390-tip20-memo-commitment-validator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:674c4beec75fed25496ab6ea99dffe58a860e683e6c82485de35ac65bcff7fce","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JxJ/vpa+e8X99f9ECj+cw6JByqiOhx+Br3BdPa3cXL4HMa9VypQR8EkBk61Rsr88kFk/g1nDixKNHVoi2xGRAA8yw4Tvz953M/gULI7gT2wny5RCRNrHIq+7QGcezaCNKcTF/zMIsn0WmaOE4LGtyxTowLeBr2K84llIfhNuQAsbIeog99xD72GX+m8s5eszEuN9L7/Vs06r+MyXawqEgQx5To/jWHkv1W7BlDF9q7qfUxk01jsiHw9ypSW3JQv8Amj33Al5bsEQTA80qkA2aiHPI3Y0aISur56je0DCUTUDyCnNWe26AdNtmzqRBpdAgGDzAfgaBvYH0/IVpEKWlQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:674c4beec75fed25496ab6ea99dffe58a860e683e6c82485de35ac65bcff7fce",
      "output": {
        "commitment_source_supplied": true,
        "invoice_locator": null,
        "invoice_locator_commitment": null,
        "invoice_locator_match": null,
        "memo_hex": "4c39ea457ea3882ae9b4482b045f554f3d032babaa7cc90cecf66d92408aeb8f",
        "memo_hex_valid": true,
        "memo_length_valid": true,
        "note": "Integrity check only -- distinct from screen_tip20_transfer_batch (art-38 AML/Travel Rule screening). Memo is a fixed 32-byte hash-or-locator commitment per docs.tempo.xyz/guide/payments/transfer-memos.",
        "overall_valid": true,
        "payload_commitment": "4c39ea457ea3882ae9b4482b045f554f3d032babaa7cc90cecf66d92408aeb8f",
        "payload_commitment_match": true
      }
    }
  }
},
    {
  "tool_id": "art-391-compute-canton-traffic-cost",
  "tool_version": "1.0.0",
  "display_name": "Canton Synchronizer Traffic-Cost Calculator",
  "mcp_name": "compute_canton_traffic_cost",
  "mandate_type": "analytics_mandate",
  "wave": 64,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-391-compute-canton-traffic-cost.html",
  "description": "Computes Canton Network synchronizer traffic cost (CIP-0042/CIP-0084 regime): fee = message megabytes x the Tokenomics-Committee-set USD/MB rate, converted to Canton Coin burned at a caller-supplied CC/USD price. Applies the CIP-0119 transfer-preapproval free-traffic window (90-day base duration since June 2026) when the traffic is a preapproval within its free period. Rate, price, and protocol-version inputs are caller-supplied and source-cited in the output -- this kernel never hard-codes a fee or price as a silent constant. Distinct from the shipped tokenization-readiness/DvP/allowlist Canton nodes (503/507/509), which validate settlement and counterparty structure rather than compute synchronizer traffic economics.",
  "input_schema_ref": "chaingraph/art-391-compute-canton-traffic-cost.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:6784aa8d8ebe52de0d2ab52e2bb48d95559cd4796016eb7fd5388ca559b9d73b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FvMJZPQOKthw+9geIRW+LU5pGIYv/jY4FxMZiIsakhcl7WmwYcjdrVsILMKBGToiJ1fmYA2mxuRMXcJVve62gQgcJqegazqBbf6yIxc0I5O0P7fxLSOuDX+Bn+mr5svdLEkHmpjFNSD7YowmeRyhxwppSCZHYeNgqujiJY+XV2oHo/P7VTjULymGyRTRqfXNtoe/nrDzB1QOtFmGWl5THQ0pqMIKO4boVZzmLxryi/jXRS1jJcj/65yW5aKboXXeLUqdSJoRdeWV73+VS4sM6yNt99ALBAGnuQGsd3kKrLQuc4xb4/Dh7cQIdPZEpr9QYWNwHDOQP/2nwLpS7o2hnw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:6784aa8d8ebe52de0d2ab52e2bb48d95559cd4796016eb7fd5388ca559b9d73b",
      "output": {
        "cc_burned": 12,
        "cc_usd_price": 12.5,
        "disambiguation": "Computes synchronizer traffic economics for a single message/envelope. For settlement/counterparty structure validation on Canton, see diagnose_canton_readiness, validate_canton_dvp_atomicity, and validate_canton_party_allowlist -- those validate structure, this computes traffic cost.",
        "effective_rate_usd_per_mb": 60,
        "envelope_mb": 2.5,
        "free_period_applies": false,
        "free_period_days": 90,
        "free_period_source": "CIP-0119 (live since June 2026): transfer preapprovals get a free 90-day base duration before standard traffic cost applies.",
        "is_transfer_preapproval": false,
        "preapproval_age_days": 0,
        "protocol_version": "3.5.5",
        "rate_source": "CIP-0084 (Tokenomics Committee authority): $60/MB, calibrated so a typical Canton Coin transfer costs approximately $1. Supersedes the earlier post-CIP-0042 ~$25/MB rate -- the rate moves under committee authority and is caller-supplied here, never hard-coded.",
        "rate_usd_per_mb": 60,
        "usd_traffic_cost": 150
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-392-compute-canton-app-reward-estimate",
  "tool_version": "1.0.0",
  "display_name": "Canton App-Reward Estimator (CIP-0104)",
  "mcp_name": "compute_canton_app_reward_estimate",
  "mandate_type": "analytics_mandate",
  "wave": 64,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-392-compute-canton-app-reward-estimate.html",
  "description": "Estimates a Canton Network app provider's Canton Coin reward for one round under CIP-0104 (approved 2026-02-12): app rewards are proportional to confirmed envelope bytes (traffic where the app-provider party appears as confirmer) against that round's app-reward pool share of the minting curve. The pool-share schedule (62% at launch, rising to 69% at year 5, 75% at year 10) is caller-supplied and source-cited, never hard-coded to a single year. Reward side of the ledger -- pairs with compute_canton_traffic_cost (art-391), which computes the fee/cost side of the same synchronizer traffic. Distinct from the shipped tokenization-readiness/DvP/allowlist Canton nodes (503/507/509), which validate settlement and counterparty structure.",
  "input_schema_ref": "chaingraph/art-392-compute-canton-app-reward-estimate.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:a70be49eac55d78f34ee302aac5107512ea2f745d7ae0aeb0753644fac701c2f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "I1lFNpsej1u+lvFyZJNZjz54QO7PirFdDcr3HT8TLrowQznXhF+5l+OS+abIghk8dWoXwLA2xa506d0EXY/snSeIOjKmsLpnXKC7FdtEaRSFXGk194f0ONBsqoeEoSYvIaBsbNUT3P0GEMOojZ06X6ZvshTgsQIb5IOKia7G+2QltMYr1YLZr5Rfh6F9Nc/V02BGs0CkS/bHh2wk5AiCiQGRpALdKNzNsD5WYvNIOcXOysTQjr4jutRLYyebDel+E5MA8KfrrxJv1rIEBUPsVJppKyfQNr3GZugALOCvPYgkv0+fs1qPuJS+txL9CM/xDWxGVhiHGBBmEeiyFuL2Dw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:a70be49eac55d78f34ee302aac5107512ea2f745d7ae0aeb0753644fac701c2f",
      "output": {
        "app_reward_pool_cc": 31000,
        "app_reward_pool_share": 0.62,
        "cc_reward_estimate": 775,
        "confirmed_envelope_bytes": 250000,
        "confirmed_share_of_traffic": 0.025,
        "disambiguation": "Estimates one app provider's CC reward share for one round from confirmed traffic. For synchronizer traffic COST (the fee side, not the reward side), see compute_canton_traffic_cost (art-391).",
        "pool_share_source": "CIP-0104 (approved 2026-02-12): featured-app markers removed, app rewards proportional to confirmed envelope bytes against the app-reward pool share of the minting curve. Published schedule: 62% at launch, rising to 69% at year 5 and 75% at year 10 -- this kernel never hard-codes a year-specific share; caller supplies the schedule point being estimated.",
        "protocol_version": "3.5.5",
        "round_total_envelope_bytes": 10000000,
        "round_total_mint_cc": 50000
      }
    }
  },
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready"
},
    {
  "tool_id": "art-393-x402-v2-migration-linter",
  "tool_version": "1.0.0",
  "display_name": "x402 v2 Wire-Format Migration Linter",
  "mcp_name": "lint_x402_v2_migration",
  "mandate_type": "compliance_control",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-393-x402-v2-migration-linter.html",
  "description": "Lints a supplied x402 header set / 402 response body against the Protocol Version 2 wire format: flags deprecated v1 headers (X-PAYMENT, X-PAYMENT-RESPONSE) and their v2 replacements (PAYMENT-SIGNATURE, PAYMENT-RESPONSE), flags v1 body-based PaymentRequirements delivery (v2 moves requirements into the PAYMENT-REQUIRED header as a client-selectable array), and checks the network id for CAIP-2 format. Declares protocol_version so a future wire bump is a data re-pin. Pinned to coinbase/x402 specs/x402-specification-v2.md (2025-12-09).",
  "input_schema_ref": "chaingraph/art-393-x402-v2-migration-linter.html#manifest",
  "consumes": [
    "art-26-x402-payload-decoder-flow-simulator"
  ],
  "feeds": [
    "art-61-x402-batch-settlement-reconciler",
    "art-394-x402-deferred-handshake-validator"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:fdb16b08532bdd3b1513e88aa97cb133f64c2ea0d04d8b0556107a2d0e95caac","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json",
    "csv",
    "pdf"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EVrow40A4Yv/FVCr+ANQdRV04JiXprg0Kh0JIIwqCw4aMW7jmrKpnkqyPy9HOwvwA8jxJPqLE+bJb49k3Dv7GhmNahbCo117kV07uMbZRshsuG7lwSMlFravsa61hXybDzrTCC9nnA9+fpryKki/Btv8B6BENWDbGv3ZaD1kRwEVLcW2EKnn0rYuVqJq+djaqJM0qAv96WfswYzDfPc6KxUTTc7m6bEVSXuPDBRN4ajHa+mZN6lAWcLyBOpb7xBbFLx6Ay0xqrFdZjI3vakO63vOhpe5o4QSN5ksxV0ccbkgVmV+dG2/keAaNE/+AuVXC6VTGuRk3qrR3wacSL5TQg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:fdb16b08532bdd3b1513e88aa97cb133f64c2ea0d04d8b0556107a2d0e95caac",
      "output": {
        "declared_protocol_version": null,
        "deprecated_headers_found": [],
        "errors": 1,
        "findings": [
          {
            "level": "error",
            "msg": "No x402 headers or body supplied — nothing to lint."
          }
        ],
        "inferred_wire_version": 1,
        "passes": 0,
        "protocol_version": 2,
        "score": 85,
        "spec_note": "Pinned to x402 Protocol Version 2 (coinbase/x402 specs/x402-specification-v2.md, 2025-12-09). Header/body deltas checked here only; scheme and asset registries are plugins and are not hard-coded — verify against the current x402 scheme registry before relying on a scheme/network pass.",
        "v2_headers_found": [],
        "warnings": 0
      }
    }
  }
},
    {
  "tool_id": "art-394-x402-deferred-handshake-validator",
  "tool_version": "1.0.0",
  "display_name": "x402 Deferred-Scheme Handshake Validator",
  "mcp_name": "validate_x402_deferred_handshake",
  "mandate_type": "compliance_control",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-394-x402-deferred-handshake-validator.html",
  "description": "Validates a Cloudflare `deferred` x402 scheme handshake: 402 offer field shape (scheme:\"deferred\", id, termsUrl), RFC 9421 HTTP Message Signature covered-component coverage (@method, @target-uri, content-digest), and settlement-reference id continuity across a call sequence (uniqueness, no internal duplicates). Cryptographic signature verification reuses verify_webbotauth_signature (art-129); rollup/batch settlement arithmetic is owned by reconcile_x402_batch_settlement (art-61); this node validates the offer and handshake shape only. Scheme registry is a plugin surface and is not hard-coded.",
  "input_schema_ref": "chaingraph/art-394-x402-deferred-handshake-validator.html#manifest",
  "consumes": [
    "art-393-x402-v2-migration-linter",
    "art-129-webbotauth-signature-verifier"
  ],
  "feeds": [
    "art-61-x402-batch-settlement-reconciler"
  ],
  "status": "live",
  "conformance_fixtures": false,
  "compute_capability": "server",
  "compute_proof_ready": "ready",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:86b67fe8bd78c4f98cff644943c97efe820149953edf0080e31c279d760f5994",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-21"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "G5YMFs+/WjXWBVfnCQ3bq88bBQs7B8XAIcfmEiqiOa8q7OvJqwlu+Z3JNhCE/yCZc2tDjBa3Hud2K7lgbeL7RSYDb/p5nMzl4zV2GDa9OWDuZ1QvqjIMmEILPJzOxLGLDPpzBXjwpx2ECwAMM6Bf2QbCc1WANkN5NutSndfyrJ8O4lG6+esysxpas99IG7dBsVOSumvqjIlW4leaE5RG8A2Zu9GarwFXcagTyeO9XK927ZQ4mQPWsVHWhOcEafjzIXzutp3q/vb6LIeR2lwBscjka41ZtmV3SDkFrg9qql0wOWtDCHxzJg1a3EpcCoRe7i2PIsyoCuVTq2vN5T+6UA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:86b67fe8bd78c4f98cff644943c97efe820149953edf0080e31c279d760f5994",
      "output": {
        "errors": 0,
        "findings": [
          {
            "level": "pass",
            "msg": "offer.scheme is \"deferred\"."
          },
          {
            "level": "pass",
            "msg": "offer.id present."
          },
          {
            "level": "pass",
            "msg": "offer.termsUrl is a valid https URL."
          },
          {
            "level": "pass",
            "msg": "Signature-Input covers \"@method\"."
          },
          {
            "level": "pass",
            "msg": "Signature-Input covers \"@target-uri\"."
          },
          {
            "level": "pass",
            "msg": "Signature-Input covers \"content-digest\"."
          },
          {
            "level": "pass",
            "msg": "id \"set-ref-001\" is unique against 1 prior id(s)."
          }
        ],
        "passes": 7,
        "required_covered_components": [
          "@method",
          "@target-uri",
          "content-digest"
        ],
        "scope_note": "Validates the deferred-scheme offer, RFC 9421 signature-component coverage, and settlement-reference id continuity only. Cryptographic signature verification is verify_webbotauth_signature (art-129); rollup/batch settlement arithmetic is reconcile_x402_batch_settlement (art-61). Scheme registry is a plugin surface, not hard-coded — verify against the current x402 scheme registry.",
        "score": 100,
        "settlement_reference_id": "set-ref-001",
        "verdict": "ACCEPT",
        "warnings": 0
      }
    }
  },
  "export_capability": [
    "json",
    "csv",
    "pdf"
  ]
},
    {
  "tool_id": "art-396-compute-15c3-3-reserve",
  "tool_version": "1.0.0",
  "display_name": "15c3-3 Customer Reserve Formula Calculator",
  "mcp_name": "compute_15c3_3_reserve",
  "mandate_type": "compliance_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-396-compute-15c3-3-reserve.html",
  "description": "SEC Rule 15c3-3 Exhibit A customer reserve formula: credit items (customer free credit balances, margin credit balances, payables) against allowable debit items (margin-account debits with the 1% collateral haircut, failed-to-deliver debits with the 30-day aging exclusion, other allowable debits) to a reserve requirement, deposit-sufficiency verdict, and line-item receipt. Simplified over a representative subset of Exhibit A line items with a PAB (proprietary-account-of-broker-dealer) variant flag; attests the computation over caller-supplied inputs only, not an audit of those inputs or a determination of regulatory compliance.",
  "input_schema_ref": "chaingraph/art-396-compute-15c3-3-reserve.html#manifest",
  "consumes": [],
  "feeds": [
    "art-397-lint-trace-cat-reports"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4d4f69e7fa90f1983449c71e85bbf2446e5dae6ee6b77249b04fa5f8f891223a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FCeTGqOWsupg3N8HXU1+I9vQ6BwFM9dverv/XlQHXLYYygLrN90v5yHHAtdBtYkoAk1G8Z9ImNRWRQKCgvRrswwXVLaOe+f1bnztxrpEKbcUoFj5nAT7rdoawAVKEwfTC20E+7FJas18KZPMGpK7Y5nW2JM5Lge2JQeRJiG365cDztmkNfNHjU9U+WTqQ5t9hkIQjgv7L7XmbYdoVZ+IXismCT7g1fdpucjnVU47+zR8yPEYP44WMHwwqw/k2348Ji4+TRFY2YDbaX+Q4zDaEQbZICzofDTdVUSuV/Sdy/0nhYByUshr/sv74aNPIXPwMGqp+uw43PFkN20KV2WIqg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4d4f69e7fa90f1983449c71e85bbf2446e5dae6ee6b77249b04fa5f8f891223a",
      "output": {
        "credit_items": [
          {
            "amount_musd": 40,
            "category": "free_credit_balances",
            "included_musd": 40,
            "label": "Free credit balances"
          },
          {
            "amount_musd": 12,
            "category": "margin_credit_balances",
            "included_musd": 12,
            "label": "Margin credit balances"
          },
          {
            "amount_musd": 5,
            "category": "payable_from_securities_loaned_using_customer_securities",
            "included_musd": 5,
            "label": "Payable from securities loaned using customer securities"
          }
        ],
        "debit_items": [
          {
            "aging_days": 5,
            "amount_musd": 20,
            "category": "margin_account_debit",
            "exclusion_reason": null,
            "included_musd": 19.8,
            "label": "Margin account debits"
          },
          {
            "aging_days": 10,
            "amount_musd": 3,
            "category": "securities_failed_to_deliver",
            "exclusion_reason": null,
            "included_musd": 3,
            "label": "Securities failed to deliver (10d)"
          }
        ],
        "deposit_sufficient": true,
        "note": "Simplified computation over a representative subset of Exhibit A credit/debit line items with their prescribed aging and haircut treatments, from caller-supplied line items for one computation date (weekly computation framing). Does not audit the source of the supplied figures and is not a determination of regulatory compliance.",
        "pab_variant": false,
        "regulatory_basis": "SEC Rule 15c3-3 Exhibit A customer reserve formula (17 CFR 240.15c3-3).",
        "reserve_account_balance_musd": 35,
        "reserve_requirement_musd": 34.2,
        "rules_version": "15c3-3-exhibit-a-2026.1",
        "surplus_shortfall_musd": 0.8,
        "total_credits_musd": 57,
        "total_debits_musd": 22.8
      }
    }
  }
},
    {
  "tool_id": "art-397-lint-trace-cat-reports",
  "tool_version": "1.0.0",
  "display_name": "TRACE / CAT Reporting Lint",
  "mcp_name": "lint_trace_cat_reports",
  "mandate_type": "compliance_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-397-lint-trace-cat-reports.html",
  "description": "TRACE (FINRA Rule 6730) trade-report timeliness lint against a caller-declared trading calendar and hours window, computing the reporting deadline from the execution timestamp with weekend/holiday-aware rollover, plus a CAT (Consolidated Audit Trail) equity/option order-event structural format-lint over a representative subset of required fields. Honestly scoped: not a full implementation of the CAT Reporting Technical Specification, and there is no built-in market calendar -- weekend days and holidays are supplied by the caller and versioned via constants_version.",
  "input_schema_ref": "chaingraph/art-397-lint-trace-cat-reports.html#manifest",
  "consumes": [
    "art-396-compute-15c3-3-reserve"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:aa77f951451f7ca0f0491377f11ca36e72a6fbe9856e4575cfe2bba60e060379",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DKgLUuWnpuXtfK1WEieUrhpktAUj7jRHLRO841n+PUInSUnwBA9p31C7fnFRWq5xldSJB8PHhU3zO8tcKNsZEiv66R1zOvISXXfogVXLCbYuSo6eF8ve2h0bYtONWYBtD+cTSxEwzJ545JOb2xLIUJrOnOd2Wlz1ykVHjhonbsEpyJPqoawUC4gZFf8d0VxhLJSShuWJ2b/pn9y5NlWk9Sru3nbnSUp+gJFesdaEoby7c+PwTg39OkS+pFske7bGAybj/ItPcyMVzq3PwmAkJVORLyCfr28ir0B8tUIpfoghm65zQl9FXG+0VSa3SP3YxOeymyGakLv2riHJcqzGEg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:aa77f951451f7ca0f0491377f11ca36e72a6fbe9856e4575cfe2bba60e060379",
      "output": {
        "cat_events_checked": 1,
        "cat_events_valid": 1,
        "cat_violations": [],
        "note": "TRACE deadline computed against the caller-declared trading calendar and hours window -- there is no built-in market calendar. CAT check covers a representative subset of required event fields and is not a full CAT schema conformance check.",
        "regulatory_basis": "FINRA Rule 6730 (TRACE trade-reporting timeliness); CAT NMS Plan equity/option order-event structure (representative field subset, not the full CAT Reporting Technical Specification).",
        "rules_version": "trace-6730-cat-lint-2026.1",
        "trace_result": {
          "calendar_version": "finra-2026-standard",
          "deadline_utc": "2026-07-20T14:15:00.000Z",
          "execution_timestamp": "2026-07-20T14:00:00.000Z",
          "late_by_minutes": 0,
          "report_timestamp": "2026-07-20T14:05:00.000Z",
          "report_window_minutes": 15,
          "timely": true,
          "valid_timestamps": true
        }
      }
    }
  }
},
    {
  "tool_id": "art-398-lint-metro2-record",
  "tool_version": "1.0.0",
  "display_name": "Metro 2 Credit-Reporting Record Lint",
  "mcp_name": "lint_metro2_record",
  "mandate_type": "compliance_mandate",
  "wave": 47,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-398-lint-metro2-record.html",
  "description": "Lints a Metro 2 credit-reporting base-segment record from a PUBLIC SUBSET of the format: field presence/format, account-status and payment-rating code validity, and DOFD (date of first delinquency) cross-field consistency per FCRA 15 U.S.C. Sec 1681c(a)(4)-(5), including the 7-year-plus-180-day obsolescence check. Does not implement the CDIA Credit Reporting Resource Guide (CRRG), a licensed proprietary document -- J1/J2/K1-K4 segments are checked as presence flags only. Part of the record-integrity family alongside lint_x12_claim_records (art-399), check_official_statement_completeness (art-400), and validate_form5500_schedules (art-401).",
  "input_schema_ref": "chaingraph/art-398-lint-metro2-record.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:608cb6a37764d1dacf9fac00e70b7a86486cfe76f10dc6c83b8ab87a4de8d3e5",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "BWaSB1UsW6kuToYP6Xz/xC8JW24urSVFZTPNu/+UXgYgm1YJSZlB9vSSOo5rdKAMbd3FTCUhFPcn2D0c3pU/4hJry6GFeS8jUZYRb7Djc1v0PtNRn9RaZtkj+GtBKhCQI/bg50S/pkwUjCFdsQbYdksNY9W9Pt0FU9W4/1xbdHMVxPvlUXixHoIjEYFycHIMU1tf/lw+Rq7Po4y8yyGnoRmc2M+sBjHSwygLcemSnU9nJ/J7HMMlSqz3gIi2feuVDqPNKW8N2kJcd7DmlTtkTSGe7ZFwi4IEMO9bVT0XCHstkW6NjAykPJLjSxMoawdghETdE7mFP+QO6IYpb9v/mw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:608cb6a37764d1dacf9fac00e70b7a86486cfe76f10dc6c83b8ab87a4de8d3e5",
      "output": {
        "compliant": true,
        "disambiguation": "lint_metro2_record checks Metro 2 base-segment field presence/format, account-status and payment-rating code validity, and DOFD/obsolescence cross-field consistency, all from a PUBLIC SUBSET of the format (not the licensed CRRG).",
        "error_count": 0,
        "field_status": {
          "account_status": {
            "present": true,
            "valid": true
          },
          "account_type": {
            "present": true
          },
          "current_balance": {
            "present": true,
            "valid": true
          },
          "date_of_first_delinquency": {
            "age_days": null,
            "present": false,
            "valid": true
          },
          "date_opened": {
            "present": true,
            "valid": true
          },
          "date_reported": {
            "present": true,
            "valid": true
          },
          "j1_segment_present": false,
          "j2_segment_present": false,
          "k_segment_present": false,
          "payment_rating": {
            "present": true,
            "valid": true
          }
        },
        "is_delinquent_status": false,
        "issues": [],
        "metro2_subset_score": 100,
        "obsolete_per_fcra": false,
        "pii_note": "Operates on structural codes, dates, and amounts only. No consumer name, SSN, or address fields exist in this schema -- use synthetic or anonymised account data.",
        "regulatory_basis": "Metro 2 Format (CDIA); FCRA 15 U.S.C. Sec 1681c(a)(4)-(5) (obsolescence); Federal Reserve Regulation V, 12 CFR Part 1022.",
        "subset_coverage_statement": "This lints a PUBLIC SUBSET of Metro 2 Format base-segment fields and the statutory DOFD/obsolescence rule. It does not implement the CDIA Credit Reporting Resource Guide (CRRG), a licensed document -- J1/J2/K1-K4 segments are checked as presence flags only.",
        "table_source": "CFPB \"Key Dimensions and Processes in the U.S. Credit Reporting System\" (Dec 2012, consumerfinance.gov); CDIA public Metro 2 Format overview (cdiaonline.org); FCRA 15 U.S.C. Sec 1681c(a)(4)-(5); Federal Reserve Regulation V (12 CFR Part 1022).",
        "table_version": "METRO2-PUBLIC-SUBSET-V1",
        "warning_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-399-lint-x12-claim-records",
  "tool_version": "1.0.0",
  "display_name": "X12 837/835 Healthcare-Claim Records Lint",
  "mcp_name": "lint_x12_claim_records",
  "mandate_type": "compliance_mandate",
  "wave": 47,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-399-lint-x12-claim-records.html",
  "description": "Lints X12 837 (health-care claim) and 835 (claim payment/remittance advice) ENVELOPE control-number continuity (ISA13/IEA02, GS06/GE02, ST02/SE02) and 835 payment-amount balancing (total paid ties to the sum of claim-level payments, pure arithmetic). FORMAT-ONLY and structurally PHI-IMPOSSIBLE: the schema defines only envelope control numbers, claim/payment identifiers, and monetary amounts -- no patient name, DOB, diagnosis, or clinical field exists. Derived from public CMS companion-guide summaries, not the licensed X12 implementation guide. Part of the record-integrity family alongside lint_metro2_record (art-398), check_official_statement_completeness (art-400), and validate_form5500_schedules (art-401).",
  "input_schema_ref": "chaingraph/art-399-lint-x12-claim-records.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b3acb2f4a9c067913ed0abcc7a47a783f033fbb08a6c467341233bae5def2a1f",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K2cmjYRfB6GdMvUHkeW7cogHQ6I377rodK7IVxl5IhIfqLi98lRGkmeNVAId/5IazcwlswIgTCXRCBdhTrVncBb6ErU+V6smnXBkrNTStJ0hcU3fpemKSvMRuqzopH/ZA13m4IYl46s92o3+ezePx3RGeyyMK+DIq1vLAcNwpQgsJVDmY2M6iYB5k0bNM/6uc1eH2BzxfoA0tVp025HdOC5xr428sy/WBWkrETDoC4tk2MycjOciJ4eedpJT/1aZGXs3/J6XG0tL26e+ruvw5LbBQsldCpwetzsYm2DPAlcViDE9KYK4ZHE2pgVBHBp78a+PWzSUoeDKHWLmTyIC1Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b3acb2f4a9c067913ed0abcc7a47a783f033fbb08a6c467341233bae5def2a1f",
      "output": {
        "claim_count": 2,
        "compliant": true,
        "disambiguation": "lint_x12_claim_records checks X12 837/835 ENVELOPE control-number continuity and, for 835, payment-amount balancing (arithmetic only) -- a FORMAT-ONLY validator over identifiers and amounts, never claim content.",
        "error_count": 0,
        "issues": [],
        "message_type": "837",
        "phi_note": "This schema is structurally PHI-IMPOSSIBLE: it defines only envelope control numbers, claim/payment identifiers, and monetary amounts -- no patient name, DOB, diagnosis, or any clinical field exists in the input or output. See the HIPAA-Security WATCH row for the separate, un-triggered security-rule surface.",
        "regulatory_basis": "ASC X12 005010 837/835 transaction sets; CMS companion-guide public summaries; HIPAA Administrative Simplification transaction-standard rule (45 CFR Part 162).",
        "subset_coverage_statement": "This lints X12 837/835 ENVELOPE structure and 835 payment balancing only, from public CMS companion-guide summaries. It does not implement the full licensed X12 implementation guide, and defines no clinical/PHI fields whatsoever.",
        "table_source": "CMS X12 837/835 Companion Guide public summaries (cms.gov); ASC X12 005010 envelope structure (public control-number continuity rules: ISA13/IEA02, GS06/GE02, ST02/SE02).",
        "table_version": "X12-837-835-ENVELOPE-BALANCE-PUBLIC-SUBSET-V1",
        "total_charge_amount": 325.5,
        "warning_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-400-check-official-statement-completeness",
  "tool_version": "1.0.0",
  "display_name": "Municipal Official Statement Completeness Checker",
  "mcp_name": "check_official_statement_completeness",
  "mandate_type": "compliance_mandate",
  "wave": 47,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-400-check-official-statement-completeness.html",
  "description": "Checks a municipal-bond Official Statement disclosure-element checklist (element present, absent, or incomplete) and continuing-disclosure undertaking presence, per MSRB Rule G-32 (primary-offering disclosure via EMMA) and SEC Rule 15c2-12, including the (b)(5)(i)(C) material-event category list. Same present/absent checklist shape as the shipped GENIUS Sec 4 / MiCA-whitepaper linters. Checks that declared elements are present and well-formed, not that the underlying disclosures are true. Part of the record-integrity family alongside lint_metro2_record (art-398), lint_x12_claim_records (art-399), and validate_form5500_schedules (art-401).",
  "input_schema_ref": "chaingraph/art-400-check-official-statement-completeness.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:031039a46c60763e68a297e2d0cb28799aa5de6df00d9cd56926d73092ab6b30",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ED1jmTz1KeSERVNlpNMFbxLziJkd1YXa3IvCz8PhxP4B2tapd5g8l1XRU5utKz0lPO/Q8VwxBkDTpSK3pJ7k6R6v48RAu4lwJnZmv8An7ZgM6+ooNWH0AGw+KjRWnEZdGlnq4M+hTAn3322aWhrgoeTqRDoqMztNePMdE3iKD7QEj7LA7p+FrjJLKKLQeIHGuRepBXm1qzMsqt7VgXyafCQywMpMlWAiRJVj05BTfDNHL4OUzeL7wLmt3c2wgKoKBX0S/YSAGyjt8juGdJzbqbXC2ltYPGyAbm257uBkkzwXcOgwk4jAe5pFqxw2bpcAaho+SHSroZEdEEtxj+tbnw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:031039a46c60763e68a297e2d0cb28799aa5de6df00d9cd56926d73092ab6b30",
      "output": {
        "asserted_note": "\"asserted\" labelling applies throughout: this checks that declared OS elements and material-event categories are PRESENT and well-formed, not that the underlying disclosures are true or complete in substance.",
        "completeness_grade": "A",
        "compliant": true,
        "continuing_disclosure_undertaking_present": true,
        "disambiguation": "check_official_statement_completeness checks that MSRB G-32 / SEC 15c2-12 disclosure ELEMENTS are declared present and well-formed -- it does not verify the truth of any disclosed fact (see the asserted-labelling note).",
        "element_status": {
          "continuing-disclosure-undertaking": "complete",
          "cover-page": "complete",
          "description-of-issuer": "complete",
          "description-of-securities": "complete",
          "financial-statements": "complete",
          "litigation-disclosure": "complete",
          "risk-factors": "complete",
          "sources-and-uses-of-funds": "complete",
          "summary-statement": "complete",
          "tax-matters-legal-opinion": "complete",
          "underwriting": "complete",
          "use-of-proceeds": "complete"
        },
        "elements_checked": 12,
        "gap_count": 0,
        "gaps": [],
        "material_event_categories_checked": 15,
        "material_event_gaps": [],
        "regulatory_basis": "MSRB Rule G-32; SEC Rule 15c2-12 (17 CFR 240.15c2-12), including the (b)(5)(i)(C) material-event list.",
        "table_source": "MSRB Rule G-32 (Disclosures in Connection with Primary Offerings, EMMA submission); SEC Rule 15c2-12 (17 CFR 240.15c2-12), including the (b)(5)(i)(C) material-event list.",
        "table_version": "MSRB-G32-15C2-12-OS-CHECKLIST-V1"
      }
    }
  }
},
    {
  "tool_id": "art-401-validate-form5500-schedules",
  "tool_version": "1.0.0",
  "display_name": "ERISA Form 5500 Schedule Validator",
  "mcp_name": "validate_form5500_schedules",
  "mandate_type": "compliance_mandate",
  "wave": 47,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-401-validate-form5500-schedules.html",
  "description": "Validates a Form 5500 schedule-applicability matrix (plan type and size determine required schedules H/I/A/C/G/MB/SB/R), a Schedule H cross-schedule arithmetic tie (ending assets equal beginning assets plus net income minus distributions), and the filing-deadline calculation (plan-year end plus seven months, with the Form 5558 two-and-a-half-month extension). This is form-lint -- structural schedule applicability and arithmetic -- not retirement or plan-design advice; it sits in the compliance-mechanics lane of the options-shelf constraint, not the advice lane. Part of the record-integrity family alongside lint_metro2_record (art-398), lint_x12_claim_records (art-399), and check_official_statement_completeness (art-400).",
  "input_schema_ref": "chaingraph/art-401-validate-form5500-schedules.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:69b7a4767ea76f50dcf221f85f8edb02f48c36b00cf3ec3419be9ad99e00b2f4",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AEV9XPi7dxsX7k7H4f9lYaY/oAOu9fwW1NiJjiPQy3As7zFzagadXvuXPRlerJZuiyjCEBDoSIysP0ujoXoMVxueZk9kTOugY7MHBoRNVTlyHwm7B036PTnBtypJkDRuLw6rLJmdC1VGC7lAO8Urc8PgzzYadx1U+f1De925ZyYG8s9igB147nb2oUcW9q3kPKx47wVPXQPTPLo1qM7gPxuEpQb510ffv4VoPzvBEf5ETKYSA3pXuUT3MD/R24D+LODvoCdygoN//7nYRqospAt7cEODCXKvZA90lKwiVscZaqcJUrHX6Qay47ycsNmDbzTEP4RxGM/8gADY5BI2Yg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:69b7a4767ea76f50dcf221f85f8edb02f48c36b00cf3ec3419be9ad99e00b2f4",
      "output": {
        "applicable_deadline": "2026-07-31",
        "arithmetic_tie": {
          "expected_ending_assets": 1030000,
          "reported_ending_assets": 1030000,
          "ties": true
        },
        "compliant": true,
        "disambiguation": "validate_form5500_schedules checks the Form 5500 schedule-applicability matrix (plan type/size -> required schedules), the Schedule H arithmetic tie, and the filing-deadline calculation. It does not check schedule CONTENT beyond the presence of the tied figures.",
        "error_count": 0,
        "extended_filing_deadline": "2026-10-15",
        "filing_deadline": "2026-07-31",
        "is_large_plan": true,
        "issues": [],
        "regulatory_basis": "ERISA Sec 103-104 (29 U.S.C. 1023-1024); DOL EBSA Form 5500 Instructions; IRS Form 5500 series; Form 5558 (extension of time to file).",
        "required_schedules": [
          "A",
          "C",
          "G",
          "H",
          "R",
          "SB"
        ],
        "shelf_note": "This is FORM-LINT (structural schedule applicability and arithmetic), not retirement or plan-design advice -- it sits in the RETIREMENT-1 options-shelf compliance-mechanics lane, not the advice lane the shelf fences off.",
        "table_source": "DOL EBSA Form 5500 Instructions (dol.gov/agencies/ebsa); IRS Form 5500 series overview (irs.gov); ERISA Sec 103-104, 29 U.S.C. 1023-1024.",
        "table_version": "FORM5500-SCHEDULE-MATRIX-V1",
        "warning_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-402-validate-regf-call-frequency",
  "tool_version": "1.0.0",
  "display_name": "Reg F Call-Frequency Presumption Validator",
  "mcp_name": "validate_regf_call_frequency",
  "mandate_type": "compliance_mandate",
  "wave": 60,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-402-validate-regf-call-frequency.html",
  "description": "Checks a declared debt-collection call log against the two 12 CFR 1006.14(b) Regulation F rebuttable presumptions: more than seven telephone calls to a person on a single debt within any seven consecutive days, and a call placed within seven days after a telephone conversation with that person on that debt. Pure interval counting over declared timestamps under a declared timezone offset; returns per-debt findings and a receipt. Presumptions are rebuttable per 1006.14(b)(3) and this does not determine that harassment occurred.",
  "input_schema_ref": "chaingraph/art-402-validate-regf-call-frequency.html#manifest",
  "consumes": [],
  "feeds": [
    "art-403-check-debt-validation-notice"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:49d5b68d9b602859352499b88b4a3748a4eb06f8c6e3e58b98c6198ca136bc9f",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KR/tdv5aJnDL9vYQ+FE/N+JsuO330IWTqoTv2WxSnjAYD77K6qCynsUmFJW6aGsMfCLvtiH4Xr+XAZeDnWECVyWht8r30aGfdH8XuRI01fESna9lKDVxwgDyFw9b/iu6B6OJNwjubg4XDmdWPgRyXFMK3eO/wGoC+UnIqpOhnR0rCGBqaJn0SVaf5gC1xV815CyChUn6JdM6CIQGmVcpEhRFgRVgrr4naLF2RcZvRbyRwu4Yz/BOzXQp5ojYh0THJLEzfPuyS59ojFZKWUUHfpoxbL1LOXFOgLv8hW4mUu8iFsJPuls1NuqOZ+HnSAVcBrPj8RIfBMrv1L2llbJUxg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:49d5b68d9b602859352499b88b4a3748a4eb06f8c6e3e58b98c6198ca136bc9f",
      "output": {
        "debts": [
          {
            "calls_checked": 7,
            "debt_id": "DEBT-1",
            "quiet_period_presumption": false,
            "quiet_period_violations": [],
            "seven_in_seven_presumption": false,
            "seven_in_seven_trips": []
          }
        ],
        "debts_checked": 1,
        "debts_with_quiet_period_presumption": 0,
        "debts_with_seven_in_seven_presumption": 0,
        "disambiguation": "validate_regf_call_frequency checks the declared call log against the 12 CFR 1006.14(b)(2) 7-in-7 and post-conversation quiet-period REBUTTABLE PRESUMPTIONS -- it does not determine that harassment occurred, and a debt collector may rebut either presumption with evidence under 1006.14(b)(3).",
        "invalid_call_indices": [],
        "regulatory_basis": "12 CFR 1006.14(b)(2)(i) (more than seven calls within seven consecutive days per debt) and 1006.14(b)(2)(ii) (a call within seven days after a telephone conversation on that debt); presumptions are rebuttable per 1006.14(b)(3).",
        "timezone_offset_minutes_applied": 0,
        "window_days": 7
      }
    }
  }
},
    {
  "tool_id": "art-403-check-debt-validation-notice",
  "tool_version": "1.0.0",
  "display_name": "Debt Validation Notice Completeness Checker",
  "mcp_name": "check_debt_validation_notice",
  "mandate_type": "compliance_mandate",
  "wave": 60,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-403-check-debt-validation-notice.html",
  "description": "Checks a debt-validation-notice content-element checklist against Regulation F 12 CFR 1006.34 (the Model Form B-1 element set) and computes the 30-day validation-period response-window math from a declared mailing date under a declared mailing-to-receipt assumption. Same present/absent checklist shape as the shipped official-statement / Metro2 / X12 linters. Checks that declared elements are present and well-formed, not that disclosed amounts are accurate.",
  "input_schema_ref": "chaingraph/art-403-check-debt-validation-notice.html#manifest",
  "consumes": [
    "art-402-validate-regf-call-frequency"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:7587d455f6bdc2449925d27d42cc07a2660c799f4670d238cb0793af19d274fa",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "BK093QF6Hu5CKbBYGEV+Ne0E9/v8ZIj9YA1Tobca3LklwV0PS20XoMMnGpeb02Dn0gAFsiJm+eRPLhW7f6L/fQnSeTz5tswlDa/Y4e7HP8rmifYbWKdTrMcvSw4dpLfuCXBLFQ0JNSOJHLvU/Ua3sG+4vDI1yqog9SqauWEm9YcfTXRD4E2nXiX4zEgUn5N1NBqrOWreNubcFi6Zc2r5sxfxknadIkSMwsUPbhsZ2My65vz333mt6d1rZVC9MDXcKhnAmJ+UdNLjl+aDFqFR28SGqDt3aKj+0hjrjamZDKEc9U1/RtLr+D/Whp0JJRbArjwdmaFvF9zH2zfJ5qwx2A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:7587d455f6bdc2449925d27d42cc07a2660c799f4670d238cb0793af19d274fa",
      "output": {
        "asserted_note": "\"asserted\" labelling applies throughout: this checks that declared notice elements are PRESENT and well-formed, not that the underlying debt amounts or itemization are accurate.",
        "completeness_grade": "A",
        "compliant": true,
        "disambiguation": "check_debt_validation_notice checks that declared 12 CFR 1006.34 validation-notice ELEMENTS are present and well-formed, and computes response-period math off a DECLARED mailing-to-receipt assumption -- it does not verify the truth of any disclosed amount and does not establish the consumer's actual date of receipt.",
        "element_status": {
          "account-number-or-reference": "complete",
          "consumer-name": "complete",
          "debt-collector-name": "complete",
          "itemization-breakdown": "complete",
          "itemization-date": "complete",
          "itemized-current-amount": "complete",
          "model-form-b1-tear-off": "complete",
          "original-creditor-name-if-different": "complete",
          "statement-of-dispute-rights-30-day": "complete",
          "statement-of-right-to-original-creditor-info": "complete"
        },
        "elements_checked": 10,
        "gap_count": 0,
        "gaps": [],
        "itemization_date_valid": true,
        "regulatory_basis": "12 CFR 1006.34 (validation information content) and Model Form B-1 (Appendix B); the 30-day dispute/validation period runs under 1006.34(c).",
        "response_period": {
          "assumed_received_date": "2026-07-06",
          "dispute_deadline_date": "2026-08-05",
          "mailing_assumption_days": 5,
          "note": "assumed_received_date is a DECLARED mailing-to-receipt assumption, not a statutory presumption of receipt -- 1006.34(c) runs the 30-day period from actual receipt, which this tool cannot observe.",
          "notice_mailed_date": "2026-07-01",
          "validation_period_days": 30
        },
        "table_source": "12 CFR 1006.34 (Regulation F validation information content requirements) and Model Form B-1 (Appendix B).",
        "table_version": "REGF-1006-34-VALIDATION-NOTICE-CHECKLIST-V1"
      }
    }
  }
},
    {
  "tool_id": "art-404-check-retail-installment-disclosures",
  "tool_version": "1.0.0",
  "display_name": "Retail Installment Contract TILA Disclosure Checker",
  "mcp_name": "check_retail_installment_disclosures",
  "mandate_type": "compliance_mandate",
  "wave": 60,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-404-check-retail-installment-disclosures.html",
  "description": "Ties declared retail-installment-contract Amount Financed, Finance Charge, and Total of Payments (12 CFR 1026.18) against a REUSED amortization schedule -- compose by feeding build_amortization_schedule's (art-332) output_payload straight in, or by reference via its totals and schedule_digest. Does not amortize itself. Also records a dealer-participation/markup declaration as an asserted, receipt-bound fair-lending adjacency note -- no discrimination determination is computed.",
  "input_schema_ref": "chaingraph/art-404-check-retail-installment-disclosures.html#manifest",
  "consumes": [
    "art-332-build-amortization-schedule",
    "art-324-tvm-npv"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:06ea130127d2c462fd7cf1f689399a8c38d577cfe49220ea12f30a71eacaf87e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EdPP9aLGjvwOOmn1vSUhPmz5ueVvb1HBMhrWyRiAQzglieapbx9H5cnMSwF7ABbriVoar6YKgV/NDln7TY2IOgJUaDPDT/q6CYAi+wdfp2FG9QCW01vPHoYDOZqPRQydKuE+mxTaN6/YyOyv0E1awF+JU9Aoc4SJzqwdBQ1r3gQMyJpqfNM23zp1F9OeNeD306ydbmbFR/Vw6SLxSZDaNxmDwiDsurTz/b31wiY9QQLdk4Bo8CFg9eTztiPkAk0dBy+xkbjqEBJ0Xvn29yqSI97cusWxKKAWTN/uRyvtqvUXINRiZ+VTrMMYk04OaIdN856e2/FZ4eqJNyAKEgL+WQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:06ea130127d2c462fd7cf1f689399a8c38d577cfe49220ea12f30a71eacaf87e",
      "output": {
        "amortization_provenance": {
          "num_payments": 60,
          "provenance_ok": true,
          "schedule_digest": "sha256:cd726c8717cdc5b1dde830101a5a7fb29f10840048b8cb85d5d834837c493f3d",
          "source_tool_id": "art-332-build-amortization-schedule",
          "total_interest": 3479.43,
          "total_principal": 20000
        },
        "amount_financed": 20000,
        "compliant": true,
        "dealer_participation": {
          "dealer_reserve_disclosed": true,
          "declaration_note": "Dealer participation disclosed per contract Sec 4.",
          "disambiguation": "This dealer-participation record is ASSERTED and receipt-bound only -- a fair-lending ADJACENCY note (dealer markup/reserve practices are a known ECOA/Reg B disparate-impact risk area), NOT a discrimination determination. No disparate-impact or disparate-treatment analysis is computed here.",
          "markup_pct": 1.5
        },
        "disambiguation": "check_retail_installment_disclosures ties the declared cash-price/downpayment/prepaid-finance-charge inputs against a REUSED amortization schedule (art-332, and where TVM-derived, art-324..331) -- it does not compute or verify the amortization itself, and a wrong schedule_digest/totals yields a faithfully wrong tie-out.",
        "finance_charge": 3479.43,
        "regulatory_basis": "12 CFR 1026.18(b)/(d)/(h) (Reg Z retail-installment TILA disclosures: amount financed, finance charge, total of payments) and 1026.18(d)(1)(i) (finance-charge tolerance).",
        "tie_outs": [
          {
            "computed": 20000,
            "diff_cents": 0,
            "disclosed": 20000,
            "label": "amount_financed",
            "within_tolerance": true
          },
          {
            "computed": 3479.43,
            "diff_cents": 0,
            "disclosed": 3479.43,
            "label": "finance_charge",
            "within_tolerance": true
          },
          {
            "computed": 23479.43,
            "diff_cents": 0,
            "disclosed": 23479.43,
            "label": "total_of_payments",
            "within_tolerance": true
          }
        ],
        "tolerance_cents": 500,
        "total_of_payments": 23479.43
      }
    }
  }
},
    {
  "tool_id": "art-405-check-private-student-loan-disclosures",
  "tool_version": "1.0.0",
  "display_name": "Private Student Loan Disclosure & Rescission Checker",
  "mcp_name": "check_private_student_loan_disclosures",
  "mandate_type": "compliance_mandate",
  "wave": 60,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-405-check-private-student-loan-disclosures.html",
  "description": "Checks a private-education-loan disclosure-element checklist across the three 12 CFR 1026.46-48 stages (application/solicitation, approval, final), the HEOA self-certification-form presence requirement, and computes the 3-business-day right-to-cancel window from a declared final-disclosure date (skipping weekends and any declared holiday dates). Federal Income-Driven Repayment (IDR) calculations are explicitly out of scope v1 -- flagged as a future rider trigger, not built, because those formulas churn on a policy cycle distinct from the stable 1026.46-48 requirements checked here.",
  "input_schema_ref": "chaingraph/art-405-check-private-student-loan-disclosures.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:75fd46391316b49459fd5cfc046cdfc162076a32e0f76268ed539ffb43e3bd6e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ER+A6ts6hWfPCzlhRdzdSOPu+WAd7NVN06FlKEPeK7YfDNOMLbiPnJJU6kuGe/fSvmK05hu6jBlpGu+bKWxY9i1+jZnTLs5xyDwmQ3q5ChcnsdzmLxbjkMV+VIHB6u1zDr5Nj/W3tQIKWps0Oj5VFw9Po8yIWsaibeoPAK60l0oRW0Q0X/e0Oitdr3gI8879WL6pejY75JlKa1SURC2/ziRkyCKvbpy7KndXY1t5WBOztN/b2CkapizYnBdvx1UYH9LlkzgwAgTEvEHJjszYLkgxMs2NhgpnQKTvDMFM3z4gehzwvts224lHSCxZeiE/GXJ+yRSFsyqitJy0qTm+Kg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:75fd46391316b49459fd5cfc046cdfc162076a32e0f76268ed539ffb43e3bd6e",
      "output": {
        "application_stage": {
          "element_status": {
            "cosigner-rights-disclosure": "complete",
            "estimated-total-cost": "complete",
            "fees-and-default-charges": "complete",
            "interest-rate-or-range": "complete",
            "repayment-terms": "complete"
          },
          "gaps": []
        },
        "approval_stage": {
          "element_status": {
            "confirmed-fees": "complete",
            "confirmed-interest-rate": "complete",
            "confirmed-repayment-terms": "complete",
            "rate-lock-period-disclosure": "complete",
            "right-to-accept-30-days-disclosure": "complete"
          },
          "gaps": []
        },
        "completeness_grade": "A",
        "compliant": true,
        "disambiguation": "check_private_student_loan_disclosures checks that declared 12 CFR 1026.46-48 disclosure ELEMENTS are present and well-formed across the application/approval/final stages, that a self-certification form is declared present, and computes the 3-business-day cancellation-window math -- it does not verify the truth of any disclosed rate or fee.",
        "elements_checked": 14,
        "federal_idr_note": "Federal Income-Driven Repayment (IDR) plan calculations are explicitly OUT OF SCOPE for this v1 kernel -- IDR formulas and constants change on an administration/policy cycle, a distinct churn source from the stable 12 CFR 1026.46-48 element/timing requirements checked here. Flagged as a future rider trigger, not built.",
        "federal_idr_out_of_scope": true,
        "final_stage": {
          "element_status": {
            "final-fees": "complete",
            "final-interest-rate": "complete",
            "final-repayment-schedule": "complete",
            "right-to-cancel-3-day-disclosure": "complete"
          },
          "gaps": []
        },
        "gap_count": 0,
        "regulatory_basis": "12 CFR 1026.46-48 (Regulation Z private education loan disclosures); HEOA self-certification (1026.48(e)); 3-business-day right-to-cancel (1026.48(d)).",
        "rescission": {
          "earliest_permitted_disbursement_date": "2026-07-24",
          "final_disclosure_date": "2026-07-20",
          "note": "Business-day count excludes Saturday/Sunday and any declared holiday_dates. Disbursement may not occur until the day AFTER the 3rd business day of the cancellation period (12 CFR 1026.48(d)(2)).",
          "third_business_day": "2026-07-23"
        },
        "self_certification_present": true,
        "table_source": "12 CFR 1026.46-48 (Regulation Z private education loans); HEOA self-certification requirement (1026.48(e)); 3-business-day right-to-cancel (1026.48(d)).",
        "table_version": "REGZ-1026-46-48-PRIVATE-STUDENT-LOAN-CHECKLIST-V1"
      }
    }
  }
},
    {
  "tool_id": "art-406-cross-venue-margin-estimator",
  "tool_version": "1.0.0",
  "display_name": "Crypto Cross-Venue Margin & Off-Exchange Settlement Estimator",
  "mcp_name": "estimate_cross_venue_margin_capital",
  "mandate_type": "analytics_mandate",
  "wave": 67,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-406-cross-venue-margin-estimator.html",
  "description": "Estimates the crypto off-exchange settlement / cross-venue margin picture for a book spread across trading venues (the Copper ClearLoop / FalconX / Ceffu model, per AT-CLEARING-WAVE-SPEC.md CW-1): the net cross-venue margin requirement after a declared netting offset against the sum of each venue's own isolated margin, the capital freed and capital efficiency of MPC-custody off-exchange settlement vs on-exchange isolated margin, the financing cost of running the book at a declared leverage multiple checked against a caller-declared program leverage cap (e.g. ClearLoop Loans up to 4x / FalconX up to 5x), and a plain counterparty/custody-risk framing string. Netting percentages, leverage caps and program names are caller-declared, version-pinned fixtures, never fetched or hard-coded. Distinct from the shipped TradFi treasury-clearing cluster (art-48..51), which addresses the US Treasury cash/repo clearing mandate and CME-FICC Combined Portfolio margining -- this node is the crypto prime-brokerage analogue. This receipt attests our computation over the user's declared positions and venue terms -- it does not verify those positions and is not a margin call, a settlement instruction, or investment advice.",
  "input_schema_ref": "chaingraph/art-406-cross-venue-margin-estimator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:43750924c09ef1d6bfd8c815c5452fb6c21d0f7261c5518df2c9781abace1499",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json",
    "csv"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Lkt3+Pr0aUV+Fd/5or/Ckb664HC6bs4kv1nA/dS3sKQYrOVYuflMXXyJ7vfsl0BkPUU4uPtj8dt+ezpxuNy4DghyZ2lbElFiRjuMmvTupjqXUseGpjpT/3woLROXTp4aGqgVrKz5NAIGtCICjUjvxHv2KsokUXezCYMTigWLbYEpsaM6RSNzqacXHmdZx1e6YN0q//RHzL1d/JPCWAR4YwfHgMlX32Fcu32KUxkf4S/k0IJ/vB4rRRfHxQ7k27B0DiVmOfFEcjZp0uPehCu1CZA7GJ6AhA/96F6iVF6Zik8Zb3ApsCABaEuQL0joSiMv/YlgWLRpD1DgjRjnsVq7Hg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:43750924c09ef1d6bfd8c815c5452fb6c21d0f7261c5518df2c9781abace1499",
      "output": {
        "capital_efficiency_pct": 0.35,
        "capital_freed_usd": 70000,
        "constants_version": "2026-07-19.clearloop-falconx-v1",
        "counterparty_risk_framing": "Assets held in MPC custody, off the trading venues, structured bankruptcy-remote from any single venue’s insolvency -- venue default risk is a trading-counterparty risk, not a custody/asset-loss risk.",
        "cross_margin_offset_pct": 0.35,
        "cross_venue_margin_requirement_usd": 130000,
        "custody_model": "mpc_off_exchange_bankruptcy_remote",
        "disambiguation": "Cross-venue crypto off-exchange settlement/margin (Copper ClearLoop / FalconX / Ceffu model) for a book spread across trading venues. Distinct from the TradFi treasury-clearing cluster (art-48..51), which addresses the US Treasury cash/repo clearing mandate and CME-FICC Combined Portfolio margining. This receipt attests our computation over the user’s declared positions and venue terms -- it does not verify those positions, and is not a margin call, a settlement instruction, or investment advice.",
        "financed_amount_usd": 666666.67,
        "financing_apr_pct": 8,
        "financing_cost_usd": 4383.56,
        "financing_horizon_days": 30,
        "financing_notional_usd": 1000000,
        "leverage_multiple": 3,
        "leverage_program_cap_multiple": 4,
        "leverage_program_name": "ClearLoop Loans",
        "sum_isolated_margin_usd": 200000,
        "venue_count": 3,
        "venue_positions": [
          {
            "gross_notional_usd": 500000,
            "isolated_margin_requirement_usd": 100000,
            "venue": "bybit"
          },
          {
            "gross_notional_usd": 300000,
            "isolated_margin_requirement_usd": 60000,
            "venue": "deribit"
          },
          {
            "gross_notional_usd": 200000,
            "isolated_margin_requirement_usd": 40000,
            "venue": "okx"
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-407-umr-aana-readiness-diagnostic",
  "tool_version": "1.0.0",
  "display_name": "UMR / AANA Readiness Diagnostic",
  "mcp_name": "run_umr_aana_readiness",
  "mandate_type": "agent_guardrail_mandate",
  "wave": 67,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-407-umr-aana-readiness-diagnostic.html",
  "description": "Determines whether a group's declared AANA (average aggregate notional amount) puts it in scope for the uncleared margin rules (UMR), per AT-CLEARING-WAVE-SPEC.md CW-2, and flags which counterparties are over the regulatory initial-margin threshold with an open documentation or custody gap. Thresholds (AANA >EUR 8bn, IM threshold EUR 50m) are pinned constants echoed in the output as constants_version + vintage, never fetched. This is an eligibility/readiness checker, not a SIMM calculator -- estimated IM per counterparty is always a caller declaration, never derived here from risk-class sensitivities, since SIMM is a licensed ISDA methodology not reproduced by this node. Distinct from the shipped TradFi treasury-clearing cluster (art-48..51), which addresses the US Treasury cash/repo clearing mandate, and from the crypto cross-venue margin estimator (art-406). This receipt attests our computation over the AANA and per-counterparty inputs the caller declared -- it does not audit those inputs and is not a determination that any entity is in or out of UMR scope.",
  "input_schema_ref": "chaingraph/art-407-umr-aana-readiness-diagnostic.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ec1ae85431a3f2dc2a83949b48729db2b98414f0424c360c26bac091556f3bea",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "export_capability": [
    "json",
    "csv"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JsD6z+7IcYp1GKHUmAKgTvP8c1y1uvwmX21KjbBe5DccOw9BqANJvEISsSucYPvafDL88oZP48PNsrfOwYGISxITywg2nN5x34fiP/Bvqoo5xaS/w58l0NGPSiOGX7KNBsRi6sSYONKmrGHr6jh4r639NUqCXMpuNe9IFIwQW3AKtVG1iEWpBeYcFkoAyDWikr0AZrKdSgQBXFPQ/V018Q6T8gSp2R5R9O8pMUVI0ck9MVxQbcJVjxYhQ5WmkG7qF/irzU7twbYBUVjwUXJrPES1Hw3y3Mq8m8JYg7Vqc1AF8ZZfx2JpDab8MgnmjYdepCI5e/DwABpp/3DkT7kRxw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ec1ae85431a3f2dc2a83949b48729db2b98414f0424c360c26bac091556f3bea",
      "output": {
        "aana_group_eur": 12000000000,
        "aana_in_scope_threshold_eur": 8000000000,
        "constants_version": "2026-07-19.umr-bcbs-iosco-v1",
        "counterparties": [
          {
            "counterparty_id": "cpty-alpha",
            "custodian_ready": true,
            "documentation_status": "executed",
            "estimated_im_eur": 75000000,
            "over_im_threshold": true,
            "readiness_grade": "A"
          },
          {
            "counterparty_id": "cpty-beta",
            "custodian_ready": false,
            "documentation_status": "in_progress",
            "estimated_im_eur": 60000000,
            "over_im_threshold": true,
            "readiness_grade": "D"
          }
        ],
        "counterparties_over_im_threshold": 2,
        "counterparty_count": 2,
        "disambiguation": "This receipt attests our computation over the AANA and per-counterparty inputs the caller declared -- it does not audit or verify those inputs, and is not a determination that any entity is in or out of UMR scope.",
        "im_threshold_eur": 50000000,
        "in_scope_aana": true,
        "note": "Eligibility/readiness diagnostic for the BCBS-IOSCO uncleared margin rules (UMR). Estimated IM per counterparty is a caller declaration, never a SIMM computation -- SIMM is a licensed ISDA methodology, not reproduced here. Not legal or margin advice.",
        "overall_grade": "B",
        "remediation_checklist": [
          {
            "action": "Execute the ISDA/CSA UMR documentation and stand up segregated custodian connectivity before regulatory IM applies.",
            "counterparty_id": "cpty-beta"
          }
        ],
        "thresholds_vintage": "2026-07-19"
      }
    }
  }
},
    {
  "tool_id": "art-408-evidence-bundle-tier-labeler",
  "tool_version": "1.1.0",
  "display_name": "Evidence Bundle Tier Labeler",
  "mcp_name": "assemble_ocg_evidence_bundle",
  "mandate_type": "attestation_mandate",
  "wave": 68,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-408-evidence-bundle-tier-labeler.html",
  "description": "Assembles a shareable evidence bundle around an artifact and stamps the SPEC.md §SIDECAR.1 tiered label it qualifies for: OCG-Verify (envelope well-formed, execution_hash recomputes), OCG-Execute (additionally §21 chain-execution and §22 mandate gates hold), OCG-Prove (additionally a §18 compute-integrity proof verifies). Tiers are cumulative -- any gate false at a level makes every level above it unavailable. The label adds no new gate and mints no new trust claim: it re-expresses existing gate-pass results the caller declares for the referenced artifact, and this node never re-runs those gates itself. When the caller supplies collected section-27.2 human-accountability records, they consume/emit as a section-27.6 evidence bundle keyed to the same artifact hash, so the tier label and the accountability trail ride one diffable object. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-408-evidence-bundle-tier-labeler.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:4bffde8c450663ed6c3f2e2d7f8671638c0277be7be5f9e9717598f5911b88f8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-19"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "L0sV0DWu4txykK5lQyezu0EbOen47lNLXXhk229ixgYBv0pJkwWLiZYp8rvWG8ZD+9pKpz2aVbJlegvHKS7edwjkpsi5FaiO+BGIRUuMXBfoP6jDbYtOQtGCRGfL6ELULwXivg3qfzLlFAO6daD4oEQBTgSMcH+42szTlQh7LQsnsMahEu2OfYBbLMtq25BXMaYS6pnQzn+xAnlXvMTLlCGHsxgPo51oL5HW/z6X7qOiEZsEjp2/d2Fk+RkgcxzfBMlPYfK22cDQQwzfcthoyZVZjuKulZxDZzrhluAPkSsg7rJu7TERX5ZXjxXpjrGn9TIVoAELZdPIhZpDP6m/8A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:005c23e5672acc2fc67413f6a474ee2a5cea8eee289369bcde09c25fd9b75e6a",
      "output": {
        "artifact_execution_hash": "sha256:aaaa1111",
        "artifact_tool_id": "art-04-agent-identity-attestation-checker",
        "disambiguation": "This node does not re-run §1/§4/§18/§21/§22 gates itself -- gate_results is a caller declaration of prior gate outcomes for the referenced artifact, not independently re-verified here.",
        "eligible_tiers": [
          "OCG-Verify"
        ],
        "gate_provenance": {
          "chain_execution_valid": false,
          "compute_integrity_proof_valid": false,
          "envelope_well_formed": true,
          "execution_hash_recomputes": true,
          "mandate_gates_valid": false
        },
        "note": "The tiered label re-expresses existing §15 gate-pass results; it adds no new gate and mints no new trust claim (SPEC.md §SIDECAR.1).",
        "proof_ref_count": 1,
        "proof_refs": [
          "receipt:art-04-envelope-check"
        ],
        "tier_label": "OCG-Verify"
      }
    }
  }
},
    {
  "tool_id": "art-409-dpa-art28-completeness-checker",
  "tool_version": "1.0.0",
  "display_name": "DPA Article 28 Completeness Checker",
  "mcp_name": "check_dpa_gdpr_art28",
  "mandate_type": "compliance_mandate",
  "wave": 69,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-409-dpa-art28-completeness-checker.html",
  "description": "Checks a data processing agreement against GDPR Article 28(3)'s 12 mandatory processor clauses -- subject-matter, duration, nature/purpose, data categories, controller-instructions-only, confidentiality, Article 32 security, sub-processor authorization, data-subject-rights assistance, breach/DPIA assistance, deletion/return, and audit rights. Deterministic checklist over a caller-declared present/missing/weak status per clause, returning a completeness verdict and coverage percentage. This node reads the caller's own compliance reading of an agreement -- it never vendors, assembles, or redistributes any third-party template body. Not legal advice and not a determination that any agreement is compliant. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-409-dpa-art28-completeness-checker.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:640dfd01155c133e833f96c9b7304ae863c00abeb361a3d1d707e96fc85e9b40",
      "valid_from": "2026-07-19"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-19"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "B6FIqWCsA/IkUh/EzLA0hptHImmCr+jzfUKxhLmldboHTx4WgCg5LaHc+xmHgNPeBGPguz6takBDqNS4VwOCLRGX0RTteopKzKlzRmiPPm8suaOS4mzY2mqLRR7diquFIPhkW33VVH0RPoNqhlxPK8bZpJfUoevt5ih6F/zMA5ISVewMbl+TCLtu1/ww7kt44PnZQKAWi9M4BSjHHyd8hCBYp+STvurQD3Q3Wu/kmcghlffOBJebRVrlWbUVG6hGEYw0qCm+iVgsxxRReH7kCKjJI4ldjYQmkE9Wnmks9aEHfrFxQp9hAUW5lCA/gl7hncbMtbV8A9bPLiGJi29GsA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:640dfd01155c133e833f96c9b7304ae863c00abeb361a3d1d707e96fc85e9b40",
      "output": {
        "art28_complete": true,
        "clauses": [
          {
            "id": "subject_matter",
            "label": "Subject-matter of the processing",
            "status": "present"
          },
          {
            "id": "duration",
            "label": "Duration of the processing",
            "status": "present"
          },
          {
            "id": "nature_purpose",
            "label": "Nature and purpose of the processing",
            "status": "present"
          },
          {
            "id": "data_categories",
            "label": "Type of personal data and categories of data subjects",
            "status": "present"
          },
          {
            "id": "controller_instructions_only",
            "label": "Processing only on documented controller instructions",
            "status": "present"
          },
          {
            "id": "confidentiality",
            "label": "Confidentiality commitment for authorised persons",
            "status": "present"
          },
          {
            "id": "article32_security",
            "label": "Article 32 security measures",
            "status": "present"
          },
          {
            "id": "subprocessor_authorization",
            "label": "Sub-processor authorization (general or specific) + flow-down obligations",
            "status": "present"
          },
          {
            "id": "data_subject_rights_assistance",
            "label": "Assistance with data-subject-rights requests",
            "status": "present"
          },
          {
            "id": "breach_dpia_assistance",
            "label": "Assistance with Article 32-36 breach notification and DPIA",
            "status": "present"
          },
          {
            "id": "deletion_or_return",
            "label": "Deletion or return of personal data at end of processing",
            "status": "present"
          },
          {
            "id": "audit_rights",
            "label": "Information availability and audit/inspection rights",
            "status": "present"
          }
        ],
        "coverage_pct": 100,
        "disclosure": "This is a compliance reading over the text the caller supplied, not legal advice and not a determination that any agreement is compliant.",
        "missing_clause_ids": [],
        "missing_count": 0,
        "not_legal_advice": true,
        "present_count": 12,
        "total_elements": 12,
        "verdict": "ART28_COMPLETE",
        "weak_clause_ids": [],
        "weak_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-410-clause-coverage-scorer",
  "tool_version": "1.0.0",
  "display_name": "Clause Coverage Scorer",
  "mcp_name": "score_clause_coverage",
  "mandate_type": "compliance_mandate",
  "wave": 69,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-410-clause-coverage-scorer.html",
  "description": "Scores an agreement's clause coverage against a named clause taxonomy -- the oneSaaS 52-clause canonical set, the Common Paper Language Library, the GDPR Article 28 processor set, or a custom list. Reads a caller-declared present/modified/extra/missing status per clause and returns a coverage percentage, modification rate, and a maturity tier (minimal/partial/substantial/full). Extra clauses are tracked but excluded from the coverage denominator. This node reads the caller's own clause inventory -- it never vendors, assembles, or redistributes any third-party template body. Not legal advice and not a determination that any agreement is compliant. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-410-clause-coverage-scorer.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:43e9115f892a58de62567becc360a463707b7aa621dc6743cee3bda398be3d4d",
      "valid_from": "2026-07-19"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-19"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IEhY03j7SLPVg2Qaskb6+x0iVH1snWsnDmKjvMcIAtISyRduDdMbnVCAdKB3WbraIg0iQi+XNlBFGXy1CKauOyDF5fBvUo3n4ROOtdyvjeR2KFnDF0+7Uq/8LjFTKlx9Fnbl2uSVxgDdJ/KgBc61rQ7EGV7rlLiJgt4LjmZ91UQRAtnR0wbx1of0lxcfCaJI9v/b8qqfxveSckYrOtnknCy3ZM93CuUEUK4I7G/tdmxJ75yM1HqBVolh9CfPQCSHL17qevk8fcOtNX3iMsRwl86OkWbwpg77wLbhb4W7LLsD/Bij2EgdV1CmRVlnY4q1zdJzJooc6mfijLepPHd47Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:43e9115f892a58de62567becc360a463707b7aa621dc6743cee3bda398be3d4d",
      "output": {
        "coverage_pct": 100,
        "declared_count": 4,
        "disclosure": "This is a compliance reading over the text the caller supplied, not legal advice and not a determination that any agreement is compliant.",
        "extra_clause_ids": [],
        "extra_count": 0,
        "maturity_tier": "full",
        "missing_clause_ids": [],
        "missing_count": 0,
        "modification_pct": 0,
        "modified_clause_ids": [],
        "modified_count": 0,
        "not_legal_advice": true,
        "present_count": 4,
        "taxonomy": "onesaas_52",
        "taxonomy_label": "oneSaaS 52-clause canonical set"
      }
    }
  }
},
    {
  "tool_id": "art-411-ai-addendum-assembler",
  "tool_version": "1.0.0",
  "display_name": "AI Addendum Assembler",
  "mcp_name": "assemble_ai_addendum",
  "mandate_type": "compliance_mandate",
  "wave": 50,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-411-ai-addendum-assembler.html",
  "description": "Assembles a Common Paper AI Addendum (Version 1.0, CC BY 4.0) from your Cover Page Key Terms: whether Provider may Train Models on Customer data, whether Provider may use data for non-training improvement, data retention window, output ownership, and AI sub-processor disclosure. The Standard Terms body is vendored verbatim and never modified; only the Cover Page varies. Emits the assembled addendum plus a contract-api.json variable map twin for agent consumption. Party identity, signatures, and notice addresses stay as literal placeholder tokens for your own off-platform signing flow. Not legal advice.",
  "input_schema_ref": "chaingraph/art-411-ai-addendum-assembler.html#manifest",
  "consumes": [
    "art-412-ai-act-procurement-clause-mapper"
  ],
  "feeds": [
    "art-409-dpa-art28-completeness-checker"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:acbbbf9e75cae616381dcbdd06684f7b930a4717cb5966d6de4438ede3f04201",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ix16iwGyFlEH5UuP5o4ob1IZ1MUOzyGBVe/+uuDwVAkkr3hWwNTSxv8Ul/eJ7oqYWSDvsPqzZ0aH7hJ4gnuv+xivZEOqMYk0j+3StZox8zN8jch1Opzngshio5HzZe6sKUKqBjDRkMnGNxjOnshSlBJwKi2ck8OnoWEydINhCVslpT0cWtQ9ZGApE8AYFvluaCD61lAAT1Ivznh8aZR+uiPYeifbADZYLp3GfAHdDyOI6XCy13SG5W2YRtZu5I1CFW5TmPhqMlA/1BX4v8WfvDfcODjJW7D6tmHcCrjNLa8Nc1k+2Diutxi7I8WrOeIEe7f72LvJmfmq/0oPgBsCMg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:acbbbf9e75cae616381dcbdd06684f7b930a4717cb5966d6de4438ede3f04201",
      "output": {
        "assembled_markdown": null,
        "attribution": "Common Paper AI Addendum, Version 1.0, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
        "body_sha256": "192a7dc6d7caea8dd49c519bca7d157c8618a66a8546fdff763d80019598ff16",
        "checks": [
          {
            "check": "required_fields_present",
            "detail": "Missing required Key Terms: retention_window, output_ownership, subprocessor_ai, effective_date",
            "pass": false
          },
          {
            "check": "boolean_fields_valid",
            "detail": "train_on_customer_data and model_improvement must both be true/false",
            "pass": false
          },
          {
            "check": "training_fields_present_if_needed",
            "detail": "ok",
            "pass": true
          }
        ],
        "contract_api": {
          "attribution": "Common Paper AI Addendum, Version 1.0, CC BY 4.0 (https://creativecommons.org/licenses/by/4.0/)",
          "body_sha256": "192a7dc6d7caea8dd49c519bca7d157c8618a66a8546fdff763d80019598ff16",
          "selected_clause_ids": [],
          "template_id": "common-paper-ai-addendum-v1.0",
          "variable_map": {
            "effective_date": "",
            "improvement_restrictions": "None.",
            "model_improvement": null,
            "output_ownership": "",
            "retention_window": "",
            "subprocessor_ai": "",
            "train_on_customer_data": null,
            "training_data": "",
            "training_purposes": "",
            "training_restrictions": "None."
          }
        },
        "cover_page_markdown": null,
        "disclaimer": "Not legal advice. This tool assembles a fixed, vendored Standard Terms body with your Cover Page Key Terms; it does not draft, modify, or advise on the agreement. Consult a licensed attorney for your jurisdiction.",
        "license": "CC-BY-4.0",
        "source_url": "https://commonpaper.com/standards/ai-addendum/1.0",
        "template_id": "common-paper-ai-addendum-v1.0",
        "zero_pii_notice": "Party identity, signatures, and notice addresses are never filled by this tool and remain literal {{placeholder}} tokens for your own off-platform e-sign flow."
      }
    }
  }
},
    {
  "tool_id": "art-412-ai-act-procurement-clause-mapper",
  "tool_version": "1.0.0",
  "display_name": "AI Act Procurement Clause Mapper",
  "mcp_name": "map_ai_act_procurement_clauses",
  "mandate_type": "compliance_mandate",
  "wave": 50,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-412-ai-act-procurement-clause-mapper.html",
  "description": "Maps an EU AI Act risk tier (derived from an upstream classifier such as the AI Act high-risk fit diagnostic) to the European Commission's Model Contractual AI Clauses (MCC-AI) template selection: High-Risk or Light, plus the applicable Chapter III clause set (transparency, risk management, data governance, human oversight, cybersecurity for High-Risk; a reduced set for Light). Reference mode only: MCC-AI redistribution terms are unclear, so this node selects and points to the official source rather than vendoring clause text. Not legal advice.",
  "input_schema_ref": "chaingraph/art-412-ai-act-procurement-clause-mapper.html#manifest",
  "consumes": [
    "art-64-ai-act-highrisk-fit-diagnostic"
  ],
  "feeds": [
    "art-411-ai-addendum-assembler"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:892f0f32b3889153f5a40251ad7cf96f85b3588942c675d4f91008061a33927a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-10"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KDJ/M5ye/sGAP3VwsbMrTPmsvRjoW1nTlV0SEj4hCFUBC0Ow6+4LNKhuKMRV2Ma7wtBoOD/zVl9EFXOOvPMV3w1qQPPbT00KyBLtRulBshUQUIVmzVvs3wIxv0rfHs7GKf3dBrNxsRHN+E42G+tSOynFB8K3HSY8KdnAq9gA3GYX9p6KZaWDkzYg6wKfg2nn52o3143h+5Itp9a7r5V4DySB8CDgXazb9VNQKlZEJMpyTHMn9j3kFZv01lARJ4zzAJlMiLFFR4ar81nRS0AVyUq1jBiVBirdJndwUa49SkspeYcxkM+MjuYVNDgOREUMInbCZksyZ5ZuCVbTHSlMaQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:892f0f32b3889153f5a40251ad7cf96f85b3588942c675d4f91008061a33927a",
      "output": {
        "applicable_chapter_iii_clauses": [],
        "checks": [
          {
            "check": "risk_tier_valid",
            "detail": "risk_tier must be \"high-risk\" or \"light\" (derive from an upstream AI Act classifier)",
            "pass": false
          }
        ],
        "disclaimer": "Not legal advice. This tool selects the EU Model Contractual AI Clauses (MCC-AI) template and Chapter III clause set that corresponds to the supplied AI Act risk tier, and points to the official source. It does not vendor, draft, or advise on clause text. Consult a licensed attorney for your jurisdiction.",
        "license_mode": "reference-only",
        "not_legal_advice": true,
        "official_source_url": "https://digital-strategy.ec.europa.eu/en/policies/model-contractual-ai-clauses",
        "risk_tier": null,
        "template": null,
        "variable_map": {
          "deployment_context": "",
          "risk_tier": ""
        }
      }
    }
  }
},
    {
      "tool_id": "art-413-screen-sanctions-private",
      "tool_version": "1.0.0",
      "display_name": "Private-Input Sanctions Screen",
      "mcp_name": "screen_sanctions_private",
      "mandate_type": "analytics_mandate",
      "wave": 51,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-413-screen-sanctions-private.html",
      "description": "Screens a privately held party/transfer list against a pinned OFAC-SDN-style list version and emits a public verdict (screened, hit count, clean flag) without disclosing the party list. Carries an OCG Standard §25 ocg-private-input@1 declaration: the party list is committed via sha256-salted@1 in policy_parameters.parties_commitment, never in the clear. Proves the screening ran against a specific committed list and list version. Private-input variant of screen_tip20_transfer_batch (art-38); use that public-input kernel when disclosure of the party list is acceptable; use this one when it is not. ZERO PII disclosed: only the verdict is public.",
      "input_schema_ref": "chaingraph/art-413-screen-sanctions-private.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2af360c0c70be73aaad6a5c1ac72f0718d6480b7b8d524a8d929b684532805e2","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:6e5e88398691bb947308966a4df0019cfa1fc5894578c02f270320f1327ea8ac","valid_from":"2026-07-21"}],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:6e5e88398691bb947308966a4df0019cfa1fc5894578c02f270320f1327ea8ac",
        "seal": "GrHSgzA/roN/jQ2WxUJU9Ka1DftIwdgUZdd94hZvwFQVcwQ0YNrGhU0TCzG6skpC73LasLrgktYB/XFzTHWwVwrOKlc2LmAW+s+5kibF3AAVlUfmTRuWaS0Q/RoLrOy1C/mYunBRv4iuxjuwlxbAN4anvTVa/V/wIBBpzOQNSPwL5OkibVy34WGs6+0PgQTizAeojjscb98u3YcVkG+ipy/7RbBhkWrwPJmRS8xYJFkhHc/EpdtNvlJ0smZ4auReA+9+zhF1MNhUWPVokYQ4SgnlXa8e02V3SB2zo2/hqzQpo8HnhIbUDAj1HEc65xfyMP/iQUnbZDGz+5Hx6u8Z3w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "commitment": "sha256:ce2d79b801e14f3bfdfe37e2c43800a21242deb74e4914d393646fd6f87e29d4",
          "kernel_digest": "sha256:2af360c0c70be73aaad6a5c1ac72f0718d6480b7b8d524a8d929b684532805e2",
          "output": {
            "clean": true,
            "coverage": {
              "total_checked": 2
            },
            "hit_count": 0,
            "list_version": "OFAC-SDN-TEST-2026-07",
            "not_legal_advice": "Not legal advice. Sanctions screening determinations require review by a qualified compliance officer against the live OFAC SDN list and applicable BSA/AML program.",
            "pii_note": "ZERO PII disclosed: the screened party/transfer list is a private witness, never present in policy_parameters or output_payload. Only the screening verdict (hit count, clean flag) is public.",
            "regulatory_basis": "FinCEN 31 CFR Chapter X OFAC/SDN screening obligation; FATF Recommendation 6 (targeted financial sanctions). Verdict proves the committed party list was screened against the pinned list version — the parties themselves are never disclosed (OCG Standard §25 ocg-private-input@1).",
            "screened": true
          }
        }
      },
      "export_capability": [
        "json"
      ]
    },
    {
      "tool_id": "art-414-compute-rbc-action-level-private",
      "tool_version": "1.0.0",
      "display_name": "Private-Input NAIC RBC Action Level",
      "mcp_name": "compute_rbc_action_level_private",
      "mandate_type": "analytics_mandate",
      "wave": 51,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-414-compute-rbc-action-level-private.html",
      "description": "Computes the NAIC Risk-Based Capital action-level tier from a privately held Total Adjusted Capital and Authorized Control Level RBC, emitting only the tier (NO_ACTION through MANDATORY_CONTROL) without disclosing the underlying dollar figures. Carries an OCG Standard §25 ocg-private-input@1 declaration: the capital components are committed via sha256-salted@1 in policy_parameters.rbc_components_commitment, never in the clear. Private-input variant of compute_rbc_action_level (art-254); use that public-input kernel when disclosure of the capital figures is acceptable; use this one when it is not. ZERO PII disclosed: only the action-level tier is public.",
      "input_schema_ref": "chaingraph/art-414-compute-rbc-action-level-private.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:f2beca9ef027189ddc810d8ad3f1f3fb2105ee53a8a4e810241c8ca132b5194a","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:6e5e88398691bb947308966a4df0019cfa1fc5894578c02f270320f1327ea8ac","valid_from":"2026-07-21"}],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:6e5e88398691bb947308966a4df0019cfa1fc5894578c02f270320f1327ea8ac",
        "seal": "J+hokMn/Ikug+csExwd3QRDui/4e7Yul1j80s1POrOIKG34EJMy4Qi3SnKigp/jZziWDJScUSMssssfNJEfG3x0oLfE26LT4oWC0BdNhnSXgjmFrVGkFnshiBdZKP20xJM2dt1NHH+ThnuuSgwEJk5RxZZMbbtWJL4hWKlJY0wgrzMFkcvCGGdDyJVIovloj/urO/VJw3JigRc/LjwzT4hfjeNdvTQa/D8+RabcK8Th7c8FN13bekiPuzBObRvOuEY0kxCkGqRTQp/hY/Tu9bfRzuqrKQLB5FHNlm/B9dqIrQZGDg8FxITlLuH4866ofTLgpPrXBwH65Xn/aiz5Veg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "commitment": "sha256:fe7f70f83601fc2bf2853d3eefca84f6602422fc68a4cbbb8199796a69e6ed09",
          "kernel_digest": "sha256:f2beca9ef027189ddc810d8ad3f1f3fb2105ee53a8a4e810241c8ca132b5194a",
          "output": {
            "action_level_code": "NO_ACTION",
            "action_level_description": "Above 200% ACL — no NAIC regulatory action required.",
            "action_level_label": "No Action Level",
            "not_legal_advice": "Not legal or actuarial advice. RBC action level determinations require review by a qualified actuary and the applicable state insurance department.",
            "pii_note": "ZERO PII disclosed: total adjusted capital and authorized control level are a private witness, never present in policy_parameters or output_payload. Only the action-level tier is public.",
            "regulatory_basis": "NAIC RBC Model Laws #312 (life), #315 (P&C), #315H (health). Verdict proves the committed capital figures map to this action-level tier — the underlying dollar amounts are never disclosed (OCG Standard §25 ocg-private-input@1).",
            "table_version": "NAIC-RBC-ACTION-LEVELS-2024"
          }
        }
      },
      "export_capability": [
        "json"
      ]
    },
    {
      "tool_id": "art-415-check-capital-adequacy-private",
      "tool_version": "1.0.0",
      "display_name": "Private-Input Capital Adequacy Check",
      "mcp_name": "check_capital_adequacy_private",
      "mandate_type": "analytics_mandate",
      "wave": 51,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/art-415-check-capital-adequacy-private.html",
      "description": "Checks a privately held eligible-capital and risk-weighted-assets figure against a pinned regulatory minimum (Basel III/3.1 CET1, or Solvency II SCR coverage), emitting only an above/below-minimum verdict and tier without disclosing capital or RWA. Carries an OCG Standard §25 ocg-private-input@1 declaration: the capital inputs are committed via sha256-salted@1 in policy_parameters.capital_inputs_commitment, never in the clear. Private-input variant of compute_basel31_delta (art-07) / calculate_solvency2_scr_ratio (art-180); use those public-input kernels when disclosure of the capital figures is acceptable; use this one when it is not. ZERO PII disclosed: only the above/below-minimum verdict is public.",
      "input_schema_ref": "chaingraph/art-415-check-capital-adequacy-private.html#manifest",
      "consumes": [],
      "feeds": [],
      "status": "live",
      "conformance_fixtures": true,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:2ea7eb0372ecebf09f65212f7005ce7e5e31c1e0b784b1a8e55b057cc5f98846","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:6e5e88398691bb947308966a4df0019cfa1fc5894578c02f270320f1327ea8ac","valid_from":"2026-07-21"}],
      "compute_proof_ready": "ready",
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:6e5e88398691bb947308966a4df0019cfa1fc5894578c02f270320f1327ea8ac",
        "seal": "Bm89CLhWDhBpeLGDGOtnvbJMKPGS+d9w9rbfhdkA9EQB9k+TpLNPWsgPBj0jtNoA/QPSSzTduuATVC77oshclguZgloq+5vZKr/5CCvSUaIaE0c6K0V0jjvOjAsixEy1DR1LYTydDyITgQal0f0w04GZy5PyKnYcKewjArzXelwWFbXS3e3ky2rg9MdVhe/6MQsCgmM7ylboEdoIXawx1gJMike6VEhSBV3Jg9aexaqYnEs01jKVRuFS+4Pk+AgqHqj6yOZsH6f6krcKMXHL/m6S0jQ7tY2aYywyth9BFEQjFR5nCUZGjZuq6vduc2R4ELbM6/cn3/+5f9dR+BjuSg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "commitment": "sha256:672a58bc932801406968a921d647eb1ba37a80106203e7f59d08c287897c4c77",
          "kernel_digest": "sha256:2ea7eb0372ecebf09f65212f7005ce7e5e31c1e0b784b1a8e55b057cc5f98846",
          "output": {
            "above_minimum": true,
            "not_legal_advice": "Not legal or regulatory advice. Capital adequacy determinations require review by a qualified capital/treasury officer and the applicable prudential regulator.",
            "pii_note": "ZERO PII disclosed: eligible capital and risk-weighted assets are a private witness, never present in policy_parameters or output_payload. Only the above/below-minimum verdict is public.",
            "regulatory_basis": "Basel III/3.1 CET1 minimum incl. capital conservation buffer (BCBS d424); Solvency II SCR coverage minimum 100% (Delegated Regulation (EU) 2015/35). Verdict proves the committed capital and RWA figures clear the pinned regulatory minimum — the underlying figures are never disclosed (OCG Standard §25 ocg-private-input@1).",
            "regulatory_minimum_pct": 10.5,
            "tier": "well_capitalized"
          }
        }
      },
      "export_capability": [
        "json"
      ]
    },
    {
  "tool_id": "art-418-idv-verification-failure-incident-composer",
  "tool_version": "1.0.0",
  "display_name": "IDV/KYC Verification-Failure Incident Composer",
  "mcp_name": "build_idv_verification_incident_record",
  "mandate_type": "compliance_mandate",
  "wave": 62,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-418-idv-verification-failure-incident-composer.html",
  "description": "Composes a structured verification-failure/fraud-attempt incident record from an IDV/KYC session for fraud teams, regulators, and insurers: a cross-link to the session's hash-chained receipt (art-359), an honest failure classification (type + AR4SI severity tier), session evidence digests, remediation status, and an optional cross-link to an escalation record or a signed failure receipt. Reuses the art-379 agent-incident-record shape and vocabulary. A missing session-receipt link degrades the record's claim strength rather than being silently accepted, and a malformed cross-link hash is flagged, not hidden. This is an evidence format for an incident the caller declares, not a fraud-detection system, not a determination of fault, and not a regulatory or insurance adjudication. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-418-idv-verification-failure-incident-composer.html#manifest",
  "consumes": [
    "art-359-idv-session-receipt-builder"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:90527f7f3f2c9cb095cea22dcaef24642147eb19350d1a0d12bc4eeccc168822",
      "valid_from": "2026-07-20"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-20"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EbMg4eBGB1lpSNsrJgYG8ETipiPwz1Ty6ryP948eRskts5o2rIa7UxlIf+Yc5KXHzSfflHgM4PV7QcO0LCFxIRThfFHPB0NHUe9chHkalp5Nnt+HiuyB83z+DkJpprx0HnUMxnYquzCpI4gW41sCXRCi+m5S9hkksajsfizId/UOlMlA6A3LAn8M1VYMNLUPoORZF/+YfSYkjIyrAC51/AkYtUC9xcTAZO+w9f5ZT27XsSaQ/uhPPmmbJES/Au9zFdShu9VHztw3VlWPMCZXD71SL41TnrX/k/xCSoHiXLQp2U6pJxYqSq4hyzHW/ax7l5sO7CLw5LFRuYDevLCA4Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:90527f7f3f2c9cb095cea22dcaef24642147eb19350d1a0d12bc4eeccc168822",
      "output": {
        "cross_linked": true,
        "escalation_cross_link": {
          "escalation_record_hash": "sha256:44444444444444444444444444444444444444444444444444444444444444",
          "escalation_record_hash_well_formed": true,
          "failure_receipt_hash": null,
          "failure_receipt_hash_well_formed": false
        },
        "evidence_count": 2,
        "failure_classification": {
          "description": "Virtual-camera injection flagged mid-session by the injection-detection vendor.",
          "detected_at": "2026-07-20T09:12:00Z",
          "failure_type": "injection_detected",
          "failure_type_coerced_from_unknown_type": false,
          "incident_id": "INC-IDV-2026-0090",
          "severity_class": "contraindicated",
          "severity_coerced_from_forbidden_class": false
        },
        "invalid_evidence_count": 0,
        "record_claim_strength": "evidence-backed",
        "record_note": "This is a verification-failure incident evidence record for an IDV/KYC session incident the caller declares; not a fraud-detection system, not a determination of fault, and not a regulatory or insurance adjudication.",
        "remediation": {
          "notes": "Session flagged for manual fraud-team review; verifier account suspended pending outcome.",
          "status": "in_progress",
          "status_coerced_from_forbidden_class": false
        },
        "session_evidence": [
          {
            "digest": "sha256:22222222222222222222222222222222222222222222222222222222222222",
            "evidence_type": "otel_span"
          },
          {
            "digest": "sha256:33333333333333333333333333333333333333333333333333333333333333",
            "evidence_type": "in_toto_link"
          }
        ],
        "session_receipt": {
          "receipt_hash": "sha256:11111111111111111111111111111111111111111111111111111111111111",
          "receipt_hash_well_formed": true,
          "session_id": "sess-2026-0001",
          "verifier_id": "vendor-alpha-idv"
        }
      }
    }
  }
},
    {
  "tool_id": "art-424-witness-cosignature-verifier",
  "tool_version": "1.0.0",
  "display_name": "Witness Cosignature Verifier",
  "mcp_name": "verify_witness_cosignatures",
  "mandate_type": "cryptographic_mandate",
  "wave": 50,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-424-witness-cosignature-verifier.html",
  "description": "Verifies a C2SP tlog-checkpoint + witness-cosignature note (SPEC.md §20.2) offline: confirms the note's origin and root match a §20/§20.1 batch anchor's declared anchored_hash, then checks each pinned witness's cosignature against a k-of-n threshold. Supports both Ed25519 cosignature/v1 and ML-DSA-44 (the suite §20.2 names alongside it under the §PQC-1 reserved-extension discipline). Consumes a caller-supplied checkpoint note (e.g. from a c2sp.org/tlog-proof bundle), verify-side only, zero log operation, zero network fetch. Golden fixtures dogfood the tool's own output, including a tampered negative fixture that must fail. States only that ≥k pinned witnesses signed this root; does not establish log honesty, key ownership, or leaf inclusion (see art-280/art-279 and SPEC.md §20.1 for those checks).",
  "input_schema_ref": "chaingraph/art-424-witness-cosignature-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:d9ed5d3a0780e192b9d8f56ff41b6893ab74c516128dfca643191e9a76324caf","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ewi9P7LzZl3diijjbtltcyOI/G1qfD2CSL6ii5FtRbUDFIBW+/16ULZMDID7zK477eDtxNwHkcV93Fs8SXW/kwFdjYXwFf8MzfVXmYSXn+GeSJhrwa+dlFL4/KF6gs1SKYyzdWQOej1YMdsVEPxWLkYoMNcCr/i6MF5nGxQ/wHMf1HF0mH5VplKH+QvpDzTSY3UPwTWs/hytXiJv1BfI8giixJYFtAhLTZoDfHrjV2xL64wBXfVUY4lWGzCOl2ArFsvlUpGhmRX5jNYHLFMNwjtf685m+AZ4nODZyK4E8kgZVPnL9h2JpM2x9RH1fRuGImfwjmhRmSJgFcttypKPRw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d9ed5d3a0780e192b9d8f56ff41b6893ab74c516128dfca643191e9a76324caf",
      "output": {
        "__async": true,
        "anchored_hash": "1a48948724b049112cff2467561ab5307cf76b60dd11b63847449daf155c5485",
        "checks": [
          {
            "check": "anchored_hash_present",
            "detail": "ok",
            "pass": true
          },
          {
            "check": "witness_keys_present",
            "detail": "2 pinned witness key(s)",
            "pass": true
          },
          {
            "check": "threshold_valid",
            "detail": "ok",
            "pass": true
          },
          {
            "check": "checkpoint_note_parses",
            "detail": "ok",
            "pass": true
          }
        ],
        "log_origin": "witness-verify-1-fixture-log.example.org",
        "mode": "cosignature",
        "not_proven": [
          {
            "detail": "A witness cosignature closes anchor equivocation (one root shown to two verifiers) but says nothing about whether the log operator omitted entries or is otherwise dishonest.",
            "item": "Log honesty or completeness"
          },
          {
            "detail": "This tool verifies signatures against the pinned public keys supplied by the caller. It does not establish that those keys belong to the parties they claim to be — that trust decision is made before pinning, not by this verification.",
            "item": "Witness key ownership"
          },
          {
            "detail": "This tool verifies the checkpoint root and its witness cosignatures only. It does not recompute or verify a Merkle inclusion path for any individual leaf (see SPEC.md §20.1 for that check).",
            "item": "Inclusion of any specific artifact leaf"
          }
        ],
        "parsed": {
          "extensionLines": [],
          "noteText": "witness-verify-1-fixture-log.example.org\n42\nGkiUhySwSREs/yRnVhq1MHz3a2DdEbY4R0SdrxVcVIU=\n",
          "origin": "witness-verify-1-fixture-log.example.org",
          "rootHex": "1a48948724b049112cff2467561ab5307cf76b60dd11b63847449daf155c5485",
          "sigLines": [
            {
              "blob_b64": "ug/AhAAAAABobWYAaccGWkwwp5YCyD1NxFIT3tTt3sa+GKUYMe5QfPIbsGhNlhVvMOYbOyFwWb4Ie4qmw1veCD/8fadoGxyR72/XAg==",
              "name": "witness-ed25519-1"
            },
            {
              "blob_b64": "PRYuZQAAAABobWYAkHDvvAg2CW6/CJJNYus8I8IV+Rl4y+hdLFcjKha052gCVoSr/u3rfbUZmcCcBFole8q/UVGgB7ZkDMB5pgF5UkBfy7KvoZ/ZRSIXTJECqcab8PEQSWvg9xU9NXwl4dwNFUuibZ4Cy4d/t1tBuJ0yCo2qn1SCO7RfEFnoIu88UHi+kpQB3ApZrVbbptjT9CdB00xyKJ494lwUY4pfJBFwGZ4zEM1oB6RzNUY4dediT0fnfdAzIxY5tHhGPjWdA+NUIbQO9OP3k2I1DNHvpKld+W6xhxVTRxqBlvXaYx0bBMhGq27qXi7sc1zFHqos7Me+n6FG6iDMrn9FUBMS6POda+VPLlv+Yv/ui7VEZFg5zkF4+IYz/pEcx4BquDbaDr529ZPgoxTKRVnji5N5CkXsfavdUYG3+AnhUhEeyzbF9ICs4FhB5+mOUM+dAztEIKDtiZ6+x3pf0oZdZ9iEI5xTm5OvnVbijWJ4E7ufHUVm/8QKKezlwdVDsCvx53wQtiwai6XctvQE+24OAc5OquFCyuLv1K8ctN7Y7RNdoozjlE2Ut/7ex7R5jKoCYFImz4qdDVDKOVFpWRSqn1dhL4SjjY/SKviZkarT87jPGA+HNDdfw7PwjDaY+SlpaQSVaBUEMqbsbm4wKMZuNJ0YiUglo/f7a7Kf6aHZxIsGntXxKgDvxydeTaWvkhILNsBPekeDvg2Q6eVSrW4Si4gGQWZWCU2CFCM5/nzFle/F9PSKMBybKpZ260IprVo+tXsCVkVVXTopXLA8dyvG5OzQvOz1jOGyCw2sgIT0fN+rUOOYt2nbKZ6pTqB9kqDixvKSilcNJAwTW5oQDXUrwltyIyea6VkN6/8UkRtkn/aG0nodd/3OJMG05lOsxqo6o/PWLplmhDXgFeI9gHUfOmynjbliHg/cCz1cUXlE0mQ7XSZIHP31LtV7ZifpcbSzV9IUhYNSf+4I8lT05vfm99nTX9qt3NNAKHGWO03syqfZ7SZQukAmdMR7nMVEve9lV234w+PmOGHgvh7ZFS8s4o3Ehhy3flHk/DuXB4I1mxChjbBpYZ0B0XSa17br8qvayOV+YAFW5+bqudQiu8b1il0vIlP/QwDcicwQFK+Sfursen5Udzc+3y4FDT2H5vSnZUKX3KiHDxQ7Fsh6GZ28L5LHVdqU9CCcu2vJCEfCYBTiTP9pPb9NV7HZJWqctNSzkwuXAJ2S/kJsHIXzSEliGfA+2kIUynblTdAfufNNJxWigCzCHozjjPKGPj4kA+Z7/prnTSBjssKaNQL53+LUFtvSRj5SCzftkyhNabXtSN7Q5SkK1vhzE+GNHhfmSphgfaCUO4Hd6JvEpAHOSUqBfhwL93r92ECdCg+TRBn7ljhfJ9bhPDYUq6CP+n/PrI5YLDeN7vtVtSgT26d+q9gScqKcpB96pJu36Z8kKQkxkGti0rRB8Dg8Lg0EugN0aV0H6Mkm1cnCrqqmLVB4OCxRK9XqV4dAM68gxJEKtNkcaxGuVNQ0eVtbyaIrfdwnncSEGhj2CX1GsvVQ++6dJmvdxsOX003a6lGdRAt2aEvCCzCxNwR22e3YHGe6i1snQTV6oKVTSJPcXfhdVwX66JybG+9q4ocBEWIWMhqdeQD7Dk1qVUQDh6Fmmnr6wNDBxZJBNoWyV6UEwvSap0uj5tardQH0BN01E1kr2ll+8eiKQkvvcnvLJ0uVPEBQTrbkiPNBJLgzjWPFN6uF8X6bgV74STxwMcGc8e45qH3bcWZljFMVopYkQMTbhJAN/lXibIJcMRnxLXwCzLD5IVhmJ6zErqglRm0xpIMXmfYutzxYr82MW2Tt6LM/21DO1v/koqlk35GmFMJdjm+nHB56G6rom+Tlp1GPzO4w0+DERG0JzDRXFARzJiipRvb/lWt+FortMwCs2GOaWUH5g3EzwVwU2j5jkqtipIl5JraIFa3ZXA8CRh7D4xRNJ4YEsTtHd0BMSD2nUC6jFPmQEIxj40C1drzMCt0aMl8jd16exNbfBuS7LatMIaRaMHJZxT7HUzrgwz7sw0vJbLwKSLlqRpYAkmbfC/nLpiOFjhkDBjQZ7E/oI3OQ+HmB0XE5+496qRJSDKBHtBeL73kdjPANAlWFFDsLLV039osgPVfGScmYwUuNxtcmomtx2i9vzkOIXPVOLhM3PorHLRs8SH0UgMfnww8qICABStVvRCP1dJdWizC27KQkocHsa+ny4JKZmnwaLBskoIX6ma3t8pVgHaEQwuhN46VNJW//eFGy6d0kplbYTR4P/6YR7vJN8kJy/FGIHInGrfA36zUDmKmx+B6UZC6vYCmyRCQnJqDqRl/0moaHoj2IKu5GaF+QUtr9j9h1KH95nXc8ehHCdLf6d/CIK2xgiU/ctD87iFJmQBqP8m6Jl6Su2bnrKFTo+M/EuGHVfJS2W0abzlmhflPl5t3PMXdEzkRaUR2rEDszup6cZ03AZRTIjaAKmRY6GTRWBEVanizXc4k8yVcYOvdqbxSnZECxtEqXwKF3hP/F2J84xdbpiIjBRjmWDzC7jHMrEznrFmYQlWtVFfG1zS1W8fbMuAGN+aXPO2P/6+cvYRwnlAB/CRrk5zP73ENQD29hs+v9ZxhsMfRIir1+V3+ntv7dfWFZuoeypch1d2yk9Q7Ea3iND4gYF89HpcHfppYDFdUqBrE7h+gXGKYkMWm+PFh3ZpugJgzIgqt0UyhQStzLcbsvmSDk99Ig726O01uYSkcYKpL08SO2s6MLbaUYwM+0t5TJrF5UbM3weU1rZJsRYuO/yIhBROZtRt19+wo3OuerMDGrMo2AuQyeGu0mTJjyA6R7K8iU726KtkIQO/Q9TYLC86TcEbnsO4rt0Z4jZ7TcEjTlNgqykONfAdvMATmBCEGSY/gsccA4YvfzBcExepDhiYKz0+or3sx+Av6IRc0zByjZ+cYLfx4lZlpO86VGd6EA5f+rlYmKVJkrJ3XGzfVW6V9CGljIa6NkYl09nqF5jqWU9aeuJx2iSt7zooV16Yx4Pdb+vkpzTBbSpGljq1A7et3ti7we6Cx5kFcAznvekMZ3FLityRsPalgSNuqKVbRcieFsIrn48tkaC3Voa1+kgCBkZNcEGVGAja21u87f+QEbHCImMkx7fIOFjJCTlLG7zPUWGh0jKzlCUlNXWlxjam1zdIKIlqayvcvW19zj8fb8L0NkeH6Bn6Cjs7bkAAAAAAAAAAsePUk=",
              "name": "witness-mldsa44-1"
            }
          ],
          "size": 42
        },
        "threshold": 2,
        "witness_keys": [
          {
            "algorithm": "ed25519",
            "name": "witness-ed25519-1",
            "public_key_b64": "0fN6s6H2ctimNrsDRNlBLbK1wST+50DANLqoPidppTY="
          },
          {
            "algorithm": "ml-dsa-44",
            "name": "witness-mldsa44-1",
            "public_key_b64": "tf0mhz7oIabShCTchLbxRpMiL8zFDKsGRcGbU0hBqbL6/ZegtljiRLQ67FBEOjHg0En+FiD2GifLWua1n+q2pO4JHiTmZibhukyZauWwGZAZTgZHBgi2JljF5aIa0aNwLhupiLuoiK2AroNKZJy29fgEaFRj7T0znwn8Djw8bAmzFkGcMdKDSjutv60wQA3ng4fpeg+BPGvpNIcThRP/dLyC0HOQqlc9WZKucXeYIvwgF5Od8m4sgc9CNuqfCWV075gMOx+oZz+VMfw9/eHK5mezqBh7Fo2dXRc1LURTChnbO5SoCT/AQ+dUu+WI6yfTJT5kfYr7TLJWosqlfiq+j1y156Mp4OZywFJH4BuHKruwGGgjYwg+RR3RnpJpuI500UKE+qu6HGvZgsxjHeIvEGHw7Lxubi4cnQ2ZP5h0mjXOpIf/mKTkNElY/Rr0YJq4whvFzQ9xWjhV9tn6bs5DRq6IM7Cs0GgRW0YlRvTdRxNuOD66wuLDXHo6RiobU1RQAbvjCRGU8f1EeLtZfCleVosyjPzmYVR3f24qvCizyitMtAI5iMOAhQGIaetTLVlQQFkOAhExAiIm5snNccg+UiUJODTeQ2vc+F2g1Smlcxd+nVuONYmb10U0e7O6EPXN3xFapS02wJeh7ezW4A8gC1hwnKj51QLOuOVHHIeLlzIZkNUmFVVs4OQ1/QGSnkCFbTkt+fjWYGdRz8JyLte23wVXPCJBBvv2fFRPLnKu+C/d2SzLS2OHWW3HoUlMcniEb9ZotMl4jghWTq38pa6r9AApL3S1Rbz8dbEOEd2vCiIVGNn9aYctCMaT1oxwTgZ3k9zJHjBI9TvfV5yIM0Yxgxn6yecSWDEl4fhIFZB037+dRx+0salm/Xzc35cOjcOoOWLfFOnezdOyi0qdVgMjmLNVSn2S5CLyF0lo/wEGnnJsUmB/KzBg4micLBzQhSul/ZxmBMAulN05KpnCtp+A4nxIlBBc44PcAFovohrPjcWW81vzewDhU+UwyVj/BwQxkZesRrfSAKTZhedQfpU5eKC0uT5dPSIMNbQyp44TeKHdhdnJXbLaF57xfiBfS4Xq+TPgDJXH35b+z2/WThMUYwG2urTBCa4mr1BDkXNQucZ2z+TpJyTJs+9klEK4cNCl12sQ3ATo99pPpQq68PTZhu+yAzfLtRiaSkwwpslCp3DNkkpxGaNz/XolsDXl2Qn2V1joQQkokrLKwszfbPxsFHevIg2cJjCdUTp9f0bJ2EeP3HCs+Jxb46b0oz77b3DFdfUmIWcJITLAFVpehZ/5ih3xyyyGVx7JBIlVi8AgxByja5LU5hVWiIMcikFidxo8Dk0KFelTFc8OElxtqPMwgtAUAtoQzFuW4KFBwVXzQvEdJqLLIxo+WsGHacyVwMhUWT5prYip7WzoI9vI3X+dvGzH8hdJ3C4K4FVJEcMSJLeqzNxKiKzNZNTyX1nj9fMQX/WFPxHf/MuKKKDvmhMhDb1KZMPprwN5yMHaT8yCfB1v5g3qCXQFDGHTytnfwIF55xqMEDKKLHLE5gm8j9ezMtmu0wtKWYXE/DnVK46w87AB1d3w42F+lGlU2+Y8xBy2RPE/UCDdKFiKrtL59c63rhBhHZ/RlyI/R3q2G8pGnZDdTJesCvWNWaYB2bu6W0T8AhW17GJ/w2BPF6yWv4hNpWF2MvlUZn4x5bUS5FbDS8I13xYbQUGvwlmHHZfnfILr3UDQaGmvv5fddEOl7+igVg=="
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-425-large-exposures-limit-check",
  "tool_version": "1.0.0",
  "display_name": "Large Exposures Limit Check",
  "mcp_name": "compute_large_exposures_limit",
  "mandate_type": "compliance_mandate",
  "wave": 70,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-425-large-exposures-limit-check.html",
  "description": "Basel III large exposures framework (BCBS 283) and U.S. single-counterparty credit limits (Regulation YY, 12 CFR 252 Subpart H) limit check: aggregates each counterparty's gross exposure net of eligible credit-risk-mitigation, rolls connected/economically-interdependent counterparties into one group exposure, then checks the group against Tier 1 capital under the general 25% limit or the tighter 15% GSIB-to-GSIB limit. Emits a breach-list artifact of every group exceeding its applicable limit. Deterministic point-in-time calculation from caller-supplied exposure, CRM, and capital figures for a single reporting date.",
  "input_schema_ref": "chaingraph/art-425-large-exposures-limit-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:eea6976089a31b050d82c8bc25f5fb90f8f7e2b464627acc89bb16e5d58c859e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Jvb9PwnKMNfsY+vbr4Lsj//yY1s0LfvX9Rf/InHZMO4avSvCKzuaX6MSBNxjuipGQ3tsKOg6Lk9WNOWcJFRjDiSpZiwA85it58knuQh0u2MHcH5z9OXhEjYuNnUWfUE/CvNgiSspZ0/YOyBXpgg0F4pwT01t3HxLO7EDKscT95oHROqDALzmymAAypj+5Q4H3nW7qsHjNtKbrQkaMhg8ECdjOy8tITCgOw+H4RhSJlW2Hd1sHXrN2hRhSf2v+WUlHfcToqfnTN/cFxeTBN6e8AlNwQTp3MTpQkj1DXyU7KQvDFeGhexCjersDFW/0adI8hopfZ27tUdWCRsFGI9GZw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:eea6976089a31b050d82c8bc25f5fb90f8f7e2b464627acc89bb16e5d58c859e",
      "output": {
        "breach_list": [],
        "caller_is_gsib": true,
        "counterparties": [
          {
            "connected_group_id": null,
            "counterparty_id": "cp-A",
            "counterparty_name": "Standalone Corp A",
            "is_gsib": false,
            "net_exposure_total_musd": 1600
          },
          {
            "connected_group_id": "grp1",
            "counterparty_id": "cp-B",
            "counterparty_name": "Group B Sub 1",
            "is_gsib": false,
            "net_exposure_total_musd": 1000
          },
          {
            "connected_group_id": "grp1",
            "counterparty_id": "cp-C",
            "counterparty_name": "Group B Sub 2",
            "is_gsib": false,
            "net_exposure_total_musd": 500
          }
        ],
        "groups": [
          {
            "applicable_limit_musd": 2500,
            "applicable_limit_pct": 25,
            "breached": false,
            "exposure_pct_of_tier1": 16,
            "group_id": null,
            "gsib_to_gsib": false,
            "is_connected_group": false,
            "member_counterparty_ids": [
              "cp-A"
            ],
            "net_exposure_total_musd": 1600
          },
          {
            "applicable_limit_musd": 2500,
            "applicable_limit_pct": 25,
            "breached": false,
            "exposure_pct_of_tier1": 15,
            "group_id": "grp1",
            "gsib_to_gsib": false,
            "is_connected_group": true,
            "member_counterparty_ids": [
              "cp-B",
              "cp-C"
            ],
            "net_exposure_total_musd": 1500
          }
        ],
        "note": "Deterministic point calculation from caller-supplied gross exposure, eligible CRM, and connected-group rollup for a single reporting date.",
        "regulatory_basis": "Basel III large exposures framework (BCBS 283); U.S. single-counterparty credit limits (Regulation YY, 12 CFR 252 Subpart H): 25% of Tier 1 capital general limit, 15% for GSIB-to-GSIB exposures.",
        "tier1_capital_musd": 10000
      }
    }
  }
},
    {
  "tool_id": "art-426-cecl-ecl-calculator",
  "tool_version": "1.0.0",
  "display_name": "CECL Expected Credit Loss & Allowance Calculator",
  "mcp_name": "calculate_cecl_ecl_allowance",
  "mandate_type": "credit_assessment",
  "wave": 70,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-426-cecl-ecl-calculator.html",
  "description": "Computes a deterministic CECL (Current Expected Credit Loss, ASC 326) allowance given caller-supplied PD/LGD/EAD curves, segment exposures, and forecast scenario weights, and reconciles the result against the prior period's allowance balance. Supports WARM (Weighted-Average Remaining Maturity -- an annualized historical loss rate x remaining life practical-expedient approach), DCF (full contractual cash-flow projection, discounted at the effective interest rate, with period expected shortfall = contractual payment x PD x LGD), and straight loss-rate (a lifetime historical loss rate applied directly to exposure, no discounting) methods. BOUNDARY: PD/LGD/EAD curves and forecast scenario weights are policy inputs supplied by the caller -- human or model judgment -- and this kernel performs only the arithmetic combination into per-segment ECL and the allowance rollforward (beginning balance + provision expense - charge-offs + recoveries = ending allowance, checked against the newly computed required allowance). It does not estimate, calibrate, back-test, or validate any PD/LGD/EAD model. Distinct from IFRS9's 3-stage staging regime (see tools 196/198/204, a different accounting standard) -- CECL recognizes lifetime expected credit losses from origination with no staging transfer logic.",
  "input_schema_ref": "chaingraph/art-426-cecl-ecl-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3a945610238be19cfb66bb261bdb544507d2eb0d978c45a98d4f4570da40e6f8",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "H/anMqZvuJvs/TMllUSY2P7uK1mpS9v6kZiE42WRoI4IybCf0A93Pb+MFf4P4Q3PL0orDeD5jVRvpIkCdfrQih54/Pb6I3Ol8zaBF6tBC3fTY2dxPrZi1pgwOYXmf4n4LbSPj+KqG47bJ0kAmtkQBUk4v10VzRRrhSc1hy/+lMIEIEUx5Kts0syLtD+lcqrKkoM3UndQmeY8uzR2OdZjBiZzLy22uZKaG6zit8+32FLHHV/dzhljByxlVu1v1lftJKshCJnRknw5PF8Q5HeItEBHnaenKKOilNMYoNFWdDAptNtAzkL1EsOzQlGWYHHK/NrswsFbpfIQhWSSwrNa1Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3a945610238be19cfb66bb261bdb544507d2eb0d978c45a98d4f4570da40e6f8",
      "output": {
        "boundary_note": "PD/LGD/EAD curves and forecast scenario weights are policy inputs supplied by the caller (human/model judgment); this kernel performs only the arithmetic combination into ECL and allowance reconciliation. It does not estimate, calibrate, or validate any PD/LGD/EAD model.",
        "charge_offs_usd": 20000,
        "constants_version": "2026-07-23.cecl-warm-v1",
        "delta_vs_required_usd": 0,
        "disambiguation": "CECL (ASC 326) recognizes lifetime expected credit losses from origination -- there is no 3-stage staging transfer regime here, unlike IFRS9 (see tools 196/198/204, a distinct standard). WARM applies an annualized historical loss rate x remaining life; loss-rate applies a lifetime historical loss rate directly (no discounting); DCF discounts period expected shortfalls (contractual cash flow x PD x LGD) at the effective interest rate.",
        "forecast_weights": [
          {
            "scenario": "baseline",
            "weight": 0.6
          },
          {
            "scenario": "downside",
            "weight": 0.4
          }
        ],
        "method": "warm",
        "prior_allowance_balance_usd": 500000,
        "provision_expense_usd": 451000,
        "reconciled_ending_allowance_usd": 936000,
        "reconciliation_balanced": true,
        "recoveries_usd": 5000,
        "segment_count": 2,
        "segments": [
          {
            "ead_usd": 10000000,
            "exposure_balance_usd": 10000000,
            "lgd_pct": 0,
            "remaining_life_years": 3,
            "scenario_count": 2,
            "scenarios": [
              {
                "scenario": "baseline",
                "scenario_ecl_usd": 360000,
                "weight": 0.6
              },
              {
                "scenario": "downside",
                "scenario_ecl_usd": 750000,
                "weight": 0.4
              }
            ],
            "segment_ecl_usd": 516000,
            "segment_id": "retail-auto"
          },
          {
            "ead_usd": 5000000,
            "exposure_balance_usd": 5000000,
            "lgd_pct": 0,
            "remaining_life_years": 2,
            "scenario_count": 2,
            "scenarios": [
              {
                "scenario": "baseline",
                "scenario_ecl_usd": 300000,
                "weight": 0.6
              },
              {
                "scenario": "downside",
                "scenario_ecl_usd": 600000,
                "weight": 0.4
              }
            ],
            "segment_ecl_usd": 420000,
            "segment_id": "retail-card"
          }
        ],
        "total_required_allowance_usd": 936000
      }
    }
  }
},
    {
  "tool_id": "art-427-discount-window-capacity",
  "tool_version": "1.0.0",
  "display_name": "Discount Window Borrowing-Capacity Calculator",
  "mcp_name": "compute_discount_window_capacity",
  "mandate_type": "compliance_mandate",
  "wave": 63,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-427-discount-window-capacity.html",
  "description": "Federal Reserve Discount Window borrowing-capacity calculator: lendable value = sum of pledged collateral positions x published Fed collateral margins (margin table effective date is caller-supplied policy input, not hardcoded) compared against a runnable-liability / uninsured-deposit coverage target. Timely given the pending Discount Window Preparedness Act and the Treasury LCR-recognition push for pre-positioned collateral; no existing vendor tool covers this calculation.",
  "input_schema_ref": "chaingraph/art-427-discount-window-capacity.html#manifest",
  "deadline": null,
  "deadline_note": "Discount Window Preparedness Act pending; Treasury LCR-recognition push for pre-positioned DW collateral.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:9229d3650b52b9385576c8f0c878c174906804fb4ccca5ae197016f655fa4aea",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K99lkbLG8znUkABAISQ+aIaUTyKO4XhiFhl9DWxntK0qov9L4S04D825q7mcLrWxt7Kyx5xkKr0jBo7DPsRt1R9gG6gGXdrBs464DC3NkoIG6xPyiC2Uaist65+n4C5YC/0cnz1X20uzmLKPeQ1wn47jlwfliz4GNAugcICKmIgQWlD2kQCEo7Er4mNIo9VkBOKuJO+e8Lfb8g1bvQOWXCNPHx9dHbogxZ1ylnYP61llnKm44KlnksphSbX+dXXEJXIpUuz9ua1F1s2VScGc8x0+cC7k615Hq/odaqONjncv77yVQLIS0cjVJvQ5jR4ObootmE/kz9DEjCENR8HrBA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:9229d3650b52b9385576c8f0c878c174906804fb4ccca5ae197016f655fa4aea",
      "output": {
        "capacity_compliant": true,
        "capacity_surplus_shortfall_musd": 1690,
        "collateral_par_value_musd": 5000,
        "coverage_pct": 156.33,
        "coverage_target_pct": 100,
        "lendable_value_musd": 4690,
        "margin_table_version": "2026-07-01",
        "note": "Lendable value = sum(collateral par value x published Fed margin, policy-input margin table). Compared against caller-supplied runnable-liability / uninsured-deposit balance. Not a claim of actual Fed collateral eligibility or advance approval.",
        "runnable_liabilities_musd": 3000
      }
    }
  }
},
    {
  "tool_id": "art-428-cyber-incident-clock",
  "tool_version": "1.0.0",
  "display_name": "Cyber Incident Notification Clock",
  "mcp_name": "compute_cyber_incident_notification_clock",
  "mandate_type": "attestation_mandate",
  "wave": 70,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-428-cyber-incident-clock.html",
  "description": "Starts three parallel regulatory notification-deadline clocks from one hash-anchored cyber-incident determination timestamp: the 36-hour interagency banking-regulator rule (12 CFR 53/225/304), the 4-business-day SEC Form 8-K Item 1.05 notification (weekends-only business-day arithmetic; no federal holiday calendar is applied, a documented scope limit), and the 72-hour NYDFS 23 NYCRR 500.17(a) notice. Each obligation carries its own decision-tree attestation slot (applicable, deadline, completion state, a §22.11-shaped optional exception for an at-risk or missed deadline) and a stable obligation_id ready to be cited by a future Human-Accountability (BANK-SPEC-HA-1) approval record, without embedding a mutable reference inside its own hashed output. A pending SEC Item 1.05 rescission petition (flagged Apr 2026) is carried as an annotation only; it does not alter the computed deadline. Complementary to tools/incident-response-runbook-builder.html. This tool computes deadlines and attestation slots only; it does not itself transmit, file, or submit any regulatory notification, and it is not legal advice.",
  "input_schema_ref": "chaingraph/art-428-cyber-incident-clock.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:6bbd5af5d5a8f8a001a6b5e62fde257a5a22943d218e038ce6c4ae78bb142c8e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-23"}],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CMYCH33Wu2HK866jygv1bdg+VMS9Y6WIcAsmC3xHkyoUkLuNAkFXM2FF3MHK7paAgkokkVvwftTgB4aPBVlJjyFoOCDzPfWW5tqvUMJFaixn2NV0ptzpLMaPSCvgoF4ZDvaK6jx7j8oo5V5K+FuZbIRlnISUIS5EfbqUryA6wyQQOKtq/mbSQfAqTO2W6QWjVR1GB4G3UfyJx0gd9+1+rA+L581JFPPOiRvpFSE5trtn+KSzfKbBU4ppl92LqK2KGW5rF0CYU2ar+qSE6ib2vSXsE+CPcLHxwMk+mztsQp8ac9wcQkzAf3vK+cg3mYmuofo0IPGzLQOifaWySd/pSQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d4f785fe961f2b21635d4c79e97fc6843c9db6d688d81be0b6a7223d1f63ac95",
      "output": {
        "determination_at": null,
        "determination_at_parsed": false,
        "determination_evidence_hash": null,
        "determination_evidence_hash_well_formed": false,
        "determinations": [
          {
            "applicable": false,
            "completed_late": false,
            "deadline_iso": null,
            "exception": null,
            "ha_note": "Not yet an approval record. Once BANK-SPEC-HA-1 (SPEC.md Human Accountability section) lands, a human reviewer/approver MAY create a separate, signed §1 approval record over this artifact's execution_hash + this obligation_id; this kernel does not fabricate or reserve a mutable slot for that record inside its own hashed output.",
            "item_state": "not_applicable",
            "note": "Calendar-hour deadline (36 hours from determination); the rule carries no business-day exception.",
            "notification_completed_at": null,
            "obligation_id": "banking_regulator_36hr",
            "regulator": "OCC (national banks) / FRB (bank holding companies, state member banks) / FDIC (insured state non-member banks): harmonized interagency rule",
            "statute_citation": "12 CFR pt. 53 (OCC) / 12 CFR pt. 225 (FRB, Regulation Y) / 12 CFR pt. 304 (FDIC) — Interagency Computer-Security Incident Notification Requirements"
          },
          {
            "applicable": false,
            "completed_late": false,
            "deadline_iso": null,
            "exception": null,
            "ha_note": "Not yet an approval record. Once BANK-SPEC-HA-1 (SPEC.md Human Accountability section) lands, a human reviewer/approver MAY create a separate, signed §1 approval record over this artifact's execution_hash + this obligation_id; this kernel does not fabricate or reserve a mutable slot for that record inside its own hashed output.",
            "item_state": "not_applicable",
            "note": "Four-business-day deadline; weekends-only business-day arithmetic (see kernel scope-limit note); no SEC-closure holiday calendar is consulted.",
            "notification_completed_at": null,
            "obligation_id": "sec_8k_item_1_05",
            "regulator": "U.S. Securities and Exchange Commission",
            "statute_citation": "17 CFR 249.308 (Form 8-K), Item 1.05 (Material Cybersecurity Incidents); \"business day\" per Exchange Act Rule 0-3(a)"
          },
          {
            "applicable": false,
            "completed_late": false,
            "deadline_iso": null,
            "exception": null,
            "ha_note": "Not yet an approval record. Once BANK-SPEC-HA-1 (SPEC.md Human Accountability section) lands, a human reviewer/approver MAY create a separate, signed §1 approval record over this artifact's execution_hash + this obligation_id; this kernel does not fabricate or reserve a mutable slot for that record inside its own hashed output.",
            "item_state": "not_applicable",
            "note": "Calendar-hour deadline (72 hours from determination).",
            "notification_completed_at": null,
            "obligation_id": "nydfs_72hr_500",
            "regulator": "New York State Department of Financial Services",
            "statute_citation": "23 NYCRR 500.17(a): Notice of Cybersecurity Incident"
          }
        ],
        "evaluated_at": null,
        "incident_id": "",
        "note": "Deterministic notification-deadline clock over a caller-declared incident determination timestamp. Business-day arithmetic (SEC 8-K leg) is weekends-only; no federal/SEC holiday calendar is applied (see kernel header). This tool computes deadlines and attestation slots; it does not itself transmit, file, or submit any regulatory notification, and it is not legal advice."
      }
    }
  }
},
    {
  "tool_id": "art-429-var-backtest-traffic-light",
  "tool_version": "1.0.0",
  "display_name": "VaR Backtesting Traffic-Light Zone Calculator",
  "mcp_name": "compute_var_backtest_traffic_light",
  "mandate_type": "capital_assessment",
  "wave": 70,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-429-var-backtest-traffic-light.html",
  "description": "Counts Basel VaR backtesting exceptions (actual daily P&L loss exceeding the model's 1-day VaR estimate) over a rolling up-to-250-trading-day window, then looks up the green/yellow/red traffic-light zone and capital multiplier per the Basel Committee's 1996 Amendment to the Capital Accord to Incorporate Market Risks, Part V, retained under BCBS d457 (Jan 2019) internal-models-approach backtesting. Exception-count plus zone plus multiplier lookup only -- does NOT compute VaR itself and does NOT apply the multiplier to a capital charge.",
  "input_schema_ref": "chaingraph/art-429-var-backtest-traffic-light.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:25b20c0e87bf44b54d5c7f92e3ac4994db2af88a5fcb98ee3755972234fafe6b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EGFqfEJ2Ol9Y4PxCvK6DJEZKP/1CdT5Hy+SrhQEtt2wds1fIoThEsxq2JsLDEtdpdiKQK2ToiKO6YMsXbTpJOy1UqFfOvyWFrBEuYSr+P5IgIEohVG680r6GyXtxCjDoEvXBBcYoPPvCB8ZQlurAuZtdGi+zzwCo8rm6wTarhpcaIMIQxF863Lk0dV3Jn3CVdmufCFPJLTZiDAcLxEGEsSkcpGV7sWEuP21c1pScbCC6dOwo3SOTr88XfdroZVilGo7+2uGkZ7KooC9gFyN3cHrmquSUoM7d6gmWcEImsGILTBIWxjf+aH/IXKa1Ut4lpRkey+l+tw9/HTOW1iHMrQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:25b20c0e87bf44b54d5c7f92e3ac4994db2af88a5fcb98ee3755972234fafe6b",
      "output": {
        "constants_version": "BASEL-VAR-BACKTEST-TRAFFIC-LIGHT-2026-07-23-V1",
        "disambiguation": "compute_var_backtest_traffic_light performs ONLY the Basel traffic-light exception count + zone + multiplier lookup over a supplied <=250-trading-day P&L/VaR series. It does NOT compute VaR itself, does NOT apply the multiplier to a capital charge (RWA/capital math is left to the bank's market-risk capital engine), and is not a hypothetical-vs-actual P&L attribution tool.",
        "exception_count": 3,
        "exception_indices": [
          10,
          80,
          200
        ],
        "full_window": true,
        "multiplier": 3,
        "rule_status": "final",
        "source": "Basel Committee on Banking Supervision, Amendment to the Capital Accord to Incorporate Market Risks (Jan 1996), Part V, \"The Basel Committee's backtesting framework\" -- 250 trading-day rolling window comparing actual daily P&L against the 99% 1-day VaR estimate; green (0-4 exceptions, multiplier 3.00), yellow (5-9 exceptions, stepped multiplier 3.40-3.85), red (10+ exceptions, multiplier 4.00 floor). Retained under BCBS d457 \"Minimum capital requirements for market risk\" (Jan 2019) internal-models-approach backtesting provisions.",
        "truncated_to_250": false,
        "window_days": 250,
        "zone": "GREEN"
      }
    }
  }
},
    {
  "tool_id": "art-431-fdic-assessment-rate-calculator",
  "tool_version": "1.0.0",
  "display_name": "FDIC Deposit-Insurance Assessment Rate Calculator",
  "mcp_name": "compute_fdic_assessment_rate",
  "mandate_type": "compliance_mandate",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-431-fdic-assessment-rate-calculator.html",
  "description": "FDIC deposit-insurance assessment rate calculator (12 CFR 327): looks up the base assessment rate for a supplied composite CAMELS + financial-ratio score against a caller-supplied rate schedule, then applies the unsecured-debt and brokered-deposit adjustments and floors/caps the result to a caller-supplied statutory range. The rate schedule is caller-supplied policy input, not hardcoded, so a future FDIC rate-schedule update (including a pending assessments rulemaking) is a policy_parameters change, not a kernel change. Does not compute the composite CAMELS score itself.",
  "input_schema_ref": "chaingraph/art-431-fdic-assessment-rate-calculator.html#manifest",
  "deadline": null,
  "deadline_note": "A pending FDIC assessments rulemaking (NPR, June 2026) may revise the published rate schedule; verify the current schedule at fdic.gov before relying on this output for any live filing decision.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b1df1b03484fa6c52ac635f0e59f3d0c3f8d2fade923f4ad223a7d39202d1e26",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K+7s3S2iyu1o7ko/XHTpWk2DiIX4RuEF4vYXkx+ISA4MeqAIBZ9gp7uo1ROosOwzNJcXe5A75E9R/4rD79r0AQxVZjmDDvxyfZxJidghV6BxxDJbUJup3MgMz2fMrKptKu/NQ7RpFE3utHLYfZwyH/V5+Qhn30p4zXAb9tWPnE0JoFtP+7sF2UhlOR2EsPRqLar+9xuYJQtu/3m1V3HL4x0XGzE706TQ/pqjEXYB7dEBq8KdIcHQ5NkyY+9OIowuK76nPxG2WWlO0j2mmLUmeKsMFuBS3ugR/2hsucGEY0oXXtoWaC1VqUTkiYQbY/xRfuZPp4ebKMUsM0GBttFm2Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b1df1b03484fa6c52ac635f0e59f3d0c3f8d2fade923f4ad223a7d39202d1e26",
      "output": {
        "assessment_base_musd": 8000,
        "base_rate_bp": 7,
        "brokered_deposit_adjustment_bp": 0.5,
        "estimated_quarterly_assessment_musd": 1.3,
        "note": "Base rate = lookup of the supplied composite CAMELS + financial-ratio score against a caller-supplied rate-bracket schedule (policy input, not hardcoded), then adjusted for unsecured debt and brokered deposits and floored/capped to the caller-supplied statutory range. Does NOT compute the composite score itself and is NOT a filing-ready assessment invoice.",
        "npr_banner": "A pending FDIC assessments rulemaking (NPR, June 2026) may revise this rate schedule -- verify the current published schedule at fdic.gov before relying on this output for any live filing decision.",
        "rate_cap_bp": 40,
        "rate_floor_bp": 1.5,
        "rate_floor_or_cap_applied": false,
        "rate_schedule_version": "FDIC-2023-FINAL-RULE-SAMPLE-V1",
        "total_rate_bp": 6.5,
        "total_score": 62,
        "unsecured_debt_adjustment_bp": -1
      }
    }
  }
},
    {
  "tool_id": "art-432-call-report-rc-balance-sheet",
  "tool_version": "1.0.0",
  "display_name": "Call Report Schedule RC (Balance Sheet) Mapper",
  "mcp_name": "map_call_report_schedule_rc",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-432-call-report-rc-balance-sheet.html",
  "description": "Maps caller-declared FFIEC Call Report (FFIEC 031) Schedule RC line items -- cash, securities, loans and leases, other assets; deposits, borrowings, other liabilities; common stock, surplus, retained earnings, AOCI -- into Schedule RC totals (Total assets RCON2170, Total liabilities RCON2948, Total equity capital RCON3210, real public MDRM item codes) and checks the RC balance-sheet identity (Total assets == Total liabilities + Total equity capital) within a caller-set rounding tolerance. Not a filer -- produces evidence artifacts and form-shaped totals only, never a submission. Line-item values are caller-declared from the institution's own books; this tool performs only arithmetic aggregation and the identity check, never estimation or audit of individual line items. Feeds art-433 (Schedule RC-R capital) and art-434 (Call Report edit-check gate) for cross-schedule validation. Not for Y-9C (see the separate Y-9C kernel, which uses instruction-text-encoded edits, not a public taxonomy).",
  "input_schema_ref": "chaingraph/art-432-call-report-rc-balance-sheet.html#manifest",
  "consumes": [],
  "feeds": [
    "art-434-call-report-edit-check-gate"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ebdcc54a5a9f44bae3307929b2c226e91666a2929a99fb42e15eb5f0df79c7d1",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Hqpx9CIYCJ54uxelmSZixvqOWFPeiGlMyVOG10y476UawSqjpbVeYxyFL9qxYswDvCn+UaQUnrEvTzqnUxtsawSkzl0PzCc1gs1OEXYwiJyJxmKaB6OaoZtQO8po0Cz8J9KEb2cRPx+6f5kDFyJ0407Vhgq4YGe78DP25VkJJRkQ0uYhTLS6x7Nj0NZDf7b3j5/unZZ17NWMCO8ruM3uHSU8fqNgGIhOePQTo5DG0+GARjKPB7qZi62/wxAfpEKyGbxWaJ2z4G/oankBhjwN7TjGZjxZIzpcWAw60TMciW8JOfzXwOkyq0C5ex4bk7gTcGSSPH3Sz8m8Of0eEn/PrQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ebdcc54a5a9f44bae3307929b2c226e91666a2929a99fb42e15eb5f0df79c7d1",
      "output": {
        "assets": [
          {
            "key": "cash_and_due_from_usd",
            "label": "Cash and balances due from depository institutions",
            "mdrm": "RCON0071",
            "value_usd": 226409000
          },
          {
            "key": "securities_htm_usd",
            "label": "Held-to-maturity securities",
            "mdrm": "RCON1754",
            "value_usd": 0
          },
          {
            "key": "securities_afs_usd",
            "label": "Available-for-sale securities",
            "mdrm": "RCON1773",
            "value_usd": 864213000
          },
          {
            "key": "loans_and_leases_net_usd",
            "label": "Total loans and leases, net of unearned income and allowance",
            "mdrm": "RCON2122",
            "value_usd": 1191560000
          },
          {
            "key": "bank_premises_usd",
            "label": "Bank premises and fixed assets",
            "mdrm": "RCON2145",
            "value_usd": 21670000
          },
          {
            "key": "other_assets_usd",
            "label": "Other assets",
            "mdrm": "RCON2160",
            "value_usd": 368340000
          }
        ],
        "boundary_note": "Line-item values are caller-declared from the institution's own books; this kernel performs only the arithmetic aggregation into Schedule RC totals and the Total assets == Total liabilities + Total equity capital identity check. It does not derive, estimate, or audit any individual line item.",
        "entity_id": "FDIC-CERT-3510",
        "equity": [
          {
            "key": "common_stock_usd",
            "label": "Common stock",
            "mdrm": "RCON3230",
            "value_usd": 3020000
          },
          {
            "key": "surplus_usd",
            "label": "Surplus",
            "mdrm": "RCON3839",
            "value_usd": 177631000
          },
          {
            "key": "retained_earnings_usd",
            "label": "Retained earnings",
            "mdrm": "RCON3632",
            "value_usd": 61059000
          },
          {
            "key": "aoci_usd",
            "label": "Accumulated other comprehensive income",
            "mdrm": "RCON3216",
            "value_usd": 0
          }
        ],
        "identity_balanced": true,
        "identity_delta_usd": 0,
        "liabilities": [
          {
            "key": "total_deposits_usd",
            "label": "Total deposits",
            "mdrm": "RCON2200",
            "value_usd": 2128004000
          },
          {
            "key": "borrowings_usd",
            "label": "Total borrowings",
            "mdrm": "RCON2800",
            "value_usd": 250000000
          },
          {
            "key": "other_liabilities_usd",
            "label": "Other liabilities",
            "mdrm": "RCON2930",
            "value_usd": 52478000
          }
        ],
        "report_form": "FFIEC 031",
        "reporting_period": "2026-03-31",
        "rounding_tolerance_usd": 1,
        "schedule": "RC",
        "total_assets_mdrm": "RCON2170",
        "total_assets_usd": 2672192000,
        "total_equity_capital_mdrm": "RCON3210",
        "total_equity_capital_usd": 241710000,
        "total_liabilities_and_equity_usd": 2672192000,
        "total_liabilities_mdrm": "RCON2948",
        "total_liabilities_usd": 2430482000,
        "xbrl_json_annex1_note": "MDRM concept codes above (RCON2170/RCON2948/RCON3210) align with the §13.13 xBRL-JSON export profile's Annex 1 FFIEC Call Report mapping; rendering to that profile is a separate exporter work unit, not performed by this kernel."
      }
    }
  }
},
    {
  "tool_id": "art-433-call-report-rcr-capital",
  "tool_version": "1.0.0",
  "display_name": "Call Report Schedule RC-R (Regulatory Capital) Mapper",
  "mcp_name": "map_call_report_schedule_rcr",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-433-call-report-rcr-capital.html",
  "description": "Maps caller-declared FFIEC Call Report (FFIEC 031) Schedule RC-R regulatory-capital components -- CET1, additional Tier 1, Tier 2 capital, total risk-weighted assets, total leverage exposure -- into the standard capital ratios (CET1, Tier 1, Total capital, supplementary leverage ratio) and the 2026-04-01 eSLR final rule's GSIB buffer requirement (§0.2), each checked against caller-declared, version-pinned minimums. Not a filer -- produces evidence artifacts and form-shaped totals only, never a submission. Capital-component and RWA values are caller-declared; this tool performs only ratio arithmetic and threshold comparison, never risk-weight calculation, exposure classification, or GSIB-status derivation. Feeds art-434 (Call Report edit-check gate) for cross-schedule validation against art-432 (Schedule RC). Not for Y-9C HC-R (see the separate Y-9C kernel).",
  "input_schema_ref": "chaingraph/art-433-call-report-rcr-capital.html#manifest",
  "consumes": [],
  "feeds": [
    "art-434-call-report-edit-check-gate"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c62ba6456819dce8756770a395024a9508cf9685dd9d3ca1409ebe2d6e01546c",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K+N2X+ehRuMDbJnSEeih/8X/4iQ9877jyqNMOrZtYz8nsk33dVA+9V51HWf0LHFyJYfNGmT8OzQG85LnG6CpsxoH/UtP4WeeWs3b2uyxM4lfOZVh0kd6xQYyFMeZ9FyDDOABv7va9Ys3o0i24+hXNotLHYf15yOw9lE/dP/pEwglNvQO1DTKr1zaLzPJvWY5IAIpOBydixM3FqSwOi+3CwRK0oJ/ysy+L8ttGYE/2lT6p1H1KSfxnTLG5+WkMXlGEKZxlTTb4tJNHlTttqoICdy49tJBv18TQEM4KV/QsDAYIjKag/+W6ZiI6e3GC1jQ9uqg0u+AjsokIZTUsnQiEg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c62ba6456819dce8756770a395024a9508cf9685dd9d3ca1409ebe2d6e01546c",
      "output": {
        "additional_tier1_capital_usd": 0,
        "boundary_note": "Capital component and RWA values are caller-declared; this kernel performs only ratio arithmetic and threshold comparison against caller-declared, version-pinned minimums. It does not calculate risk weights, classify exposures, or derive GSIB status.",
        "cet1_capital_usd": 186870000,
        "constants_version": "2026-07-23.basel3-standardized-v1",
        "entity_id": "FDIC-CERT-3510",
        "eslr": {
          "applicable": false,
          "buffer_pct": 0,
          "final_rule_citation": "eSLR final rule, published 2025-12-01, effective 2026-04-01 (§0.2)",
          "pass": true,
          "required_slr_pct": null
        },
        "is_gsib": false,
        "mdrm_note": "Schedule RC-R MDRM item prefixes vary by advanced vs. standardized approach and reporting vintage; capital-component field names here mirror the FDIC BankFind Suite mnemonics (RBCT1J tier1, RBCT2 tier2, RWAJT total RWA), which the FDIC itself derives from filed Call Report Schedule RC-R submissions.",
        "ratios": {
          "cet1_min_pct": 0.045,
          "cet1_pass": true,
          "cet1_ratio_pct": 0.121695,
          "slr_min_pct": 0.03,
          "slr_pass": true,
          "supplementary_leverage_ratio_pct": 0.069931,
          "tier1_min_pct": 0.06,
          "tier1_pass": true,
          "tier1_ratio_pct": 0.121695,
          "total_capital_min_pct": 0.08,
          "total_capital_pass": true,
          "total_capital_ratio_pct": 0.13194
        },
        "report_form": "FFIEC 031",
        "reporting_period": "2026-03-31",
        "schedule": "RC-R",
        "tier1_capital_usd": 186870000,
        "tier2_capital_usd": 15731000,
        "total_capital_usd": 202601000,
        "total_leverage_exposure_usd": 2672192000,
        "total_rwa_usd": 1535559000
      }
    }
  }
},
    {
  "tool_id": "art-434-call-report-edit-check-gate",
  "tool_version": "1.0.0",
  "display_name": "Call Report Published Edit-Check Gate",
  "mcp_name": "run_call_report_edit_checks",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-434-call-report-edit-check-gate.html",
  "description": "Runs a curated battery of FFIEC-style published Call Report edit checks -- balance-sheet identity, capital-stack ordering (CET1 <= Tier 1 <= Total capital), ratio-vs-component consistency, cross-schedule entity/period match -- against art-432 (Schedule RC) and art-433 (Schedule RC-R) output payloads, the same class of check FFIEC's own edit-check system runs against filed data before CDR publication. Emits a per-check pass/fail verdict list plus an overall gate_status (auto_pass | review_required) using the §27 Human Accountability gate-policy vocabulary, so this node can sit directly ahead of a §27 dual_control/review_required gate on downstream export or submission-evidence chains. Curated representative battery, not the FFIEC's full published edit-check catalog (thousands of checks) -- does not claim FFIEC edit-check completeness. Not a filer -- produces evidence artifacts only, never a submission.",
  "input_schema_ref": "chaingraph/art-434-call-report-edit-check-gate.html#manifest",
  "consumes": [
    "art-432-call-report-rc-balance-sheet",
    "art-433-call-report-rcr-capital"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:fc730e1410814863f534802d3bcd7d948ac232f8f1fb5ddcf9078e4c97dd075d",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "A6P6f1ZGWD/HB0Gdx9KrWt9QS7azrHTOdnaIuoAD634Zt6VWwTwVxqb1vrLMeI0zFW67hqSi0QxDosS2UCDhPBdZlDw44Yr316/5rgdVl4N6A5uqQlR+ruzCz+2ux02kIQrbr0uJ9BY61NtxnjKS9qAcGIcIPlp36a9fq5et8nwQZWFbWA71gTU+7KHLMnV/EOBBjgsZ54vsU5Oi4BnxVy9YX/n/+xUIzuxEKgy7DqFm+WpC0gA76pcK5B6VKOvgHfzixDid51izb34ERyRETWxaIUuQEFlM+CN4u9NmjSspZN7FsGROzRB0ywCsBnKqMPG5wk9ltNy+G6cppwJarA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:fc730e1410814863f534802d3bcd7d948ac232f8f1fb5ddcf9078e4c97dd075d",
      "output": {
        "all_fatal_passed": true,
        "check_count": 10,
        "checks": [
          {
            "description": "Total assets (RCON2170) equals Total liabilities (RCON2948) plus Total equity capital (RCON3210), within rounding tolerance.",
            "id": "EDIT-RC-01",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Total assets is non-negative.",
            "id": "EDIT-RC-02",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Total equity capital is non-negative.",
            "id": "EDIT-RC-03",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "CET1 capital does not exceed Tier 1 capital.",
            "id": "EDIT-RCR-01",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Tier 1 capital does not exceed Total capital.",
            "id": "EDIT-RCR-02",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Total risk-weighted assets is positive.",
            "id": "EDIT-RCR-03",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Reported CET1 ratio is arithmetically consistent with CET1 capital / total RWA.",
            "id": "EDIT-RCR-04",
            "passed": true,
            "severity": "warning"
          },
          {
            "description": "Reported total capital ratio is arithmetically consistent with Total capital / total RWA.",
            "id": "EDIT-RCR-05",
            "passed": true,
            "severity": "warning"
          },
          {
            "description": "Schedule RC and RC-R report the same entity_id.",
            "id": "EDIT-META-01",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Schedule RC and RC-R report the same reporting_period.",
            "id": "EDIT-META-02",
            "passed": true,
            "severity": "fatal"
          }
        ],
        "coverage_note": "Curated representative edit-check battery (balance identity, capital-stack ordering, ratio-vs-component consistency, cross-schedule entity/period match) -- not the FFIEC published edit-check catalog's full check count.",
        "entity_id": "FDIC-CERT-3510",
        "fatal_failure_count": 0,
        "gate_status": "auto_pass",
        "report_form": "FFIEC 031",
        "reporting_period": "2026-03-31",
        "rounding_tolerance_usd": 1,
        "warning_failure_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-435-bhc-schedule-hc-balance-sheet",
  "tool_version": "1.0.0",
  "display_name": "FR Y-9C Schedule HC (Consolidated Balance Sheet) Mapper",
  "mcp_name": "map_bhc_schedule_hc",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-435-bhc-schedule-hc-balance-sheet.html",
  "description": "Maps caller-declared FR Y-9C (Financial Statements for Holding Companies) Schedule HC line items -- cash, securities, loans and leases, other assets; deposits, borrowings, other liabilities; common stock, surplus, retained earnings, AOCI -- into Schedule HC totals (Total assets BHCK2170, Total liabilities BHCK2948, Total equity capital BHCK3210, real public MDRM item codes shared with the Call Report Schedule RC schema under the BHCK consolidated-holding-company prefix) and checks the HC balance-sheet identity within a caller-set rounding tolerance. Y-9C panel = top-tier bank holding companies with total consolidated assets >= $3B (§0.2). NO public XBRL edit taxonomy exists for Y-9C (FFIEC CDR taxonomy covers Call Reports 031/041/051 + UBPR only) -- edits are hand-encoded from FR Y-9C instruction text, not sourced from a machine-readable taxonomy. Schedule mapping logic mirrors art-432 (Call Report Schedule RC) 1:1; only the MDRM prefix (BHCK vs RCON) and report_form differ. Not a filer -- produces evidence artifacts and form-shaped totals only, never a submission. Line-item values are caller-declared from the holding company's own books; this tool performs only arithmetic aggregation and the identity check, never estimation or audit of individual line items. Feeds art-436 (Schedule HC-R capital).",
  "input_schema_ref": "chaingraph/art-435-bhc-schedule-hc-balance-sheet.html#manifest",
  "consumes": [],
  "feeds": [
    "art-436-bhc-schedule-hcr-capital"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:82f0207a25a6122e68a398fa7e274529843c39c73a82287c072e77a414b0e7fe",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EfwQbmAj6mNsQ3TtIKDAzv6PNRPiNcO9oyqYseccgHAV7tCzGVkDtBCjQtRdC/Wy2fWfvapcqhSPTCp/0jLYMiPAX6Va8Iz2+ZR+OoiNe/dDkD/ApW4ye6NhjW4eKM4YBLd59nalxPGPpTYfEdNhFRM8qdlDyd+m2stYjq8UgKYR1n7zUWBCZejd0zoXagdQtdQuE6U5bvQylL9d4NMS4QNafd15Mog3fCRWrgo6prNwYpi2JCaTTXvhRuzEKl/eAzxLrk3O/o8X/coz4D0zObs+jWOJIvFNoTcVjK4uxDEbNcIzV29U5TVTlO6ZjwxIxaadXzyheIJmv99bNPe2Ag==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:82f0207a25a6122e68a398fa7e274529843c39c73a82287c072e77a414b0e7fe",
      "output": {
        "assets": [
          {
            "key": "cash_and_due_from_usd",
            "label": "Cash and balances due from depository institutions",
            "mdrm": "BHCK0071",
            "value_usd": 226409000
          },
          {
            "key": "securities_htm_usd",
            "label": "Held-to-maturity securities",
            "mdrm": "BHCK1754",
            "value_usd": 0
          },
          {
            "key": "securities_afs_usd",
            "label": "Available-for-sale securities",
            "mdrm": "BHCK1773",
            "value_usd": 864213000
          },
          {
            "key": "loans_and_leases_net_usd",
            "label": "Total loans and leases, net of unearned income and allowance",
            "mdrm": "BHCK2122",
            "value_usd": 1191560000
          },
          {
            "key": "bank_premises_usd",
            "label": "Bank premises and fixed assets",
            "mdrm": "BHCK2145",
            "value_usd": 21670000
          },
          {
            "key": "other_assets_usd",
            "label": "Other assets",
            "mdrm": "BHCK2160",
            "value_usd": 368340000
          }
        ],
        "boundary_note": "Line-item values are caller-declared from the holding company's own consolidated books; this kernel performs only the arithmetic aggregation into Schedule HC totals and the Total assets == Total liabilities + Total equity capital identity check. It does not derive, estimate, or audit any individual line item.",
        "entity_id": "RSSD-1073757",
        "equity": [
          {
            "key": "common_stock_usd",
            "label": "Common stock",
            "mdrm": "BHCK3230",
            "value_usd": 3020000
          },
          {
            "key": "surplus_usd",
            "label": "Surplus",
            "mdrm": "BHCK3839",
            "value_usd": 177631000
          },
          {
            "key": "retained_earnings_usd",
            "label": "Retained earnings",
            "mdrm": "BHCK3632",
            "value_usd": 61059000
          },
          {
            "key": "aoci_usd",
            "label": "Accumulated other comprehensive income",
            "mdrm": "BHCK3216",
            "value_usd": 0
          }
        ],
        "identity_balanced": true,
        "identity_delta_usd": 0,
        "liabilities": [
          {
            "key": "total_deposits_usd",
            "label": "Total deposits",
            "mdrm": "BHCK2200",
            "value_usd": 2128004000
          },
          {
            "key": "borrowings_usd",
            "label": "Total borrowings",
            "mdrm": "BHCK2800",
            "value_usd": 250000000
          },
          {
            "key": "other_liabilities_usd",
            "label": "Other liabilities",
            "mdrm": "BHCK2930",
            "value_usd": 52478000
          }
        ],
        "report_form": "FR Y-9C",
        "reporting_period": "2026-03-31",
        "rounding_tolerance_usd": 1,
        "schedule": "HC",
        "taxonomy_note": "No public XBRL edit taxonomy exists for FR Y-9C (§0.2); this mapping is hand-encoded from FR Y-9C instruction text, not sourced from a machine-readable taxonomy. Panel: top-tier bank holding companies, total consolidated assets >= $3B.",
        "total_assets_mdrm": "BHCK2170",
        "total_assets_usd": 2672192000,
        "total_equity_capital_mdrm": "BHCK3210",
        "total_equity_capital_usd": 241710000,
        "total_liabilities_and_equity_usd": 2672192000,
        "total_liabilities_mdrm": "BHCK2948",
        "total_liabilities_usd": 2430482000
      }
    }
  }
},
    {
  "tool_id": "art-436-bhc-schedule-hcr-capital",
  "tool_version": "1.0.0",
  "display_name": "FR Y-9C Schedule HC-R (Regulatory Capital) Calculator",
  "mcp_name": "map_bhc_schedule_hcr",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-436-bhc-schedule-hcr-capital.html",
  "description": "Given caller-supplied CET1/Tier1/Tier2 capital components and risk-weighted assets, computes FR Y-9C Schedule HC-R standard capital ratios plus the supplementary leverage ratio (SLR), including the enhanced-SLR (eSLR) buffer effective 2026-04-01 (§0.2), for top-tier bank holding companies (Y-9C panel = total consolidated assets >= $3B). Schedule mapping and ratio-calculation logic mirrors art-433 (Call Report Schedule RC-R) 1:1 -- same thresholds, same eSLR buffer treatment; only report_form and entity type (consolidated holding company vs insured depository institution) differ. NO public XBRL edit taxonomy exists for Y-9C (§0.2) -- capital-component field names mirror the FR Y-9/FFIEC BHCK consolidated mnemonic convention, hand-encoded from FR Y-9C instruction text. BOUNDARY: capital component and RWA values are caller-declared; this tool performs only ratio arithmetic and threshold comparison against caller-declared, version-pinned minimums -- it does not calculate risk weights, classify exposures, or derive GSIB status. Not a filer -- produces evidence artifacts only, never a submission.",
  "input_schema_ref": "chaingraph/art-436-bhc-schedule-hcr-capital.html#manifest",
  "consumes": [
    "art-435-bhc-schedule-hc-balance-sheet"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3eb8ae80e279ce36b74155e260a9f47adda9dd53dc62f3668ff6dd3a1e90b295",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IakOaYhVGA/uWdUba/y646CmlpLsA/VxZ2vmAZvkBeItrI9Dt/CKxZl7psv1k+rJv5lp9clwpciQtItSxAw/WSh+QDinEV0jwy/S3ojBe6Sdg5EVbJtSvM394eW7ttIQErbbSscNaYZEG5le2mt3Z3veT+m48iPlVw4isDgPEn4rxA83c2kznJqdXknu7zfSwQ8wYHs1oQkaE2kB9yIo+Bu9K2ko4aAff+QcThEX6lUGVwD2c9VXtGuYWsC/ADLQAkfe/yuV8bHuM0hyad76ejcMrkmG4F+o6PbNbLPd5MUYrTLINzGSf0dc958NaSrvTNyrYdYYQrLMJgrcInDQcg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3eb8ae80e279ce36b74155e260a9f47adda9dd53dc62f3668ff6dd3a1e90b295",
      "output": {
        "additional_tier1_capital_usd": 10000000,
        "boundary_note": "Capital component and RWA values are caller-declared; this kernel performs only ratio arithmetic and threshold comparison against caller-declared, version-pinned minimums. It does not calculate risk weights, classify exposures, or derive GSIB status.",
        "cet1_capital_usd": 220000000,
        "constants_version": "basel3-std-2026.1",
        "entity_id": "RSSD-1073757",
        "eslr": {
          "applicable": false,
          "buffer_pct": 0,
          "final_rule_citation": "eSLR final rule, published 2025-12-01, effective 2026-04-01 (§0.2)",
          "pass": true,
          "required_slr_pct": null
        },
        "is_gsib": false,
        "ratios": {
          "cet1_min_pct": 0.045,
          "cet1_pass": true,
          "cet1_ratio_pct": 0.122222,
          "slr_min_pct": 0.03,
          "slr_pass": true,
          "supplementary_leverage_ratio_pct": 0.085185,
          "tier1_min_pct": 0.06,
          "tier1_pass": true,
          "tier1_ratio_pct": 0.127778,
          "total_capital_min_pct": 0.08,
          "total_capital_pass": true,
          "total_capital_ratio_pct": 0.136111
        },
        "report_form": "FR Y-9C",
        "reporting_period": "2026-03-31",
        "schedule": "HC-R",
        "taxonomy_note": "No public XBRL edit taxonomy exists for FR Y-9C (§0.2); capital-component field names mirror the FR Y-9/FFIEC BHCK consolidated mnemonic convention, hand-encoded from FR Y-9C instruction text.",
        "tier1_capital_usd": 230000000,
        "tier2_capital_usd": 15000000,
        "total_capital_usd": 245000000,
        "total_leverage_exposure_usd": 2700000000,
        "total_rwa_usd": 1800000000
      }
    }
  }
},
    {
  "tool_id": "art-437-fr2052a-inflow-outflow-classifier",
  "tool_version": "1.0.0",
  "display_name": "FR 2052a Inflow/Outflow Bucket Classifier",
  "mcp_name": "compute_fr2052a_inflow_outflow_classification",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-437-fr2052a-inflow-outflow-classifier.html",
  "description": "FR 2052a complex-institution liquidity monitoring filing-layer kernel, scoped to the inflow/outflow section: product/maturity-bucket classification against a caller-supplied Appendix IV-style boundary table (versioned policy input, not hardcoded), intercompany elimination (excluded from external aggregation, reported separately), and form-shaped JSON export by bucket (inflow/outflow/net). A bucket override without a reason_code is flagged -- the row-level basis for a separate signed §27 human_accountability_record, not minted by this kernel. Not a filing tool -- evidence artifact and form-shaped export only, never regulator-submittable. Not check_conforming_loan_limit or a Call Report/Y-9C schedule kernel.",
  "input_schema_ref": "chaingraph/art-437-fr2052a-inflow-outflow-classifier.html#manifest",
  "deadline": null,
  "deadline_note": "FR 2052a: $100B panel, 18 daily / 23 monthly filers, deadline 3:00pm ET (FR notice 2025-02-07).",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:e6b15395a2f44a43b2968b7f10f6d7ef12137cd68b1a0ff292e5031b775f4f97",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Kh2K0VH45aIISbOROXZ/16Hg7Agd3nyGjzFvKkmazR4LRFBkTiqZ54nfvCMuOD1AM7MH4XffIGDQ6U8ZXBovGA9E6FgPYbR/9sZufwkO4EjsQ1xaozU6wCY33e6WB2haCMb3pBGBv9Z4T3vOd/3FwuQYmMlLsPJMce15S+zTtkYc4JNCvt5s52z1/dx5/eFTOW1TeSvAhTXF463PGTdyEAzbTDP0oggn7HaeILAdotJmLpadzgxGteC6RC5j0r3GKvsFlitfxlY1Seaqc+AohwJwDYKFtTy7GXNDDashlikqn+CthNJrYrVpt2OvdhbkUVuysWmmVP2RSpiUM8cEHQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e6b15395a2f44a43b2968b7f10f6d7ef12137cd68b1a0ff292e5031b775f4f97",
      "output": {
        "boundary_table_version": "2026-07-01",
        "elimination_total_musd": 300,
        "form_2052a": [
          {
            "bucket": "Overnight",
            "inflow_musd": 1200,
            "net_musd": 1200,
            "outflow_musd": 0
          },
          {
            "bucket": "31-90 days",
            "inflow_musd": 650,
            "net_musd": -250,
            "outflow_musd": 900
          },
          {
            "bucket": "2-30 days",
            "inflow_musd": 0,
            "net_musd": -400,
            "outflow_musd": 400
          }
        ],
        "note": "Product/maturity-bucket classification against a versioned Appendix IV-style boundary table (policy input); an overridden bucket without a reason_code is flagged and is the row-level basis for a separate signed §27 human_accountability_record (this kernel does not mint that record). Intercompany rows are eliminated from the external aggregation and reported only in elimination_total_musd. Evidence artifact and form-shaped export only -- not a filing, not regulator-submittable.",
        "override_count": 0,
        "override_missing_reason_count": 0,
        "row_count": 5,
        "rows": [
          {
            "amount_musd": 1200,
            "bucket": "Overnight",
            "flow_type": "inflow",
            "is_intercompany": false,
            "maturity_days": 1,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r0",
            "table_bucket": "Overnight"
          },
          {
            "amount_musd": 900,
            "bucket": "31-90 days",
            "flow_type": "outflow",
            "is_intercompany": false,
            "maturity_days": 45,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r1",
            "table_bucket": "31-90 days"
          },
          {
            "amount_musd": 400,
            "bucket": "2-30 days",
            "flow_type": "outflow",
            "is_intercompany": false,
            "maturity_days": 7,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r2",
            "table_bucket": "2-30 days"
          },
          {
            "amount_musd": 650,
            "bucket": "31-90 days",
            "flow_type": "inflow",
            "is_intercompany": false,
            "maturity_days": 90,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r3",
            "table_bucket": "31-90 days"
          },
          {
            "amount_musd": 300,
            "bucket": "2-30 days",
            "flow_type": "outflow",
            "is_intercompany": true,
            "maturity_days": 30,
            "override_applied": false,
            "override_reason_code": null,
            "row_id": "r4",
            "table_bucket": "2-30 days"
          }
        ],
        "total_inflow_musd": 1850,
        "total_net_musd": 550,
        "total_outflow_musd": 1300
      }
    }
  }
},
    {
  "tool_id": "art-438-eval-attestation-receipt-composer",
  "tool_version": "1.0.0",
  "display_name": "Eval Attestation Receipt Composer",
  "mcp_name": "compose_eval_attestation_receipt",
  "mandate_type": "governance_mandate",
  "wave": 72,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-438-eval-attestation-receipt-composer.html",
  "description": "Hashes a third-party eval log (e.g. an Inspect AI transcript) and binds it into a receipt that a compiled Work Mandate (art-274) can reference. VERIFY-ONLY: never executes, re-runs, or re-scores the eval -- composes shipped §4 hash, §16 signature, and §20 anchor carriers around a digest the caller already produced. claim_strength is the weakest-link status across the eval log hash and the mandate reference, never inflated by one strong leg covering a missing other.",
  "input_schema_ref": "chaingraph/art-438-eval-attestation-receipt-composer.html#manifest",
  "deadline": null,
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4dd15343a439bc1a1a1212c58f21fed27dd330d9f8cf4476bfdd468f67a7624e",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "A+o1yff4OzGcFAtOODaUeOkI9mk/ObxCUvqtIL8PtUgNsTyU2oZSeTQvKtUrDSDjNk2uUPplSFord6pK0KUWWyU5FsM0e9PNZA+A/SOpno6FRnBtXqJ9q4lZguOwrxKsHGYTu0KKZ3wV6fPLGievwtubAug5YwrCRLdTt24uYCAELSIOo/ZlgdCi73+zmcfdBs2fC16OvfQx4TLD5VVJHS5pT5a1lgdB46Zwl1/r9Wk+JJVJNa23I+JimujHtNMEAlzNxuyovEsch21rPof56RAVIRdxKj3Mxt7AhDMplpsbkJdMrOBWNcHWV+94mrDNQt8n4sl4RWmXCFivrAndQQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4dd15343a439bc1a1a1212c58f21fed27dd330d9f8cf4476bfdd468f67a7624e",
      "output": {
        "attestation_determination": "ATTESTED",
        "claim_strength": "mandate-bound",
        "eval_format": "inspect_ai_eval_log",
        "eval_id": "inspect-eval-2026-07-23-001",
        "eval_log_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
        "mandate_reference": {
          "policy_id": "governance-policy-eval-gate-v1",
          "work_mandate_hash": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
        },
        "not_proven": [
          {
            "detail": "This receipt attests only that a specific eval log digest was produced; it does not re-run, re-score, or otherwise validate the underlying evaluation.",
            "item": "Eval correctness or scoring validity"
          },
          {
            "detail": "The hash covers exactly the log bytes supplied by the caller. A truncated, redacted, or cherry-picked log hashes correctly too.",
            "item": "Eval log completeness"
          },
          {
            "detail": "mandate_reference records a pointer to a compiled Work Mandate (art-274); whether the eval actually satisfies that mandate's policy conditions is a separate judgment, not made by this kernel.",
            "item": "Mandate satisfaction"
          },
          {
            "detail": "A §16 signature attests the artifact at generated_at; a §20 anchor (if attached) proves inclusion by a time. Neither proves the eval log is still current.",
            "item": "Currency beyond generation time"
          }
        ],
        "verify_instructions": "Recompute SHA-256 of the referenced inspect_ai_eval_log eval log bytes and confirm it equals sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa; this receipt is VERIFY-ONLY and does not re-run, re-score, or grade the eval."
      }
    }
  }
},
    {
  "tool_id": "art-439-y14-capital-worksheet-rollforward",
  "tool_version": "1.0.0",
  "display_name": "FR Y-14 Capital Worksheet Roll-Forward & Cross-Check",
  "mcp_name": "rollforward_y14_capital_worksheet",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-439-y14-capital-worksheet-rollforward.html",
  "description": "Rolls forward a caller-declared FR Y-14A/Q capital worksheet (CET1, additional Tier 1, Tier 2) from beginning balance through period additions and deductions to an ending balance, applies a caller-declared published-scenario adjustment (e.g. a Federal Reserve DFAST/CCAR severely-adverse published-scenario delta), and cross-checks the computed ending total capital against a caller-declared reported total-capital figure sourced from another schedule (e.g. FR Y-9C Schedule HC-R, art-436) within a caller-declared tolerance. Not a filer -- produces evidence artifacts and worksheet totals only, never a submission. All roll-forward line items, the scenario adjustment amount, and the cross-check reference figure are caller-declared; this tool performs only roll-forward arithmetic (beginning + additions - deductions + scenario adjustment = ending) and a tolerance comparison, never capital-component classification, scenario modeling, or projection -- firm capital-planning models (PPNR, loss forecasts, scenario translation into balance-sheet impact) stay strictly outside this boundary. Complements art-436 (BHC Schedule HC-R capital) as an independent roll-forward/cross-check, not a replacement for it.",
  "input_schema_ref": "chaingraph/art-439-y14-capital-worksheet-rollforward.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c6c4a22b53316a6e6ccebc23773eb8e8509b3aea2dd9591b8ac65c6cd03e31db",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AQnuzA3ytmdw3CeMHmBidk0kAiaHoXKE/cjuk5FIr/0Uu0nXkTCF7Vv6cIQuuO4J3O7+SHmbfUwfqCqLXYUNgAJb/sa/l1WT50TGpuxSieZdJg2z6dSs2P0eiEobAvjqHRlmvuE6t84H72EnZ/IDp1IpnPy9rP7n7GRuBwAMkkIDrxes+7PfbOlfIjUBHuLLBWNymO5jjOa5maHm1XuAXjAR7wNIaHvEAZx5mdGEpjNSAZim+nZoZl5kB9ybmkCAMF9gAuxe7q852IZQxd2UXEWp4RMjQGUtQnJ6ilZsdAURZw4tbnwDUtvwp17ZTi11HqngSJdb2hpg2vG9FlJChw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c6c4a22b53316a6e6ccebc23773eb8e8509b3aea2dd9591b8ac65c6cd03e31db",
      "output": {
        "boundary_note": "Every roll-forward line item, the scenario adjustment amount, and the cross-check reference figure are caller-declared; this kernel performs only roll-forward arithmetic and a tolerance comparison. It does not model capital plans, forecast PPNR/losses, or translate a scenario into balance-sheet impact -- firm capital-planning models stay strictly outside this boundary.",
        "constants_version": "2026-07-23.y14-capital-rollforward-v1",
        "cross_check": {
          "delta_usd": 0,
          "pass": true,
          "reported_total_capital_usd": 209870000,
          "tolerance_usd": 1000
        },
        "ending_tier1_capital_usd": 194870000,
        "ending_total_capital_usd": 209870000,
        "entity_id": "FDIC-CERT-3510",
        "published_scenario": {
          "citation": "12 CFR 252.146; FRB DFAST 2026 Scenarios, published 2026-02-06",
          "name": "2026 Federal Reserve Severely Adverse Scenario"
        },
        "report_form": "FR Y-14A/Q",
        "reporting_period": "2026-03-31",
        "rollforward": {
          "at1": {
            "additions_usd": 0,
            "beginning_usd": 8000000,
            "deductions_usd": 0,
            "ending_usd": 8000000,
            "scenario_adjustment_usd": 0
          },
          "cet1": {
            "additions_usd": 9000000,
            "beginning_usd": 180000000,
            "deductions_usd": 2130000,
            "ending_usd": 186870000,
            "scenario_adjustment_usd": 0
          },
          "t2": {
            "additions_usd": 1000000,
            "beginning_usd": 14000000,
            "deductions_usd": 0,
            "ending_usd": 15000000,
            "scenario_adjustment_usd": 0
          }
        },
        "worksheet": "Regulatory Capital Instruments and Components Roll-Forward"
      }
    }
  }
},
    {
  "tool_id": "art-442-nmd-behavioral-repricing-mapper",
  "tool_version": "1.0.0",
  "display_name": "NMD Behavioral Repricing Mapper",
  "mcp_name": "map_nmd_behavioral_repricing",
  "mandate_type": "analytics_mandate",
  "wave": 73,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-442-nmd-behavioral-repricing-mapper.html",
  "description": "OCC 2010-1 Interagency Advisory on IRR: maps non-maturity deposit (NMD) segment balances into a bucketed net-repricing-gap schedule using a caller-declared behavioral allocation (per-bucket repricing fractions) and a deposit beta -- never a baked-in regulatory decay curve. Feeds directly into art-369's repricing_gaps input, which art-369 itself requires as a GIVEN and does not derive. Distinct from art-369 (Rate Shock Ladder Replay), which sweeps shocks over an already-bucketed gap schedule; this kernel builds that schedule from underlying deposit balances. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-442-nmd-behavioral-repricing-mapper.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:388900a314f4d9e05be9bfcf9909a1b89a67b9c482c057d9434cb200f7bef94d",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LH1x6Zs6trhiGPJU4cM/CFCSoYjofPXFQRWYa5IEHr4J1YFUnLGb/NpKKsyE/le9WKx4bfGC5gaIzQQkr4HIIybZJ/77jRGJb4oJg2p4tLvNQH9fTXnTXwulLNyM1wujI9LR+PpdBPTN3AaZK5v1RoYSCNqfuSTVeKsKMNG1QX0qiTslJuvV5mOzAYd/DNIRuYd65VUUD4oRqkGF4n82ThAE1RvXCvYsWS/H3nTwN7fAA/hyf4i70rSSmB2zRoVfJ26pgvQJkrOD6SYssR4IGOjxdVTeW9jaVGMA1dkAUNEwGuHwvHDDGR6m+hY9NTNP9Fj7V8DUyooC3T/r3/NFIQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:388900a314f4d9e05be9bfcf9909a1b89a67b9c482c057d9434cb200f7bef94d",
      "output": {
        "buckets_used": [
          "on_1m",
          "m1_y1",
          "y1_y3",
          "y3_y5",
          "y5_y10",
          "y10_plus"
        ],
        "convention": "OCC 2010-1 NMD core/volatile behavioral repricing mapper (caller-declared allocation)",
        "net_repricing_gap": {
          "m1_y1": -150000,
          "on_1m": -150000,
          "y10_plus": -80000,
          "y1_y3": -20000,
          "y3_y5": -40000,
          "y5_y10": -60000
        },
        "segment_results": [
          {
            "allocation_sum": 1,
            "balance": 1000000,
            "beta": 0.2,
            "bucket_gaps": {
              "m1_y1": 0,
              "on_1m": 0,
              "y10_plus": -80000,
              "y1_y3": -20000,
              "y3_y5": -40000,
              "y5_y10": -60000
            },
            "name": "checking_core",
            "rate_sensitive_balance": 200000,
            "sums_to_one": true
          },
          {
            "allocation_sum": 1,
            "balance": 500000,
            "beta": 0.6,
            "bucket_gaps": {
              "m1_y1": -150000,
              "on_1m": -150000,
              "y10_plus": 0,
              "y1_y3": 0,
              "y3_y5": 0,
              "y5_y10": 0
            },
            "name": "savings_volatile",
            "rate_sensitive_balance": 300000,
            "sums_to_one": true
          }
        ],
        "total_balance": 1500000,
        "total_net_repricing_gap": -500000,
        "total_rate_sensitive_balance": 500000,
        "weighted_avg_beta": 0.33
      }
    }
  }
},
    {
  "tool_id": "art-443-irrbb-basis-risk-nii-shock-calculator",
  "tool_version": "1.0.0",
  "display_name": "IRRBB Basis-Risk NII Shock Calculator",
  "mcp_name": "calculate_basis_risk_nii_shock",
  "mandate_type": "analytics_mandate",
  "wave": 73,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-443-irrbb-basis-risk-nii-shock-calculator.html",
  "description": "Comptroller's Handbook IRR basis-risk delta-NII calculator: sweeps a single reference-rate shock across multiple priced indices (Prime, SOFR, Fed Funds, CD portfolio, etc.), each with a caller-declared historical beta vs the reference rate, and isolates the incremental delta-NII from indices not moving in lockstep. Distinct from art-369 (Rate Shock Ladder Replay), whose parallel-curve convention assumes one shock moves the entire gap schedule uniformly and cannot see basis risk. Complements art-369 and art-442 as the third leg of a full NII/EVE-shock toolkit. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-443-irrbb-basis-risk-nii-shock-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:6a53b2b9e42a854d9801a6759fcc8e62fbd7ee5f0585ea83b9c43165bf2d9bcc",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CiP82+xLKQZXRRU84ZJ1OrGN5ABOnuE7DB0lGNK8dhMiQS+bglGG4KoGvRew9yvm3+QeJiK/gm1yGP0F6RP4dgKQBIg8t/Ip4ToVCe7l6XZS7ikDQeYxDrlVERxbesukG4n2xbeW5hC/RqiUDlic7NIaIQA0qJM8fsr6N2UoHBYqfdQTH/xrSDcd6Kk6wF1geCTKdmjKt3W3lve0dOQscxZhhICcc84WWbgiQEnJjz/IyGBTQk/DPKJzE1x5x1FhJJIinMLf51g/PPek/Tqn4eP9x+KG2LFpnvgf3Cb6hPYQ21Sk2wCSoj087AteSiwZsBl97m6yGpwjCM+3mG708Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:6a53b2b9e42a854d9801a6759fcc8e62fbd7ee5f0585ea83b9c43165bf2d9bcc",
      "output": {
        "basis_risk_delta_nii": 4500,
        "basis_risk_pct_of_parallel": 0.3,
        "convention": "Comptroller's Handbook IRR basis-risk delta-NII (per-index beta vs single reference shock)",
        "horizon_months": 12,
        "index_results": [
          {
            "asset_balance": 2000000,
            "beta_vs_reference": 1,
            "index_name": "prime",
            "index_shock_bps": 100,
            "liability_balance": 0,
            "net_exposure": 2000000,
            "nii_contribution": 20000
          },
          {
            "asset_balance": 500000,
            "beta_vs_reference": 0.9,
            "index_name": "sofr",
            "index_shock_bps": 90,
            "liability_balance": 0,
            "net_exposure": 500000,
            "nii_contribution": 4500
          },
          {
            "asset_balance": 0,
            "beta_vs_reference": 0.5,
            "index_name": "cd_portfolio",
            "index_shock_bps": 50,
            "liability_balance": 1000000,
            "net_exposure": -1000000,
            "nii_contribution": -5000
          }
        ],
        "is_material": true,
        "material_threshold_pct": 0.1,
        "parallel_delta_nii": 15000,
        "reference_shock_bps": 100,
        "total_net_exposure": 1500000,
        "total_nii_contribution": 19500
      }
    }
  }
},
    {
  "tool_id": "art-444-collateral-haircut-engine",
  "tool_version": "1.0.0",
  "display_name": "Collateral Haircut Engine (Basel CRE22)",
  "mcp_name": "compute_basel_haircut_adjusted_exposure",
  "mandate_type": "regulatory_reporting",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-444-collateral-haircut-engine.html",
  "description": "Basel CRE22 comprehensive-approach collateral haircut engine for counterparty credit risk: applies a caller-supplied, versioned supervisory haircut table (policy input, not hardcoded) to each collateral item's asset class/maturity bucket, scales for a non-standard holding period via the CRE22.68 square-root-of-time rule, adds an FX-mismatch haircut where collateral currency differs from exposure currency, and computes net exposure E* = max(0, E*(1+He) - sum(C*(1-Hc-Hfx))). An item haircut override without a reason_code is flagged -- the item-level basis for a separate signed §27 human_accountability_record, not minted by this kernel. An unmatched asset_class/maturity_bucket defaults to a conservative 100% haircut, flagged, never silently valued. Deterministic per-item haircut application and summation only -- no collateral-to-exposure allocation/optimization solver. Not calculate_repo_haircut (508, Canton 24/7 timing-gap-specific SFT calculator) or compute_stock_token_collateral_haircut (art-320, RHC liquidation-risk layering) -- this is the generic Basel comprehensive-approach net-exposure engine across asset classes and currencies. Not a capital-return filing tool -- evidence artifact only, never regulator-submittable.",
  "input_schema_ref": "chaingraph/art-444-collateral-haircut-engine.html#manifest",
  "deadline": null,
  "deadline_note": "Basel CRE22 comprehensive approach for financial collateral, standardised supervisory haircuts (BCBS d424 CRE22.68 as implemented via 12 CFR 217 Subpart D / EU CRR2 Art 224) -- ongoing capital-treatment standard, no filing deadline.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:1d708d8172b54b003ff2da60df4711a8999f6e0d8f327a28ef3538e1eae84cb7",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IoPY4tVmqw8IW9flqUbru2y89di9DnEkzpYJVM50rscpdAYFVayv/XSxzN1PZYHHDQjIAcwmmaMGWxIEvKvwpS3N7HKhPRdl44f/+pQgAjZk3OK0KcgpI1IG0nQmTtm5B543NZitCuyzEewTQNWPJp+jXQqv6bK7Zdn+UZllgtMN596DmPlVBYOdoUs3Fn0JWBmX8Lv8I7eRNYlyJigihw+li50sjLQ05j/A6wBsnEaTeFvA34Gl1XksSnW7uPOsCDIhiyVUtSQi6Bde6T6i5FKa/t13DVjtsIVb7VPApnYbHsRmO9M0F3P4daJV6E6Dbv1TDy1BP5XmqgfBc/7hgg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:1d708d8172b54b003ff2da60df4711a8999f6e0d8f327a28ef3538e1eae84cb7",
      "output": {
        "collateral_adjusted_total": 103000000,
        "collateral_items": [
          {
            "adjusted_value": 58800000,
            "asset_class": "sovereign_aaa_aa",
            "combined_haircut_pct": 2,
            "currency": "USD",
            "currency_mismatch": false,
            "fx_haircut_scaled_pct": 0,
            "haircut_pct": 2,
            "haircut_scaled_pct": 2,
            "item_id": "c0",
            "market_value": 60000000,
            "maturity_bucket": "1-5y",
            "override_applied": false,
            "override_reason_code": null,
            "table_haircut_pct": 2,
            "unclassified": false
          },
          {
            "adjusted_value": 28800000,
            "asset_class": "corporate_aaa_a",
            "combined_haircut_pct": 4,
            "currency": "USD",
            "currency_mismatch": false,
            "fx_haircut_scaled_pct": 0,
            "haircut_pct": 4,
            "haircut_scaled_pct": 4,
            "item_id": "c1",
            "market_value": 30000000,
            "maturity_bucket": "1-5y",
            "override_applied": false,
            "override_reason_code": null,
            "table_haircut_pct": 4,
            "unclassified": false
          },
          {
            "adjusted_value": 15400000,
            "asset_class": "equity_main_index",
            "combined_haircut_pct": 23,
            "currency": "EUR",
            "currency_mismatch": true,
            "fx_haircut_scaled_pct": 8,
            "haircut_pct": 15,
            "haircut_scaled_pct": 15,
            "item_id": "c2",
            "market_value": 20000000,
            "maturity_bucket": null,
            "override_applied": false,
            "override_reason_code": null,
            "table_haircut_pct": 15,
            "unclassified": false
          }
        ],
        "exposure_adjusted": 100000000,
        "exposure_amount": 100000000,
        "exposure_asset_class": "cash",
        "exposure_currency": "USD",
        "exposure_haircut_scaled_pct": 0,
        "haircut_table_version": "2026-07-01",
        "holding_period_days": 10,
        "item_count": 3,
        "net_exposure": 0,
        "note": "Basel CRE22 comprehensive-approach standardized supervisory haircuts (versioned table = policy input), scaled to the supplied holding period via the square-root-of-time rule. An overridden item haircut without a reason_code is flagged and is the item-level basis for a separate signed §27 human_accountability_record (this kernel does not mint that record). An unmatched asset_class/maturity_bucket defaults to a conservative 100% haircut, flagged, never silently valued. No allocation/optimization across collateral items -- deterministic per-item haircut application and summation only. Evidence artifact only -- not a capital-return filing, never regulator-submittable.",
        "override_count": 0,
        "override_missing_reason_count": 0,
        "time_scale_factor": 1,
        "unclassified_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-445-credit-concentration-topn-sector",
  "tool_version": "1.0.0",
  "display_name": "Credit Concentration Top-N / Sector Checker",
  "mcp_name": "check_credit_concentration_topn_sector",
  "mandate_type": "analytics_mandate",
  "wave": 72,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-445-credit-concentration-topn-sector.html",
  "description": "Credit-concentration screen over a flat exposure list (name, sector, amount): returns the top-N single-name exposures by amount, a per-sector rollup, single-name and sector Herfindahl-Hirschman Index (0-10000 scale), and a breach list against caller-declared single-name and sector limit percentages. Concentration limits are your own institution's risk-appetite policy, not a fixed regulatory threshold, so nothing is baked in. Distinct from the shipped IRRBB/NII shock kernels (art-183/art-185/art-369), which measure rate-risk exposure rather than name/sector diversification. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-445-credit-concentration-topn-sector.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2c48c891970145492a64a3005f4756cbe485a5a8f04738cc43b59eea9453bb0b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "E4/jCtDAgTqNvu0oACCPYNBg1ktm7C+e+4mbHSlu3XgR0LJqJ/A9HAnFWghTfnLD1Vb+oMGWp8K7RNOMsEYYyisbxg6mZavHyYhsWvUy/62gZ2V4evhniw9bAsg+jxt1DvLixDzotbqxD5LBZklEY/9yONshg///lhxDMebS4uwaEOiEcbsz7tA2EFlLLoyN5Hvk4TngebmUj2QfNtIUyyOw6h6KDLQi6Nqe7/zscurmNjZCT0n9RXVQlDFC2/oZBH3TOE8vCjqZF0lGF3bZHjo6zKJ2xZbkIsJMbCeYdbUdiUSA7HF/cLR1q223cKBoPWeh4VQ6cUwulM22TGJHcg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2c48c891970145492a64a3005f4756cbe485a5a8f04738cc43b59eea9453bb0b",
      "output": {
        "portfolio_total": 6000000,
        "sector_breaches": [
          {
            "pct_of_portfolio": 50,
            "sector": "Energy"
          },
          {
            "pct_of_portfolio": 33.33,
            "sector": "Retail"
          }
        ],
        "sector_hhi": 3755.56,
        "sector_limit_pct": 25,
        "sector_totals": [
          {
            "amount": 3000000,
            "pct_of_portfolio": 50,
            "sector": "Energy"
          },
          {
            "amount": 2000000,
            "pct_of_portfolio": 33.33,
            "sector": "Retail"
          },
          {
            "amount": 600000,
            "pct_of_portfolio": 10,
            "sector": "Healthcare"
          },
          {
            "amount": 400000,
            "pct_of_portfolio": 6.67,
            "sector": "Tech"
          }
        ],
        "single_name_breaches": [
          {
            "name": "C",
            "pct_of_portfolio": 41.67
          },
          {
            "name": "A",
            "pct_of_portfolio": 20
          },
          {
            "name": "B",
            "pct_of_portfolio": 13.33
          }
        ],
        "single_name_hhi": 2527.78,
        "single_name_limit_pct": 10,
        "top_n": 3,
        "top_n_exposures": [
          {
            "amount": 2500000,
            "name": "C",
            "pct_of_portfolio": 41.67,
            "sector": "Energy"
          },
          {
            "amount": 1200000,
            "name": "A",
            "pct_of_portfolio": 20,
            "sector": "Retail"
          },
          {
            "amount": 800000,
            "name": "B",
            "pct_of_portfolio": 13.33,
            "sector": "Retail"
          }
        ],
        "worst_sector": "Energy",
        "worst_single_name": "C"
      }
    }
  }
},
    {
  "tool_id": "art-446-counterparty-internal-limit-check",
  "tool_version": "1.0.0",
  "display_name": "Counterparty Internal Limit Check",
  "mcp_name": "compute_counterparty_limit_check",
  "mandate_type": "compliance_mandate",
  "wave": 70,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-446-counterparty-internal-limit-check.html",
  "description": "Counterparty internal credit-limit check: compares each counterparty's caller-supplied current exposure against its board-approved internal limit line (settlement, pre-settlement/PFE, or aggregate limit type), computes utilization percent and headroom, and flags each counterparty WITHIN_LIMIT, WARNING (above the caller-set soft-warning threshold, e.g. 90% of the limit), or BREACH (exposure exceeds the approved limit). This is a deterministic point-in-time check against internally governed limit lines -- distinct from the Basel/Reg-YY regulatory single-counterparty threshold check (art-425) -- and is NOT a real-time exposure monitor: no live feed, no intraday polling, no scheduled job. Not X: use art-425 for the Basel III / Regulation YY 25%/15%-of-Tier-1 regulatory large-exposures limit; use this node for internal (board- or risk-committee-approved) counterparty limit-line governance.",
  "input_schema_ref": "chaingraph/art-446-counterparty-internal-limit-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:235144f13ce1e5f16af5e68341a3f6eac7579044827d63769a9b062658bd21ab",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GXO6X72MbqGljONDGx3ocJf5tcsC+SxwEGXM2o+ZRq8tSFihSABcP8tRbOGj/7dbdRMOm/6UW1RFLUCVDYX3wy+cQXLHaHTLTdDplIl/kNWyHjwBD96jUEcHLsNOrN+fGvlX8Ky6+xrfPiFBDKIlZNsrqxdovRmx5yzgqLBBB2gCkk6XbAgyB1QsSZIEg7ke1SfY/7ipkKTLX9YJkQIO+QHARJeFRxf/YYmXI3785J8SJuSDOVNlxxKq3IZEDg1fEUqRdAX4enjenqS91zTS4R+edqVjnNtv6Z/V7D5wM9Qeumdn7EPq2r+PWjlTTMke3GQVIOle1vkt7BUq0mQI1g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:235144f13ce1e5f16af5e68341a3f6eac7579044827d63769a9b062658bd21ab",
      "output": {
        "breach_list": [],
        "counterparties": [
          {
            "approved_limit_musd": 1000,
            "counterparty_id": "cp-A",
            "counterparty_name": "Counterparty A",
            "current_exposure_musd": 400,
            "headroom_musd": 600,
            "limit_type": "settlement",
            "status": "WITHIN_LIMIT",
            "utilization_pct": 40,
            "warning_threshold_pct": 90
          },
          {
            "approved_limit_musd": 1500,
            "counterparty_id": "cp-B",
            "counterparty_name": "Counterparty B",
            "current_exposure_musd": 300,
            "headroom_musd": 1200,
            "limit_type": "aggregate",
            "status": "WITHIN_LIMIT",
            "utilization_pct": 20,
            "warning_threshold_pct": 90
          }
        ],
        "note": "Deterministic point comparison of caller-supplied current exposure against the caller-supplied approved internal limit line for a single reporting date. Not a real-time exposure monitor.",
        "regulatory_basis": "Internal (board- or risk-committee-approved) counterparty credit-limit governance -- not a regulatory threshold. Distinct from the Basel III / Regulation YY 25%/15%-of-Tier-1 large-exposures limit (see art-425).",
        "warning_list": []
      }
    }
  }
},
    {
  "tool_id": "art-447-securitization-risk-retention-check",
  "tool_version": "1.0.0",
  "display_name": "Securitization Risk Retention Check",
  "mcp_name": "check_securitization_risk_retention",
  "mandate_type": "compliance_mandate",
  "wave": 73,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-447-securitization-risk-retention-check.html",
  "description": "EU Securitisation Regulation (EU) 2017/2402 Art.6 and U.S. Credit Risk Retention Rule (Dodd-Frank Sec.941, Reg RR, 12 CFR Part 244) 5% risk-retention checker: verifies the originator/sponsor/original-lender retains at least 5% net economic interest via a recognized method (vertical slice, horizontal first-loss, L-shaped, representative sample, seller's interest), applies the U.S. Qualified Residential Mortgage (QRM) exemption where flagged, and flags EU-specific structural breaches -- retainer sole-purpose-entity prohibition and retained-interest hedging/sale. Deterministic point-in-time structural check from caller-supplied retention method, exposure/retained amounts, and jurisdiction-specific flags for a single reporting date. Not a compute_rbc_action_level (NAIC insurer capital ladder) or calculate_solvency2_scr_ratio (EU insurer capital) check -- this is bank/ABS securitization risk-retention structure, not insurer solvency.",
  "input_schema_ref": "chaingraph/art-447-securitization-risk-retention-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:7c47eb66621889efcbc72476358adf9d81118f0c4692dc01375cb7251f1ada8e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Gdkh0NijknB/AKsI6ozkuZMioNmy5jfdYISM6PoJMF0nHIysYnr9W3QG+dRMVz/iommYeEH26WPLfMe38BW/gQIHqj6p5GjBdV0bf8rIAcnyu04noGSqZJPQJoxb/W9BIyk6kJ7hgVKqySBYdN8DHchFDZJoq99VE3RZUocHDiMFd20Y3PV5BBdY0uSEczGjazr5o7DCW7lprLsxZ4+srA9qSUgVHwfZdrgEXc08EqUN4I0/aBlrN3Noplam7UilIyVIf9Ds4thwdKzhMtznX25PtwwQh3GILr6eVX9qFSMMGRBiM+F98s0MY1kKev59KBUZhOn0iea9e1XNqbRW8g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:7c47eb66621889efcbc72476358adf9d81118f0c4692dc01375cb7251f1ada8e",
      "output": {
        "actual_retention_pct": 5,
        "breach_reasons": [],
        "compliant": true,
        "jurisdiction": "eu",
        "note": "Deterministic structural check from caller-supplied retention method, exposure/retained nominal amounts, and jurisdiction-specific flags for a single reporting date.",
        "qrm_exemption_applied": false,
        "regulatory_basis": "EU Securitisation Regulation (EU) 2017/2402 Art.6 (originator/sponsor/original-lender net economic interest, ongoing 5% retention, no hedging/sale, sole-purpose-entity prohibition); U.S. Credit Risk Retention Rule (Dodd-Frank Sec.941, Reg RR, 12 CFR Part 244) 5% base retention with Sec_.19 Qualified Residential Mortgage exemption.",
        "required_retention_pct": 5,
        "retained_amount_musd": 100,
        "retained_interest_hedged_or_sold": false,
        "retainer_is_sole_purpose_entity": false,
        "retention_method": "vertical_slice",
        "retention_method_valid": true,
        "total_securitized_exposure_musd": 2000
      }
    }
  }
},
    {
  "tool_id": "art-448-ifrs17-loss-component-tracker",
  "tool_version": "1.0.0",
  "display_name": "IFRS 17 Loss Component Roll-Forward Tracker",
  "mcp_name": "track_ifrs17_loss_component_rollforward",
  "mandate_type": "compliance_mandate",
  "wave": 32,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-448-ifrs17-loss-component-tracker.html",
  "description": "Tracks the IFRS 17 para 50 loss-component roll-forward across periods: opening balance, additional loss recognised on new onerous contracts, reversal from subsequent favourable experience (capped so it never reverses more than the available balance), other adjustments, and release to profit or loss (capped at the pre-release balance). Delta over validate_ifrs17_csm_rollforward (art-178), which resets the loss component to a single period's shortfall and does not track the component's own multi-period roll-forward or its release pattern. IFRS 17 para 50, BC323-BC326. NaN-safe numeric validation on all inputs. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-448-ifrs17-loss-component-tracker.html#manifest",
  "consumes": [
    "art-178-ifrs17-csm-rollforward-validator"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8e097549d34ca1082509778e8da4137f414ab761783cc9babc55ec076010976e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GXvBkO5zDHYqVClMsOrhyiohsN48ug9mpQ8zS8a0cEkLjjPrS5k1wqUxrqBEPyOvZdBVTF6QS9SpgvrxkYurNC8aSlwWcvnQBQU/9tHQpLqYcU2vy3MQqqBDkuHZsgbXJ/D8UojvrKWKJEyC54SB5NtZzY2Yny4Xh/vZ6csHIfkJ3gHnwFZlMtOeOAcadS5pSzGt95vUEskEF3D7mlzawxYy2Y473Fe5r8BKqlUL2cJHUAFjetOoKIfR4hNLVXaNHT3+gUFgt2yZXoclb/t3rmNbiNxD7QPzAbrZrcIergsPptsYudW/1jAhz22nSKrgOaJAqCGv8tFtiZbiHeth4A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8e097549d34ca1082509778e8da4137f414ab761783cc9babc55ec076010976e",
      "output": {
        "additional_lc": 50,
        "closing_lc": 150,
        "fully_reversed": false,
        "lc_valid": true,
        "opening_lc": 100,
        "other_adj": 0,
        "pre_release": 150,
        "release_to_pnl": 0,
        "reversal_lc": 0
      }
    }
  }
},
    {
  "tool_id": "art-449-solvency2-scr-module-aggregator",
  "tool_version": "1.0.0",
  "display_name": "Solvency II SCR Standard-Formula Module Aggregator",
  "mcp_name": "aggregate_solvency2_scr_modules",
  "mandate_type": "compliance_mandate",
  "wave": 32,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-449-solvency2-scr-module-aggregator.html",
  "description": "Aggregates the five Solvency II standard-formula risk-module capital charges (market, counterparty default, life underwriting, health underwriting, non-life underwriting) into Basic SCR via the Delegated Regulation (EU) 2015/35 Annex IV correlation matrix, then adds the operational risk charge and subtracts the loss-absorbing adjustment (deferred tax/technical provisions) to produce total SCR. Delta over calculate_solvency2_scr_ratio (art-180), which takes `scr` as a given input and does not derive it from sub-module charges; feeds art-180's scr input. Not the US NAIC RBC action-level ladder (a different jurisdiction and regime, see compute_rbc_action_level). Solvency II Dir. 2009/138/EC + Del. Reg. (EU) 2015/35 Annex IV. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-449-solvency2-scr-module-aggregator.html#manifest",
  "consumes": [],
  "feeds": [
    "art-180-solvency2-scr-ratio-calculator"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:484b5640fddbb90b1bdecd2a7f4e9023d17cef27245c21ed1f726cbf1f30e0a4",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AaRkZ07Rb8FA3ji5ePJixWgevSI2KpOwMODroRBgdxYXNWRA46h2dsVX9vts7BGL3DGKQi2GhEYyht8A2L8PURhIrd4VtFdowOoO+NxK7ZepQqGhzZpgIeDglxaZsCNJMFrZsnfS1RS2O0X7E7YPPyFv0dpDXbehzc2iEZFmFsMLACR+qDqITc+ilGqMjf2XKe10DAg6O8GZK+a49zm91ilSPRKFr2oCYiQCoDpVMsP0BtyyfSHTLlXi3uidrsI+IRXu7xM5xvqlAI94nplj1cxLZpsWCesXQ0src7e3CqMPLPxNoVLa8SfEHH9CtZPV+5kMXqSHzirDO+yTR62doQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:484b5640fddbb90b1bdecd2a7f4e9023d17cef27245c21ed1f726cbf1f30e0a4",
      "output": {
        "adjustment_exceeds_bscr_plus_op": false,
        "bscr": 966.95,
        "default_scr": 200,
        "health_scr": 100,
        "life_scr": 300,
        "loss_absorbing_adjustment": 30,
        "market_scr": 500,
        "nonlife_scr": 400,
        "scr_operational": 50,
        "scr_total": 986.95
      }
    }
  }
},
    {
  "tool_id": "art-450-model-inventory-entry",
  "tool_version": "1.0.0",
  "display_name": "Model Inventory Entry Builder",
  "mcp_name": "build_model_inventory_entry",
  "mandate_type": "compliance_control",
  "wave": 73,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-450-model-inventory-entry.html",
  "description": "Builds a single model-inventory record for a bank's SR 26-2 model-risk-management inventory: checks the caller-declared attributes (model name, owner, purpose, tier, development/deployment dates, last validation date) against the SR 26-2 required-field set, assigns a proportionality tier (limited/moderate/high) from caller-declared materiality and complexity inputs, and returns a completeness score plus a list of missing required fields. First node in the model-passport lifecycle (inventory entry, then outcome-analysis comparison in art-451, then validation status in art-453). Distinct from the shipped program-level gap analyzers (tools 339/451 SR 26-02 and SR 11-7 gap assessors), which score an institution's overall MRM program, not a single model's inventory record. Distinct from art-380 (AI workpaper record), which documents a completed assessment rather than registering a model. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-450-model-inventory-entry.html#manifest",
  "consumes": [],
  "feeds": ["art-451-model-outcome-analysis"],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2de5269cd7ce2153d49d282c65e7561c5f097c2fc88f86daeb66ea327ad21a6e",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JGPs4o2VlA2lBQ3vhChaXVTvGEQrtkPcPQnD/EBJ1sUcItgbLqHzeCT8U0pR0wQOWFagAXX2CogLMS3YtmOpgAXr1sT9bH4uVC8y7ehos+LiXo38TJS2w6RSctEOuk1QCUz4haV1A3e2qh4EG02/2RqsxZ6pHYxwOq/Y7UbVQGEHzOC7ywGv1srzjXMvpaUweFk0Sld819BpViZZRPzEfSPkkRRX1MwPT2DxnErxnVvh1FyjaaoD5moy5zuz50ofBIGKIyNxOJ9x9Nw3CVN1UUqXl5x0o40eMsoPNP63k40C05NcewngUrsBKB9fUs3Pl65/PUsh0SZuO6ubDU1xjg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2de5269cd7ce2153d49d282c65e7561c5f097c2fc88f86daeb66ea327ad21a6e",
      "output": {
        "ai_ml_model": true,
        "completeness_score": 100,
        "complexity_score": 3,
        "inventory_record": {
          "business_purpose": "Consumer credit approval scoring",
          "deployment_date": "2025-06-15",
          "development_date": "2025-03-01",
          "last_validation_date": "2026-01-10",
          "model_name": "Retail Credit Scoring Model v3",
          "model_owner": "Model Risk Management"
        },
        "materiality_score": 4,
        "missing_required_fields": [],
        "model_name": "Retail Credit Scoring Model v3",
        "third_party_vendor": false,
        "tier": "high",
        "tier_sum": 7,
        "usage_scope": "enterprise_wide"
      }
    }
  }
},
    {
  "tool_id": "art-451-model-outcome-analysis",
  "tool_version": "1.0.0",
  "display_name": "Model Outcome-Analysis Comparison",
  "mcp_name": "compare_model_outcome_analysis",
  "mandate_type": "compliance_control",
  "wave": 73,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-451-model-outcome-analysis.html",
  "description": "SR 26-2 ongoing-monitoring backtest: compares a list of period predicted-vs-actual model outcomes, computes per-period absolute percent error, mean/max absolute percent error, and flags periods breaching a caller-declared error tolerance. Returns a pass/fail outcome status against a caller-declared maximum breach rate. Second node in the model-passport lifecycle (after art-450 inventory entry, before art-453 validation status). Distinct from the shipped program-level gap analyzers (tools 339/451 SR 26-02 and SR 11-7 gap assessors), which score an institution's overall MRM program rather than backtest one model's outcomes. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-451-model-outcome-analysis.html#manifest",
  "consumes": ["art-450-model-inventory-entry"],
  "feeds": ["art-453-model-validation-status"],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:0109055fc8041ae9b972ed952fe72e0763d5a5ae8b30ff92ef63886e762d102f",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GAV+h3YdzjUV+SutaowhbHWvfCPCvyMXeKpqj44PMTcItfmuQt3K2ZxustX6mpcAE69nwhSCKUvk9u4LevsVNgtGlxbHcZRXp91WLx2stbv5QAalBMdUGYyovWYuCtrKDRRlpoxMxnJ8nYvNT0Al1FCn/XjO30mZcB82jDHNI8cPqCnJ23WXHQ+2PScW/PYPwsYj466WF7qeozmnUH8PKiHX+bzz999uLIxmd4oWHl8sBmdY+1bPH3v3n3b4CN3jAFTe7mn7awvEMa7QAtcPDsr49ZCzHHR8AFk6kXvP9msO7LGi7lFaKOPNUnUfhcEdjO0dZy5lf9si6E8FGFz9Xw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:0109055fc8041ae9b972ed952fe72e0763d5a5ae8b30ff92ef63886e762d102f",
      "output": {
        "breach_periods": [
          {
            "abs_pct_error": 15,
            "period_label": "Q2"
          }
        ],
        "breach_rate_pct": 25,
        "error_threshold_pct": 10,
        "max_absolute_percent_error": 15,
        "max_breach_rate_pct": 20,
        "mean_absolute_percent_error": 6,
        "outcome_status": "fail",
        "periods": [
          {
            "abs_pct_error": 2,
            "actual": 1020,
            "breach": false,
            "error": 20,
            "period_label": "Q1",
            "predicted": 1000
          },
          {
            "abs_pct_error": 15,
            "actual": 1150,
            "breach": true,
            "error": 150,
            "period_label": "Q2",
            "predicted": 1000
          },
          {
            "abs_pct_error": 2,
            "actual": 980,
            "breach": false,
            "error": -20,
            "period_label": "Q3",
            "predicted": 1000
          },
          {
            "abs_pct_error": 5,
            "actual": 1050,
            "breach": false,
            "error": 50,
            "period_label": "Q4",
            "predicted": 1000
          }
        ],
        "total_periods": 4,
        "worst_period": "Q2"
      }
    }
  }
},
    {
  "tool_id": "art-452-build-ai-training-data-lineage-record",
  "tool_version": "1.0.0",
  "display_name": "AI Training-Data Lineage Record",
  "mcp_name": "build_ai_training_data_lineage_record",
  "mandate_type": "compliance_mandate",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-452-build-ai-training-data-lineage-record.html",
  "description": "Composes a hash-chained ML training-data lineage record: dataset identity, dataset version, upstream source dataset references, a declared collection/governance method, and an OPTIONAL reference to an existing OCG receipt for the training-run compute (tool identity, execution hash, kernel digest -- never re-embedded). Chains to a prior lineage record via sha256_prev_lineage_hash. Maps to EU AI Act Art 10 (data and data governance) + Annex IV 2(d) technical-documentation elements (data provenance, collection, labelling, cleaning); SR 11-7 model risk management data-lineage practice as the US domestic analog. Documents dataset lineage only -- does not validate dataset quality, bias, or representativeness. Not build_ai_decision_log_record (art-236, per-inference decision chain) and not build_ai_workpaper_record (art-380, audit workpaper over a receipt).",
  "input_schema_ref": "chaingraph/art-452-build-ai-training-data-lineage-record.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:fd23920a354af2d91e43fa946991d108f2d99c7a9565ba3dbca922aba445e5ad","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-23"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DbLn4f1O/b1GmYDwBx/Zuxc/giU/4/1UDriy0epMnlwjCGDZvDtuT0mNK+6SaSTT3i9Rd9+0pKFc97zGAsm3Cw6iE0n59nt6R/3JF3kayrphwmvf+UGmfDyN+X1qy0SAFa8Bd+aIL9fD04DVZKXmzoMp7bmYumrlkytxWFQ90FYTGuUQ6I+CjPOpGzvaYXso7H8BwcUsI5hnKvpBu5P96AuAI+sKuNJPnKphzr7R5m3ytZbdTQ9oVqL9z9yZbm+LGlpW9ysM8uB5H3Gof+si8HcF4mEfwb3cCKQNQEIMXV4FpSPN0aiBk+OZ3gyYMFoU4vLdYRZX1XD2NotVJgGKeg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:fd23920a354af2d91e43fa946991d108f2d99c7a9565ba3dbca922aba445e5ad",
      "output": {
        "chain_position": "first",
        "checks": [
          {
            "check": "dataset_id_present",
            "detail": "ds-credit-decisioning-2026q2",
            "pass": true
          },
          {
            "check": "dataset_version_present",
            "detail": "1.0.0",
            "pass": true
          },
          {
            "check": "collection_method_valid",
            "detail": "internal_transaction_records",
            "pass": true
          },
          {
            "check": "referenced_receipt_valid_if_present",
            "detail": "not referenced",
            "pass": true
          },
          {
            "check": "prev_lineage_hash_valid_if_present",
            "detail": "ok",
            "pass": true
          }
        ],
        "collection_method": "internal_transaction_records",
        "dataset_id": "ds-credit-decisioning-2026q2",
        "dataset_version": "1.0.0",
        "governance_notes": "Sourced from internal core-banking transaction extracts, deduplicated and de-identified prior to model training per firm data-governance policy.",
        "operator_id": "mrm-data-governance-team",
        "record_status": "COMPLETE",
        "referenced_receipt": null,
        "regulatory_basis": "EU AI Act (Reg. 2024/1689) Art 10 (data and data governance), Annex IV 2(d) (technical documentation: data provenance, collection, labelling, cleaning); SR 26-2 model risk management data-lineage practice (US domestic analog; supersedes SR 11-7 from 2026-04-17)",
        "retention_months": 12,
        "scope_note": "Documents dataset lineage and governance metadata for a training run. Does NOT validate dataset quality, bias, or representativeness -- those remain a firm judgment call outside this kernel's deterministic boundary.",
        "sha256_prev_lineage_hash": null,
        "source_dataset_ids": [
          "ds-core-banking-txn-log-2024-2026"
        ],
        "table_version": "EU-AIA-ART10-2024-1689-R1",
        "zero_pii_notice": "dataset_id and source_dataset_ids are STRUCTURAL catalog identifiers only. This kernel never ingests, stores, or echoes dataset contents -- zero PII by construction."
      }
    }
  }
},
    {
  "tool_id": "art-453-model-validation-status",
  "tool_version": "1.0.0",
  "display_name": "Model Validation Status Assessor",
  "mcp_name": "assess_model_validation_status",
  "mandate_type": "compliance_control",
  "wave": 73,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-453-model-validation-status.html",
  "description": "Determines a model's SR 26-2 validation status by combining its proportionality tier, last-validation date, and most recent outcome-analysis result against a tier-based revalidation cadence (high=365 days, moderate=730, limited=1095, overridable). Returns validated / conditionally-approved / validation-overdue / restricted-use / validation-required plus days-since-validation and next-due-in-days. Third and final node in the model-passport lifecycle (after art-450 inventory entry and art-451 outcome-analysis comparison) -- the passport's headline field. Dates are caller-declared (as_of_date) and diffed with integer civil-calendar arithmetic, never the system clock, so the result is fully deterministic. Distinct from the shipped program-level gap analyzers (tools 339/451 SR 26-02 and SR 11-7 gap assessors), which score an institution's overall MRM program rather than one model's cadence status. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-453-model-validation-status.html#manifest",
  "consumes": ["art-451-model-outcome-analysis"],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:63eb1d7394a4cafde3fcd6102e610ec0ff1a0ab83c0eb65ad5b704bcaf777ddc",
      "valid_from": "2026-07-23"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-23"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K04iGkYVN9FMp7Mcl89wr9iZ41VM+At9h+J8LExGfxYU1wTuSoB0Do2ztTcliesyAqgu6JKkPZd6pR/DEjYi+iwlTzRJcBMmBd6euuBHud6qrmYwJzHBYFYHY6Z2ozJwBN1SXjUSAxOK2lV5s0+1+JVlityU1EgKgHfO21m9SosaSypb44VTz+IK9e3sqbTr69bVyV/2XfgXkTZCLMp/GAFdlr5VU0uM+E142/tSUb4jYvdxQnZYGxP3LcGH76jOIzT1O5Tzkj57El3yKGwt8XZhF9S00prGiEuhrR0vsfIVg6FHNkXNBhy2RgS0eREseCIKzb8X/otuv3ZK++zcNQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:63eb1d7394a4cafde3fcd6102e610ec0ff1a0ab83c0eb65ad5b704bcaf777ddc",
      "output": {
        "as_of_date": "2026-01-15",
        "cadence_days": 365,
        "days_since_validation": 167,
        "last_validation_date": "2025-08-01",
        "never_validated": false,
        "next_validation_due_days": 198,
        "outcome_status": "pass",
        "overdue": false,
        "tier": "high",
        "validation_status": "validated"
      }
    }
  }
},
    {
  "tool_id": "art-454-globe-jurisdictional-etr",
  "tool_version": "1.0.0",
  "display_name": "GloBE Jurisdictional ETR Calculator",
  "mcp_name": "compute_globe_jurisdictional_etr",
  "mandate_type": "compliance_control",
  "wave": 32,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-454-globe-jurisdictional-etr.html",
  "description": "Computes a jurisdiction's OECD Pillar Two (GloBE) effective tax rate from caller-declared constituent-entity financial data: sums entity-level GloBE income/loss to a jurisdictional net (Art 3.1), sums entity-level adjusted covered taxes (Art 4), and divides to get the ETR. If the jurisdictional net is a GloBE loss, no ETR is computed and the jurisdiction is flagged rather than divided by a non-positive base. Top-up tax percentage = max(0, minimum_rate - ETR); minimum_rate defaults to the Art 5.1 15% rate but is taken as a versioned policy-parameter input, not hardcoded. Election flags (de minimis, stock-based comp, aggregate deferred-tax adjustment) are caller-declared policy parameters -- this kernel echoes which elections were declared, it does not decide them; election judgment and DTA characterization stay with the filer. First node in the GloBE annual cycle, feeding the substance-based income exclusion / top-up node (art-455) and, downstream, the safe-harbour tests (art-456) and GIR composer (art-457). Pure arithmetic aggregation only. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-454-globe-jurisdictional-etr.html#manifest",
  "consumes": [],
  "feeds": [
    "art-455-globe-sbie-topup"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b6c161f165c164256e1d59d3de2d7b967aa272e972f8ad8d17648dbb1066ab78",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HnfXdHBO6+bHG1eQv6fOrgMdenO6mIaIva5YmtU0mMsFj1HkZ1nYuNgVnoo8RbKUIS5ert7ansI37KjSGlX+5yH6CbbCu77EnN4qj7jduJUpm+oshVfs9pJ2VbKmCyiXG5XY0VQtfnOSIBVkXLLhQgXezXC9nOWGuwEK3I1sR3UsytqpC6R7AZt6zicjCpFNo9DW7/2ulCetzosy2Kq0ChcPc41/IJbZVvKfZ+NplJMkR6QnN9zhZ8UOAo9ROvoGG6bXFaXv7yiRQDR5QbEME7a51IXwAgXPNQgWfd6OfBMeeW0w9oRhGdMLLfQNAMEw/4rHISRgPhv3U8+R7orHrA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b6c161f165c164256e1d59d3de2d7b967aa272e972f8ad8d17648dbb1066ab78",
      "output": {
        "adjusted_covered_taxes": 100000,
        "declared_elections": {
          "aggregate_deferred_tax_adjustment": false,
          "de_minimis_election": false,
          "stock_based_comp_election": false
        },
        "entities": [
          {
            "covered_taxes": 60000,
            "entity_name": "Ruritania OpCo 1",
            "net_income_or_loss": 600000
          },
          {
            "covered_taxes": 30000,
            "entity_name": "Ruritania OpCo 2",
            "net_income_or_loss": 300000
          },
          {
            "covered_taxes": 10000,
            "entity_name": "Ruritania HoldCo",
            "net_income_or_loss": 100000
          }
        ],
        "entity_count": 3,
        "etr": 0.1,
        "jurisdiction_name": "Ruritania",
        "jurisdictional_globe_income": 1000000,
        "minimum_rate": 0.15,
        "net_globe_income_or_loss": 1000000,
        "no_etr_computed": false,
        "top_up_tax_amount": 50000,
        "top_up_tax_percentage": 0.05
      }
    }
  }
},
    {
  "tool_id": "art-455-globe-sbie-topup",
  "tool_version": "1.0.0",
  "display_name": "GloBE SBIE & Top-up Tax Calculator",
  "mcp_name": "compute_globe_sbie_topup",
  "mandate_type": "compliance_control",
  "wave": 76,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-455-globe-sbie-topup.html",
  "description": "Computes the OECD Pillar Two substance-based income exclusion (SBIE) for a jurisdiction from a caller-declared payroll-cost figure, tangible-asset carrying value, and a versioned transition-year rate table (payroll % + tangible-asset % looked up by target year, table supplied whole as a policy input -- not hardcoded). Derives excess profit (jurisdictional GloBE income less SBIE, floored at zero), the resulting top-up tax from a caller-supplied top-up-tax percentage, and the final jurisdictional top-up after a QDMTT-paid offset, flagging any QDMTT over-collection informationally. Consumes art-454's jurisdictional GloBE income + top-up-tax-percentage output shape directly and does not recompute an ETR itself, so it also runs standalone. Election choices and GloBE-income adjustments are human judgment and stay upstream. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-455-globe-sbie-topup.html#manifest",
  "consumes": [
    "art-454-globe-jurisdictional-etr"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:f883e9af5be1a09cf3f90e6d98b8452905bbef712f381adef50876f7ee4a44ab",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "I+OyxMy25t1tO96JlDEmuK5ow77gMr2L/i1u1uvU3isd2+oXQZULXJN+FK44OP11ZN9KG9yktZlZxwAdFm+YRBJ6GbVopLPq/H3SuxC0/XWKiJPRB+SR4fvm3koVXjrULTAsKhx6oUREj6KIIlJGZlvPVoqmsWJg7lvJVEwtXIACi6rmKT8yc5hDOpKDSgI689yWW/cUDiKg9pFFIgg6tgtEqt9MR+Fx9EFL4r6mnwvnjfiHdprcq9Y5qUyN3g76B/5C2u5GUDuOQhFO/LElywCf3FUQvnkOI2rNMeA/U34XYcBUkDfqtfd8uRP2hOifIpGdbDwZkHDw5jshU9vJmA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f883e9af5be1a09cf3f90e6d98b8452905bbef712f381adef50876f7ee4a44ab",
      "output": {
        "excess_profit": 2560000,
        "globe_income": 5000000,
        "jurisdictional_top_up": 56800,
        "payroll_component": 960000,
        "payroll_rate": 0.096,
        "qdmtt_over_collection": false,
        "qdmtt_paid": 20000,
        "rate_row_found": true,
        "sbie": 2440000,
        "tangible_asset_component": 1480000,
        "tangible_asset_rate": 0.074,
        "target_year": 2025,
        "top_up_tax": 76800,
        "top_up_tax_percentage": 0.03
      }
    }
  }
},
    {
  "tool_id": "art-456-globe-safe-harbour-tests",
  "tool_version": "1.0.0",
  "display_name": "GloBE Transitional Safe Harbour Test Evaluator",
  "mcp_name": "evaluate_globe_safe_harbour_tests",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-456-globe-safe-harbour-tests.html",
  "description": "Evaluates a jurisdiction against the OECD Pillar Two Transitional CbCR Safe Harbour (Dec 2022 Agreed Administrative Guidance): the de minimis test (CbCR revenue < EUR 10m AND profit before tax < EUR 1m, both versioned thresholds), the simplified ETR test (simplified covered taxes / profit before tax >= the fiscal-year transition rate -- 15% for 2023/2024, 16% for 2025, 17% for 2026, versioned rate table; auto-passes when profit before tax is non-positive since ETR is undefined), and the routine profits test (profit before tax <= the caller-supplied substance-based income exclusion amount). Safe harbour is met if ANY ONE of the three tests passes, in which case the jurisdiction's top-up tax is deemed zero. Returns each test as an independently gated pass/fail verdict with its own reasoning, plus the overall safe_harbour_met / deemed_zero_topup flags. Pure arithmetic threshold comparisons only -- elections, DTA characterization, and the SBIE amount itself are HUMAN JUDGMENT and enter only as policy_parameters; SBIE is not recomputed here (that is art-455's job). NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-456-globe-safe-harbour-tests.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:9dd9ae74b1d4edde67ba59bd862dc96cd7a0623011b3e59070bf5fd6ccbf3669",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EdF2eiM9mQNtU2jTOEz1PIkom07ATuML3N+6vjY9qjUp3iTKAnDwKfmYRQ4FnzzKavwj1sm/oKCfRJJJnhR0lwpQSQx8ORSklEdAVf7wwPJUDVECGPwlGU1OY1/6ffgIFA5P0iGzLqBblwctv7ypy169DulXhmmb5W6/4IxKot8eyuOn4s3L2ZCBXZE+VhGw2c6IbrGVQnzsO97pjxamFANjAAxbCxvpJokDmAvHXVmqpqnufeCa0bKJ1tcB/UJtJaW+7ycyQPG4ohcOYde8jAK0VjSKm5Gw4bjOfDpXz38dd6u2fD/YJGbLuGIub8Uv1lnIkmLsLXLa4udl6PomkA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:9dd9ae74b1d4edde67ba59bd862dc96cd7a0623011b3e59070bf5fd6ccbf3669",
      "output": {
        "deemed_zero_topup": true,
        "fiscal_year": 2024,
        "passing_test_ids": [
          "de_minimis"
        ],
        "safe_harbour_met": true,
        "tests": [
          {
            "inputs": {
              "de_minimis_profit_threshold_eur": 1000000,
              "de_minimis_revenue_threshold_eur": 10000000,
              "profit_before_tax_eur": 500000,
              "revenue_eur": 8000000
            },
            "pass": true,
            "reasoning": "Revenue EUR 8000000 < threshold EUR 10000000 AND profit before tax EUR 500000 < threshold EUR 1000000.",
            "test_id": "de_minimis"
          },
          {
            "inputs": {
              "applicable_rate": 0.15,
              "fiscal_year": 2024,
              "nonpositive_profit": false,
              "profit_before_tax_eur": 500000,
              "simplified_covered_taxes": 10000,
              "simplified_etr_value": 0.02
            },
            "pass": false,
            "reasoning": "Simplified ETR 2.00% < applicable transition rate 15.00% (FY2024).",
            "test_id": "simplified_etr"
          },
          {
            "inputs": {
              "profit_before_tax_eur": 500000,
              "sbie_amount": 0
            },
            "pass": false,
            "reasoning": "Profit before tax EUR 500000 > SBIE amount EUR 0.",
            "test_id": "routine_profits"
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-457-globe-gir-composer",
  "tool_version": "1.0.0",
  "display_name": "GloBE Information Return (GIR) Composer",
  "mcp_name": "compose_globe_gir",
  "mandate_type": "compliance_control",
  "wave": 75,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-457-globe-gir-composer.html",
  "description": "Assembles the OECD GloBE Information Return (GIR) data model for one MNE group / fiscal year by combining the outputs of art-454 (jurisdictional ETR), art-455 (SBIE / top-up), and art-456 (transitional safe harbour tests) into the GIR's jurisdictional-summary shape: per-jurisdiction ETR, SBIE, top-up tax, safe-harbour status, and the constituent-entity allocation split. Exports in two forms: an OECD GIR XML rendering (schema version pinned as a versioned policy_parameters input -- this tool does not chase draft schema revisions) and a form-shaped JSON mirror, both carrying the composed execution_hash in their metadata. Every jurisdiction row where safe_harbour_met is true is composed with top-up forced to zero (deemed_zero_topup), consistent with art-456; jurisdictions with no safe-harbour test result compose the raw art-454/455 top-up figures unchanged. This tool assembles and formats only -- it recomputes nothing upstream (ETR, SBIE, and safe-harbour verdicts are trusted inputs from their own nodes) and its XML/JSON export is explicitly marked NOT-SUBMITTABLE, since national filing gateways vary in accepted schema version and transport. Pure data assembly and templating. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-457-globe-gir-composer.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:61563ff21326052fe8cd8c86671ef2bcce3ffd879f7ea28ae2f4fc8c333513a2",
      "valid_from": "2026-07-24"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DB6S/4EkbOh1uYhqGAy8b0TF3GtbKbShK75vUzcLzRIFvx5ZyvxM+MuZng+vtW64Oj9QVj6dFOPbY8w3RQX9QhXrfx4mv8UHfqj+jValPcT57PdSAtEp1W3mclFxZZocEY0H9rHW0UKPXTWfFMePYE8XBg9G2RECRt5HMP7YGNYDB4D7/PKzNVbtml+GbHUfG1Dc0+dLwhOLvGrzs3U/dh3vZ1En0IhVwjm2th6JwV4GZMUCPneUIZ4ajPAGO0XNGD43WHGHF9v7PM7ZAmjqbEA66sdWhZFpdEa7HVQB4QctTCD3M4V5LDSLQJgRgTVMNEQT3IYjLIV/E2pwHJYbGw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:61563ff21326052fe8cd8c86671ef2bcce3ffd879f7ea28ae2f4fc8c333513a2",
      "output": {
        "fiscal_year": 2024,
        "gir_schema_version": "OECD-GIR-2023-07",
        "gir_xml_summary": {
          "fiscal_year": 2024,
          "jurisdiction_count": 1,
          "mne_group_name": "Acme Global Group",
          "root_element": "GIR",
          "schema_version": "OECD-GIR-2023-07"
        },
        "jurisdiction_rows": [
          {
            "allocation_sum_ok": true,
            "composed_topup_tax": 900000,
            "constituent_entities": [
              {
                "allocated_topup_tax": 540000,
                "allocation_share": 0.6,
                "entity_name": "Acme DE Holdco"
              },
              {
                "allocated_topup_tax": 360000,
                "allocation_share": 0.4,
                "entity_name": "Acme DE OpCo"
              }
            ],
            "deemed_zero_topup": false,
            "jurisdiction_code": "DE",
            "jurisdictional_etr": 0.12,
            "raw_topup_tax": 900000,
            "safe_harbour_status": "not_evaluated",
            "sbie_amount": 500000
          }
        ],
        "jurisdictions_not_evaluated": 1,
        "jurisdictions_with_deemed_zero": 0,
        "mne_group_name": "Acme Global Group",
        "submittable": false,
        "total_topup_tax": 900000
      }
    }
  }
},
    {
  "tool_id": "art-458-attribute-sampling-plan",
  "tool_version": "1.0.0",
  "display_name": "Attribute Sampling Plan Generator",
  "mcp_name": "plan_attribute_sample",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-458-attribute-sampling-plan.html",
  "description": "Computes a SOX 404 / ICFR attribute-sampling plan from confidence level, tolerable deviation rate, and expected deviation rate (all policy inputs) using the standard zero-EDR Poisson attribute-sampling formula with an expansion factor for nonzero EDR. Item selection is deterministic interval sampling over the caller-declared population hash -- no randomness, so any auditor can replay the exact same sample from the same declared inputs. If the tolerable deviation rate is at or below the expected deviation rate the plan is statistically indefensible, so the kernel reframes to a full-population census rather than shipping a bad plan. First node in the ICFR control-test evidence chain (feeds art-461 control-test-evidence-composer). NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-458-attribute-sampling-plan.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5bcd64e2925ab483c805160229d7a37241e311140192cd080b09be6d358fec1b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GK+iF/j3eHW2aetnccpdudOu9jzybQy4s6++2ObX244FhGNtQQESRqNofhYDUrdLCBs+P/1Age89Lw5I8EJ+KhVoiRMv9sR8GvXJVqw/ToQfXkDmwRVur/mWaLYWGykBHlEtSukssDmJq3EYnn8BnWsPN6kU1XXNLyRebTtzCUkuRv3J5eaETEsiQP5Tw9cSJlcWKukOucMt9w+RqDMP9ydbOkfodiqAR2nkpQ/V/+eDyrDC5NxLEM+FAZKWFs4+D7Xz0xd97Gkg8UXJEAf9kL2k1+Bv5sAGsRo1W9q3kOoaUEFlGtO/V7qveXouvZwkhXwws4HEPdkUzUnevCGYqA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5bcd64e2925ab483c805160229d7a37241e311140192cd080b09be6d358fec1b",
      "output": {
        "confidence_level": 95,
        "expansion_factor": 1,
        "expected_deviation_rate": 0,
        "interval": 16,
        "method": "poisson_attribute_sampling",
        "population_hash": "abc123",
        "population_size": 1000,
        "sample_size": 59,
        "selected_indices": [
          0,
          16,
          32,
          48,
          64,
          80,
          96,
          112,
          128,
          144,
          160,
          176,
          192,
          208,
          224,
          240,
          256,
          272,
          288,
          304,
          320,
          336,
          352,
          368,
          384,
          400,
          416,
          432,
          448,
          464,
          480,
          496,
          512,
          528,
          544,
          560,
          576,
          592,
          608,
          624,
          640,
          656,
          672,
          688,
          704,
          720,
          736,
          752,
          768,
          784,
          800,
          816,
          832,
          848,
          864,
          880,
          896,
          912,
          928
        ],
        "start_offset": 0,
        "tolerable_deviation_rate": 5
      }
    }
  }
},
    {
  "tool_id": "art-459-sod-matrix-check",
  "tool_version": "1.0.0",
  "display_name": "Segregation-of-Duties Matrix Checker",
  "mcp_name": "check_sod_matrix",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-459-sod-matrix-check.html",
  "description": "Evaluates a caller-declared role-assignment set against a caller-declared SoD conflict ruleset for SOX 404 / ICFR access controls. For every user, checks all pairs of assigned roles against the ruleset and returns any conflicts found, the count of affected users, and a clean/not-clean verdict. The ruleset is a versioned policy input, never derived by the kernel. Deterministic pairwise set evaluation only. Zero network, zero PII -- user_id and role names are caller-supplied opaque strings.",
  "input_schema_ref": "chaingraph/art-459-sod-matrix-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:991bda6ad22de1f56d310c7cfbe98b6a7a9e4fdace9805007b0cc161d05cd7cd",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "I15hOcNgbTqu47fDCpP6JdKV5kx27cnjQN8sfLtmUcwTC7spr4h7JlV2Ka113cQxt8mJCv62BxD0GXNseo2njSwDKUw6FwLworpTHK4iyynMEwP/HZOYkr9mJOjBkKUQGuEDSAfBG3g5c5muTm4H5K219laBM/cyv7KACaT5N3Ig4+UGCaeFZVK0Ewq36YvTHrwi8/T6kil9vEoQ35wZggmzxrZE7CH7wQbXOcbHG56g6KdJW4RX5s7erLQaGN4IKouBcYKp5FZZUrc7uCcyt4fV5cOZxaLkgq9VUzlV0ccWLI1BO0oSH732VlnAkXZWWoZiAnShhNJ6kBp9LouVJg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:991bda6ad22de1f56d310c7cfbe98b6a7a9e4fdace9805007b0cc161d05cd7cd",
      "output": {
        "clean": true,
        "conflict_count": 0,
        "conflict_rules_evaluated": 1,
        "conflicts": [],
        "ruleset_version": "sod-ruleset-v1",
        "users_evaluated": 2,
        "users_with_conflicts": 0
      }
    }
  }
},
    {
  "tool_id": "art-460-ipe-integrity-verifier",
  "tool_version": "1.0.0",
  "display_name": "IPE Integrity Verifier",
  "mcp_name": "verify_ipe_integrity",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-460-ipe-integrity-verifier.html",
  "description": "Verifies Information-Produced-by-Entity (IPE) completeness and accuracy for SOX 404 / ICFR control testing -- is this report extract what the source system actually produced. Reconciles a caller-declared source-extract hash, row count, and control total against the same facts for the report built from it, within a caller-set rounding tolerance. All facts are policy inputs; the kernel never re-derives the extract, only reconciles the declared parameters into a confirmed/exception verdict with a discrepancy list. Deterministic equality and tolerance checks only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-460-ipe-integrity-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3739111ed80b1fdde1f68667060608703b547770fc185678540d7e16fa4023c6",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JYMP72e40Jwd8KKV5yh1wkwGmUJBxHzt65Z38JfFTcsc3InMD8Wim2VJIf6YSipaU91aoQThVgEtB+gcOXiuJATAliX+luVoQwMDfuE/NemPBopLZIkWiyK/sWE1JUn/B8MLD/Eaw2okDusAL4xokQzLBftn2jh4zmfvOg9q2cILwaou7tTmHTAciGC0WJ8bRI8LRLz5EKvRBsC3I6fSQygZa4GKbS68POGoMIt7Hi+Upo+V3hL6hgeNnfXjl1U+BqHylNkj1RfTulBNfCfyqD7VS1XvblNIy1QcwuoO2TMXhmNFylRTxl43ho/9+Z3tBJtO0s8AY7OiWdEBC//bHw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3739111ed80b1fdde1f68667060608703b547770fc185678540d7e16fa4023c6",
      "output": {
        "control_total_delta": 0,
        "discrepancies": [],
        "hash_match": true,
        "integrity_status": "confirmed",
        "report_control_total": 500000,
        "report_hash": "sha256:aaa111",
        "report_row_count": 1000,
        "row_count_match": true,
        "source_control_total": 500000,
        "source_extract_hash": "sha256:aaa111",
        "source_row_count": 1000,
        "tolerance": 0.01,
        "total_within_tolerance": true
      }
    }
  }
},
    {
  "tool_id": "art-461-control-test-evidence-composer",
  "tool_version": "1.0.0",
  "display_name": "Control-Test Evidence Composer",
  "mcp_name": "compose_control_test_evidence",
  "mandate_type": "compliance_control",
  "wave": 76,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-461-control-test-evidence-composer.html",
  "description": "Composes a SOX 404 / ICFR control-test evidence artifact: reconciles a caller-declared attribute sample (item ids, e.g. from art-458) against a per-item pass/fail test-result set into one test-conclusion record -- sample coverage, exception count vs a caller-set tolerable-deviation threshold, and a test conclusion (operating effectively / exception noted / incomplete). The tester is recorded under the SOX 404 / PCAOB AS 1215 preparer role; every test carries a fixed review_required gate for reviewer sign-off. An exception count above zero flags a deficiency CANDIDATE only -- severity classification and its reason_code are a separate human reviewer approval record, never computed here. Deterministic reconciliation only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-461-control-test-evidence-composer.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ab7d9c5cf26d42cb2205025bca9f91353454bea181602f0dd0508aa55c4e94e4",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DqGUoX4qntnf1R+kst8rE5kTavGqpgGNDb9QnrFBCU0CeQQvH4XxbtbQ4uv9l93rVr6CNvdbs0I79uI83rCGbirJgnTX6ZEo4qkk+OWDmkaiFMkASwFFtWj5GNYGv1x9Fce5d3cqHFTlrn9whL1yoP9YllYtAk32W1MPYn68OdQIokNCnj3VxseR+eakEdJghvZQx97RBUr9gcNFm+eWlQlHqEYeTbRCTq0P/Np5gNbJGDHJ72R4TYJUCYh2DlELGg1UF8h+L+U/l27/DDZSjRl2j8ZPgczPPpFwxG85x7gNY+JVbC+F5nBsStObCNROiCRDsWK99+WL46uJit0SlQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ab7d9c5cf26d42cb2205025bca9f91353454bea181602f0dd0508aa55c4e94e4",
      "output": {
        "control_id": "CTRL-AP-014",
        "coverage_complete": true,
        "deficiency": null,
        "exception_count": 0,
        "exception_rate": 0,
        "extra_results": [],
        "fail_count": 0,
        "gate_status": "review_required",
        "missing_results": [],
        "not_a_severity_judgment": "This artifact reconciles declared sample coverage and exception count against a tolerable-deviation threshold. Deficiency severity (control / significant / material weakness) and its reason_code are a human reviewer approval record (SPEC.md §27.2), never computed here.",
        "pass_count": 4,
        "population_hash": "sha256:pop-aaa111",
        "reporting_period": "2026-Q2",
        "sample_size": 4,
        "test_conclusion": "operating_effectively",
        "tested_count": 4,
        "tester_id": "tester-jsmith",
        "tester_role": "preparer",
        "tolerable_exception_count": 0,
        "within_tolerance": true
      }
    }
  }
},
    {
  "tool_id": "art-462-je-ruleset-screen",
  "tool_version": "1.0.0",
  "display_name": "Journal-Entry Ruleset Screen",
  "mcp_name": "screen_je_ruleset",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-462-je-ruleset-screen.html",
  "description": "Runs a caller-declared, versioned journal-entry testing ruleset over a caller-declared JE extract and flags each entry that trips one or more rules: weekend/holiday postings, round-number entries, suspense/manual-account postings, post-close entries, and unusual user/account pairings. Every firm-specific convention (which rules are active, what counts as a round number, the weekend day set, the holiday calendar, the suspense-account list, the period-close date, the authorized user/account pairing list) is a caller-declared policy input, never a silent default; the ruleset_version string is echoed verbatim in the output so the artifact records exactly which policy vintage produced the flags. Optionally binds to a caller-declared extract_population_hash for audit-trail linkage to a hashed JE population (soft coupling only, e.g. to an art-460-style extract-integrity record if that node has landed). First of three ARCB-K-1 substantive audit-recalculation kernels. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-462-je-ruleset-screen.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5f9f5a9b7c90cd52f8391fad3645938706315d2271784f07a1fb5a831b588599",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "C30cFXz7E39uTrbuoBOQd/Qkd58W4BU7DMDWABcbXe4SPWPgZr5QwzSGH04kWOPMLQvMfJOBvCdXLNZO4zGVUQVi4cL7XfqMich4Q00d4YupFs8m5lcdthSz8cDwwP8EArMR46jsRdBlUBR504ZYd+9lMbOJzFnkhTv3xvsm2agL7AU7HTsrPX0B68Cmw4bJbr6/M6hkKdenKawccTO5Ng5mwDwlraqoNxdHemGC4Y4XPqzYSxG9hGOKuAuFQdXPFYrPeC3VQxpqdCgRVxyoQrtNaXUvg40ddvBEaY34WxIUr6ZNxKOUE5fYPdc239uQzbl4YX6dcLTeiEdDgzaalA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5f9f5a9b7c90cd52f8391fad3645938706315d2271784f07a1fb5a831b588599",
      "output": {
        "active_rules": [
          "weekend_holiday",
          "round_number",
          "suspense_manual",
          "post_close",
          "unusual_user_account"
        ],
        "extract_population_hash": "sha256:abc123",
        "flagged_count": 4,
        "flagged_entries": [
          {
            "account_id": "1000-CASH",
            "amount": 5000,
            "entry_id": "JE-1",
            "highest_severity": "medium",
            "posting_date": "2026-01-10",
            "rules_tripped": [
              {
                "detail": "weekend_day",
                "rule_id": "weekend_holiday",
                "severity": "low"
              },
              {
                "detail": "multiple_of_1000",
                "rule_id": "round_number",
                "severity": "medium"
              }
            ],
            "user_id": "u1"
          },
          {
            "account_id": "9999-SUSPENSE",
            "amount": 1234.56,
            "entry_id": "JE-2",
            "highest_severity": "high",
            "posting_date": "2026-01-11",
            "rules_tripped": [
              {
                "detail": "weekend_day",
                "rule_id": "weekend_holiday",
                "severity": "low"
              },
              {
                "detail": "suspense_account",
                "rule_id": "suspense_manual",
                "severity": "high"
              },
              {
                "detail": "pair_not_in_authorized_list",
                "rule_id": "unusual_user_account",
                "severity": "medium"
              }
            ],
            "user_id": "u2"
          },
          {
            "account_id": "3000-EXP",
            "amount": 750,
            "entry_id": "JE-3",
            "highest_severity": "high",
            "posting_date": "2026-02-03",
            "rules_tripped": [
              {
                "detail": "posted_after_period_close",
                "rule_id": "post_close",
                "severity": "high"
              },
              {
                "detail": "pair_not_in_authorized_list",
                "rule_id": "unusual_user_account",
                "severity": "medium"
              }
            ],
            "user_id": "u1"
          },
          {
            "account_id": "4000-REV",
            "amount": 420,
            "entry_id": "JE-4",
            "highest_severity": "medium",
            "posting_date": "2026-01-12",
            "rules_tripped": [
              {
                "detail": "pair_not_in_authorized_list",
                "rule_id": "unusual_user_account",
                "severity": "medium"
              }
            ],
            "user_id": "u3"
          }
        ],
        "missing_policy_inputs": [],
        "rule_params_used": {
          "authorized_user_account_pairs_count": 2,
          "holiday_dates": [
            "2026-01-01"
          ],
          "post_close_date": "2026-01-31",
          "round_number_increment": 1000,
          "suspense_accounts": [
            "9999-SUSPENSE"
          ],
          "weekend_days": [
            0,
            6
          ]
        },
        "rule_trip_counts": {
          "post_close": 1,
          "round_number": 1,
          "suspense_manual": 1,
          "unusual_user_account": 3,
          "weekend_holiday": 2
        },
        "ruleset_version": "2026.1",
        "total_entries": 5
      }
    }
  }
},
    {
  "tool_id": "art-463-recalc-suite",
  "tool_version": "1.0.0",
  "display_name": "Audit Recalculation Suite",
  "mcp_name": "run_audit_recalc_suite",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-463-recalc-suite.html",
  "description": "Independently recalculates five caller-supplied audit schedule types (straight-line/double-declining-balance/units-of-production depreciation, interest accrual, EPS basic and diluted, straight-line intangible amortization, and prepaid-expense roll-forwards) and diffs each recalculated figure against the client's stated figure. A category only runs when the caller supplies items for it. The variance threshold gate (tolerance_abs, tolerance_pct) is a caller-declared policy input with an explicit, echoed default of 0/0 (flag any nonzero variance) when the caller declares neither -- there is no silent, unrecorded tolerance. EPS diluted uses the simplified NI-less-preferred-dividends-over-diluted-shares form; it does not model if-converted or treasury-stock adjustments for specific convertible instruments, a judgment-heavy extension out of this kernel's deterministic-recalc scope. Second of three ARCB-K-1 substantive audit-recalculation kernels. NaN-safe; a zero-denominator ratio resolves to null, never NaN/Infinity. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-463-recalc-suite.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d913e4c1ab2a8875f2d19463184c19f2de2051342302d321d03e1c790841c02a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "A5M3kuXSYxcAxK8JtMG46Ph6Wdvk/Ox/o4eVRNyTFD4CqQPj2Hw72dPqpMyIYcA5vCR2WfhO2SK/4QlEvfIfGhg8FChXJOPiHgktYKiUPz+5r94z0B8whJGvcS2i1KiTKs0DbbVpwxSH/RXhy9259X2nMmz6bLGGS90d66GmeHYPJwQPMbfQQDIT1xXnV6c/cbzcB+j5ggtebr+gVPclkgXEq+WAdSk3g3AgOwoFhm3usKt9MJxC7b1oQpa3FkaCFRtxQHPm6IgDxOXFdIif5Nn4uZvwcUvq2uGU/RqFKaMX34ddVMuKGbE0r/epDc/o7/MOw3POEOYToirDopFoKg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d913e4c1ab2a8875f2d19463184c19f2de2051342302d321d03e1c790841c02a",
      "output": {
        "amortization": [
          {
            "client_reported_amortization": 12000,
            "flagged": false,
            "item_id": "M-1",
            "periods_total": 10,
            "recalculated_amortization": 12000,
            "variance": 0,
            "variance_pct": 0
          }
        ],
        "categories_run": [
          "depreciation",
          "interest_accrual",
          "eps",
          "amortization",
          "prepaid_rollforward"
        ],
        "depreciation": [
          {
            "asset_id": "A-1",
            "client_reported_depreciation": 1000,
            "flagged": false,
            "method": "straight_line",
            "period_number": 1,
            "recalculated_depreciation": 1000,
            "variance": 0,
            "variance_pct": 0
          }
        ],
        "eps": [
          {
            "client_reported_eps_basic": 4.8,
            "client_reported_eps_diluted": 3.8,
            "flagged": true,
            "label": "FY2026",
            "recalculated_eps_basic": 4.8,
            "recalculated_eps_diluted": 4.36,
            "variance_basic": 0,
            "variance_diluted": 0.56
          }
        ],
        "flagged_count": 3,
        "interest_accrual": [
          {
            "client_reported_interest": 1490,
            "day_count_basis": "actual_360",
            "flagged": true,
            "item_id": "I-1",
            "recalculated_interest": 1500,
            "variance": 10,
            "variance_pct": 0.67
          }
        ],
        "prepaid_rollforward": [
          {
            "client_reported_ending_balance": 60000,
            "flagged": true,
            "item_id": "P-1",
            "recalculated_ending_balance": 55000,
            "variance": -5000,
            "variance_pct": -8.33
          }
        ],
        "tolerance_used": {
          "abs": 0,
          "declared_by_caller": true,
          "pct": 5
        },
        "total_items": 5
      }
    }
  }
},
    {
  "tool_id": "art-464-confirmation-matcher",
  "tool_version": "1.0.0",
  "display_name": "Bank/AR Confirmation Matcher",
  "mcp_name": "match_confirmations",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-464-confirmation-matcher.html",
  "description": "Joins caller-supplied bank and accounts-receivable confirmation responses against caller-supplied ledger balances on (counterparty_id, type), and classifies each pair EXACT_MATCH, TOLERANCE_MATCH, or MISMATCH, plus confirmations with no corresponding ledger balance and ledger balances with no corresponding confirmation. The match tolerance (tolerance_abs, tolerance_pct) is a caller-declared policy input; the explicit, echoed default is 0/0 (exact match required) when the caller declares neither -- there is no silent, unrecorded tolerance. A duplicate (counterparty_id, type) key on either side is reported as a data-quality flag rather than silently overwritten -- only the first occurrence on each side is joined. Third of three ARCB-K-1 substantive audit-recalculation kernels. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-464-confirmation-matcher.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:54918b9e1a32a89b38be7118d7fa3e6c5af4fc8dc91a023545a4fdbddb0bec76",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KgodNxCGkCvA7iVj+Ukt9h8VgQ63E5EN6tIhZht41JQo/mcKEJJ+wG3kUcauJFKDlJuKDESY7Nj1ZSx/yNnkfShaE1VSCOS6Na9ESKm0f7YyPrw4qd54kJ46Sg25r5l8GCSoVQhhxjcxnSieddtPxQNKJRvs6yY0n427GwRDm1IPizZ4j5MS5wZ5g0CbBE0Ugnbbyv/uwTNGx/iu5pMB0Sy3XQO583L7RgtiRHc+qBofxxiSQMzAjBJBXM4yxutTGpKKg5UYEvEN2vS59opS31znUw+LFUb73PibG/5UaTcUSzH3TS/jd6TNWQTQ1jfI+Lzo5BAysa3sPbCXS2yF1g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:54918b9e1a32a89b38be7118d7fa3e6c5af4fc8dc91a023545a4fdbddb0bec76",
      "output": {
        "duplicate_confirmation_keys": [],
        "duplicate_ledger_keys": [],
        "exact_count": 1,
        "matched": [
          {
            "confirmation_id": "C-1",
            "confirmed_balance": 100000,
            "counterparty_id": "cp-A",
            "ledger_balance": 100000,
            "match_type": "EXACT_MATCH",
            "type": "bank",
            "variance": 0
          }
        ],
        "matched_count": 1,
        "tolerance_count": 0,
        "tolerance_used": {
          "abs": 0,
          "declared_by_caller": true,
          "pct": 2
        },
        "total_confirmations": 4,
        "total_ledger_balances": 4,
        "unmatched": [
          {
            "confirmation_id": "C-2",
            "confirmed_balance": 50100,
            "counterparty_id": "cp-B",
            "ledger_balance": 50000,
            "reason": "MISMATCH",
            "type": "bank",
            "variance": 100
          },
          {
            "confirmation_id": "C-3",
            "confirmed_balance": 20000,
            "counterparty_id": "cp-C",
            "ledger_balance": 15000,
            "reason": "MISMATCH",
            "type": "ar",
            "variance": 5000
          },
          {
            "confirmation_id": "C-4",
            "confirmed_balance": 7500,
            "counterparty_id": "cp-D",
            "ledger_balance": null,
            "reason": "NO_LEDGER_BALANCE",
            "type": "ar",
            "variance": null
          },
          {
            "confirmation_id": null,
            "confirmed_balance": null,
            "counterparty_id": "cp-E",
            "ledger_balance": 9000,
            "reason": "NO_CONFIRMATION",
            "type": "ar",
            "variance": null
          }
        ],
        "unmatched_count": 4
      }
    }
  }
},
    {
  "tool_id": "art-465-workpaper-bundle-composer",
  "tool_version": "1.0.0",
  "display_name": "Workpaper Bundle Composer",
  "mcp_name": "compose_workpaper_bundle",
  "mandate_type": "attestation_mandate",
  "wave": 75,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-465-workpaper-bundle-composer.html",
  "description": "Terminal composer for a substantive-procedure evidence bundle: a procedure identifier, a caller-declared population hash, the prior substantive-recalculation kernels' execution-hash artifacts (art-462 JE rule screen, art-463 recalc suite, art-464 confirmation matcher, or any other procedure kernel), an exception list with disposition inputs, and three declared sign-off roles (preparer, reviewer, partner). Mints no new judgment -- it does not re-run upstream kernels, does not recompute the population hash, and does not decide whether an exception is resolved, only whether a disposition was declared for it. Exception disposition is recorded as an approval record with a reason_code, never a silent close. Partner release is single-signer but always tagged gate_status review_required per the §27 Human Accountability vocabulary -- this node records that a release occurred; it does not enforce countersignature. Second of two ARCB-K-2 kernels. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-465-workpaper-bundle-composer.html#manifest",
  "consumes": [
    "art-462-je-ruleset-screen",
    "art-463-recalc-suite",
    "art-464-confirmation-matcher"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:60abc4f1aab3d73fb82fee1c60cd97697dfbb0b5df878b0afb3b1e879cc682ce",
      "valid_from": "2026-07-24"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GSVmJae3xtRlSy6whdsOoVrWSoyyYucIP7+3l0bJEsobhjv4N2HAUQ5eo1IQdbOrVfFWB0mTISX7x/hkrA2/BB2G4IgHo3PJk1eU8uf/QxYrW8o3nHm3K67q8/61x/ndBKx0CFUrc9ZDzNgyuCUvzT7A//1cc9CxKdazVKOiRnAKF7w3Gro2wSqzHNtuKD8z2h9PckDFBh91ssSk22Mk/TALPJ2sZtOe6ksCQTnbDEuvW36zjJijbtijJwzWQhE2KrwwLZGwcZObXYwb5xducqzB1+aQtwxCDs6M+S5kLz8MUCYSEQzxw48vhTwm1Axq5js6F1IwINJHg83pyaxAdQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:60abc4f1aab3d73fb82fee1c60cd97697dfbb0b5df878b0afb3b1e879cc682ce",
      "output": {
        "disposed_exception_count": 1,
        "exception_count": 1,
        "exceptions": [
          {
            "disposed_by_role": "engagement_reviewer",
            "disposition": "ACCEPTED_IMMATERIAL",
            "item_id": "EXC-1",
            "reason_code": "TOLERANCE_EXCEEDED"
          }
        ],
        "kernel_artifact_count": 3,
        "kernel_artifacts": [
          {
            "execution_hash": "1111aaaa",
            "tool_id": "art-462-je-ruleset-screen"
          },
          {
            "execution_hash": "2222bbbb",
            "tool_id": "art-463-recalc-suite"
          },
          {
            "execution_hash": "3333cccc",
            "tool_id": "art-464-confirmation-matcher"
          }
        ],
        "malformed_kernel_artifacts": [],
        "population_hash": "sha256:aaaa1111bbbb2222",
        "procedure_id": "PROC-AR-CONFIRM-2026Q2",
        "roles": {
          "partner": {
            "declared": true,
            "gate_status": "review_required",
            "role": "engagement_partner",
            "statement": "Released the area for reporting."
          },
          "preparer": {
            "declared": true,
            "role": "staff_auditor",
            "statement": "Prepared the substantive procedure workpapers for this area."
          },
          "reviewer": {
            "declared": true,
            "role": "engagement_reviewer",
            "statement": "Reviewed the prepared workpapers and disposed all noted exceptions."
          }
        },
        "undisposed_exceptions": []
      }
    }
  }
},
    {
  "tool_id": "art-466-dora-roi-builder",
  "tool_version": "1.0.0",
  "display_name": "DORA Register of Information (RoI) Builder & Cross-Validator",
  "mcp_name": "build_dora_roi_register",
  "mandate_type": "compliance_mandate",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-466-dora-roi-builder.html",
  "description": "Constructs and cross-validates the core Register of Information (RoI) template relationships required under DORA (EU 2022/2554) Art. 28/30: entity + ICT third-party providers + functions + contractual arrangements. Validates ISO 17442 LEI format + mod-97 check-digit on the entity and every provider, referential integrity (every function's provider_id, every contract's function_id and provider_id, and function-to-contract provider consistency), and mandatory-field completeness per record type, emitting a form-shaped JSON dataset plus a validation report with per-record findings and compliance_flags. Distinct from the RoI's official xBRL-CSV submission format, which this kernel does NOT emit (a later WU handles ESA-format conversion). Distinct from art-467-dora-incident-classifier (this validates the standing RoI dataset; that classifies a single ICT incident's reporting obligations). Criticality of functions/providers is a caller-declared flag, not judged here.",
  "input_schema_ref": "chaingraph/art-466-dora-roi-builder.html#manifest",
  "deadline": "2027-01-31",
  "deadline_note": "DORA RoI annual submission cycle, Q1 (2nd cycle completed Q1 2026; next cycle Q1 2027).",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4f605ce91ebec16f4f7e409b383f1f5f273b5f3e0551894aed9765e2b7681d80",
      "valid_from": "2026-07-24"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HS2QCqcxMnhlmUa/Dj5pwJqdVNNO7BHYdVbcAR5ZG94bLdxt7ThrufHM21TMlUNcRr5I3rXYf3k6guUWkysErSsi2HsUMU2e8xiLhBc0LQPUIQfgGZS+gNaw51gjLGANEDC8FYB8IHYYEsfPBnNyqyXRHgENHt2PMIvoNiqMxE0FiwAr8/3e1bgYoA9z68O9NzrYgfXjTM/+arKClY0VrBGwv/YXu1utkCAdcrki9W74GKkkiOTqg+Ru7uJ5oybqA0U9kNzFt+XUDiW++qUJphcDgJKzG5CjwDqCnOxe8Akvh/owtxfcFv4mI/e3dNtf1g5Xc8rpLbQ7LYJpy5C5mA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4f605ce91ebec16f4f7e409b383f1f5f273b5f3e0551894aed9765e2b7681d80",
      "output": {
        "contracts": [
          {
            "contract_id": "ctr-1",
            "contract_reference": "CTR-2026-001",
            "end_date": null,
            "function_id": "fn-1",
            "governing_law": "Ireland",
            "provider_id": "prov-1",
            "start_date": "2024-01-01"
          }
        ],
        "entity": {
          "entity_lei": "529900T8BM49AURSDO55",
          "entity_name": "Test Bank NV"
        },
        "functions": [
          {
            "critical": true,
            "function_id": "fn-1",
            "function_type": "ict_services",
            "name": "Core banking hosting",
            "provider_id": "prov-1"
          }
        ],
        "note": "Form-shaped internal representation of the DORA Register of Information core template relationships (entity / ICT third-party providers / functions / contractual arrangements), OIM-report-model-shaped. This kernel does NOT emit xBRL-CSV (the RoI's official submission format); it validates LEI format, referential integrity across templates, and mandatory-field completeness only. Criticality designation of functions/providers is a caller-supplied input, not computed here, and is not an approval or sign-off record.",
        "providers": [
          {
            "country": "IE",
            "lei": "529900T8BM49AURSDO55",
            "name": "CloudCo Ireland Ltd",
            "provider_id": "prov-1",
            "service_type": "cloud_iaas"
          }
        ],
        "validation_report": {
          "compliance_flags": [],
          "findings": [
            {
              "check": "mandatory_fields",
              "message": "Entity mandatory fields present.",
              "record_id": "entity",
              "record_type": "entity",
              "status": "pass"
            },
            {
              "check": "lei_validity",
              "message": "Entity LEI passes ISO 17442 format + mod-97 check.",
              "record_id": "entity",
              "record_type": "entity",
              "status": "pass"
            },
            {
              "check": "mandatory_fields",
              "message": "Provider mandatory fields present.",
              "record_id": "prov-1",
              "record_type": "provider",
              "status": "pass"
            },
            {
              "check": "lei_validity",
              "message": "Provider prov-1 LEI passes ISO 17442 format + mod-97 check.",
              "record_id": "prov-1",
              "record_type": "provider",
              "status": "pass"
            },
            {
              "check": "mandatory_fields",
              "message": "Function mandatory fields present.",
              "record_id": "fn-1",
              "record_type": "function",
              "status": "pass"
            },
            {
              "check": "referential_integrity",
              "message": "Function fn-1 provider_id resolves.",
              "record_id": "fn-1",
              "record_type": "function",
              "status": "pass"
            },
            {
              "check": "mandatory_fields",
              "message": "Contract mandatory fields present.",
              "record_id": "ctr-1",
              "record_type": "contract",
              "status": "pass"
            },
            {
              "check": "referential_integrity",
              "message": "Contract ctr-1 function_id resolves.",
              "record_id": "ctr-1",
              "record_type": "contract",
              "status": "pass"
            },
            {
              "check": "referential_integrity",
              "message": "Contract ctr-1 provider_id resolves.",
              "record_id": "ctr-1",
              "record_type": "contract",
              "status": "pass"
            },
            {
              "check": "referential_integrity",
              "message": "Contract ctr-1 provider_id agrees with function fn-1's provider.",
              "record_id": "ctr-1",
              "record_type": "contract",
              "status": "pass"
            }
          ],
          "summary": {
            "checks": {
              "lei_validity": {
                "fail": 0,
                "pass": 2
              },
              "mandatory_fields": {
                "fail": 0,
                "pass": 4
              },
              "referential_integrity": {
                "fail": 0,
                "pass": 4
              }
            },
            "contract_count": 1,
            "entity_count": 1,
            "function_count": 1,
            "overall_pass": true,
            "provider_count": 1
          },
          "table_source": "DORA (EU) 2022/2554 Art. 28/30 (Register of Information); ESAs final RTS/ITS on standard templates for the register of information (JC 2023 85); ISO 17442:2020 + ISO 7064:2003 Mod 97-10 for LEI check-digit validation.",
          "table_version": "DORA-ROI-TEMPLATES-STRUCTURAL-2026"
        }
      }
    }
  }
},
    {
  "tool_id": "art-467-dora-incident-classifier",
  "tool_version": "1.0.0",
  "display_name": "DORA ICT Incident Classifier & Reporting Clock",
  "mcp_name": "classify_dora_ict_incident_and_clock_deadlines",
  "mandate_type": "attestation_mandate",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-467-dora-incident-classifier.html",
  "description": "Classifies an ICT-related incident as major or non-major under DORA (EU 2022/2554) Art. 18, applying the published RTS (EU 2024/1772) numeric criteria (clients affected %, duration, geographical spread, data losses, economic impact, critical-services impact, reputational impact), then starts the DORA Art. 19 reporting clock (4-hour initial notification, 72-hour intermediate report, 1-calendar-month final report, all from classification) once classified major. Follows the art-428-cyber-incident-clock deadline-clock pattern for the EU DORA regime; see that node for the analogous US banking/SEC/NYDFS clock. Not a duplicate of the existing art-09-dora-incident-classifier (earlier draft-RTS citation, no notification-clock link, infrastructure_mandate) -- art-467 cites the final 2024 RTS/ITS package and is built to the attestation-clock pattern; the overlap between the two is flagged for review, not hidden. This node classifies and computes deadlines only; it does not itself transmit, file, or submit any regulatory notification, and it is not legal advice.",
  "input_schema_ref": "chaingraph/art-467-dora-incident-classifier.html#manifest",
  "deadline": null,
  "deadline_note": "DORA (EU) 2022/2554 in force January 2025; incident-classification/reporting obligations are ongoing, not a one-time deadline.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2f4fe65161e59aee68e9609258e251c1a571a671f2167a00a2d0dc1c514ac4a7",
      "valid_from": "2026-07-24"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "L9gTFTrDTsiZ9UwLpdHCrVbxwgHSD7bQrDxZDjc0Dbod/JZrMw1NBxh0iksyVA9fSRtuRRW9vPjdoOMOvIErPBjXJKi+QSDlyxME15TjJ+e5N7zQbLylb4yz00pHfXWTGY3oGlQrE07WaRxP3aScD5gu/zD8ES32Q/9KnLgjCikQPxdMI4b6A+NLoIoppgdzDu61mqlsi6YgJqDgu78F+ykUL8lbzaM4om12N2Pb0gxn5iJVFyHrkvO4A3wbvTW5J/SuJB3Lsamube6mYX4cXGs3R7Ry8Z6vXCzrghI7LeQMEs46Sb4KEKHb+Ln7OeChF26s3tse62EKrGNfE2xSQw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2f4fe65161e59aee68e9609258e251c1a571a671f2167a00a2d0dc1c514ac4a7",
      "output": {
        "criteria_detail": [
          {
            "article": "DORA Art. 18(1)(a); RTS (EU) 2024/1772 clients-affected threshold",
            "criterion_id": "clients_affected",
            "met": false,
            "value": "2% (threshold >=10%)"
          },
          {
            "article": "DORA Art. 18(1)(b); RTS (EU) 2024/1772 duration threshold",
            "criterion_id": "duration",
            "met": false,
            "value": "30 min (threshold >=1440 min)"
          },
          {
            "article": "DORA Art. 18(1)(c); RTS (EU) 2024/1772 geographical-spread threshold",
            "criterion_id": "geographical_spread",
            "met": false,
            "value": "1 member state(s) (threshold >=2)"
          },
          {
            "article": "DORA Art. 18(1)(d); RTS (EU) 2024/1772 data-losses criterion (confidentiality/integrity/availability impact)",
            "criterion_id": "data_losses",
            "met": false,
            "value": "No data loss reported"
          },
          {
            "article": "DORA Art. 18(1)(e); RTS (EU) 2024/1772 economic-impact threshold",
            "criterion_id": "economic_impact",
            "met": false,
            "value": "EUR 5000 (threshold >=EUR 100000)"
          },
          {
            "article": "DORA Art. 18(1)(f); RTS (EU) 2024/1772 criticality-of-services criterion",
            "criterion_id": "critical_services_affected",
            "met": false,
            "value": "No critical/important function affected"
          },
          {
            "article": "DORA Art. 18(1)(g); RTS (EU) 2024/1772 reputational-impact criterion",
            "criterion_id": "reputational_impact",
            "met": false,
            "value": "No reputational impact reported"
          }
        ],
        "incident_id": "INC-2026-0100",
        "major_incident": false,
        "note": "Deterministic DORA (Art. 18) major-incident classification over caller-declared severity dimensions, plus a DORA Art. 19 reporting-clock (initial/intermediate/final) once classified major. See art-428-cyber-incident-clock.kernel.mjs for the analogous US notification-clock pattern. This kernel classifies and computes deadlines only; it does not itself transmit, file, or submit any regulatory notification, and it is not legal advice. Criticality of the affected function/provider (critical_services_affected) is a caller-supplied input, not computed or judged here.",
        "qualifying_criteria": [],
        "reporting_clock": null,
        "table_source": "DORA (EU) 2022/2554 Art. 18 (classification criteria) + Art. 19 (reporting obligations/timelines); Commission Delegated Regulation (EU) 2024/1772 (RTS on classification criteria for major ICT-related incidents and significant cyber threats); Commission Implementing Regulation (EU) 2025/302 (ITS on standard forms/templates and timelines for major-incident reports). Numeric thresholds pinned at MODERATE confidence -- verify against final consolidated RTS/ITS text at legal review before relying on this verdict for an actual filing.",
        "table_version": "DORA-RTS-2024-1772-CLASSIFICATION+ITS-2025-302-TIMELINES-2026-07",
        "verdict": "NON_MAJOR"
      }
    }
  }
},
    {
  "tool_id": "art-470-lookback-completeness-reconciler",
  "tool_version": "1.0.0",
  "display_name": "AML Lookback Completeness Reconciler",
  "mcp_name": "reconcile_aml_lookback_completeness",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-470-lookback-completeness-reconciler.html",
  "description": "Reconciles an AML consent-order remediation lookback's order-scope population against the extract actually produced for re-screening, per historical period. Coverage is always measured against the caller-declared SOURCE-SYSTEM record count, never the extract's own self-reported count -- a lookback that reports zero gaps because it only counted what the extract already contains is indistinguishable from a clean lookback, and catching that blind spot is this node's purpose. A second axis reconciles versioned policy-list snapshot availability: any period whose sanctions/PEP list snapshot was not preserved is flagged unverifiable and excluded from the screened-coverage total rather than silently re-screened against today's list. Also flags duplicate records surviving dedup. Deterministic reconciliation arithmetic only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-470-lookback-completeness-reconciler.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:88f0b073173f8eafac3e96acaa0200f936815a627d4985738cbf8e79217632ca","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CJYGZJa20YFLmyDfPvK5kUIseKPfPjjIvobNa2Y1FnwKk8iB6mGq9a+M8MI1XX4wDoBMIld79Gs7iLpGelNtRhn1/Fl1bbIAQXNVZXGSRWuSxLHeCXzrMy39f43El9l1IADcbsPes7SKSP3o9WxyHElSGYDIII25hmxiblK9/VkKS6eGccNC6GwRRQg9p3O8EtG/Z8TLk4vqXF2bTcGAEAZGntrKuHFSWaEU0x6TdYDnzVHJbuiMv8IInDPuRBOxBi0pBdGSKtfiiej7tMHKKEqLrIOadxALTwqns9kX5MEKLCEZfa58NIFx3NMupT0p+6VqOTnkM1Qp7oM44L+imQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:88f0b073173f8eafac3e96acaa0200f936815a627d4985738cbf8e79217632ca",
      "output": {
        "gap_periods": [],
        "lookback_status": "complete",
        "overall_coverage_pct": 100,
        "period_count": 2,
        "periods": [
          {
            "coverage_pct": 100,
            "dedup_record_count": 500,
            "duplicate_count": 0,
            "extract_record_count": 500,
            "gap_count": 0,
            "period_label": "2023-Q4",
            "period_status": "complete",
            "snapshot_available": true,
            "source_record_count": 500
          },
          {
            "coverage_pct": 100,
            "dedup_record_count": 620,
            "duplicate_count": 0,
            "extract_record_count": 620,
            "gap_count": 0,
            "period_label": "2024-Q1",
            "period_status": "complete",
            "snapshot_available": true,
            "source_record_count": 620
          }
        ],
        "total_duplicate_count": 0,
        "total_extract_record_count": 1120,
        "total_source_record_count": 1120,
        "unverifiable_periods": [],
        "verifiable_extract_count": 1120,
        "verifiable_source_count": 1120
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-471-disposition-sampling-frame",
  "tool_version": "1.0.0",
  "display_name": "AML Disposition Sampling Frame Builder",
  "mcp_name": "plan_aml_disposition_sample",
  "mandate_type": "compliance_control",
  "wave": 74,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-471-disposition-sampling-frame.html",
  "description": "Builds a deterministic sampling frame over an AML consent-order lookback's historical alert dispositions for independent-validator review, plus a reviewer workload allocation. Reuses the shipped art-458-attribute-sampling-plan kernel's compute() directly for the statistical core (sample size, deterministic interval selection over a caller-declared population hash) rather than reimplementing it -- no randomness, fully replayable by an independent reviewer from the same declared inputs. Adds only the AML-specific layer: labeling the frame as a disposition sample and deterministically fanning the selected indices out round-robin across a caller-declared reviewer roster. Deterministic only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-471-disposition-sampling-frame.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:33d8dd00530f61c28fc39625801011c67b5ebb1694d5abe4bc9af6c882daa66c","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LpfacQDdZhyZhM5xuCkpz0It5UzGko80a29xE8/rBFIClk7WSkTL8y+euDPALVKhN1eJboh8CU/B/ZIw8oWYQg9XZtYGer9eMpKC/Anq15RmrZSkhhyShjt+rG2Kb+s3BdByF76llxOFORiJNG0y4qTTmz+k1TEQhg2sJfEdQm8W2R219+OVxSmzsVfsjadXdbJHJUUql/2hbPthDi3FQBQvXcTiGCL72rzSI/jG3YCd0yy0AaowFP3w2LYHXeoDBneL52d+8+y0tyYiFim9q7nvtD/lN5ju38Y2BbRGqnwpe50zFnQuCvSAqUl1eq56uGiVfqvrnJcqbEPmK3x3Eg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:33d8dd00530f61c28fc39625801011c67b5ebb1694d5abe4bc9af6c882daa66c",
      "output": {
        "confidence_level": 95,
        "disposition_population_hash": "abc123",
        "disposition_population_size": 1000,
        "expansion_factor": 1,
        "expected_deviation_rate": 0,
        "interval": 16,
        "method": "poisson_attribute_sampling",
        "reviewer_roster": [
          "reviewer_1"
        ],
        "reviewer_workload": [
          {
            "disposition_indices": [
              0,
              16,
              32,
              48,
              64,
              80,
              96,
              112,
              128,
              144,
              160,
              176,
              192,
              208,
              224,
              240,
              256,
              272,
              288,
              304,
              320,
              336,
              352,
              368,
              384,
              400,
              416,
              432,
              448,
              464,
              480,
              496,
              512,
              528,
              544,
              560,
              576,
              592,
              608,
              624,
              640,
              656,
              672,
              688,
              704,
              720,
              736,
              752,
              768,
              784,
              800,
              816,
              832,
              848,
              864,
              880,
              896,
              912,
              928
            ],
            "reviewer_id": "reviewer_1"
          }
        ],
        "sample_size": 59,
        "selected_indices": [
          0,
          16,
          32,
          48,
          64,
          80,
          96,
          112,
          128,
          144,
          160,
          176,
          192,
          208,
          224,
          240,
          256,
          272,
          288,
          304,
          320,
          336,
          352,
          368,
          384,
          400,
          416,
          432,
          448,
          464,
          480,
          496,
          512,
          528,
          544,
          560,
          576,
          592,
          608,
          624,
          640,
          656,
          672,
          688,
          704,
          720,
          736,
          752,
          768,
          784,
          800,
          816,
          832,
          848,
          864,
          880,
          896,
          912,
          928
        ],
        "start_offset": 0,
        "tolerable_deviation_rate": 5
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-472-cbcr-builder",
  "tool_version": "1.0.0",
  "display_name": "OECD Country-by-Country Report Builder",
  "mcp_name": "build_cbcr_report",
  "mandate_type": "compliance_mandate",
  "wave": 75,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-472-cbcr-builder.html",
  "description": "Builds an OECD BEPS Action 13 Country-by-Country Report XML schema skeleton from a caller-declared Table 1 (jurisdiction revenue/profit/tax/employee/asset data) and Table 2 (constituent-entity list) against a caller-declared, version-pinned Action 13 XML schema version. Runs internal consistency checks -- per-jurisdiction revenue-component sums, employee/asset non-negativity, entity-jurisdiction referential integrity between Table 1 and Table 2 -- and surfaces a profit-with-zero-employees anomaly flag for the downstream §27 review gate. Also produces EU Directive (EU) 2021/2101 and Australian public-CbCR field-subset export modes. NEVER a submission -- not accepted by any national CbCR gateway; each jurisdiction's own portal runs its own additional validation. Comparable-set selection and transfer-pricing judgment stay out of scope (see art-473-interquartile-benchmark for arm's-length range arithmetic). Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-472-cbcr-builder.html#manifest",
  "consumes": [],
  "feeds": [
    "art-473-interquartile-benchmark"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:62a04a2495b254beb4938ec0bf7c60631fd7d37bdcb79e12677091656b0cb8ce",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EPNfcIzJGz7y4f7UFVxOwYuE3oDL/tiEuEV0XWZSbQgF6KLmLc7qmHYUFlF7GCKBVODGxPJwD19cGpsNEh1gjyCOeBduv5XxwgG/u3hOOXoTt8TI0vsdHPvD1auycfNPBfEMB4S8PgzfwN7hOZwUsZvH1HCgixggwUU44VZDxHUdWuR44EMnO9Q582YhkXHnIHoavlzYjHnLz+HvdqNAzCmP5wP+sy3N1kXf1Z4PYli9f+2qVCqJkaVm3XtGS+PsKlVnIFOrkv163HUjIFyJYjQM++JwfjJdn0T2EwTr574XmNC5pA0fHGkHFmwJma6GLB1fPtrNtQadF7KUMZ3uUA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:62a04a2495b254beb4938ec0bf7c60631fd7d37bdcb79e12677091656b0cb8ce",
      "output": {
        "all_fatal_passed": true,
        "anomaly_flags": [],
        "checks": [
          {
            "description": "Related-party revenue plus unrelated-party revenue equals total revenue, within rounding tolerance.",
            "id": "EDIT-REV-1",
            "jurisdiction_code": "IE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Number of employees is non-negative.",
            "id": "EDIT-EMP-1",
            "jurisdiction_code": "IE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Tangible assets other than cash/cash-equivalents is non-negative.",
            "id": "EDIT-AST-1",
            "jurisdiction_code": "IE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Related-party revenue plus unrelated-party revenue equals total revenue, within rounding tolerance.",
            "id": "EDIT-REV-2",
            "jurisdiction_code": "DE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Number of employees is non-negative.",
            "id": "EDIT-EMP-2",
            "jurisdiction_code": "DE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Tangible assets other than cash/cash-equivalents is non-negative.",
            "id": "EDIT-AST-2",
            "jurisdiction_code": "DE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Constituent entity (Table 2) jurisdiction exists in the Table 1 jurisdiction list.",
            "id": "EDIT-REF-Synthetic Ireland Ltd",
            "jurisdiction_code": "IE",
            "passed": true,
            "severity": "fatal"
          },
          {
            "description": "Constituent entity (Table 2) jurisdiction exists in the Table 1 jurisdiction list.",
            "id": "EDIT-REF-Synthetic Germany GmbH",
            "jurisdiction_code": "DE",
            "passed": true,
            "severity": "fatal"
          }
        ],
        "export_mode": "private_filing",
        "fatal_failure_count": 0,
        "gate_status": "auto_pass",
        "jurisdictions": [
          {
            "accumulated_earnings": 1200,
            "income_tax_accrued": 30,
            "income_tax_paid": 25,
            "jurisdiction_code": "IE",
            "number_of_employees": 50,
            "profit_before_tax": 200,
            "stated_capital": 500,
            "tangible_assets": 2000,
            "total_revenue": 1000
          },
          {
            "accumulated_earnings": 700,
            "income_tax_accrued": 22,
            "income_tax_paid": 20,
            "jurisdiction_code": "DE",
            "number_of_employees": 120,
            "profit_before_tax": 80,
            "stated_capital": 300,
            "tangible_assets": 1500,
            "total_revenue": 1000
          }
        ],
        "not_submittable": "This artifact proves internal consistency and schema-shape against the declared schema_version. It is NEVER a filed submission and is not accepted by any national CbCR gateway -- each jurisdiction gateway (IRS/HMRC/ATO/etc.) runs its own additional validation.",
        "orphan_entities": [],
        "schema_version": "oecd-cbcr-xml-3.0-2026-07-01",
        "xml_schema_skeleton": {
          "reporting_entity": {
            "entity_name": "Synthetic Global Holdings Ltd",
            "tin": "SYN-TIN-000001"
          },
          "root_element": "CBC_OECD",
          "schema_version": "oecd-cbcr-xml-3.0-2026-07-01",
          "table1_jurisdiction_count": 2,
          "table2_entity_count": 2
        }
      }
    }
  }
},
    {
  "tool_id": "art-473-interquartile-benchmark",
  "tool_version": "1.0.0",
  "display_name": "Transfer-Pricing Interquartile Range Benchmark",
  "mcp_name": "benchmark_tp_interquartile_range",
  "mandate_type": "compliance_mandate",
  "wave": 75,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-473-interquartile-benchmark.html",
  "description": "OECD Transfer Pricing Guidelines Ch. III §3.57 interquartile-range arithmetic over a caller-declared array of already-selected comparable financial ratios: linear-interpolation quartiles (Q1/median/Q3), IQR, and a tested-party ratio-vs-range verdict (below/within/above range). Also computes the TNMM net-cost-plus and operating-margin ratios and the Berry ratio directly from caller-declared financial data. Comparable-set SELECTION and functional/DEMPE analysis are entirely caller judgment -- this kernel performs no comparability analysis and never opines on which PLI applies; it is pure downstream arithmetic on an already-selected set. Cross-links art-456 GloBE safe-harbour (consumes the same underlying entity financial data for a different regime). Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-473-interquartile-benchmark.html#manifest",
  "consumes": [
    "art-472-cbcr-builder"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:cb1ba5cdbe3498d0233716df24c81eefbc4b95386d57e76991a0c0c005b48f49",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-07-24"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Dewdzj0e1zQR2ObXXZ5Cu+O8JQ4zYkpvSfGNKgQTuWMo6KDgUgUHPVeZSlU1HC4vz6kwyMCA0jLTU7km9rdzTAAUSdOzRHXIdh+p/UltbIx8NLdHSR+U+1grEfXoUfNUH5YxXJ2y1ziQuzNAPjE4V0Az2Zi2nNi+1k7cdnLUWrMWVaQFCGzIBDKmwy98J4PVMgwrdBzcmlv/YJETLhA44wNvFCPsQFZrdUHjVOpbmQCH6RdWFrrGRDmZgPzt1LdqAUAmkwk8ecycp1/drJMUwG2aJ60fIGPhEplQNwTDKfoGxBL5/JbWE/sc7KFLVlxjDAfCJfCrpGTyWod3isnX8w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:cb1ba5cdbe3498d0233716df24c81eefbc4b95386d57e76991a0c0c005b48f49",
      "output": {
        "comparable_count": 7,
        "iqr": 0.020000000000000004,
        "median": 0.04,
        "missing_inputs": [],
        "not_a_comparable_selector": "Arithmetic only. Comparable-set selection, functional/DEMPE analysis, and PLI choice are caller judgment and are never performed or validated by this kernel.",
        "q1": 0.03,
        "q3": 0.05,
        "range_verdict": "within_range",
        "ratio_suite": {
          "berry_ratio": 1.6,
          "tnmm_net_cost_plus_margin": 0.1111111111111111,
          "tnmm_operating_margin": 0.1
        },
        "sorted_comparable_ratios": [
          0.02,
          0.03,
          0.035,
          0.04,
          0.045,
          0.05,
          0.06
        ],
        "tested_party_ratio": 0.038
      }
    }
  }
},
    {
  "tool_id": "art-474-validate-mt700-lc-fields",
  "tool_version": "1.0.0",
  "display_name": "MT700 LC Field Validator",
  "mcp_name": "validate_mt700_lc_fields",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-474-validate-mt700-lc-fields.html",
  "description": "Validates SWIFT MT700 Documentary Credit field-format and date-logic conformance against UCP 600 / MT700 mandatory-field rules: DC number, form of credit, issue/expiry/shipment dates, currency and amount, availability terms, shipment terms, goods description, documents required, presentation period, and party fields. Returns a weighted compliance score, field-by-field findings, and article citations. Provable node counterpart to tools/420-mt700-lc-field-validator.html; the tool page's Presented Documents discrepancy check (UCP 600 R01-R14) stays browser-only.",
  "input_schema_ref": "chaingraph/art-474-validate-mt700-lc-fields.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:bbd232c7a97741b408b0957f63f84669da0307d0b6c6f36e92c821d2ff568bf4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "export_capability": ["json"],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ABrnwTXL1/DaO5WEtecocw4i3tbNgzbA/8keBVDDLjAK3rBzj0xLi+Eoj6MJDqxlRXodmBfxU50G4kD6DwXZrgQm710/k04RobbMKeWZrtEeutwqWF73xvB/N0Z4g0Y3CWvGjKePG+P1eIuRMkYP4YO8yiymc6gJg2kVepzidk8Tqg1/0YF6ObjHxxpkMeJHdNldRfSlZaqAnxYEMdvzJwj3ztjzrFVehH3MsSj5P9Utoi7YxkUkRnbrB6S2GwqpBANUzjPj/x7uygoxxl0UZsytC+JsEPsusNt1zCvN1OAuC5he7ZUlAD2DlmqA5h8K89AZ+/5VhC3f0fQnKSD+JQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:bbd232c7a97741b408b0957f63f84669da0307d0b6c6f36e92c821d2ff568bf4",
      "output": {
        "compliant": true,
        "error_count": 0,
        "errors": [],
        "field_results": [
          {
            "field": "20",
            "issue": "",
            "label": "DC Number",
            "rule": "Max 16 chars, A-Z 0-9 / -",
            "status": "ok",
            "value": "LC2024/001234"
          },
          {
            "field": "40A",
            "issue": "",
            "label": "Form of DC",
            "rule": "ICC-recognised form",
            "status": "ok",
            "value": "IRREVOCABLE"
          },
          {
            "field": "31C",
            "issue": "",
            "label": "Date of Issue",
            "rule": "Valid YYMMDD",
            "status": "ok",
            "value": "260901"
          },
          {
            "field": "31D Date",
            "issue": "",
            "label": "Date of Expiry",
            "rule": "After issue date",
            "status": "ok",
            "value": "261231"
          },
          {
            "field": "31D Place",
            "issue": "",
            "label": "Place of Expiry",
            "rule": "Place specified",
            "status": "ok",
            "value": "LONDON, UNITED KINGDOM"
          },
          {
            "field": "32B",
            "issue": "",
            "label": "Currency/Amount",
            "rule": "Valid CCY + amount",
            "status": "ok",
            "value": "USD 500000.00"
          },
          {
            "field": "41 Bank",
            "issue": "",
            "label": "Available With",
            "rule": "Bank specified",
            "status": "ok",
            "value": "ANY BANK"
          },
          {
            "field": "41 By",
            "issue": "",
            "label": "Available By",
            "rule": "Valid payment method",
            "status": "ok",
            "value": "BY NEGOTIATION"
          },
          {
            "field": "42",
            "issue": "",
            "label": "Drafts At",
            "rule": "N/A for Payment/Negotiation",
            "status": "skip",
            "value": "(not required)"
          },
          {
            "field": "43P",
            "issue": "",
            "label": "Partial Shipments",
            "rule": "Valid value",
            "status": "ok",
            "value": "ALLOWED"
          },
          {
            "field": "43T",
            "issue": "",
            "label": "Transhipment",
            "rule": "Valid value",
            "status": "ok",
            "value": "NOT ALLOWED"
          },
          {
            "field": "44A",
            "issue": "",
            "label": "Port of Loading",
            "rule": "Specified",
            "status": "ok",
            "value": "SHANGHAI, CHINA"
          },
          {
            "field": "44B",
            "issue": "",
            "label": "Port of Discharge",
            "rule": "Specified",
            "status": "ok",
            "value": "ROTTERDAM, NETHERLANDS"
          },
          {
            "field": "44C",
            "issue": "",
            "label": "Latest Shipment",
            "rule": "Valid date sequence",
            "status": "ok",
            "value": "261201"
          },
          {
            "field": "45A",
            "issue": "",
            "label": "Description of Goods",
            "rule": "Goods described with Incoterm",
            "status": "ok",
            "value": "ELECTRONIC COMPONENTS AS PER PROFORMA IN..."
          },
          {
            "field": "46A",
            "issue": "1 common doc(s) not detected",
            "label": "Documents Required",
            "rule": "Invoice + transport doc + packing list expected",
            "status": "ok",
            "value": "SIGNED COMMERCIAL INVOICE IN TRIPLICATE\nFULL SET C..."
          },
          {
            "field": "48",
            "issue": "",
            "label": "Presentation Period",
            "rule": "Within UCP 600 Art.14(c) limit",
            "status": "ok",
            "value": "21 days"
          },
          {
            "field": "49",
            "issue": "",
            "label": "Confirmation",
            "rule": "Valid instruction",
            "status": "ok",
            "value": "CONFIRM"
          },
          {
            "field": "50",
            "issue": "",
            "label": "Applicant",
            "rule": "Specified",
            "status": "ok",
            "value": "ABC IMPORT CO, 123 MAIN ST, NEW YORK"
          },
          {
            "field": "59",
            "issue": "",
            "label": "Beneficiary",
            "rule": "Specified",
            "status": "ok",
            "value": "XYZ EXPORT LTD, 45 HARBOUR RD, SHANGHAI"
          }
        ],
        "score": 96,
        "verdict": "compliant",
        "warning_count": 1,
        "warnings": [
          {
            "citation": "UCP 600 Art.19-25",
            "field": "46A",
            "message": "Field 46A: Transport document (B/L, AWB) not detected -- typically required."
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-475-cfpb-1071-coverage-check",
  "tool_version": "1.0.0",
  "display_name": "CFPB 1071 Coverage Check & SBLAR Record Validator",
  "mcp_name": "compute_cfpb_1071_coverage",
  "mandate_type": "compliance_mandate",
  "wave": 70,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-475-cfpb-1071-coverage-check.html",
  "description": "CFPB Section 1071 small business lending rule (Regulation B subpart B, revised final rule published 2026-05-01): determines whether a financial institution is a covered originator by checking its small-business-originations count against the 1,000-origination threshold for each of the two preceding calendar years, and validates a batch of Small Business Lending Application Register (SBLAR) records against a caller-supplied required-field schema. Fixed compliance-date reference: data collection begins 2028-01-01, first SBLAR submission due 2029-06-01. Deterministic threshold comparison and field-presence check only -- no filing, no submission, no hardcoded field-list claim beyond the caller's supplied schema.",
  "input_schema_ref": "chaingraph/art-475-cfpb-1071-coverage-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:0ef028be15ca148086aa48b2fc87b6f735c14233206ae951b0d1c8f285b98c72","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JSRQp6ZTR4p544/GA6/9SHTM5nsgeEJcNLmBxBpAupQUnUE4ZY9O3i0FHosCX1MWz4M6/EdVNeBL1Mw2Rc0Njyw8ZcCNX9FkyukvvB+BBsHWmDr7v6gHFT31W4Z0WwHXEoH/CvRUJwF2Gu4ot7hrlXbBjyZboM7NMNC9uXNYYOIuMAHIao5ALrxFJp1BNWpOUcJCVgzztb2StfoxLr4dlyk6C97o6B7UHeULJf1YuVWH8iZr9XoqU96dZJFRVQJECl72AQdFIeunUCp0Bl4V+Sg12zLGKAV+I6OUGrrhlhYU+kenABL4ileFMBWTnZJ09JsiNMzidzm7l3/Yj6N//w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:0ef028be15ca148086aa48b2fc87b6f735c14233206ae951b0d1c8f285b98c72",
      "output": {
        "compliance_dates": {
          "data_collection_start": "2028-01-01",
          "first_sblar_due": "2029-06-01"
        },
        "covered": true,
        "note": "Coverage determination compares caller-supplied origination counts to the fixed 1,000-per-year threshold. SBLAR field validation checks presence only, against a caller-supplied required-field schema -- this kernel makes no claim about which fields the current rule requires. Not a filing or submission.",
        "originations_year1_count": 1500,
        "originations_year2_count": 1200,
        "regulatory_basis": "CFPB Section 1071 small business lending rule, Regulation B subpart B, revised final rule published 2026-05-01: covered-institution threshold of 1,000 small-business-lending originations in each of the two preceding calendar years.",
        "required_sblar_fields": [
          "uli",
          "application_date",
          "action_taken"
        ],
        "sblar_records": [
          {
            "missing_fields": [],
            "present_fields_count": 3,
            "record_id": "rec-1",
            "required_fields_count": 3,
            "valid": true
          },
          {
            "missing_fields": [],
            "present_fields_count": 3,
            "record_id": "rec-2",
            "required_fields_count": 3,
            "valid": true
          }
        ],
        "sblar_summary": {
          "invalid_records": 0,
          "total_records": 2,
          "valid_records": 2
        },
        "threshold": 1000
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-476-map-agent-payment-mandate",
  "tool_version": "1.0.0",
  "display_name": "Agent Payment Mandate Cross-Protocol Mapper",
  "mcp_name": "map_agent_payment_mandate",
  "mandate_type": "compliance_control",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-476-map-agent-payment-mandate.html",
  "description": "Translates an agentic-payment mandate declared under one protocol (AP2, x402, or ACP) into the field vocabulary of another, pivoting through one internal canonical schema so each protocol needs only one mapping in and one mapping out. Emits the translated mandate plus a mapping receipt: source digest, target digest, mapping-table version, and a declared lossy-fields list, so any field the source could not carry is surfaced rather than silently dropped. AP2 and x402 field usage verified against art-01, art-62, and art-26; ACP is a draft-generic profile pending independent confirmation of its public schema. Verify-only and translate-only: nothing here initiates, routes, or settles a payment.",
  "input_schema_ref": "chaingraph/art-476-map-agent-payment-mandate.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:a10219350fc810ab2fc5e6acfec6cad91e855e0b0c493b1e518b3fcc04a2e07d","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "KvT/bUz6kpUyxm9BQCSbD+xCVTLH+EkysF1p+TUa6EMCFgP3x4Sw4H+QK97xpZuSqR/pYCFs9JbMAvF67SttJQr6Siw4LSstwW0vXH1HlFD5dFOWVZVxIIPx7vuT3vdTBDFYmOLtG5H/XTuSpmkrLvUBZB8jNNUIC0ryVonxJ+0kr3yU2vpke1seEzVlFO3tQV1w1Ja4nESgryWUxMSycSiqJ9dQX/sA+HxNemyWYu2X7Up2aExhIXIVnHsSLB3GFMlpH7Uqscf7ws1jLY1yLMirMxk4s453TbR4yb3WWkIdj9ekYHloh8qwtrd5yXf2GFt+xW5ekWuKZ3XLZh8cjQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:a10219350fc810ab2fc5e6acfec6cad91e855e0b0c493b1e518b3fcc04a2e07d",
      "output": {
        "canonical_pivot": {
          "amount": 25.5,
          "currency": "USDC",
          "expires_at": "2026-07-24T11:00:00Z",
          "human_not_present": true,
          "issued_at": "2026-07-24T10:00:00Z",
          "mandate_id": "ap2-pay-001",
          "max_amount": 100,
          "payee_ref": "merchant-42",
          "payer_ref": null,
          "purpose": "merchant-42"
        },
        "mapping_ok": false,
        "mapping_receipt": {
          "lossy_fields": ["human_not_present"],
          "mapping_table_version": "AI2-MAP-V1-2026-07-24",
          "source_digest": "6f6c4f9b8f59c9a6d0b61825bdb522a00290df017299176cbcea232c6756059c",
          "target_digest": "b190008e4f0158fa351ebd7df33bd8285b850550fb78dc1ac1bb889d74c13ded"
        },
        "mapping_table_version": "AI2-MAP-V1-2026-07-24",
        "missing_required_target_fields": ["payer_ref"],
        "protocol_versions": {
          "ap2": "AP2 v0.2 (per art-01/art-62 field usage, live 2026-07-18)",
          "x402": "x402 (Coinbase, scheme=exact; per art-26 field usage, live 2026-07-18)"
        },
        "source_protocol": "ap2",
        "target_protocol": "x402",
        "translated_mandate": {
          "asset": "USDC",
          "maxAmountRequired": 100,
          "payTo": "merchant-42",
          "payload": {
            "authorization": {
              "from": null,
              "nonce": "ap2-pay-001",
              "to": "merchant-42",
              "validAfter": "2026-07-24T10:00:00Z",
              "validBefore": "2026-07-24T11:00:00Z",
              "value": 25.5
            }
          },
          "resource": "merchant-42",
          "scheme": "exact",
          "x402Version": 1
        }
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-477-intraday-liquidity-monitoring",
  "tool_version": "1.0.0",
  "display_name": "BCBS 248 Intraday Liquidity Monitoring Snapshot",
  "mcp_name": "compute_intraday_liquidity_monitoring",
  "mandate_type": "compliance_mandate",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-477-intraday-liquidity-monitoring.html",
  "description": "BCBS 248 \"Monitoring tools for intraday liquidity management\" (Basel Committee, April 2013): computes daily maximum intraday liquidity usage (the largest negative excursion of a cumulative net settlement position built from a caller-supplied time-stamped transaction list), echoes start-of-day available liquidity, totals gross payments and receipts, checks time-specific obligations against their due times, and classifies the daily maximum usage against a caller-supplied list of available intraday liquidity sources. Not DW capacity (art-427) or FR 2052a inflow/outflow classification (art-437) -- adjacent but distinct BCBS 248 daily-usage metrics. Evidence artifact only, not a filing or supervisory submission.",
  "input_schema_ref": "chaingraph/art-477-intraday-liquidity-monitoring.html#manifest",
  "deadline": null,
  "deadline_note": "BCBS 248 (April 2013): supervisory expectation, no statutory filing deadline -- monitoring tools are reported to supervisors on request/periodic schedule set by the home regulator.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:647771786d54eec94e4c54281af4b03bd11032678c1c363c7cbc39b9cc0a8b73","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EO5o+OqneEZIEG7FFYydeMrOzJBAQsaN52CQwK1sfJgvNhiOcy8+01MpnO/K7EYartOSNxJ11q7RySLc3u75ZxnKdqwpxX95g0sC2LfvPdH5ZHRqXu2QEXYNHF74VuUcJXqUMED9FmuPtF2j4F+HL8SUTH2hE91bqHad6ABD278EcUX8ftXNsW6EAQIQ2LwRviTmv+/pKZdBmNLUvHvmAwquSyOBABuD/NGxfE/AFQEmmmcVlAokgpt2f57OD7HLLOcig9EjtfJ5BQeRddfJJwHSVoDtVJk9rtN5wlYXssYE/hmRdX3exr0/6mqO1T05wD0PGgmZLgfjzvqboRPt0g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:647771786d54eec94e4c54281af4b03bd11032678c1c363c7cbc39b9cc0a8b73",
      "output": {
        "available_intraday_sources": [
          {
            "amount_musd": 200,
            "source_id": "src-cb-balance"
          },
          {
            "amount_musd": 150,
            "source_id": "src-committed-line"
          }
        ],
        "available_sources_total_musd": 350,
        "coverage_ratio": 1.3,
        "cumulative_position_path": [
          {
            "amount_musd": 100,
            "cumulative_position_musd": 100,
            "flow_type": "inflow",
            "time_hhmm": "08:00",
            "tx_id": "t1"
          },
          {
            "amount_musd": 250,
            "cumulative_position_musd": -150,
            "flow_type": "outflow",
            "time_hhmm": "09:30",
            "tx_id": "t2"
          },
          {
            "amount_musd": 120,
            "cumulative_position_musd": -270,
            "flow_type": "outflow",
            "time_hhmm": "10:15",
            "tx_id": "t3"
          },
          {
            "amount_musd": 200,
            "cumulative_position_musd": -70,
            "flow_type": "inflow",
            "time_hhmm": "13:00",
            "tx_id": "t4"
          },
          {
            "amount_musd": 80,
            "cumulative_position_musd": -150,
            "flow_type": "outflow",
            "time_hhmm": "15:45",
            "tx_id": "t5"
          }
        ],
        "daily_max_usage_musd": 270,
        "note": "Daily maximum intraday liquidity usage is the largest negative excursion of a cumulative net settlement position built from the caller-supplied time-stamped transaction list, starting at zero -- independent of the opening balance. Start-of-day available liquidity, time-specific-obligation timing, and available intraday sources are caller-supplied inputs, echoed and classified, not derived from external data. Evidence artifact only -- not a filing, not a regulatory submission, and not a claim of full BCBS 248 seven-tool coverage.",
        "obligations_summary": {
          "obligations_met": 2,
          "obligations_missed": 0,
          "total_obligations": 2
        },
        "regulatory_basis": "BCBS 248 \"Monitoring tools for intraday liquidity management\" (Basel Committee on Banking Supervision, April 2013).",
        "start_of_day_available_musd": 500,
        "time_specific_obligations": [
          {
            "amount_musd": 150,
            "due_time_hhmm": "10:00",
            "met_on_time": true,
            "obligation_id": "o1",
            "settled": true,
            "settled_time_hhmm": "09:45"
          },
          {
            "amount_musd": 90,
            "due_time_hhmm": "14:00",
            "met_on_time": true,
            "obligation_id": "o2",
            "settled": true,
            "settled_time_hhmm": "13:30"
          }
        ],
        "total_payments_musd": 450,
        "total_receipts_musd": 300,
        "usage_covered": true
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-478-analyze-dc-vs-lc-cost-benefit",
  "tool_version": "1.0.0",
  "display_name": "Documentary Collection vs Letter of Credit Cost-Benefit",
  "mcp_name": "analyze_dc_vs_lc_cost_benefit",
  "mandate_type": "compliance_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-478-analyze-dc-vs-lc-cost-benefit.html",
  "description": "Compares the total cost and risk-adjusted exposure of Documentary Collections (D/P, D/A) against Letters of Credit (Sight, Usance, Confirmed, SBLC) for a trade transaction. Returns a fee breakdown, break-even non-payment probability, and a recommendation, plus a disclosed heuristic LC protection score. Provable node counterpart to tools/423-dc-vs-lc-analyzer.html; that tool page's URC 522 checklist and jurisdiction D/A enforceability reference panels stay browser-only reference material, not computed outputs.",
  "input_schema_ref": "chaingraph/art-478-analyze-dc-vs-lc-cost-benefit.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:399294433cf13af7c9c72820fff550fb25f97a09c279902523b938e2a657ff0e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "export_capability": ["json"],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Fq885gN27tMhHhxg8UBcY4g1+nA9Sm0Gy99/OlKupDkl/vz30tphIZz/E8JapykYrqykAr7gik/3EbxOlnH9YiFsdZSWlOqcAAFAGIzEiF1otyJgO1CvthlF32UJCiGMEyjXG/fUlupulqQpgYyiAPLv8oMAxs1fCgzw06E2sucPTsH0l705PimYvPc9QMzSnL/dHsVLGw3nbo0f8ASaoQ0FakPNQnQqTpWLnlJkkMb6YCZktXXBQvkcXq95ksL4GHVTSU+15NxtYqD+PtsnklBgmwoQVNMjMfrdtd+z+AYOXIFj2/SKK2C4WddEEtkCO9NjKsuTW6xWsGACxQMt+A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:399294433cf13af7c9c72820fff550fb25f97a09c279902523b938e2a657ff0e",
      "output": {
        "breakEvenProbabilityPct": 0,
        "dcRiskAdjCostUSD": 10865,
        "dcRiskExposureUSD": 10000,
        "dcTotalFeesUSD": 865,
        "heuristic_note": "lcProtectionScore is a disclosed additive heuristic (0-100), not a computed fact. All USD/percentage figures above it are deterministic fee/break-even arithmetic.",
        "lcProtectionScore": 65,
        "lcRiskAdjCostUSD": 800,
        "lcTotalFeesUSD": 800,
        "lc_protection_score_heuristic": true,
        "recommendation": "LC"
      }
    }
  }
},
    {
  "tool_id": "art-479-compare-receivables-finance-economics",
  "tool_version": "1.0.0",
  "display_name": "Forfaiting vs Factoring vs Invoice Discounting Economics",
  "mcp_name": "compare_receivables_finance_economics",
  "mandate_type": "analytics_mandate",
  "wave": 65,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-479-compare-receivables-finance-economics.html",
  "description": "Compares net proceeds and effective annual cost across forfaiting (medium/long-term trade receivables, non-recourse PV discount), factoring with recourse, factoring without recourse, and invoice discounting for a receivables portfolio. Models advance rates, discount rates, service fees, and arrangement costs; returns per-instrument net proceeds, effective annual cost, a cost ranking, and the cheapest/highest-proceeds instrument. Provable node counterpart to tools/425-forfaiting-factoring-economics.html.",
  "input_schema_ref": "chaingraph/art-479-compare-receivables-finance-economics.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ff2eabad532dc59453467b36302b88c0ac41425aca4e48f9524b89d928c33878","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-25"}],
  "export_capability": ["json"],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "H6WpLG2x1Sham/NZ4taWVrsdiWXLoyZ6C5vpnJ8XKYoEnNrRrnANEVR4VZPmjRih7ItjG7m5jIgyNLPyPnlIYQjQuKOpne21B0U2+5aryHFYr79Kviukl4rK0pmEbq3aHdzQNNY1AZWivWoDV1sx3NQhvXSYDhDnwjPrBjezzd4o/u3PSOEl4WdPoBIveLpllWjH8HaiWQFR1W3dDpkNbAPjJLWv1DqNHHBLwk3GLXy/Zmclm/4siWlUvN3pvTtlLsiV2gzUgLDCitaLafA4ob64hhaCRnA8BSvALz5RITAVsfiWQGPCCrltIVi6/9fgk8UWmLmFYv4ps27zudtCgg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ff2eabad532dc59453467b36302b88c0ac41425aca4e48f9524b89d928c33878",
      "output": {
        "cheapest_instrument": "Forfaiting",
        "cost_ranking": [
          "Forfaiting",
          "Factoring (With Recourse)",
          "Factoring (Non-Recourse)",
          "Invoice Discounting"
        ],
        "highest_proceeds_instrument": "Forfaiting",
        "portfolio": {
          "currency": "USD",
          "face_value": 1000000,
          "num_debtors": "mid",
          "obligor_quality": "sub_ig",
          "tenor_days": 90
        },
        "results": {
          "factoring_non_recourse": {
            "effective_annual_cost_pct": 109.87,
            "net_proceeds": 786836,
            "recourse": "non-recourse"
          },
          "factoring_recourse": {
            "effective_annual_cost_pct": 85.83,
            "net_proceeds": 825329,
            "recourse": "with-recourse"
          },
          "forfaiting": {
            "effective_annual_cost_pct": 8.7,
            "net_proceeds": 979010,
            "recourse": "non-recourse"
          },
          "invoice_discounting": {
            "effective_annual_cost_pct": 110.96,
            "net_proceeds": 785178,
            "recourse": "with-recourse"
          }
        }
      }
    }
  }
},
    {
  "tool_id": "art-480-rdarr-aggregation-recompute",
  "tool_version": "1.0.0",
  "display_name": "RDARR Aggregation Recompute",
  "mcp_name": "rdarr_aggregation_recompute",
  "mandate_type": "attestation_mandate",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-480-rdarr-aggregation-recompute.html",
  "description": "Re-derives a stated risk-report figure from a SUPPLIED source extract under a declared aggregation policy (filter set, netting rule, FX rate set, hierarchy roll-up). Returns the recomputed figure, a signed delta vs the reported figure, and a per-roll-up-node contribution breakdown so a break localises to one node instead of the whole report. HARD FENCE: every FX rate is supplied and asserted, never fetched (zero-egress); this recomputes the arithmetic over declared inputs and attests THAT, never an opinion on extract or reported-figure correctness, never a data-quality assessment (see art-481-rdarr-quality-scorecard), never a materiality judgement. First entry of the BCBS 239 / RDARR family, feeding the rdarr-attestation-cycle chain (art-481 + gate + attestation bundle). Not a data-quality scorecard or any general risk-data ingester. ECB Guide on effective risk data aggregation and risk reporting (3 May 2024) referenced as informative context only.",
  "input_schema_ref": "chaingraph/art-480-rdarr-aggregation-recompute.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; RDARR aggregation recompute is a continuous data-governance control, not a periodic filing. The ECB named RDARR remediation a supervisory priority for 2025-2027.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:03ded60475d18d57aeb7093295a95854b928661cde7ba44e34bf93df28373b4b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AyVDBbaWo0xKIV5r6zelQsBvYNZV9RQjCr5ykkl/4Wkec8+BVS8mZpflz0UgSD1KUxbAUnrK+rDLUpJfuNfNywtT2WxLJUfQwxE8vImALpglAx8YhQOvoLeXScntfONAIbmTaQf62psulUkW3ppRW89zMIwH4vFqmaigKQIdGDoSLC3CyL0sPcbOJ6/s4ttXZM6hW7G6Yuss26SA3xK5XSb7aoIn0Syczvj/jdRUUtThLJ3MHHKY6LBA18S1CcdzD4jSy7yr5a5VGOkI357ZwSX6ZurgWRBF7kJL8a7NIncX1SnxdFDSUR0mw3WfQI/yuPusPdljjrRTreUDoT2IWQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:03ded60475d18d57aeb7093295a95854b928661cde7ba44e34bf93df28373b4b",
      "output": {
        "base_currency": "USD",
        "contribution_breakdown": [
          {
            "contribution_pct": "100.00",
            "label": "Total Credit Risk RWA",
            "node_id": "ROOT",
            "parent_node_id": null,
            "value": "4740.00"
          },
          {
            "contribution_pct": "68.35",
            "label": "Corporate",
            "node_id": "CORP",
            "parent_node_id": "ROOT",
            "value": "3240.00"
          },
          {
            "contribution_pct": "31.65",
            "label": "Retail",
            "node_id": "RETAIL",
            "parent_node_id": "ROOT",
            "value": "1500.00"
          }
        ],
        "delta": "-260.00",
        "delta_pct": "-5.20",
        "fence": "FX rates and extract lines are SUPPLIED, asserted, and digested into this receipt. This kernel recomputes the ARITHMETIC over those declared inputs under the declared aggregation policy and attests THAT — never an opinion on extract or reported-figure correctness, never a data-quality assessment (see art-481), never a materiality judgement (zero-egress by contract).",
        "lines_excluded": 1,
        "lines_included": 3,
        "netting_applied": true,
        "netting_sets": [
          {
            "gross_value": "2500.00",
            "line_count": 2,
            "net_value": "1500.00",
            "netting_key": "RETAIL::CP-A"
          },
          {
            "gross_value": "3240.00",
            "line_count": 1,
            "net_value": "3240.00",
            "netting_key": "CORP::CP-B"
          }
        ],
        "not_proven": [
          {
            "detail": "Every extract line and FX rate is caller-supplied and asserted. This kernel performs no market-data or source-system lookups (zero-egress) and does not verify these values against any external source.",
            "item": "Extract accuracy"
          },
          {
            "detail": "The reported figure is a caller-supplied comparison point, not validated independently. A signed delta is reported exactly as computed, with no correctness or materiality judgement attached.",
            "item": "Reported-figure correctness"
          },
          {
            "detail": "This kernel performs arithmetic recomputation only. Completeness, referential integrity, timeliness, reconciliation coverage, and manual-adjustment ratio are scored separately by art-481-rdarr-quality-scorecard.",
            "item": "Data quality"
          },
          {
            "detail": "Whether a computed delta is material is a policy/governance judgement outside this kernel's scope — it is never emitted as a kernel output.",
            "item": "Materiality"
          }
        ],
        "recomputed_figure": "4740.00",
        "reported_figure": "5000.00",
        "rounding": {
          "decimal_places": 2,
          "mode": "half_up"
        }
      }
    }
  }
},
    {
  "tool_id": "art-481-rdarr-quality-scorecard",
  "tool_version": "1.0.0",
  "display_name": "RDARR Quality Scorecard",
  "mcp_name": "rdarr_quality_scorecard",
  "mandate_type": "attestation_mandate",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-481-rdarr-quality-scorecard.html",
  "description": "Deterministic data-quality metrics over a SUPPLIED risk-data extract, keyed to the measurable RDARR prerequisites: completeness of mandatory attributes, referential integrity across the declared hierarchy, timeliness against a declared cut-off, reconciliation coverage, and manual-adjustment ratio. Each metric is scored against a policy-supplied threshold (never hardcoded) and labelled with its ECB Guide on effective risk data aggregation and risk reporting (3 May 2024) prerequisite area, so the result drops into an existing self-assessment. HARD FENCE: thresholds are policy inputs; this is never a supervisory pass mark, never a materiality judgement. Second entry of the BCBS 239 / RDARR family, feeding the rdarr-attestation-cycle chain alongside art-480-rdarr-aggregation-recompute (gate + attestation bundle). Not an aggregation recompute or any general risk-data ingester.",
  "input_schema_ref": "chaingraph/art-481-rdarr-quality-scorecard.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; RDARR quality scoring is a continuous data-governance control, not a periodic filing. The ECB named RDARR remediation a supervisory priority for 2025-2027.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:bb595b3096e163a13b9265cd83ed691343605e21a5fcb974aa04fdc9292c38ba","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "BnLgspl5gd56u8xFwgHws1VPCjsMjK+2bntg8UKQ99wKxf4DH+RPrU32twxbj3Z3Bny7CfSf11+aGougQVLXLAPWZdChuxLp76kkZfzNG8UCe0ACDgcPALArdSRtrGZTCCX6ufGOFhk44NMzBslv3vN68U5MXoaODwnXlQDO1hkT5CdBbxV/PKmKpxfw/HTWFQRDyLQKdIzve4KOXBqddwmv7NPyQSEFS/bmSGRiUvYmj8S6xfZ1t4kYPpD78j9VAtKiwH7fM+n0/9H5orpupHN4FhTH9If6N7+u+RC0zzQhYHsgQY+4Qv5yoyeXbmk7fZyHpETsoFn1DZcr/+pEtA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:bb595b3096e163a13b9265cd83ed691343605e21a5fcb974aa04fdc9292c38ba",
      "output": {
        "cutoff_date": "2026-06-30",
        "fence": "Extract records and thresholds are SUPPLIED, asserted, and digested into this receipt. This kernel scores deterministic structural metrics against the declared thresholds and attests THAT — never a supervisory pass mark, never a materiality judgement, never confirmation the reported figures reconcile (see art-480), zero-egress by contract.",
        "guide_version": "ECB Guide on effective risk data aggregation and risk reporting, 3 May 2024",
        "metrics": [
          {
            "comparator": "min",
            "ecb_prerequisite_area": "Completeness",
            "metric": "completeness_pct",
            "record_count": 3,
            "status": "breach",
            "threshold_pct": 98,
            "total_records": 4,
            "value_pct": "75.00"
          },
          {
            "comparator": "min",
            "ecb_prerequisite_area": "Accuracy and integrity",
            "metric": "referential_integrity_pct",
            "record_count": 3,
            "status": "breach",
            "threshold_pct": 100,
            "total_records": 4,
            "value_pct": "75.00"
          },
          {
            "comparator": "min",
            "ecb_prerequisite_area": "Timeliness",
            "metric": "timeliness_pct",
            "record_count": 3,
            "status": "breach",
            "threshold_pct": 95,
            "total_records": 4,
            "value_pct": "75.00"
          },
          {
            "comparator": "min",
            "ecb_prerequisite_area": "Accuracy and integrity",
            "metric": "reconciliation_coverage_pct",
            "record_count": 3,
            "status": "breach",
            "threshold_pct": 90,
            "total_records": 4,
            "value_pct": "75.00"
          },
          {
            "comparator": "max",
            "ecb_prerequisite_area": "Adaptability",
            "metric": "manual_adjustment_ratio_pct",
            "record_count": 1,
            "status": "breach",
            "threshold_pct": 5,
            "total_records": 4,
            "value_pct": "25.00"
          }
        ],
        "not_proven": [
          {
            "detail": "Every extract record is caller-supplied and asserted. This kernel checks structural properties (presence, referential linkage, dates, flags) and performs no market-data or source-system lookups (zero-egress).",
            "item": "Extract accuracy"
          },
          {
            "detail": "Thresholds and the metric-to-prerequisite-area map are policy inputs supplied by the caller; this kernel takes no position on whether a given threshold set is correct for a given supervisor.",
            "item": "Threshold appropriateness"
          },
          {
            "detail": "Whether a breach is material is a governance judgement outside this kernel's scope — it is never emitted as a kernel output, only pass/breach against the supplied threshold.",
            "item": "Materiality"
          },
          {
            "detail": "This kernel scores data-quality structure only. Whether a reported risk figure recomputes correctly is scored separately by art-480-rdarr-aggregation-recompute.",
            "item": "Aggregation-figure correctness"
          }
        ],
        "scorecard": {
          "breach_count": 5,
          "missing_threshold_count": 0,
          "overall_status": "breach",
          "pass_count": 0
        },
        "total_records": 4
      }
    }
  }
},
    {
  "tool_id": "art-482-emir-recon-adjudicator",
  "tool_version": "1.0.0",
  "display_name": "EMIR Trade-Repository Reconciliation Adjudicator",
  "mcp_name": "adjudicate_emir_reconciliation",
  "mandate_type": "attestation_mandate",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-482-emir-recon-adjudicator.html",
  "description": "Under EMIR Refit the trade repository (TR) runs the inter-TR reconciliation and returns a daily ISO 20022 response naming matched/unreconciled fields per UTI -- a firm holds that TR response plus its own submitted state, never both counterparties' raw extracts. This node independently reproduces the reconciliation verdict from the TR response + the firm's submitted state, under a policy-supplied per-cycle field/tolerance/suppression table, and emits a stable per-break key (uti::field_name) so consecutive cycles diff cleanly. Disagreement with the TR's own stated match status is a first-class output, never an error. Lifecycle events (amendment, compression, termination) are ordinary inputs. Not art-156-emir-counterparty-pairing-reconciler, which compares two counterparties' own extracts directly -- a premise EMIR Refit's TR-mediated reconciliation model replaced. Feeds art-483-emir-break-ageing.",
  "input_schema_ref": "chaingraph/art-482-emir-recon-adjudicator.html#manifest",
  "consumes": [],
  "feeds": [
    "art-483-emir-break-ageing"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ef88fb46f98773129561e13479d723e9b1d0822b713ab0816c49367014562557","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AKCfPiIB+zz4t5QFGTCenkh2BdNO7jdaiT1L2ZIXJrwhlPi/v6EjnaRDWPC14hLCP1OPkum94B/MdSg2M1f0yAqWBvuUia6o3e8ubQWPObO2tTZkgIcezR58j6N7F66pH3cxYgoANGZZwzStJN7ZQ/yNX4qR16+xxNqigXvwOaQZ8mcd2ndic+3QjxFVXltM+iwEcF11eIOQuROHWNhd+x5FvRRfOpC5lh2Mu0tdrnnZhBoPx9cG3amBHhKZkTkPHE556f4ZCTePCPWVegY5ufLtuBIjaK7yKT0lda27RC0MbicmPWrM6n2AfWbLcR5ZAHapLooq/CyGNqj0b7diPg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ef88fb46f98773129561e13479d723e9b1d0822b713ab0816c49367014562557",
      "output": {
        "as_of_date": "2026-07-27",
        "break_count": 0,
        "break_set": [],
        "field_tolerance_table_version": "ESMA74-362-2683-PHASE2-2026-04-27",
        "note": "Independently reproduces the EMIR trade-repository reconciliation verdict from the TR ISO 20022 response and the firm submitted state, under a policy-supplied per-cycle field/tolerance/suppression table. Disagreement with the TR verdict is a first-class output, never an error. Lifecycle events (amendment/compression/termination) are ordinary inputs. This tool computes a reconciliation verdict only; it does not itself resubmit, dispute, or file any regulatory report.",
        "tr_disputed_count": 0,
        "tr_matched_count": 1,
        "trade_count": 1,
        "trades": [
          {
            "computed_verdict": "MATCHED",
            "field_results": [
              {
                "delta": 0,
                "field_name": "notional_amount",
                "firm_value": 1000000,
                "status": "agree",
                "tr_value": 1000000
              },
              {
                "delta": 0,
                "field_name": "price",
                "firm_value": 101.25,
                "status": "agree",
                "tr_value": 101.25
              },
              {
                "delta": 0,
                "field_name": "effective_date",
                "firm_value": "2026-01-15",
                "status": "agree",
                "tr_value": "2026-01-15"
              },
              {
                "delta": 0,
                "field_name": "maturity_date",
                "firm_value": "2031-01-15",
                "status": "agree",
                "tr_value": "2031-01-15"
              },
              {
                "delta": null,
                "field_name": "settlement_currency",
                "firm_value": "US DOLLAR",
                "status": "agree",
                "tr_value": "USD"
              },
              {
                "field_name": "delta",
                "firm_value": 0.55,
                "status": "suppressed",
                "tr_value": 0.42
              }
            ],
            "lifecycle_event": "NEW",
            "tr_match_status": "MATCHED",
            "uti": "UTI0001",
            "verdict_disagrees_with_tr": false
          }
        ],
        "verdict_disagrees_with_tr_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-483-emir-break-ageing",
  "tool_version": "1.0.0",
  "display_name": "EMIR Reconciliation Break Ageing",
  "mcp_name": "age_emir_reconciliation_breaks",
  "mandate_type": "attestation_mandate",
  "wave": 71,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-483-emir-break-ageing.html",
  "description": "Diffs a current EMIR reconciliation break set (e.g. from art-482-emir-recon-adjudicator) against the prior cycle's sealed break set by stable break_key, emitting a newly-opened / persisting / newly-closed split, an ageing bucket, a recurrence count, and an escalation-clock status against policy-supplied ageing limits -- reusing the art-428-cyber-incident-clock deadline-vs-evaluated_at pattern rather than re-deriving deadline math. Ageing limits and the escalation deadline are per-cycle policy inputs, never hardcoded.",
  "input_schema_ref": "chaingraph/art-483-emir-break-ageing.html#manifest",
  "consumes": [
    "art-482-emir-recon-adjudicator"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:61ca7bf25c81b012ffcf0eacf2a531f340641c6492b4f96ad95b2e17faab1a11","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Grj9B/X+U1YKl5MheSI1SNFq0UPxjziHrA6Tlz6W4QAhbz8OiXEcjdl/unhgzy2HhQ22RG2G/00trtjKusAX7R/9QXO1gz/YsBCxBzcpktCF5AaUENujppMeIpryWc+uCAtzHwjgElwULceKuf8Ub1/jL1IW4RIDArMaMm+r81kvCtdaMS8yu6qWAc2uQv6TYVV0uCLsr7HbrZUx1RFDjiWnczI2BNACBm0Tkb9dq4htwfDLgZOheiK2cL11pIF6KbTdrKTFGfvC0fzpEOeNEwA6y5IN6j9dP0JJwmjpOMEX01fZPRKQJREodPQUZ/3Ma0o9QOBXVSZX9JnCCy+4KQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:61ca7bf25c81b012ffcf0eacf2a531f340641c6492b4f96ad95b2e17faab1a11",
      "output": {
        "breaks": [
          {
            "age_days": 17,
            "ageing_bucket": "11-20d",
            "break_key": "UTI0002::notional_amount",
            "escalation_clock": {
              "deadline_iso": "2026-07-20T00:00:00.000Z",
              "escalation_status": "breached"
            },
            "field_name": "notional_amount",
            "first_seen_at": "2026-07-10T00:00:00.000Z",
            "recurrence_count": 4,
            "status": "persisting",
            "uti": "UTI0002"
          },
          {
            "age_days": 0,
            "ageing_bucket": "0-5d",
            "break_key": "UTI0005::price",
            "escalation_clock": {
              "deadline_iso": "2026-08-06T00:00:00.000Z",
              "escalation_status": "on_track"
            },
            "field_name": "price",
            "first_seen_at": "2026-07-27T00:00:00.000Z",
            "recurrence_count": 1,
            "status": "newly_opened",
            "uti": "UTI0005"
          }
        ],
        "escalation_breached_count": 1,
        "evaluated_at": "2026-07-27T00:00:00.000Z",
        "newly_closed": [
          {
            "break_key": "UTI0009::maturity_date",
            "field_name": "maturity_date",
            "first_seen_at": "2026-07-20T00:00:00.000Z",
            "uti": "UTI0009"
          }
        ],
        "newly_closed_count": 1,
        "newly_opened_count": 1,
        "note": "Deterministic ageing of a current EMIR reconciliation break set diffed against a prior sealed break set by stable break_key. Ageing buckets and the escalation clock are policy-supplied per cycle, reusing the art-428-cyber-incident-clock deadline-vs-evaluated_at pattern (first_seen_at + policy limit vs evaluated_at).",
        "persisting_count": 1,
        "total_current": 2
      }
    }
  }
},
    {
  "tool_id": "art-484-regrpt-editcheck-runner",
  "tool_version": "1.0.0",
  "display_name": "Published Regulatory Report Edit-Check Runner",
  "mcp_name": "run_regrpt_edit_checks",
  "mandate_type": "regulatory_reporting",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-484-regrpt-editcheck-runner.html",
  "description": "Evaluates a caller-supplied report instance against a caller-supplied published edit-check rule set -- FFIEC Call Report validity and quality edits (Excel/PDF, published ahead of each quarter-end, latest 2026-01-22) or the EBA ITS validation-rules list -- across seven rule shapes: intra-schedule arithmetic identity, cross-schedule tie-out, sign/domain constraint, mandatory-field completeness, closed-domain membership, conditional presence, and conditional prohibition. The three conditional shapes take a when predicate over other cells in the same row. Returns per-rule pass/fail/suppressed status keyed by the published edit id, with failing cell references and computed-vs-reported values. Accepts a deactivation/suppression list as a first-class policy input (the EBA publishes rules deactivated for inaccuracies or IT issues; this kernel never reports a failure on a stood-down rule, and records exactly which suppressions were applied plus any that are stale). Distinct from art-434-call-report-edit-check-gate, which runs a CURATED, HARDCODED battery of checks against a specific art-432/art-433 Schedule RC/RC-R output shape: this kernel bakes in no rule content at all, and evaluates whatever rule set the caller supplies against whatever report instance the caller supplies. Nothing access-gated is required to get a result.",
  "input_schema_ref": "chaingraph/art-484-regrpt-editcheck-runner.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ccd3d4cba38af7145df90e543cf9b928f90949437da3a54ad4eb4e812bffcab4","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FDSkT9lJAKHaZIlvQ3pe9UmBs3tcuYZDKO4sZnqhQEUNtxK8EK0QeyHjFazAOBobt0D4Za0HkUDVNv4kUcb+UgBezmKKFjkrJBwf6xFXEgZ8UB8EUmrr7ksUWAbGeR3WHYZNWJPdzWJ6U6D8Vhxc2hRoAcwQvJY6lswIX2gU+xUJB1zHJe0amLN78Iq4SmQrL4lqF7vw6sQqdlec0GmADAmKtVYrvvkzsBsf9V5iPBPt5scF/ZX/HpWSAxT0XmLVLKtS+EI87bNX3MgER+2YSClgHQoXLJNcA8+imF8ioG4QzBP2rdPj0NWt4xF+xeacTDX1iAK1sNcKX4sDwvis1g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ccd3d4cba38af7145df90e543cf9b928f90949437da3a54ad4eb4e812bffcab4",
      "output": {
        "compliance_flags": [],
        "findings": [
          {
            "computed_value": 1000,
            "description": "Total assets equals total liabilities plus total equity capital.",
            "edit_id": "FFIEC-VE-0142",
            "message": "Sum of RCON2948 + RCON3210 agrees with RCON2170 within tolerance 1.",
            "reported_value": 1000,
            "schedule": "RC",
            "severity": "fatal",
            "status": "pass",
            "type": "arithmetic_identity"
          },
          {
            "computed_value": 250,
            "description": "CET1 capital ties out to its RC-R summary restatement.",
            "edit_id": "FFIEC-VE-0891",
            "message": "RCFA7206 (250) ties out to RCFA7206_TIEOUT (250) within tolerance 0.",
            "reported_value": 250,
            "schedule": "RC-R",
            "severity": "fatal",
            "status": "pass",
            "type": "cross_schedule_tie_out"
          },
          {
            "computed_value": 2000,
            "description": "Total risk-weighted assets is positive.",
            "edit_id": "FFIEC-VE-0203",
            "message": "RCFAB588 (2000) satisfies domain > 0.",
            "reported_value": 2000,
            "schedule": "RC-R",
            "severity": "fatal",
            "status": "pass",
            "type": "sign_domain"
          },
          {
            "computed_value": null,
            "description": "Entity identifier is present.",
            "edit_id": "FFIEC-VE-0004",
            "message": "RCONK652 is present and non-empty.",
            "reported_value": "FDIC-CERT-1234",
            "schedule": "RC",
            "severity": "fatal",
            "status": "pass",
            "type": "mandatory_field"
          }
        ],
        "note": "Evaluates a caller-supplied published edit-check rule set (FFIEC validity/quality edits or EBA ITS validation rules) against a caller-supplied report instance. The kernel is the evaluator; it carries no rule content of its own. Findings are keyed by the published edit id for round-trip into the issuer's own vocabulary.",
        "rule_set_source": "FFIEC Call Report Validity and Quality Edits, effective 2026-01-22",
        "rule_set_version": "FFIEC-2026-01-22",
        "stale_suppressions": [],
        "summary": {
          "applied": 4,
          "fail": 0,
          "overall_pass": true,
          "pass": 4,
          "stale_suppression_count": 0,
          "suppressed": 0,
          "total_rules": 4
        },
        "suppressions_applied": []
      }
    }
  }
},
    {
  "tool_id": "art-485-regrpt-variance-explainer",
  "tool_version": "1.0.0",
  "display_name": "Regulatory Report Period-over-Period Variance Explainer",
  "mcp_name": "explain_regrpt_variance",
  "mandate_type": "regulatory_reporting",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-485-regrpt-variance-explainer.html",
  "description": "Computes period-over-period variance across a regulatory report instance pair -- absolute and relative movement per line item against a policy-supplied materiality threshold (default plus per-line overrides), ranked by contribution (largest absolute movement first) -- and flags which movements require a written explanation, i.e. exceed materiality with no matching explanation on file. Does not judge whether a supplied explanation is adequate; that is a human review-and-approval step downstream (RGEC-K-2's gate: an unexplained material variance routes to review_required). Pairs with art-484-regrpt-editcheck-runner's rule-based edit checks -- this node handles analytical-review variance, not rule pass/fail.",
  "input_schema_ref": "chaingraph/art-485-regrpt-variance-explainer.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:58e771301c2c6f396bfeaa0f61ea75adfce6211b68c03938500f14a37a1a5c8f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FDIjRxHEDtq4xti2QcPVsfffwXbMfnoOrHmBwZ9KYV8DQD5/TNH5CyFm/wAeEbR+7rW6MdilBpdQhBtPiiOT9StAcVMwLBz01/2/m7sFnKrqX1dmXK7EczBzopsg+KfODIWFq/CHyLPfdHyU5i7iWa43PmPJRtBNQS+ernKgYcwdANlfF/n7cbIaMvz327nWDuIxwIvechpEsRmh+YmqYwFqPiukDsFiXMrt8tE5mtp+UQmzN08sd0F4ODVrs0ykJ7PeD4jvTvhqVTadUArt5AI1vlku/7i6g80VXigJsoEwSfELB3AVR9kwvDnvoWqAsXj5pINnpoeRJGQL/im0cw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:58e771301c2c6f396bfeaa0f61ea75adfce6211b68c03938500f14a37a1a5c8f",
      "output": {
        "compliance_flags": [],
        "current_as_of": "2026-06-30",
        "note": "Period-over-period variance, ranked by absolute-movement contribution, flagged against a policy-supplied materiality threshold (default plus per-line overrides). Whether a supplied explanation is adequate is a human review step, not judged here; this output feeds that gate.",
        "policy_version": "FFIEC-MATERIALITY-2026-Q2",
        "prior_as_of": "2026-03-31",
        "summary": {
          "all_material_explained": true,
          "material_count": 1,
          "requires_explanation_count": 0,
          "total_abs_movement": 1550,
          "total_line_items": 3
        },
        "variances": [
          {
            "abs_change": 1500,
            "contribution": 1500,
            "current_value": 11500,
            "has_explanation": true,
            "is_material": true,
            "line_item": "total_loans",
            "pct_change": 0.15,
            "prior_value": 10000,
            "rank": 1,
            "requires_explanation": false,
            "threshold_abs": 100,
            "threshold_pct": 0.05
          },
          {
            "abs_change": 50,
            "contribution": 50,
            "current_value": 9050,
            "has_explanation": false,
            "is_material": false,
            "line_item": "total_deposits",
            "pct_change": 0.005555555555555556,
            "prior_value": 9000,
            "rank": 2,
            "requires_explanation": false,
            "threshold_abs": 100,
            "threshold_pct": 0.05
          },
          {
            "abs_change": null,
            "contribution": 0,
            "current_value": 200,
            "has_explanation": false,
            "is_material": false,
            "line_item": "other_real_estate_owned",
            "pct_change": null,
            "prior_value": null,
            "rank": 3,
            "requires_explanation": false,
            "threshold_abs": 50,
            "threshold_pct": 0
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-486-cscf-control-applicability",
  "tool_version": "1.0.0",
  "display_name": "CSCF Control Applicability & Coverage",
  "mcp_name": "check_cscf_control_applicability",
  "mandate_type": "compliance_mandate",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-486-cscf-control-applicability.html",
  "description": "Scores a Swift member's declared architecture type and component inventory against a policy-supplied Swift Customer Security Controls Framework (CSCF) control matrix -- the published control number, tier (mandatory/advisory), applicable-architecture-type list, and evidence column, never a hand-transcribed list. Returns the applicable mandatory/advisory control set, coverage percentages, a gap list keyed by the published control number, an evidence index mapped to the matrix's supporting-evidence column, and an explicit not-applicable set with a stated reason per exclusion so an omission can never read as a pass. Not a Swift-endorsed tool and not a KYC-SA submission; consumes the firm's own declared architecture and its own copy of the published matrix.",
  "input_schema_ref": "chaingraph/art-486-cscf-control-applicability.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:e61f7e68aeceece5e32ce4f26e110cac1da3e8f1a8d79d74304674e7de0c8484","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K1PTp1dvRePes2HN2O60no2UPb/drHvlU0T7EWtEGBwNDUE3prHJvtuylxO6TFVomXhe7uftBNL/UQPfeFiChQzJ5uD+lB0V5BoeVu88lnsIRYasLXBfXrjMpVGytZJlIg7WbCGG/ocoVuvDqyMTht4hB6AMwnQ2m9LFjU4IQ8UO+fBrAIZtZNuoHePpIOKB5Rtnn6YaXT8ZAgZwxUyDySK4ofu5l8sxFF+J53IkTHdByJtwFqHt+UNpeb/ddjyAEGnj0xDnJZ2UNI/owq68ApIESfKrCbCobuLlbLWcoYgHh1fMB/fCwpoNbunEcHCbY4B2vYSYDbfEZL/vOhMx1g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e61f7e68aeceece5e32ce4f26e110cac1da3e8f1a8d79d74304674e7de0c8484",
      "output": {
        "advisory_coverage_pct": 0,
        "applicable_advisory_count": 2,
        "applicable_mandatory_count": 4,
        "architecture_type": "A1",
        "component_inventory": [
          "swift_alliance_access",
          "hsm",
          "jump_server"
        ],
        "cscf_version": "2026",
        "evidence_index": {
          "1.1": {
            "evidence_provided": true,
            "evidence_ref": "SWIFT.io evidence",
            "tier": "mandatory"
          },
          "1.2": {
            "evidence_provided": true,
            "evidence_ref": "Network diagram",
            "tier": "mandatory"
          },
          "2.1": {
            "evidence_provided": false,
            "evidence_ref": "Access control list",
            "tier": "mandatory"
          },
          "2.4A": {
            "evidence_provided": false,
            "evidence_ref": "Logging config export",
            "tier": "advisory"
          },
          "5.1": {
            "evidence_provided": true,
            "evidence_ref": "HSM audit report",
            "tier": "mandatory"
          },
          "7.2": {
            "evidence_provided": false,
            "evidence_ref": "Pen-test report",
            "tier": "advisory"
          }
        },
        "gap_list": [
          {
            "control_number": "2.1",
            "evidence_ref": "Access control list",
            "tier": "mandatory"
          },
          {
            "control_number": "2.4A",
            "evidence_ref": "Logging config export",
            "tier": "advisory"
          }
        ],
        "mandatory_coverage_pct": 75,
        "not_applicable_set": {
          "7.2": "No externally exposed pen-test surface for this architecture"
        },
        "overall_status": "gaps_present"
      }
    }
  }
},
    {
  "tool_id": "art-487-assessor-independence-check",
  "tool_version": "1.0.0",
  "display_name": "Swift CSP Assessor Independence Eligibility",
  "mcp_name": "check_assessor_independence",
  "mandate_type": "compliance_mandate",
  "wave": 66,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-487-assessor-independence-check.html",
  "description": "Checks eligibility of a Swift CSCF Independent Assessment Framework assessment: assessment route (internal 2nd/3rd line vs external) against a policy-supplied permitted-routes-per-architecture-type table, claimed assessor certifications against a policy-supplied required set, an independence-from-implementer test over a declared identity set using distinct-identity counting so one person wearing two hats cannot satisfy both sides, and assessment-date validity against the attestation deadline. Returns eligible/ineligible with the first failing predicate named. Not an accreditation of the assessor and not a Swift endorsement -- an eligibility check over the firm's own declared facts.",
  "input_schema_ref": "chaingraph/art-487-assessor-independence-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:296ba15821ab17012505cf41cea3e5915f9146eae5c97eab522579f9cd5fe663","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "D9cTSIFx2B6u0jyNtmjxBnBElHtqAy/tNubDAXjO6EAuEYJ1Szy6w5xeYGQHr9XR5mv00YtLH4SfTijyhrLOUBifo+hGYEnC4YspulWqoRXGbf2eyM74YXwKrUiLgBIHIoE+A5bB8HOjP7VLeYXXyzxGimxK3QYAQWmta2OY4iAZm/eRPJ2hze07lZBCEUf5puLqGfD03fKUzCZdt48hbiANsyl6HQMyNsIYMQwcFcNsERUedEWr+QuBidAxwWobBtFx1bBjaewMNxZ14DQqq4Ck4wYwZ9b9Z11FCUlSzhwVBtaF+4XqBmBCSKGSvdAxX+U2WGWD1Y5T9TUkQZ/J9g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:296ba15821ab17012505cf41cea3e5915f9146eae5c97eab522579f9cd5fe663",
      "output": {
        "architecture_type": "A1",
        "assessment_date": "2026-09-15",
        "assessment_route": "external",
        "attestation_deadline": "2026-12-31",
        "cert_eligible": true,
        "date_eligible": true,
        "eligible": true,
        "failing_predicate": null,
        "independence_eligible": true,
        "overlapping_identities": [],
        "route_eligible": true
      }
    }
  }
},
    {
  "tool_id": "art-488-model-replication-diff",
  "tool_version": "1.0.0",
  "display_name": "Model Replication Diff",
  "mcp_name": "replicate_model_outputs",
  "mandate_type": "compliance_control",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-488-model-replication-diff.html",
  "description": "Independently recomputes a model's reported outputs from a declared model specification (version, as-of date, transform, intercept, coefficients) and a stated input record set, then diffs the recomputation against the model's own reported outputs within a caller-supplied tolerance. Returns a per-record diff (reported, recomputed, absolute and relative diff, within-tolerance), aggregate tolerance stats, an overall replicated / not-replicated verdict, and the failing segment(s) named when not replicated. If the declared specification cannot be recomputed as stated -- unrecognized transform, no coefficients, no tolerance -- the honest result is not_replicable_as_specified with a reason, not a forced pass or fail. Deterministic recompute-and-diff only: this node never opines on conceptual soundness, assumption reasonableness, or fitness for use -- that judgment belongs in a validator's approval record, not here. Model inputs and specifications are expected to arrive as a workbook export via the shipped WB-BRIDGE-1 workbook-to-OCG artifact bridge (tool 554); this node itself accepts plain JSON records so any upstream source can feed it. Distinct from the shipped model-passport nodes (art-450/451/453), which track a model's inventory tier and revalidation cadence rather than recomputing its numeric output. Inline deterministic transcendental math (no engine Math.exp/log) so the same input always produces the same execution_hash on every surface. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-488-model-replication-diff.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:5ff2146f1ae9457d37e4e6699dc331e6f8f69701f3f32a400f848761bc254ed8","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HhTdNfqY0Dj3IM0enlIOzBgNhtMufXIqmWDoNjgqZmot9MqBbD0tMZvocVlQjYKBiGNq0UYk9Et6d4VXTS9X4x+JpNr1mjeeFZteDzCgOrGmT4WkLW0HdpWrSytV9yNJBzCx+Vo9KONVUgSZvg9hhz5X7SXDgVrd7Q5MDtc6yY0M8gKF005n9a4oH3r+yT3jKkyeY5cFYMccFprAjc0jDABuLRV6VqIEdsXgOO6eP3cMgVPzMTmU8YeQQVy8obH1B1lKqYwv9LQaI8Zo2g9CL1GiG6/jJGVbmnElPLQEz4QiMjokkjJqmwPW+/ZzRbzKzhJaMwKQDDZpNC/oMW1ZRQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5ff2146f1ae9457d37e4e6699dc331e6f8f69701f3f32a400f848761bc254ed8",
      "output": {
        "aggregate": {
          "count_computed": 2,
          "count_out_of_tolerance": 0,
          "count_total": 2,
          "max_abs_diff": 0.2,
          "mean_abs_diff": 0.1
        },
        "failing_segments": [],
        "model_spec_as_of_date": "2026-01-01",
        "model_spec_version": "credit-scorecard-v3.2",
        "per_record": [
          {
            "abs_diff": 0,
            "id": "r1",
            "recomputed_value": 17,
            "rel_diff": 0,
            "reported_value": 17,
            "segment": "prime",
            "within_tolerance": true
          },
          {
            "abs_diff": 0.2,
            "id": "r2",
            "recomputed_value": 10,
            "rel_diff": 0.0204081633,
            "reported_value": 9.8,
            "segment": "prime",
            "within_tolerance": true
          }
        ],
        "reason": null,
        "tolerance_applied": {
          "abs_tolerance": 0.5,
          "rel_tolerance": null
        },
        "transform": "linear",
        "verdict": "replicated"
      }
    }
  }
},
    {
  "tool_id": "art-489-model-test-battery",
  "tool_version": "1.0.0",
  "display_name": "Model Test Battery",
  "mcp_name": "run_model_test_battery",
  "mandate_type": "compliance_control",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-489-model-test-battery.html",
  "description": "Runs the deterministic-given-data quantitative model validation battery: discriminatory power (Gini coefficient, Kolmogorov-Smirnov statistic) from scored outcomes, population and characteristic stability (PSI, CSI) between two declared snapshots using the caller's own bins, back-test outcome-vs-predicted per declared bin, and a calibration comparison (predicted vs actual rate, max absolute diff). Every test is graded against a POLICY-SUPPLIED threshold object -- this node never chooses or hardcodes a threshold. If a threshold is missing for a requested test, that test is reported skipped_no_threshold, never silently defaulted; if the underlying data is missing or insufficient (e.g. a single-class scored set for Gini/KS), the test is reported skipped_insufficient_data. Each result carries the test's standard name, its metric value, its threshold, and pass/breach so the artifact reads as a workpaper section, not an opinion. Model inputs and specifications are expected to arrive as a workbook export via the shipped WB-BRIDGE-1 workbook-to-OCG artifact bridge (tool 554); this node itself accepts plain JSON so any upstream source can feed it. Pairs with art-488 model-replication-diff (recompute-and-diff) as the two deterministic legs of a model validation cycle -- neither node emits a soundness or fitness-for-use opinion. Inline deterministic transcendental math (no engine Math.exp/log) so the same input always produces the same execution_hash on every surface. NaN-safe. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-489-model-test-battery.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:20e07ad532c59a2c5619ce03881ce808c367002a5572176618bbb8b6ba06e178","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GpTmEqL3pSA6aIHJ4PWZEVFd93WO+zRi7jrg4Aj/jJkFi+zaCBStX5mM0Xe8dzdt+cJuF5rCjFWo93A5MnmfGhouHskrlZO1QMLiXmRR6uCSNBsLhbb5OcrO2+iBFV6CGTxxEYEcGm7cRbaDhr44R1bIVVRn6aWtVSYI0EyvqeUrPjpb5Zl4PISwJnCXxoSGyvuqZWM+fam1nRuqrJN65wPKr0CndimDsTKmUMmzmfyvWwqq3xFTjvYSrzK3jTFQJ6OpSgi0ghxupAmVcNfJOZNl2royRnuwKwsCboa+ErYrqzD94K9a04RGtgx7bzEWXxQGubXASDXpFa860CgiOw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:20e07ad532c59a2c5619ce03881ce808c367002a5572176618bbb8b6ba06e178",
      "output": {
        "as_of_date": "2026-01-15",
        "back_test": {
          "per_bin": [
            {
              "abs_diff": 0.02,
              "actual_rate": 0.07,
              "bin": "1",
              "n": 100,
              "predicted_rate": 0.05
            },
            {
              "abs_diff": 0.01,
              "actual_rate": 0.09,
              "bin": "2",
              "n": 80,
              "predicted_rate": 0.1
            }
          ]
        },
        "tests": [
          {
            "comparison": ">=",
            "detail": {
              "auc": 1,
              "n_negative": 3,
              "n_positive": 3,
              "n_scored": 6
            },
            "metric_value": 1,
            "name": "gini_coefficient",
            "result": "pass",
            "standard_name": "Gini coefficient",
            "threshold": 0.4,
            "threshold_field": "gini_min"
          },
          {
            "comparison": ">=",
            "detail": {
              "n_negative": 3,
              "n_positive": 3,
              "n_scored": 6
            },
            "metric_value": 1,
            "name": "ks_statistic",
            "result": "pass",
            "standard_name": "Kolmogorov-Smirnov statistic",
            "threshold": 0.3,
            "threshold_field": "ks_min"
          },
          {
            "comparison": "<=",
            "detail": [
              {
                "actual_pct": 0.45,
                "bin": "low",
                "contribution": 0.0052680258,
                "expected_pct": 0.5
              },
              {
                "actual_pct": 0.55,
                "bin": "high",
                "contribution": 0.004765509,
                "expected_pct": 0.5
              }
            ],
            "metric_value": 0.0100335348,
            "name": "population_stability_index",
            "result": "pass",
            "standard_name": "Population Stability Index (PSI)",
            "threshold": 0.25,
            "threshold_field": "psi_max"
          },
          {
            "comparison": "<=",
            "detail": [
              {
                "characteristic": "ltv",
                "detail": [
                  {
                    "actual_pct": 0.4,
                    "bin": "low",
                    "contribution": 0.0223143551,
                    "expected_pct": 0.5
                  },
                  {
                    "actual_pct": 0.6,
                    "bin": "high",
                    "contribution": 0.0182321557,
                    "expected_pct": 0.5
                  }
                ],
                "index": 0.0405465108
              }
            ],
            "metric_value": 0.0405465108,
            "name": "characteristic_stability_index",
            "result": "pass",
            "standard_name": "Characteristic Stability Index (CSI, max across characteristics)",
            "threshold": 0.25,
            "threshold_field": "csi_max"
          },
          {
            "comparison": "<=",
            "detail": [
              {
                "abs_diff": 0.02,
                "actual_rate": 0.07,
                "bin": "1",
                "n": 100,
                "predicted_rate": 0.05
              },
              {
                "abs_diff": 0.01,
                "actual_rate": 0.09,
                "bin": "2",
                "n": 80,
                "predicted_rate": 0.1
              }
            ],
            "metric_value": 0.02,
            "name": "calibration",
            "result": "pass",
            "standard_name": "Calibration (predicted vs actual rate per bin, max abs diff)",
            "threshold": 0.05,
            "threshold_field": "calibration_max_diff"
          }
        ],
        "tests_breached": 0,
        "tests_passed": 5,
        "tests_run": 5,
        "tests_skipped_insufficient_data": 0,
        "tests_skipped_no_threshold": 0,
        "threshold_version": "policy-2026-Q1",
        "thresholds_applied": {
          "calibration_max_diff": 0.05,
          "csi_max": 0.25,
          "gini_min": 0.4,
          "ks_min": 0.3,
          "psi_max": 0.25
        }
      }
    }
  }
},
    {
  "tool_id": "art-490-fatca-crs-submission-check",
  "tool_version": "1.0.0",
  "display_name": "FATCA/CRS Submission Conformance Check",
  "mcp_name": "check_fatca_crs_submission_conformance",
  "mandate_type": "compliance_mandate",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-490-fatca-crs-submission-check.html",
  "description": "Evaluates a FATCA/CRS submission record set against a policy-supplied schema version and business-rule set: DocTypeIndic sequencing (the public OECD CRS/FATCA XML Schema v2.0 new/corrected/void enumeration), MessageRefId/DocRefId uniqueness, CorrDocRefId referencing across corrected and voided records, mandatory-identifier structural checks (TIN presence, BirthDate format, address completeness), and the caller's own mandatory_element_rules array keyed by a published error code and element path. A suppression_list (F3) excludes stood-down rule codes from producing any finding at all, with an audit-trail count of what was suppressed. Schema versions and error-code sets are pinned policy inputs, never kernel source. Ahead of the annual Responsible Officer certification; feeds art-491 ro-remediation-closure. Not a validator competing on schema coverage -- free FATCA/CRS XML validators already exist -- the claim is the sealed, offline-verifiable evidence chain from submission error through remediation to a named RO signature.",
  "input_schema_ref": "chaingraph/art-490-fatca-crs-submission-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:ff7382928e6f04fd05ef9d458b2681f0d86180f02468157ccfa443450eca1d01","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AxCyHCxMUjsNI3sLQcaYMgLxC1HbhnGK082dEfwvFGUUpfQ1/z7bv2MYemvjcoDYgDY7CfjmQaz/rNQTA3hYYQGa7BljKG0yWUtQrZVHDtgV0S3U4BPpoK7mgD5BL6xlKZMSrPottq1eJ0ESyfcj4HGdmh5Q+h3ILu504EdtWIID8lbspo+w00HjaaDfcEbUBObXfiXAbm+SbEtbmD5gnwy73AXikj0qc0SJfLKj0iia6cIKpQd5KM8h7WatLsxXLxk/8I7cR73U+j+7L96xprJRfigo730ieIIbS8BHFjcpkUaM5E4kS1zEFJTxDyY/BW21ycrh2A12f5AeljToRw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ff7382928e6f04fd05ef9d458b2681f0d86180f02468157ccfa443450eca1d01",
      "output": {
        "certification_period": "2025",
        "fail_count": 0,
        "finding_count": 0,
        "findings": [],
        "note": "Deterministic FATCA/CRS submission conformance evaluator over a caller-declared record set, DocTypeIndic sequencing/uniqueness/referencing (public OECD CRS/FATCA XML Schema v2.0 structural vocabulary), mandatory-identifier structural checks, and a caller-supplied business-rule set keyed by published error code + element path. Schema version and error-code sets are pinned policy inputs, never kernel source. A suppressed rule_code produces no finding at all for any record. This tool evaluates conformance only; it does not itself submit, transmit, or file anything, and it is not legal or tax advice.",
        "record_count": 2,
        "schema_version": "OECD-CRS-XML-SCHEMA-v2.0",
        "submission_id": "SUB-2025-US-0001",
        "suppressed_finding_count": 0,
        "suppressed_rule_codes": []
      }
    }
  }
},
    {
  "tool_id": "art-491-ro-remediation-closure",
  "tool_version": "1.0.0",
  "display_name": "FATCA/CRS RO Remediation Closure Tracker",
  "mcp_name": "track_fatca_crs_ro_remediation_closure",
  "mandate_type": "attestation_mandate",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-491-ro-remediation-closure.html",
  "description": "Tracks the returned notification set for a FATCA/CRS certification period (ICMM-style error notifications, CRS status messages) against the firm's own remediation records: per-notification open/closed/overdue status, resubmission linkage naming which corrected DocRefId closes which notification, closure coverage percentage, and a certification-period readiness verdict against a declared cut-off date. Reuses the art-428-cyber-incident-clock decision-tree attestation-slot pattern (item_state/exception vocabulary); no new notification-clock arithmetic is invented. Consumes art-490 fatca-crs-submission-check findings as the error source in the fatca-ro-certification-cycle chain. Feeds the Responsible Officer's certification evidence bundle -- never claims to itself satisfy an IRS or competent-authority filing requirement.",
  "input_schema_ref": "chaingraph/art-491-ro-remediation-closure.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:3a605809e324af32ea025897ba46618e869f3a5701025e98ba5a7ff74a25847e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Jf0FgAqjMQqZHe+bnJHCVVkE45JtdoOYTyREe+vxVZQU/3Z+6oNUUqkQjm0LlBxHOLnuuQs30ws7mLypoasIISvVQHW9dV+Oc5QSO4lGRVrz8ZEyqbFC3Pb/PMcxZNwOJeoSZYGRMLvkeokm3fB5MeU+i8gzMHIaguWumRMYKX4T10onYL7TsGEvv6ZYd4KD/9wk/tCvunGv/b6SyTBYcAqSbqRw1z4n5THfJk+NDzqNoJX1J+UGaC37xMIn9uFML9oUhmjiK7wCihu44z2EpuowQm09Qmr3YCAC4mMHZQ8TmQzxeKqKq94bgH4Mtbj6I1+YCfNL9QsCCqpGkDkOYA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3a605809e324af32ea025897ba46618e869f3a5701025e98ba5a7ff74a25847e",
      "output": {
        "certification_period": "2025",
        "closed_count": 2,
        "closure_coverage_pct": 100,
        "cutoff_at": "2026-07-01T00:00:00.000Z",
        "determinations": [
          {
            "closed_at": "2026-05-01T00:00:00.000Z",
            "closure_status": "closed",
            "doc_ref_id": "US2025DOC0001",
            "exception": null,
            "ha_note": "Not yet an approval record. A human reviewer/approver MAY later create a separate, signed approval record over this artifact's execution_hash + this notification_id; this kernel does not fabricate or reserve a mutable slot for that record inside its own hashed output.",
            "item_state": "done",
            "notification_code": "ICMM-TYPE1-RECOVERABLE",
            "notification_id": "NOTIF-0001",
            "resubmission_linkage": {
              "resubmitted_at": "2026-05-01T00:00:00.000Z",
              "resubmitted_doc_ref_id": "US2025DOC0001-CORR1"
            }
          },
          {
            "closed_at": "2026-05-10T00:00:00.000Z",
            "closure_status": "closed",
            "doc_ref_id": "US2025DOC0002",
            "exception": null,
            "ha_note": "Not yet an approval record. A human reviewer/approver MAY later create a separate, signed approval record over this artifact's execution_hash + this notification_id; this kernel does not fabricate or reserve a mutable slot for that record inside its own hashed output.",
            "item_state": "done",
            "notification_code": "CRS-STATUS-REJECTED",
            "notification_id": "NOTIF-0002",
            "resubmission_linkage": {
              "resubmitted_at": "2026-05-10T00:00:00.000Z",
              "resubmitted_doc_ref_id": "US2025DOC0002-CORR1"
            }
          }
        ],
        "evaluated_at": "2026-06-15T00:00:00.000Z",
        "note": "Deterministic FATCA/CRS remediation-closure tracker over a caller-declared notification set + remediation records, evaluated against one declared certification-period cut-off date. Reuses the art-428-cyber-incident-clock decision-tree attestation-slot pattern (item_state/exception vocabulary); no notification-clock arithmetic is invented here. This tool tracks closure and computes a readiness verdict only; it does not itself submit, transmit, or file anything, and it is not legal or tax advice.",
        "notification_count": 2,
        "open_count": 0,
        "overdue_count": 0,
        "readiness_verdict": "READY"
      }
    }
  }
},
    {
  "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
      }
    }
  }
},
    {
  "tool_id": "art-494-icm-quorum-forgery-classifier",
  "tool_version": "1.0.0",
  "display_name": "ICM Quorum Forgery Classifier",
  "mcp_name": "check_icm_quorum_forgery_risk",
  "mandate_type": "analytics_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-494-icm-quorum-forgery-classifier.html",
  "description": "Computes the smallest set of a source Avalanche L1's validators that could jointly sign an Interchain Messaging (ICM / Avalanche Warp Messaging) message the receiving L1 would accept: sorts the caller-transcribed stake weights descending, prefix-sums them, and returns the count at which the receiving chain's accepted stake-weight quorum is first satisfied, alongside that group's cumulative share, an HHI-style stake concentration figure, and a verdict against a caller-declared minimum-colluding floor. Quorum semantics follow avalanchego's Warp signature check (signed weight times 100 greater than or equal to total weight times the quorum percentage), evaluated cross-multiplied so no division rounding moves the boundary. The accepted quorum is a caller input with no baked-in default threshold, because it is the receiving chain's own acceptance policy for that source rather than a statutory number, following the precedent art-445 sets by refusing to bake in a concentration limit. Avalanche finality is sub-second with no reorg window, so the challenge-window arithmetic that applies to optimistic bridges does not transfer; this node picks up where that risk relocates, namely who signed the cross-chain message. Borrows only the art-445 helper pattern (fixed-point 2dp rounding, share-of-total, finite gate, NaN-safe coercion); art-445 computes top-N and per-sector rollups and does not compute a minimum-colluding set. Observes no chain: no RPC call and no P-Chain query, with the validator set transcribed by the caller as opaque identifiers. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-494-icm-quorum-forgery-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5d1204c5f516f5975687ac3d86c9f9325f1fbac2071cfebf14f55f33094d7c7f",
      "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": "FYts+/eAlu1QE3ssKmU/JK4zHK2yfs4wmaHDUS1Q+40tJaK95kCK2EHa/oZ399U9KoJ4EHRCqtmym64jSj8z8QA/NNH/yfKXLgx0z6RuEodMvFj6NUyCSZwVQ1JoeqKDC19WE3O1gDk3XnLPGiHoZSct8z0cf4OaXQ13qEaO7lMmLKLlsjtk1BCMuXeB1Hl7qemsvuG6elfOYvEpT9O0lB0eApSUCzkxuugu6bBHOD2a6LjNpXLYv1tzhOmCrQB6KnEN0Ov5IEuKlSakVj5+qhCM/F7OYvcM0D3hyVzXKZAAH+yhDADiO6yDgD3BWWTlwAPb95oZiH29vi0wbcFyZg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5d1204c5f516f5975687ac3d86c9f9325f1fbac2071cfebf14f55f33094d7c7f",
      "output": {
        "colluding_share_pct": 77,
        "colluding_stake_weight": 7700,
        "meets_floor": false,
        "message_class": "token-transfer",
        "min_colluding_floor": 4,
        "min_colluding_validators": 3,
        "quorum_pct": 67,
        "quorum_pct_valid": true,
        "quorum_reachable": true,
        "rationale": [
          "The 3 largest of 7 transcribed validators hold 77 percent of stake, which satisfies the accepting quorum of 67 percent. That is the smallest group able to sign a message Source L1 Alpha could have the receiver accept.",
          "The declared floor requires at least 4 validators to be needed for quorum. Only 3 are needed."
        ],
        "source_l1_label": "Source L1 Alpha",
        "stake_hhi": 2524,
        "total_stake_weight": 10000,
        "total_validators": 7
      }
    }
  }
},
    {
  "tool_id": "art-495-avax-permissioning-control-classifier",
  "tool_version": "1.0.0",
  "display_name": "Evergreen Permissioning-Control Classifier",
  "mcp_name": "classify_avax_permissioning_controls",
  "mandate_type": "compliance_control",
  "wave": "AVAX-PERM-1",
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-495-avax-permissioning-control-classifier.html",
  "description": "Classifies six Evergreen supervisory controls -- transaction permissioning, contract deployment permissioning, native asset issuance, fee policy, reward distribution, and validator set membership -- as protocol-enforced, application-enforced, or absent, from caller-transcribed genesis precompile configuration and validator-manager mode. Distinct from the segregation-of-duties matrix checker: that tool asks who holds conflicting power, this asks where the control lives at all. An undeclared input never falls through to a silent guess -- it becomes a named judgment_required entry naming the undetermined fact, the input that resolves it, and who decides. Zero network, zero PII -- opaque control and precompile keys only.",
  "input_schema_ref": "chaingraph/art-495-avax-permissioning-control-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:e2226e2a5e87529aafc4e91fc031b0238f9158ef93e1f8bfe0ffae3e57e692a0",
      "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": "BkkHxlPlHgfrO5izDhhQxjLw1kUOnwhXjQTAnZxIpJ8MtEfBjMWM58OTGoFavzX80jHh1LRAZ/zqibFquLEyNwdyonS1EqdB5O0wLQLS3da12BhC/kVuxs1bQOLaVQevKPwxSy5Hca3W6P4d1nXaC/uRdfTO1X/y7Mbojw5podceREzS8lFX+EsOSWUGpTd7wEGMAPP1iEbDNqto7q8pUSFziBNOEpI5fRpjD3SxiySicUmoKdiyoV/Hjw1alFDeHyz+g9l6q5WRogMSb05cFSn+jp//REhi0dWWy2ugMVkK8y9ewOz3oBc2N5jfoH7Rv3qMZ39sfgtymOODg281pw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:e2226e2a5e87529aafc4e91fc031b0238f9158ef93e1f8bfe0ffae3e57e692a0",
      "output": {
        "absent_count": 2,
        "application_enforced_count": 2,
        "controls": [
          {
            "basis": "precompile_active_in_genesis",
            "control_id": "transaction_permissioning",
            "label": "Transaction submission (TX AllowList)",
            "precompile_key": "txallowlist",
            "status": "protocol_enforced"
          },
          {
            "basis": "precompile_active_in_genesis",
            "control_id": "contract_deployment_permissioning",
            "label": "Contract deployment (Contract Deployer AllowList)",
            "precompile_key": "deployerallowlist",
            "status": "protocol_enforced"
          },
          {
            "basis": "precompile_inactive_no_app_control",
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "precompile_key": "nativeminter",
            "status": "absent"
          },
          {
            "basis": "app_level_control_declared",
            "control_id": "fee_policy_control",
            "label": "Fee policy (Fee Manager)",
            "precompile_key": "feemanager",
            "status": "application_enforced"
          },
          {
            "basis": "precompile_inactive_no_app_control",
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "precompile_key": "rewardmanager",
            "status": "absent"
          },
          {
            "basis": "validator_manager_mode_poa",
            "control_id": "validator_set_membership_control",
            "label": "Validator set membership (validator-manager contract, ACP-77)",
            "precompile_key": null,
            "status": "application_enforced"
          }
        ],
        "controls_evaluated": 6,
        "gap_register": [
          {
            "control_id": "native_asset_issuance_control",
            "label": "Native asset issuance (Native Minter)",
            "reason": "precompile_inactive_no_app_control"
          },
          {
            "control_id": "reward_distribution_control",
            "label": "Reward distribution (Reward Manager)",
            "reason": "precompile_inactive_no_app_control"
          }
        ],
        "judgment_required": [],
        "judgment_required_count": 0,
        "protocol_enforced_count": 2
      }
    }
  }
},
    {
  "tool_id": "art-496-l1-continuous-fee-runway",
  "tool_version": "1.0.0",
  "display_name": "L1 Continuous-Fee Runway Model",
  "mcp_name": "model_l1_fee_runway",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-496-l1-continuous-fee-runway.html",
  "description": "Avalanche Evergreen L1 continuous-fee TCO and depletion-runway model. ACP-77 replaced the 2000 AVAX stake requirement with a continuous, dynamic P-Chain fee drawn from an L1 balance that depletes and needs refills, so the fee rate and its growth assumption are always caller inputs, never baked in. Computes validator count times fee rate, plus infra cost, plus current balance into an annual TCO and its per-component breakdown. The novel output is months_to_depletion and depletion_offset_days: the point at which the L1 runs out of balance and stops validating, an offset from the caller-supplied as_of, never a clock read. Also returns the refill amount required to reach a caller-supplied target runway. Zero balance, zero validators or a zero fee rate each resolve to a defined, finite result rather than an unbounded projection. No chain observation, no RPC: every input is caller-transcribed state. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-496-l1-continuous-fee-runway.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:645615515f1d1e2eff3358be3eb19499b93dc0e184ac08ae8b124ee65d4637c5",
      "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": "HhtscLqTkkEETh02lliDPh7Lf7wxEHPA0unJGb9kNwUVFjP9ahlzR+N5KR9iUrzbuYtDaaylDhUXlGzRU4PmAhuKK4d9BVs4UFBJDj47vwpZYeVEahQla47pXTCLHEFYLfgy7XvrPvFv3gOIUn6rmckacnUNdaM7wHr2MllcPtYvkJG7KN0zDI6bnBV6rN7Ww1bDoyMUcSP3O1moQnPYxRPPUa0rxtsUq3mP0pRubVbicG6ncIcKQbFqGg9U2glGKZb5ufzK2kpH7gHoSmBdSGmGyIytqRbHOu14gcIJfV4NXOdUhsrL9Fz9B4TWVToXb0pAij0NB1uO0boFsygLNg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:645615515f1d1e2eff3358be3eb19499b93dc0e184ac08ae8b124ee65d4637c5",
      "output": {
        "annual_tco": 12798,
        "as_of": 1753900000,
        "breakdown": {
          "fee_component_annual": 798,
          "infra_component_annual": 12000
        },
        "current_balance": 6000,
        "depletion_offset_days": 183,
        "fee_growth_rate_annual_pct": 10,
        "fee_rate_avax_per_validator_month": 1.33,
        "fee_rate_defaulted": false,
        "horizon_months": 1200,
        "infra_cost_annual": 12000,
        "months_to_depletion": 6,
        "rationale": [
          "months_to_depletion (6) is short of the 24 month target runway."
        ],
        "refill_amount_required": 19675.80000000001,
        "runway_flag": "L1_RUNWAY_SHORT",
        "target_runway_months": 24,
        "validator_count": 50
      }
    }
  }
},
    {
  "tool_id": "art-497-validator-change-control-receipt",
  "tool_version": "1.0.0",
  "display_name": "Validator Change-Control Receipt",
  "mcp_name": "build_validator_change_control_receipt",
  "mandate_type": "compliance_control",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-497-validator-change-control-receipt.html",
  "description": "Turns one permissioned-validator event on an Avalanche Evergreen L1 -- a validator add, remove, or weight change -- into change-control evidence in the shape the SOX/ICFR control family already uses: the authorization chain of named identities, the weight delta and its share-of-total effect against a caller-supplied total network stake, and a quorum verdict comparing the caller's declared approval-quorum policy against what the caller states was achieved, plus a structural exceptions list (nonzero prior weight on an add, nonzero posterior weight on a remove, no delta on a weight change, an unauthorized change, an achieved-quorum count exceeding the number of named authorizers). No baked-in quorum threshold: quorum_required is the caller's own policy for that Evergreen L1, exactly as art-445/art-494 refuse to bake in their own thresholds. No chain observation, no P-Chain query, no RPC: the event is transcribed by the caller. Not X: use art-503 for a §27 dual-control certification that counts distinct approvers against a statutory-or-policy threshold across a subject; this node evidences one validator-set change event, not an approval-count certification. compliance_control. Zero PII: validator_ref and every authorizing identity are opaque references.",
  "input_schema_ref": "chaingraph/art-497-validator-change-control-receipt.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:54af35dcf6e35f959764ddf334f63dafbdf57047a8f810e47e3f980586a861b3",
      "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": "JtTGWPiAGo97JS9hG24pWZtYXLzjRGx17R8PG1v8TqMPvrzfIa9ONyRdM0FYj0qb4n8jwCdMUf2PDebczY/1ISCr8Ca1ow3mJCJa/DvTV+RVr4RY7oK7UGfYKLMeXodPLXfI2U/QZioJvirwM6Dpxi6gl9FQ5H6foLcdSKoS8ZoDUWhDWq4tIqkkTH8mpug2Uk4arShkNK4T1qxGcX1loRNARlghEN26AC4qCRl86UuambFvR+9RO+SE4zImtJTNIKNu4siG4H0O4j/vitbfR3v5vx90piaDhTHQBmD7JhQCG5o9ogFOFyw1EIZA9bX/M1XE8f0I0s5Gp0CwA+SL0g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:54af35dcf6e35f959764ddf334f63dafbdf57047a8f810e47e3f980586a861b3",
      "output": {
        "as_of": "2026-07-30",
        "authorization_chain": [
          "ID-A",
          "ID-B",
          "ID-C"
        ],
        "authorized": true,
        "change_type": "weight_change",
        "change_type_valid": true,
        "effective_epoch": "epoch-4821",
        "exceptions": [],
        "posterior_weight": 1500,
        "prior_weight": 1200,
        "quorum_achieved": 3,
        "quorum_required": 3,
        "quorum_status": "MET",
        "share_of_total_pct": 0.6,
        "total_stake_weight": 50000,
        "validator_ref": "VAL-07",
        "weight_delta": 300
      }
    }
  }
},
    {
  "tool_id": "art-498-reward-flow-related-party",
  "tool_version": "1.0.0",
  "display_name": "Consortium Validator Reward-Flow Related-Party Classifier",
  "mcp_name": "classify_reward_flow_related_party",
  "mandate_type": "compliance_control",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-498-reward-flow-related-party.html",
  "description": "Answers the question a consortium controller faces at quarter-end close on a permissioned Avalanche Evergreen L1: are any of the reward-manager precompile's payment recipients related parties of the reporting entity, and is what they received material. Takes a transcribed recipient list, the caller's own entity-ownership map, per-period reward amounts transcribed from the institution's own accounting export, a materiality threshold and a ruleset_version, and returns a per-recipient classification (same ultimate parent as the issuer, co-consortium member, unrelated, or unresolved), the aggregate related-party amount measured against the threshold, a gap list that names every recipient it could not resolve, and clearly-labelled draft ASC 850 / IAS 24 disclosure-note language. Own versioned ruleset carried in policy_parameters and echoed into the receipt: no ruleset is imported from any other control family, so one family's ruleset edit cannot move this node's hash. Flags, amounts and the pinned ASC 850 and IAS 24 citations are emitted unconditionally; the draft note is a convenience layer on top of them and is labelled DECISION-SUPPORT DRAFT, never legal or accounting advice. No coverage ratio and no percentage of recipients classified: the permitted form is a gap list naming each unresolved recipient. No chain observation, no RPC, no P-Chain query: recipients and amounts are transcribed by the caller. Not X: use art-459 for a segregation-of-duties conflict matrix over role assignments; this node classifies payment recipients against a group ownership structure. compliance_control. Zero PII: every recipient, entity and parent reference is an opaque caller-supplied string, and unmapped fields on caller objects are dropped rather than echoed.",
  "input_schema_ref": "chaingraph/art-498-reward-flow-related-party.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:6c287e9bd9cecbd2b1b9cc99b8431526e5225a29aa44b21f63831f5814b58da1",
      "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": "CxaXJdbKQBaVmbKBH2op1csXWqy+PCFLFQFDGZ8YPvcLY7J5vUmlFPaPOT8Eqy/5KHfIXBUpX2g3vVc2r7hR7BTchd8ukhIGdGcmL3/mJNxaOmQa4isImTkxtj4yCnlIH9WhS0SSwTd7Lplzza/lFhRHVrWbvcwERsoeiG1UCCAk44vC7z9N96jsL7qL03alQ8ozeqh/A41+hnUCZYTgsRu/eCgAxqQy25zjDTAoej3dkmJfR7AFsitoMJzNUNIOLi+Izd0ZOFividqvGfJZWtQRalSx24B5L3k70SdExkIQ8cn0ViViOMEw4QtNuqaseLZ5ogPruW5+x5zimA190A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:6c287e9bd9cecbd2b1b9cc99b8431526e5225a29aa44b21f63831f5814b58da1",
      "output": {
        "as_of": "2026-07-30",
        "citations": {
          "ifrs_related_party": {
            "id": "IAS 24",
            "in_force_from": "2011-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers AVAX-RPARTY-1",
            "scheme": "ifrs-ias",
            "uri": "https://www.ifrs.org/issued-standards/list-of-standards/ias-24-related-party-disclosures/"
          },
          "us_gaap_related_party": {
            "id": "ASC 850-10-50",
            "in_force_from": "2009-09-15",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers AVAX-RPARTY-1",
            "scheme": "fasb-asc",
            "uri": "https://asc.fasb.org/"
          }
        },
        "currency": "USD",
        "draft_disclosure_note": {
          "disclaimer": "Drafted from the transcribed figures above for review by the reporting entity and its auditor. Not legal or accounting advice, and not a filing.",
          "label": "DECISION-SUPPORT DRAFT",
          "lines": [
            "Validator reward flows for FY2026-Q2 were reviewed against the group ownership structure recorded for ISS-1.",
            "2 reward-manager recipient(s) were classified as related parties, receiving 42000.00 USD in aggregate for the period.",
            "Recipients so classified: RCP-A (SAME_ULTIMATE_PARENT), RCP-B (CO_CONSORTIUM_MEMBER).",
            "The aggregate related-party amount is at or above the materiality threshold of 25000.00 USD stated for this review.",
            "Prepared with reference to ASC 850-10-50 and IAS 24, as pinned in the citations above."
          ]
        },
        "flagged_recipient_count": 2,
        "flagged_recipient_refs": [
          "RCP-A",
          "RCP-B"
        ],
        "flagged_total": 42000,
        "gaps": [],
        "issuer_ref": "ISS-1",
        "issuer_ultimate_parent_ref": "UP-1",
        "materiality_status": "AT_OR_ABOVE_THRESHOLD",
        "materiality_threshold": 25000,
        "period_ref": "FY2026-Q2",
        "recipient_count": 4,
        "recipients": [
          {
            "classification": "SAME_ULTIMATE_PARENT",
            "entity_ref": "ENT-A",
            "recipient_ref": "RCP-A",
            "related_party": true,
            "reward_amount": 30000,
            "ultimate_parent_ref": "UP-1"
          },
          {
            "classification": "CO_CONSORTIUM_MEMBER",
            "entity_ref": "ENT-B",
            "recipient_ref": "RCP-B",
            "related_party": true,
            "reward_amount": 12000,
            "ultimate_parent_ref": "UP-2"
          },
          {
            "classification": "NOT_RELATED",
            "entity_ref": "ENT-C",
            "recipient_ref": "RCP-C",
            "related_party": false,
            "reward_amount": 8000,
            "ultimate_parent_ref": "UP-3"
          },
          {
            "classification": "NOT_RELATED",
            "entity_ref": "ENT-D",
            "recipient_ref": "RCP-D",
            "related_party": false,
            "reward_amount": 1500.55,
            "ultimate_parent_ref": "UP-4"
          }
        ],
        "ruleset_version": "avax-rparty-2026.07",
        "unquantified_related_recipient_count": 0,
        "unresolved_recipient_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-499-check-safeguarding-reconciliation",
  "tool_version": "1.0.0",
  "display_name": "CASS 15 Safeguarding Reconciliation Check",
  "mcp_name": "check_safeguarding_reconciliation",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-499-check-safeguarding-reconciliation.html",
  "description": "Compares a UK payment or e-money firm's safeguarding requirement (CASS 15.8.29G) against the components of its safeguarding resource (CASS 15.8.26R) for one caller-declared as-of date, and classifies the arithmetic outcome as reconciled, shortfall, or excess against a caller-declared tolerance. Resource components carry the four component types CASS 15.8.26R enumerates: relevant funds bank account, segregated but not yet placed, relevant assets, and insurance or guarantee. Money is handled as integer minor units throughout with 2dp display, an empty or zero figure set resolves to a defined verdict, and any value that is not a usable integer amount is named in rejected_inputs rather than silently dropped. Single-run and stateless: the firm performs its reconciliation no less than once each reconciliation day because CASS 15.8.19R requires it of the firm, and this tool operates nothing, stores nothing, and retains nothing. A shortfall verdict is an arithmetic finding about the figures supplied, never a determination that the firm has breached CASS 15.",
  "input_schema_ref": "chaingraph/art-499-check-safeguarding-reconciliation.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ee7c278f77ba168b6c221d6a703d01ad0390c884fd1551198e71f423d3fe4554",
      "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": "ElGvD6DRXxFAbxnPVCyUvzz1QHYSk+Nz4I98FtzNOYYNCY3Q6pNPWEwXzI6abNBr/PiWJfVzJjTA2OBeCEq1piB6oash6krkl+8AyAZjuk+XLslz732fGorb79JNxTkWJsErjTx7ZMQ6skqion0fYvA2RxuDaIh5AejQUyE8MR4hlyJp/VU3CGoTKT3pPIVLS0XaiaR2vtLhDuy9PifKzBiofcSbrX7xE/8WwMKNDvPeLYDt/8LGTeyztDlFmEYnC2tTmwW4BusyHmhN+dQoW3JZZxr4IVzI4bd2NvAsoGgLPcMdHfGn2CTHOhtKehmXoM/+7klzKuhYXtOlknKOBg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ee7c278f77ba168b6c221d6a703d01ad0390c884fd1551198e71f423d3fe4554",
      "output": {
        "as_of_date": "2026-07-29",
        "citations": {
          "discrepancy_treatment": {
            "id": "CASS 15.8.50R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "external_frequency": {
            "id": "CASS 15.8.42R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "external_reconciliation": {
            "id": "CASS 15.8.47R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "internal_frequency": {
            "id": "CASS 15.8.19R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "internal_reconciliation": {
            "id": "CASS 15.8.10R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "safeguarding_requirement": {
            "id": "CASS 15.8.29G",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "safeguarding_resource": {
            "id": "CASS 15.8.26R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          }
        },
        "component_count": 4,
        "components": [
          {
            "account_ref": "ACC-REF-A1",
            "amount_display": "410000.00",
            "amount_minor_units": 41000000,
            "component_type": "relevant_funds_bank_account",
            "counted_toward_resource": true,
            "excluded_amount_minor_units": 0
          },
          {
            "account_ref": "ACC-REF-B2",
            "amount_display": "22500.00",
            "amount_minor_units": 2250000,
            "component_type": "segregated_not_yet_placed",
            "counted_toward_resource": true,
            "excluded_amount_minor_units": 0
          },
          {
            "account_ref": "ACC-REF-C3",
            "amount_display": "30000.00",
            "amount_minor_units": 3000000,
            "component_type": "relevant_assets",
            "counted_toward_resource": true,
            "excluded_amount_minor_units": 0
          },
          {
            "account_ref": "ACC-REF-D4",
            "amount_display": "20000.00",
            "amount_minor_units": 2000000,
            "component_type": "insurance_or_guarantee",
            "counted_toward_resource": true,
            "excluded_amount_minor_units": 0
          }
        ],
        "currency": "GBP",
        "difference_direction": "level",
        "difference_display": "0.00",
        "difference_minor_units": 0,
        "minor_unit_exponent": 2,
        "note": "Deterministic UK CASS 15 safeguarding reconciliation check over a caller-supplied figure set for one declared as-of date. Single-run and stateless: this tool holds no records, runs on no schedule, and retains nothing. The verdict is an arithmetic comparison of the supplied safeguarding resource against the supplied safeguarding requirement. It is not a determination that the firm has or has not complied with CASS 15, it is not a regulatory filing, and it is not legal advice.",
        "rationale": [
          "Safeguarding requirement supplied as 482500.00 GBP (CASS 15.8.29G).",
          "Safeguarding resource summed to 482500.00 GBP across 4 supplied components (CASS 15.8.26R).",
          "Difference (resource minus requirement) is 0.00 GBP; declared tolerance is 1.00 GBP.",
          "Evaluated as a internal safeguarding reconciliation (CASS 15.8.10R), which the firm performs no less than once each reconciliation day (CASS 15.8.19R).",
          "On these figures the resource and the requirement agree within the declared tolerance. This is an arithmetic finding about the figures supplied here, not an opinion on the completeness or accuracy of the underlying records."
        ],
        "reconciliation_type": "internal",
        "rejected_inputs": [],
        "ruleset": {
          "field_set_version": "1.0.0",
          "in_force_from": "2026-05-07",
          "ruleset_id": "FCA-CASS15-PS25-12",
          "ruleset_label": "FCA CASS 15 safeguarding rules, as made by PS25/12",
          "sourced_from": "handbook.fca.org.uk",
          "sourced_on": "2026-07-30"
        },
        "safeguarding_requirement_display": "482500.00",
        "safeguarding_requirement_minor_units": 48250000,
        "safeguarding_resource_display": "482500.00",
        "safeguarding_resource_minor_units": 48250000,
        "subtotals_by_component_type": [
          {
            "amount_display": "410000.00",
            "amount_minor_units": 41000000,
            "component_type": "relevant_funds_bank_account"
          },
          {
            "amount_display": "22500.00",
            "amount_minor_units": 2250000,
            "component_type": "segregated_not_yet_placed"
          },
          {
            "amount_display": "30000.00",
            "amount_minor_units": 3000000,
            "component_type": "relevant_assets"
          },
          {
            "amount_display": "20000.00",
            "amount_minor_units": 2000000,
            "component_type": "insurance_or_guarantee"
          }
        ],
        "tolerance_display": "1.00",
        "tolerance_minor_units": 100,
        "verdict": "reconciled",
        "within_tolerance": true
      }
    }
  }
},
    {
  "tool_id": "art-500-classify-safeguarding-method",
  "tool_version": "1.0.0",
  "display_name": "CASS 15 Safeguarding Method Classifier",
  "mcp_name": "classify_safeguarding_method",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-500-classify-safeguarding-method.html",
  "description": "Classifies each caller-declared funds stream of a UK payment or e-money firm on three questions: whether the funds are relevant funds, whether the safeguarding method asserted for them (segregation under CASS 15.3, or an insurance policy or comparable guarantee under CASS 15.5) is coherent with the designated-account, acknowledgement-letter and instrument facts supplied, and where the supplied facts do not settle the answer. Every judgment_required outcome names what is undetermined, which single input would resolve it, and who decides, so a judgment is never a bare flag. Also computes a SUP 3A safeguarding audit exemption indicator from a relevant funds high-water figure observed over at least 53 weeks. Single-run and stateless. A coherence verdict is a consistency check on the facts as declared, never a determination that the firm has complied with or breached CASS 15, and never an opinion on whether an insurance policy or guarantee is legally effective.",
  "input_schema_ref": "chaingraph/art-500-classify-safeguarding-method.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:314afddd557143ad20b8ecc8db1f7ebf34c9ff4eded6024723b8cde4d9501938",
      "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": "IqLU6S6Zp2VdifndnqcpBNx+sqEBngNH37zgnj1Twe0PTxYVQXkZju7bbR2CdfuE3RVL3YplcjVgHW3OCLH46RSH7CxNs5vqrOTBNUxTXviCaM0kIGjSpZ3dmeFBIUrVCdKq53T1pFCSh/lhi2AtZOT0wSQIxqHEcen1iDdsWTAPojWvOYS2hYXzAfLxej77cNpjKYLF35IhSkqcLwJ07wMBydK7T3YClp4hJ8ESiyolPRpDL5qmKGiQO2VnBgnRFC4Nx3FOdFlIVUl6SM1Db8CkKI6bmqLvPqSb5uv3t+IeqVRTTm1YKE5yhao23svBoAZBQ+zaWle7UZ5CZfHAnA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:314afddd557143ad20b8ecc8db1f7ebf34c9ff4eded6024723b8cde4d9501938",
      "output": {
        "as_of_date": "2026-07-29",
        "audit_exemption_indicator": {
          "basis": "Over 60 weeks the firm reports never having been required to safeguard more than 42000.00 in relevant funds, which is at or below the 100000.00 threshold the exemption is expressed against. This is an indicator computed from the figures supplied. Whether the exemption is available to this firm is for the firm and its auditor.",
          "citation_id": "SUP 3A",
          "outcome": "audit_exemption_indicated"
        },
        "citations": {
          "acknowledgement_letters": {
            "id": "CASS 15.7",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s7"
          },
          "insurance_or_guarantee_conditions": {
            "id": "CASS 15.5.4R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s5"
          },
          "insurance_or_guarantee_provider": {
            "id": "CASS 15.5.8R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s5"
          },
          "mixed_remittances": {
            "id": "CASS 15.3.2R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s3"
          },
          "safeguarding_audit": {
            "id": "SUP 3A",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/SUP/3A/"
          },
          "segregation_method": {
            "id": "CASS 15.3.1G",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-1",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s3"
          }
        },
        "classification_verdict": "COHERENT_ON_SUPPLIED_FACTS",
        "coherent_count": 1,
        "determinations": [
          {
            "funds_category": "emoney_relevant_funds",
            "incoherence_count": 0,
            "judgment_required_count": 0,
            "method_asserted": "segregation",
            "method_coherence": "coherent",
            "method_findings": [],
            "relevant_funds_determination": {
              "basis": "Declared as emoney_relevant_funds, which the firm has identified as relevant funds.",
              "citation_id": null,
              "outcome": "relevant"
            },
            "stream_ref": "STRM-001"
          }
        ],
        "incoherent_count": 0,
        "judgment_stream_count": 0,
        "minor_unit_exponent": 2,
        "note": "Deterministic UK CASS 15 safeguarding method classifier over a caller-declared set of funds streams. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It checks whether the method asserted for each stream is coherent with the account and instrument facts supplied, and names every question those facts leave open together with the input that would resolve it and the person who decides. It is not a determination of compliance or breach, not an opinion on the legal effectiveness of any insurance policy or guarantee, not a regulatory filing, and not legal advice.",
        "open_judgment_count": 0,
        "rationale": [
          "1 funds stream classified against FCA CASS 15 safeguarding rules, as made by PS25/12, in force from 2026-05-07.",
          "Every stream is internally consistent with the method asserted for it, on the facts supplied. That is a consistency check on the declarations, not a validation that the declarations are true or that the firm complies with CASS 15."
        ],
        "ruleset": {
          "field_set_version": "1.0.0",
          "in_force_from": "2026-05-07",
          "ruleset_id": "FCA-CASS15-PS25-12",
          "ruleset_label": "FCA CASS 15 safeguarding rules, as made by PS25/12",
          "sourced_from": "handbook.fca.org.uk",
          "sourced_on": "2026-07-30"
        },
        "stream_count": 1
      }
    }
  }
},
    {
  "tool_id": "art-501-build-safeguarding-audit-evidence",
  "tool_version": "1.0.0",
  "display_name": "CASS 15 Safeguarding Audit Evidence Pack",
  "mcp_name": "build_safeguarding_audit_evidence",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-501-build-safeguarding-audit-evidence.html",
  "description": "Assembles the evidence set a qualified auditor asks a UK payment or e-money firm for at the start of a CASS 15 safeguarding audit: the reconciliation results across the declared audit period, the safeguarding method classification, a schedule of the matters those raise keyed by the individual rule reference with a management response recorded against each item, and the section 27 accountability trail over the firm's own reconciliation export. It is the first consumer of the section 27.4 attested-artifact subject class: the export is a non-OCG producer's sealed output, so its subject identifier is computed by art-502-bind-attested-subject and echoed here verbatim rather than recomputed, because a second implementation of that preimage would be a second canon. The trail counts distinct identities, never records and never signing keys; an unsigned approval record is not conformant evidence and holds the role rather than passing it; an agent identity does not satisfy a human role absent an explicit human-role mandate; and because this surface reads no clock a time-boxed override can never resolve to a silent auto-pass. Stated limit, normative: the attested subject evidences producer pinning, input binding and content integrity, never that the arithmetic inside the firm's export is correct, and the artifact omits replay_verified entirely rather than setting it false because no replay was attempted. This pack expresses neither of the two audit opinions, systems adequacy throughout the period and compliance at the period end, which belong to the safeguarding auditor and are emitted as open slots naming who decides. It records no breach, it is evidence assembled for the engagement rather than a filing, it is not submittable to the FCA, and it does not discharge the audit.",
  "input_schema_ref": "chaingraph/art-501-build-safeguarding-audit-evidence.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5156c7482d1a3d1e1bb5c0a83beeb2ebb542c9e5cd257c31c2007cd8fc4daab8",
      "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": "J2ptoqGO4bDqgTpyek7rDSEYEnzERsIQz9w8dgtyaOIvrb3s7YrGr2FVQbUUIoGjIFItI8E8zi5Ch102P9B26QNefUp5hNPV7mwZlo4FdXDSlZ+5g3pf6O/xpQZjLozDCnHxNydweVMidg9RvHm/bY7oBpIfVu7rGW+EVRRoJr4O0q+ETHRo+0NUfJozA3Fssh4sutm5C38WUiaTi5bivh1ONt/yg1MZgn0KbekcCSvl5eGlMOO/Ijbv1CwNLhE+IUSO0E9o/W5AXWbdjHsQ9GSbaD891rHYHNnVtH9YuTAXjDMhOz+YOVbu77SNwcSp9f16t5ZHOibgDeB87i/YSw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5156c7482d1a3d1e1bb5c0a83beeb2ebb542c9e5cd257c31c2007cd8fc4daab8",
      "output": {
        "accountability_trail": {
          "agent_parity_findings": [],
          "by_role": {
            "approver": {
              "approval_count": 1,
              "counted_identities": [
                "did:key:zApproverSynth1"
              ],
              "counted_identity_count": 1,
              "held_by": "The firm officer with legally effective sign-off.",
              "reason": "At least one signed approval record names a distinct identity in this role over this subject.",
              "record_count": 1,
              "rejection_count": 0,
              "role": "approver",
              "status": "satisfied",
              "unsigned_approval_count": 0
            },
            "preparer": {
              "approval_count": 1,
              "counted_identities": [
                "did:key:zPreparerSynth1"
              ],
              "counted_identity_count": 1,
              "held_by": "The firm officer who prepared the reconciliation export.",
              "reason": "At least one signed approval record names a distinct identity in this role over this subject.",
              "record_count": 1,
              "rejection_count": 0,
              "role": "preparer",
              "status": "satisfied",
              "unsigned_approval_count": 0
            },
            "reviewer": {
              "approval_count": 1,
              "counted_identities": [
                "did:key:zAuditorSynth1"
              ],
              "counted_identity_count": 1,
              "held_by": "The qualified auditor engaged to review it.",
              "reason": "At least one signed approval record names a distinct identity in this role over this subject.",
              "record_count": 1,
              "rejection_count": 0,
              "role": "reviewer",
              "status": "satisfied",
              "unsigned_approval_count": 0
            }
          },
          "distinctness_basis": "Roles count DISTINCT identity.id (SPEC.md §27.3), never records and never signing keys. One human rotating keys, or signing twice, counts once.",
          "foreign_subject_record_count": 0,
          "override_handling": "A §27.5 override is time-boxed and its expiry can only be judged against an instant. This kernel reads no clock, so an override record NEVER satisfies a required role here and is reported instead. On expiry an override lapses and the underlying policy reverts; it can never become a silent permanent auto-pass through this surface.",
          "override_record_count": 0,
          "record_count_over_subject": 3,
          "required_roles": [
            "preparer",
            "reviewer",
            "approver"
          ],
          "roles_required_count": 3,
          "roles_satisfied_count": 3,
          "status": "satisfied",
          "subject_hash": "sha256:1111111111111111111111111111111111111111111111111111111111111111"
        },
        "audit_period": {
          "bounds_present": true,
          "end_date": "2027-05-06",
          "order_valid": true,
          "start_date": "2026-05-07"
        },
        "auditor_opinions": [
          {
            "assurance_basis": "reasonable_assurance",
            "citation_id": "SUP 3A",
            "decided_by": "The safeguarding auditor appointed for the engagement, on the firm's own books and records. This tool does not decide it.",
            "opinion_question": "Whether the firm maintained systems adequate to enable it to comply with the safeguarding rules throughout the audit period.",
            "opinion_ref": "systems_adequacy_throughout_period",
            "outcome": "not_expressed_by_this_tool",
            "permitted_outcomes": [
              "unmodified",
              "qualified",
              "adverse"
            ]
          },
          {
            "assurance_basis": "reasonable_assurance",
            "citation_id": "SUP 3A",
            "decided_by": "The safeguarding auditor appointed for the engagement, on the firm's own books and records. This tool does not decide it.",
            "opinion_question": "Whether the firm was in compliance with the safeguarding rules at the date as at which the report is made.",
            "opinion_ref": "compliance_at_period_end",
            "outcome": "not_expressed_by_this_tool",
            "permitted_outcomes": [
              "unmodified",
              "qualified",
              "adverse"
            ]
          }
        ],
        "citations": {
          "discrepancy_treatment": {
            "id": "CASS 15.8.50R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-2",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "external_frequency": {
            "id": "CASS 15.8.42R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-2",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "internal_frequency": {
            "id": "CASS 15.8.19R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-2",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "safeguarding_audit": {
            "id": "SUP 3A",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-2",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/SUP/3A/"
          },
          "safeguarding_requirement": {
            "id": "CASS 15.8.29G",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-2",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          },
          "safeguarding_resource": {
            "id": "CASS 15.8.26R",
            "in_force_from": "2026-05-07",
            "mapped_at": "2026-07-30",
            "mapped_by": "AINumbers CASS15-K-2",
            "scheme": "fca-handbook",
            "uri": "https://handbook.fca.org.uk/handbook/cass15/cass15s8"
          }
        },
        "evidence_items": [
          {
            "detail": "A declared audit period with a start date and an end date in order.",
            "item": "audit_period",
            "present": true
          },
          {
            "detail": "The §27.4 subject identifier for the firm's reconciliation export, computed by art-502.",
            "item": "attested_subject",
            "present": true
          },
          {
            "detail": "Reconciliation results across the audit period.",
            "item": "reconciliation_results",
            "present": true
          },
          {
            "detail": "The safeguarding method classification for the firm's funds streams.",
            "item": "method_classification",
            "present": true
          },
          {
            "detail": "A signed preparer, reviewer and approver trail over the attested subject.",
            "item": "accountability_trail",
            "present": true
          },
          {
            "detail": "A management response recorded against every item in the exception schedule.",
            "item": "management_responses",
            "present": true
          }
        ],
        "exception_count": 0,
        "exception_schedule": [],
        "firm_ref": "FIRM-SYNTH-0001",
        "method_summary": {
          "audit_exemption_indicator": {
            "basis": "Relevant funds held exceed the exemption level.",
            "outcome": "audit_required"
          },
          "classification_verdict": "COHERENT_ON_SUPPLIED_FACTS",
          "coherent_count": 2,
          "incoherent_count": 0,
          "open_judgment_count": 0,
          "stream_count": 2,
          "supplied": true
        },
        "minor_unit_exponent": 2,
        "missing_items": [],
        "no_arithmetic_claim": "The attested-artifact subject this pack is bound to evidences producer pinning, input binding and content integrity. It carries no §18 compute proof and no §16/§17 re-execution claim, and it never evidences that the arithmetic inside the firm's reconciliation export is correct. This artifact deliberately omits replay_verified rather than setting it false, because no replay was attempted.",
        "not_a_filing": "This is evidence assembled for a safeguarding audit engagement. It is not a regulatory filing, it is not submittable to the FCA, it does not reproduce the prescribed report as a fillable form, and it does not discharge the audit. An approval record inside it is evidence of a human act, never a claim that any regulator has accepted anything.",
        "note": "Deterministic UK CASS 15 safeguarding audit evidence pack. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It assembles reconciliation results, the safeguarding method classification, a schedule of matters for the auditor keyed by rule reference, and the §27 accountability trail over an attested-artifact subject computed by art-502 and echoed here rather than recomputed. It recomputes no safeguarding arithmetic, records no breach, and expresses neither of the two audit opinions, which belong to the safeguarding auditor. It is not a filing and not legal advice.",
        "pack_complete": true,
        "rationale": [
          "Evidence pack assembled for firm reference FIRM-SYNTH-0001 against FCA CASS 15 safeguarding rules, as made by PS25/12, in force from 2026-05-07, for the audit period 2026-05-07 to 2027-05-06.",
          "The pack is bound to attested-artifact subject sha256:1111111111111111111111111111111111111111111111111111111111111111, computed by art-502-bind-attested-subject on the single canonical §27.4 path. This kernel echoes that identifier and deliberately does not recompute it: a second implementation of the preimage would be a second canon.",
          "3 reconciliation results carried: 3 reconciled, 0 shortfall, 0 excess. Every verdict is taken as supplied; no safeguarding arithmetic is recomputed here.",
          "Method classification carried as supplied: COHERENT_ON_SUPPLIED_FACTS across 2 streams, with 0 incoherent and 0 questions left open.",
          "The supplied results raised no matters for the auditor's attention. That is a statement about the figures supplied, not a finding that the firm complied with CASS 15.",
          "Each of the preparer, reviewer and approver roles is named by at least one signed record over this subject, counted by distinct identity.",
          "Neither audit opinion is expressed here. The systems-adequacy and period-end compliance opinions belong to the safeguarding auditor, and this pack leaves both open with the question and the decider named.",
          "This pack is evidence assembled for the engagement. It is not a filing, it is not submittable to the FCA, and it does not discharge the audit. An approval record inside it evidences that a named human acted and nothing more."
        ],
        "reconciliation_summary": {
          "entries": [
            {
              "as_of_date": "2026-06-30",
              "currency": "GBP",
              "date_stated": true,
              "difference_direction": "level",
              "difference_display": "0.00",
              "entry_ref": "RECON-2026-06-30",
              "reconciliation_type": "internal",
              "safeguarding_requirement_display": "1250000.00",
              "safeguarding_resource_display": "1250000.00",
              "verdict": "reconciled",
              "within_period": true
            },
            {
              "as_of_date": "2026-09-30",
              "currency": "GBP",
              "date_stated": true,
              "difference_direction": "level",
              "difference_display": "0.00",
              "entry_ref": "RECON-2026-09-30",
              "reconciliation_type": "internal",
              "safeguarding_requirement_display": "1310000.00",
              "safeguarding_resource_display": "1310000.00",
              "verdict": "reconciled",
              "within_period": true
            },
            {
              "as_of_date": "2026-12-31",
              "currency": "GBP",
              "date_stated": true,
              "difference_direction": "level",
              "difference_display": "0.00",
              "entry_ref": "RECON-2026-12-31",
              "reconciliation_type": "external",
              "safeguarding_requirement_display": "1402500.00",
              "safeguarding_resource_display": "1402500.00",
              "verdict": "reconciled",
              "within_period": true
            }
          ],
          "entry_count": 3,
          "excess_count": 0,
          "outside_period_count": 0,
          "reconciled_count": 3,
          "shortfall_count": 0,
          "undated_count": 0,
          "unstated_verdict_count": 0
        },
        "report_vocabulary": {
          "assurance_basis": "reasonable_assurance",
          "exception_schedule_key": "rule_reference",
          "management_response_required_per_item": true,
          "opinion_refs": [
            "systems_adequacy_throughout_period",
            "compliance_at_period_end"
          ],
          "permitted_opinion_outcomes": [
            "unmodified",
            "qualified",
            "adverse"
          ],
          "sourced_from": "handbook.fca.org.uk",
          "sourced_on": "2026-07-30",
          "vocabulary_basis": "The safeguarding assurance report is a reasonable assurance engagement stating two opinions, systems adequacy throughout the period and compliance at the period end, with exceptions listed against the individual rule reference and a management response recorded against each item. This pack uses those names so its output pastes into the engagement rather than into a format we invented."
        },
        "ruleset": {
          "field_set_version": "1.0.0",
          "in_force_from": "2026-05-07",
          "ruleset_id": "FCA-CASS15-PS25-12",
          "ruleset_label": "FCA CASS 15 safeguarding rules, as made by PS25/12",
          "sourced_from": "handbook.fca.org.uk",
          "sourced_on": "2026-07-30"
        },
        "subject": {
          "binding_complete": true,
          "binding_source_tool_id": "art-502-bind-attested-subject",
          "inputs_digest_source": "derived",
          "producer_pinned": true,
          "subject_class": "attested_artifact",
          "subject_hash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
          "subject_preimage": {
            "artifact": {
              "content_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
              "content_type": "application/pdf"
            },
            "inputs_digest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc",
            "tool_ref": {
              "entry": "buildSafeguardingRecon",
              "manifest_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
              "tool_id": "acme-safeguarding-recon",
              "tool_version": "4.2.0"
            }
          },
          "subject_recomputed_here": false
        }
      }
    }
  }
},
    {
  "tool_id": "art-502-bind-attested-subject",
  "tool_version": "1.0.0",
  "display_name": "Attested Artifact Subject Binder",
  "mcp_name": "bind_attested_subject",
  "mandate_type": "compliance_control",
  "wave": 77,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-502-bind-attested-subject.html",
  "description": "Computes the SPEC.md section 27.4 attested-artifact subject identifier for the sealed output of a pinned non-OCG producer: a spreadsheet, a reconciliation export, a report builder's PDF, anything with a content-addressed manifest but no kernel, no node and no chain. The identifier is sha256 over the JCS canonicalisation of exactly three members, tool_ref plus inputs_digest plus artifact, on the single canonical hash path; there is no fourth member and no wall clock, run identifier, host or session state enters it, so a verifier that never executed the producer recomputes the same value offline from the echoed preimage. tool_ref.manifest_digest is the chainless analogue of the section 17 kernel_digest and is what makes the producer tamper-evident rather than merely its output; its absence is reported, never assumed. Digest strings are hashed verbatim as declared and are never rewritten, so a malformed digest is named rather than silently normalised. Stated limit, normative: an attested-artifact subject carries no section 18 compute proof and no section 16 or 17 re-execution claim, it never evidences that the producer's arithmetic is correct, and the artifact omits replay_verified entirely rather than setting it false because no replay was attempted. This node identifies a subject so that separately signed section 27 approval records can name it; it signs nothing itself and asserts no regulator acceptance or filing sufficiency.",
  "input_schema_ref": "chaingraph/art-502-bind-attested-subject.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8680e25172057485acdc9fae8651fab076d8ebe76824abf35bf75b8f186568fa",
      "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": "FizhhKVxvsl4w9VEF1xREY7rKjR8SREF1l5f9Iv4EEoIisNH+w9ipYrpA+wN5T57y4PL+KRTML2OqOxCtFg7/xw27xY55vCsU0Wr9VIZ1YKnw+XMX5e18dwMHGFTbtPQG13P+70VRQgnoeQB/wCxVbx/IRXxaduwM/leQm7cC18idgaQYxecpv0zUvkIidvN1pct47kJ/kgTdLWVtWtisyJ6e6kPQtAZdkaxsEKz1deR5Q12ubcZ/4a7GXMwlCSPKepeY/uMv6hSjhXoVD9DRN6Mz+dCN0rAt2hcqhqsWkcrEpFa8e8qlCqY20wUhDXGuAq8/uZALBTE247KqBPL1w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8680e25172057485acdc9fae8651fab076d8ebe76824abf35bf75b8f186568fa",
      "output": {
        "binding_complete": true,
        "findings": [],
        "inputs_digest_source": "derived",
        "no_arithmetic_claim": "An attested-artifact subject carries no §18 compute proof and no §16/§17 re-execution claim. It evidences producer pinning, input binding and content integrity, never that the producer's arithmetic is correct. This artifact deliberately omits replay_verified rather than setting it false, because no replay was attempted.",
        "note": "Computes the SPEC.md §27.4 attested-artifact subject identifier for the sealed output of a pinned non-OCG producer, on the one canonical hash path: sha256(JCS({tool_ref, inputs_digest, artifact})), three members exhaustively. Digest strings are hashed verbatim as declared and are never rewritten, so a malformed digest is reported rather than silently normalised. This tool identifies a subject so that separately signed §27 approval records can name it; it neither signs anything itself nor asserts that any filing requirement is met.",
        "preimage_member_count": 3,
        "producer_pinned": true,
        "rationale": [
          "The subject identifier is sha256 over the JCS canonicalisation of exactly three members: tool_ref, inputs_digest and artifact. No wall clock, no run identifier and no host or session state enters it, so a verifier that never executed the producer recomputes the same value offline from subject_preimage alone.",
          "The producer is pinned: tool_ref.manifest_digest is present and well formed, so a changed producer build yields a different subject identifier.",
          "inputs_digest was derived here from the supplied producer inputs through the one canonical JCS path.",
          "This is a subject-identification result only. It evidences producer pinning, input binding and content integrity. It does NOT evidence that the producer's arithmetic is correct, and it is not a claim that any regulator has accepted the artifact."
        ],
        "subject_hash": "sha256:a6b78068a516a9935b9d10d00d6ddc59dc8b70aa8ea203e9a3cde1eb32beaddb",
        "subject_preimage": {
          "artifact": {
            "content_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
            "content_type": "application/pdf"
          },
          "inputs_digest": "sha256:767474f741796be7a07d007c9bf60bcfcd5260a52f344c1fab11f01b8a8e56bd",
          "tool_ref": {
            "entry": "buildClientMoneyRecon",
            "manifest_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
            "tool_id": "acme-safeguarding-recon",
            "tool_version": "4.2.0"
          }
        }
      }
    }
  }
},
    {
  "tool_id": "art-503-build-dual-control-certification",
  "tool_version": "1.0.0",
  "display_name": "Dual Control Certification Evidence",
  "mcp_name": "build_dual_control_certification",
  "mandate_type": "compliance_control",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-503-build-dual-control-certification.html",
  "description": "Decides whether a required number of distinct named identities have each filed a signed section 27 approval record over one sealed subject in one required role, and reports every record it could not count and why. This is the first production use of the section 27.3 integer threshold construction, and it is regime agnostic by design: the regime label is free text that is never interpreted, so one surface serves a chief executive plus chief financial officer certification at a threshold of two, a chief executive or chief operating officer certification at a threshold of one, and an audit sign-off, without a separate node per regime. The trap it exists to catch is identity. Counting is by distinct identity, never by record and never by signing key, so one human rotating keys counts once and one human signing twice counts once, and every collapse is reported with the record hashes and the distinct verification methods folded together rather than applied silently. A threshold over fewer than the required number of distinct approvers is unsatisfied and never auto-passes; an absent subject, an unstated threshold, an unrecognised role, a read-only examiner role and an empty record set each resolve to a stated reason rather than a fall-through. An unsigned approval record is not conformant evidence and is rejected with its reason, including where the caller declared it signed and the record carries no proof bound to the named identity. Section 27.8 parity is enforced in the verdict: an agent-filed record counts only when a human principal delegated that exact role in a signed mandate whose validity window contains the caller-supplied as-of date, and an agent that prepared the subject can never approve it. No clock is read anywhere, so a time-boxed record can never resolve to a silent permanent pass. It counts approvals and computes nothing about what was certified: no reserve composition, no eligible-asset determination and no ratio. Stated boundary: this evidences that named humans took responsibility. It carries no claim of regulator acceptance, it does not serve as a filing, and it makes no assertion that the certified numbers are correct.",
  "input_schema_ref": "chaingraph/art-503-build-dual-control-certification.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:a57bc96bcfdea16261374e636c9a22668fd91415abc1e441540e6d48306026b0",
      "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": "BnjygZY9Th1F1TcqhhU91MyBYp3ueOU62ge9lwVWRm8X14QemdFdnunfn31lSUcOz3t20qi4dXiLrVX5KizNOQqf4GyKX3PWvjAFOjT1pHZ5Cndg4PWIwVoA4MxlTkZBJpaPKHtlsODmR/QCW9orbcnUT+22Bg62KSbe/57BI2MCQyJQiHs+jY+5KUM/HcCq2V//JKpybGBo27/LVAF0cwkgNF1anlzEX0ZHLg/ILBjLbexuhwPYLtNQPKAxR+XbLPpMVTZqqvgr2Y2Bo42bkYIWs1LnLI5adpaCHc+kP7kjRSd73W9DPcgJw6EZpC9ACuKdngAYiS4gsVnM+3Jqdg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:a57bc96bcfdea16261374e636c9a22668fd91415abc1e441540e6d48306026b0",
      "output": {
        "agent_parity_findings": [],
        "as_of_date": "2027-02-15",
        "boundary": "This evidences that named humans took responsibility for the subject named here. It carries no claim that a regulator has accepted anything, it does not serve as a filing, and it makes no assertion that the certified numbers are correct. A satisfied threshold means the stated number of distinct identities each filed a signed approval record over this subject in this role, and it means nothing beyond that.",
        "counted_identities": [
          "did:key:zChiefExecSynth",
          "did:key:zChiefFinanceSynth"
        ],
        "counted_records": [
          {
            "actor_type": "human",
            "identity_id": "did:key:zChiefExecSynth",
            "record_hash": "sha256:aa01",
            "record_ref": "sha256:aa01",
            "verification_method": "did:key:zChiefExecSynth#key-1"
          },
          {
            "actor_type": "human",
            "identity_id": "did:key:zChiefFinanceSynth",
            "record_hash": "sha256:aa02",
            "record_ref": "sha256:aa02",
            "verification_method": "did:key:zChiefFinanceSynth#key-1"
          }
        ],
        "distinct_identities_counted": 2,
        "distinctness_basis": "Counting is by distinct identity_id (SPEC.md section 27.3), never by record and never by signing key. One human rotating keys counts once, and one human signing twice counts once. Every collapse is reported rather than applied silently.",
        "duplicate_identities_collapsed": [],
        "foreign_subject_records_rejected": [],
        "no_arithmetic_claim": "This surface counts approvals. It computes nothing about what was certified: no reserve composition, no eligible-asset determination, no outstanding-balance reconciliation and no ratio. Whether the certified figures are right is decided by the people who signed and by whoever examines their work, never here.",
        "note": "Deterministic dual control certification evidence. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It decides one thing, whether N distinct named identities each filed a signed approval record over a sealed subject in a required role, and it reports every record it could not count and why. It is regime agnostic: the regime label is free text and no statute is interpreted. It computes nothing about what was certified. It is not a filing and not legal advice.",
        "off_role_records_ignored": [],
        "override_handling": "A section 27.5 override changes which gate policy applies. It does not produce a distinct human approver, so it never satisfies a threshold here. Override records are carried and counted separately and are never folded into the distinct-identity count, which is what stops a time-boxed record resolving to a silent permanent pass.",
        "override_records": [],
        "prepared_by": {
          "actor_type": "unstated",
          "identity_id": null
        },
        "rationale": [
          "Dual control evidence assembled for certification reference CERT-SYNTH-0007 under the caller-supplied regime label Payment stablecoin monthly reserve report certification. The label is free text and nothing in this computation branches on it.",
          "The certification is bound to subject sha256:3333333333333333333333333333333333333333333333333333333333333333, carried as a attested_artifact and not recomputed here.",
          "2 distinct attestor identities each filed a signed approval record over this subject, which meets the required threshold of 2.",
          "2 records supplied: 2 counted, 0 rejected as unsigned, 0 rejected for naming another subject, 0 not relevant to this role, 0 rejection, 0 override.",
          "No identity filed more than one counted approval, so no collapse was required. Counting remains by distinct identity rather than by record.",
          "This evidences that named humans took responsibility for the subject named here. It carries no claim that a regulator has accepted anything, it does not serve as a filing, and it makes no assertion that the certified numbers are correct. A satisfied threshold means the stated number of distinct identities each filed a signed approval record over this subject in this role, and it means nothing beyond that.",
          "This surface counts approvals. It computes nothing about what was certified: no reserve composition, no eligible-asset determination, no outstanding-balance reconciliation and no ratio. Whether the certified figures are right is decided by the people who signed and by whoever examines their work, never here."
        ],
        "records_summary": {
          "agent_finding_count": 0,
          "counted_record_count": 2,
          "distinct_identities_counted": 2,
          "duplicate_identity_count": 0,
          "foreign_subject_rejected_count": 0,
          "off_role_ignored_count": 0,
          "override_record_count": 0,
          "rejection_record_count": 0,
          "supplied_count": 2,
          "unsigned_rejected_count": 0
        },
        "regime": {
          "basis": "regime_label is free text supplied by the caller and is never interpreted. Nothing in this computation branches on it, no statute is matched against it, and no citation is emitted for it. It records which certification the evidence was assembled for so a reader is not left guessing.",
          "certification_ref": "CERT-SYNTH-0007",
          "regime_label": "Payment stablecoin monthly reserve report certification",
          "regime_label_is_free_text": true
        },
        "rejection_records": [],
        "role_policy": {
          "permitted_roles": [
            "preparer",
            "reviewer",
            "approver",
            "attestor",
            "submitter",
            "model_owner",
            "compliance_officer",
            "examiner"
          ],
          "read_only_roles": [
            "examiner"
          ],
          "reason": "The required role is one of the closed section 27.1 roles and can carry approval authority.",
          "required_role": "attestor",
          "role_eligible": true,
          "role_known": true,
          "role_read_only": false
        },
        "subject": {
          "subject_binding_source": "art-502-bind-attested-subject",
          "subject_class": "attested_artifact",
          "subject_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
          "subject_limit": "This subject is a section 27.4 attested artifact. It evidences producer pinning, input binding and content integrity, and it carries no section 18 compute proof and no section 16 or 17 re-execution claim. It never evidences that the arithmetic inside the producer output is correct.",
          "subject_present": true,
          "subject_recomputed_here": false
        },
        "threshold_policy": {
          "dual_control": true,
          "reason": "A threshold of 2 distinct attestor identities is required over this subject.",
          "threshold_construction": "in-toto integer threshold, applied per SPEC.md section 27.3: satisfied when at least N distinct identities have each filed a signed approval record naming this role and this subject.",
          "threshold_n": 2,
          "threshold_valid": true
        },
        "threshold_satisfied": true,
        "threshold_shortfall": 0,
        "unsigned_records_rejected": [],
        "verdict_reason": "2 distinct attestor identities each filed a signed approval record over this subject, which meets the required threshold of 2."
      }
    }
  }
},
    {
  "tool_id": "art-504-classify-carf-reportable",
  "tool_version": "1.0.0",
  "display_name": "CARF / DAC8 Reportable User Classifier",
  "mcp_name": "classify_carf_reportable",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-504-classify-carf-reportable.html",
  "description": "Classifies crypto-asset user records and their transactions for Crypto-Asset Reporting Framework and DAC8 purposes, against a policy set the caller declares rather than one this node asserts: which residence jurisdictions the reporting jurisdiction treats as reportable, which transaction classes are in scope, the due-diligence rule set keyed by the caller's own rule codes, and the pinned schema version. Nothing about any jurisdiction's transposition is in kernel source, so the node states no view on how a jurisdiction has implemented CARF or DAC8. A deactivation list is a first-class input: a suppressed rule code produces no unsatisfied due-diligence step at all for any record, and every suppression applied is echoed with a count so the exclusion is visible rather than silent. Self-certification is the gating step. Anything other than a valid self-certification leaves reportability undetermined rather than guessed, and an undetermined verdict is never a bare flag: each carries an entry naming what is undetermined, which input would resolve it, and the role that decides. Entity records fold controlling-person residences into the determination, so an entity outside the reportable set whose controlling person is inside it is caught. Transactions are classified only once the user is classifiable. Output is counts by verdict and by transaction class, never a ratio and never a percentage. Zero personal data by construction: users are identified by an opaque caller-supplied reference, and the node takes no name, no tax identification number, no address and no date of birth. No clock is read, so the reporting period is a declared input and nothing silently expires. Stated boundary: this classifies only. It computes no tax liability, it submits and transmits nothing, it makes no claim that its output is submittable, and it is not legal or tax advice.",
  "input_schema_ref": "chaingraph/art-504-classify-carf-reportable.html#manifest",
  "consumes": [],
  "feeds": [
    "art-505-dispose-carf-status-message"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:7092917c1c069bc0681a899f7807db3b1927a96accc5ac068fee5faa0d0f19dc",
      "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": "Dl803aglRI/4nrV8LAjDZVWSiEdjBi0P+tMCd0PZ7/kcbvNiK3CBYgySpqMLOMAyvzN1iUCZJuJsNEgSrwnUMy2nh78yF2+OVO9oQEtp4C2oT+cgLY3f4n4boIVlZW/uI1ITz1LzwzWqF9H2AypGO6qWmMmb2qxkmDHtrKrQ1Z0EOMwPsDaJhF/zxE3rVGzeGVBg8GubxDyBZzSt4JhSAiEvujbYZvYDNXeLhTXpmTcInnZcwrnNKJeALIVH76g8JLEsw0rtXyL0jG04KT7ShOdUXvjjnkn60yabXP8gKLMTETEl6TnmM6LJymF8wh25TWcxNIeSpPdcn+5mITNqFw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:7092917c1c069bc0681a899f7807db3b1927a96accc5ac068fee5faa0d0f19dc",
      "output": {
        "judgment_required": [],
        "judgment_required_count": 0,
        "note": "Deterministic CARF and DAC8 reportability classifier over a caller-declared record set. The reportable residence set, the reportable transaction classes, the due-diligence rule set and the schema version are pinned policy inputs, never kernel source, so this states no view on how any jurisdiction has transposed CARF or DAC8. A suppressed rule_code produces no unsatisfied step at all for any record. Every undetermined verdict carries a judgment_required entry naming what is undetermined, which input resolves it and who decides. This classifies only: it computes no tax liability, it does not submit or transmit anything, it makes no claim that its output is submittable, and it is not legal or tax advice.",
        "record_count": 1,
        "record_verdicts": [
          {
            "entity_type": "individual",
            "matched_reportable_residences": [
              "DE"
            ],
            "reason": "Claimed residence in DE is within the declared reportable set.",
            "record_ref": "USER-OPAQUE-0001",
            "transaction_verdicts": [
              {
                "reason": "The transaction class is within the declared reportable set for a reportable user.",
                "reportable": "reportable",
                "transaction_class": "crypto_to_fiat_exchange",
                "transaction_ref": "TXN-0001"
              },
              {
                "reason": "The transaction class is outside the declared reportable set.",
                "reportable": "not_reportable",
                "transaction_class": "staking_reward",
                "transaction_ref": "TXN-0002"
              }
            ],
            "unsatisfied_due_diligence_steps": [],
            "user_reportability": "reportable"
          }
        ],
        "reportable_residence_jurisdictions": [
          "DE",
          "FR",
          "IE"
        ],
        "reportable_transaction_classes": [
          "crypto_to_fiat_exchange",
          "crypto_to_crypto_exchange",
          "retail_payment_above_threshold",
          "transfer"
        ],
        "reporting_jurisdiction": "IE",
        "reporting_period": "2026",
        "schema_version": "OECD-CARF-XML-SCHEMA-JULY-2025",
        "suppressed_rule_codes": [],
        "suppressed_step_count": 0,
        "transaction_counts_by_class": {
          "crypto_to_fiat_exchange": {
            "not_reportable": 0,
            "reportable": 1,
            "undetermined": 0
          },
          "staking_reward": {
            "not_reportable": 1,
            "reportable": 0,
            "undetermined": 0
          }
        },
        "unsatisfied_step_count": 0,
        "user_counts": {
          "not_reportable": 0,
          "reportable": 1,
          "undetermined": 0
        }
      }
    }
  }
},
    {
  "tool_id": "art-505-dispose-carf-status-message",
  "tool_version": "1.0.0",
  "display_name": "CARF Status Message Disposition",
  "mcp_name": "dispose_carf_status_message",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-505-dispose-carf-status-message.html",
  "description": "Turns a returned Crypto-Asset Reporting Framework or DAC8 status message into a dispositioned break list: every file-level and record-level error the authority reported, tied to the record and the field that caused it, with the disposition that answers it. The differentiator is that a disposition signed in an earlier reporting cycle is carried forward against the same break reference, keeping the named signer and the originating cycle attached, so the answer to why an error is still open survives from one cycle to the next. A disposition is countable only when it is signed by a named signer: an unsigned one is rejected with its reason and the break stays open, because an unsigned disposition is a note rather than accountable evidence. The return path is not assumed. The OECD status message schema is an instrument for one competent authority to report errors back to another, and the OECD states it may also be used for domestic reporting to the extent the relevant jurisdiction's own law permits, which is a permission and not a guarantee. So the operator must declare that its jurisdiction returns a status message and name the channel; absent that declaration the node returns a stated verdict and produces no break list rather than implying a file came back. A deactivation list is a first-class input: a suppressed error code produces no break at all and the suppression is counted in the artifact. A record-level error whose document reference matches nothing in the submitted set is itself reported, because an operator that cannot say which record the authority is complaining about has a finding of its own. Error codes arrive as data and the schema version is a pinned policy input, never kernel source. Zero personal data by construction: records are identified by opaque references only. No clock is read, so cycle references are declared strings and nothing silently expires. Stated boundary: this dispositions a file the operator already holds. It does not fetch, submit or transmit anything, it makes no claim that any output is submittable, and it is not legal or tax advice.",
  "input_schema_ref": "chaingraph/art-505-dispose-carf-status-message.html#manifest",
  "consumes": [
    "art-504-classify-carf-reportable"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:035ab5ed297070b1f9a69babee5ab27760f0ac1404e3cc2f4383a6816ab39729",
      "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": "AZyp2r1lm/8HcJo/1+fyStG/jTg/q8HRR1Z3mdV3jn4ig14MfP1jOd34IsSexn+nB5IBg/xquZamI5bsnpfodguKjGXsPxMtvhCfdayjiVQMpgLjAtN/KiyoR63YtCFaHyAr2bC7jneNmwbkRvwFE31gK5Er8/SMANpLJNkM7dcucyUtPeOzSwMwPIwlOD1PBfExkf7sIgZejpbDRbVvxhEtGExkv+nzI44rJZ1yYzZnAnD2R6UnSgmZdKKXP+RJEqF9c5WqoJqZRe+MWdr5fSTWeYsIfDP4lAa9LLahUvgaiZxUJ/g/2BmZrOwcpjIqDiXUVbVpEvWNmcrJw+WwTg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:035ab5ed297070b1f9a69babee5ab27760f0ac1404e3cc2f4383a6816ab39729",
      "output": {
        "break_count": 0,
        "breaks": [],
        "carried_forward_count": 0,
        "cycle_ref": "CYCLE-2027-01",
        "dispositioned_break_count": 0,
        "message_ref": "STATUS-MSG-2027-IE-0001",
        "note": "This tool consumes a status message the operator already holds. It does not fetch, submit or transmit anything, it makes no claim that any output is submittable, and it is not legal or tax advice.",
        "open_break_count": 0,
        "reporting_jurisdiction": "IE",
        "resolving_input": "status_message_return_declared set true together with status_message_channel naming how the status message reaches this operator.",
        "schema_version": "OECD-CARF-STATUS-MESSAGE-XML-SCHEMA-JUNE-2025",
        "status_message_channel": "",
        "status_message_return_declared": false,
        "submission_ref": "CARF-SUB-2027-IE-0001",
        "suppressed_break_count": 0,
        "suppressed_error_codes": [],
        "unresolved_record_reference_count": 0,
        "unsigned_dispositions_rejected": [],
        "verdict": "status_message_return_not_declared",
        "verdict_reason": "No status-message return path was declared for this reporting jurisdiction. The OECD CARF Status Message XML Schema is a Competent-Authority-to-Competent-Authority instrument that a jurisdiction may also make available domestically to the extent its own law permits. Whether this operator receives one is therefore a fact about this jurisdiction that the operator must declare. No break list is produced from an undeclared return path."
      }
    }
  }
},
    {
  "tool_id": "art-506-classify-t1-posttrade-timing",
  "tool_version": "1.0.0",
  "display_name": "T+1 Post-Trade Timing Classifier",
  "mcp_name": "classify_t1_posttrade_timing",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-506-classify-t1-posttrade-timing.html",
  "description": "Classifies the post-trade timings a caller supplies to answer the question a settlement readiness programme is actually trying to answer: which step breaches its cut-off under the shorter settlement cycle that did not breach under the longer one. Each step in the caller's declared chain order is measured against a target-cycle cut-off and a baseline-cycle cut-off, and reports its status as on time, at risk, breached or undetermined, the residual margin in seconds on both sides, and whether the shorter cycle is what breaks it. The first failing step is named, and it is the first in the declared chain order rather than the earliest by clock, because a post-trade chain is a sequence of dependencies and not a sorted list of instants. The at-risk band is a caller policy input: with no band declared there is no at-risk zone, and that absence is reported rather than filled with an invented threshold. No cut-off table is shipped and there is no named-venue profile set. Market and venue cut-offs are caller inputs, never data kept current here, because a table of cut-offs is a standing maintenance duty and a duty that silently goes false is worse than no table at all. This classifies supplied timings. It observes no venue, no central securities depository and no matching platform, it opens no connection, and it is not monitoring. No clock is read: timestamps are parsed from caller strings with a strict ISO 8601 grammar and nothing is compared against the present moment, so nothing expires on its own. Every emitted number passes a finite gate, so a missing, blank, malformed or non-existent timestamp yields a null margin with a named reason and marks the step undetermined rather than reading as on time, and an unclassified step is never counted as an on-time step. Zero personal data by construction: trades and steps are identified by opaque caller references only. Stated boundary: this computes no settlement penalty, which is a separate concern, it states nothing about funding or foreign exchange implications, it makes no claim about markets outside the cycle change the caller declares, and it is not legal, tax or regulatory advice.",
  "input_schema_ref": "chaingraph/art-506-classify-t1-posttrade-timing.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:bdca1dc3844ae202963a66ac4fb582aeafa1861b4dc2945696bf1d060d5bf780",
      "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": "EilsmiGNYhHKR3ZMcnsoPAVZBPPB3yFf3ZbALjsXM7kAPaOQzh95PCXL8wuuOgx3MTXk/hgpRzUxY3dnFKH6wC6b7cQXqqgKOqVHSdRU4Q517ainHhqca6Vmz8jgvz7IBYFUn7PmrkIp+PXvoeEGxkx0sCdmFDmok077YyqtNzYMtqjafICfgGln18zMlPeMZ49A/NuOwse5QlTIUtbqXh7fyAj8AcWg19VpkAPUD6Uh9s7a2A6a93da95wYX4z3FharVeFNx448hNdRX8oMNk98obmgMjejJozbGi0qmDklW3WMK6aqvPIbREAyQUJXQ5euH4CxsbY851neOR9Zmw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:bdca1dc3844ae202963a66ac4fb582aeafa1861b4dc2945696bf1d060d5bf780",
      "output": {
        "at_risk_count": 0,
        "at_risk_margin_seconds": 0,
        "baseline_cycle": "T+2",
        "baseline_not_compared_count": 0,
        "breached_count": 2,
        "cycle_compared": "T+2 to T+1",
        "first_failing_step": "allocation_sent",
        "first_newly_breaching_step": "allocation_sent",
        "newly_breaching_count": 2,
        "note": "Deterministic classification of post-trade step timings the caller supplies, comparing each step against a target-cycle cut-off and a baseline-cycle cut-off to identify which steps the shorter cycle is what breaks. Every cut-off is a caller input: no market or venue cut-off table is shipped, because a table of cut-offs is a maintenance duty that would silently go false. No clock is read and nothing is compared against the present moment. This tool observes no venue, no central securities depository and no matching platform, and it is not monitoring. It computes no settlement penalty, which is a separate concern, and it makes no claim about markets outside the cycle change the caller declares. It is not legal, tax or regulatory advice.",
        "on_time_count": 3,
        "rationale": [
          "Step allocation_sent breaches its T+1 cut-off by 4500 second(s) and met its T+2 cut-off with 31500 second(s) to spare. The shorter cycle is what breaks it.",
          "Step confirmation_affirmation breaches its T+1 cut-off by 6000 second(s) and met its T+2 cut-off with 44400 second(s) to spare. The shorter cycle is what breaks it.",
          "No at-risk band was declared, so at_risk_margin_seconds is zero and no step can be classified at risk. A step that clears its cut-off by one second reads as on time. Declare at_risk_margin_seconds to open a band."
        ],
        "step_count": 5,
        "steps": [
          {
            "achieved_at": "2027-10-12T15:40:00Z",
            "achieved_epoch_seconds": 1823355600,
            "achieved_offset_source": "explicit_utc",
            "baseline_not_compared": false,
            "breaches_under_target_only": false,
            "cutoff_baseline": "2027-10-12T16:30:00Z",
            "cutoff_baseline_epoch_seconds": 1823358600,
            "cutoff_target": "2027-10-12T16:30:00Z",
            "cutoff_target_epoch_seconds": 1823358600,
            "margin_seconds": 3000,
            "margin_seconds_baseline": 3000,
            "status": "on_time",
            "status_baseline": "on_time",
            "step": "trade_execution",
            "synthesised_from": "trade_timestamp and venue_cutoff",
            "undetermined_reason": null
          },
          {
            "achieved_at": "2027-10-12T21:15:00Z",
            "achieved_epoch_seconds": 1823375700,
            "achieved_offset_source": "explicit_utc",
            "baseline_not_compared": false,
            "breaches_under_target_only": true,
            "cutoff_baseline": "2027-10-13T06:00:00Z",
            "cutoff_baseline_epoch_seconds": 1823407200,
            "cutoff_target": "2027-10-12T20:00:00Z",
            "cutoff_target_epoch_seconds": 1823371200,
            "margin_seconds": -4500,
            "margin_seconds_baseline": 31500,
            "status": "breached",
            "status_baseline": "on_time",
            "step": "allocation_sent",
            "synthesised_from": null,
            "undetermined_reason": null
          },
          {
            "achieved_at": "2027-10-12T22:40:00Z",
            "achieved_epoch_seconds": 1823380800,
            "achieved_offset_source": "explicit_utc",
            "baseline_not_compared": false,
            "breaches_under_target_only": true,
            "cutoff_baseline": "2027-10-13T11:00:00Z",
            "cutoff_baseline_epoch_seconds": 1823425200,
            "cutoff_target": "2027-10-12T21:00:00Z",
            "cutoff_target_epoch_seconds": 1823374800,
            "margin_seconds": -6000,
            "margin_seconds_baseline": 44400,
            "status": "breached",
            "status_baseline": "on_time",
            "step": "confirmation_affirmation",
            "synthesised_from": null,
            "undetermined_reason": null
          },
          {
            "achieved_at": "2027-10-13T05:30:00Z",
            "achieved_epoch_seconds": 1823405400,
            "achieved_offset_source": "explicit_utc",
            "baseline_not_compared": false,
            "breaches_under_target_only": false,
            "cutoff_baseline": "2027-10-13T18:00:00Z",
            "cutoff_baseline_epoch_seconds": 1823450400,
            "cutoff_target": "2027-10-13T06:00:00Z",
            "cutoff_target_epoch_seconds": 1823407200,
            "margin_seconds": 1800,
            "margin_seconds_baseline": 45000,
            "status": "on_time",
            "status_baseline": "on_time",
            "step": "settlement_instruction_release",
            "synthesised_from": null,
            "undetermined_reason": null
          },
          {
            "achieved_at": "2027-10-13T07:00:00Z",
            "achieved_epoch_seconds": 1823410800,
            "achieved_offset_source": "explicit_utc",
            "baseline_not_compared": false,
            "breaches_under_target_only": false,
            "cutoff_baseline": "2027-10-14T14:00:00Z",
            "cutoff_baseline_epoch_seconds": 1823522400,
            "cutoff_target": "2027-10-13T14:00:00Z",
            "cutoff_target_epoch_seconds": 1823436000,
            "margin_seconds": 25200,
            "margin_seconds_baseline": 111600,
            "status": "on_time",
            "status_baseline": "on_time",
            "step": "csd_matching",
            "synthesised_from": null,
            "undetermined_reason": null
          }
        ],
        "target_cycle": "T+1",
        "time_zone_offset_minutes": 0,
        "trade_ref": "TRD-OPAQUE-2027-0001",
        "trade_timestamp": "2027-10-12T15:40:00Z",
        "undetermined_count": 0,
        "venue_cutoff": "2027-10-12T16:30:00Z",
        "verdict": "breaches_introduced_by_target_cycle",
        "verdict_reason": "2 step(s) breach under T+1 that met their T+2 cut-off. The first is allocation_sent."
      }
    }
  }
},
    {
  "tool_id": "art-507-determine-deposit-insurance-coverage",
  "tool_version": "1.0.0",
  "display_name": "Deposit Insurance Coverage Determination",
  "mcp_name": "determine_deposit_insurance_coverage",
  "mandate_type": "compliance_control",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-507-determine-deposit-insurance-coverage.html",
  "description": "Computes the insured amount and the uninsured remainder for deposit accounts grouped by ownership right and capacity, and reports every account whose coverage cannot be calculated from the fields supplied. Balances held in the same ownership right and capacity by the same holder combine before an allowance is applied, so splitting a balance across accounts never creates coverage, and a group receives the largest allowance count stated for it rather than the sum across its accounts, so repeating a beneficiary set across accounts never multiplies coverage. The standard maximum deposit insurance amount is supplied by the caller and no statutory amount is held here: supply none and nothing is estimated, because every record is returned as undeterminable naming that field and the totals report zero insured rather than a guess. No table of part 330 ownership categories or allowance rules is held either. Ownership right and capacity codes are opaque strings used for grouping and reporting only, nothing branches on the text of a code, and how many separate insurance allowances a group is entitled to arrives as a per-record input, because that determination belongs to the institution and its counsel. Money is fixed point in integer minor units throughout, so no floating point operation is performed on a balance and a value that is not an integer is reported rather than coerced or rounded. Every account that cannot be calculated names the field that is missing, so a reader is told which field to go and get rather than being handed a bare undetermined count. Accounts held under alternative recordkeeping are undeterminable by construction rather than by failure, because the beneficial ownership detail sits with a third party. The annual certification that the information technology system was tested during the preceding twelve months is a caller-supplied assertion with a caller-supplied date, echoed unchanged and never computed from a clock, and nothing here verifies that any testing occurred; the signature over it is evaluated as a section 27 approval record at a threshold of one by art-503-build-dual-control-certification. Whether an institution has the two million or more deposit accounts that bring it into scope is a caller declaration and is never asserted here. Stated boundary: this is arithmetic over supplied records. It carries no claim that the Federal Deposit Insurance Corporation would accept the result, it does not serve as a filing, it does not produce the prescribed submission format, and it offers no deposit insurance advice.",
  "input_schema_ref": "chaingraph/art-507-determine-deposit-insurance-coverage.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:af6ead608e9e4066d16c80dc91534582c71e82ff5d9fc556cb6c9444a00b15d1",
      "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": "HEjf6P9Hdzzn6FNW2yN7YBWNHG8IYE5qNjC4OhlYLOoG9LRO+qj+IpQLaVQ23qONagvy7f6KcQDM2i158DXSOCvTmfOZfDWlgzSCg8eSkBRAXHno0wskrziq83g21NXcLJtatAESYYrMd9q5oIHekbncMdVIUymIsVKMGSC8AvAT8s6cxiBeZuMQFNBxq03h2bHygaTpUjD3DOhXU3THpwpNQzgBHageLZE9UkNSD1KUCeZEO/grJzp3HQFc6kuHK8PkR3fkNjcanH9ba5tT1C8/TNrZvr/qPXbUxYIFEswRHbII95P30NTw6fjCzBkedFsZyMeB3BTi+nj86HxKXw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:af6ead608e9e4066d16c80dc91534582c71e82ff5d9fc556cb6c9444a00b15d1",
      "output": {
        "aggregation_groups": [
          {
            "account_count": 1,
            "account_refs": [
              "ACCT-A1"
            ],
            "aggregated_balance_minor_units": 12500000,
            "allowance_minor_units": 25000000,
            "coverage_units": 1,
            "fully_insured": true,
            "insurance_aggregation_key": "HOLDER-1",
            "insured_minor_units": 12500000,
            "ownership_right_and_capacity": "SGL",
            "pass_through_applied": false,
            "uninsured_minor_units": 0
          },
          {
            "account_count": 2,
            "account_refs": [
              "ACCT-A2",
              "ACCT-A3"
            ],
            "aggregated_balance_minor_units": 35000000,
            "allowance_minor_units": 25000000,
            "coverage_units": 1,
            "fully_insured": false,
            "insurance_aggregation_key": "HOLDER-2",
            "insured_minor_units": 25000000,
            "ownership_right_and_capacity": "SGL",
            "pass_through_applied": false,
            "uninsured_minor_units": 10000000
          },
          {
            "account_count": 1,
            "account_refs": [
              "ACCT-B1"
            ],
            "aggregated_balance_minor_units": 9000000,
            "allowance_minor_units": 25000000,
            "coverage_units": 1,
            "fully_insured": true,
            "insurance_aggregation_key": "HOLDER-3",
            "insured_minor_units": 9000000,
            "ownership_right_and_capacity": "JNT",
            "pass_through_applied": false,
            "uninsured_minor_units": 0
          }
        ],
        "alternative_recordkeeping_handling": "Where an account is maintained under the alternative recordkeeping provisions of section 370.4, the beneficial ownership detail sits with a third party and section 370.3 contemplates the Corporation supplying it after failure. The institution system cannot calculate coverage for those accounts from its own records, so they are reported as undeterminable rather than estimated. That is the correct answer under the rule, not a failure of this computation.",
        "as_of_date": "2026-06-30",
        "boundary": "This computes insured and uninsured amounts from the account records supplied to it. It carries no claim that the Federal Deposit Insurance Corporation would accept the result, it does not serve as a filing, it does not produce the submission format section 370.10 prescribes, and it offers no deposit insurance advice. Whether coverage is correct for any particular depositor is decided under 12 CFR part 330 by the institution and its counsel, never here.",
        "by_ownership_right_and_capacity": [
          {
            "accounts_with_uninsured_deposits_count": 2,
            "aggregated_balance_minor_units": 47500000,
            "deposit_account_count": 3,
            "distinct_account_holder_count": 2,
            "fully_insured_account_count": 1,
            "insured_minor_units": 37500000,
            "ownership_right_and_capacity": "SGL",
            "undeterminable_account_count": 0,
            "uninsured_minor_units": 10000000
          },
          {
            "accounts_with_uninsured_deposits_count": 0,
            "aggregated_balance_minor_units": 9000000,
            "deposit_account_count": 1,
            "distinct_account_holder_count": 1,
            "fully_insured_account_count": 1,
            "insured_minor_units": 9000000,
            "ownership_right_and_capacity": "JNT",
            "undeterminable_account_count": 0,
            "uninsured_minor_units": 0
          }
        ],
        "certification_assertion": {
          "assertion_date": "2026-03-31",
          "assertion_present": true,
          "basis": "The section 370.10 certification confirms that the institution tested its information technology system during the preceding twelve months and is signed by the chief executive officer or the chief operating officer. That confirmation and its date are caller-supplied assertions. They are echoed unchanged, they are never computed from a clock, and nothing here verifies that any testing occurred. The signature itself is evaluated as a section 27 approval record at threshold N=1 by art-503-build-dual-control-certification; no certification surface is built here.",
          "computed_here": false,
          "signature_evaluated_by": "art-503-build-dual-control-certification",
          "signature_threshold_n": 1,
          "signer_role": "chief executive officer",
          "testing_performed_in_preceding_twelve_months": true,
          "verified_here": false
        },
        "coverage_summary": {
          "accounts_with_uninsured_deposits_count": 2,
          "aggregated_balance_minor_units": 56500000,
          "currency": "USD",
          "deposit_accounts_determined": 4,
          "deposit_accounts_supplied": 4,
          "distinct_account_holder_count": 3,
          "fully_insured_account_count": 2,
          "insured_minor_units": 46500000,
          "minor_unit_scale": 100,
          "ownership_right_and_capacity_code_count": 2,
          "undeterminable_account_count": 0,
          "uninsured_minor_units": 10000000
        },
        "covered_institution": {
          "asserted_here": false,
          "basis": "Whether this institution has the two million or more deposit accounts that make it a covered institution under section 370.2 is a caller declaration. No account census is performed here and no covered status is asserted by this surface.",
          "declared_by_caller": true,
          "declared_deposit_account_count": 2400000
        },
        "institution_ref": "IDI-SYNTH-0001",
        "money_representation": "All amounts are integer minor units and all arithmetic is fixed point. No floating point operation is performed on money, and a balance that is not an integer is reported as undeterminable rather than coerced or rounded.",
        "note": "Deterministic deposit insurance coverage determination by ownership right and capacity. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It computes insured and uninsured amounts from supplied records against a caller-supplied standard maximum deposit insurance amount, and it names the missing field for every account it cannot calculate. It holds no part 330 rule table, asserts no covered status, verifies no certification, reads no clock, and is not a filing and not deposit insurance advice.",
        "ownership_code_handling": "Ownership right and capacity codes are opaque strings used for grouping and reporting only. Nothing in this computation branches on the text of a code, and no table of part 330 ownership categories or allowance rules is held here. How many separate insurance allowances a group is entitled to arrives as coverage_units, derived from the caller record, because that determination belongs to the institution and its counsel.",
        "rationale": [
          "Deposit insurance coverage computed for institution reference IDI-SYNTH-0001 as of 2026-06-30, over 4 supplied deposit account records.",
          "The standard maximum deposit insurance amount applied is 25000000 minor units, supplied by the caller. The standard maximum deposit insurance amount is supplied by the caller and no statutory amount is held in this kernel. A maintained figure would go stale the moment it moved and would assert a statutory fact this surface is not entitled to assert. With no amount supplied nothing is estimated: every record is reported as undeterminable naming smdia.",
          "4 accounts across 3 aggregation groups and 2 ownership right and capacity codes were determined: 46500000 minor units insured and 10000000 uninsured against an aggregated balance of 56500000.",
          "2 accounts are fully insured and 2 hold uninsured deposits. Balances combine within an ownership right and capacity for the same holder before an allowance is applied, and a group receives the largest allowance count stated for it rather than the sum across its accounts, so repeating a beneficiary set across accounts never multiplies coverage.",
          "Every supplied account carried the fields needed to calculate its coverage, so the undeterminable population is empty.",
          "Ownership right and capacity codes are opaque strings used for grouping and reporting only. Nothing in this computation branches on the text of a code, and no table of part 330 ownership categories or allowance rules is held here. How many separate insurance allowances a group is entitled to arrives as coverage_units, derived from the caller record, because that determination belongs to the institution and its counsel.",
          "The section 370.10 certification confirms that the institution tested its information technology system during the preceding twelve months and is signed by the chief executive officer or the chief operating officer. That confirmation and its date are caller-supplied assertions. They are echoed unchanged, they are never computed from a clock, and nothing here verifies that any testing occurred. The signature itself is evaluated as a section 27 approval record at threshold N=1 by art-503-build-dual-control-certification; no certification surface is built here.",
          "Whether this institution has the two million or more deposit accounts that make it a covered institution under section 370.2 is a caller declaration. No account census is performed here and no covered status is asserted by this surface.",
          "This computes insured and uninsured amounts from the account records supplied to it. It carries no claim that the Federal Deposit Insurance Corporation would accept the result, it does not serve as a filing, it does not produce the submission format section 370.10 prescribes, and it offers no deposit insurance advice. Whether coverage is correct for any particular depositor is decided under 12 CFR part 330 by the institution and its counsel, never here."
        ],
        "smdia_applied": 25000000,
        "smdia_basis": "The standard maximum deposit insurance amount is supplied by the caller and no statutory amount is held in this kernel. A maintained figure would go stale the moment it moved and would assert a statutory fact this surface is not entitled to assert. With no amount supplied nothing is estimated: every record is reported as undeterminable naming smdia.",
        "smdia_is_caller_supplied": true,
        "undeterminable_by_missing_field": [],
        "undeterminable_records": []
      }
    }
  }
},
    {
  "tool_id": "art-508-recompute-bordereau",
  "tool_version": "1.0.0",
  "display_name": "Delegated Authority Bordereau Recomputation",
  "mcp_name": "recompute_bordereau",
  "mandate_type": "analytics_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-508-recompute-bordereau.html",
  "description": "Recomputes a delegated authority bordereau the way the carrier reviewer does, from the same file the coverholder sent. It foots gross premium, brokerage, coverholder commission, mapped taxes and levies, ceded premium and net per currency, derives net from its components and compares that against a mapped net column, then compares the whole footing field by field against the totals the coverholder asserts. Exact agreement on a footing is a weak result and the tool says so, because both sides added the same column. The check that carries weight is utilisation of the binding authority: the aggregate and per risk limits are held by the carrier and are not on the bordereau, so they are declared caller inputs and are never derived from the document under review, which is what gives that comparison independent provenance. It also reports lines outside the declared period or permitted currency list, repeated policy references, absent expected periods and lines whose mapped fields are missing. Which of the supplied columns carries which measure is a caller declaration, as are the standard label and version, which are pinned into the artifact and shown on screen: no field list, schema, rate table or commission table is bundled or read, and nothing claims which revision of any standard is current, so a later revision makes an old receipt dated rather than wrong. The arithmetic reads only mapped numeric and reference columns. Every other column is ignored and reaches no result, and no rejection record echoes a cell value, so insured names, addresses and claim narratives stay out of the computed output. Money is fixed point in integer minor units with two decimal display throughout, decimal input is parsed from its string form rather than by floating point, and zero rows, an empty mapping and a zero limit each resolve to a defined result rather than to a not a number. Absent asserted totals the run is reported as recompute only, which is its own state and never a pass. Stated boundary: a difference means the two arithmetics disagree on the rows supplied, not that the coverholder misreported. It performs no data standard conformance validation, no terms of business or sanctions screening, no reserving or pricing adequacy assessment, and makes no assertion that authority was properly exercised, which is a conclusion for the delegated authority audit.",
  "input_schema_ref": "chaingraph/art-508-recompute-bordereau.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:400131baae5bef4da3dcb65a389b7eae6ef0e310ab7d91747a5a89bb26666102",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IVCyDEfOHmcBqG5B64cd40fKzNszpy/OhBKMy+Ykd1QAHJOjw7MkzOxZVDopuRi0SWa8nA8VOK0qLzbTfho0Bw2yNNYgzNZM4rKlMsAB8fJUnEakP03m1L7JMjG1kwk7BUN1kgEhREhMA9kiS+3ZFDrBR7QSssthWjQgJpNc8qQL0nJ535o6UKQrRLYei6OCOGwOb6uspQ1Jhps/Tar0si4Ljw5x+Ug/4FgKQ+JkmSiPls2A6Bza+nTxcqwYy9YuG58202JF/etOvP3EpuFOVlXYhp6BofWZg5InSwV8uPUvCZUD+nju01yFh12YMM70poemk0lzYpYt+rCs/ofZIQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:400131baae5bef4da3dcb65a389b7eae6ef0e310ab7d91747a5a89bb26666102",
      "output": {
        "aggregate_utilisation": {
          "assessed": false,
          "basis": "gross_premium",
          "breached": false,
          "consumed_display": null,
          "consumed_minor_units": null,
          "headroom_display": null,
          "headroom_minor_units": null,
          "limit_currency": null,
          "limit_display": null,
          "limit_minor_units": null,
          "reason": "No aggregate limit was supplied, so utilisation of the binding authority could not be assessed. The limit is held by the carrier and is deliberately not derived from the bordereau.",
          "utilisation_basis_points": null,
          "utilisation_display": null
        },
        "amounts_in": "major_units",
        "basis": {
          "basis_id": "CALLER-SUPPLIED-MAPPING",
          "basis_label": "Column mapping, standard label and standard version as declared by the caller",
          "field_set_version": "1.0.0",
          "mapping_source": "caller_declared",
          "shipped_field_list": false,
          "shipped_rate_table": false,
          "standard_conformance_checked": false,
          "standard_note": "No market data standard is bundled, read, validated or asserted here. The caller names which of their own columns carries each measure, and the standard label and version they pin are echoed so a later revision dates an old receipt rather than falsifying it."
        },
        "bordereau_class": "premium",
        "comparison_basis": "The recomputed side of every comparison is footed here from the rows supplied. The authority limits on the other side are carrier held and are declared by the caller, never derived from the bordereau, which is what gives that comparison independent provenance. Exact agreement on a footing is a weak result because both sides added the same column.",
        "comparison_state": "matches",
        "currencies": [
          {
            "brokerage_display": "1250.05",
            "brokerage_minor_units": 125005,
            "ceded_display": "2000.00",
            "ceded_minor_units": 200000,
            "coverholder_commission_display": "1875.00",
            "coverholder_commission_minor_units": 187500,
            "currency": "GBP",
            "gross_premium_display": "12500.55",
            "gross_premium_minor_units": 1250055,
            "line_count": 2,
            "net_agrees_internally": true,
            "net_as_mapped_display": "5831.68",
            "net_as_mapped_minor_units": 583168,
            "net_internal_difference_display": "0.00",
            "net_internal_difference_minor_units": 0,
            "net_recomputed_display": "5831.68",
            "net_recomputed_minor_units": 583168,
            "taxes_by_column": [
              {
                "column": "IPT Amount",
                "total_display": "1500.07",
                "total_minor_units": 150007
              },
              {
                "column": "Levy Amount",
                "total_display": "43.75",
                "total_minor_units": 4375
              }
            ],
            "taxes_display": "1543.82",
            "taxes_minor_units": 154382
          },
          {
            "brokerage_display": "400.00",
            "brokerage_minor_units": 40000,
            "ceded_display": "0.00",
            "ceded_minor_units": 0,
            "coverholder_commission_display": "600.00",
            "coverholder_commission_minor_units": 60000,
            "currency": "EUR",
            "gross_premium_display": "4000.00",
            "gross_premium_minor_units": 400000,
            "line_count": 1,
            "net_agrees_internally": true,
            "net_as_mapped_display": "3000.00",
            "net_as_mapped_minor_units": 300000,
            "net_internal_difference_display": "0.00",
            "net_internal_difference_minor_units": 0,
            "net_recomputed_display": "3000.00",
            "net_recomputed_minor_units": 300000,
            "taxes_by_column": [
              {
                "column": "IPT Amount",
                "total_display": "0.00",
                "total_minor_units": 0
              },
              {
                "column": "Levy Amount",
                "total_display": "0.00",
                "total_minor_units": 0
              }
            ],
            "taxes_display": "0.00",
            "taxes_minor_units": 0
          }
        ],
        "diff": [
          {
            "agrees": true,
            "asserted_display": "12500.55",
            "asserted_minor_units": 1250055,
            "currency": "GBP",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "gross_premium",
            "recomputed_display": "12500.55",
            "recomputed_minor_units": 1250055
          },
          {
            "agrees": true,
            "asserted_display": "1250.05",
            "asserted_minor_units": 125005,
            "currency": "GBP",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "brokerage",
            "recomputed_display": "1250.05",
            "recomputed_minor_units": 125005
          },
          {
            "agrees": true,
            "asserted_display": "1875.00",
            "asserted_minor_units": 187500,
            "currency": "GBP",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "coverholder_commission",
            "recomputed_display": "1875.00",
            "recomputed_minor_units": 187500
          },
          {
            "agrees": true,
            "asserted_display": "2000.00",
            "asserted_minor_units": 200000,
            "currency": "GBP",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "ceded",
            "recomputed_display": "2000.00",
            "recomputed_minor_units": 200000
          },
          {
            "agrees": true,
            "asserted_display": "5831.68",
            "asserted_minor_units": 583168,
            "currency": "GBP",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "net",
            "recomputed_display": "5831.68",
            "recomputed_minor_units": 583168
          },
          {
            "agrees": true,
            "asserted_display": "1543.82",
            "asserted_minor_units": 154382,
            "currency": "GBP",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "taxes",
            "recomputed_display": "1543.82",
            "recomputed_minor_units": 154382
          },
          {
            "agrees": true,
            "asserted_display": "4000.00",
            "asserted_minor_units": 400000,
            "currency": "EUR",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "gross_premium",
            "recomputed_display": "4000.00",
            "recomputed_minor_units": 400000
          },
          {
            "agrees": true,
            "asserted_display": "3000.00",
            "asserted_minor_units": 300000,
            "currency": "EUR",
            "detail": "The total footed from the rows supplied equals the total asserted for this measure.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_rows": true,
            "measure": "net",
            "recomputed_display": "3000.00",
            "recomputed_minor_units": 300000
          }
        ],
        "duplicates": [],
        "expected_periods": [],
        "limit_breaches": [],
        "line_count": 3,
        "lines_with_absent_mapped_fields": [],
        "mapped_columns": [
          "Brokerage Amount",
          "Coverholder Commission Amount",
          "Gross Written Premium",
          "IPT Amount",
          "Levy Amount",
          "Limit Of Liability",
          "Net Premium Due To Carrier",
          "Reinsurance Ceded Premium",
          "Reporting Period",
          "Risk Inception Date",
          "Settlement Currency",
          "Unique Market Reference"
        ],
        "measures_mapped": {
          "brokerage": true,
          "ceded": true,
          "coverholder_commission": true,
          "currency": true,
          "gross_premium": true,
          "inception_date": true,
          "net": true,
          "period": true,
          "policy_ref": true,
          "sum_insured": true,
          "taxes": true
        },
        "minor_unit_exponent": 2,
        "missing_periods": [],
        "no_standard_claim": "This tool bundles no data standard field list, no schema and no rate or commission table, reads none, and asserts conformance with none. The mapping and the standard version are the caller declaration.",
        "note": "Deterministic delegated authority bordereau recomputation for one stated period. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It foots the rows supplied, compares them against asserted totals where given, and measures utilisation against binding authority limits the caller declares. It makes no assertion that authority was properly exercised, performs no data standard conformance validation, no sanctions or terms of business screening, and no reserving or pricing adequacy assessment. It is not a regulatory filing and not legal advice.",
        "observed_periods": [
          "2025-07"
        ],
        "out_of_scope_lines": [],
        "per_risk_basis": "sum_insured",
        "per_risk_limit_display": null,
        "per_risk_limit_minor_units": null,
        "period_label": "2025-07 monthly premium bordereau",
        "pii_note": "Only columns named in field_mapping are read. Unmapped columns are ignored and appear nowhere in this artifact, and no rejection record echoes a supplied cell value. Inputs should be anonymised or synthetic.",
        "population_defect": false,
        "rationale": [
          "Bordereau recomputed for period 2025-07 monthly premium bordereau over 3 supplied lines, class premium, against the column mapping the caller declared and the standard pinned as Coverholder premium bordereau layout as agreed in the binding authority version 2025-04 revision.",
          "Only the columns named in the mapping were read. Every other column was ignored and appears nowhere in these results, which is what keeps insured names, addresses and claim narratives out of the computed output. Where a mapped cell was unusable it is named by column and type, and the cell contents are never echoed.",
          "6 supplied cells sat in columns the mapping does not name. Nothing was read from them and none reached these results. They are counted rather than listed, because listing them would be the leak this tool exists to avoid. If these rows were handed straight to the artifact builder without being cut down to the mapped columns first, those cells will still appear in the echoed input parameters, so cut the file down to the mapped columns before building a receipt from it.",
          "Footing produced totals in 2 currencies: GBP gross premium 12500.55, net recomputed 5831.68; EUR gross premium 4000.00, net recomputed 3000.00. Net is derived as gross premium less brokerage, coverholder commission, mapped taxes and ceded premium.",
          "Exact agreement on a footing is a weak result and is reported as such: the coverholder footed the same column, so agreement is expected. The check that carries weight is utilisation of the binding authority, because that limit is held by the carrier and is not on the bordereau. It is a declared input here and is never derived from the file under review.",
          "No aggregate limit was supplied, so utilisation of the binding authority could not be assessed. The limit is held by the carrier and is deliberately not derived from the bordereau.",
          "No line and no aggregate exceeded a limit the caller declared.",
          "No repeated policy reference, no absent expected period and no line with an unusable mapped field were found in the population supplied.",
          "The footing agrees with every one of the 8 asserted figures supplied. Agreement on a footing means both sides added the same column the same way.",
          "No data standard field list, schema, rate table or commission table is held in this tool, and nothing here claims which revision of any standard is current. A later revision makes this receipt dated, not wrong."
        ],
        "recompute_only_note": "Where comparison_state is recompute_only, no asserted totals were supplied and this artifact records what the rows foot to, never agreement. A scripted caller must not read it as a pass.",
        "rejected_inputs": [],
        "standard_label": "Coverholder premium bordereau layout as agreed in the binding authority",
        "standard_pinned": true,
        "standard_version": "2025-04 revision",
        "unexpected_periods": [],
        "unmapped_column_cells_ignored": 6,
        "unmapped_measures": []
      }
    }
  }
},
    {
  "tool_id": "art-509-recompute-payment-waterfall",
  "tool_version": "1.0.0",
  "display_name": "Securitisation Payment Waterfall Recomputation",
  "mcp_name": "recompute_payment_waterfall",
  "mandate_type": "analytics_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-509-recompute-payment-waterfall.html",
  "description": "Recomputes a securitisation payment waterfall for one stated period from the aggregate available funds and the priority ladder the investor already holds, then compares the result against what the investor report says was paid. The allocation is derived here by running the ladder, not lifted from the report, so the comparison has independent provenance on both sides rather than re-adding a published column. The ladder, every cap, every trigger threshold and every diversion come from the caller transaction documents: no deal library, no bundled ladder, no market convention threshold and no rate or index table is held here, and the ladder reference the caller pins is carried in the artifact and shown on screen so a later amendment makes an old receipt dated rather than wrong. Steps whose amount is set by a document that is not public, such as a trustee fee or a senior expense governed by a fee letter, are declared asserted by the caller and are reported as asserted inputs rather than as figures this tool derived. A failing test suppresses only the step identifiers the caller declared against that test, so divert behaviour is never inferred from a test name or from convention. Absent any asserted allocations the run is reported as recompute only, which is its own state and never agreement. Money is fixed point in integer minor units throughout with two decimal display, ratio tests are compared by integer cross multiplication so no division occurs on the comparison path, and zero available funds, an empty ladder and a zero ratio denominator each resolve to a defined result rather than to a not a number. No Article 7 disclosure template is read, validated or asserted anywhere, and the arithmetic needs no loan level data. Stated boundary: a shortfall or a difference against the report is an arithmetic finding about the ladder and figures supplied. It forecasts nothing, models no scenario, performs no credit or rating analysis, and makes no assertion that the deal was paid correctly or that it complies with anything.",
  "input_schema_ref": "chaingraph/art-509-recompute-payment-waterfall.html#manifest",
  "consumes": [],
  "feeds": [
    "art-510-build-art5-diligence-evidence"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:79ba683f5f9684c6c7ab2b2cfe7cdd8546591b5de200da9f10a3bb9637e408f1",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HRcJQ0P6fx+FFKRgwWSdqySc6vFH8m7f5P2Ai1ywV2Emusvp45nDH6kQOmoWx6Lc7G2P5IO6ESG78yR7JzGe3Ce+Jj3vWn1tITCSTtBlWohci8pADCLvoi+0kUH2QuspGNwS5UO21LSbgxoKOeawXCb/pI5pql4Id8e+XqDrHnkWP7Hp849zsZzP6b5sucN1ok27SjtR6NkI0tHq2QZCfSzTdX55rvofgKuXMQlNFLud0Y7958KNzh33XK5GleYqHYZ2SG8aHnYJZsBOCdV18qSGYc3Er6/gcyXrjBJiCNwIVxDoKMaUKeFd7/B+jShMbLAOIte0F029+JjtrncJQg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:79ba683f5f9684c6c7ab2b2cfe7cdd8546591b5de200da9f10a3bb9637e408f1",
      "output": {
        "asserted_step_count": 2,
        "available_funds_by_ledger": [
          {
            "ledger": "interest",
            "opening_display": "125000.00",
            "opening_minor_units": 12500000
          }
        ],
        "basis": {
          "basis_id": "CALLER-SUPPLIED-LADDER",
          "basis_label": "Priority of payments as declared by the caller from the transaction documents",
          "field_set_version": "1.0.0",
          "ladder_source": "transaction_documents",
          "template_conformance_checked": false,
          "template_note": "No Article 7 disclosure template is read, validated or asserted anywhere in this tool. The ladder comes from the deal documents the investor already holds."
        },
        "citations": {
          "investor_diligence": {
            "id": "Regulation (EU) 2017/2402 Article 5(4)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          },
          "investor_report": {
            "id": "Regulation (EU) 2017/2402 Article 7(1)(e)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          }
        },
        "comparison_basis": "The recomputed side of every comparison is derived here by running the caller declared ladder against the caller supplied available funds. It is not read from the investor report. A comparison is only meaningful because the two sides have independent provenance.",
        "comparison_state": "matches",
        "currency": "EUR",
        "deal_ref": "SYNTH-2025-A",
        "diff": [
          {
            "agrees": true,
            "asserted_display": "1500.00",
            "asserted_minor_units": 150000,
            "detail": "The independently recomputed allocation equals the allocation the report asserts for this step.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_ladder": true,
            "recomputed_display": "1500.00",
            "recomputed_minor_units": 150000,
            "step_id": "a"
          },
          {
            "agrees": true,
            "asserted_display": "3500.00",
            "asserted_minor_units": 350000,
            "detail": "The independently recomputed allocation equals the allocation the report asserts for this step.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_ladder": true,
            "recomputed_display": "3500.00",
            "recomputed_minor_units": 350000,
            "step_id": "b"
          },
          {
            "agrees": true,
            "asserted_display": "62000.00",
            "asserted_minor_units": 6200000,
            "detail": "The independently recomputed allocation equals the allocation the report asserts for this step.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_ladder": true,
            "recomputed_display": "62000.00",
            "recomputed_minor_units": 6200000,
            "step_id": "c"
          },
          {
            "agrees": true,
            "asserted_display": "40000.00",
            "asserted_minor_units": 4000000,
            "detail": "The independently recomputed allocation equals the allocation the report asserts for this step.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_ladder": true,
            "recomputed_display": "40000.00",
            "recomputed_minor_units": 4000000,
            "step_id": "d"
          },
          {
            "agrees": true,
            "asserted_display": "18000.00",
            "asserted_minor_units": 1800000,
            "detail": "The independently recomputed allocation equals the allocation the report asserts for this step.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_ladder": true,
            "recomputed_display": "18000.00",
            "recomputed_minor_units": 1800000,
            "step_id": "e"
          }
        ],
        "first_unfunded_step": "e",
        "ladder_ref": {
          "dated": "2025-05-01",
          "document_ref": "SYNTHETIC PROSPECTUS SYNTH-2025-A",
          "section_ref": "Priority of Payments, items a to f",
          "supplied": true,
          "version": "1.0"
        },
        "minor_unit_exponent": 2,
        "no_template_claim": "This tool reads no Article 7 disclosure template, validates no field set, and asserts conformance with no annex. The priority of payments is taken from the caller transaction documents.",
        "note": "Deterministic securitisation payment waterfall recomputation for one stated period. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. The allocation is derived here from a caller declared priority ladder and caller supplied available funds, so a comparison against an investor report is an independent recomputation rather than a re-footing of published totals. It forecasts nothing, models no scenario, performs no credit or rating analysis, and makes no assertion about the compliance status of the deal. It is not a regulatory filing and not legal advice.",
        "period_label": "2025-07 collection period",
        "rationale": [
          "Waterfall recomputed for period 2025-07 collection period on deal reference SYNTH-2025-A, against the priority ladder pinned as SYNTHETIC PROSPECTUS SYNTH-2025-A Priority of Payments, items a to f version 1.0 dated 2025-05-01.",
          "Total available funds of 125000.00 EUR across 1 ledger were allocated down 5 ladder steps in the order supplied, honouring every declared cap.",
          "2 of 5 steps carry an amount the caller declared as ASSERTED rather than recomputed, typically a trustee fee or a senior expense set by a fee letter that is not a public document. Those amounts are allocated exactly as supplied and are reported as asserted inputs, never as figures this tool derived.",
          "Funds ran out at step e, which is the first step whose claim could not be met in full. Total shortfall across the ladder is 6000.00 EUR.",
          "Residual after the ladder is 0.00 EUR.",
          "1 test evaluated against caller-supplied thresholds: 1 pass, 0 fail, 0 undetermined. No market convention threshold is baked into this tool.",
          "The independently recomputed allocation agrees with every one of the 5 steps the supplied report allocations name. The left-hand side of that comparison was computed here from the ladder, not lifted from the report.",
          "No Article 7 disclosure template was read, validated or asserted. The priority of payments used here is the one declared from the transaction documents, which is why a template amendment cannot reach this arithmetic."
        ],
        "recompute_only_note": "Where comparison_state is recompute_only, no asserted allocations were supplied and this artifact records what the ladder produces, never agreement with an investor report.",
        "recomputed_step_count": 3,
        "rejected_inputs": [],
        "residual_by_ledger": [
          {
            "ledger": "interest",
            "opening_display": "125000.00",
            "opening_minor_units": 12500000,
            "residual_display": "0.00",
            "residual_minor_units": 0
          }
        ],
        "residual_display": "0.00",
        "residual_minor_units": 0,
        "step_count": 5,
        "steps": [
          {
            "amount_source": "asserted",
            "basis": "Fee letter, not a public document",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "1500.00",
            "claim_minor_units": 150000,
            "due_display": "1500.00",
            "due_minor_units": 150000,
            "fully_paid": true,
            "label": "Trustee fee",
            "ledger": "interest",
            "ledger_supplied": true,
            "paid_display": "1500.00",
            "paid_minor_units": 150000,
            "position": 1,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "step_id": "a",
            "suppressed_by_test": null
          },
          {
            "amount_source": "asserted",
            "basis": "Fee letter, not a public document",
            "cap_applied": false,
            "cap_display": "4000.00",
            "cap_minor_units": 400000,
            "claim_display": "3500.00",
            "claim_minor_units": 350000,
            "due_display": "3500.00",
            "due_minor_units": 350000,
            "fully_paid": true,
            "label": "Senior expenses",
            "ledger": "interest",
            "ledger_supplied": true,
            "paid_display": "3500.00",
            "paid_minor_units": 350000,
            "position": 2,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "step_id": "b",
            "suppressed_by_test": null
          },
          {
            "amount_source": "recomputed",
            "basis": "Prospectus interest provisions",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "62000.00",
            "claim_minor_units": 6200000,
            "due_display": "62000.00",
            "due_minor_units": 6200000,
            "fully_paid": true,
            "label": "Class A interest",
            "ledger": "interest",
            "ledger_supplied": true,
            "paid_display": "62000.00",
            "paid_minor_units": 6200000,
            "position": 3,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "step_id": "c",
            "suppressed_by_test": null
          },
          {
            "amount_source": "recomputed",
            "basis": "Prospectus reserve provisions",
            "cap_applied": false,
            "cap_display": "40000.00",
            "cap_minor_units": 4000000,
            "claim_display": "40000.00",
            "claim_minor_units": 4000000,
            "due_display": "40000.00",
            "due_minor_units": 4000000,
            "fully_paid": true,
            "label": "Cash reserve replenishment",
            "ledger": "interest",
            "ledger_supplied": true,
            "paid_display": "40000.00",
            "paid_minor_units": 4000000,
            "position": 4,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "step_id": "d",
            "suppressed_by_test": null
          },
          {
            "amount_source": "recomputed",
            "basis": "Prospectus interest provisions",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "24000.00",
            "claim_minor_units": 2400000,
            "due_display": "24000.00",
            "due_minor_units": 2400000,
            "fully_paid": false,
            "label": "Class B interest",
            "ledger": "interest",
            "ledger_supplied": true,
            "paid_display": "18000.00",
            "paid_minor_units": 1800000,
            "position": 5,
            "shortfall_display": "6000.00",
            "shortfall_minor_units": 600000,
            "step_id": "e",
            "suppressed_by_test": null
          }
        ],
        "test_results": [
          {
            "basis": "Threshold declared by the caller from the transaction documents",
            "basis_detail": "Ratio test evaluated by integer cross-multiplication against the threshold supplied for it. No division is performed on the comparison path.",
            "comparator": "gte",
            "divert_applied": false,
            "divert_declared": false,
            "divert_description": "The caller declared no diversion for this test, so a failure suppresses nothing. Divert behaviour is never inferred here.",
            "label": "Credit enhancement test",
            "measured": {
              "denominator": 10000,
              "form": "ratio",
              "numerator": 1450
            },
            "outcome": "pass",
            "suppress_step_ids": [],
            "test_id": "credit-enhancement",
            "threshold": {
              "denominator": 10000,
              "form": "ratio",
              "numerator": 1000
            }
          }
        ],
        "total_available_display": "125000.00",
        "total_available_minor_units": 12500000,
        "total_paid_display": "125000.00",
        "total_paid_minor_units": 12500000,
        "total_shortfall_display": "6000.00",
        "total_shortfall_minor_units": 600000
      }
    }
  }
},
    {
  "tool_id": "art-510-build-art5-diligence-evidence",
  "tool_version": "1.0.0",
  "display_name": "Article 5 Due Diligence Evidence Record",
  "mcp_name": "build_art5_diligence_evidence",
  "mandate_type": "compliance_mandate",
  "wave": 78,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-510-build-art5-diligence-evidence.html",
  "description": "Records, for one securitisation position over one stated period, which Article 5 verification and ongoing monitoring duties an institutional investor declares it performed, the evidence references behind each, what remains outstanding, and the accountability trail naming who signed each off. Each duty carries a pinned citation object with a full date from which the provision was in force: a bare four digit year is rejected and named rather than accepted, and a superseded citation is recorded through a superseding reference and is never stripped. Where a duty turns on a question the facts do not settle, the record names what is undetermined, which input resolves it and who decides, rather than raising a bare flag. Gaps are published as a named list with the duty against each one and never as a coverage ratio, a percentage of duties met or a score, because a proportion invites a reader to treat a partial record as partial compliance. A duty reaches performed only when it is declared performed, names evidence, and carries records naming a performer and an approver by distinct identity, each bound to its own signing identity; an unsigned record holds the duty rather than passing it, an agent identity satisfies a human role only under an explicit human role mandate, and a time boxed override never satisfies a sign off here because no clock is read. The duty set shipped is the Article 5 paragraph set, which is primary legislation rather than a maintained template, and it is not presented as exhaustive: a caller may declare further duties carrying their own pinned citations. No disclosure template is read, validated or asserted, and the record works on opaque position, deal and identity references and on evidence references rather than evidence content, so no loan level or personal data is needed. Stated boundary: every status is evidence of a human act. Nothing here states that the diligence performed was adequate, that a duty was discharged to any supervisor satisfaction, or that any authority has accepted anything, and it is not a filing.",
  "input_schema_ref": "chaingraph/art-510-build-art5-diligence-evidence.html#manifest",
  "consumes": [
    "art-509-recompute-payment-waterfall"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:72798cbb71379e42e0b388c97b0781d1189fd20a06e289e2bbff86254b0dd17e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AljYChzZedxh9+Ba33VdAXxg6iGHe25nKu3qih7cE9gLoebsjK1nVt/rSLF/regO/ltpuAeUql6gETxM1EEoFRzlz5AUK70b6Wf4BeM5BHlyyamiIA/MH/QSCxrHr9P7H+3sayvq0NxNj596fAO0MCH5JKBtpSRdh3nl77JACNEiWpIwPjWB4cBydQy6qI59hk8pR/C+JGOD8jzGBgGOWRxgSNjyj+/v86RV4qNUH1rhbOlDlAMtAsU4mtg9VNGzDqPfkzoMi2Iz02DBvsyDiHqU41oau89Bdx0ha/w05DwnXLhsAlqZEln4rnML7TZ9pBhzfR4UQThDyyoWkjBtCg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:72798cbb71379e42e0b388c97b0781d1189fd20a06e289e2bbff86254b0dd17e",
      "output": {
        "agent_parity_findings": [
          {
            "code": "ART5_AGENT_WITHOUT_HUMAN_ROLE_MANDATE",
            "detail": "An agent identity filed this sign-off and carries no explicit human-role mandate, so under SPEC.md §27.8 it does not satisfy the role. The record is carried and is not counted toward the trail.",
            "duty_id": "monitor_ongoing_performance",
            "identity_id": "did:example:agent-1",
            "role": "approver"
          }
        ],
        "citations": {
          "art5_1_a_credit_granting": {
            "id": "Regulation (EU) 2017/2402 Article 5(1)(a)",
            "in_force_from": "2021-04-09",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2021/557/oj"
          },
          "art5_1_c_risk_retention": {
            "id": "Regulation (EU) 2017/2402 Article 5(1)(c)",
            "in_force_from": "2021-04-09",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2021/557/oj"
          },
          "art5_1_e_disclosure": {
            "id": "Regulation (EU) 2017/2402 Article 5(1)(e)",
            "in_force_from": "2021-04-09",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2021/557/oj"
          },
          "art5_3_risk_assessment": {
            "id": "Regulation (EU) 2017/2402 Article 5(3)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          },
          "art5_4_b_stress_testing": {
            "id": "Regulation (EU) 2017/2402 Article 5(4)(b)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          },
          "art5_4_d_internal_reporting": {
            "id": "Regulation (EU) 2017/2402 Article 5(4)(d)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          },
          "art5_4_ongoing_monitoring": {
            "id": "Regulation (EU) 2017/2402 Article 5(4)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          },
          "art7_investor_report": {
            "id": "Regulation (EU) 2017/2402 Article 7(1)(e)",
            "in_force_from": "2019-01-01",
            "mapped_at": "2026-07-31",
            "mapped_by": "AINumbers SECZ-K-1",
            "scheme": "eu-regulation",
            "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
          }
        },
        "deal_ref": "SYNTH-2025-A",
        "distinctness_basis": "Roles count DISTINCT identity.id (SPEC.md §27.3), never records and never signing keys. One human rotating keys, or signing twice, counts once.",
        "duty_count": 7,
        "duty_results": [
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "hold",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "hold",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "verify_credit_granting_standards",
              "record_count": 0,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 0,
              "status": "hold"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(1)(a)",
              "in_force_from": "2021-04-09",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2021/557/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor investment or credit function that performed the verification. This tool does not decide it.",
            "duty_class": "verification_before_holding",
            "duty_id": "verify_credit_granting_standards",
            "evidence": [],
            "evidence_count": 0,
            "judgment_required": null,
            "label": "Verify that the originator or original lender grants credits on the same sound and well-defined criteria it applies to non-securitised exposures.",
            "performed_asserted": false,
            "performed_note": null,
            "position": 1,
            "status": "outstanding",
            "status_basis": "The investor has not declared this duty performed for this position and period. Absent evidence holds; nothing here treats silence as performance.",
            "typical_evidence": "The originator credit policy, and the investor record of the comparison made against its non-securitised book."
          },
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 1,
                  "counted_identities": [
                    "did:example:officer-b"
                  ],
                  "counted_identity_count": 1,
                  "reason": "At least one signed record names a distinct identity in this role on this duty.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "satisfied",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 1,
                  "counted_identities": [
                    "did:example:analyst-a"
                  ],
                  "counted_identity_count": 1,
                  "reason": "At least one signed record names a distinct identity in this role on this duty.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "satisfied",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "verify_risk_retention",
              "record_count": 2,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 2,
              "status": "satisfied"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(1)(c)",
              "in_force_from": "2021-04-09",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2021/557/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor function that performed the retention verification. This tool does not decide it.",
            "duty_class": "verification_before_holding",
            "duty_id": "verify_risk_retention",
            "evidence": [
              {
                "dated": "2025-07-05",
                "description": "Retention statement in the transaction documents naming the retention holder and the form relied on.",
                "evidence_ref": "EV-RET-1",
                "evidence_type": "transaction_document",
                "within_period": true
              }
            ],
            "evidence_count": 1,
            "judgment_required": null,
            "label": "Verify that the originator, sponsor or original lender retains a material net economic interest of not less than 5 percent and discloses it to institutional investors.",
            "performed_asserted": true,
            "performed_note": null,
            "position": 2,
            "status": "performed",
            "status_basis": "The duty is declared performed, evidence is named, and a conformant signed record names both a performer and an approver by distinct identity. This records evidence of a human act. It is not a statement that what was done was adequate.",
            "typical_evidence": "The retention statement in the transaction documents, the retention holder identity, and the retention form relied on."
          },
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "hold",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "hold",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "verify_article_7_disclosure",
              "record_count": 0,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 0,
              "status": "hold"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(1)(e)",
              "in_force_from": "2021-04-09",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2021/557/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor function that obtained the information. This tool does not decide it.",
            "duty_class": "verification_before_holding",
            "duty_id": "verify_article_7_disclosure",
            "evidence": [],
            "evidence_count": 0,
            "judgment_required": null,
            "label": "Verify that the originator, sponsor or securitisation special purpose entity has made available the information required by Article 7.",
            "performed_asserted": false,
            "performed_note": null,
            "position": 3,
            "status": "outstanding",
            "status_basis": "The investor has not declared this duty performed for this position and period. Absent evidence holds; nothing here treats silence as performance.",
            "typical_evidence": "The reference to where the information was made available, and the investor record of having obtained it. Availability is what is verified; the content of any disclosure template is not assessed here."
          },
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "hold",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "hold",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "assess_risk_characteristics",
              "record_count": 0,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 0,
              "status": "hold"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(3)",
              "in_force_from": "2019-01-01",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor function that carried out the assessment. This tool does not decide it.",
            "duty_class": "assessment_before_holding",
            "duty_id": "assess_risk_characteristics",
            "evidence": [],
            "evidence_count": 0,
            "judgment_required": null,
            "label": "Carry out a due-diligence assessment enabling the risks of the position to be assessed, covering the risk characteristics of the position and of the underlying exposures, and the structural features of the transaction.",
            "performed_asserted": false,
            "performed_note": null,
            "position": 4,
            "status": "outstanding",
            "status_basis": "The investor has not declared this duty performed for this position and period. Absent evidence holds; nothing here treats silence as performance.",
            "typical_evidence": "The written pre-investment assessment, and the source data and structural analysis it rests on."
          },
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 1,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "hold",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 1,
                  "counted_identities": [
                    "did:example:analyst-a"
                  ],
                  "counted_identity_count": 1,
                  "reason": "At least one signed record names a distinct identity in this role on this duty.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "satisfied",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "monitor_ongoing_performance",
              "record_count": 2,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 1,
              "status": "hold"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(4)",
              "in_force_from": "2019-01-01",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor function that operates the monitoring procedure. This tool does not decide it.",
            "duty_class": "ongoing_monitoring",
            "duty_id": "monitor_ongoing_performance",
            "evidence": [
              {
                "dated": "2025-09-30",
                "description": "Waterfall recomputation for the period, produced by art-509 from the period investor report and the priority ladder.",
                "evidence_ref": "EV-MON-1",
                "evidence_type": "recomputation",
                "within_period": true
              }
            ],
            "evidence_count": 1,
            "judgment_required": null,
            "label": "Establish written procedures to monitor, on an ongoing basis and for the life of the position, the performance of the position and of the underlying exposures.",
            "performed_asserted": true,
            "performed_note": null,
            "position": 5,
            "status": "evidence_unsigned",
            "status_basis": "The duty is declared performed and evidence is named, but the accountability trail is not satisfied, so no conformant signed record shows who stands behind it.",
            "typical_evidence": "The written monitoring procedure, and the monitoring output for this period, including any waterfall recomputation performed on the period investor report."
          },
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "hold",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "hold",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "perform_stress_tests",
              "record_count": 0,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 0,
              "status": "hold"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(4)(b)",
              "in_force_from": "2019-01-01",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor risk function that owns the stress testing. This tool does not decide it.",
            "duty_class": "ongoing_monitoring",
            "duty_id": "perform_stress_tests",
            "evidence": [],
            "evidence_count": 0,
            "judgment_required": {
              "decided_by": "The investor risk committee.",
              "named_completely": true,
              "resolving_input": "The risk committee proportionality determination recorded for this position.",
              "what_is_undetermined": "Whether a quarterly stress test is proportionate to the risk of this position, given its seniority and the size of the holding."
            },
            "label": "Perform regular stress tests on the cash flows and collateral values supporting the underlying exposures, proportionate to the risk of the position.",
            "performed_asserted": false,
            "performed_note": null,
            "position": 6,
            "status": "judgment_required",
            "status_basis": "The caller declared that this duty turns on a question the facts supplied do not settle. What is undetermined, which input resolves it, and who decides are all named.",
            "typical_evidence": "The stress test run for this period, its assumptions, and the record of who ran it."
          },
          {
            "accountability_trail": {
              "by_role": {
                "approver": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "approver",
                  "status": "hold",
                  "unsigned_approval_count": 0
                },
                "performer": {
                  "approval_count": 0,
                  "counted_identities": [],
                  "counted_identity_count": 0,
                  "reason": "No qualifying signed record for this role on this duty. Absent evidence holds; it is never a fall-through pass.",
                  "rejection_count": 0,
                  "role": "performer",
                  "status": "hold",
                  "unsigned_approval_count": 0
                }
              },
              "duty_id": "report_internally",
              "record_count": 0,
              "required_roles": [
                "performer",
                "approver"
              ],
              "roles_required_count": 2,
              "roles_satisfied_count": 0,
              "status": "hold"
            },
            "citation": {
              "id": "Regulation (EU) 2017/2402 Article 5(4)(d)",
              "in_force_from": "2019-01-01",
              "mapped_at": "2026-07-31",
              "mapped_by": "AINumbers SECZ-K-1",
              "scheme": "eu-regulation",
              "uri": "https://eur-lex.europa.eu/eli/reg/2017/2402/oj"
            },
            "citation_source": "shipped_pin",
            "decided_by": "The investor management body, on the report placed before it. This tool does not decide it.",
            "duty_class": "ongoing_monitoring",
            "duty_id": "report_internally",
            "evidence": [],
            "evidence_count": 0,
            "judgment_required": null,
            "label": "Ensure internal reporting to the management body so that material risks arising from the position are known and are managed.",
            "performed_asserted": false,
            "performed_note": null,
            "position": 7,
            "status": "outstanding",
            "status_basis": "The investor has not declared this duty performed for this position and period. Absent evidence holds; nothing here treats silence as performance.",
            "typical_evidence": "The internal report covering this position and period, and the record of it reaching the management body."
          }
        ],
        "duty_set": {
          "duty_set_id": "EU-SECR-ART5-PARAGRAPHS",
          "duty_set_label": "The duties stated in Article 5 of Regulation (EU) 2017/2402, as amended by Regulation (EU) 2021/557",
          "exhaustive": false,
          "exhaustiveness_note": "This is the Article 5 paragraph set, not a maintained template or field set, and it is not presented as an exhaustive statement of everything an institutional investor must do. A caller may declare additional duties carrying their own pinned citations.",
          "field_set_version": "1.0.0",
          "shipped_duty_count": 7
        },
        "investor_ref": "INV-SYNTH-1",
        "judgment_duties": [
          {
            "citation_id": "Regulation (EU) 2017/2402 Article 5(4)(b)",
            "decided_by": "The investor risk committee.",
            "duty_id": "perform_stress_tests",
            "label": "Perform regular stress tests on the cash flows and collateral values supporting the underlying exposures, proportionate to the risk of the position.",
            "resolving_input": "The risk committee proportionality determination recorded for this position.",
            "what_is_undetermined": "Whether a quarterly stress test is proportionate to the risk of this position, given its seniority and the size of the holding."
          }
        ],
        "no_adequacy_claim": "Every status recorded here is evidence OF a human act. Nothing here states that the diligence performed was adequate, that a duty was discharged to any supervisor satisfaction, or that any regulator has accepted anything.",
        "no_ratio_published": "This artifact publishes counts and a named gap list. It deliberately publishes no coverage ratio, no percentage of duties met and no score, because a proportion invites a reader to treat a partial record as partial compliance.",
        "not_a_filing": "This is an evidence record assembled for the investor own file. It is not a regulatory filing, it is not submittable to any competent authority, and it does not discharge Article 5.",
        "note": "Deterministic Article 5 due-diligence evidence record for one securitisation position over one stated period. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It records which duties the investor declares performed, the evidence references behind each, what remains outstanding as a named gap list, and the §27 accountability trail naming who signed each off. It performs none of the duties, recomputes no underlying arithmetic, reads no disclosure template, publishes no coverage ratio, and expresses no view on whether the diligence was adequate. It is not a filing and not legal advice.",
        "outstanding_duties": [
          {
            "citation_id": "Regulation (EU) 2017/2402 Article 5(1)(a)",
            "decided_by": "The investor investment or credit function that performed the verification. This tool does not decide it.",
            "duty_id": "verify_credit_granting_standards",
            "label": "Verify that the originator or original lender grants credits on the same sound and well-defined criteria it applies to non-securitised exposures.",
            "status": "outstanding",
            "what_is_missing": "The duty is not declared performed for this position and period."
          },
          {
            "citation_id": "Regulation (EU) 2017/2402 Article 5(1)(e)",
            "decided_by": "The investor function that obtained the information. This tool does not decide it.",
            "duty_id": "verify_article_7_disclosure",
            "label": "Verify that the originator, sponsor or securitisation special purpose entity has made available the information required by Article 7.",
            "status": "outstanding",
            "what_is_missing": "The duty is not declared performed for this position and period."
          },
          {
            "citation_id": "Regulation (EU) 2017/2402 Article 5(3)",
            "decided_by": "The investor function that carried out the assessment. This tool does not decide it.",
            "duty_id": "assess_risk_characteristics",
            "label": "Carry out a due-diligence assessment enabling the risks of the position to be assessed, covering the risk characteristics of the position and of the underlying exposures, and the structural features of the transaction.",
            "status": "outstanding",
            "what_is_missing": "The duty is not declared performed for this position and period."
          },
          {
            "citation_id": "Regulation (EU) 2017/2402 Article 5(4)",
            "decided_by": "The investor function that operates the monitoring procedure. This tool does not decide it.",
            "duty_id": "monitor_ongoing_performance",
            "label": "Establish written procedures to monitor, on an ongoing basis and for the life of the position, the performance of the position and of the underlying exposures.",
            "status": "evidence_unsigned",
            "what_is_missing": "The duty names evidence but no conformant signed record satisfies both required roles."
          },
          {
            "citation_id": "Regulation (EU) 2017/2402 Article 5(4)(d)",
            "decided_by": "The investor management body, on the report placed before it. This tool does not decide it.",
            "duty_id": "report_internally",
            "label": "Ensure internal reporting to the management body so that material risks arising from the position are known and are managed.",
            "status": "outstanding",
            "what_is_missing": "The duty is not declared performed for this position and period."
          }
        ],
        "override_handling": "A §27.5 override is time-boxed and its expiry can only be judged against an instant. This kernel reads no clock, so an override record NEVER satisfies a sign-off here and is reported instead. On expiry an override lapses and the underlying policy reverts; it can never become a silent permanent auto-pass through this surface.",
        "override_record_count": 0,
        "performed_count": 1,
        "period": {
          "bounds_present": true,
          "end_date": "2025-09-30",
          "label": "2025-Q3",
          "order_valid": true,
          "start_date": "2025-07-01"
        },
        "position_ref": "POS-SYNTH-1",
        "rationale": [
          "Article 5 due-diligence evidence recorded for position POS-SYNTH-1 on deal SYNTH-2025-A, held by investor INV-SYNTH-1, for period 2025-Q3 running 2025-07-01 to 2025-09-30.",
          "7 duties are recorded: the 7 Article 5 paragraph duties shipped with this tool, plus 0 declared by the caller. The shipped set is the Article 5 paragraph set and is never presented as an exhaustive statement of everything an investor must do.",
          "1 of the 7 duties carry a performance declaration, named evidence, and a signed record naming both a performer and an approver by distinct identity.",
          "5 duties are outstanding, each named in the gap list with what is missing against it. No proportion or coverage figure is published anywhere in this artifact, because a percentage would invite a reader to treat a partial record as partial compliance.",
          "1 duty turns on a question the facts supplied do not settle. Each names what is undetermined, which input resolves it, and who decides, rather than carrying a bare flag.",
          "Every status here is evidence of a human act. Nothing in this artifact states that the diligence performed was adequate, that any duty was discharged to a supervisor satisfaction, or that any regulator has accepted anything. Those are for the investor and its supervisor.",
          "No Article 7 disclosure template is read, validated or asserted anywhere in this tool. Where a duty concerns Article 7 information, what is recorded is that the information was obtained, never an assessment of a template field set."
        ],
        "rejected_citations": []
      }
    }
  }
},
    {
  "tool_id": "art-511-recompute-fund-fees",
  "tool_version": "1.0.0",
  "display_name": "Recompute Fund Fees",
  "mcp_name": "recompute_fund_fees",
  "mandate_type": "analytics_mandate",
  "wave": 79,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-511-recompute-fund-fees.html",
  "description": "Recomputes a fund's management fee and performance fee from the terms the investor already holds (the fee statement and the fund agreement) and diffs the result against what was actually charged, where supplied. Management fee accrues on a declared fee base with a declared day-count convention. Performance fee applies a declared hurdle: a HARD hurdle charges only the excess return above the hurdle, a SOFT hurdle charges the full return once the hurdle is cleared, and conflating the two is the single most common performance-fee error, so hurdle_type carries no default and its absence raises judgment_required naming the field rather than guessing. The high-water mark then gates the fee to the excess above the prior peak, and a loss carry-forward is NOT cleared by a fee period ending unless the caller explicitly declares otherwise. Crystallised (payable now) and accrued-but-uncrystallised performance fee are reported as SEPARATE figures, never summed. HARD FENCE: fee rate, hurdle rate and type, high-water mark, crystallisation policy, accrual basis and day count are every one of them a caller input transcribed from the fund agreement: this kernel ships no rate table, no fund library, no term database, zero fund-administrator or market-data lookups (zero-egress). agreement_ref and terms_version are pinned in the artifact and shown on screen, so a later side letter makes an old receipt dated, not wrong. Absent charged_amounts the run is reported recompute-only, its own state, never folded into a match. A diff against charged_amounts is a finding that the recomputation disagrees on the supplied terms, never an allegation that the manager overcharged. Distinct from art-373-recompute-fund-nav, which recomputes NAV per share and is consumed rather than reimplemented here, and from art-375-compute-fund-expense-ratios, whose expense ratio cannot detect a misapplied high-water-mark reset; this node reuses art-375's fixed-point money math pattern without editing either node's kernel. Out of scope: equalisation and series accounting, carried-interest waterfalls for closed-end funds, tax treatment, and any submittability or coverage-ratio claim.",
  "input_schema_ref": "chaingraph/art-511-recompute-fund-fees.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; fund fee recomputation is a continuous fund-operations control, not a periodic filing.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:02852a75e044e31ef50b68a146d4ffef30f3ed54d1299618963963301c82cf40",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "J0CIsuHc+hs9JiLIvs8hiMswGXPg9OpMKkpHSoRmko8drANqiOTLfeeJMOm0XtFgk+avzmLSg3kdYzcgJQq48guWU6fVnyGkocL7Kxoi4esxUtfXVIRIXMukUhLBUNsvCLmqHI/A0jc4ncpKAn4TE2fQUGHdg/mOdzjgl03gNhIfubfer9LOsiHaN9Xrc6YIxPrjQSzsxTKt0Q37c7m19QMojZLyNQgeVtOohoh3owrCANbB5dNe/aKMk4by1wK7FYTTXrwEAfbxKGA+El2rEBiWly0YaM9MQQxmy84PJnwvCur1ciM1y+3TPbf8NjWD9Z/b+HahwO3J3nH1bGTepQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:02852a75e044e31ef50b68a146d4ffef30f3ed54d1299618963963301c82cf40",
      "output": {
        "agreement_ref": "LPA-2024-08",
        "as_of": "2026-12-31",
        "diff": [],
        "fence": "Fee rate, hurdle rate/type, high-water mark, crystallisation policy, accrual basis and day count are every one of them a caller input transcribed from the fund agreement — this kernel ships no rate table, no fund library, no term database (zero-egress by contract). agreement_ref + terms_version are pinned so a later side letter makes an old receipt dated, not wrong.",
        "fund_id": "FUND-FEE-01",
        "judgment_required": null,
        "management_fee_computed": "2120000.00",
        "not_proven": [
          {
            "detail": "The management-fee rate, hurdle rate/type, high-water mark, crystallisation policy, accrual basis, and day count are every one of them caller-supplied and asserted. This kernel performs no fund-administrator or market-data lookups (zero-egress) and does not verify these terms against the underlying fund agreement.",
            "item": "Fee rate and term accuracy"
          },
          {
            "detail": "The opening and closing NAV figures are caller-supplied. Recomputing the NAV itself is the scope of art-373-recompute-fund-nav, a separate node this kernel consumes rather than reimplements.",
            "item": "NAV accuracy"
          },
          {
            "detail": "Where supplied, charged_amounts is asserted, taken as given from the fee statement being checked. This kernel does not verify that the statement itself was correctly transcribed from the manager's books.",
            "item": "Charged-amount provenance"
          },
          {
            "detail": "A diff is a finding that the recomputation disagrees with the charged figure on the supplied terms — never an allegation that the manager overcharged. Every disagreement can equally originate from a term this run had wrong.",
            "item": "Manager overcharge / wrongdoing"
          }
        ],
        "performance_fee": {
          "crystallisation": "period",
          "eligible_gain": "7000000.00",
          "first_period_no_prior_hwm": false,
          "gain_above_hwm": "12000000.00",
          "hurdle_cleared": true,
          "hurdle_excess_amount": "7000000.00",
          "hurdle_rate": "0.0500",
          "hurdle_type": "hard",
          "hwm_exceeded": true,
          "loss_carryforward": true,
          "new_high_water_mark": "112000000.00",
          "performance_fee_accrued": "0.00",
          "performance_fee_crystallised": "1400000.00",
          "period_return_pct": "0.1200",
          "prior_high_water_mark": "100000000.00"
        },
        "period_days": 365,
        "period_end": "2026-12-31",
        "period_start": "2026-01-01",
        "rationale": [
          "Management fee accrued over 365 declared days on a fee base of 106000000.00.",
          "Hard hurdle: performance fee, if any, applies only to the return in excess of the hurdle rate.",
          "High-water mark carried forward from 100000000.00; a prior loss is NOT cleared by this period ending.",
          "Closing NAV exceeds the high-water mark by 12000000.00.",
          "Crystallisation is period-based — the full computed performance fee is payable now.",
          "No charged_amounts were supplied — this run is recompute-only, not a match/mismatch determination."
        ],
        "recompute_only": true,
        "rounding": {
          "decimal_places": 2,
          "mode": "half_up"
        },
        "terms_version": "1.0"
      }
    }
  }
},
    {
  "tool_id": "art-512-check-mica-reserve-disclosure",
  "tool_version": "1.0.0",
  "display_name": "Check MiCA Reserve Disclosure",
  "mcp_name": "check_mica_reserve_disclosure",
  "mandate_type": "compliance_mandate",
  "wave": 79,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-512-check-mica-reserve-disclosure.html",
  "description": "Checks a token issuer's published reserve disclosure, the amount in circulation and the value and composition of the reserve, against the composition, concentration, segregation and publication-cadence terms the reader supplies. Deterministic and backward-looking: it reads what was published and compares it to declared rules, and contains no simulation of any kind. Coverage is the reserve total against tokens in circulation, with the surplus or shortfall. Composition tests each component against the caller's declared eligible asset classes and per-class concentration limits, listing every component that falls outside and keeping its amount inside the reserve total, because excluding it would flatter the coverage figure. Segregation tests the segregated proportion against the declared minimum, and lists every component whose custodian type the caller did not declare acceptable. Cadence names each period that ran longer than the declared interval with no publication, individually and with its dates, never as a count. HARD FENCE: the eligible asset classes, concentration limits, minimum segregated percentage, acceptable custodian types and disclosure cadence are every one of them a caller input, pinned in the artifact and shown on screen. This kernel ships no reporting template, no eligible-asset table and no issuer library, performs no lookups of any kind (zero-egress), and makes no claim about what the current rules are, so a rule change makes an old receipt dated rather than wrong. The one regime constant is the e-money-token minimum of 30 percent, applied only when the caller declared nothing, labelled at source in the receipt; for an asset-referenced token an absent minimum raises judgment_required naming the field rather than inventing a threshold. Every verdict is against the caller's declared rules: this is not a determination that the issuer complies, not legal advice, and not a submission. Where a named human attests the check, the dual-control certification surface art-503-build-dual-control-certification is reused and no second threshold evaluator is built. Distinct from rca-02-mica-reserve-stress, which is a Monte Carlo redemption stress asking whether the reserve survives a run, a forward-looking simulation this node neither imports nor edits, and from art-105-mica-token-service-scoper and tools/332-mica-casp-authorization-checker, neither of which reads a reserve disclosure. Out of scope: redemption stress simulation, authorisation and service scoping, white-paper conformance, template validation, any statement that an issuer is or is not compliant, and any coverage ratio about our own estate.",
  "input_schema_ref": "chaingraph/art-512-check-mica-reserve-disclosure.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory filing deadline is encoded. The publication cadence is a caller input, because a bundled cadence is a standing duty that goes silently false when the terms change.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3123cd816d8e2879a6ea052f973621b149340b5cd6072232bf2666e1bbe9c333",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Fv7mPSCdmtLbIEHoXcGBGcEClaFOg6qS/ipqqI5fGF8ktaKDsGxFU0je2bQ9aCbm2wnzr1Htico8j3+jLDw0eQmmcyO7HWejR+ohWwRRfRztv21lmBgZF/dpNMX5TY4SHZbARmIcYQAlcI0DvOT5pSr3JejLvhH0gQdCNUtyUTwCYfH7C1TQVxpi2UYM2vABcGz5UNyw3Jw4WRqN5ngMzhOBiEJI1Wj7W4BuzmoiS/Qx+NLMFGFcV6s/+0UTrCAeJ7dXFh5Nc70G/lB3FHvgv5Jbo05T12C4p/zTWcs4MP4JF0u2X4rDc0bN33eIu7WzxHXomvI/IFbSc24cQtmY5g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3123cd816d8e2879a6ea052f973621b149340b5cd6072232bf2666e1bbe9c333",
      "output": {
        "as_of": "2026-06-30",
        "cadence": {
          "cadence_days_declared": 31,
          "disclosure_dates_ordered": [
            "2026-01-31",
            "2026-02-28",
            "2026-03-31",
            "2026-04-30",
            "2026-05-31",
            "2026-06-30"
          ],
          "invalid_disclosure_dates": [],
          "missed_periods": [],
          "window_end": "2026-06-30",
          "window_start": "2026-01-01"
        },
        "composition": {
          "class_totals": [
            {
              "amount": "205000000.00",
              "asset_class": "bank_deposit",
              "limit_pct": "60",
              "pct_of_reserve": "40.00"
            },
            {
              "amount": "200000000.00",
              "asset_class": "sovereign_bill",
              "limit_pct": "60",
              "pct_of_reserve": "39.02"
            },
            {
              "amount": "107500000.00",
              "asset_class": "reverse_repo",
              "limit_pct": "30",
              "pct_of_reserve": "20.98"
            }
          ],
          "concentration_breaches": [],
          "eligible_asset_classes_declared": [
            "bank_deposit",
            "sovereign_bill",
            "reverse_repo"
          ],
          "ineligible_components": [],
          "ineligible_total": "0.00"
        },
        "coverage": {
          "circulation_positive": true,
          "coverage_ratio": "1.0250",
          "covered": true,
          "eligible_coverage_ratio": "1.0250",
          "eligible_reserve_total": "512500000.00",
          "reserve_empty": false,
          "reserve_total": "512500000.00",
          "surplus_or_shortfall": "12500000.00",
          "tokens_in_circulation": "500000000.00"
        },
        "disclosure_ref": "RESERVE-DISCLOSURE-2026-06",
        "fence": "Eligible asset classes, concentration limits, the minimum segregated percentage, acceptable custodian types and the disclosure cadence are every one of them a caller input, transcribed from the terms the reader is holding the issuer to. This kernel ships no reporting template, no eligible-asset table and no issuer library, and performs no lookups of any kind (zero-egress by contract). disclosure_ref and rules_version are pinned so a later rule change makes an old receipt dated, not wrong.",
        "issuer_id": "ISSUER-DEMO-01",
        "judgment_required": null,
        "not_proven": [
          {
            "detail": "The eligible asset classes, concentration limits, minimum segregated percentage, acceptable custodian types and disclosure cadence are every one of them caller-supplied and asserted. This kernel ships no reporting template and no eligible-asset table, performs no lookups of any kind (zero-egress), and does not verify these rules against the regulation, a technical standard, or any supervisory expectation.",
            "item": "Rule accuracy"
          },
          {
            "detail": "The amount in circulation, the component amounts, the custodian types, the segregation markers and the publication dates are taken as given from the disclosure being checked. This kernel does not verify that the published document says what was transcribed from it, nor that the reserve exists.",
            "item": "Disclosure accuracy"
          },
          {
            "detail": "Component amounts are asserted at the values supplied. No independent valuation, haircut, or mark to market is performed, and no market data is read.",
            "item": "Valuation"
          },
          {
            "detail": "Every verdict here is against the CALLER's declared rules. This is not a determination that the issuer complies with MiCA or with anything else, not legal advice, and not a submission to any authority. A finding can equally originate from a rule this run had wrong.",
            "item": "Compliance"
          }
        ],
        "rationale": [
          "Reserve total of 512500000.00 checked against 500000000.00 of tokens in circulation.",
          "The reserve carries 3 declared components across 3 asset classes.",
          "Every component sits inside the declared eligible asset classes.",
          "No declared concentration limit is exceeded.",
          "Segregated proportion is 40.00% against a minimum of 30% (the e-money-token default, applied only because the caller declared nothing).",
          "Every component sits with a custodian type the caller declared acceptable.",
          "Every interval between publications is within the declared 31-day cadence.",
          "Every verdict above is against the rules supplied with this run. It is not a determination that the issuer complies, not legal advice, and not a submission."
        ],
        "rounding": {
          "decimal_places": 2,
          "mode": "half_up"
        },
        "rules_version": "reader-rules-1.0",
        "segregation": {
          "acceptable_custodian_types_declared": [
            "credit_institution",
            "investment_firm",
            "casp"
          ],
          "meets_declared_minimum": true,
          "min_segregated_pct_applied": "30",
          "min_segregated_pct_source": "default_emt_30",
          "segregated_amount": "205000000.00",
          "segregation_pct": "40.00",
          "undeclared_custodian_components": []
        },
        "sign_off": {
          "note": "Where a named human attests this check, the dual-control certification surface is the one to use. This kernel emits the receipt and evaluates no threshold of its own.",
          "surface": "art-503-build-dual-control-certification"
        },
        "token_type": "EMT"
      }
    }
  }
},
    {
  "tool_id": "art-513-public-money-settlement-receipt",
  "tool_version": "1.0.0",
  "display_name": "Public-Money Settlement Receipt",
  "mcp_name": "build_public_money_settlement_receipt",
  "mandate_type": "compliance_control",
  "wave": 79,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-513-public-money-settlement-receipt.html",
  "description": "Turns one caller-transcribed payment of public money into settlement evidence an audit authority can check with no access to the operator's database: a single-settlement verdict confirming the obligation was discharged exactly once across all declared rail legs, a ministry/agency attribution verdict against the caller's own revenue-code table, an at-par verdict comparing amount credited to amount collected with every fee itemised and never netted, a finality class echoed per rail from the caller's own declared basis, and a structural exceptions list. Portable to any government payment platform, any treasury-single-account regime, any supreme audit institution -- not built to any one vendor's data model. No rail connector, no switch, no live payment observation: the event is transcribed by the caller, exactly as art-497 transcribes a validator change. Does not classify finality itself -- art-492-classify-settlement-finality and art-59-settlement-asset-finality-classifier already do that; a chain composes them upstream of this node. Zero PII: payer is a class plus an opaque reference, never a name, account number, or address. compliance_control.",
  "input_schema_ref": "chaingraph/art-513-public-money-settlement-receipt.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3a5d8a2058fde07defccc3491be7a54c5ef221c869295059f337ffe08db4dd03",
      "valid_from": "2026-08-01"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GeOFD7sP32Tre+XvU1PpSkRvgddBwuL0pNMYH1G6iUIKCgwISO2hvskj0VNAIjpzdPXDswNOs/yf0i4loRTvLgL6qoNMFIencUy+1T7lfreLOo5nGTLGIVHWWteup+L1CgshrOjd2VG7kI7ZfrR9j3C8jwqEUWi+Qlm+6zyjaC0DJpnMuhBZgz1ar5sE2jbJ+1vF7sfCA37VEFTNtrwdnQgpfx6zFUhxIGfITPx+gS8P5TtLqGJXlY/DfGacB9O1KNh/TyAIWw2H4vlnzlRc/J6Hrj2gb6Wp5dIXocW0IdICQ96ifo+jugJKkgMHjPq4MIdtOxjMUybEdO8P2liyzg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3a5d8a2058fde07defccc3491be7a54c5ef221c869295059f337ffe08db4dd03",
      "output": {
        "amount_collected": 1000,
        "amount_credited": 997.5,
        "as_of": "2026-07-31T23:59:59Z",
        "at_par": true,
        "at_par_discrepancy": 0,
        "attributed_ministry": "Ministry of Revenue and Customs",
        "attribution_matched": true,
        "currency": "USD",
        "declared_revenue_code": "REV-1200-CUSTOMS",
        "exceptions": [],
        "expected_credit": 997.5,
        "fees": [
          {
            "amount": 2.5,
            "type": "acquirer_fee"
          }
        ],
        "payer_class": "business",
        "payer_class_valid": true,
        "payment_ref": "PMT-2026-0001-OPAQUE",
        "rails": [
          {
            "declared_finality_basis": "central_bank_settlement_finality_statute",
            "rail": "rtgs",
            "rail_valid": true,
            "settled": true,
            "settlement_ref": "RTGS-REF-88431"
          }
        ],
        "reconciled": true,
        "reconciliation_window": "2026-07-01/2026-07-31",
        "single_settlement_status": "SINGLE",
        "total_fees_itemised": 2.5,
        "treasury_account_credited": "TSA-MAIN-001"
      }
    }
  }
},
    {
  "tool_id": "art-514-conditional-relief-collateral-receipt",
  "tool_version": "1.0.0",
  "display_name": "Conditional-Relief Collateral Receipt",
  "mcp_name": "build_conditional_relief_collateral_receipt",
  "mandate_type": "compliance_control",
  "wave": 79,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-514-conditional-relief-collateral-receipt.html",
  "description": "Shows, per acceptance and per day, that every condition of a conditional regulatory relief -- no-action, exemptive, or comfort-letter -- held before a firm accepted an asset as collateral in reliance on it: a per-condition PASS/FAIL/UNDECIDABLE verdict against the caller's own versioned condition set (never a silent PASS on absent evidence), a version-staleness check comparing the version the caller relied on against the version the condition set was evidenced against, the applicable capital charge from the caller's own table, and a revocation-exposure figure -- the capital and eligibility delta if the relief were withdrawn at as_of. Portable to any regime -- CFTC, SEC, OCC, FCA, MAS -- the regime label and every condition are caller-supplied policy input, never a hardcoded rule set. Does not rebuild reserve checking (art-06, art-512, art-280) or haircuts/eligibility (art-444, 505, 508, art-320) -- reused upstream in a chain. Renders no eligibility opinion and no investment advice: it reports whether the caller's declared conditions were met against the caller's declared evidence. compliance_control.",
  "input_schema_ref": "chaingraph/art-514-conditional-relief-collateral-receipt.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b4e574eae79a1ae5d3d37e79cb155af73e2d4d9a14b9e346737a1b9c144daefa",
      "valid_from": "2026-08-01"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Foset+XtvDU+uUTQJhbqS+6GLoYlm4Dw5/dFitk3XJAfA4VtrVv4HDUMmyn8uR9FxCGBL278JSGAEhOs6MlRcCsy1LwhK3AUS1ZQ9VZSFsrNC0sRYDM6TnlVJgHKdN2wCPJm1DVXbjg5Hcdd9qFUMcYAgPrsuhOa4KRuzMV7TSgOf08z9vZQtUotPJ3//b5v/ywn+6k+nukWYO80A1TJLRgrSd+ZxROKVFU6c/KcFAGlBhxHPBgCG2SCPCHpZ7dFKze6NMxha+8tx3CGHDMGrhKwjG+xIqhWeVIsHVPjypYs/7Uwh+OeNvh0ECqXGitCG4mVHRKKQcOiHfIAb5nMnQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b4e574eae79a1ae5d3d37e79cb155af73e2d4d9a14b9e346737a1b9c144daefa",
      "output": {
        "all_conditions_met": true,
        "applicable_capital_charge": 400000,
        "applicable_charge_pct": 8,
        "as_of": "2026-07-31T23:59:59Z",
        "asset_class": "payment_stablecoin",
        "asset_class_valid": true,
        "condition_set_version": "2026-03-01",
        "conditions": [
          {
            "condition_id": "COND-01",
            "description": "Reserve attestation filed for the period",
            "evidence_status": "met",
            "verdict": "PASS"
          },
          {
            "condition_id": "COND-02",
            "description": "Issuer remains on the declared permitted list",
            "evidence_status": "met",
            "verdict": "PASS"
          },
          {
            "condition_id": "COND-03",
            "description": "Daily valuation reported to the declared cadence",
            "evidence_status": "met",
            "verdict": "PASS"
          }
        ],
        "declared_haircut_pct": 2,
        "declared_reporting_cadence": "daily",
        "declared_valuation": 5000000,
        "eligibility_lost_on_revocation": false,
        "exceptions": [],
        "issuer_permitted_status": true,
        "issuer_permitted_status_declared": true,
        "last_report_ref": "RPT-2026-07-31-001",
        "position_size": 5000000,
        "relied_on_version": "2026-03-01",
        "relief_regime": "conditional_no_action_relief",
        "revocation_capital_charge": 5000000,
        "revocation_capital_delta": 4600000,
        "revocation_charge_pct": 100,
        "revocation_eligible_without_relief": true,
        "revocation_eligible_without_relief_declared": true,
        "revocation_exposure_material": true,
        "version_stale": false
      }
    }
  }
},
    {
  "tool_id": "art-515-build-allocation-decision-receipt",
  "tool_version": "1.0.0",
  "display_name": "Build Allocation Decision Receipt",
  "mcp_name": "build_allocation_decision_receipt",
  "mandate_type": "attestation_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-515-build-allocation-decision-receipt.html",
  "description": "Re-derives whether an allocation produced by an optimizer is explained by the objective and inputs that were true when it was made: the eligibility schedule snapshot, the inventory snapshot offered, the haircut table version, and the declared objective. Portable to any optimizer, not collateral only, so the same input shape covers a liquidity sweep, a treasury cash placement, a payment-routing choice, or an order allocation. Re-derives ONE candidate allocation for a declared objective (cheapest_to_deliver, preserve_hqla, or minimise_movements) using a fixed, published greedy rule, and compares it to the allocation the caller says was actually chosen: a reproducibility verdict, the delta versus the re-derived allocation in cost and in eligibility terms, and the binding constraint explaining each difference. A caller-named objective outside the three known ones is recorded but not solved, since this kernel has no fixed re-derivation rule for it. ADR_DIVERGENT is not a finding of error: a divergence means the chosen allocation is not explained by the declared objective and inputs, which is routinely legitimate (a trader override, an undeclared constraint, a stale snapshot); no output here characterises intent. This is not a competing optimizer and never claims the re-derived allocation is better than the one chosen. Eligibility, inventory, haircuts and the objective are every one of them a caller input, transcribed from the snapshot in force when the allocation was made; this kernel ships no eligibility table, no inventory feed and no haircut table of its own, and performs no lookups of any kind (zero-egress). Distinct from art-370-supervisory-scenario-replay, which replays the Fed's published macro scenario paths against caller loss/PPNR functions (a scenario replay over regulator-published inputs, not a decision re-derivation), and from art-236-build-ai-decision-log-record, which builds an EU AI Act Art 12(2) decision-log record (metadata about a decision, with no reproducibility verdict and no optimal-allocation computation). Reuses 505-tokenized-collateral-eligibility-checker for eligibility of each candidate and art-444-collateral-haircut-engine for the haircut applied; consumes their outcome as a caller-declared input and edits neither.",
  "input_schema_ref": "chaingraph/art-515-build-allocation-decision-receipt.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:cfa8312a00a78e19af8654199d3cfbc6224cc85e41ade3919d9eca0e60f46b40",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "pdf",
    "xlsx"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EMLZXPw7FJRQQwVehm5T129y4Gc53TzvyRExpESD4IgY+c9Wq5v9DDY46X7fx/07nmkWEyIfU16ebmakNbyUkRG+i8dumPNOB75wWtSW1Z0ZZIYKJWrczz9mA5LlM9sXL6xlf3lrelH2WisRuZEvEbAz55LcaHjgBZ7DZOKpreIUtSO8t2GhrApWAJUVceqDTBCcOf5EMUmhnIxKpn0dTBkeamziY5FafsKNGX3cwndLq26bAutDWqgw4VhHvy7fDY0T3WAA2UFEcOhnrLpkX3pg5osO4I+8JMBtx3IsMO4RQOQrAtFy3Hp9yo2vOsv5dGXydwLHeQxzpdos5FqtyA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:cfa8312a00a78e19af8654199d3cfbc6224cc85e41ade3919d9eca0e60f46b40",
      "output": {
        "as_of": "2026-06-30",
        "binding_constraints": [],
        "delta": {
          "cost_chosen": "3200000.00",
          "cost_delta": "0.00",
          "cost_optimal": "3200000.00",
          "eligibility": {
            "ineligible_amount_total": "0.00",
            "ineligible_assets_in_chosen": []
          }
        },
        "eligibility_schedule_ref": "ELIG-2026-06",
        "exceptions": [],
        "fence": "Eligibility, inventory, haircuts and the declared objective are every one of them a caller input, transcribed from the snapshot in force when the allocation was made. This kernel ships no eligibility table, no inventory feed and no haircut table of its own, performs no lookups of any kind (zero-egress by contract), and re-derives against the SAME declared objective and inputs the caller supplied — it is not a competing optimizer and does not claim to find a better allocation.",
        "haircut_table_version": "HC-2026Q2",
        "inventory_ref": "INV-2026-06-30",
        "judgment_required": null,
        "not_proven": [
          {
            "detail": "The eligibility schedule snapshot is a caller input, transcribed from whatever was in force when the allocation was made. This kernel does not verify it against a live eligibility feed and holds no eligibility table of its own.",
            "item": "Eligibility accuracy"
          },
          {
            "detail": "The inventory snapshot (available amounts, movement cost, HQLA flag, haircut) is asserted at the values supplied. No independent valuation or market data is read.",
            "item": "Inventory accuracy"
          },
          {
            "detail": "This kernel re-derives ONE candidate allocation for the declared objective using a fixed, published greedy rule. A divergence from the caller's allocation is not proof the caller's allocation was wrong, and a match is not proof no better allocation exists — only that this re-derivation agrees or disagrees with what was chosen.",
            "item": "Optimality of the caller's allocation"
          },
          {
            "detail": "ADR_DIVERGENT records that the chosen allocation is not explained by the declared objective and inputs. It never characterises why: a trader override, an undeclared constraint and a stale snapshot are all consistent with the same flag.",
            "item": "Intent"
          }
        ],
        "objective": "cheapest_to_deliver",
        "obligation": {
          "amount": "1000000.00",
          "positive": true
        },
        "obligation_ref": "OBL-DEMO-01",
        "rationale": [
          "Objective \"cheapest_to_deliver\" was re-derived against 2 eligible inventory items using this kernel's fixed greedy rule for that objective.",
          "The declared eligibility schedule, inventory snapshot and obligation amount were sufficient to attempt a re-derivation.",
          "The chosen allocation exactly matches this kernel's re-derivation of the declared objective over the declared inputs.",
          "This kernel re-derives one candidate allocation using a fixed, published rule. It is not a competing optimizer and does not claim the re-derived allocation is better than the one chosen."
        ],
        "reproducibility": {
          "chosen_allocation": [
            {
              "amount": "600000.00",
              "asset_id": "A2"
            },
            {
              "amount": "400000.00",
              "asset_id": "A1"
            }
          ],
          "obligation_covered_by_chosen": true,
          "obligation_covered_by_optimal": true,
          "optimal_allocation": [
            {
              "amount": "600000.00",
              "asset_id": "A2"
            },
            {
              "amount": "400000.00",
              "asset_id": "A1"
            }
          ],
          "verdict": "ADR_REPRODUCED"
        },
        "rounding": {
          "decimal_places": 2,
          "mode": "half_up"
        }
      }
    }
  },
  "deadline": null,
  "deadline_note": "No statutory deadline. The eligibility schedule, inventory snapshot, haircut table version and objective are every one of them a caller input, because a bundled version of any of them would be a standing duty that goes silently false when the terms change."
},
    {
  "tool_id": "art-516-daily-reconciliation-attestation",
  "tool_version": "1.0.0",
  "display_name": "Daily Reconciliation Attestation",
  "mcp_name": "attest_daily_reconciliation",
  "mandate_type": "attestation_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-516-daily-reconciliation-attestation.html",
  "description": "Attests that a daily reconciliation duty was discharged over a caller-declared population, rather than computing the reconciliation match itself. Checks population completeness in both count and value (declared population vs matched+unmatched+partially-matched), ages open exceptions against a caller-declared tolerance, and diffs the current exception list against the prior period's carried-forward exception set to detect an exception that disappeared without a documented resolution. Where the prior-period exception set is not supplied at all, continuity is reported as unverifiable rather than falsely clean. Region-portable: every fact is a caller-declared input, with no country, currency, or scheme hardcoded. Deterministic arithmetic only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-516-daily-reconciliation-attestation.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:cd7f7a7436413bdff06e19d14156760a6a8401f9e48a936fa26a9e3b60b6a3d8",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Lj4vchaRV3SPB4/sz3PL/2Cku49eZTBebRKpx0et6SsaD1aNNB8+vaProffEe7V9M1UNg2XvO8xEg5R9DgZGZRe4YiYJwraoCax7GCRvwcU2b9H2r1v+CcItONTPYUc7ElpcVsk4DM6EszjAhGoPY0Z/NOfwAjzOQ4opSpNgI6goveeCI9ZDnvWm51WPnrQG3Qgth1h088Dea5Z6q5Y8HCBos1wh5so4GhBqvz83/6955vWakPlrwGrbfgOfXgd8Lsj5/W9yemOcxOigj61G2LRxQw0nbUqpQf24kFe7KhEezn1fYqR55T7Y5ExCa7f1I5XfhUmFi+Zg1+b1QRz8jw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:cd7f7a7436413bdff06e19d14156760a6a8401f9e48a936fa26a9e3b60b6a3d8",
      "output": {
        "aged_exception_count": 0,
        "ageing_tolerance_days": 5,
        "as_of": "2026-07-31",
        "attested": false,
        "continuity_verifiable": true,
        "count_break": 0,
        "currency": "USD",
        "declared_control_total_display": "50000.00",
        "declared_control_total_minor_units": 5000000,
        "declared_record_count": 1000,
        "documented_resolutions": [
          {
            "exception_id": "EXC-0000",
            "resolution_reason": "matched in overnight batch, evidenced by settlement confirmation SC-2026-0725-11"
          }
        ],
        "exception_count": 2,
        "exceptions": [
          {
            "age_days": 2,
            "aged": false,
            "amount_display": "600.00",
            "amount_minor_units": 60000,
            "exception_id": "EXC-0001",
            "opened_date": "2026-07-29",
            "reason_code": "timing_difference"
          },
          {
            "age_days": 1,
            "aged": false,
            "amount_display": "400.00",
            "amount_minor_units": 40000,
            "exception_id": "EXC-0002",
            "opened_date": "2026-07-30",
            "reason_code": "duplicate_submission"
          }
        ],
        "has_unexplained_difference": true,
        "matched": {
          "record_count": 970,
          "total_minor_units": 4850000
        },
        "note": "Deterministic daily reconciliation attestation over a caller-supplied population, matched/unmatched/partial breakdown, exception list, and prior-period exception set. It attests that the daily reconciliation duty was discharged -- population completeness in count and value, exception ageing against a declared tolerance, and carried-forward exception continuity -- rather than performing the underlying transaction match itself.",
        "partially_matched": {
          "record_count": 10,
          "total_minor_units": 50000
        },
        "population_complete": true,
        "population_count_complete": true,
        "population_value_complete": true,
        "prior_period_exception_count": 1,
        "rationale": [
          "Declared population: 1000 records, control total 50000.00 USD. Reconciled (matched+unmatched+partial): 1000 records, 50000.00 USD.",
          "Population reconciles to the declared count and value.",
          "Continuity evaluated against 1 prior-period exception: 0 vanished without a documented resolution, 1 closed with one.",
          "-1000.00 USD of the value break is not accounted for by the declared exception list.",
          "This is an arithmetic attestation over the figures supplied for this cycle. It does not itself perform the reconciliation match and is not a determination that any underlying control has or has not been met."
        ],
        "reconciled_record_count": 1000,
        "reconciled_value_display": "50000.00",
        "reconciled_value_minor_units": 5000000,
        "reconciliation_date": "2026-07-31",
        "rejected_inputs": [],
        "unexplained_difference_display": "-1000.00",
        "unexplained_difference_minor_units": -100000,
        "unexplained_exception_total_minor_units": 100000,
        "unmatched": {
          "record_count": 20,
          "total_minor_units": 100000
        },
        "value_break_display": "0.00",
        "value_break_minor_units": 0,
        "vanished_exception_count": 0,
        "vanished_exceptions": []
      }
    }
  }
},
    {
  "tool_id": "art-517-audit-trail-completeness",
  "tool_version": "1.0.0",
  "display_name": "Audit-Trail Completeness Attestation",
  "mcp_name": "validate_audit_trail_completeness",
  "mandate_type": "compliance_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-517-audit-trail-completeness.html",
  "description": "Attests that an audit log covering transactions and user activity is complete and gap-free over a caller-declared window, against a caller-declared continuity mechanism: sequence numbers, hash-chain links, or periodic control totals. Enumerates gap position where the mechanism can localize one, reports privileged-action coverage separately from transaction coverage (a trail that logs transactions but not administrator actions fails the 'and user activities' requirement explicitly), checks retention conformance, and reports an undecidable list where the declared mechanism cannot support a position-level verdict (control totals confirm a period is short but cannot localize which event is missing). No log ingestion, no vendor log format parsing -- the caller supplies counts and the declared mechanism only. Zero PII: users are role classes and opaque refs, never a username, email, or IP. Region-portable: window, retention requirement, and mechanism are entirely caller-declared inputs, with no country, currency, scheme, or statute hardcoded. Disambiguation: art-237-validate-agent-audit-trail validates the field structure of one IETF AAT agent-to-agent record; cry-05-agent-action-audit-trail-aggregator builds a Merkle root over this suite's own execution receipts. Neither evaluates a window, detects a gap across a population of external log events, or checks privileged-action coverage -- that is this node.",
  "input_schema_ref": "chaingraph/art-517-audit-trail-completeness.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:10ff11fc5e0034422df62658e0ca6d0c810e4f3a171d94f3a5be120cf5dfec41","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-01"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JZ6qO4w82X1eEYcDY1OB+1LBpHGjwGvA70QHGVcdTtIi1V2sTDlLCX3du5oo04wcrNmiLxrrHJlwXkKnHSWaczAuiS5XreuhPXBRSHNBLi7amksYkK3hboDv+luPPoLGBaOUeATcF1QV/9XXVVEYRwevwtaJbIHZqiyuEmXYAB4nVjPt1FvgTNLL+SoYrrCw8UPe+zKXATMo9Fv6FGLz1SXKlO9fl2clpoX/5lX8keorFx0YxEqQ1NWkktETZlTdGYpO3UL1eRZY+9bZUjTA8fmjdB87qOFzV0AhwL7d4PYVeWZZyMA4iVugjrztkzOvv30jKZazw/6CtMXtkPlkfg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:10ff11fc5e0034422df62658e0ca6d0c810e4f3a171d94f3a5be120cf5dfec41",
      "output": {
        "continuity_mechanism": "sequence_number",
        "continuity_verdict": "CONTINUOUS",
        "event_counts_by_type": {
          "privileged_action": 12,
          "transaction": 850,
          "user_activity": 140
        },
        "gap_count": 0,
        "gaps": [],
        "known_gap_candidates_reconciled": [],
        "privileged_action_coverage": {
          "covered": true,
          "privileged_events_logged": 12,
          "transaction_events_logged": 850
        },
        "regulatory_basis": "RFP CDGPSS202601 §4.5 (audit trails for transactions and user activities, generalised); portable to any regime declaring an audit-trail continuity and retention duty (e.g. EU DORA Art 15 / RTS ICT-related incident record-keeping) via caller-supplied inputs only",
        "retention_conformance": {
          "conforms": true,
          "declared_days": 120,
          "required_days": 90
        },
        "table_version": "AUDIT-TRAIL-COMPLETENESS-2026",
        "undecidable": [],
        "window_end": "2026-07-01T23:59:59Z",
        "window_start": "2026-07-01T00:00:00Z"
      }
    }
  }
},
    {
  "tool_id": "art-518-bulk-disbursement-integrity",
  "tool_version": "1.0.0",
  "display_name": "Bulk Disbursement Integrity",
  "mcp_name": "attest_bulk_disbursement_integrity",
  "mandate_type": "attestation_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-518-bulk-disbursement-integrity.html",
  "description": "Attests that a bulk payment run -- salaries, pensions, social transfers, vendor payments -- is internally consistent and matches its authorization. Reconciles per-payee records against the authorized control total in both count and value, surfaces duplicate-candidate clusters by a caller-supplied opaque key, reports payee roster movement against the prior run, and flags limit breaches including split-payment candidates (multiple sub-limit payments to one payee ref summing past a declared limit) and destination-tier cap breaches (a payment authorized and funded but unable to land because the destination wallet is at its KYC-tier balance cap). Duplicate, split, and cap-breach flags are candidates for review, never findings of fraud or misconduct. Region-portable: every fact is a caller-declared input, with no country, currency, or scheme hardcoded. Deterministic arithmetic only. Zero network, zero PII -- payee is an opaque ref plus an amount and a rail.",
  "input_schema_ref": "chaingraph/art-518-bulk-disbursement-integrity.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:3c590d0a9987e270cb032c31ba74642ab9a7f3dab1f9fd32eca587058484bfba","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-01"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "I0H0gPHYiHXnDQzQmJg0hTob69w8IDEyXqa9GmGD79QjZ1YjHoXX1jiAcHy1rUE7x6I/Cw/z1z8oRWa2IGH0hh+aoChVi0odnge4BH5MvoXltLmqZvRNyT2qeAKrNhOGJvLOBSBY58SPiGH/SC4f8LtLL4VroNgeFyfq7hpD2ycTpIs1b4JW50Ca0LclLWLv+4lxP0zdSo+90kxhiKn1UAqzPFcm1M90x0aTLnSR+BX9OqTwBgsdm6kXXWOESOvbDVb5qpSPA5TwxJcnSpps3t++7ABf3skqr/L7eUmpPpQZ+7QrVMn9qEK0DoppMrofTRjn7Ej7l91An20elzi/IQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3c590d0a9987e270cb032c31ba74642ab9a7f3dab1f9fd32eca587058484bfba",
      "output": {
        "absent_this_run": [],
        "as_of": "2026-07-31",
        "authorized_payee_count": 4,
        "authorized_total_display": "4000.00",
        "authorized_total_minor_units": 400000,
        "control_total_reconciled": true,
        "count_break": 0,
        "currency": "USD",
        "declared_exclusions": [],
        "destination_cap_breaches": [],
        "duplicate_candidate_cluster_count": 0,
        "duplicate_candidate_clusters": [],
        "has_destination_cap_breach": false,
        "has_limit_breach": false,
        "has_roster_movement": false,
        "limit_breaches": [],
        "new_this_run": [],
        "note": "Deterministic bulk disbursement integrity attestation over a caller-supplied authorization, per-payee record set, declared exclusions, and prior-run roster. Attests control-total reconciliation in count and value, surfaces duplicate-candidate clusters and split-payment candidates by the caller's own opaque keys, and reports roster movement -- all as candidates and observations for a human reviewer, never as findings of fraud, misconduct, or ineligible beneficiaries.",
        "per_payee_limit_minor_units": 150000,
        "per_run_limit_breach": null,
        "per_run_limit_minor_units": 1000000,
        "prior_run_payee_count": 4,
        "rationale": [
          "Authorized: 4 payees, 4000.00 USD. Run records: 4 payees, 4000.00 USD.",
          "Run reconciles to the authorized control total in both count and value.",
          "No payee records share a caller-declared duplicate-candidate key.",
          "No payee received multiple sub-limit payments summing past the declared per-payee limit.",
          "No payee exceeds a declared destination-tier balance cap.",
          "Roster compared against 4 prior-run payee ref(s): 0 new this run, 0 absent this run. This is movement to be explained, not an accusation.",
          "This is an arithmetic attestation over the figures supplied for this run. It does not itself investigate any payee, and no flag here is a determination of fraud, misconduct, or an ineligible beneficiary."
        ],
        "reconciled_record_count": 4,
        "reconciled_total_display": "4000.00",
        "reconciled_total_minor_units": 400000,
        "rejected_inputs": [],
        "roster_movement_verifiable": true,
        "run_reference": "RUN-2026-07-31-PENSION",
        "split_payment_candidates": [],
        "value_break_display": "0.00",
        "value_break_minor_units": 0
      }
    }
  }
},
    {
  "tool_id": "art-519-payment-data-migration-completeness",
  "tool_version": "1.0.0",
  "display_name": "Payment Data Migration Completeness",
  "mcp_name": "verify_migration_completeness",
  "mandate_type": "attestation_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-519-payment-data-migration-completeness.html",
  "description": "Verifies that data moved from a legacy system to a successor is complete, value-preserving, and reconcilable, using caller-declared per-partition source and target record counts and control totals rather than reading any dataset. Checks each declared partition for count and value completeness against a declared tolerance and known exclusions, and separately checks the aggregate (the sum of every partition) against the individual partitions -- a grand total that reconciles while one or more partitions underneath do not is flagged as the inconsistency it is, not passed silently. Also checks transformation coverage (fields observed to change value with no declared transformation rule) and flags any partition verified by sampling only as a residual-risk statement, never as equivalent to a full completeness verdict. Region-portable: every fact is a caller-declared input, with no country, currency, agency, or rail hardcoded. Deterministic arithmetic only. Zero data ingestion, zero PII.",
  "input_schema_ref": "chaingraph/art-519-payment-data-migration-completeness.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d9e4f0984fd3d85463ece41f052a47bf3b98fed2df72e38ab131273cacd5d587",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IayhBMIZghIXpHNBnax5guNGDTXKcbpMdWG86CFK0K0SjnxmkrplkZTg5BtRE8RwmvVpoBmplBz/osDS0DHMbS4xVYLFLt9fCLgf60c/we38Tj8/PNakKyywLC45cS8qBj/sovG0UBbZ5MjKQJS3cAmNFOtY69cB4gEjobVMDH0RPdo02D2gB2KRPLmVQem834DnS5d9y9tu5OUTfDFGpi/OvRyj7zKlCIfwIAy8LAFm2+kk0hP4NiKYcemsUAzkGZGYtIHVnFqaYd5DB0isfQDSO+tabNCuHC9szH3MGCsBB2i24T0MKoUAEigQZRgjytfFwPMQTeE59YHy4ZzL9Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d9e4f0984fd3d85463ece41f052a47bf3b98fed2df72e38ab131273cacd5d587",
      "output": {
        "aggregate_complete": true,
        "aggregate_count_variance": 0,
        "aggregate_value_variance_display": "0.00",
        "aggregate_value_variance_minor_units": 0,
        "all_partitions_complete": true,
        "any_sampled_only": false,
        "as_of": "2026-07-31",
        "currency": "PAGES",
        "declared_transformation_rules": [],
        "migration_complete": true,
        "migration_id": "MIGR-2026-CASEDOCS-01",
        "note": "Deterministic payment data migration completeness verifier over caller-declared per-partition source/target record counts and control totals, known exclusions with reasons, declared transformation rules, and observed changed fields. Checks per-partition and aggregate-vs-partition completeness (a reconciling aggregate over broken partitions is the finding), transformation coverage, and flags any partition verified by sampling only as a residual-risk statement rather than a completeness verdict. Never reads a source or target dataset.",
        "observed_changed_field_count": 0,
        "partition_count": 2,
        "partition_inconsistent": false,
        "partitions": [
          {
            "count_complete": true,
            "count_variance": 0,
            "excluded_record_count": 5,
            "excluded_value_display": "15.00",
            "excluded_value_minor_units": 1500,
            "expected_target_record_count": 3995,
            "expected_target_value_display": "12485.00",
            "expected_target_value_minor_units": 1248500,
            "known_exclusions": [
              {
                "excluded_record_count": 5,
                "excluded_value_display": "15.00",
                "excluded_value_minor_units": 1500,
                "reason_code": "duplicate_scan_deduplicated_pre_migration"
              }
            ],
            "partition_complete": true,
            "partition_label": "CONTRACTS",
            "sample_discrepancies_found": 0,
            "sample_size": 0,
            "sampled": false,
            "source_control_total_display": "12500.00",
            "source_control_total_minor_units": 1250000,
            "source_record_count": 4000,
            "target_control_total_display": "12485.00",
            "target_control_total_minor_units": 1248500,
            "target_record_count": 3995,
            "value_complete": true,
            "value_variance_display": "0.00",
            "value_variance_minor_units": 0
          },
          {
            "count_complete": true,
            "count_variance": 0,
            "excluded_record_count": 0,
            "excluded_value_display": "0.00",
            "excluded_value_minor_units": 0,
            "expected_target_record_count": 8000,
            "expected_target_value_display": "9600.00",
            "expected_target_value_minor_units": 960000,
            "known_exclusions": [],
            "partition_complete": true,
            "partition_label": "CORRESPONDENCE",
            "sample_discrepancies_found": 0,
            "sample_size": 0,
            "sampled": false,
            "source_control_total_display": "9600.00",
            "source_control_total_minor_units": 960000,
            "source_record_count": 8000,
            "target_control_total_display": "9600.00",
            "target_control_total_minor_units": 960000,
            "target_record_count": 8000,
            "value_complete": true,
            "value_variance_display": "0.00",
            "value_variance_minor_units": 0
          }
        ],
        "partitions_with_variance_count": 0,
        "rationale": [
          "2 declared partitions evaluated; 2 of 2 reconcile in both count and value within the declared 0.00 PAGES tolerance.",
          "Aggregate (sum of declared partitions) reconciles: count variance 0, value variance 0.00 PAGES.",
          "This is a deterministic reconciliation over caller-declared source/target counts and control totals. It does not read the source or target dataset and is not a determination that any underlying data quality control has been met."
        ],
        "reconciliation_tolerance_minor_units": 0,
        "rejected_inputs": [],
        "sample_discrepancies_total": 0,
        "sampled_partition_count": 0,
        "undeclared_transformed_fields": []
      }
    }
  }
},
    {
  "tool_id": "art-520-operator-exit-data-portability",
  "tool_version": "1.0.0",
  "display_name": "Operator Exit & Data Portability",
  "mcp_name": "check_operator_exit_portability",
  "mandate_type": "attestation_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-520-operator-exit-data-portability.html",
  "description": "Evaluates a caller-declared operator-exit and data-portability posture: per data category, whether an export path exists and whether its format is open or proprietary, producing a stranded-category list rather than a coverage ratio. Checks declared operator- versus supplier-control of named components and flags a contractual-operator claim unsupported by that declared control, single-supplier dependencies with no declared substitute, escrow arrangements, and notice period / transition-assistance terms. Undeclared is a distinct, non-failing state from an explicit negative declaration throughout. Evaluates declarations only -- never a supplier audit, vendor rating, or enforceability opinion, and no output names or characterises a supplier. Region-portable: every fact is a caller-declared input, with no country, currency, scheme or supplier hardcoded. Deterministic arithmetic only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-520-operator-exit-data-portability.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:f788f6feb29648cf1c09156f55bc79fa0da7511e5ce55547e00b893c8f6e826b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "D4Ix0Ycz0uf2uWpls4oOriPBYLK9tSxFvSfbPnmaw2UqbdD5FZyONaf2mgyqNdEcTw9RNZxMte09fvpUORkWtQZWOKLuLNWrCR93+OB/xxwuGNLtY00k7ei8UrpbsYxYCTCrVUUjfCwMruIZpl8GRlg3I6A0I6Zd1ovovbweB4sPS6GOvhWQIgPVsUsUXqrqbjyo+wKhWxedolQo6v+YsRsB1Qo14Kbv4D30gJhoSjgM8XFl6yqAHiT5iRgmRkm6DNmv9WGRY7LLZocnCo0SuT4XOBID+VnMarVVjme99SYJvvZ3fnMGQjZJ3F2FigJBxCYcicSAV0EjHljJvM3ldA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f788f6feb29648cf1c09156f55bc79fa0da7511e5ce55547e00b893c8f6e826b",
      "output": {
        "as_of": "2026-08-01",
        "categories": [
          {
            "category": "transaction_ledger",
            "export_cadence": "daily",
            "export_exists": "true",
            "format": "csv",
            "format_open": "true",
            "last_successful_export": "2026-07-31",
            "verdict": "PORTABLE"
          },
          {
            "category": "customer_account_master",
            "export_cadence": "weekly",
            "export_exists": "true",
            "format": "json",
            "format_open": "true",
            "last_successful_export": "2026-07-28",
            "verdict": "PORTABLE"
          }
        ],
        "category_count": 2,
        "components": [
          {
            "controlled_by": "operator",
            "name": "core_ledger_engine"
          },
          {
            "controlled_by": "operator",
            "name": "reporting_warehouse"
          }
        ],
        "contractual_operator": "true",
        "declared_component_count": 2,
        "dependencies": [
          {
            "name": "clearing_network_access",
            "single_supplier": "false",
            "substitutable": "true"
          }
        ],
        "escrow_description": "source escrow held by a third-party agent",
        "escrow_exists": "true",
        "exit_readiness_exceptions": [],
        "note": "Deterministic evaluation of a caller-declared operator-exit and data-portability posture: per-category export/format portability with a stranded-category list, declared operator- vs supplier-control of named components (with an unsupported-operator-claim check), single-supplier dependencies with no declared substitute, escrow declaration, and notice/transition terms. Evaluates declarations only -- never a supplier audit, rating, or enforceability opinion.",
        "notice_period_days": 180,
        "notice_period_declared": true,
        "operator_claim_unsupported": false,
        "operator_control_ratio_declared": "2/2",
        "operator_controlled_count": 2,
        "portable": true,
        "proprietary_format_categories": [],
        "rationale": [
          "2 declared data categories: 0 stranded (no export path), 0 portable in a proprietary format, 0 with export status or format openness undeclared.",
          "No stranded categories declared.",
          "Operator-control ratio as declared: 2/2 of definitively-declared components (0 undeclared).",
          "Escrow arrangement declared.",
          "This evaluates the declared exit posture only. It does not audit a supplier, rate a vendor, or opine on contract enforceability."
        ],
        "rejected_inputs": [],
        "single_supplier_no_substitute": [],
        "stranded_categories": [],
        "stranded_category_count": 0,
        "supplier_controlled_count": 0,
        "transition_assistance_declared": true,
        "transition_assistance_terms": "180 days of vendor-supplied migration support per the exit schedule",
        "undeclared_categories": [],
        "undeclared_component_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-521-settlement-asset-backing-invariant",
  "tool_version": "1.0.0",
  "display_name": "Settlement-Asset Backing Invariant",
  "mcp_name": "verify_settlement_asset_backing",
  "mandate_type": "compliance_mandate",
  "wave": 80,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-521-settlement-asset-backing-invariant.html",
  "description": "Checks whether value held across an issuance topology stays fully backed in aggregate, not merely per account, as balances move between caller-declared buffers. The caller names each buffer (its role, asset type, and what it backs), declares a backing-ratio requirement, per-buffer floor and ceiling, and a movement set. Evaluates the aggregate backing verdict before and after the declared movements, per-buffer floor/ceiling breaches, the thinnest safe margin per buffer, declared idle-balance cost versus declared crossing cost, and the specific movement that first breaks the invariant. Settlement-asset agnostic: the same kernel runs unchanged for centrally-issued digital cash, pooled-account-backed digital cash, and a reserve-backed stablecoin, demonstrated on fixtures with zero kernel difference. Does not sweep, net, or attest reserves, and issues no recommendation to move money.",
  "input_schema_ref": "chaingraph/art-521-settlement-asset-backing-invariant.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:2c62975ee6e29f7fd6568274a00305cd6d0043e1c89119d37e1e5d16ce3371ef","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-01"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FQeAgCGnSV1eoklPvd7IDhJJUhjlA9o5KeVGq3F2y2YSbNJWOM/oFob8AO5TvJWuTIc/Yiyz0ppLgcTl9dee1SEnop4gP4IH72Tp2IF+YsalSisdSARf8eC6KKbTpKy5HdcjQY1yuWxIIZXQzzeTz5dorOLxSRIT+W+Dh0XBuEgI0EbONjedgFQ6XWWZvmmyoR42SnrkJfWHJxCf3+WWlwCxtdkQ9LlH84hwEMpIbRFQOcNEnvoz1ucwpkhY8IOHAQIwQoUF0Fwz1lt7Qdjb35jXrqg8+WhGxtDsXOLW5kMHPTeondLoWO5auBN+mSVyVBwlV/q1UvP4BjHjqoaBoQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2c62975ee6e29f7fd6568274a00305cd6d0043e1c89119d37e1e5d16ce3371ef",
      "output": {
        "aggregate_backing_after_display": "102000.00",
        "aggregate_backing_after_minor_units": 10200000,
        "aggregate_backing_before_display": "102000.00",
        "aggregate_backing_before_minor_units": 10200000,
        "as_of": "2026-08-01",
        "backing_applicable": true,
        "backing_intact_after": true,
        "backing_intact_before": true,
        "backing_model": "segregated",
        "backing_ratio_bps": 10000,
        "breaches_after": [],
        "breaches_before": [],
        "buffer_count": 3,
        "buffer_margins": [
          {
            "buffer_id": "buffer-backing",
            "safe_margin_minor_units": 4800000
          },
          {
            "buffer_id": "buffer-payout",
            "safe_margin_minor_units": 3900000
          },
          {
            "buffer_id": "buffer-issuance",
            "safe_margin_minor_units": 700000
          }
        ],
        "buffers": [
          {
            "asset_type": "conventional-asset",
            "backs": "circulation",
            "balance_after_minor_units": 5800000,
            "balance_before_minor_units": 6000000,
            "buffer_id": "buffer-backing",
            "max_minor_units": null,
            "min_minor_units": 1000000,
            "role": "backing_account"
          },
          {
            "asset_type": "settlement-asset",
            "backs": "circulation",
            "balance_after_minor_units": 4400000,
            "balance_before_minor_units": 4200000,
            "buffer_id": "buffer-payout",
            "max_minor_units": 8000000,
            "min_minor_units": 500000,
            "role": "payout_buffer"
          },
          {
            "asset_type": "settlement-asset",
            "backs": "new_issuance",
            "balance_after_minor_units": 900000,
            "balance_before_minor_units": 900000,
            "buffer_id": "buffer-issuance",
            "max_minor_units": null,
            "min_minor_units": 200000,
            "role": "settlement_balance"
          }
        ],
        "crossing_cost_display": "15.00",
        "crossing_cost_minor_units": 1500,
        "crossing_count": 1,
        "idle_amount_minor_units": 9400000,
        "idle_cost_display": "470.00",
        "idle_cost_minor_units": 47000,
        "movement_breaks_invariant": null,
        "movements": [
          {
            "amount_minor_units": 200000,
            "applied": true,
            "external_crossing": true,
            "from": "buffer-backing",
            "movement_id": "MOVE-1",
            "to": "buffer-payout"
          }
        ],
        "note": "Deterministic aggregate settlement-asset backing invariant check over caller-declared buffers, backing ratio, value in circulation, and a declared movement set. Verifies the AGGREGATE composition of the buffer set before and after the declared movements, not merely per-account totals or their grand sum. Settlement-asset agnostic: no currency, scheme, country, or issuer is named in this kernel. It performs no sweep, no netting, no reserve attestation, and issues no recommendation to move money. The caller declares backing_model (\"segregated\", default, or \"vacuous\" for a direct/two-tier CBDC with no backing set); the kernel never infers this from the buffer count, and BACKING_NOT_APPLICABLE is a defined non-pass answer, not BACKING_INTACT.",
        "rationale": [
          "3 declared buffers; aggregate circulation-backing 102000.00 before movements, required 100000.00 at a 10000 bps ratio against 100000.00 in circulation.",
          "Backing was intact before the declared movements.",
          "After 1 applied movement, aggregate circulation-backing is 102000.00.",
          "Backing remains intact after the declared movements.",
          "This is an arithmetic check over declared balances and declared movements. It proves nothing about whether those declarations match any external ledger, and it recommends no action."
        ],
        "rejected_inputs": [],
        "required_backing_display": "100000.00",
        "required_backing_minor_units": 10000000,
        "thinnest_buffer": {
          "buffer_id": "buffer-issuance",
          "safe_margin_minor_units": 700000
        },
        "value_in_circulation_display": "100000.00",
        "value_in_circulation_minor_units": 10000000
      }
    }
  }
},
    {
  "tool_id": "art-523-identity-proofing-assurance-level",
  "tool_version": "1.0.0",
  "display_name": "Identity-Proofing Assurance Level Evaluator",
  "mcp_name": "compute_identity_proofing_assurance_level",
  "mandate_type": "regulatory_reporting",
  "wave": 72,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-523-identity-proofing-assurance-level.html",
  "description": "Rates whether a DECLARED identity-evidence set reaches a DECLARED target level of a caller-supplied, versioned assurance-level framework (the art-444 policy-input pattern) -- never a hardcoded framework such as NIST 800-63-3 or eIDAS. The level definition supplies levels ordered lowest-to-highest rigor, each with criteria naming a required evidence type and a numeric min_strength on a caller-normalized 0-100 scale; the kernel never interprets a framework's own named tiers. A criterion the definition cannot express (no required_evidence_type or no min_strength) is flagged IAL_DEFINITION_INSUFFICIENT, distinct from IAL_SHORTFALL (evidence present but not meeting a well-formed criterion) -- the two are never conflated. When the target level is not met, achieved level falls back to the highest fully-met level below it. This node rates an evidence set against a declared policy; it does NOT assert that a person is who they claim to be, and no output or copy implies verification of a natural person. No identity attributes are ever computed over -- evidence items are types, strengths and verification methods, with an optional opaque attribute reference (caller-supplied, no commitment scheme claimed by this node) carried through unread, never a plaintext value. No approver identity, signature, approval field or role -- manual review/EDD escalation is a separate signed §27 human_accountability_record, not minted by this kernel. This is the assurance-LEVEL evaluator specifically, distinct from any private-check-receipt evidencing scheme or a re-verification-cadence evaluator (neither built in this exercise). Not 490-eudi-kyc-flow-designer (an eIDAS/LoA-specific flow-design tool) -- this is framework-agnostic by construction and takes any structurally-expressible level definition as a policy input, with no dependency on any named jurisdiction or procurement.",
  "input_schema_ref": "chaingraph/art-523-identity-proofing-assurance-level.html#manifest",
  "deadline": null,
  "deadline_note": "An ongoing identity-assurance evidencing capability, jurisdiction-neutral by design -- every regime fact is a caller-supplied policy input, so there is no filing deadline of its own.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:f691517dd02006a5787bea91055d22c567fb6049e1f3d15c3bb2a474032cd335",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-01"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EChOWFKr39lwrZ8zEWd2aolUizs6sdRVHlGBlEY1xy8GXoiW4a4QGEqr54RKvuHW2aftEDCROnVboOzjx0gpwCMgrlPdC2lOSqzeiS1JowpOxrv7TThlmg5JzM6RLip3Ac5sczD0Pxl+IM+6DmSYew2kHfeTvtDl98TN/iQ0wZYkl06v3AolQYz0Fe8e1cl20+UFzbUXlANJSR65VfOAZh3JuAxWUrH3PbAtorJ/tbuy+onJDCMp8+WHMatav6CwIvrdLTqKhsUvTOcR07kxD60onHR7T32nlji07ZHGTisq3cqVbtylDVSR1FVCSCzaGzmTy9HUot8HM4dthNe2ZA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f691517dd02006a5787bea91055d22c567fb6049e1f3d15c3bb2a474032cd335",
      "output": {
        "achieved_level": "tier-2",
        "as_of": "2026-08-01",
        "criteria_evaluated": 2,
        "criteria_met": 2,
        "criteria_shortfall_count": 0,
        "criteria_undecidable_count": 0,
        "declared_target_level": "tier-2",
        "evidence_item_count": 2,
        "framework_id": "vendor-framework-A-tiers",
        "framework_version": "2026-01",
        "levels_defined": 3,
        "note": "Rates a DECLARED evidence set against a caller-supplied, versioned assurance-level framework -- never a hardcoded one. Does not assert a person is who they claim to be: this evidences that a declared evidence set was measured against a declared policy, not the truth of the declarations. A criterion the definition cannot express (no required_evidence_type or no min_strength) is reported as IAL_DEFINITION_INSUFFICIENT, distinct from IAL_SHORTFALL (evidence present but not meeting a well-formed criterion) -- the two are never conflated. No identity attributes are ever computed over; evidence items are types, strengths and verification methods, with an optional opaque attribute reference (caller-supplied, no commitment scheme claimed by this node) carried through unread.",
        "shortfall": [],
        "target_level_found": true,
        "target_met": true,
        "undecidable": []
      }
    }
  }
},
    {
  "tool_id": "art-524-source-arrival-freshness-register",
  "tool_version": "1.0.0",
  "display_name": "Source Arrival & Freshness Register",
  "mcp_name": "register_source_arrival_freshness",
  "mandate_type": "compliance_control",
  "wave": 81,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-524-source-arrival-freshness-register.html",
  "description": "Reconciles a caller-declared EXPECTED-source inventory against caller-declared OBSERVED arrivals, per source: arrived, missing, late (arrived after its declared expected-as-of), or stale (arrived but older than its declared freshness threshold relative to a declared reference-as-of). The expected inventory is always an independently supplied caller input, never derived from the observed set -- a register that only counts what showed up cannot tell 'nothing broke' from 'a whole source never arrived,' and closing that blind spot is this node's purpose. If no expected-source inventory is declared, the node refuses to report on arrivals alone and emits a did-not-run execution state instead of a degraded pass. All sources current yields auto_pass; any late-but-present source yields review_required (which routes to an exception step, never a human blocker); any missing expected source yields reject; an observed arrival supplied with no as-of yields a ran-stale execution state rather than a guessed decision. Deterministic reconciliation arithmetic only, no clock, no network, zero PII. Not a log tailer: completeness is measured against the declared expected inventory, never the extract's own self-reported arrivals. Clause: GAO-25-107721 SS13.07 (currency as an attribute of the information itself); ECB RDARR Guide (May 2024) SS3.5(1) (timeliness).",
  "input_schema_ref": "chaingraph/art-524-source-arrival-freshness-register.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:27d4e48514eb2b1eed2231094e43e116be6b1457bbd2be49c4c5eca810550c64",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FbkDecvFJdE/F6jC6uy6p4ET+2djUMjcYDudhN0y3BYfEBRPJgDWD3AzLsoGu8Pxfj/6yebLiYi5dFnmPfbRtSMcy6J7eXVZaaUlpIXR4z5uWBj5acO65OowqO2GZIjmCJqkBWXrZZG7TIagDmGOlcFgtL8XXS1z1T2LZ58HpDUJ6bM7Zy1wfOaKYCwJu1e5EnPHywMcteUfdPhChoxmdBU9Yb2/H0vijn600AglxGupTh7gg0l+2Q0IeE0CNfYBH1ApUibzX9FYjPGzxwyafCpX/856oyzTj/JA7SqDZBID4e5xxA0LUSS/SbxZ69XR1h/HqII1mW02AtOcTdskrQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:27d4e48514eb2b1eed2231094e43e116be6b1457bbd2be49c4c5eca810550c64",
      "output": {
        "decision": "auto_pass",
        "execution_state": "ran",
        "late_or_stale_sources": [],
        "missing_sources": [],
        "reason": null,
        "source_count": 2,
        "sources": [
          {
            "arrived": true,
            "expected_as_of": 990,
            "freshness_threshold_hours": 50,
            "late": false,
            "observed_as_of": 980,
            "source_id": "core-ledger-extract",
            "source_status": "current",
            "stale": false
          },
          {
            "arrived": true,
            "expected_as_of": 995,
            "freshness_threshold_hours": 50,
            "late": false,
            "observed_as_of": 985,
            "source_id": "trade-blotter-feed",
            "source_status": "current",
            "stale": false
          }
        ],
        "unknown_freshness_sources": []
      }
    }
  }
},
    {
  "tool_id": "art-525-nway-balance-closure-check",
  "tool_version": "1.0.0",
  "display_name": "N-Way Balance Closure Check",
  "mcp_name": "check_nway_balance_closure",
  "mandate_type": "compliance_control",
  "wave": 81,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-525-nway-balance-closure-check.html",
  "description": "Takes three or more caller-declared balances for the same measure, at the same as-of moment, across named internal systems, and ENFORCES the arithmetic closure identity (A minus B) plus (B minus C) equals (A minus C) within a caller-declared tolerance. Reports every pairwise difference, the closure residual for every triple, which pair carries the break, and which system is the single consistent explanation for all breaking pairs. This is not a fourth balance display: three pairwise tables enforce nothing across each other, because the third difference is fully determined by the other two, and the residual is the test a dashboard leaves to a human. Where a firm already reconciles hop by hop, each hop's own reconciled difference can be declared as an independent input, and the node then checks that those hops close against each other and agree with the declared balances. Tolerance is always a declared input, never defaulted, since an unstated tolerance turns every rounding difference into a break. Residual within tolerance yields auto_pass; outside tolerance, or a pairwise break, or a declared hop that disagrees with the balances, yields review_required, which routes to an exception step and never blocks. Balances at differing or undeclared as-of moments yield a ran-stale execution state; fewer than three systems, an undeclared tolerance, or no designated authoritative system yields a did-not-run execution state rather than a degraded pass. Balances, hop differences and the tolerance are integer minor units, so the arithmetic is exact. Scoped to internal system-boundary hops inside one firm, ahead of any filing. Clause: BCBS 239 Principle 2 fn.16 (robust automated reconciliation where multiple systems are in use); BCBS 239 SS36(d) (reconcile to a designated authoritative source, never consumer to consumer).",
  "input_schema_ref": "chaingraph/art-525-nway-balance-closure-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:43bb37390c65a71cf845232d1f01cd24d40f3ddadba827618355b0386bfb82c9",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "C0Jwl8UnCI8bwdVvy80ElbqyhA6K4NfNsSQ5bI/ZN8cLdsA476s4vHpeRN00L/7gdhxFY1TOFbHQi3KLv0T7gix0Hv/3VP9E/dJtw21qBygLZGy88WfITjngykk/ryLUCc4253djrCz4ERRFreZ2QAp549WMh+kBtBygeLoWCQ0S1uwbWHETEJZiAFeA+5DJnNWWfIaBuKLFZ+ZEyniPRQ+vPlv/Mkw+O1VHBWL33HVuOM2QpmaAKaFLA9M/vQy3Etv+x51dDq20Qcbr8R2skViKQyJ+k1ZMdbWE4cyfw+ILdscMVLALqtA4FoqgIUmWh5MEH6tuVf+vA29mJe1dbA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:43bb37390c65a71cf845232d1f01cd24d40f3ddadba827618355b0386bfb82c9",
      "output": {
        "as_of_consistent": true,
        "as_of_values": [
          "2026-06-30T23:59:59Z"
        ],
        "authoritative_system_id": "CORE-DDA",
        "boundary_note": "This kernel performs only the closure arithmetic over caller-declared integer minor-unit balances and caller-declared hop differences. It does not source, derive, estimate, or audit any balance, and it does not decide which system is authoritative -- that designation is a caller input per BCBS 239 SS36(d).",
        "break_pairs": [],
        "closure_holds": true,
        "closure_tolerance_minor": 100,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "declared_disagreements": [],
        "max_abs_residual_minor": 0,
        "measure_label": "Total customer deposits, USD",
        "pairwise": [
          {
            "against_authoritative": true,
            "balance_difference_minor": 0,
            "declared_agrees_with_balances": true,
            "declared_difference_minor": 0,
            "declared_vs_balance_delta_minor": 0,
            "difference_basis": "declared",
            "difference_minor": 0,
            "pair": "CORE-DDA -> GL-ORACLE",
            "system_a": "CORE-DDA",
            "system_b": "GL-ORACLE",
            "within_tolerance": true
          },
          {
            "against_authoritative": true,
            "balance_difference_minor": 0,
            "declared_agrees_with_balances": true,
            "declared_difference_minor": 0,
            "declared_vs_balance_delta_minor": 0,
            "difference_basis": "declared",
            "difference_minor": 0,
            "pair": "CORE-DDA -> REG-MART",
            "system_a": "CORE-DDA",
            "system_b": "REG-MART",
            "within_tolerance": true
          },
          {
            "against_authoritative": false,
            "balance_difference_minor": 0,
            "declared_agrees_with_balances": true,
            "declared_difference_minor": 0,
            "declared_vs_balance_delta_minor": 0,
            "difference_basis": "declared",
            "difference_minor": 0,
            "pair": "GL-ORACLE -> REG-MART",
            "system_a": "GL-ORACLE",
            "system_b": "REG-MART",
            "within_tolerance": true
          }
        ],
        "rejected_inputs": [],
        "scope_note": "Scoped to internal system-boundary hops inside one firm, ahead of any filing. Balances are caller-declared from the firm's own systems.",
        "suspect_systems": [],
        "system_count": 3,
        "systems": [
          {
            "as_of": "2026-06-30T23:59:59Z",
            "balance_minor": 212800400000,
            "is_authoritative": true,
            "system_id": "CORE-DDA"
          },
          {
            "as_of": "2026-06-30T23:59:59Z",
            "balance_minor": 212800400000,
            "is_authoritative": false,
            "system_id": "GL-ORACLE"
          },
          {
            "as_of": "2026-06-30T23:59:59Z",
            "balance_minor": 212800400000,
            "is_authoritative": false,
            "system_id": "REG-MART"
          }
        ],
        "triple_count": 1,
        "triples": [
          {
            "leg_ab_minor": 0,
            "leg_ac_minor": 0,
            "leg_bc_minor": 0,
            "residual_basis": "declared",
            "residual_minor": 0,
            "systems": [
              "CORE-DDA",
              "GL-ORACLE",
              "REG-MART"
            ],
            "triple": "CORE-DDA, GL-ORACLE, REG-MART",
            "within_tolerance": true
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-526-report-gl-reconciliation",
  "tool_version": "1.0.0",
  "display_name": "Report-to-General-Ledger Reconciliation",
  "mcp_name": "reconcile_report_to_general_ledger",
  "mandate_type": "attestation_mandate",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-526-report-gl-reconciliation.html",
  "description": "Ties a caller-declared reported figure to a caller-declared general-ledger figure, by account -- the only node in this reconciliation programme checked against an independent book of record rather than a second declared value. A designed plug (for example FR 2052a field S.B.6 Carrying Value Adjustment) is a first-class declared input, netted before the residual and never counted as a break. Appendix and supplemental-schedule semantics are versioned policy inputs, never hardcoded. Refuses to run where the requested reporting cadence is finer than the underlying GL schedule's own cadence, and treats a general ledger not yet declared closed as a distinct did_not_run outcome from a genuine tie-out break -- the failure that otherwise surfaces only at quarter-end. Emits a §27.4 gate-policy value plus a sibling execution_state at a predictable output_payload pointer. Clause: BCBS 239 §36(c), ECB RDARR Guide §3.5(1)/(2). Not a transaction matcher and not a filing tool.",
  "input_schema_ref": "chaingraph/art-526-report-gl-reconciliation.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ac0706aea54457a53cc1f56d8642d7b5f4bf09c4377b8bc7d1e52562a9d59e12",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EtSEesA7lnxqmXGS5lU1uErbVdSt333Ms/otd9+7uVgJ5VQAXTSziq/92wSftnQlYsZOaXM7v6SshlT1YSAYegxPplrPWOmwHgs5Nfai2dCBa+XZ4pRYlUqe/GBiSMmRGTCuxMXP10DweLionJ1hxbt/2nc52aEYpSsJnE+dx+AkA1ELk0+cgtxDap1aJRr/w18SyeRQX37jB9jF9jmGZyaoubmv/hIp9nlaVW9ejVmibqIQwI9RpwA5Ikm2wALhDE4RwwrCAN79U6thEferavHG/+L1uEHXjuYO3Sc6gcArQ5Qev/UOQe3IknBAtjmh2pQmtXqPjK5ZyqKbGtCkdg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ac0706aea54457a53cc1f56d8642d7b5f4bf09c4377b8bc7d1e52562a9d59e12",
      "output": {
        "account_count": 2,
        "accounts": [
          {
            "account_id": "GL-1001",
            "designed_plug_display": "50000.00",
            "designed_plug_minor_units": 5000000,
            "designed_plug_reason_code": "SB6_carrying_value_adjustment",
            "gl_figure_minor_units": 495000000,
            "reported_figure_minor_units": 500000000,
            "residual_display": "0.00",
            "residual_minor_units": 0,
            "tolerance_minor_units": 100,
            "within_tolerance": true
          },
          {
            "account_id": "GL-1002",
            "designed_plug_display": "0.00",
            "designed_plug_minor_units": 0,
            "designed_plug_reason_code": null,
            "gl_figure_minor_units": 120000000,
            "reported_figure_minor_units": 120000000,
            "residual_display": "0.00",
            "residual_minor_units": 0,
            "tolerance_minor_units": 100,
            "within_tolerance": true
          }
        ],
        "appendix_schedule_source": "FR 2052a Appendix VIII, rev 2026-Q2 (firm-by-firm alignment)",
        "appendix_schedule_version": "FR2052a-AppVIII-2026Q2",
        "as_of": "2026-07-31",
        "breaking_account_count": 0,
        "cadence_refused": false,
        "currency": "USD",
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "gl_as_of": "2026-07-31",
        "gl_closed": true,
        "gl_closed_declared": true,
        "note": "Deterministic tie-out of a caller-declared reported figure to a caller-declared general-ledger figure, by account, against the general ledger as an independent book of record -- unlike sibling nodes in this programme that compare only declared-vs-declared. A designed plug is a first-class declared input, netted before the residual and never counted as a break. A daily-cadence request against a less-frequent underlying schedule, or a GL not yet declared closed, refuses to run rather than emit a misleading pass or a false break; the two are reported as distinct did_not_run reasons.",
        "plugged_account_count": 1,
        "rationale": [
          "Versioned policy inputs: appendix/schedule version FR2052a-AppVIII-2026Q2, source FR 2052a Appendix VIII, rev 2026-Q2 (firm-by-firm alignment).",
          "Reporting cadence monthly against underlying schedule cadence monthly.",
          "2 account(s) evaluated, 0 outside tolerance after the declared plug, 1 carrying a non-zero designed plug.",
          "Every account ties out within its declared tolerance after netting the designed plug.",
          "This is an arithmetic tie-out over the figures supplied for this cycle against a caller-declared general-ledger figure, the only independent witness in this reconciliation program. It does not itself pull the GL balance and is not a determination that any underlying control has been met."
        ],
        "rejected_inputs": [],
        "reporting_cadence": "monthly",
        "schedule_cadence": "monthly"
      }
    }
  }
},
    {
  "tool_id": "art-527-classify-ledger-consensus-finality",
  "tool_version": "1.0.0",
  "display_name": "Ledger Consensus Finality Classifier",
  "mcp_name": "classify_ledger_consensus_finality",
  "mandate_type": "compliance_mandate",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-527-classify-ledger-consensus-finality.html",
  "description": "Classifies a ledger-consensus position under a deadline-bounded-inclusion model (XRPL) or a federated-BFT model (Stellar SCP), each expressed as terminal outcome branches rather than a monotone tier ladder. Flags an overstated finality claim and a fee-consuming tec final failure, and names the unprovable-absence gap where validated history is not continuous. Caller-supplied signed ledger facts only: no live network fetch, no witness/light-client infrastructure, no embedded validator-list snapshot. Zero PII. Client-side.",
  "input_schema_ref": "chaingraph/art-527-classify-ledger-consensus-finality.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:46901368779de44333c60943c2a52d7458222841e0ac6420898016c6664114dd",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DtMcPzY3R5dfTS4wbByse+FWzn8X1gsin0LKJR10XVUFtyDdjQxAAWajF8YpDNSbADC1xsRzacms8x6nxAjJJgjRbQeRQNJPlqgv24QJdb/KN7MY+ki986+3l8NLSekrCUMtAsoLv8oT69rAkCDby2vHNDD7CN1FJqKAlO/2Ikwq/qryDtLsy4Sye3HlANr8H4TOAzRIb2AVDwtB/ms64AFnpg2J6I7wmE4FPPNQuHQfLsD6c6ZtJkn4EdfJlJSUGFjhfIFeFQacR6xl5rsNKvZvti2HD4CO8vbyGP5sRJoTLUQACDihfdnHr8V+uVijeWDOmOaMkjKj9QS6UI5foQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:46901368779de44333c60943c2a52d7458222841e0ac6420898016c6664114dd",
      "output": {
        "as_of_ts": 1753000000,
        "chain_label": "XRPL mainnet",
        "claim_verdict": "claim_supported",
        "claimed_tier": "final_success",
        "draft_pinned": false,
        "finality_tier": "final_success",
        "highest_validated_ledger": 996,
        "included_in_ledger": 995,
        "meets_required_tier": true,
        "outcome": "final_success",
        "rationale": [
          "The transaction is included in a validated ledger with a tes result, so it is a final success."
        ],
        "reorg_exposure": "none",
        "required_tier": "final_success",
        "result_class": "tes",
        "settlement_model": "deadline_bounded_inclusion",
        "submitted_at_ledger": 990,
        "time_bounds_max": null
      }
    }
  }
},
    {
  "tool_id": "art-528-cross-ccp-pqd-comparator",
  "tool_version": "1.0.0",
  "display_name": "Cross-CCP PQD Comparator",
  "mcp_name": "compare_cross_ccp_pqd_fields",
  "mandate_type": "regulatory_reporting",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-528-cross-ccp-pqd-comparator.html",
  "description": "Compares a caller-selected set of CPMI-IOSCO public quantitative disclosure (PQD) fields across FICC and ICE using a manually-transcribed, source-cited fixture dataset -- backtest coverage and largest margin deficiency per FICC division (GSD, MBSD, NSCC), and default fund requirement, Cover-2 peak stress loss, and total initial margin required per ICE clearing house (ICC, ICEU, ICUS), plus a CCP-level ICE skin-in-the-game total. FICC and ICE do not disclose the same field set; a field one side does not publish is reported unavailable, never interpolated. Flags a caller-declared threshold breach (e.g. Cover-2 peak stress loss exceeding a declared percentage of default fund requirement) per entity. Comparison arithmetic and delta table only -- no ranking, no better/worse scoring language, no forecasting. CME and LCH are named in the spec but not built -- selecting either yields an unknown-CCP rejection, never a fabricated figure. Every fixture figure is public and source-cited to the CCP's own quarterly disclosure PDF, refreshed manually per quarter, never a live feed and never scraped.",
  "input_schema_ref": "chaingraph/art-528-cross-ccp-pqd-comparator.html#manifest",
  "deadline": null,
  "deadline_note": "Compares CCPs against the STANDING CPMI-IOSCO Dec 2015 PQD template each already publishes quarterly -- not the 2026 PQD-transparency consultation amendments, which are consultation-stage with no compliance date.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:fd251101f928b941bade8919f9fc8215154f87e82c9ec9e6953ea483c95b82f1",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ITDmOwAK3hBb6dCbQZnNKxcUWwaFynGIt4BzSXxMEvgYDErMSCzxcCn0W7mXoX2QLGV4PUYesdV851ZZf5p/qBgJqrUVMkqji4d5TWITWb6kURE4bIn9hyXf47Q8syODGBlD9IT+SXqQG6I6tN6lUbI/5AzJQ2jAhd4G1mPbeuQHf5dQ5w6rTRVJxIRZjSIa1454Lj/atoFKE9IYgxfmtiqtLX55f1lzTILn3WrrhiL7fXraD6iifECU7hJG7D8pGx4accb/469gVLbcwr4SPT6qg6GHj994TVn7CY0gBw0JGsaPQulFLcMXytMBb2Y3Of4jT48+j9OV4MRJZf4yHg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:fd251101f928b941bade8919f9fc8215154f87e82c9ec9e6953ea483c95b82f1",
      "output": {
        "cross_ccp": false,
        "entity_a": {
          "ccp": "FICC",
          "division": "GSD",
          "resolved": true
        },
        "entity_b": {
          "ccp": "FICC",
          "division": "NSCC",
          "resolved": true
        },
        "fields": [
          {
            "delta": 0.1,
            "delta_pct": 0.1003,
            "entity_a": {
              "available": true,
              "scope": "division_level",
              "value": 99.7
            },
            "entity_b": {
              "available": true,
              "scope": "division_level",
              "value": 99.8
            },
            "field_id": "backtest_coverage_pct"
          },
          {
            "delta": 124300000,
            "delta_pct": 255.7613,
            "entity_a": {
              "available": true,
              "scope": "division_level",
              "value": 48600000
            },
            "entity_b": {
              "available": true,
              "scope": "division_level",
              "value": 172900000
            },
            "field_id": "largest_deficiency_usd"
          }
        ],
        "fully_available_field_count": 2,
        "note": "Compares caller-selected CPMI-IOSCO PQD fields across FICC and ICE using a manually-transcribed, source-cited fixture dataset (never a live feed). A field a CCP does not disclose is reported unavailable, never interpolated or defaulted. Comparison arithmetic and threshold flags only -- no ranking, no better/worse scoring language.",
        "partially_available_field_count": 0,
        "rationale": [
          "Comparing FICC GSD against FICC NSCC (same CCP).",
          "2 field(s) requested: 2 available on both sides, 0 available on one side only, 0 available on neither side.",
          "All figures are fixture data manually transcribed from each CCP's own published quarterly PDF disclosure -- never a live feed. This is comparison arithmetic only: no ranking and no soundness judgment is expressed."
        ],
        "rejected_inputs": [],
        "source_citations": {
          "FICC": {
            "publisher": "DTCC",
            "source_period": "Q3 2025",
            "source_url": "https://www.dtcc.com/legal/policy-and-compliance"
          },
          "ICE": {
            "publisher": "ICE",
            "source_period": "Q4 2025",
            "source_url": "https://www.ice.com/clearing/quarterly-clearing-disclosures"
          }
        },
        "threshold": null,
        "unavailable_field_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-529-ccp-default-waterfall-recompute",
  "tool_version": "1.0.0",
  "display_name": "CCP Default Waterfall Recomputation",
  "mcp_name": "recompute_ccp_default_waterfall",
  "mandate_type": "analytics_mandate",
  "wave": 83,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-529-ccp-default-waterfall-recompute.html",
  "description": "Recomputes the sequential loss-allocation order at a CCP defaulting-member event: defaulter's initial margin, then the defaulter's default-fund contribution, then the CCP's own skin-in-the-game, then the surviving members' default-fund pool, then assessment powers -- per a caller-declared waterfall structure and a caller-declared loss amount. The structure is not hardcoded to any one CCP's rulebook; a caller supplies its own stage order and subset per PFMI Principle 4 and its own published rulebook. Carries an OCG Standard §25 ocg-private-input@1 declaration: the defaulter's initial margin, the defaulter's default-fund contribution, and the surviving-members' default-fund pool are member-level figures, committed via sha256-salted@1 in policy_parameters.member_figures_commitment, never disclosed in the clear. The CCP's own skin-in-the-game and any assessment-powers cap are the CCP's own already-published figures and stay public inputs. Emits, stage by stage, how much of the declared loss each stage absorbed and whether a residual remains unallocated -- a breach of the declared structure at that loss amount. Distinct in domain from art-509-recompute-payment-waterfall, a securitisation cashflow waterfall unrelated to CCP default management. It performs no fund-sizing of its own, no stress-scenario modelling, and makes no determination that any CCP's published resources are adequate.",
  "input_schema_ref": "chaingraph/art-529-ccp-default-waterfall-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:1fa3932e10c166675cb5eaf1c41a165ee448e916df2086e1cf963e95ee4a2f97",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:adf39b5c4e8fe19f9dbc25e2b8eb84090f0ee6c9370f14ad10d5039e8e65b0ec",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:adf39b5c4e8fe19f9dbc25e2b8eb84090f0ee6c9370f14ad10d5039e8e65b0ec",
    "seal": "EOHLdLc2X7oSFnQMFdoTTHSO4tSPN2FwDZHCsjlZqpIOAkLYht0soQl43oVRy2b0arHIJ6r7tSAOzL2NlMEsvhLswwHDKnbW9RRDFbiekUrr03oZS3Bc5BvApLKzjfOMAcqU+ITzfHrL7I0qOUJTMHZYVqoVeRaAHe4dCfDJhloA8lG9u3AIZmPiuJ9UfwUNVXglDdGl2CCiQzD2z4qBnSfOHdmZuqwim/p2ZjHIWFczXaCjZp5OESKO2gb7ntM7L0zWzNWNddZd6U6yF0hWLp+zfLrIQ83UYP/BIJOqqfAob+mlJCDG33mObmnHfdf8CmQpL17VfSC2DTyRxo2f4A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "commitment": "sha256:abb47369cd5665fa19e76b84c34d54a954002bde70b23fb168d1432647abfccd",
      "commitments": [
        "sha256:abb47369cd5665fa19e76b84c34d54a954002bde70b23fb168d1432647abfccd"
      ],
      "kernel_digest": "sha256:1fa3932e10c166675cb5eaf1c41a165ee448e916df2086e1cf963e95ee4a2f97",
      "output": {
        "assessment_powers_cap_declared": true,
        "assessment_powers_cap_minor_units": 100000000000,
        "breach": false,
        "ccp_skin_in_game_display": "300000000.00",
        "ccp_skin_in_game_minor_units": 30000000000,
        "currency": "USD",
        "loss_amount_display": "500000.00",
        "loss_amount_minor_units": 50000000,
        "loss_fully_absorbed": true,
        "note": "Deterministic, single-run recompute of a sequential default-waterfall loss allocation. The defaulter IM, defaulter default-fund contribution, and surviving-member default-fund pool are member-level figures committed via sha256-salted@1 (OCG Standard §25) and never appear in the clear anywhere in this artifact. It forecasts nothing, sizes no fund, and makes no determination that a CCP's published resources are adequate.",
        "provenance": "PFMI Principle 4 (Credit Risk) -- the standing Cover-2 / waterfall-sequencing requirement -- and the caller-declared waterfall structure, which is not hardcoded to any one CCP rulebook.",
        "rationale": [
          "Waterfall structure: defaulter_im -> defaulter_default_fund -> ccp_skin_in_game -> surviving_member_default_fund_pro_rata -> assessment_powers.",
          "Loss of 500000.00 USD recomputed sequentially across 1 stage(s) reached; the three member-level absorption capacities (defaulter IM, defaulter default-fund contribution, surviving-member default-fund pool) are private witnesses committed under OCG Standard §25 ocg-private-input@1, never disclosed in the clear.",
          "Loss fully absorbed; residual unallocated is 0.00 USD.",
          "This is a sequential recompute over a caller-declared waterfall structure and a caller-declared loss amount, per PFMI Principle 4 and each CCP's own published rulebook order. It is not a determination that any CCP's actual default-fund sizing is adequate, and it performs no stress-scenario modelling of its own."
        ],
        "rejected_inputs": [],
        "residual_display": "0.00",
        "residual_minor_units": 0,
        "steps": [
          {
            "absorbed_display": "500000.00",
            "absorbed_minor_units": 50000000,
            "exhausted_stage_capacity": false,
            "loss_fully_absorbed_at_this_stage": true,
            "private_figure": true,
            "stage": "defaulter_im"
          }
        ],
        "waterfall_structure": [
          "defaulter_im",
          "defaulter_default_fund",
          "ccp_skin_in_game",
          "surviving_member_default_fund_pro_rata",
          "assessment_powers"
        ]
      }
    }
  }
},
    {
  "tool_id": "art-530-default-fund-cover2-sizing",
  "tool_version": "1.0.0",
  "display_name": "CCP Default Fund Cover-2 Sizing",
  "mcp_name": "size_ccp_default_fund_cover2",
  "mandate_type": "risk_parameter",
  "wave": 81,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-530-default-fund-cover2-sizing.html",
  "description": "Sizes a CCP default fund under the PFMI Principle 4 \"Cover 2\" standard: fund size must be at least the largest plus second-largest clearing-member stress loss across caller-declared stress scenarios. Applies each caller-declared scenario loss rate (in basis points, shaped from qfa-03-stress-test-engine's scenario_losses output as a chained input) to every caller-declared member exposure, ranks members per scenario, takes the two largest, and checks a caller-declared fund size against the worst scenario across the declared set. Not a stress-loss engine itself -- qfa-03 already computes multi-scenario portfolio stress losses; this node consumes that shape read-only and never reimplements it. Region-portable: no CCP, currency, or jurisdiction is hardcoded. Arithmetic sizing check only, no fund-size recommendation.",
  "input_schema_ref": "chaingraph/art-530-default-fund-cover2-sizing.html#manifest",
  "consumes": [
    "qfa-03-stress-test-engine"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4d53619712ff1da614212e1de80b28da3a815322d590e9fa5f7dd3db647c59b2",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "B7LhrChMFh8OY1PdbzHD+K8hJATg+Zhm6joL+3ASGM4E6uZzYhU2NrdXwXC5jGjIfhBywuRPSBHl7JMLBvaN5w8zjuZKusTGUEcUwNAzoiFKJARueQ5vK7AlRXedBpZ4LAkvZ234yKtStMpRHMTmKqoBQK7xHR/0rUdPRxdFWJsCm0S4kReFySNThpoeVS0iYFeOSWbu5NDEpR4vvBK8OCOlGv/lk5wP0CLuGbub9APxhDJTyglZX8VAyg8z4TWtBiA8RIfT3IESY+f8OTbt0lHIqm02bT8WB3tVuSZJQc4i2xmnG3H4zc6yN+hayst2/+kqxD2X9rXB16MMUUrwEQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4d53619712ff1da614212e1de80b28da3a815322d590e9fa5f7dd3db647c59b2",
      "output": {
        "as_of": "2026-08-01",
        "fund_adequate": true,
        "fund_size_display": "2000000.00",
        "fund_size_minor_units": 200000000,
        "member_count": 3,
        "note": "Deterministic Cover-2 default fund sizing over caller-declared clearing members, member exposures, stress-scenario loss rates (shaped from a stress-test-engine chain input as basis points), and a declared fund size. Per PFMI Principle 4, the fund must cover the default of the two members creating the largest combined stress loss under the worst declared scenario. No CCP, currency, or jurisdiction is named. It performs no stress-scenario computation of its own -- that shape is a chained input -- and it recommends no fund-size change.",
        "per_scenario": [
          {
            "cover2_requirement_display": "1617000.00",
            "cover2_requirement_minor_units": 161700000,
            "largest": {
              "member_id": "member-alpha",
              "stress_loss_minor_units": 92400000
            },
            "loss_bps": 4620,
            "member_losses": [
              {
                "member_id": "member-alpha",
                "stress_loss_minor_units": 92400000
              },
              {
                "member_id": "member-beta",
                "stress_loss_minor_units": 69300000
              },
              {
                "member_id": "member-gamma",
                "stress_loss_minor_units": 27720000
              }
            ],
            "scenario_id": "gfc_2008",
            "second_largest": {
              "member_id": "member-beta",
              "stress_loss_minor_units": 69300000
            }
          },
          {
            "cover2_requirement_display": "1134000.00",
            "cover2_requirement_minor_units": 113400000,
            "largest": {
              "member_id": "member-alpha",
              "stress_loss_minor_units": 64800000
            },
            "loss_bps": 3240,
            "member_losses": [
              {
                "member_id": "member-alpha",
                "stress_loss_minor_units": 64800000
              },
              {
                "member_id": "member-beta",
                "stress_loss_minor_units": 48600000
              },
              {
                "member_id": "member-gamma",
                "stress_loss_minor_units": 19440000
              }
            ],
            "scenario_id": "covid_2020",
            "second_largest": {
              "member_id": "member-beta",
              "stress_loss_minor_units": 48600000
            }
          }
        ],
        "rationale": [
          "3 declared clearing members evaluated across 2 declared stress scenarios.",
          "Worst-case scenario \"gfc_2008\" at 4620 bps: largest member loss 924000.00 (member-alpha), second-largest 693000.00 (member-beta); Cover-2 requirement 1617000.00.",
          "Declared default fund size 2000000.00 is adequate against the worst-case Cover-2 requirement of 1617000.00.",
          "This is an arithmetic sizing check over declared member exposures, declared stress-scenario loss rates, and a declared fund size. It proves nothing about whether those declarations match any external position or margin system, and it recommends no fund-size change."
        ],
        "rejected_inputs": [],
        "scenario_count": 2,
        "shortfall_display": "0.00",
        "shortfall_minor_units": 0,
        "worst_case_cover2_requirement_display": "1617000.00",
        "worst_case_cover2_requirement_minor_units": 161700000,
        "worst_case_scenario_id": "gfc_2008"
      }
    }
  }
},
    {
  "tool_id": "art-531-member-margin-call-lifecycle",
  "tool_version": "1.0.0",
  "display_name": "Member Margin Call Lifecycle",
  "mcp_name": "attest_margin_call_lifecycle",
  "mandate_type": "attestation_mandate",
  "wave": 83,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-531-member-margin-call-lifecycle.html",
  "description": "Tracks a clearing member's margin call through its declared lifecycle states -- issued, confirmed, funded, or disputed and escalated as a contingency path -- against a caller-declared SLA window, and attests whether the call was funded within the CCP's own published timing rule. Checks that the declared state timestamps are chronologically consistent and, for a still-open call, whether it has already run past its SLA as of a caller-declared evaluation point. Emits an informational suggested gate route (end, escalate, or hold) without itself implementing any escalation workflow. Region-portable: currency and the SLA window are caller-declared inputs, with no CCP or jurisdiction hardcoded. Deterministic arithmetic only. Zero network, zero PII -- the member reference is an opaque caller-supplied string, never a raw identity.",
  "input_schema_ref": "chaingraph/art-531-member-margin-call-lifecycle.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:89fcc33e4e1a9e74da13cd69954a8b4d1717cf652e2159dd4c358b0ee59b436b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AnRO68hFqu5KOK47Zv9JhUd7OkOV7wKpBX4HBBC5qH4IHM2MUe1OKEgftDXAgOmp5gQhIAYoWCqTN1V5UIZpdgHPPLTqDlOvhAKy6bKpivNJSuchF1aXqzuOcpjoNlc7CPbshVKI81OG85NN+8wwb+Lh9b/mzYhJ2ei0t3QZSN4mDCCT4wEk9LeHiKlzb4egeWhQ8pt3r3Bau1nmQrOLnyWr6hXqzhQRYmbTYhWF0K/haoZ7/ed715RabtPkF1qELSp4M6hCsqboxv4PqwygrBAK5ITSa3qBNyu33cAy0iwJVARXW26sMXI935mM0RY91OdSPzSHyPMm7YZo02WsLw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:89fcc33e4e1a9e74da13cd69954a8b4d1717cf652e2159dd4c358b0ee59b436b",
      "output": {
        "amount_display": "2500000.00",
        "amount_minor_units": 250000000,
        "as_of": "2026-07-31T15:30:00Z",
        "attested": true,
        "call_id": "MC-0001",
        "confirmed_at": "2026-07-31T14:10:00Z",
        "currency": "USD",
        "current_state": "funded",
        "dispute_reason": null,
        "disputed_at": null,
        "elapsed_to_asof_minutes": 90,
        "elapsed_to_funded_minutes": 45,
        "escalated_at": null,
        "funded_at": "2026-07-31T14:45:00Z",
        "issued_at": "2026-07-31T14:00:00Z",
        "member_ref": "MEMBER-REF-1042",
        "met_within_sla": true,
        "note": "Deterministic margin-call lifecycle attestation over caller-declared state timestamps and a caller-declared SLA window. It attests whether the call was funded within the CCP's own published timing rule -- issued -> confirmed -> funded, or issued -> disputed -> escalated -- rather than implementing any margin-call workflow itself.",
        "overdue": false,
        "rationale": [
          "Call MC-0001 issued 2026-07-31T14:00:00Z, currently funded, declared SLA 60 minute(s).",
          "Funded 45 minute(s) after issuance, within the 60-minute SLA.",
          "This is a state/attestation fact over the timestamps supplied for this call. It does not itself implement any escalation workflow and the suggested gate route is informational only."
        ],
        "rejected_inputs": [],
        "sequence_errors": [],
        "sequence_valid": true,
        "sla_minutes": 60,
        "suggested_gate_route": "end"
      }
    }
  }
},
    {
  "tool_id": "art-532-client-porting-check",
  "tool_version": "1.0.0",
  "display_name": "Client Porting Check",
  "mcp_name": "check_client_porting",
  "mandate_type": "attestation_mandate",
  "wave": 83,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-532-client-porting-check.html",
  "description": "Checks whether a client's cleared positions and collateral are portable to a backup clearing member under a caller-declared porting window, given caller-declared position/collateral completeness and backup-member consent status. Evaluates one caller-supplied snapshot: an empty position set, a missed porting window, and a not-yet-consented backup member each resolve to a distinct, defined not-portable outcome rather than a generic failure. A portable verdict is an evaluation of the supplied snapshot, never a guarantee that porting will in fact occur, and this tool does not itself move any position or collateral. Clause: PFMI Principle 14 (Segregation and Portability), 17 CFR 240.15c3-3a where a broker-dealer customer-protection structure is in view.",
  "input_schema_ref": "chaingraph/art-532-client-porting-check.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:6b3fddf02c09856bc6c1a58454eed2257d8a93d2e0a66af5721811ba315ba5f9",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Abzc4vzJSaqE1gNxpie8KRE8cMr4hMPSgi2o4YPKJOYLOj9B6gd0qRioIpKL4T59UWRv0nRQf5yADxrietqKFgC2b7JCtgGwgGnA8zUAmt55IBu0kNcXeDulHiE2/uFHCbCp9QNYMEDXOK7XC/9MJT6rpyF4aeBJsyKebbxXhicNgEYQYAnkjwIcDW3NC3Vl709bbDDe6+gDRNe4j182HRyDUb+SiLPVDs7DiXWllOh0Oq+GnZS0DX8ot2mVd0qZKGsiLB8SIMK3QDgKVP4v2O2uqhZXY0dUy4YzW7OJdpMUf1zVytTI7gk0bUojPL96zJKnnrrE0fKgr53EC2rsGA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:6b3fddf02c09856bc6c1a58454eed2257d8a93d2e0a66af5721811ba315ba5f9",
      "output": {
        "backup_member_consent_status": "consented",
        "backup_member_id": "BACKUP-MEMBER-77",
        "citations": {
          "customer_protection_segregation": {
            "id": "17 CFR 240.15c3-3a",
            "in_force_from": "1972-11-03",
            "mapped_at": "2026-08-04",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "scheme": "cfr",
            "uri": "https://www.ecfr.gov/current/title-17/chapter-II/part-240/subject-group-ECFR6c1b03927685662/section-240.15c3-3a"
          },
          "segregation_and_portability": {
            "id": "PFMI Principle 14",
            "in_force_from": "2012-04-16",
            "mapped_at": "2026-08-04",
            "mapped_by": "AINumbers CCP-CORE-K-1",
            "scheme": "other",
            "uri": "https://www.bis.org/cpmi/publ/d101a.pdf"
          }
        },
        "client_ref": "CLIENT-A1",
        "collateral": [
          {
            "amount_display": "6000000.00",
            "amount_minor_units": 600000000,
            "asset_type": "ust_bill",
            "collateral_id": "COLL-1",
            "complete": true,
            "currency": "USD"
          }
        ],
        "collateral_complete": true,
        "collateral_count": 1,
        "default_event_at": "2026-08-04T09:00:00Z",
        "elapsed_minutes": 360,
        "evaluated_at": "2026-08-04T15:00:00Z",
        "note": "Deterministic client-porting check over a caller-declared snapshot of positions, collateral, backup-member consent status, and porting window. Single-run and stateless: this tool holds no records, runs on no schedule, and retains nothing. The verdict evaluates the supplied snapshot; it is not a guarantee of a porting outcome and it does not itself move any position or collateral.",
        "porting_window_hours": 48,
        "position_count": 2,
        "positions": [
          {
            "complete": true,
            "currency": "USD",
            "notional_display": "50000000.00",
            "notional_minor_units": 5000000000,
            "position_id": "POS-1",
            "product_type": "interest_rate_swap"
          },
          {
            "complete": true,
            "currency": "USD",
            "notional_display": "12000000.00",
            "notional_minor_units": 1200000000,
            "position_id": "POS-2",
            "product_type": "repo"
          }
        ],
        "positions_complete": true,
        "rationale": [
          "Client reference CLIENT-A1; backup clearing member BACKUP-MEMBER-77, consent status consented (PFMI Principle 14).",
          "2 position(s) declared totalling 62000000.00 notional, 0 not yet declared complete.",
          "1 collateral component(s) declared totalling 6000000.00, 0 not yet declared complete.",
          "Elapsed time since the default event is 360 minute(s) against a declared porting window of 2880 minute(s) (48 hour(s)).",
          "On these figures the client's positions and collateral are complete, the backup member has consented, and the declared porting window has not elapsed (17 CFR 240.15c3-3a where a broker-dealer customer-protection structure is in view). This is an evaluation of the supplied snapshot, not a guarantee that porting will in fact occur."
        ],
        "rejected_inputs": [],
        "total_collateral_display": "6000000.00",
        "total_collateral_minor_units": 600000000,
        "total_notional_display": "62000000.00",
        "total_notional_minor_units": 6200000000,
        "verdict": "portable",
        "window_minutes": 2880,
        "window_missed": false
      }
    }
  }
},
    {
  "tool_id": "art-533-mra-remediation-closure-register",
  "tool_version": "1.0.0",
  "display_name": "Consent-Order / MRA Remediation Closure Register",
  "mcp_name": "register_mra_remediation_closure",
  "mandate_type": "attestation_mandate",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-533-mra-remediation-closure-register.html",
  "description": "Registers a firm's consent-order Articles / MRA findings against its own remediation records: per-issue milestone completeness (closed with evidence attached), evidence validity (delivered evidence type matches what each milestone declares it calls for), and overdue/on-track timing against each issue's own committed date, reusing art-491-ro-remediation-closure's cutoff-vs-evaluated arithmetic unchanged. Emits SPEC.md section 27.4's closed decision enum at the per-issue and rollup level (auto_pass / review_required / escalate / hold) -- never itself judges that remediation was appropriate, timely, or sustainable; that determination is a named human's section 27 approval record. Not FATCA/CRS notification-closure -- see art-491 for that, unrelated regime.",
  "input_schema_ref": "chaingraph/art-533-mra-remediation-closure-register.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ccad868f81e724e7e30de59a9c955f7ba8c69d690fe04fbc6b3984f0e9352f5a",
      "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": "D1+6vvaQ7CSvZRI6u12L3s5SbkY9K9ZpoAoKsQQIKLYpGWWDcob2tKrWGtM0557f/r/H83pnSYDIxaKFMtm1ryeWWSendaVgMn3KjyikbNKefsXD7mV7H5C5uUjMNaymJS8sim8Q96XRk34Vf9i1bnsFno/UkhWYRv0cp0kxsDMhe9ihy9PvJijUYKFTlg6HUC+RNFqrpwwGvm6Wc26nFyVOJOtFx7ESPnVNFZdL1aax8W+CeLXAQVsVTUXvt8ApEau3TdDNLtsy1wfdzqARtZBq8GS7ugF1B2BvflVO16gU76e+nE6e2Kdm3nZvjMdp5xQHnfk851APSi96xI8Cnw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ccad868f81e724e7e30de59a9c955f7ba8c69d690fe04fbc6b3984f0e9352f5a",
      "output": {
        "closed_count": 1,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "determinations": [
          {
            "closure_status": "closed",
            "commitment_text": "Remediate model-risk validation backlog per MRA Article 3.",
            "committed_date": "2026-06-01T00:00:00.000Z",
            "decision": "auto_pass",
            "ha_note": "Not yet an approval record. A human reviewer/approver MAY later create a separate, signed approval record over this artifact's execution_hash + this issue_id; this kernel does not fabricate or reserve a mutable slot for that record inside its own hashed output.",
            "issue_id": "sha256:6afb36ec72484939831daff6370395f9f4fe87bb0891ebe1dd644488acf8d738",
            "milestones": [
              {
                "closed_at": "2026-04-01T00:00:00.000Z",
                "description": "Independent validation of the top-10 models complete",
                "evidence": [
                  {
                    "evidence_id": "EVID-001",
                    "evidence_type": "validation_report"
                  }
                ],
                "milestone_id": "MS-1",
                "milestone_status": "closed_valid_evidence",
                "required_evidence_type": "validation_report"
              },
              {
                "closed_at": "2026-04-15T00:00:00.000Z",
                "description": "Remediation plan approved by model risk committee",
                "evidence": [
                  {
                    "evidence_id": "EVID-002",
                    "evidence_type": "committee_minutes"
                  }
                ],
                "milestone_id": "MS-2",
                "milestone_status": "closed_valid_evidence",
                "required_evidence_type": "committee_minutes"
              }
            ],
            "milestones_total": 2,
            "milestones_valid_count": 2,
            "overdue_days": 0,
            "root_cause_identified": true
          }
        ],
        "evaluated_at": "2026-05-01T00:00:00.000Z",
        "issue_count": 1,
        "note": "Deterministic consent-order/MRA remediation-closure register over a caller-declared issue/commitment set, milestone list, and remediation-status feed, evaluated against each issue's own committed_date. Reuses the art-491-ro-remediation-closure cutoff-vs-evaluated arithmetic unchanged, retargeted from a certification-period cut-off to a per-issue committed_date. This tool tracks closure and computes a routing decision only; it never itself determines that remediation was appropriate, timely, or sustainable -- that judgment is a named human's §27 approval record.",
        "open_count": 0,
        "overdue_count": 0,
        "overdue_grace_days": 30,
        "register_id": "DEMO-MRA-2026Q2",
        "rejected_inputs": []
      }
    }
  }
},
    {
  "tool_id": "art-534-aml-lookback-disposition-rollup",
  "tool_version": "1.0.0",
  "display_name": "AML Lookback Disposition Rollup",
  "mcp_name": "roll_up_aml_lookback_disposition",
  "mandate_type": "compliance_control",
  "wave": 83,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-534-aml-lookback-disposition-rollup.html",
  "description": "Closes the loop art-470 (lookback-completeness-reconciler) and art-471 (disposition-sampling-frame) leave open. Art-470 reconciles that the RE-SCREENING extract was complete; art-471 builds a deterministic sample of the resulting dispositions for independent review; neither checks that a disposition was actually recorded for every sampled item, that a filed or no-SAR determination carries a rationale, or that the sample frame's declared population size still reconciles to the completeness population. This node rolls those three axes up: disposition-coverage against the sample frame's own declared size, disposition-rationale-presence on every filed/no-SAR determination, and a population-to-sample tie-out between art-470's and art-471's declared population sizes. Emits a closed §27.4 gate-policy value: full coverage with rationale present on every filed/no-SAR item yields auto_pass; any missing disposition evaluated as of a caller-declared date on or after the lookback's declared close date yields escalate; a population tie-out failure or an explicit caller-declared sampling-frame discrepancy yields hold; a disposition present without its required rationale yields review_required. Customer id and alert id cross this kernel already salted -- callers supply a sha256-salted@1 commitment string, never the plaintext identifier -- and the kernel never sees, requests, or computes over the plaintext. Deterministic rollup arithmetic only. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-534-aml-lookback-disposition-rollup.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2263d143a5cbc54da93c78d3d8fb7d028dd161856f55cf8007414c81efad7778",
      "valid_from": "2026-08-04"
    },
    {
      "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": "MBXLHXUpyxhonmwnPcpAcLLi7kKmEdFUhkzNCkxzi58OO4bgvGhMhbJdKslyW1UNiKzhXQXqTRx9agsSirLR0QC7F4jLXiSRimKK9XhHYOddoIvrd9wUM0IMGEd2ts4WBVVVCpYTv02+7KYIQr4DwXlIcWaNbMs9sViaX2VQsBIpPk1XDmtNmF/pbWp3S1RfGU1Jg8EsECJfEvcchDiuXhaNTIFVjKcqGudPyFkUyg+Lf8du3C7F1QJ/ShCVKgpHBOUmRs0N5m2TKoOghLDgMZ1ogXJVLP1+3e9KVjI+YvgsNdJXEVWEZFU+bkDgAaUU3Ggagxhl/enOOtmEsKqkcQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2263d143a5cbc54da93c78d3d8fb7d028dd161856f55cf8007414c81efad7778",
      "output": {
        "as_of": "2026-07-15",
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "disposition_coverage_pct": 100,
        "items": [
          {
            "disposition": "no_sar",
            "has_rationale_reference": true,
            "identity_ok": true,
            "index": 0,
            "rationale_ok": true,
            "rationale_required": true
          },
          {
            "disposition": "sar_filed",
            "has_rationale_reference": true,
            "identity_ok": true,
            "index": 1,
            "rationale_ok": true,
            "rationale_required": true
          }
        ],
        "items_missing_rationale": [],
        "lookback_close_date": "2026-06-30",
        "lookback_id": "LB-2026-CONSENT-ORDER-7",
        "missing_disposition_count": 0,
        "population_size": 500,
        "population_tie_out_holds": true,
        "rationale_presence_pct": 100,
        "rejected_inputs": [],
        "sample_frame_population_size": 500,
        "sample_frame_size": 2,
        "sampled_item_count": 2,
        "sampling_frame_discrepancy_flag": false
      }
    }
  }
},
    {
  "tool_id": "art-535-fdic370-output-file-validator",
  "tool_version": "1.0.0",
  "display_name": "FDIC Part 370 Output-File Validator",
  "mcp_name": "validate_fdic370_output_file",
  "mandate_type": "compliance_control",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-535-fdic370-output-file-validator.html",
  "description": "Validates the shape of the institution's own 12 CFR part 370 deposit-insurance-coverage output file (the section 370.10 coverage summary report structure) against its published record layout -- required field presence, malformed count/amount values, and a repeated ownership right and capacity code -- and ties the file's declared totals to a supplied art-507-determine-deposit-insurance-coverage recompute. A file-shape defect and a totals mismatch are two separate, never-merged findings: a shape problem is checked first and routes to review_required regardless of how the totals compare, and only a clean-shaped file with a totals disagreement routes to escalate. Ownership right and capacity codes stay opaque strings, exactly as in art-507; no table of part 330 ownership categories is held here. Without a supplied art-507 result there is nothing to reconcile against, so the node reports did_not_run naming that precondition rather than assuming a tie-out. Emits a section 27.4 gate-policy value plus a sibling execution_state at a predictable output_payload pointer. Not a filing and not deposit insurance advice.",
  "input_schema_ref": "chaingraph/art-535-fdic370-output-file-validator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:10cb82f1a665d074500af23e512217234c39f79ad7f298e6f12a74eab4e2eeae",
      "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": "H0Nol5gOt/9bOw6acFYE4c7Y20DcpHmANJUmTZ1eB/MhHK7qvugiSFIs88OlfOZ6lvAlze68alvTivsxFaxdOycuWQphkyP+jeL2lfzGzgsb1er8EyWqGfBp/2cs3ZLTLre0O1M+tPoSlAdJ3K32/rR2x6J2dBaT7zPs5kqTV4kmSOSyEdfaRR2s+Y2HwBz9mA4zu55Lau5EdWScWl/jnwNRGr+9VszSC55PsfuoXRXsUniTQWURcYatgP0OtCtlDmQxSSlxQMvUeltzCLDv7+XvP9zhHcMAVO+oZgXoIhcpg5hQ5ubDaKJZsKzAD3khvB806xZmoogEikPB57OziQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:10cb82f1a665d074500af23e512217234c39f79ad7f298e6f12a74eab4e2eeae",
      "output": {
        "art507_result": {
          "accounts_with_uninsured_deposits_count": 2,
          "fully_insured_account_count": 2,
          "insured_minor_units": 46500000,
          "uninsured_minor_units": 10000000
        },
        "art507_supplied": true,
        "as_of_date": "2026-06-30",
        "boundary": "This validates the shape of a supplied 12 CFR part 370 output file against the section 370.10 record layout and ties the file's declared totals to a supplied art-507-determine-deposit-insurance-coverage recompute. It is not a filing, it does not produce the section 370.10 submission format, it carries no claim that the FDIC would accept the file, and it offers no deposit insurance advice. Whether coverage is correct for any particular depositor is decided under 12 CFR part 330 by the institution and its counsel, never here.",
        "conforming_row_count": 2,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "file_structure_errors": [],
        "file_totals": {
          "accounts_with_uninsured_deposits_count": 2,
          "deposit_account_count": 4,
          "distinct_account_holder_count": 3,
          "fully_insured_account_count": 2,
          "insured_minor_units": 46500000,
          "uninsured_minor_units": 10000000
        },
        "institution_ref": "IDI-SYNTH-0001",
        "mismatches": [],
        "note": "Deterministic 12 CFR part 370 output-file shape validator and totals reconciler. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It validates the file's own declared rows against the section 370.10 record layout and ties the file's totals to a supplied art-507 recompute, reporting a shape defect and a totals mismatch as two separate, never-merged findings. It holds no part 330 rule table and is not a filing.",
        "ownership_code_handling": "Ownership right and capacity codes on each file row are opaque strings, used only to detect a code repeated across rows. Nothing in this computation branches on the text of a code, and no table of part 330 ownership categories or allowance rules is held here.",
        "rationale": [
          "Part 370 output file validation for institution reference IDI-SYNTH-0001 as of 2026-06-30, over 2 supplied file rows.",
          "Every supplied row conforms to the section 370.10 coverage summary report layout: 2 rows carried every required field and no ownership right and capacity code repeated.",
          "The file's totals tie out exactly against the supplied art-507 recompute across every tied field.",
          "Ownership right and capacity codes on each file row are opaque strings, used only to detect a code repeated across rows. Nothing in this computation branches on the text of a code, and no table of part 330 ownership categories or allowance rules is held here.",
          "Small-buyer caveat carried forward from art-507: the population this reconciliation currently covers is zero institutions in the revenue-kanban sense. This validator is specified and shipped anyway because it is cheap and completes art-507 into the certification evidence pack.",
          "This validates the shape of a supplied 12 CFR part 370 output file against the section 370.10 record layout and ties the file's declared totals to a supplied art-507-determine-deposit-insurance-coverage recompute. It is not a filing, it does not produce the section 370.10 submission format, it carries no claim that the FDIC would accept the file, and it offers no deposit insurance advice. Whether coverage is correct for any particular depositor is decided under 12 CFR part 330 by the institution and its counsel, never here."
        ],
        "small_buyer_caveat": "Small-buyer caveat carried forward from art-507: the population this reconciliation currently covers is zero institutions in the revenue-kanban sense. This validator is specified and shipped anyway because it is cheap and completes art-507 into the certification evidence pack.",
        "supplied_row_count": 2,
        "totals_mismatch": false
      }
    }
  }
},
    {
  "tool_id": "art-536-reg-w-affiliate-transaction-tester",
  "tool_version": "1.0.0",
  "display_name": "Reg W Affiliate Transaction Tester",
  "mcp_name": "test_reg_w_affiliate_transactions",
  "mandate_type": "compliance_control",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-536-reg-w-affiliate-transaction-tester.html",
  "description": "Tests each caller-declared covered transaction with an affiliate against the Regulation W (12 CFR 223) quantitative limits: the 10% single-affiliate and 20% aggregate-affiliate capital limits, and a collateral-coverage percentage requirement on covered credit transactions. Capital base, both limit percentages, and the collateral-coverage percentage all arrive as caller-declared policy_parameters, cited with a required policy_vintage -- never hardcoded, since 12 CFR 223 figures version on their own schedule. A market-terms flag (the qualitative 12 CFR 223.51 'on terms substantially the same' test) is a caller-declared boolean the node records for the artifact only; it is never a judgment this node makes. Either quantitative limit breached escalates; a collateral shortfall with no capital breach routes to review_required; both limits satisfied and full collateral coverage auto-passes. No policy_parameters or no declared transactions yields a did-not-run execution state rather than a guessed decision.",
  "input_schema_ref": "chaingraph/art-536-reg-w-affiliate-transaction-tester.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:97f5aa7c56c8afd1021f3e175b556a66dfbbf632cee7c0f9f88cf0752eae17a4",
      "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": "B2QNcaq8DVYzQKpn72t45SHcZCiqlJNIfmu0KvtWTP8OoGJPFt8LhpguvLCfO+hJX0E7YWjSx6/8Wo4JvSCCFQMriTCDEtR1P/eEQGa3DVnxgfXbYcn+nE0bWSzPvNTqETf885yELufcqBHAvQWn8BmX0QkZEl7FFBP3HlhxN9YCTpSJ3NfB5mjkle745ukyKC+NfbZcyfdFbc+0f1lNXgiIbi8H1kduvmU8vsLEN16q9Az5WuR2hBTEfv+Xl92oDSfKwWPLAE8uIJFd79Z49c5Nm/h/Om89mmGURgjZAdcfCGLMB+fcYhYQX3MtYVkXzynDLChhAa2SJEr+42fCMw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:97f5aa7c56c8afd1021f3e175b556a66dfbbf632cee7c0f9f88cf0752eae17a4",
      "output": {
        "aggregate_test": {
          "breach": false,
          "exposure": 500000,
          "limit_amount": 2000000
        },
        "collateral_tests": [
          {
            "affiliate_id": "affiliate-alpha-holdings",
            "amount": 300000,
            "collateral_value": 400000,
            "required_collateral": 390000,
            "required_collateral_pct": 130,
            "shortfall": false,
            "transaction_id": "txn-0001"
          }
        ],
        "decision": "auto_pass",
        "execution_state": "ran",
        "market_terms_declarations": [
          {
            "affiliate_id": "affiliate-alpha-holdings",
            "market_terms_substantially_same": true,
            "transaction_id": "txn-0001"
          },
          {
            "affiliate_id": "affiliate-alpha-holdings",
            "market_terms_substantially_same": true,
            "transaction_id": "txn-0002"
          }
        ],
        "policy_vintage": "12 CFR 223, eCFR as of 2026-01-01",
        "reason": null,
        "single_affiliate_tests": [
          {
            "affiliate_id": "affiliate-alpha-holdings",
            "breach": false,
            "exposure": 500000,
            "limit_amount": 1000000
          }
        ]
      }
    }
  }
},
    {
  "tool_id": "art-537-qfc-recordkeeping-file-validator",
  "tool_version": "1.0.0",
  "display_name": "QFC Part 371 Recordkeeping File Validator",
  "mcp_name": "validate_qfc_recordkeeping_file",
  "mandate_type": "compliance_control",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-537-qfc-recordkeeping-file-validator.html",
  "description": "Validates the shape of the institution's own 12 CFR part 371 qualified-financial-contract recordkeeping file -- the position, counterparty, and collateral record set the appendix to part 371 requires -- against its published record layout, and ties the file's declared totals to a supplied control-total summary. A file-shape defect and a totals mismatch are two separate, never-merged findings: a shape problem is checked first and routes to review_required regardless of how the totals compare, and only a clean-shaped file with a totals disagreement routes to escalate. Position identifier and counterparty identifier are enumerable low-entropy identifiers salted before this node ever sees them; QFC type and currency code stay opaque strings, with no table of contract-type or currency codes held here. Without a supplied control-total summary there is nothing to reconcile against, so the node reports did_not_run naming that precondition rather than assuming a tie-out. Emits a section 27.4 gate-policy value plus a sibling execution_state at a predictable output_payload pointer. Not a filing and not recordkeeping-adequacy advice.",
  "input_schema_ref": "chaingraph/art-537-qfc-recordkeeping-file-validator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c7d0608caf559ede9bf75c63cee44bcc4cda97cc043ea6c689707e0e956709b9",
      "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": "ALwv8daTwiz9Q+yChPGf9JUpseJ2CXSlnZHNkiURzoQHYIXH2s+1cnqwAqKLDxjbc+oyieLxngOek8qsPXa3GifnGOnoQNwxHtgK6Dv71cGp0evotTVw+vfYDfxEUkuSFRfnB0GbJnGXYHzVVMKq0viwnDU8sq9KP0UOZ0GSL0Qpj/cV/2hyae79B8+QHzi5Y+fuWKbibj+RXoky6g8oSQMMv6BwwVWpOWbaRQlHfMbEX4CjQBLMrXwaOmcpjY6BKpQl+U7dOrhuyEGH1W6Vn9YZKTmb6kFk+itGxBN7a64oB4tK/eOaURHKyN8SCtngAD47BBoNrQxgSLFihCjPqA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c7d0608caf559ede9bf75c63cee44bcc4cda97cc043ea6c689707e0e956709b9",
      "output": {
        "as_of_date": "2026-06-30",
        "boundary": "This validates the shape of a supplied 12 CFR part 371 qualified-financial-contract recordkeeping file against the appendix's published record layout and ties the file's declared totals to a supplied control-total summary. It is not a filing, it does not produce the part 371 appendix submission format, it carries no claim that the FDIC or the institution's primary regulator would accept the file, and it offers no advice on whether a particular contract is a covered QFC. That determination is made under 12 CFR part 371 by the institution and its counsel, never here.",
        "conforming_row_count": 2,
        "control_totals": {
          "collateral_minor_units": 46000000,
          "distinct_counterparty_count": 2,
          "notional_minor_units": 700000000,
          "position_count": 2
        },
        "control_totals_supplied": true,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "file_structure_errors": [],
        "file_totals": {
          "collateral_minor_units": 46000000,
          "distinct_counterparty_count": 2,
          "notional_minor_units": 700000000,
          "position_count": 2
        },
        "identifier_salting": "Position identifier and counterparty identifier are enumerable low-entropy identifiers within the meaning of SPEC.md section 25.1. Both arrive at this kernel already salted (sha256-salted@1); the kernel uses each only to detect a repeated position or count distinct counterparties, and no raw identifier or salt ever enters this computation.",
        "institution_ref": "IDI-SYNTH-0001",
        "mismatches": [],
        "note": "Deterministic 12 CFR part 371 recordkeeping-file shape validator and totals reconciler. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It validates the file's own declared rows against the part 371 appendix record layout and ties the file's totals to a supplied control-total summary, reporting a shape defect and a totals mismatch as two separate, never-merged findings. It holds no QFC-type or currency-code rule table and is not a filing.",
        "qfc_code_handling": "QFC type and currency code on each file row are opaque strings. Nothing in this computation branches on the text of either, and no table of part 371 QFC contract-type codes or currency codes is held here.",
        "rationale": [
          "Part 371 recordkeeping file validation for institution reference IDI-SYNTH-0001 as of 2026-06-30, over 2 supplied file rows.",
          "Every supplied row conforms to the part 371 appendix record layout: 2 rows carried every required field and no position identifier repeated.",
          "The file's totals tie out exactly against the supplied control-total summary across every tied field.",
          "QFC type and currency code on each file row are opaque strings. Nothing in this computation branches on the text of either, and no table of part 371 QFC contract-type codes or currency codes is held here.",
          "Position identifier and counterparty identifier are enumerable low-entropy identifiers within the meaning of SPEC.md section 25.1. Both arrive at this kernel already salted (sha256-salted@1); the kernel uses each only to detect a repeated position or count distinct counterparties, and no raw identifier or salt ever enters this computation.",
          "This validates the shape of a supplied 12 CFR part 371 qualified-financial-contract recordkeeping file against the appendix's published record layout and ties the file's declared totals to a supplied control-total summary. It is not a filing, it does not produce the part 371 appendix submission format, it carries no claim that the FDIC or the institution's primary regulator would accept the file, and it offers no advice on whether a particular contract is a covered QFC. That determination is made under 12 CFR part 371 by the institution and its counsel, never here."
        ],
        "supplied_row_count": 2,
        "totals_mismatch": false
      }
    }
  }
},
    {
  "tool_id": "art-538-custody-segregation-ratio",
  "tool_version": "1.0.0",
  "display_name": "Custody Segregation Ratio",
  "mcp_name": "compute_custody_segregation_ratio",
  "mandate_type": "compliance_control",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-538-custody-segregation-ratio.html",
  "description": "Generic, jurisdiction-neutral custody-segregation check: segregated_custody_assets_musd / customer_claims_musd, per asset class and rolled up. FULLY_SEGREGATED at or above 1.0, UNDER_SEGREGATED below it, OVER_SEGREGATED above an optional configurable ceiling. A zero-claims line resolves segregation_ratio null and status NO_CLAIMS_OUTSTANDING -- never a division artifact. Aggregate totals only (no per-customer or per-wallet line item). SEC Rule 15c3-3 possession-or-control (17 CFR 240.15c3-3(b)) is named as one crosswalk-annex instance among possibly several -- the arithmetic does not depend on that citation, and the SEC 15c3-3 Exhibit A reserve formula stays a distinct, unedited node (art-396).",
  "input_schema_ref": "chaingraph/art-538-custody-segregation-ratio.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8791e2f24a2de92cbb8f32606cebc9fae0e42650fa20eecd57129ecd6c2fd8a8",
      "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": "Gm0C/o7WGaYLe6H/o1VTTingSrmwNY9KgZa/Vy0bl6wk9lEi743VanUTyyZ91AlcJhJsLtxLeQTfRV7x1GUhAxwjAP+DMUmbXcAOZAVmT06TqBSAuFedCZq+kaTb7nkoIDuRnsizAUf5laYFzWxq9O/wm+WzEfQFOYIirvWiAq8RY6QEtksRRujG+1IfkYFtzIsYuZVdQxrLPknlQKrI/xS8GXyHMLkPgNkFnlJK0d1ffaifocsZe5BQBLjnY5doKZch+gKUmwsEQFjrs0jIUphwHVPbbbsDKW10sKWIzPUkBANCPt5c9omwIYCDGaMBfhWSlZmNIvuEVjPAAj5RqA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8791e2f24a2de92cbb8f32606cebc9fae0e42650fa20eecd57129ecd6c2fd8a8",
      "output": {
        "custody_location_breakdown": {
          "cold_storage_multisig": 25,
          "qualified_custodian_bank": 90
        },
        "formula": "segregation_ratio = segregated_custody_assets_musd / customer_claims_musd",
        "line_items": [
          {
            "asset_class": "BTC",
            "customer_claims_musd": 20,
            "segregated_custody_assets_musd": 25,
            "segregation_ratio": 1.25,
            "status": "FULLY_SEGREGATED"
          },
          {
            "asset_class": "cash",
            "customer_claims_musd": 50,
            "segregated_custody_assets_musd": 60,
            "segregation_ratio": 1.2,
            "status": "FULLY_SEGREGATED"
          },
          {
            "asset_class": "securities",
            "customer_claims_musd": 30,
            "segregated_custody_assets_musd": 30,
            "segregation_ratio": 1,
            "status": "FULLY_SEGREGATED"
          }
        ],
        "note": "Generic, jurisdiction-neutral segregation check over caller-supplied aggregate totals only (no per-customer or per-wallet line item). Attests the computation over the inputs supplied, not an audit of their source or a determination of regulatory compliance.",
        "over_segregation_ceiling": null,
        "segregation_ratio": 1.15,
        "status": "FULLY_SEGREGATED",
        "total_claims_musd": 100,
        "total_segregated_musd": 115
      }
    }
  }
},
    {
  "tool_id": "art-539-asset-liability-coverage",
  "tool_version": "1.0.0",
  "display_name": "Asset/Liability Coverage",
  "mcp_name": "compute_asset_liability_coverage",
  "mandate_type": "compliance_control",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-539-asset-liability-coverage.html",
  "description": "General, jurisdiction-neutral solvency check: total_assets_musd / total_liabilities_musd, plus surplus_shortfall_musd = total_assets_musd - total_liabilities_musd, per asset-class and liability-class breakdown, rolled up. COVERED at or above 1.0, SHORTFALL below it. A zero-liabilities line resolves coverage_ratio null and status NO_LIABILITIES_OUTSTANDING -- never a division artifact. Aggregate totals only (no per-customer or per-wallet line item). No single normative anchor exists for exchange-level asset/liability coverage (unlike bank capital-adequacy ratios elsewhere in the suite) -- stated explicitly rather than inventing a crosswalk citation.",
  "input_schema_ref": "chaingraph/art-539-asset-liability-coverage.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:a80285b47c468275f244648e19b225f0e740ed20c7f8925e658514529f807919",
      "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": "DP/ZcwIfZhayCSPjQ8DtJtjksLUBbELvQYI1gwIFPYIl95xZm5Gx+3awqo3AcHIXRhY152kx3IH1jmvjyv4uKQUZDruC+ASWk1uzwNtNzNwr86Up/UVo6O+/bccTtFzRGkevu34GKju60YV7GmRVLzVmTSBozh8q/PF+WeXGCXYXCJRh6CWY56aFpVxaX1lFhpH7gSomb3JrQppd0t409wapofjtuTjBnl86TcsSJTXNSgxLsfg4aqs1E1BAQlXQHwTcX9Ue/M/lFwRjEUyrGN4wfrlWvTyhO1hBGwxwH3AIrewzsS+5TlN3tFlU/pRcGKsYno3qeNlyieCLE+Sj0Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:a80285b47c468275f244648e19b225f0e740ed20c7f8925e658514529f807919",
      "output": {
        "asset_breakdown": [
          {
            "amount_musd": 60,
            "asset_class": "cash"
          },
          {
            "amount_musd": 25,
            "asset_class": "digital_assets"
          },
          {
            "amount_musd": 30,
            "asset_class": "securities"
          }
        ],
        "coverage_ratio": 1.9167,
        "formula": "coverage_ratio = total_assets_musd / total_liabilities_musd; surplus_shortfall_musd = total_assets_musd - total_liabilities_musd",
        "liability_breakdown": [
          {
            "amount_musd": 20,
            "liability_class": "accrued_liabilities"
          },
          {
            "amount_musd": 40,
            "liability_class": "payables"
          }
        ],
        "note": "General solvency-shape computation over caller-supplied aggregate totals only (no per-customer or per-wallet line item, no single normative regime anchor). Attests the computation over the inputs supplied, not an audit of their source or a determination of regulatory compliance.",
        "status": "COVERED",
        "surplus_shortfall_musd": 55,
        "total_assets_musd": 115,
        "total_liabilities_musd": 60
      }
    }
  }
},
    {
  "tool_id": "art-540-por-liabilities-composer",
  "tool_version": "1.0.0",
  "display_name": "PoR Liabilities Composer",
  "mcp_name": "compute_por_liabilities_composite",
  "mandate_type": "compliance_mandate",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-540-por-liabilities-composer.html",
  "description": "Composes a caller-restated art-280-reserve-proof-verifier inclusion result (soft-dep: inclusion_verified, computed_root.sum) with a caller-supplied aggregate reported_total_liabilities_musd figure. Computes reserve_to_liability_ratio and a composite_determination in {INCLUSION_AND_LIABILITIES_CONSISTENT, INCLUSION_FAILED, LIABILITIES_UNDERCOVERED, LIABILITIES_INPUT_MISSING}. Carries forward art-280's not_proven list plus its own: the liabilities figure is caller-asserted, not independently audited -- this node verifies internal consistency, it does not audit the liabilities source. Composes only; does not edit art-280's own kernel.",
  "input_schema_ref": "chaingraph/art-540-por-liabilities-composer.html#manifest",
  "consumes": [
    "art-280-reserve-proof-verifier"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:563cc673f35c6b1c66e152e11a07460a4cfa55b51028b1dcea2c42733e1b10c5",
      "valid_from": "2026-08-04"
    },
    {
      "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": "EnrKZ33EgGDHZgWzIich24QeGBcN7NTpKrwwZJV7KEwbwyJMnphhxjAWqPDGkDGwEFqdRqsrQo6+K7USxYqyzhM/7YXKeFsH7a5lxWmIahXHagTJux6rYhfAXhto94cvCqR/qhLPMDOMOnHsoOqXVqZ8Upd6RgMD6/QUj4PlgrUCu+whFHJSe6o6SV+OCVF6JjYaeZc1O9Oqh22TVevIMwCqtlwCWNi81PG0jzK3pGJURDoEPGiSzIMXBBZvpW1yGxp2yejGmN37LO4M23rtu7GQ5TBEum7uUDIrsVRBWO8ahAnFlUuiwXyANGmpuSMnoxwz4q2EWGmWCb3a8C+WxQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:563cc673f35c6b1c66e152e11a07460a4cfa55b51028b1dcea2c42733e1b10c5",
      "output": {
        "composite_determination": "INCLUSION_AND_LIABILITIES_CONSISTENT",
        "computed_root": {
          "sum": 120
        },
        "formula": "reserve_to_liability_ratio = computed_root.sum / reported_total_liabilities_musd",
        "inclusion_verified": true,
        "liabilities_attestation_source": "issuer_attested_balance_sheet",
        "not_proven": [
          {
            "detail": "Only the audited customer set is provable from a single-leaf inclusion proof. An issuer could omit accounts from the tree entirely and this proof cannot detect the omission.",
            "item": "Total liabilities completeness"
          },
          {
            "detail": "Pledges, rehypothecation, or liens against reserve assets are not visible in a Merkle-sum inclusion 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 performs no audit and carries no PCAOB or other audit-firm opinion; it is a cryptographic inclusion check only.",
            "item": "PCAOB audit opinion"
          },
          {
            "detail": "reported_total_liabilities_musd is caller-asserted, not independently audited -- this node verifies internal consistency between a PoR inclusion result and a claimed liabilities total, it does not audit the liabilities source.",
            "item": "Liabilities figure provenance"
          }
        ],
        "note": "Composes with art-280-reserve-proof-verifier (soft-dep, not_proven carried forward unchanged plus its own). Verifies internal consistency between a PoR inclusion result and a claimed liabilities total; does not audit the liabilities source. Voluntary industry practice (Summa-report-structure lineage), not a codified regime requirement as of this writing.",
        "por_input_supplied": true,
        "regulatory_framework": "Voluntary proof-of-reserves-plus-liabilities attestation practice; not a codified regime requirement as of this writing.",
        "reported_total_liabilities_musd": 100,
        "reserve_to_liability_ratio": 1.2
      }
    }
  }
},
    {
  "tool_id": "art-541-best-execution-recompute",
  "tool_version": "1.0.0",
  "display_name": "Best-Execution NBBO Recompute",
  "mcp_name": "recompute_best_execution",
  "mandate_type": "analytics_mandate",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-541-best-execution-recompute.html",
  "description": "Recomputes, per supplied fill, price improvement in basis points against the NBBO at time of execution -- price_improvement_bps = (nbbo_ask - execution_price) / nbbo_ask * 10000 for buys, (execution_price - nbbo_bid) / nbbo_bid * 10000 for sells -- and whether each fill cleared at-or-better than the NBBO. Aggregates pct_at_or_better, avg_price_improvement_bps, and fill_count over a bounded fill set (capped at 5,000 fills). No customer/order identifiers accepted. Reg NMS best-execution obligations and FINRA Rule 5310 are the US crosswalk entry; the core recompute is the generic shape any best-execution regime ultimately checks. Attests the computation over caller-supplied inputs only, not an audit of those inputs or a determination of regulatory compliance.",
  "input_schema_ref": "chaingraph/art-541-best-execution-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3fe3f8f91aee95249b6c690837eac8476621b70688946d1417dda593e4c1915c",
      "valid_from": "2026-08-04"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "G3An5dhfWQm/bvjGa3LfApDUt09IZTiH+my5nAxTypotZZeJ+GQYZ+3b70X13UhqJxJH28HF39XmwElOS0nBSyiqSUQq98xuJb8bmyJe5SIy2UtKj8JPpjJM8LCaevKmHRPkuIM+ThZuMUPxa9fiTxJAMUUzvgBq27FEJ+95IiEFhtQIj8bpLKsE5Occu3Bqh6cu9ZHo6fX7BD5037TXrCYpoTshiv1WvhDw+Wsfz89aUb7QMJbaepFbk6vG5kqaJJF2YrBhFuEOa89qftP++7+92cYkEqh8uEg14DmdWMwYIjZd3/Sh1yHoagIWbPBrgpwcQM0QEf6jISh/oWpA/g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3fe3f8f91aee95249b6c690837eac8476621b70688946d1417dda593e4c1915c",
      "output": {
        "avg_price_improvement_bps": 29.93,
        "fill_count": 2,
        "fill_set_ceiling": 5000,
        "fill_set_truncated": false,
        "fills": [
          {
            "at_or_better": true,
            "execution_price": 10.02,
            "index": 0,
            "nbbo_ask": 10.05,
            "nbbo_bid": 10,
            "price_improvement_bps": 29.85,
            "quantity": 100,
            "rejection_reason": null,
            "side": "buy"
          },
          {
            "at_or_better": true,
            "execution_price": 10.03,
            "index": 1,
            "nbbo_ask": 10.05,
            "nbbo_bid": 10,
            "price_improvement_bps": 30,
            "quantity": 200,
            "rejection_reason": null,
            "side": "sell"
          }
        ],
        "note": "Deterministic per-fill recompute of price improvement against the caller-supplied NBBO at execution time. Does not verify the source of the execution-price or NBBO figures, does not fetch live market data, and is not a determination of regulatory compliance.",
        "pct_at_or_better": 100,
        "regulatory_basis": "Reg NMS best-execution obligations (17 CFR 242) and FINRA Rule 5310; the price-improvement-vs-NBBO recompute is the generic shape any best-execution regime ultimately checks.",
        "rejected_count": 0,
        "rules_version": "best-execution-nbbo-recompute-2026.1",
        "scored_count": 2
      }
    }
  }
},
    {
  "tool_id": "art-543-csdr-penalty-recompute",
  "tool_version": "1.0.0",
  "display_name": "CSDR Penalty Recompute (Caller Reference Price)",
  "mcp_name": "recompute_csdr_penalty",
  "mandate_type": "compliance_mandate",
  "wave": 85,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-543-csdr-penalty-recompute.html",
  "description": "Per-ISIN/day CSDR cash-penalty recompute over a caller-declared open-fails set: selects the RTS asset-class/penalty-type daily rate (CSDR-RTS-2025-10, ESMA Final Report 13 Oct 2025), applies fail duration to a caller-supplied reference_price and quantity, credits partial settlement proportionally, and sums forward penalty exposure across the fails set. Fixes art-78-csdr-penalty-calculator's reachability defect -- art-78 priced off notional with no shipped pack able to feed it a differing reference_price; this node's schema instead requires a caller-supplied reference_price per fail. art-78 keeps its own identity and chain wiring unchanged. Supports an optional OCG Standard section 25 ocg-private-input@1 declaration (sha256-salted@1) for the ISIN and counterparty_id per fail, since a small ISIN/counterparty universe is enumerable by table lookup.",
  "input_schema_ref": "chaingraph/art-543-csdr-penalty-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b2b0ccaae79b05facefac2e7c9a2294abd353bd1978a163471dc45d28a8ed371",
      "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",
    "xlsx",
    "pdf"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "BP/Zc2UnWB1zmksW4WN3GlbdBlfIlbr/5Fe5YZeyFoYkxeEFa77nWWaNLNBGEG99PLZMQGuA0RrMQOGgvt6wJiZV23sLwjbR282JwGaNNY3Z0w5GIP7ghumgHQYRdjheDED3t3TIp2YNnYwFYalesLpAcF0mN3f5CMz+3MN5xlQtn4Kr3ZKI/ereg+pXdxFsEPSGlzdoB+C4uXVRaznCWBGvEXnOGZ6coFhn0vAYoEktiJQR3lQ+XeDctUlEfCzIHBaLFWeCfSMiosZDbU6/Q/eh0WNbqC96qvAVfEO9EvsoA1xIPKkTvqmURedITMu4rfgbjc+cNJKOLNPlGnev7w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b2b0ccaae79b05facefac2e7c9a2294abd353bd1978a163471dc45d28a8ed371",
      "output": {
        "decision": {
          "execution_state": "ran",
          "reason": null
        },
        "determinations": [
          {
            "asset_class": "equity",
            "counterparty_id": null,
            "daily_rate_bps": 1,
            "fail_days": 3,
            "fail_id": "FAIL-1",
            "gross_penalty": 30,
            "isin": "DE000TEST001",
            "isin_private": false,
            "partial_credit": 0,
            "partial_settled_pct": 0,
            "penalty_amount": 30,
            "penalty_type": "sefp",
            "quantity": 1000,
            "reference_price": 100
          }
        ],
        "fail_count": 1,
        "note": "DECISION-SUPPORT DRAFT -- not a regulatory penalty notice. Deterministic per-ISIN/day cash-penalty recompute against a versioned RTS rate schedule; verify against current CSDR Delegated Reg. (RTS) (EU) 2018/1229 as amended and ESMA RTS (Final Report 13 Oct 2025). Partial-settlement credit applies proportionally. reference_price is caller-supplied per fail -- never derived from notional (fixes art-78-csdr-penalty-calculator's reachability defect; art-78 itself is unchanged).",
        "rate_table_version": "CSDR-RTS-2025-10",
        "recompute_id": "DEMO-CSDR-2026Q3",
        "rejected_inputs": [],
        "total_penalty_exposure": 30
      }
    }
  }
},
    {
  "tool_id": "art-544-slate-report-validator",
  "tool_version": "1.0.0",
  "display_name": "SLATE Securities-Loan Report Field Validator",
  "mcp_name": "validate_slate_report_fields",
  "mandate_type": "compliance_mandate",
  "wave": 85,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-544-slate-report-validator.html",
  "description": "Field-level structural validator for a covered-securities-loan report record against the FINRA Rule 6500-series field spec (loan terms, rate, collateral type, counterparty) that FINRA Rule 6540 -- FINRA's implementation of SEC Rule 10c-1a securities-lending transparency reporting (SLATE) -- requires. Honestly scoped in the art-397 pattern: this schema-validates structurally (required fields present, enum membership, numeric/date parseability) and is explicitly NOT a full SLATE conformance engine -- no cross-record consistency check, no regulatory-timeliness check. Validate-never-transmit: never calls fetch, never calls an RNSA, never simulates submission -- readiness is not submission. Reporting compliance date is 2028-09-28 per the SEC's 2025-12-03 exemptive order (post-remand of NAPFM v. SEC, 5th Cir., 2025-08-25) -- re-verify against a then-current SEC.gov release before treating that date as load-bearing.",
  "input_schema_ref": "chaingraph/art-544-slate-report-validator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c5c25fd2786de8c58de81203d0b98ca4ebf1060401e29d6cd9594067d49c30c1",
      "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": "HVMpTcQkc/EKxkI60tvXuDJD8BByqxBVy9E1fw6MjqgRzcFNh1ldQyiJO/KYV+3W9/KDK+VQVKpP4sJFMeVyNxD37Ivau5KdzdBxRek1WkT314LWpFGVFW3hDFOP10qGHYoVT7C+PBc1NAyYOPJ7XVS9zJq4k+Wr0yJgrKOMOIEkGSKvU+93VVAbuvVHWr3LqmNs6OJBPU8dczx8s+xQIhvZvsO+wN8NFRGlibo+GsZzUSlh8VjASWMd7eiL0JxPGzJoTn3JrUarngFsPlNrtJPVmTJxFiDTrA4n8ZUy3M4Azb1+F1GhvlhCS4Qbe/58uSoCpXAiSVWTV8r4XnG10g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c5c25fd2786de8c58de81203d0b98ca4ebf1060401e29d6cd9594067d49c30c1",
      "output": {
        "compliance_date_note": "SEC exemptive order (2025-12-03), issued after the Fifth Circuit remand-without-vacatur in NAPFM v. SEC (2025-08-25), sets the Rule 10c-1a reporting compliance date at 2028-09-28 -- verify against a then-current SEC.gov release before relying on this date.",
        "field_spec_version": "finra-rule-6540-6500-series-field-spec-2026.1",
        "regulatory_basis": "FINRA Rule 6540 (Securities Lending and Transparency Engine reporting, implementing SEC Rule 10c-1a); Rule 6500-series field definitions (loan terms, rate, collateral type, counterparty).",
        "reports_checked": 1,
        "reports_valid": 1,
        "scope_note": "Field-level structural validator only -- schema-validates report records against the FINRA Rule 6500-series field spec. This is explicitly NOT a full SLATE conformance engine: no cross-record consistency check, no regulatory-timeliness check. Validate-never-transmit: this tool never calls fetch, never calls an RNSA, and never simulates submission -- readiness is not submission.",
        "violations": []
      }
    }
  }
},
    {
  "tool_id": "art-545-slate-readiness-diagnostic",
  "tool_version": "1.0.0",
  "display_name": "SLATE Reporting Readiness Diagnostic",
  "mcp_name": "run_slate_reporting_fit",
  "mandate_type": "compliance_mandate",
  "wave": 85,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-545-slate-readiness-diagnostic.html",
  "description": "Score a caller-declared covered-securities-loan reporting pipeline against the FINRA Rule 6540 obligation checklist (SEC 10c-1a implementation, SLATE reporting) across five dimensions: reporting-agent registration, same-day capture of new/modified/terminated loans, Rule 6500-series field-spec mapping, a unique loan-identifier scheme, and recordkeeping retention. Returns an A-F grade and a gap list. Honestly scoped in the art-397 pattern: a declared-state checklist diagnostic, not a conformance engine, and not a substitute for art-544-slate-report-validator's field-level structural validation of an actual report record. Validate-never-transmit: never calls fetch, never calls an RNSA, never simulates submission -- readiness is not submission. Second stage of the slate-reporting-readiness chain, receiving from art-544.",
  "input_schema_ref": "chaingraph/art-545-slate-readiness-diagnostic.html#manifest",
  "consumes": [
    "art-544-slate-report-validator"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4b87c5c2bfd4fe2fd1af9582a401b4cc75061a9f49df2e5204901721740ce94b",
      "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",
    "pdf",
    "vc"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AEQxfpQckPqMNhZTkWPSv6ZZmM4NbJUPQa4Gdi+w5vYHEYpyXCo/tV4IkP+rCONtc9hC7xvq3rG7JvvSfEPPfxMq58aYz334rj40twq+/Vw/f0Gx5Uhf9sW/ctq3j2ZSD67VkOQO+7JgoCjW7oo2OvFGyH1uuZV1xz2OJCmGMhkpf7qn/42zXKXs38w7dCZhyzs9XT1PoIjdmYab6Y+d7Rja7S1o9Jool+Y+zRytb4A7E8IUkFGKxNvxfEWcDSqNGpaFJqSQu9GahN4uc19X2VY6ZfDqDQZGwIfn4ddPTOkJssetG6qzfuj+TXwR6Df32rnO64Rf7J3c5WiaRHxJ1w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4b87c5c2bfd4fe2fd1af9582a401b4cc75061a9f49df2e5204901721740ce94b",
      "output": {
        "compliance_date_note": "SEC exemptive order (2025-12-03), issued after the Fifth Circuit remand-without-vacatur in NAPFM v. SEC (2025-08-25), sets the Rule 10c-1a reporting compliance date at 2028-09-28 -- verify against a then-current SEC.gov release before relying on this date.",
        "dimensions_passed": 5,
        "gaps": [],
        "grade": "A",
        "obligation_checklist_version": "finra-rule-6540-obligation-checklist-2026.1",
        "ready": true,
        "regulatory_basis": "FINRA Rule 6540 (Securities Lending and Transparency Engine reporting, implementing SEC Rule 10c-1a) obligation checklist.",
        "scope_note": "Declared-state readiness diagnostic only -- scores a caller-declared reporting pipeline against the Rule 6540 obligation checklist. This is explicitly NOT a full SLATE conformance engine and does not replace art-544-slate-report-validator field-level structural validation of an actual report record. Validate-never-transmit: this tool never calls fetch, never calls an RNSA, and never simulates submission -- readiness is not submission."
      }
    }
  }
},
    {
  "tool_id": "art-546-dtcc-ca-iso20022-validator",
  "tool_version": "1.0.0",
  "display_name": "DTC Corporate Actions ISO 20022 Message Validator",
  "mcp_name": "validate_dtcc_ca_iso20022_message",
  "mandate_type": "compliance_mandate",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-546-dtcc-ca-iso20022-validator.html",
  "description": "Validates the structural message-shape of a single DTC corporate-action event message (notification / election / allocation) against the ISO 20022 field set migrated under DTCC Important Notice 23890-26 (legacy corporate-actions message format decommission -- a DTCC operator mandate, not a regulatory deadline: PSE testing 2026-01, Test Facility 2026-03, PROD testing 2026-07, legacy decommission Q3 2027). Checks required-field presence per message function, ISO 20022 CAEV event-type code, CUSIP format, DTC participant number, and date formats. Message-shape validation only -- does NOT compute entitlement, dividend, rights, or split amounts; that half is corporate-action entitlement recompute (art-547), which chains from this node's output.",
  "input_schema_ref": "chaingraph/art-546-dtcc-ca-iso20022-validator.html#manifest",
  "consumes": [],
  "feeds": [
    "art-547-corporate-action-entitlement-recompute"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d75e8ba52e5757fe63fdf1f096b7135b083a72c97193a57fd6f9a3593a36e432",
      "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": "EeWNTQEGBxe5nWVczj8t/N6F0/TvoB70VnEGoRxcHBIZ/O5h+1xPribZszRXcgM7lPiSOWbsEuR+rjQnGHWFWycdwPDCM8dk++pATO/b8++odXGP3bXSsZiAk+/jVjIeInkR6C/aHnRQjACEZ3iaHY77cO+C5z+YTcXvS0loqCYZ2odXMVFueeZyfF7lRy+YOcu/x1jg4FBQZ669UKWKbi5kLcDNGDV0Ms7a/vDeTSTJ2bndGqci89paPrVZTVbDElrbNtieSvyxwFkgCYJd9AyLckmL3Gi3HtnGFMZYbSkTsok+kI/Pty05AN0PHZaDAHq8PMby0gspCvZkMiuXzQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d75e8ba52e5757fe63fdf1f096b7135b083a72c97193a57fd6f9a3593a36e432",
      "output": {
        "disambiguation": "validate_dtcc_ca_iso20022_message checks structural message-shape validity (required fields, CAEV code, CUSIP/date formats) of a single DTC corporate-action event message (notification / election / allocation). It does NOT compute entitlement, dividend, rights, or split amounts -- for deterministic entitlement math per record date use corporate-action entitlement recompute (art-547), which chains from this node's output.",
        "dtcc_operator_mandate_basis": "DTCC Important Notice 23890-26 -- legacy corporate-actions message format decommission (DTCC operator mandate: PSE testing 2026-01, Test Facility 2026-03, PROD testing 2026-07, legacy decommission Q3 2027). This is a market-infrastructure migration deadline set by DTCC as CSD operator, NOT a regulatory or statutory deadline.",
        "error_count": 0,
        "event_type": "DVCA",
        "message_function": "NOTIFICATION",
        "not_legal_advice": "Not legal, tax, or accounting advice. Message-shape validation output requires review by qualified operations staff before use in production DTC CA processing.",
        "pii_note": "ZERO PII: CUSIP, DTC participant number, event codes, and dates only. No beneficial-owner name, account, or personal identifier enters this kernel -- use synthetic reference IDs.",
        "readiness_pct": 100,
        "reference_id": "CA-OPAQUE-2027-0001",
        "structure_valid": true,
        "table_source": "DTCC Important Notice 23890-26 (legacy corporate-actions message format decommission -- DTCC operator mandate); ISO 20022 seev.031/seev.033/seev.035 corporate-action message family field set",
        "table_version": "DTC-CA-ISO20022-FIELDSET-23890-26-V1",
        "violations": []
      }
    }
  }
},
    {
  "tool_id": "art-547-corporate-action-entitlement-recompute",
  "tool_version": "1.0.0",
  "display_name": "Corporate Action Entitlement Recompute",
  "mcp_name": "recompute_corporate_action_entitlement",
  "mandate_type": "compliance_mandate",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-547-corporate-action-entitlement-recompute.html",
  "description": "Deterministic dividend/rights/split entitlement math per record date for a single position, under the ISO 20022 corporate-action event field set migrated by DTCC Important Notice 23890-26 (legacy corporate-actions message format decommission -- a DTCC operator mandate, not a regulatory deadline: PSE testing 2026-01, Test Facility 2026-03, PROD testing 2026-07, legacy decommission Q3 2027). entitlement = position_qty x ratio_or_rate, with rounding/proration rules per corporate-action type -- all caller-supplied, no security-master lookup, no market-data fetch. Entitlement math only -- does NOT validate DTC ISO 20022 message shape; that half is the message-shape validator (art-546), which chains into this node's input.",
  "input_schema_ref": "chaingraph/art-547-corporate-action-entitlement-recompute.html#manifest",
  "consumes": [
    "art-546-dtcc-ca-iso20022-validator"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:426290aa93af154925c8418526e40ce47f1ccab54eb19febae4774c50041c1b3",
      "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": "FBkX+HmnjOVqP1i5qM4St+daF4HqbLKHOl9jahdczxUUthzGbIURm/xcxifBJHkHs7snSOBaQm6Op7KNUuNxFhMlZfZ1p+xPqdRjxVk3+slx56cGkAJtyjsTT1wVV4k3Bz2M8N7zforVioXTPuwfhIWdGh26De2F1NYInE6G6coQ7Z+rCe0aUsBsMtib8PhDszA5e/bUcShypbQ7W3exEiXbZJEvIaJY7UWdtnOVk5s0+0W8S6WIThIR0DUWPuiTCMv87qMN/zOWH5gkinKeXRLJ4XETgocu1oWgMFY8nvwdRXWLFtNyNFNf9xlgeFDLwKQlV21isNurFra6i8WAZg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:426290aa93af154925c8418526e40ce47f1ccab54eb19febae4774c50041c1b3",
      "output": {
        "cash_entitlement": 504,
        "corporate_action_type": "DVCA",
        "disambiguation": "recompute_corporate_action_entitlement computes deterministic dividend/rights/split entitlement (entitlement = position_qty x ratio_or_rate, with per-type rounding/proration) for a single position at a record date. It does NOT validate DTC ISO 20022 message shape -- for structural message-shape validation use the DTC CA ISO 20022 message validator (art-546), which chains into this node's input. Fractional-share residue is FLAGGED, never priced -- this kernel fetches no market data and performs no security-master lookup.",
        "dtcc_operator_mandate_basis": "DTCC Important Notice 23890-26 -- legacy corporate-actions message format decommission (DTCC operator mandate: PSE testing 2026-01, Test Facility 2026-03, PROD testing 2026-07, legacy decommission Q3 2027). This is a market-infrastructure migration deadline set by DTCC as CSD operator, NOT a regulatory or statutory deadline.",
        "entitlement_computed": true,
        "entitlement_mode": "CASH",
        "error_count": 0,
        "fractional_shares": null,
        "fractional_shares_present": false,
        "not_legal_advice": "Not legal, tax, or accounting advice. Entitlement recompute output requires review by qualified operations staff before use in production DTC CA processing.",
        "pii_note": "ZERO PII: position quantity, rate/ratio, corporate-action type, and record date only. No beneficial-owner name, account, or personal identifier enters this kernel -- use synthetic reference IDs.",
        "reference_id": "CA-OPAQUE-2027-0001",
        "table_source": "DTCC Important Notice 23890-26 (legacy corporate-actions message format decommission -- DTCC operator mandate); ISO 20022 seev.031/seev.033/seev.035 corporate-action message family field set",
        "table_version": "DTC-CA-ISO20022-FIELDSET-23890-26-V1",
        "violations": [],
        "whole_shares": null
      }
    }
  }
},
    {
  "tool_id": "art-548-vop-readiness-diagnostic",
  "tool_version": "1.0.0",
  "display_name": "VoP Readiness Diagnostic",
  "mcp_name": "run_vop_readiness_diagnostic",
  "mandate_type": "vop_readiness_attestation",
  "wave": 52,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-548-vop-readiness-diagnostic.html",
  "description": "EU Instant Payments Regulation Verification-of-Payee (VoP) readiness/consistency diagnostic. Deterministically classifies a caller-declared match_score against caller-declared thresholds into match, close_match, no_match, or not_verifiable, then cross-checks that classification against the caller-declared psp_vop_response_code -- flagging, never silently correcting, a mismatch. Outcome-attestation shape, not recompute-the-match: this node does not implement the EPC VoP fuzzy name-matching algorithm and makes no live IBAN/account-holder-name directory call. Carries an OCG Standard §25 ocg-private-input@1 declaration: the IBAN, payee name, and account-holder identifier (if collected) are committed via sha256-salted@1, never in the clear. Distinct from simulate_vop_matching (art-11, a batch aggregate match-rate analyser using its own similarity math), score_payee_name_match (art-376, computes a name-match score from a name pair), and build_vop_session_receipt (art-377, builds the downstream session receipt); use this node for the upstream threshold/response-code consistency check. ZERO plaintext PII disclosed.",
  "input_schema_ref": "chaingraph/art-548-vop-readiness-diagnostic.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:9d9df2ce31e5a6665cd88ed8ad73de1b8f1ca8cb79273dab000d5ea53ef8fa76",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:adf39b5c4e8fe19f9dbc25e2b8eb84090f0ee6c9370f14ad10d5039e8e65b0ec",
      "valid_from": "2026-08-04"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:adf39b5c4e8fe19f9dbc25e2b8eb84090f0ee6c9370f14ad10d5039e8e65b0ec",
    "seal": "GtamGW8nRm4DMcBBILUgOKxBa59e9LOeTfWQH1dNTvMwTll+tqzSw7FwReRd6s8UAeShoxo8T/bEB+J+FUIFKh+cpslrpmGIEQA/Gsyl02pmQi3FTcvMp/7/uQnkjnfFIT1fQE3u8wBwsS44DgtJRnxJ5OdNMXX6esaWwBFznmMK3aSdPHh2V5Su+Rpi6A48PAaafZL1isAwdE8TbCRmWCfoeOOQgkMn0n56hkbbDeSjcPNpToYGNllU+7K7d0S8G71dgJlrKI1S1dteJcGdBvt1D7HPwsKg20YGnZ4mMpAvBkotBiOkls15A2y/mdAZfXttlcxpHuy4JR7+XWW13Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "commitment": "sha256:d0261b5555a4df1d5fbed786c9a8977e8196c81c8859cfcf683fadfea157ea91",
      "commitments": [
        "sha256:d0261b5555a4df1d5fbed786c9a8977e8196c81c8859cfcf683fadfea157ea91",
        "sha256:47048eda633d4509b69fc56390c9240f0e33d759b98493d3cc7385bd672b8815"
      ],
      "kernel_digest": "sha256:9d9df2ce31e5a6665cd88ed8ad73de1b8f1ca8cb79273dab000d5ea53ef8fa76",
      "output": {
        "classification": "match",
        "consistent": true,
        "match_score_provided": true,
        "not_legal_advice": "Not legal advice. A Verification-of-Payee readiness determination requires review by a qualified payments-compliance officer against the applicable PSP VoP Rulebook implementation.",
        "pii_note": "ZERO plaintext PII disclosed: the IBAN, payee name, and account-holder identifier (if collected) are private witnesses, committed via sha256-salted@1 (OCG Standard §25 ocg-private-input@1) and never present in policy_parameters or output_payload in the clear. Only the threshold classification and consistency verdict are public.",
        "psp_declared_maps_to": "match",
        "psp_vop_response_code": "MTCH",
        "regulatory_basis": "EU Instant Payments Regulation (Regulation (EU) 2024/886), Verification-of-Payee obligation — in force 2025-10-09 for euro-area PSPs, 2027-07-09 for non-euro-area PSPs. The EPC VoP Rulebook leaves the fuzzy name-matching algorithm to vendor-selected engines with EBA-suggested, not mandated, thresholds; this diagnostic only recomputes the deterministic threshold classification and cross-checks it against the PSP-declared response code.",
        "scope_note": "This is a readiness/consistency diagnostic over caller-declared inputs, not a claim that this node performed IBAN or payee-name verification. It does not query any IBAN or account-holder directory and does not implement the EPC VoP fuzzy name-matching algorithm."
      }
    }
  }
},
    {
  "tool_id": "art-549-g20-corridor-cost-gap",
  "tool_version": "1.0.0",
  "display_name": "G20/FSB Corridor Cost-Gap Calculator",
  "mcp_name": "check_g20_corridor_cost_gap",
  "mandate_type": "risk_parameter",
  "wave": 90,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-549-g20-corridor-cost-gap.html",
  "description": "Recomputes a caller-declared cross-border payment corridor's cost gap against the hardcoded G20/FSB roadmap targets: retail cross-border payments end-2027 (no more than 1% global average, no more than 3% any corridor) and remittances 2030 (no more than 3% global average, no more than 5% any corridor). The caller supplies the corridor's observed total-cost percentage (as integer basis points), sourced from World Bank Remittance Prices Worldwide (RPW, methodology Q325) or elsewhere; this kernel never vendors RPW's own corridor cost table, only the published target arithmetic. Zero live FX/rate calls. These are transparency and benchmarking targets, not an enforceable deadline against any single firm -- not a compliance-gate. Not the US Reg E remittance disclosure recompute (see art-reg-e-remittance-disclosure-check for that).",
  "input_schema_ref": "chaingraph/art-549-g20-corridor-cost-gap.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:466123f62f6e6d1ee5414ed2b8d39004b3677e2cac5a9934c3c146bb1568975d",
      "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": "LKN04sn+e8RIBaiPLvtkWYB5qDAzEUTK4TPMfZWYEZ0la1QIYFDxN+XK/+RAZ0jWf6+N0D78IkQKIByvZ3/o0gsQiNExC8KLH7+2d+ZmFJU77KSwy21bfBvnsWlg097KDixaVFuuAyeWCxNQXzPgXmk6IQVz8K/K79+h+PK6iHYSjiOErdU5rgiuBI3YMySy9Xv4+aXsSZVxyV1VvnqRexzBDGCkc84EPdzAHzLenCCuxezUVorWJIGySlpZs51YLRs1PhYdc0XgeVHNcyxzIwFIeOICWH2q4yzEmzYGd9QrONtBZtD91XDyYNOH43pT1WKERh0xzRtIbYtKDcVEeQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:466123f62f6e6d1ee5414ed2b8d39004b3677e2cac5a9934c3c146bb1568975d",
      "output": {
        "as_of": "2026-08-01",
        "corridor_pair": {
          "receive_country": "MX",
          "send_country": "US"
        },
        "gap_bps": -50,
        "gap_pct_display": "-0.50%",
        "meets_target": true,
        "note": "Deterministic recompute of a caller-declared corridor's cost gap against the hardcoded G20/FSB roadmap target for the declared year. Zero live FX/rate calls; the caller supplies the observed cost, sourced from World Bank RPW or elsewhere, and this kernel never embeds or vendors RPW's own corridor cost table. Targets are transparency/benchmarking figures, not an enforceable deadline against any single firm.",
        "observed_cost_bps": 250,
        "observed_cost_display": "2.50%",
        "rationale": [
          "Corridor US→MX, observed cost 2.50% on the USD 200 RPW basket, checked against the 2027 target (\"G20/FSB 2027 retail target: ≤1% global avg / ≤3% any corridor\").",
          "gap_pct = observed 2.50% - target 3.00% (any-corridor ceiling) = -0.50%. Corridor meets the target.",
          "Global-average target for this year (1.00%) is reported for context only -- it describes the overall market average, not this single corridor, and is not itself checkable from one corridor's observed cost.",
          "These are G20/FSB roadmap targets, not an enforceable deadline against any single firm. This is a transparency/benchmarking recompute, not a compliance-gate verdict.",
          "Corridor cost table sourced by the caller from World Bank Remittance Prices Worldwide (RPW) (methodology Q325, https://remittanceprices.worldbank.org/methodology) or elsewhere; this kernel does not embed or vendor RPW's own corridor cost data."
        ],
        "rejected_inputs": [],
        "rpw_methodology": {
          "name": "World Bank Remittance Prices Worldwide (RPW)",
          "url": "https://remittanceprices.worldbank.org/methodology",
          "version": "Q325"
        },
        "send_amount_basis": "USD_200",
        "target_any_corridor_bps": 300,
        "target_any_corridor_display": "3.00%",
        "target_basis": "G20/FSB 2027 retail target: ≤1% global avg / ≤3% any corridor",
        "target_global_avg_bps": 100,
        "target_global_avg_display": "1.00%",
        "target_scope": "retail cross-border payments",
        "target_year": 2027
      }
    }
  }
},
    {
  "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
      }
    }
  }
},
    {
  "tool_id": "art-551-mt101-coexistence-readiness-diff",
  "tool_version": "1.0.0",
  "display_name": "Swift MT101 Coexistence Readiness Diff",
  "mcp_name": "check_mt101_coexistence_readiness",
  "mandate_type": "compliance_mandate",
  "wave": 84,
  "gpu": false,
  "url": "https://ainumbers.co/tools/577-mt101-coexistence-readiness-diff.html",
  "description": "Evaluates Swift CBPR+ MT101 message-type retirement readiness ahead of the 2026-11-14 coexistence deadline, when FI-to-FI bulk/multiple payment initiation drops MT101 (FIN) in favor of pain.001v9 (ISO 20022 MX). Caller declares the message format currently in production (MT101 or pain.001v9) and a structural self-declared readiness checklist -- does the sender's system already emit pain.001v9 for bulk FI-to-FI, is a fallback path staged, has the correspondent confirmed it can receive pain.001v9. The kernel deterministically recomputes `ready` and `days_to_deadline` from the fixed deadline constant and a caller-supplied `as_of_date`. Distinct from art-548 (Fedwire/CHIPS structured-address remediation, deadline 2026-11-16, a different sub-mandate one day apart).",
  "input_schema_ref": "tools/577-mt101-coexistence-readiness-diff.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3c1274fc147ac5bb67216765094aaf175766d6505785a4e2a5d45f7f9fd4983d",
      "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": "IxWjUW9C4twIAqysPHrpUGc1kJZQVA/+S+l+4IQFs4ojz1RgFT/4jtXkRJ4Q0tRSYmkjW1HbeDNXLOtNCQvZvxz4/z4mIeQ8YoIRrV3J7llaHvFR84krAzTCnae4/OQKCWXokdjbf/ymRiRJ+veFjdUXDEISDOdGvjt6n91FwKAX5uqKZ5VCujEQAGKnTB/P+dz/POD2zpqGug9glKQUQSqz4O1CcMTi6wpr8FdkDD3wsTfPoX9v0gvIEihcw3H9B+gycDJMfXcCTpgKs0dfOhQzVylJt95suYnfA8oYpwwDB/MyoKRmSUV5rTKeq/k7a6BXA4WwbAZZZvajr1rTTg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3c1274fc147ac5bb67216765094aaf175766d6505785a4e2a5d45f7f9fd4983d",
      "output": {
        "as_of_date": "2026-09-01",
        "checklist": {
          "correspondent_confirmed_receipt": false,
          "emits_pain001v9_bulk": true,
          "fallback_path_staged": false
        },
        "current_message_format": "PAIN.001V9",
        "days_to_deadline": 74,
        "disambiguation": "check_mt101_coexistence_readiness evaluates Swift CBPR+ MT101 message-type retirement readiness (deadline 2026-11-14) from a caller-declared current message format and a structural self-declared checklist. It is distinct from fedwire_remediation_diff_receipt (art-548), which diffs Fedwire/CHIPS structured-address remediation (deadline 2026-11-16) -- a different sub-mandate, one day apart.",
        "mt101_coexistence_deadline": "2026-11-14",
        "past_deadline": false,
        "pii_note": "All fields are structural/operational declarations about a payment-system configuration. No party PII enters this kernel.",
        "readiness_gaps": [],
        "ready": true,
        "regulatory_basis": "Swift CBPR+ / ISO 20022 programme: FIN MT101 to pain.001v9 migration, FI-to-FI bulk/multiple payment initiation coexistence window closes 2026-11-14.",
        "structural_issues": [],
        "table_source": "Swift CBPR+ MT101 to pain.001 migration guidance -- FI-to-FI bulk/multiple payment initiation coexistence window closes 2026-11-14, after which only ISO 20022 pain.001v9 is accepted for this message type (swift.com/standards/iso-20022/iso-20022-programme).",
        "table_version": "SWIFT-CBPR-MT101-COEXISTENCE-2026-V1"
      }
    }
  }
},
    {
  "tool_id": "art-557-record-index-constituents",
  "tool_version": "1.0.0",
  "display_name": "Record Index Constituents",
  "mcp_name": "record_index_constituents",
  "mandate_type": "attestation_mandate",
  "wave": 90,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-557-record-index-constituents.html",
  "description": "Gives an index's constituent set, as of a stated date, its own citable execution_hash -- the BMR/SEBI-shaped starting point ('what was in the index and why') that every downstream weighting or rebalance artifact cites rather than re-declaring. Attests that a declared constituent set exists exactly as stated, selected under a stated eligibility-criteria description, over caller-supplied constituent rows (security_id, name, sector, country) and a declared selection universe size. HARD FENCE: every constituent row and the eligibility-criteria description are supplied and asserted, never fetched (zero-egress); this attests THAT a declared set exists as stated, never whether the criteria was correctly applied against underlying market data, never a live index-provider feed. First entry of the Financial Index/Benchmark Administrator Lineage family, alongside the forthcoming compute_index_weights, compile_rebalance_evidence_pack and record_index_correction. Not fund NAV recomputation (art-373) or any benchmark-publisher scorecard. Corrections cite the prior artifact via the SPEC.md top-level supersedes field, not a bespoke status registry. EU Benchmark Regulation (BMR, Regulation (EU) 2016/1011) and SEBI benchmark-administrator framework citations informative only.",
  "input_schema_ref": "chaingraph/art-557-record-index-constituents.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; constituent-set recording is a continuous administrator control, not a periodic filing.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:9fa0ed744db004c384a593d82dbf01220683bac4c5daef6601790bfb5ffbd175",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-06"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GVG7CPtOeyvDljyqvYNOcSOXSNqY8tIl1UvlMUUOkYIZNdLJAZSBZCvwDXI9qqIY79rNR/aKsVsYRw0c+8xrmh5tSzvZyx3Ff1nrB6E1GwfQh3BhbkPbu8VRrk9776LMJubspVYA5p6MPJ6d5/NKj1NMFpoCBpKdmm0XG91TmPMO+cErCFGLyGxskKo6gXSzla/Dd9HjzcAGUMXXUGHJVBDeTgSmnOeecaelXqjEPZIlGlQUWUdgUzcfs3osqDnBCfhNs4igp9Unn40WVPqqbfFimoQxLMdB7Qf/smjrGlwqlcTpNl3EhxRnK6q9/zcg9PU1Ri6vNrxBGPm6f7tVmA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:9fa0ed744db004c384a593d82dbf01220683bac4c5daef6601790bfb5ffbd175",
      "output": {
        "as_of_date": "2026-08-05",
        "constituent_count": 3,
        "constituents": [
          {
            "country": "US",
            "name": "Alpha Corp",
            "sector": "Industrials",
            "security_id": "SEC-A"
          },
          {
            "country": "GB",
            "name": "Beta Ltd",
            "sector": "Financials",
            "security_id": "SEC-B"
          },
          {
            "country": "FR",
            "name": "Gamma SA",
            "sector": "Materials",
            "security_id": "SEC-C"
          }
        ],
        "eligibility_criteria_ref": "market-cap rank <=200, free-float >=15%, ADV >= threshold",
        "fence": "The constituent list, eligibility-criteria description, and selection universe size are SUPPLIED, asserted, and digested into this receipt. This kernel attests THAT a declared constituent set exists exactly as stated, selected under the stated criteria -- never a verification of the criteria against market data, never a live index-data feed (zero-egress by contract).",
        "index_id": "IDX-DEMO-100",
        "not_proven": [
          {
            "detail": "This kernel attests that a declared constituent set exists exactly as stated, selected under the stated criteria. It does not itself verify the criteria was applied correctly against underlying market data.",
            "item": "Eligibility-criteria application"
          },
          {
            "detail": "Every security_id, name, sector and country is caller-supplied and asserted. This kernel performs no index-provider or market-data lookups (zero-egress) and does not verify these values against any external source.",
            "item": "Constituent-data accuracy"
          },
          {
            "detail": "All inputs are point-in-time as supplied by the caller for the stated as_of_date; this kernel makes no claim about a live or real-time index-provider feed and makes none of its own calls.",
            "item": "Live index-data feed"
          },
          {
            "detail": "EU Benchmark Regulation (BMR, Regulation (EU) 2016/1011) and SEBI benchmark-administrator framework references, where used downstream, are informative context only; this kernel makes no claim of compliance with either.",
            "item": "Regulatory benchmark-administrator compliance"
          }
        ],
        "regulatory_framework": "EU Benchmark Regulation (BMR, Regulation (EU) 2016/1011) and SEBI benchmark-administrator framework references are informative context only; this kernel makes no compliance claim under either.",
        "selection_universe_size": 200,
        "structural_error": null
      }
    }
  }
},
    {
  "tool_id": "art-558-record-fund-positions",
  "tool_version": "1.0.0",
  "display_name": "Record Fund Positions",
  "mcp_name": "record_fund_positions",
  "mandate_type": "attestation_mandate",
  "wave": 90,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-558-record-fund-positions.html",
  "description": "Gives a fund's declared positions snapshot, as of a stated valuation date, its own citable execution_hash -- the upstream input-receipt that the proven NAV chain (art-373-recompute-fund-nav) currently hashes internally, and that a separate wiring node can instead cite via an optional positions_ref rather than re-declaring the same holdings. Attests that a declared snapshot exists exactly as stated, over caller-supplied holdings rows (security_id, quantity, currency) and a declared shares_outstanding. HARD FENCE: fund_id, valuation_date, every holding row, and shares_outstanding are supplied and asserted, never fetched (zero-egress); this attests THAT a declared snapshot exists as stated, never whether it matches a custodian record, never a live position feed. Section 25 private-inputs review ruled not applicable and stated explicitly: holdings are echoed in cleartext by design, since the node's function is to give the declared snapshot a citable hash, not to hide it behind a commitment. Not fund NAV recomputation (art-373) and not a pricing input (a sibling record_pricing_inputs node covers pricing). Corrections cite the prior artifact via the SPEC.md top-level supersedes field, not a bespoke status registry.",
  "input_schema_ref": "chaingraph/art-558-record-fund-positions.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; positions recording is an upstream input step feeding NAV calculation, not a periodic filing.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:131eac7aaf5e372e1965aa999e673311441ba0a4febdaab6db2acae582e9496f",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-06"
    }
  ],
  "compute_proof_ready": "ready",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Cz0Tp7wVmgvGyk5lVa0tQJ97nC19CzAERxhRBZZ1+jMvGAbW5q6kvPPZE9yWKEQK/eu+MJmUM77/o256eczDsSRsqhYrU/lENt7ErBSJ8JjFH1SVW8MRogwGOTbF9JwgCBMI98pZxLQ6cSHD2H7Tow6+sfs2ozyZNHN80dOLAW4jIHjb/9OB7ZiidIew4cqM04pBaRE/3zb+SsKlLw8V9hlBai19U7BgwULo89MFQa6isS0uEUupawgqHtELUX9bAgV/ZqRsT0UDG8ucrGNAqSWWCi2nf17UmQgkYXZHr3AkcPy8Vw7iPtK6cOEohUBw3LVvohaSsvk0cnLoZjxq4w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:131eac7aaf5e372e1965aa999e673311441ba0a4febdaab6db2acae582e9496f",
      "output": {
        "disclosure_note": "Holdings are echoed here in cleartext by design (SPEC.md section 25 ruled not applicable, stated explicitly): this artifact's own execution_hash IS the positions_digest downstream lineage cites, never a second canonicalization or a salted commitment over the holdings. A caller who needs the snapshot itself kept out of a public artifact should not call this node, or should supply a redacted/aggregated snapshot -- that choice belongs to the caller.",
        "fence": "fund_id, valuation_date, every holding row, and shares_outstanding are SUPPLIED, asserted, and digested into this receipt. This kernel attests THAT a declared positions snapshot exists exactly as stated for the given fund and date -- never a verification against a custodian or fund-administrator record, never a live position feed (zero-egress by contract).",
        "fund_id": "FUND-DEMO-01",
        "holding_count": 3,
        "holdings": [
          {
            "currency": "USD",
            "quantity": 1000,
            "security_id": "SEC-A"
          },
          {
            "currency": "GBP",
            "quantity": 2500,
            "security_id": "SEC-B"
          },
          {
            "currency": "EUR",
            "quantity": 750,
            "security_id": "SEC-C"
          }
        ],
        "not_proven": [
          {
            "detail": "This kernel attests that a declared positions snapshot exists exactly as stated for the given fund and valuation date. It does not itself verify the snapshot against any custodian, prime broker, or fund-administrator record.",
            "item": "Custodian-record match"
          },
          {
            "detail": "Every security_id, quantity, and currency is caller-supplied and asserted. This kernel performs no custodian or market-data lookups (zero-egress) and does not verify these values against any external source.",
            "item": "Holdings-data accuracy"
          },
          {
            "detail": "All inputs are point-in-time as supplied by the caller for the stated valuation_date; this kernel makes no claim about a live or real-time position feed and makes none of its own calls.",
            "item": "Live position feed"
          },
          {
            "detail": "This kernel records a positions snapshot only. It performs no pricing, valuation, or NAV-per-share arithmetic -- that is art-373-recompute-fund-nav, which may cite this artifact's execution_hash via a positions_ref rather than re-declaring holdings.",
            "item": "NAV or pricing computation"
          }
        ],
        "shares_outstanding": 100000,
        "structural_error": null,
        "valuation_date": "2026-08-05"
      }
    }
  }
},
    {
  "tool_id": "art-559-attest-calc-agent-independence",
  "tool_version": "1.0.0",
  "display_name": "Calculation-Agent Independence Attestation",
  "mcp_name": "attest_calc_agent_independence",
  "mandate_type": "attestation_mandate",
  "wave": 91,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-559-attest-calc-agent-independence.html",
  "description": "Receipts the organizational-independence claim a parametric trigger's neutrality depends on: that the entity whose kernel computed a specific art-251/art-252/art-309 execution_hash declares no controlling or compensating relationship with a named interested party (cedant, sponsor, reinsurer, or other) to the outcome that trigger determines. Self-declared attestation only -- exactly like art-373's declared inputs and art-306's self-asserted reputation field -- it attests that independence was DECLARED, never that it was verified against an external corporate registry. A counterparty party_id is plaintext by default; a caller may instead supply it as a sha256-salted@1 commitment (SPEC.md §25) to withhold the identifier while still binding the attestation to it. Not a determination of independence and not a legal or regulatory finding -- a citable record of what was declared, and to which specific trigger computation. Distinct from art-306, which scores AI-agent execution-evidence completeness for underwriter pricing and produces no independence claim. Zero network, zero PII.",
  "input_schema_ref": "chaingraph/art-559-attest-calc-agent-independence.html#manifest",
  "deadline": null,
  "deadline_note": "A self-declared attestation carries no filing deadline; it is timestamped at generation and cites one trigger artifact by execution_hash.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:68c476b24ca693447d4153a954653832e6a9a62a35f2e0da3ac578eb163f74b0",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-06"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "B6GRY/3/v5TfivSclagWKbmrG7KcNfLeYAxTic/7lW0fEgpeCCbWXc6Gt1VOk9UX9apQcLSsNh/jgXinmVLroB40GnYiPom05qg4S5DWq3HHTcyTzoA3y/7F5En0Wj3ABOvfg9U4RunQYLaInb9mYJV52Yyxj1jnl9DCGbHmdbUrJ22kdaoQ6mjdHDHnj8eD2sUWW3l7Ak7qa67OAooetheFfUlSKTApWzCT+v8xDEIBbGOzVSXZUoWpu95lQknBIA03ZO0HKTDfyKFYvfoNuEakdSe+I9AAuV/wRc3iAUsHxktvvERvshLRjUQ6/M0/HfVdutb1y5sQ/LSxPIUNvg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:68c476b24ca693447d4153a954653832e6a9a62a35f2e0da3ac578eb163f74b0",
      "output": {
        "calc_agent_id": "did:web:calcagent-example.test",
        "disclosure_note": null,
        "independence_asserted": true,
        "interested_parties": [
          {
            "label": "asserted",
            "party_id": "cedant-example-co",
            "party_role": "cedant"
          },
          {
            "label": "asserted",
            "party_id": "sponsor-example-spv",
            "party_role": "sponsor"
          }
        ],
        "note": "Not a determination of independence -- a citable record of what was declared, and to which specific trigger computation. Whether the declaration is true is a fact for the parties and, on dispute, an arbitrator or court to establish. Self-declared only, never independently verified against an external corporate registry.",
        "rejected_inputs": [],
        "relationship_declaration": "none",
        "trigger_ref": {
          "execution_hash": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
          "tool_id": "art-251-compute-parametric-trigger-payout"
        }
      }
    }
  }
},
    {
  "tool_id": "art-560-oracle-price-aggregation",
  "tool_version": "1.0.0",
  "display_name": "Oracle Price Aggregation",
  "mcp_name": "oracle_price_aggregation",
  "mandate_type": "oracle_price_aggregation",
  "wave": 91,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-560-oracle-price-aggregation.html",
  "description": "Computes the aggregate price a decentralized oracle network would publish from a set of individual submissions, and gives that print its own citable execution_hash. Four aggregation mechanisms, each named by how it works rather than by any venue that runs it: median-filtered confidence-weighted mean (flag submissions deviating beyond a threshold from the unweighted median, then take the confidence-weighted mean of the survivors), stake-weighted median on the frequency convention (a submitter with twice the weight appears twice as often in the sorted list, never an average pulled toward the heavier weight), three-vote confidence median (each publisher votes price, price+confidence and price-confidence; the aggregate is the median of all votes and the aggregate confidence is the greater distance to the 25th and 75th percentile), and plain median with an f-of-n fault-tolerance readout. Supports an optional prev_print_hash citing the prior print of the same pair, which turns a series of same-pair prints into a walkable chain; omitting it reproduces the unlinked-print output byte for byte. HARD FENCE: every price, weight, confidence, timestamp and submitter id is supplied and asserted, never fetched (zero-egress); this simulates the aggregation step only, does not model the commit-reveal phase that precedes it, and never claims any real network did or would publish this number. A submitter id may be supplied as a sha256-salted commitment under SPEC.md section 25 to withhold the identifier while keeping the aggregation bound to it. Not a price feed and not a market-data source.",
  "input_schema_ref": "chaingraph/art-560-oracle-price-aggregation.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; oracle aggregation is a continuous per-epoch computation, not a periodic filing.",
  "consumes": [],
  "feeds": [
    "art-561-currency-basket-index"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ba126694afd24428319b321cbc06447608573deb30aaa75f5905a25146b3b91f",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-08"
    }
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New node shipped in a shard work unit. Proving runs on the asynchronous GPU queue after the shard lands and is assembled; no compute proof is claimed here, and compute_proof_ready is stated per artifact rather than hardcoded in the kernel.",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GctIqmgUOwSdGWiT80W/UTI0Qs5Hrlzpu8fuvYMNPYchL5cByTF4xlb92Czwcw9pFgkUY+3sCbKdl+dHbQ3BoB9m1qYMrqRpZT+yfBkgTgHh6yt01LzQg+K1C+AL31jtJlLM2e34fVKOQh4AfMauARINAjfNTppV+BQKBdn4DUYDTrnDDVv6QHFINZkgKVgOUc5udx4VBoSrOm58aDKQhCDWKtTWKDuAIJrPk4aJDxr415jC+wO5ITSJZ3Ov6MsMId+akdVVfx2ti9g0rsUA2Ee8aSRFS/y3rbRNkrvu6boXQ2aeY7cC19h6VHEiUJ5h9J7XFoaMegsKwFfWu0GHNg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ba126694afd24428319b321cbc06447608573deb30aaa75f5905a25146b3b91f",
      "output": {
        "aggregate_confidence": 0.00475,
        "aggregated_price": 1.0821105263,
        "aggregation_method": "median_filtered_confidence_weighted_mean",
        "currency_pair": "EUR_USD",
        "epoch": 14200,
        "fault_tolerance": null,
        "fence": "Every submission -- price, weight, confidence, timestamp and submitter id -- is SUPPLIED, asserted, and digested into this receipt. This kernel simulates the aggregation step only: it performs no price-feed or oracle-network lookups (zero-egress by contract), does not model the commit-reveal phase that precedes aggregation, and makes no claim that any real network did or would publish this number.",
        "max_submitted": 1.12,
        "min_submitted": 1.0819,
        "not_proven": [
          {
            "detail": "Every price, weight, confidence, timestamp and submitter id is caller-supplied and asserted. This kernel performs no oracle-network, price-feed or market-data lookups (zero-egress) and does not verify any submission against an external source.",
            "item": "Submission authenticity"
          },
          {
            "detail": "This kernel simulates the aggregation step only. The commit-reveal phase that precedes aggregation in most real oracle networks is not modelled, so nothing here shows whether a submission was validly committed before it was revealed.",
            "item": "Commit-reveal phase"
          },
          {
            "detail": "The aggregate computed here is what the named mechanism yields on the supplied submissions. It is not a claim that any real oracle network did, or would, publish this number for this pair at this epoch.",
            "item": "Real-network publication"
          },
          {
            "detail": "The outlier penalty rate is computed from the stated formula as an informative readout. This kernel does not assert that any penalty was applied, by whom, or under whose rulebook.",
            "item": "Outlier-penalty enforcement"
          }
        ],
        "outlier_count": 1,
        "outlier_detail": [
          {
            "deviation_pct": 3.483323,
            "id": "sub-03",
            "outlier_penalty_rate_pct": 0
          }
        ],
        "outlier_threshold_pct": 3,
        "outliers_flagged": [
          "sub-03"
        ],
        "price_spread_pct": 3.521582,
        "priced_submission_count": 3,
        "rejected_inputs": [],
        "stale_submissions": [],
        "structural_error": null,
        "submission_count": 3,
        "surviving_count": 2
      }
    }
  }
},
    {
  "tool_id": "art-561-currency-basket-index",
  "tool_version": "1.0.0",
  "display_name": "Currency Basket Index",
  "mcp_name": "currency_basket_index",
  "mandate_type": "currency_basket_index",
  "wave": 91,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-561-currency-basket-index.html",
  "description": "Values a currency basket by the fixed-amount method, where currency amounts are fixed at a rebase date and the live weights float daily with FX, and gives that valuation its own citable execution_hash. Two modes. Valuation takes amounts already fixed and returns the index value as the sum of amount times USD rate, each component's live weight as its share of that total, and its drift from any stated target weight. Derivation is the non-obvious arithmetic this node owns: given target weights, a rebase-date index value and the rebase-date FX rates, it derives the fixed amounts that those weights imply, then values them at today's rates, so amounts are an output of the rebase rather than an input to it. Target weights that do not sum to one are refused rather than silently normalized, since a basket derived from them is not a basket. Integer-quantity baskets are supported through an amount scale. Per-pair rates may cite the upstream oracle prints they came from, which populates the chain parent hashes without entering the hash preimage. HARD FENCE: every FX rate, fixed amount and target weight is supplied and asserted, never fetched (zero-egress); this computes what the stated method yields on the stated numbers, never that those numbers are the correct rates for the stated date, and never a live basket publication.",
  "input_schema_ref": "chaingraph/art-561-currency-basket-index.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; basket valuation follows the basket's own rebase and publication cycle, not a filing calendar.",
  "consumes": [
    "art-560-oracle-price-aggregation"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:84f9b197e0b2e11acc54f7bb0ac50a30db1e80f22e33238395093d9ac9887921",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-08"
    }
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New node shipped in a shard work unit. Proving runs on the asynchronous GPU queue after the shard lands and is assembled; no compute proof is claimed here, and compute_proof_ready is stated per artifact rather than hardcoded in the kernel.",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CAm9FjnSw2jKaR3T+7rTjC8TTuZmEMDaZGPnjCojIeoobDtYsbsZud/HeKxvLDcJEWqznZFiaICvH780OkGksCbbcr9RAsJFyeFI6pRtD+E5c03C/TG+5o1UeZPYShCvAc0bfeZO0hLMBGDPmyPnfeg1dw6mAeBIqjEVb4dLC9QH3+JTVS9wIWr60WQWxvY48jmiLxAJp2/CDD/dUOTHow+6JzkZU6vugaq9JHkrDIcNxHbAF9CWWK90JIeBRju+E8wMluTdi8nsj3pj8fAAlfUnxX/IdfAa44Q/hc0Yt6UqaGUHIB9f8bEQnPREqhSlkzV5dXblpiL8ihsRgLNW8w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:84f9b197e0b2e11acc54f7bb0ac50a30db1e80f22e33238395093d9ac9887921",
      "output": {
        "amount_scale": 0,
        "as_of_date": "2026-08-08",
        "basket_id": "BASKET-DEMO-5",
        "basket_shift_pct": -0.093813,
        "component_count": 5,
        "components": [
          {
            "currency": "USD",
            "drift_from_target_pct": 0.112888,
            "fixed_amount": 0.57813,
            "live_weight_pct": 43.492888,
            "target_weight_pct": 43.38,
            "usd_contribution": 0.57813,
            "usd_rate": 1
          },
          {
            "currency": "EUR",
            "drift_from_target_pct": 1.124633,
            "fixed_amount": 0.37379,
            "live_weight_pct": 30.434633,
            "target_weight_pct": 29.31,
            "usd_contribution": 0.40455292,
            "usd_rate": 1.0823
          },
          {
            "currency": "CNY",
            "drift_from_target_pct": -0.768068,
            "fixed_amount": 1.0993,
            "live_weight_pct": 11.511932,
            "target_weight_pct": 12.28,
            "usd_contribution": 0.15302256,
            "usd_rate": 0.1392
          },
          {
            "currency": "JPY",
            "drift_from_target_pct": -0.759014,
            "fixed_amount": 13.452,
            "live_weight_pct": 6.830986,
            "target_weight_pct": 7.59,
            "usd_contribution": 0.090801,
            "usd_rate": 0.00675
          },
          {
            "currency": "GBP",
            "drift_from_target_pct": 0.289561,
            "fixed_amount": 0.08087,
            "live_weight_pct": 7.729561,
            "target_weight_pct": 7.44,
            "usd_contribution": 0.10274533,
            "usd_rate": 1.2705
          }
        ],
        "dominant_contribution_pct": 43.492888,
        "dominant_contributor": "USD",
        "fence": "Every FX rate, fixed amount and target weight is SUPPLIED, asserted, and digested into this receipt. This kernel computes what the fixed-amount basket method yields on the stated numbers: it performs no FX or reference-rate lookups (zero-egress by contract), does not verify any rate against a published fixing, and makes no claim that any administrator did or would publish this value.",
        "index_value": 1.32925181,
        "max_drift_from_target_pct": 1.124633,
        "mode": "fixed_amount_valuation",
        "not_proven": [
          {
            "detail": "Every usd_rate is caller-supplied and asserted. This kernel performs no FX, reference-rate or market-data lookups (zero-egress) and does not verify any rate against a published fixing for the stated date.",
            "item": "FX-rate accuracy"
          },
          {
            "detail": "Fixed amounts and target weights are caller-supplied. This kernel does not verify that a stated composition matches any published basket, nor that a preset remains current -- a basket reviewed on a periodic cycle changes on its own schedule.",
            "item": "Basket-composition authority"
          },
          {
            "detail": "The index value computed here is what the fixed-amount method yields on the supplied rates. It is not a claim that any basket administrator did, or would, publish this value for this date.",
            "item": "Live index publication"
          },
          {
            "detail": "Where per-pair rates are cited from upstream oracle prints, this kernel records the citation but does not verify that those prints are current, in-epoch, or drawn from the same observation window.",
            "item": "Parent-print freshness"
          }
        ],
        "parent_print_hashes": [],
        "rejected_inputs": [],
        "structural_error": null,
        "target_weight_sum": null
      }
    }
  }
},
    {
  "tool_id": "art-562-compile-model-risk-lineage-pack",
  "tool_version": "1.0.0",
  "display_name": "Compile Model Risk Lineage Pack",
  "mcp_name": "compile_model_risk_lineage_pack",
  "mandate_type": "compliance_mandate",
  "wave": 91,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-562-compile-model-risk-lineage-pack.html",
  "description": "Compiles a model's current model-passport-lifecycle (art-450-model-inventory-entry, art-451-model-outcome-analysis, art-453-model-validation-status) and model-validation-cycle (art-488-model-replication-diff, art-489-model-test-battery) artifacts, cited by execution_hash and never recomputed, into a single BCBS 239 SS II / RDARR-shaped bundle: inventory tier, outcome-analysis result, validation status, replication verdict, and test-battery result, each with its citing hash and producing tool, so a reviewer sees one document that traces every SR 26-2 assertion back to the artifact that made it. Each of the five stage references is optional individually; the pack reports which stages are cited and which are absent, and zero-stages-cited is a legitimate empty state, never an error. HARD FENCE: this pack cites the referenced receipts, it does not re-run the model, re-derive the outcome analysis, or itself opine on validation sufficiency -- that opinion, if any, belongs to the cited art-453/art-489 artifacts, never to this bundle. SR 26-2 (superseding SR 11-7, effective 2026-04-17) scopes this pack to conventional quantitative models in scope under that guidance; it makes no claim about gen-AI or agentic-AI systems. Corrections cite the prior artifact via the SPEC.md top-level supersedes field, not a bespoke status registry.",
  "input_schema_ref": "chaingraph/art-562-compile-model-risk-lineage-pack.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; a model-risk lineage pack is compiled on demand for a review or examination request, not a periodic filing.",
  "consumes": [
    "art-450-model-inventory-entry",
    "art-451-model-outcome-analysis",
    "art-453-model-validation-status",
    "art-488-model-replication-diff",
    "art-489-model-test-battery"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3bd0f1a3cd02576428db7940732f9d87c09d2632dafbcd72eb4f5f9ee96cb040",
      "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).",
  "export_capability": [
    "json",
    "pdf"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EmTyZA87+brLzx2bh9PLIVgfsiUArO087uig4E+rgL8GOL+K157/scUzkkwfu8YnifgC+WKzT01YsMiYVIFh/xddhvftM9z+TMmDKq6ryGWw+0Us83wBo2H/JBTm9Tj8Hl3oiXAt4CFP9qiP5bCEXGxR0wdKikbySTwk0z/6Mn4NWFIfTia0bE+0AOaXYq7e0srwwo3gqBMCfqM+H6P1/wGjIdJczzR75/yvjzmREtZwxSS6C/JKdyEi3jMAG+iOCrDLCmC9QttmPhtdkRfTGW49vkmlCElXsIEs3XEOQ5MqcsWI4br+LaIDAB+QwvhXYS2mFrYDCR8Ql/qQ9n5h9Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3bd0f1a3cd02576428db7940732f9d87c09d2632dafbcd72eb4f5f9ee96cb040",
      "output": {
        "as_of_date": "2026-08-05",
        "cited_receipts": [
          {
            "execution_hash": "sha256:1111111111111111111111111111111111111111111111111111111111111111",
            "label": "Model Inventory Entry",
            "stage": "inventory",
            "tool_id": "art-450-model-inventory-entry"
          },
          {
            "execution_hash": "sha256:2222222222222222222222222222222222222222222222222222222222222222",
            "label": "Model Outcome Analysis",
            "stage": "outcome_analysis",
            "tool_id": "art-451-model-outcome-analysis"
          },
          {
            "execution_hash": "sha256:3333333333333333333333333333333333333333333333333333333333333333",
            "label": "Model Validation Status",
            "stage": "validation_status",
            "tool_id": "art-453-model-validation-status"
          },
          {
            "execution_hash": "sha256:4444444444444444444444444444444444444444444444444444444444444444",
            "label": "Model Replication Diff",
            "stage": "replication",
            "tool_id": "art-488-model-replication-diff"
          },
          {
            "execution_hash": "sha256:5555555555555555555555555555555555555555555555555555555555555555",
            "label": "Model Test Battery",
            "stage": "test_battery",
            "tool_id": "art-489-model-test-battery"
          }
        ],
        "fence": "This pack cites the referenced model-passport-lifecycle and model-validation-cycle receipts by execution_hash; it does not re-run the model, re-derive the outcome analysis, or itself opine on validation sufficiency. Zero-stages-cited is a legitimate empty state, never an error. Never a coverage percentage, never a stripped citation.",
        "model_id": "MODEL-CREDIT-PD-01",
        "not_proven": [
          {
            "detail": "This pack cites the execution_hash of each stage artifact; it never re-runs the model, never re-derives the outcome analysis or replication diff, and never re-scores the test battery.",
            "item": "Model-run recomputation"
          },
          {
            "detail": "This pack takes no position on whether the underlying model is fit for use. Any validation opinion belongs to the cited art-453/art-489 artifacts themselves, never to this bundle.",
            "item": "Validation sufficiency"
          },
          {
            "detail": "Each stage reference is a caller-supplied {tool_id, execution_hash} pair, asserted and digested into this receipt. This node performs no lookup against a live artifact store and does not itself verify that a cited hash corresponds to a real, still-valid upstream artifact.",
            "item": "Referenced-artifact authenticity"
          },
          {
            "detail": "This pack is a citation bundle over receipts that already exist. It has no bearing on whether the underlying model is fit for use and does not itself satisfy BCBS 239 or RDARR -- those are firm-level governance obligations this document evidences pieces of, never fulfills.",
            "item": "BCBS 239 / RDARR compliance"
          }
        ],
        "regulatory_framework": "SR 26-2 (Revised Guidance on Model Risk Management, effective 2026-04-17, superseding SR 11-7) scopes this pack to conventional quantitative models only; BCBS 239 §II and RDARR Guide §3.4 references are informative context only, and this pack makes no compliance claim under any of the three.",
        "stage_count_present": 5,
        "stage_count_total": 5,
        "stages_absent": [],
        "stages_present": [
          "inventory",
          "outcome_analysis",
          "validation_status",
          "replication",
          "test_battery"
        ],
        "structural_error": null
      }
    }
  }
},
    {
  "tool_id": "art-563-mt9xx-camt-statement-migration-mapper",
  "tool_version": "1.0.0",
  "display_name": "Swift MT9xx to camt Statement Migration Mapper",
  "mcp_name": "map_mt9xx_to_camt",
  "mandate_type": "compliance_mandate",
  "wave": 85,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-563-mt9xx-camt-statement-migration-mapper.html",
  "description": "Maps a pasted Swift MT900/910/940/942/950 statement or notification message to a camt.052/053/054-shaped JSON mapping object, plus a fidelity report (truncation findings, unmappable tags, and a 60F + sum(61) = 62F balance-consistency check for statement types). Swift retires these MT9xx messages in the 2027-28 coexistence window, receive-capability for the camt equivalents is mandated from November 2027, and Swift itself provides no MT-to-ISO 20022 conversion tool -- the translation burden lands on the receiving corporate or treasury. Field vocabulary (MT tag to camt element path) is reused from the tools/402 MT/MX field decoder. Kernel output stays JSON only; camt XML serialization from that JSON happens page-side. Distinct from the tools/565 camt.053 reconciliation workbench, which reconciles already-mapped camt.053 data against a ledger rather than mapping the message format.",
  "input_schema_ref": "chaingraph/art-563-mt9xx-camt-statement-migration-mapper.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {"system":"sha256-source","image_id":"sha256:79089ccf4a9ef55d91ff82ddba35cc5faa5878ec105312739ff7a2518a33f0f5","valid_from":"2026-07-10"},
    {"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-07"}
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "C+o+1OL5gfbjy+83b15bLdOQL6yopWU9aWsQfPffJxwWH7PgiBj5Go0kDnxpFZpc/DJ4JKvUfJAM3tWL/V3h3g0mWDsvDyePtdbt1oZ+tRG9W604A2J1Y/k/VN7wxm1lElxKkQ5oeOP+2b+64av++tUGeO1ukGTwwzcxNQQqKnUcjywmHhIRWWn2EYr8kDatx7gOnHCne7c+C8uDUc2JJhMCc7ME7nW7H60/iSGUGHpLD04P6cX+Ar3Mt5beNSg1Kg2P/leNLSY+IALuA3Xa2t09bOrjCQF5l1T/vfZzXhkn64zNP/yI1bDUMIu16lMza8Oc4pUt3GqPUmKV4Nfngg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:79089ccf4a9ef55d91ff82ddba35cc5faa5878ec105312739ff7a2518a33f0f5",
      "output": {
        "account_id": "DE89370400440532013000",
        "camt_message_root": "BkToCstmrStmt/Stmt",
        "coexistence_note": "Swift MT900/910/940/942/950 retirement runs the 2027-28 coexistence window; camt receive-capability is mandated from 2027-11 (dated observation, not a compliance-deadline claim by this tool).",
        "default_target": "camt.053",
        "disambiguation": "map_mt9xx_to_camt maps a pasted MT900/910/940/942/950 statement/notification message to a camt.052/053/054-shaped JSON mapping object plus a fidelity report (truncation, unmappable tags, 60F+61=62F balance check). It reuses tools/402's MT-to-camt field vocabulary but does not duplicate art-565-camt053-reconciliation-workbench's bank-vs-ledger reconciliation semantics -- this node maps message format, art-565 (tools/565) reconciles already-mapped camt.053 data against a ledger.",
        "fidelity_report": {
          "balance_check": {
            "actual_closing_signed_cents": 10350000,
            "currency_consistent": true,
            "discrepancy_cents": 0,
            "expected_closing_signed_cents": 10350000,
            "opening_signed_cents": 10000000,
            "pass": true,
            "sum_entries_signed_cents": 350000
          },
          "data_loss_warnings": [],
          "truncation_findings": [],
          "unmappable_tags": []
        },
        "mapping": [
          {
            "camt_path": "BkToCstmrStmt/GrpHdr/MsgId",
            "mt_tag": "20",
            "transform": "direct",
            "value": "STMT2026080601"
          },
          {
            "camt_path": "BkToCstmrStmt/Stmt/Acct/Id/IBAN or Othr",
            "mt_tag": "25",
            "transform": "IBAN direct; non-IBAN to Othr/Id",
            "value": "DE89370400440532013000"
          },
          {
            "camt_path": "BkToCstmrStmt/Stmt/StmtPgntn or LglSeqNb",
            "mt_tag": "28C",
            "transform": "split statement/sequence number",
            "value": "5/1"
          },
          {
            "camt_path": "BkToCstmrStmt/Stmt/Bal[Tp/CdOrPrtry/Cd=OPBD]",
            "mt_tag": "60F",
            "transform": "balance field parse",
            "value": "C260801USD100000,00"
          },
          {
            "camt_path": "BkToCstmrStmt/Stmt/Bal[Tp/CdOrPrtry/Cd=CLBD]",
            "mt_tag": "62F",
            "transform": "balance field parse",
            "value": "C260803USD103500,00"
          },
          {
            "camt_path": "BkToCstmrStmt/Stmt/Ntry",
            "mt_tag": "61",
            "transform": "composite MT61 parse to structured Ntry[]",
            "value": "2 statement line(s)"
          }
        ],
        "message_id": "STMT2026080601",
        "mt_type": "940",
        "mt_type_conflict": false,
        "no_swift_endorsement": "This mapping is produced by AINumbers.co and carries no Swift endorsement. Swift does not provide MT-to-ISO 20022 conversion tooling.",
        "notification": null,
        "pii_note": "Statement/notification data may include real account numbers and counterparty references if a caller pastes a genuine message. This tool is zero-egress and computes entirely client-side or server-side per compute_mode; goldens ship synthetic statements only.",
        "rejected_inputs": [],
        "statement": {
          "closing": {
            "amount_cents": 10350000,
            "currency": "USD",
            "date_iso": "2026-08-03",
            "dc": "C",
            "signed_cents": 10350000
          },
          "entries": [
            {
              "amount_cents": 150000,
              "bank_reference": "BANKREF01",
              "camt_path": "BkToCstmrStmt/Stmt/Ntry",
              "customer_reference": "REF12345",
              "dc": "D",
              "entry_date_mmdd": "0802",
              "funds_code": null,
              "narrative": "Payment to vendor ABC invoice 1234",
              "signed_cents": -150000,
              "transaction_type_code": "NTRF",
              "value_date_iso": "2026-08-02"
            },
            {
              "amount_cents": 500000,
              "bank_reference": "BANKREF02",
              "camt_path": "BkToCstmrStmt/Stmt/Ntry",
              "customer_reference": "REF67890",
              "dc": "C",
              "entry_date_mmdd": "0803",
              "funds_code": null,
              "narrative": "Incoming wire from customer XYZ",
              "signed_cents": 500000,
              "transaction_type_code": "NTRF",
              "value_date_iso": "2026-08-03"
            }
          ],
          "opening": {
            "amount_cents": 10000000,
            "currency": "USD",
            "date_iso": "2026-08-01",
            "dc": "C",
            "signed_cents": 10000000
          },
          "seq_number": "1",
          "stmt_number": "5"
        },
        "target": "camt.053",
        "target_overridden": false,
        "verdict": "CLEAN"
      }
    }
  }
},
    {
  "tool_id": "art-564-ucp-checkout-payload-lint",
  "tool_version": "1.0.0",
  "display_name": "UCP Checkout Payload Lint",
  "mcp_name": "lint_ucp_checkout_payload",
  "mandate_type": "compliance_mandate",
  "wave": 92,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-564-ucp-checkout-payload-lint.html",
  "description": "Deterministic, verify-only structural lint of a caller-supplied Universal Commerce Protocol (UCP; Google + Shopify, announced NRF 2026-01-11, Apache-2.0 spec on GitHub) checkout resource against the schema pinned at tag v2026-04-08 of github.com/Universal-Commerce-Protocol/ucp. Checks the resource-level required[] field set, the status enum, ISO 4217 currency form, integer minor-unit amounts, and the exactly-one-subtotal / exactly-one-total cardinality rule on totals[]. Verdict CONFORMANT | NONCONFORMANT | UNKNOWN_VERSION: a payload declaring a UCP version outside the pinned allowlist is capped at UNKNOWN_VERSION regardless of otherwise-clean structure, never upgraded to CONFORMANT for a version this kernel has no pinned rules for. Never contacts a UCP or ACP endpoint and never fetches a live spec version -- the caller supplies the payload. UCP composes with AP2 rather than competing with it; part of the agentic-commerce-convergence chain alongside art-12 (ACP checkout conformance) and art-01 (AP2 mandate-chain validator).",
  "input_schema_ref": "chaingraph/art-564-ucp-checkout-payload-lint.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {"system":"sha256-source","image_id":"sha256:828c4890e7f551a049a00ccacf21c33350300f9b10d047e2d05904d0f97e5c62","valid_from":"2026-08-06"},
    {"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-07"}
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AL7oz56T9R3dWfHvO0z6DgdMo8xd0C9QloG+Kb/aAGYUKucatFLhLkt4gf+Ao5FC3hfA6IiDaCnYTc4ezht8UAoBQnUE6TSslpAZx7AFUnTBWXH5Cv5YGtSjV0UksdyiFfeHtYegI/Mc79dXTg6PwYrA8Fm1s2ddBnMWoKLmJ54F6nZTSX4IOJ0NRhuLdLWwZ3doP9JINjkplpiEJ4OryibNDTTaU1m4LcIvIVYpTIpgNvVI52H0EPfaqH1Rty0FCPezWfAkNXs1Jz308bhleAD/12IjijDe9EZwgXcJqSEGWgezCcaNOgRcnN+tmHFg5fzJgMZgH/qxZlwnp8AKWg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:828c4890e7f551a049a00ccacf21c33350300f9b10d047e2d05904d0f97e5c62",
      "output": {
        "error_count": 0,
        "finding_count": 0,
        "findings": [],
        "note": "Deterministic, verify-only structural lint of a caller-supplied UCP checkout resource against the schema pinned at tag v2026-04-08 of github.com/Universal-Commerce-Protocol/ucp. Never fetches a live spec version and never contacts a UCP/ACP endpoint. UCP composes with AP2 (Google developer blog) and is not presented here as a competitor to ACP or AP2.",
        "rationale": [
          "Pinned schema: UCP v2026-04-08 source/schemas/shopping/checkout.json (https://github.com/Universal-Commerce-Protocol/ucp/tree/v2026-04-08/source/schemas/shopping/checkout.json).",
          "payload declares UCP version 2026-04-08, within the pinned allowlist.",
          "0 error-severity finding(s), 0 warning-severity finding(s) against the pinned checkout resource shape.",
          "This lints a full checkout RESOURCE against the schema's resource-level required[] set, not a partial create/update/complete request body (the schema's narrower ucp_request per-verb profile is out of scope).",
          "Verify-only: never contacts a UCP or ACP endpoint; the caller supplies the payload."
        ],
        "ucp_spec_pinned_tag": "v2026-04-08",
        "ucp_spec_source": "https://github.com/Universal-Commerce-Protocol/ucp/tree/v2026-04-08/source/schemas/shopping/checkout.json",
        "ucp_version_declared": "2026-04-08",
        "verdict": "CONFORMANT",
        "warning_count": 0
      }
    }
  }
},
    {
  "tool_id": "art-565-kya-x402-scope-verifier",
  "tool_version": "1.0.0",
  "display_name": "KYA Credential x x402 Payload Scope Verifier",
  "mcp_name": "verify_kya_x402_scope",
  "mandate_type": "compliance_mandate",
  "wave": 92,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-565-kya-x402-scope-verifier.html",
  "description": "Cross-checks a declared KYA (Know Your Agent) credential's scope against a declared x402 PaymentPayload: amount vs the credential's spend cap, network/asset vs its allowed set, payee vs its merchant allowlist, validity window vs the payload's timestamps, and scope-string coverage of the payment scheme. Returns findings[] and a verdict of IN_SCOPE, OUT_OF_SCOPE, or INDETERMINATE (when the credential omits a claim the payload requires -- never guessed). Verify-only: never fetches either input, never contacts Skyfire or a facilitator, performs no signature verification, and never initiates or settles an x402 payment.",
  "input_schema_ref": "chaingraph/art-565-kya-x402-scope-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {"system":"sha256-source","image_id":"sha256:f6c593e542fe2fbd5e4226a231dff7ce88a280d8fa68cc757c9fe6602afe29f3","valid_from":"2026-07-10"},
    {"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-07"}
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "BHO67h0eMZvI3gWstPzGa8elXAfCKDN2jJ8oyU+KAugfsHnnRDQy58W3/GftIQ7eB6DyILXo3VbBgRsPp2cW8ShbZQWMM+2me9lPFYX81/2UfDf2Mdv+4D4UdV8+RG55FbsU/rFEfTeFWxx4cgtfTb/YrgBd596g61q2W6uBuMYsgAh0FWjpR8LLyYQAqQqHneMPxtRRidxfXM/hW4bwfRgCu33K+4+S2bFcEQ+ExViNPCdEM1Gpibq49ndt5KAtKk3cb5ODEnE1KAh7y2HDVxB6CDFCOCdeMh4+OzdK9ccevYOwyXA/wQrvdWEMOGthvwmML/g6T8MhFx58VqDGdg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f6c593e542fe2fbd5e4226a231dff7ce88a280d8fa68cc757c9fe6602afe29f3",
      "output": {
        "credential_audience": "seller-agent-042",
        "credential_seller_service_id": "svc-abc123",
        "credential_subject": "buyer-agent-001",
        "findings": [
          {
            "check": "amount_vs_spend_cap",
            "detail": "payload value 5000000 vs credential spend_cap_amt 10000000",
            "pass": true
          },
          {
            "check": "network_vs_allowed_set",
            "detail": "payload network \"base\" vs credential allowed_networks [\"base\"]",
            "pass": true
          },
          {
            "check": "asset_vs_allowed_set",
            "detail": "payload asset \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\" vs credential allowed_assets [\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"]",
            "pass": true
          },
          {
            "check": "payee_vs_merchant_allowlist",
            "detail": "payload payee \"0xMERCHANT0000000000000000000000000000beef\" vs credential payee_allowlist [\"0xMERCHANT0000000000000000000000000000beef\"]",
            "pass": true
          },
          {
            "check": "validity_window_vs_payload_timestamp",
            "detail": "payload window [1754400100, 1754400400] vs credential window [1754400000, 1754500000]",
            "pass": true
          },
          {
            "check": "scope_string_coverage",
            "detail": "payload scheme \"exact\" needs scope \"payments:x402:exact\" (or a wildcard) in credential scope [\"payments:x402:exact\"]",
            "pass": true
          }
        ],
        "indeterminate_reasons": [],
        "kya_claim_basis": "Skyfire kya-pay token claims (docs.skyfire.xyz/docs/common-token-claims.md, /docs/token-schemas.md, pinned 2026-08-06): documented sub/aud/ssi/sdm/iss/iat/exp/env/amt/cur/val. allowed_networks/allowed_assets/payee_allowlist/scope are this tool's own scope-representation extension, not documented Skyfire claims -- stated here so the distinction is never implied as pinned.",
        "note": "Cross-checks a declared KYA-shaped credential's scope (spend cap, allowed networks/assets, payee allowlist, validity window, scope strings) against a declared x402 PaymentPayload. Never fetches either, never contacts Skyfire or a facilitator, never verifies a signature, never initiates or settles a payment.",
        "payload_network": "base",
        "payload_scheme": "exact",
        "rationale": [
          "Ran 6 evaluable check(s) (amount vs spend cap, network vs allowed set, asset vs allowed set, payee vs merchant allowlist, validity window vs payload timestamp, scope string coverage); 0 check(s) could not run because the credential omitted a claim the payload requires.",
          "amount_vs_spend_cap: PASS -- payload value 5000000 vs credential spend_cap_amt 10000000",
          "network_vs_allowed_set: PASS -- payload network \"base\" vs credential allowed_networks [\"base\"]",
          "asset_vs_allowed_set: PASS -- payload asset \"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\" vs credential allowed_assets [\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"]",
          "payee_vs_merchant_allowlist: PASS -- payload payee \"0xMERCHANT0000000000000000000000000000beef\" vs credential payee_allowlist [\"0xMERCHANT0000000000000000000000000000beef\"]",
          "validity_window_vs_payload_timestamp: PASS -- payload window [1754400100, 1754400400] vs credential window [1754400000, 1754500000]",
          "scope_string_coverage: PASS -- payload scheme \"exact\" needs scope \"payments:x402:exact\" (or a wildcard) in credential scope [\"payments:x402:exact\"]",
          "Verify-only: this kernel never initiates, signs, or settles an x402 payment (x402 EXECUTION is a KILLED ledger row). It performs no signature verification -- the pinned Skyfire docs (2026-08-06) do not specify a caller-reproducible KYA signing scheme in this context, so this is a scope cross-check only.",
          "Skyfire kya-pay token claims (docs.skyfire.xyz/docs/common-token-claims.md, /docs/token-schemas.md, pinned 2026-08-06): documented sub/aud/ssi/sdm/iss/iat/exp/env/amt/cur/val. allowed_networks/allowed_assets/payee_allowlist/scope are this tool's own scope-representation extension, not documented Skyfire claims -- stated here so the distinction is never implied as pinned."
        ],
        "rejected_inputs": [],
        "verdict": "IN_SCOPE"
      }
    }
  }
},
    {
  "tool_id": "art-566-iolta-three-way-reconciliation",
  "tool_version": "1.0.0",
  "display_name": "IOLTA Three-Way Trust Reconciliation",
  "mcp_name": "check_iolta_three_way_reconciliation",
  "mandate_type": "compliance_control",
  "wave": 93,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-566-iolta-three-way-reconciliation.html",
  "description": "Recomputes the monthly IOLTA/client-trust three-way close every small law firm already does by hand in a spreadsheet: the bank statement (adjusted for caller-declared deposits in transit and uncleared checks) against the trust ledger total against the sum of every per-client ledger balance, all as of the same statement period end. Separately walks each client's declared period activity to catch a client ledger that dips negative at any point during the period even when its ending balance looks fine: the classic commingling fact pattern where one client's disbursement is briefly funded by another client's money before a later deposit covers it. Ages every declared outstanding item from the period end so a check or deposit that has sat unresolved for months is visible rather than buried inside a balancing adjustment, and checks that every input balance is stated as of the same period-end date. Reconciliation tolerance is always a declared input, never defaulted; a negative client-ledger low point is never tolerance-gated. Verdict RECONCILED when the three-way equality holds, no client ledger went negative, no outstanding item is stale, and every date lines up; DISCREPANT when any of those breaks; INCOMPLETE when a required input (the tolerance, the period, a balance, or at least one client ledger) is absent. Balances are integer minor units, so the arithmetic is exact. Performs arithmetic only over caller-declared balances and caller-declared outstanding items; does not source, derive, or independently verify any balance, and does not itself determine which bank lines are outstanding. Clause: ABA Model Rule 1.15 (Safekeeping Property); state record-keeping rules govern the specifics and are cited in-page as dated illustrations only, never as a 50-state table.",
  "input_schema_ref": "chaingraph/art-566-iolta-three-way-reconciliation.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:891bee3fc15ad70e6efb5440b1b794536e846e9bb77b5a4a9ea06df0153f772a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "E3GQ5wp+u6b65+AVL75b2cnBuAwj7/SG7w8Jo4ZblUUKGQccrewctWmEWbn5KKHC5rp4thg+47Wxcrluak6gTRrQOKMc/Va3vOyyOTD/Vbym8Mg0uVD7FTAwTrz/n2kHDYcCza40Paca543tjE0UGsrc3Bf66F60qiLfYqlcWv8aFcr5JTH8gBJLBZOLwoCdAamVey9voFSsDoQO7BrCuwFwtxbL28y6f4+eTs4+hyeqPcoYzIvrsIxbRx3WbNkSLgIRwYqgX9CPHVUc7E2ujo5teysz27hZ1wrAncgpAeEkGOoxapqkOAQmLNQxoPxn0WyqLCy/fj4xqMTK7e0QrQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:891bee3fc15ad70e6efb5440b1b794536e846e9bb77b5a4a9ea06df0153f772a",
      "output": {
        "clause_note": "ABA Model Rule 1.15 (Safekeeping Property) requires complete trust-fund records and reconciliation of those records. State record-keeping requirements govern the specifics and are not restated here (e.g. California Rule of Professional Conduct 1.15 / trust accounting rules effective 2018-11-01; New York Rule 1.15, 22 NYCRR Part 1200, as amended; Texas Disciplinary Rule 1.14) -- confirm the current rule text for the applicable jurisdiction.",
        "client_count": 2,
        "client_ledgers": [
          {
            "as_of": "2026-06-30",
            "client_id": "client-A",
            "ending_balance_minor": 3000000,
            "entry_count": 2,
            "low_point_date": "2026-06-01",
            "low_point_minor": 2700000,
            "opening_balance_minor": 2700000
          },
          {
            "as_of": "2026-06-30",
            "client_id": "client-B",
            "ending_balance_minor": 2050000,
            "entry_count": 0,
            "low_point_date": "2026-06-01",
            "low_point_minor": 2050000,
            "opening_balance_minor": 2050000
          }
        ],
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "findings": [],
        "negative_balance_findings": [],
        "outstanding_items": [
          {
            "age_bucket": "0-30",
            "age_days": 1,
            "amount_minor": 100000,
            "date": "2026-06-29",
            "description": "client A retainer deposited 6/29",
            "type": "deposit_in_transit"
          },
          {
            "age_bucket": "0-30",
            "age_days": 15,
            "amount_minor": 50000,
            "date": "2026-06-15",
            "description": "disbursement check #1042",
            "type": "uncleared_check"
          }
        ],
        "outstanding_summary": {
          "aged_61_to_90_count": 0,
          "aged_over_90_count": 0,
          "deposits_in_transit_total_minor": 100000,
          "item_count": 2,
          "uncleared_checks_total_minor": 50000
        },
        "period_boundary_consistent": true,
        "period_boundary_mismatches": [],
        "reconciliation_tolerance_minor": 100,
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over caller-declared bank, trust-ledger, and per-client-ledger balances plus caller-declared outstanding items. Does not source, derive, or independently verify any balance and does not determine which bank lines are outstanding.",
        "statement_period": {
          "end_date": "2026-06-30",
          "start_date": "2026-06-01"
        },
        "three_way": {
          "adjusted_bank_balance_minor": 5050000,
          "bank_ending_balance_minor": 5000000,
          "bank_vs_clients_minor": 0,
          "bank_vs_trust_minor": 0,
          "client_ledger_total_minor": 5050000,
          "deposits_in_transit_total_minor": 100000,
          "equality_holds": true,
          "trust_ledger_ending_balance_minor": 5050000,
          "trust_vs_clients_minor": 0,
          "uncleared_checks_total_minor": 50000
        },
        "verdict": "RECONCILED"
      }
    }
  }
},
    {
  "tool_id": "art-567-pe-waterfall-lp-recompute",
  "tool_version": "1.0.0",
  "display_name": "PE Distribution Waterfall LP-Side Recompute",
  "mcp_name": "recompute_pe_waterfall_lp",
  "mandate_type": "attestation_mandate",
  "wave": 93,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-567-pe-waterfall-lp-recompute.html",
  "description": "Recomputes a standard 4-tier PE distribution waterfall (return of capital, preferred return, GP catch-up, residual carry split) from caller-DECLARED dated contribution/distribution cashflows and a caller-DECLARED waterfall parameterization (pref rate + compounding basis, GP catch-up percentage, carry percentage, European whole-fund or American deal-by-deal tier structure, optional clawback check), then diffs the recomputed per-tier LP/GP allocation against a caller-supplied GP-reported allocation. Verdict MATCHES, DIVERGES with per-tier deltas, or INDETERMINATE whenever a required parameter is absent -- never guessed, never defaulted. ILPA's own reporting-template guidance states it was not designed for verifying any of the GP's calculations, cited here only as dated gap evidence, never as an ILPA endorsement or ILPA-compliance claim. Cross-links recompute_fund_nav (art-373), which recomputes NAV, not distribution waterfalls -- the two do not duplicate each other. Zero network, zero PII, fixed-point BigInt money math throughout.",
  "input_schema_ref": "chaingraph/art-567-pe-waterfall-lp-recompute.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline; waterfall verification is a continuous LP-side fund-oversight control, not a periodic filing.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:df13afbe5e611661922ccea2123194de8f703a3efa283154ec7af8b7876881e9",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ANQd8Zsko/7KJhxtWTqS28ck3GQSO6oz0VqOYbl2x8sJLD1qgdKcgxmofa1mzTIrcF2j5YD/K292KYspItyHAg8T5jHMw5UQxAM/Lx9u1HcwVT3a/noEX09oTBc76f8wBiUaUEV7v5XDyjzLPGawQeLC5yDKp+eDqjcympfdziUV7yzp4i7KE7OjhJuBOZwREjC46aTs30CeI2XQZFuqLB4vD13Us28lu9HhV9SmLe7IqtAI2rNLTcGlMUKEg/8NJ04DouYq1WxYxemaMoy5g1vCLlEhvVpmNIJD2XcTyY4AzzKFs8uB1CPsooSnPz41UyBIWqSt6REl05fDPWyaLw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:df13afbe5e611661922ccea2123194de8f703a3efa283154ec7af8b7876881e9",
      "output": {
        "as_of_date": null,
        "clawback": {
          "clawback_amount": "0.00000000",
          "clawback_flag_declared": true,
          "gp_carry_and_catchup_received": "60000.00000000",
          "gp_entitled_at_carry_pct": "60000.00000000",
          "note": "Aggregate check only: does cumulative GP catch-up + carry exceed carry_pct of cumulative realized profit (distributions minus contributions) at this as-of date. Not a fund-level clawback provision recompute -- the governing LPA clawback mechanics (interim vs final, tax-effected or gross, escrow terms) are not modeled here.",
          "total_realized_profit": "300000.00000000"
        },
        "deal_id": null,
        "fence": "Cashflows and the waterfall parameterization are SUPPLIED, asserted, and digested into this receipt. This kernel recomputes ARITHMETIC over declared inputs and attests THAT -- never an opinion on LPA authorization, never ILPA-endorsed or ILPA-compliant.",
        "fund_id": "FUND-A",
        "gp_reported_allocation": {
          "tiers": [
            {
              "gp_amount": 0,
              "lp_amount": 1000000,
              "tier": "return_of_capital"
            },
            {
              "gp_amount": 0,
              "lp_amount": 80000,
              "tier": "preferred_return"
            },
            {
              "gp_amount": 20000,
              "lp_amount": 0,
              "tier": "gp_catchup"
            },
            {
              "gp_amount": 40000,
              "lp_amount": 160000,
              "tier": "carry_residual"
            }
          ]
        },
        "ilpa_context": "ILPA reporting-template guidance states it was not designed for verifying any of the GP's calculations (cited as dated gap evidence, not as an endorsement of this tool).",
        "not_proven": [
          {
            "detail": "Every dated cashflow is caller-supplied and asserted. This kernel performs no document parsing or fund-administrator data lookups (zero-egress) and does not verify these values against any external source.",
            "item": "Cashflow accuracy"
          },
          {
            "detail": "This kernel recomputes arithmetic under a DECLARED waterfall parameterization; it makes no finding on whether that parameterization is what the governing limited partnership agreement actually specifies.",
            "item": "LPA authorization"
          },
          {
            "detail": "ILPA reporting-template guidance is cited only as dated context that GP-side verification tooling is not designed to check the GP's own math. This kernel is not endorsed by, and makes no claim of compliance with, ILPA.",
            "item": "ILPA endorsement or compliance"
          },
          {
            "detail": "The GP-reported allocation compared against is exactly what the caller typed in; this kernel does not verify it was transcribed correctly from the GP's capital account statement.",
            "item": "GP-reported allocation source"
          }
        ],
        "per_deal": null,
        "recomputed_allocation": [
          {
            "gp_amount": "0.00000000",
            "lp_amount": "1000000.00000000",
            "tier": "return_of_capital"
          },
          {
            "gp_amount": "0.00000000",
            "lp_amount": "80000.00000000",
            "tier": "preferred_return"
          },
          {
            "gp_amount": "20000.00000000",
            "lp_amount": "0.00000000",
            "tier": "gp_catchup"
          },
          {
            "gp_amount": "40000.00000000",
            "lp_amount": "160000.00000000",
            "tier": "carry_residual"
          }
        ],
        "rejected_inputs": [],
        "tier_deltas": [
          {
            "gp_delta": "0.00000000",
            "gp_reported_gp_amount": "0",
            "gp_reported_lp_amount": "1000000",
            "lp_delta": "0.00000000",
            "matches": true,
            "recomputed_gp_amount": "0.00000000",
            "recomputed_lp_amount": "1000000.00000000",
            "tier": "return_of_capital"
          },
          {
            "gp_delta": "0.00000000",
            "gp_reported_gp_amount": "0",
            "gp_reported_lp_amount": "80000",
            "lp_delta": "0.00000000",
            "matches": true,
            "recomputed_gp_amount": "0.00000000",
            "recomputed_lp_amount": "80000.00000000",
            "tier": "preferred_return"
          },
          {
            "gp_delta": "0.00000000",
            "gp_reported_gp_amount": "20000",
            "gp_reported_lp_amount": "0",
            "lp_delta": "0.00000000",
            "matches": true,
            "recomputed_gp_amount": "20000.00000000",
            "recomputed_lp_amount": "0.00000000",
            "tier": "gp_catchup"
          },
          {
            "gp_delta": "0.00000000",
            "gp_reported_gp_amount": "40000",
            "gp_reported_lp_amount": "160000",
            "lp_delta": "0.00000000",
            "matches": true,
            "recomputed_gp_amount": "40000.00000000",
            "recomputed_lp_amount": "160000.00000000",
            "tier": "carry_residual"
          }
        ],
        "tier_structure": "european_whole_fund",
        "verdict": "MATCHES",
        "waterfall": {
          "carry_pct": 0.2,
          "compounding_basis": "simple",
          "day_count_convention": "actual/365",
          "gp_catchup_pct": 1,
          "pref_rate": 0.08
        }
      }
    }
  }
},
    {
  "tool_id": "art-568-securitization-trustee-report-recompute",
  "tool_version": "1.0.0",
  "display_name": "Securitization Trustee-Report Waterfall Recomputation",
  "mcp_name": "recompute_trustee_report_waterfall",
  "mandate_type": "analytics_mandate",
  "wave": 92,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-568-securitization-trustee-report-recompute.html",
  "description": "Recomputes a securitization priority-of-payments waterfall for one stated distribution period from a caller-declared tier list and the period's own collections, then compares the recomputed distribution against what the monthly trustee report states was distributed. The tier list, its priority order, every cap and every trigger reference come from the deal's own indenture, which the caller pins in an indenture reference that is carried into the artifact, so a later amendment dates an old receipt rather than falsifying it. Trigger states are caller-declared booleans only: a tier naming a trigger is skipped exactly when the caller declares that trigger breached, and this tool computes no coverage ratio, delinquency rate, or other market figure to decide a trigger's state. The recomputed side of every comparison is derived here by allocating the period collections down the tier list, never lifted from the trustee report, so a divergence is a genuine arithmetic finding rather than a re-adding of a published column. The verdict is MATCHES, DIVERGES, or INDETERMINATE, and INDETERMINATE covers both an empty tier list and a run where no trustee-reported distribution was supplied to compare against; neither case is guessed toward agreement. Money is fixed point in integer minor units throughout with two-decimal display, and zero collections, an empty tier list, and a tier naming a collection type that was not supplied each resolve to a defined result. Cites the OCC's Comptroller's Handbook on Asset Securitization as a mechanics reference only; the deal's own indenture governs, and this tool says so rather than asserting endorsement by any standard-setter. Stated boundary: a divergence against the trustee report is an arithmetic finding about the tier list and figures supplied here. It is never a compliance determination, never an audit opinion, and never a finding that the deal was administered correctly or incorrectly.",
  "input_schema_ref": "chaingraph/art-568-securitization-trustee-report-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d055891899f36887772e5e5edccb200703d03fa965edd3ea178f6c6933e98578",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FOCT58ROGSoxjmMXAWs0z3yxwVqq4DiLjlcBeU46JLoOH1ZnGZABWpUmA8AoSfAdTiXHy/pa8Z/4Wu5legdp5hPwx5kfjmoATWCHXNibEnz7hg0xMHwT9uTnSXnCkM2+IkxIq/QaTsl06ahpm5AgKxfdOkuQE8RpQr9ByYvWNGQeqtbNvzcGjOydrEadS7bhbyNzWrFSrI9K6bxcIEp/4xxBn/vZbsxQuVO+uVhbEf4WridBd/5PDfWe1AZKD7pLFkUrUnUrhmcPHprBbNUxNlqB2qrsRrk9+dsO+Y2pAXUGiPgbiKHZUaUwagO0NlmgzSDAYy7sWxQoSbdjemzC4w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d055891899f36887772e5e5edccb200703d03fa965edd3ea178f6c6933e98578",
      "output": {
        "citations": {
          "governing_document": {
            "detail": "The tier list, priority order, caps and trigger definitions used by this kernel are taken from the indenture the caller pins in indenture_ref. The indenture governs; this kernel does not.",
            "source": "The deal's own indenture / pooling and servicing agreement"
          },
          "mechanics_reference": {
            "detail": "Referenced as a mechanics description of priority-of-payments structures, not as the governing document.",
            "source": "OCC Comptroller's Handbook -- Asset Securitization"
          }
        },
        "collections_by_type": [
          {
            "collection_type": "interest",
            "opening_display": "90000.00",
            "opening_minor_units": 9000000
          },
          {
            "collection_type": "principal",
            "opening_display": "200000.00",
            "opening_minor_units": 20000000
          }
        ],
        "comparison_basis": "The recomputed side of every comparison is derived here by allocating the caller-supplied period collections down the caller-declared tier list. It is not read from the trustee report. A comparison is only meaningful because the two sides have independent provenance.",
        "currency": "USD",
        "deal_ref": "SYNTH-TRUST-2025-A",
        "diff": [
          {
            "agrees": true,
            "detail": "The independently recomputed distribution equals the amount the trustee report states for this tier.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_tier_list": true,
            "recomputed_display": "2000.00",
            "recomputed_minor_units": 200000,
            "reported_display": "2000.00",
            "reported_minor_units": 200000,
            "tier_id": "t1"
          },
          {
            "agrees": true,
            "detail": "The independently recomputed distribution equals the amount the trustee report states for this tier.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_tier_list": true,
            "recomputed_display": "58000.00",
            "recomputed_minor_units": 5800000,
            "reported_display": "58000.00",
            "reported_minor_units": 5800000,
            "tier_id": "t2"
          },
          {
            "agrees": true,
            "detail": "The independently recomputed distribution equals the amount the trustee report states for this tier.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_tier_list": true,
            "recomputed_display": "30000.00",
            "recomputed_minor_units": 3000000,
            "reported_display": "30000.00",
            "reported_minor_units": 3000000,
            "tier_id": "t3"
          },
          {
            "agrees": true,
            "detail": "The independently recomputed distribution equals the amount the trustee report states for this tier.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_tier_list": true,
            "recomputed_display": "200000.00",
            "recomputed_minor_units": 20000000,
            "reported_display": "200000.00",
            "reported_minor_units": 20000000,
            "tier_id": "t4"
          },
          {
            "agrees": true,
            "detail": "The independently recomputed distribution equals the amount the trustee report states for this tier.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_tier_list": true,
            "recomputed_display": "0.00",
            "recomputed_minor_units": 0,
            "reported_display": "0.00",
            "reported_minor_units": 0,
            "tier_id": "t5"
          }
        ],
        "fence": "Trigger states are caller-declared booleans, never computed from market or collateral data. This kernel recomputes the arithmetic of a priority-of-payments waterfall over a caller-declared tier list and caller-supplied period collections, and compares it against the trustee-reported distribution where supplied. It is never a compliance determination, never an audit opinion, and never advice. The deal indenture governs.",
        "first_unfunded_tier": "t5",
        "indenture_ref": {
          "dated": "2025-04-01",
          "document_ref": "SYNTHETIC INDENTURE SYNTH-TRUST-2025-A",
          "section_ref": "Priority of Payments, Section 3.02",
          "supplied": true,
          "version": "1.0"
        },
        "indeterminate_reason": null,
        "minor_unit_exponent": 2,
        "not_proven": [
          {
            "detail": "This kernel recomputes an arithmetic allocation from a caller-declared tier list and caller-supplied collections. It is never a compliance determination, never an audit opinion, and never a finding that the deal was administered correctly.",
            "item": "Compliance or audit opinion"
          },
          {
            "detail": "Trigger states are caller-declared booleans, never computed here from market data, collateral performance, or any other source. This kernel attests only that the declared state was applied to the tier list as declared.",
            "item": "Trigger accuracy"
          },
          {
            "detail": "The tier list, caps and trigger references are caller-supplied from the indenture. This kernel does not verify that the supplied list matches the indenture, only that the arithmetic over the supplied list is correct.",
            "item": "Tier-list completeness"
          },
          {
            "detail": "Period collections and balances are caller-supplied and asserted, not independently verified against servicer records or any external source.",
            "item": "Collections accuracy"
          }
        ],
        "note": "Deterministic securitization trustee-report waterfall recomputation for one stated period. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It forecasts nothing, models no scenario, performs no credit or rating analysis, and makes no assertion about the compliance status of the deal.",
        "period_label": "2025-08 distribution period",
        "rationale": [
          "Waterfall recomputed for period 2025-08 distribution period on deal reference SYNTH-TRUST-2025-A, against the tier list pinned as SYNTHETIC INDENTURE SYNTH-TRUST-2025-A Priority of Payments, Section 3.02 version 1.0 dated 2025-04-01.",
          "Total period collections of 290000.00 USD across 2 collection types were allocated down 5 tiers in the order supplied, honouring every declared cap.",
          "1 trigger declared, 0 reported breached. Trigger states are caller-declared booleans only -- this kernel computes none of them from market or collateral data.",
          "Collections ran out at tier t5, the first tier whose claim could not be met in full. Total shortfall across the tier list is 40000.00 USD.",
          "Residual after the tier list is 0.00 USD.",
          "The independently recomputed distribution agrees with every one of the 5 tiers the trustee report states a figure for. The left-hand side was computed here from the tier list, not lifted from the report.",
          "The deal's indenture governs the priority of payments; this kernel recomputes the arithmetic over the tier list the caller declared from it, and makes no assertion that the deal complies with anything."
        ],
        "rejected_inputs": [],
        "residual_by_type": [
          {
            "collection_type": "interest",
            "opening_display": "90000.00",
            "opening_minor_units": 9000000,
            "residual_display": "0.00",
            "residual_minor_units": 0
          },
          {
            "collection_type": "principal",
            "opening_display": "200000.00",
            "opening_minor_units": 20000000,
            "residual_display": "0.00",
            "residual_minor_units": 0
          }
        ],
        "residual_display": "0.00",
        "residual_minor_units": 0,
        "skipped_tier_count": 0,
        "tier_count": 5,
        "tiers": [
          {
            "basis": "Declared by the caller from the deal indenture.",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "2000.00",
            "claim_minor_units": 200000,
            "collection_type": "interest",
            "collection_type_supplied": true,
            "due_display": "2000.00",
            "due_minor_units": 200000,
            "fully_paid": true,
            "label": "Trustee and servicing fees",
            "paid_display": "2000.00",
            "paid_minor_units": 200000,
            "position": 1,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "skipped_by_trigger": null,
            "tier_id": "t1",
            "trigger_id": null,
            "type": "fees"
          },
          {
            "basis": "Declared by the caller from the deal indenture.",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "58000.00",
            "claim_minor_units": 5800000,
            "collection_type": "interest",
            "collection_type_supplied": true,
            "due_display": "58000.00",
            "due_minor_units": 5800000,
            "fully_paid": true,
            "label": "Class A interest",
            "paid_display": "58000.00",
            "paid_minor_units": 5800000,
            "position": 2,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "skipped_by_trigger": null,
            "tier_id": "t2",
            "trigger_id": null,
            "type": "interest"
          },
          {
            "basis": "Declared by the caller from the deal indenture.",
            "cap_applied": false,
            "cap_display": "30000.00",
            "cap_minor_units": 3000000,
            "claim_display": "30000.00",
            "claim_minor_units": 3000000,
            "collection_type": "interest",
            "collection_type_supplied": true,
            "due_display": "30000.00",
            "due_minor_units": 3000000,
            "fully_paid": true,
            "label": "Reserve account replenishment",
            "paid_display": "30000.00",
            "paid_minor_units": 3000000,
            "position": 3,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "skipped_by_trigger": null,
            "tier_id": "t3",
            "trigger_id": "delinquency-trigger",
            "type": "reserve"
          },
          {
            "basis": "Declared by the caller from the deal indenture.",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "200000.00",
            "claim_minor_units": 20000000,
            "collection_type": "principal",
            "collection_type_supplied": true,
            "due_display": "200000.00",
            "due_minor_units": 20000000,
            "fully_paid": true,
            "label": "Class A principal",
            "paid_display": "200000.00",
            "paid_minor_units": 20000000,
            "position": 4,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "skipped_by_trigger": null,
            "tier_id": "t4",
            "trigger_id": null,
            "type": "principal"
          },
          {
            "basis": "Declared by the caller from the deal indenture.",
            "cap_applied": false,
            "cap_display": null,
            "cap_minor_units": null,
            "claim_display": "40000.00",
            "claim_minor_units": 4000000,
            "collection_type": "principal",
            "collection_type_supplied": true,
            "due_display": "40000.00",
            "due_minor_units": 4000000,
            "fully_paid": false,
            "label": "Class B principal",
            "paid_display": "0.00",
            "paid_minor_units": 0,
            "position": 5,
            "shortfall_display": "40000.00",
            "shortfall_minor_units": 4000000,
            "skipped_by_trigger": null,
            "tier_id": "t5",
            "trigger_id": null,
            "type": "principal"
          }
        ],
        "total_collections_display": "290000.00",
        "total_collections_minor_units": 29000000,
        "total_paid_display": "290000.00",
        "total_paid_minor_units": 29000000,
        "total_shortfall_display": "40000.00",
        "total_shortfall_minor_units": 4000000,
        "triggers_evaluated": [
          {
            "basis": "Declared by the caller from the indenture; never computed from market data by this kernel.",
            "breached": false,
            "label": "Cumulative delinquency trigger",
            "trigger_id": "delinquency-trigger"
          }
        ],
        "trustee_reported_supplied": true,
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-569-muni-arbitrage-spending-exception-checker",
  "tool_version": "1.0.0",
  "display_name": "Muni Arbitrage Spending-Exception Checker",
  "mcp_name": "check_muni_arbitrage_spending_exception",
  "mandate_type": "compliance_control",
  "wave": 93,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-569-muni-arbitrage-spending-exception-checker.html",
  "description": "Tests whether a tax-exempt bond issue's declared expenditure schedule satisfies one of the three IRC section 148 arbitrage-rebate spending exceptions under Treas. Reg. section 1.148-7: the 6-month exception (100% spent by 6 months, or 95%/12mo with reasonable retainage), the 18-month exception (15%/6mo, 60%/12mo, 100%/18mo, or 95%/18mo plus 100%/30mo with reasonable retainage), or the 24-month construction exception (10%/6mo, 45%/12mo, 75%/18mo, 100%/24mo, or 95%/24mo plus 100%/36mo with reasonable retainage). Whether reasonable retainage is elected is always a caller-declared boolean, never assumed. A caller-declared de minimis amount, capped at the lesser of 3% of gross proceeds or $150,000, may be applied against the required spend at every milestone; an out-of-cap declaration is rejected rather than clamped. Each milestone date is computed calendar-wise from the issue date and receives its own verdict: MET when cumulative spending as of that date reached the required amount, FAILED when the date has passed without reaching it, or PENDING when the milestone date is still in the future relative to the caller-declared evaluation date. Overall exception status is FAILED if any milestone failed, PENDING if none failed but one or more are still pending, and MET only when every milestone has been met. Scope is deliberately narrow: this checks the spending-exception milestone tests only and does not compute the future-value arbitrage rebate itself, which is a separate tool. Clause: IRC section 148; Treas. Reg. section 1.148-7; IRS Pub 5271. Not tax advice.",
  "input_schema_ref": "chaingraph/art-569-muni-arbitrage-spending-exception-checker.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:51f687ecec3fb71291c2dad098f4e0e98618a92218f75eaf7610890d75034ed3",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IRblidQKsiiaQPPJ7ZwRU7cnXx5BD5OkpULif4sPr/0fXH+44AbfltmbIaJxS1OIBjU4Qa27Xgu6m94gEFxWXy6oefI6DCkcl2+YX73XyvbKslFBamEKyXUZygjrhW/3C815nXoyWvvbxPaLWgyGonT3bocHkSd2yQSoRVzuxZEgrZdZ8orUwJSy0KYJUtwVYwzTi6Y50tL+RSGbfAORQC4TdjKrf/exlwPrMLfSFfWOFvZTm1eJkY/06NAwMQG2IHOprCdmfph5jxHYsDfhpNGfKVCK1pxo9083NfgqJ88Y8N97P5GpQ/5+I2Ou69bmXQbZ9q+x9A0YIIL6IsFlwg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:51f687ecec3fb71291c2dad098f4e0e98618a92218f75eaf7610890d75034ed3",
      "output": {
        "as_of_date": "2026-12-01",
        "clause_note": "IRC section 148 (Arbitrage); Treas. Reg. section 1.148-7 (Spending exceptions to the rebate requirement), specifically -7(c) 6-month, -7(d) 18-month, and -7(e) 24-month (construction) schedules including their reasonable-retainage variants; IRS Pub 5271 (Tax Exempt Bonds: Arbitrage Rebate compliance overview). Not tax advice -- confirm current text and facts with qualified bond counsel.",
        "de_minimis_cap_minor": 15000000,
        "de_minimis_minor": null,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "elected_exception": "6_MONTH",
        "gross_proceeds_minor": 10000000000,
        "issue_date": "2026-01-15",
        "milestones": [
          {
            "cumulative_spent_minor": 10000000000,
            "milestone_date": "2026-07-15",
            "months_after_issue_date": 6,
            "required_gross_minor": 10000000000,
            "required_minor": 10000000000,
            "required_pct": 100,
            "verdict": "MET"
          }
        ],
        "overall_status": "MET",
        "reasonable_retainage": false,
        "rejected_inputs": [],
        "scope_note": "Tests ONLY whether the issue satisfies the elected spending exception milestone schedule under Treas. Reg. section 1.148-7. Does not compute the future-value arbitrage rebate; that is a separate, not-yet-built tool. Meeting a milestone means only what the cited regulation says it means.",
        "total_expenditures_minor": 10000000000
      }
    }
  }
},
    {
  "tool_id": "art-570-ucp600-document-examination-assembler",
  "tool_version": "1.0.0",
  "display_name": "UCP 600 / ISBP 745 Document Examination Assembler",
  "mcp_name": "examine_lc_document_presentation",
  "mandate_type": "compliance_control",
  "wave": 93,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-570-ucp600-document-examination-assembler.html",
  "description": "Recomputes the letter-of-credit document examination a checker already works from a paper checklist inside the 5-banking-day window, from structured fields the checker has transcribed off the presentation -- no OCR, no document upload, no parsing of any document image or free text. Checks presentation timing against the credit's expiry date and the UCP 600 Art. 14(c) 21-calendar-day-after-shipment window (or the credit's own stated period); the Art. 14(b) 5-banking-day examination-window deadline when an examination-completion date is declared; Art. 30 quantity and amount tolerances, +/-5% or +/-10% when the credit qualifies the figure with 'about'; the Art. 28(f)(ii) insurance floor against the declared CIF/CIP value; cross-document consistency under Art. 14(d)/(e), including named-port conflicts and a checker-declared goods-description conformity flag; and draft tenor arithmetic against the credit's stipulated tenor. Every finding cites its article number. Verdict COMPLYING_PRESENTATION when no discrepancy is found, DISCREPANT when at least one is, INDETERMINATE when a required input (the credit amount or quantity, the expiry or latest-shipment date, the presentation date, or the invoice/transport-document fields) is absent. This is the examination side of the LC lifecycle -- the companion tool tools/420-mt700-lc-field-validator.html validates the MT700 issuance message; the two are cross-linked, not duplicated. UCP 600 and ISBP 745 are cited by article/paragraph number only; their text is ICC copyright and is never reproduced, and this tool carries no claim of ICC endorsement.",
  "input_schema_ref": "chaingraph/art-570-ucp600-document-examination-assembler.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b120516d58cfb7d8628e27b1cef81b01dbf298a4724dff8548143c422eb588c3",
      "valid_from": "2026-08-06"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "D45XHM/W8/v/Ky4ilSQupeqjYFCNGAgMj2eC8d76ktYvKlthzxUX15p6TOWf4whb+E0ERHQaCUHbIkCbRAXoPxgb5XXK8Fbm25foVZwFtWTY5EsvzlkLhUG3dL6XeZfsB8qp75XPlszWToL22Gn/ZAk6pqm+V24mdhhTIkKLio0oAPpRRuQXuUAJvWayU+3aq5wDyKkHySiCpeWLMbLEmhXGgbYyXHAOU/6/LzTcKUnDKuYfDFkP+UEwkyZCMnJBIG7yQ+j7oqG3TzH/JZ0ys61ogpvfn+m3LtmAxu4fcRkIvy0I8Q6HbF/sqYqVharGxoxkaHIhpL3xXClB8/BlIA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b120516d58cfb7d8628e27b1cef81b01dbf298a4724dff8548143c422eb588c3",
      "output": {
        "clause_note": "UCP 600 (ICC Publication 600) and ISBP 745 (ICC Publication 745) are cited by article/paragraph number only; their text is ICC copyright and is not reproduced here. This tool carries no claim of ICC endorsement. Cross-reference tools/420-mt700-lc-field-validator.html for the issuance-side MT700 field validation this examination tool does not duplicate.",
        "cross_document": {
          "invoice_vs_insurance_goods_description": null,
          "invoice_vs_transport_goods_description": true,
          "port_of_discharge": {
            "document": "Rotterdam",
            "lc": "Rotterdam",
            "matches": true
          },
          "port_of_loading": {
            "document": "Shanghai",
            "lc": "Shanghai",
            "matches": true
          }
        },
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "drafts": [
          {
            "amount_minor": 5000000,
            "drawee": "Buyer Bank plc",
            "maturity_date": "2026-06-20",
            "tenor_matches_lc": null,
            "tenor_type": "sight",
            "usance_basis": null,
            "usance_days": null
          }
        ],
        "examination_window": {
          "examination_date": "2026-06-24",
          "examination_deadline": "2026-06-26",
          "examination_within_window": true,
          "presentation_date": "2026-06-20"
        },
        "findings": [],
        "insurance_check": {
          "cif_cip_value_minor": 5000000,
          "effective_date": "2026-06-15",
          "insurance_amount_minor": 5500000,
          "meets_floor": true,
          "min_insurance_pct_of_cif": 110,
          "required_minor": 5500000
        },
        "presentation_date": "2026-06-20",
        "presentation_window": {
          "expiry_date": "2026-07-31",
          "latest_shipment_date": "2026-06-30",
          "presentation_period_days": 21,
          "shipment_date": "2026-06-15",
          "shipment_on_time": true,
          "shipment_plus_window_deadline": "2026-07-06",
          "within_expiry": true,
          "within_shipment_window": true
        },
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over structured fields the caller has transcribed from a presentation -- no OCR, no document upload, no parsing of any document image, PDF, or free-text description. Goods-description conformity is a caller-declared judgment, never inferred from text. Does not determine complying presentation on its own; it is a re-derivable arithmetic check the examiner and, on referral, the issuing bank evaluate.",
        "tolerances": {
          "amount": {
            "invoice_amount_minor": 5000000,
            "lc_amount_minor": 5000000,
            "tolerance_pct": 5,
            "variance_pct": 0,
            "within_tolerance": true
          },
          "quantity": {
            "invoice_value": 1000,
            "lc_value": 1000,
            "tolerance_pct": 5,
            "unit": "MT",
            "variance_pct": 0,
            "within_tolerance": true
          }
        },
        "verdict": "COMPLYING_PRESENTATION"
      }
    }
  }
},
    {
  "tool_id": "art-571-lease-schedule-recompute-asc842-ifrs16",
  "tool_version": "1.0.0",
  "display_name": "Lease Schedule Recompute — ASC 842 / IFRS 16",
  "mcp_name": "recompute_lease_schedule_asc842_ifrs16",
  "mandate_type": "compliance_control",
  "wave": 93,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-571-lease-schedule-recompute-asc842-ifrs16.html",
  "description": "Recomputes the present value of a declared lease payment schedule and the full effective-interest amortization -- liability and right-of-use asset -- under ASC 842 and IFRS 16 side by side, from a caller-declared discount rate and payment schedule. Runs the ASC 842 five-criterion finance-vs-operating classification test: ownership transfer, a purchase option reasonably certain of exercise, and specialized-asset status are always caller-declared; the major-part-of-economic-life and substantially-all-of-fair-value criteria are computed against the common 75%/90% bright lines only when the caller elects them, and otherwise are caller-declared judgment inputs -- an election is always labeled as such, never silently defaulted. IFRS 16 applies a single on-balance-sheet lessee model with no operating/finance distinction. Optionally diffs the ASC 842 or IFRS 16 closing liability at each payment date against a counterparty-supplied preparer schedule within a declared tolerance, returning MATCHES, DIVERGES, or INDETERMINATE when no preparer schedule is supplied or preparer dates do not appear in the computed schedule. The discount rate is always a declared input, never inferred or derived. Performs arithmetic only over caller-declared terms; does not source a discount rate, does not determine what qualifies as a specialized asset, and reproduces no FASB or IASB standard text -- citations are to paragraph numbers only. Clause: ASC 842 (FASB ASC Topic 842), classification criteria at ASC 842-10-25-2 through 25-3; IFRS 16, effective 2019-01-01.",
  "input_schema_ref": "chaingraph/art-571-lease-schedule-recompute-asc842-ifrs16.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:1a566e2d4a8d4a189f06af50533cfa35d5b37c69090587830c7dbffe07c1d9ed",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AqSBSIVB9INbzTig3P667Z9MvQOA1D8MUSNsMrI1o5sZhUtqoOo+56clmL4kq935D+zbFaT5WhF/8esbryIqMwAtRCGrQHc8Z9v12VGj9tK8lLPnDUkRQwMEJ7CSWqaFJnAEGQL+0bqERzlg2aly0sZvvG9RAgj1luc4+XDNms4M9hNH3FdneihfnMxMmMY8AZMlGquSba5s4kYwXUfplg34iEQa7lELag0RfJmhVCmGmOjS4ZDleW1Q5HAZQDchA82Jzc3Tl4kQWHCbvN5A9VrAWXEZOnmrgO4AVOqontIDADxiVF+3EP/hEGsWN0Wq4MKoM9NJcZnTs5IvbrAqlQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:1a566e2d4a8d4a189f06af50533cfa35d5b37c69090587830c7dbffe07c1d9ed",
      "output": {
        "asc842": {
          "classification": "FINANCE",
          "classification_criteria": {
            "major_part_of_economic_life": {
              "economic_life_years": 4,
              "met": true,
              "source": "computed_75pct_bright_line",
              "term_years": 3.0027397260273974
            },
            "ownership_transfers": {
              "met": false,
              "source": "declared_judgment"
            },
            "purchase_option_reasonably_certain": {
              "met": false,
              "source": "declared_judgment"
            },
            "specialized_asset": {
              "met": false,
              "source": "declared_judgment"
            },
            "substantially_all_of_fair_value": {
              "fair_value_minor": 2813556,
              "met": true,
              "pv_of_payments_minor": 2672878,
              "source": "computed_90pct_bright_line"
            }
          },
          "initial_lease_liability_minor": 2672878,
          "initial_rou_asset_minor": 2677878,
          "pv_of_payments_minor": 2672878,
          "schedule": [
            {
              "closing_liability_minor": 1833251,
              "date": "2027-01-01",
              "interest_minor": 160373,
              "opening_liability_minor": 2672878,
              "payment_minor": 1000000,
              "period_days": 365,
              "principal_minor": 839627,
              "rou_amortization_minor": 891812,
              "rou_closing_balance_minor": 1786066,
              "rou_opening_minor": 2677878
            },
            {
              "closing_liability_minor": 943246,
              "date": "2028-01-01",
              "interest_minor": 109995,
              "opening_liability_minor": 1833251,
              "payment_minor": 1000000,
              "period_days": 365,
              "principal_minor": 890005,
              "rou_amortization_minor": 891812,
              "rou_closing_balance_minor": 894254,
              "rou_opening_minor": 1786066
            },
            {
              "closing_liability_minor": 0,
              "date": "2029-01-01",
              "interest_minor": 56754,
              "opening_liability_minor": 943246,
              "payment_minor": 1000000,
              "period_days": 366,
              "principal_minor": 943246,
              "rou_amortization_minor": 894254,
              "rou_closing_balance_minor": 0,
              "rou_opening_minor": 894254
            }
          ]
        },
        "clause_note": "ASC 842 (Leases), FASB ASC Topic 842 -- classification criteria at ASC 842-10-25-2 through 25-3. IFRS 16 (Leases), effective 2019-01-01, applies a single on-balance-sheet lessee model and does not classify leases as finance or operating. Confirm the current standard text for the applicable reporting framework.",
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "diff": {
          "compare_regime": "asc842",
          "compared_count": 3,
          "mismatches": [],
          "requested": true,
          "tolerance_minor": 0
        },
        "elections": [
          "major_part_75pct_bright_line",
          "substantially_all_90pct_bright_line"
        ],
        "findings": [],
        "ifrs16": {
          "ifrs16_note": "IFRS 16 applies a single on-balance-sheet lessee model; no operating/finance classification is made.",
          "initial_lease_liability_minor": 2672878,
          "initial_rou_asset_minor": 2677878,
          "pv_of_payments_minor": 2672878,
          "schedule": [
            {
              "closing_liability_minor": 1833251,
              "date": "2027-01-01",
              "interest_minor": 160373,
              "opening_liability_minor": 2672878,
              "payment_minor": 1000000,
              "period_days": 365,
              "principal_minor": 839627,
              "rou_amortization_minor": 891812,
              "rou_closing_balance_minor": 1786066,
              "rou_opening_minor": 2677878
            },
            {
              "closing_liability_minor": 943246,
              "date": "2028-01-01",
              "interest_minor": 109995,
              "opening_liability_minor": 1833251,
              "payment_minor": 1000000,
              "period_days": 365,
              "principal_minor": 890005,
              "rou_amortization_minor": 891812,
              "rou_closing_balance_minor": 894254,
              "rou_opening_minor": 1786066
            },
            {
              "closing_liability_minor": 0,
              "date": "2029-01-01",
              "interest_minor": 56754,
              "opening_liability_minor": 943246,
              "payment_minor": 1000000,
              "period_days": 366,
              "principal_minor": 943246,
              "rou_amortization_minor": 894254,
              "rou_closing_balance_minor": 0,
              "rou_opening_minor": 894254
            }
          ]
        },
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic and a documented classification test over caller-declared lease terms, payment schedule, and discount rate only. Does not source a discount rate, does not determine what qualifies as a specialized asset, and does not reproduce ASC 842 or IFRS 16 standard text.",
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-572-multi-garnishment-stacking-recompute",
  "tool_version": "1.0.0",
  "display_name": "Multi-Garnishment Stacking Recomputation",
  "mcp_name": "recompute_garnishment_stack",
  "mandate_type": "analytics_mandate",
  "wave": 96,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-572-multi-garnishment-stacking-recompute.html",
  "description": "Recomputes, for one stated pay period, how much of an employee's disposable earnings each order in a caller-declared garnishment stack may lawfully withhold, then compares the recomputed per-order withholding against a garnishment notice where one is supplied. Both an employer computing what to withhold and an employee or legal-aid clinic recomputing a notice they received can run the same arithmetic; neither side is privileged. Disposable earnings are computed from caller-supplied gross earnings less legally-required deductions. Each order type carries its own statutory cap: child-support orders use the CCPA Title III tiers of 50, 55, 60 or 65 percent keyed on arrears over 12 weeks and a second family; a federal tax levy is exempt from the CCPA percentage limitations and is capped here only at remaining disposable earnings, with the IRS wage-bracket exempt-amount table named as out of scope; a state levy uses a caller-declared percentage where supplied and otherwise defaults to the general CCPA cap, with no fifty-state table bundled; an HEA Administrative Wage Garnishment order is capped at 15 percent of disposable earnings and by the 30-times-federal-minimum-wage floor; and creditor and other orders use the general CCPA cap of 25 percent or the 30-times floor, whichever is less. Orders are withheld in the priority order the caller supplies, subject to each order's own cap and an aggregate ceiling equal to the single highest individual cap present in the stack, a documented simplification named in the artifact's not_proven list. A dated, caller-overridable federal minimum wage prefill feeds the 30-times floor. The verdict is MATCHES, DIVERGES, or INDETERMINATE, and INDETERMINATE covers both an empty order stack and a run where no noticed withholding amounts were supplied to compare against; neither case is guessed toward agreement. Money is fixed point in integer minor units throughout with two-decimal display. Cites the Consumer Credit Protection Act Title III, 29 CFR Part 870, DOL Fact Sheet 30, and 34 CFR Part 34 for the Administrative Wage Garnishment cap, each dated for re-verification against primary text. Stated boundary: this is not legal advice, and a divergence against a supplied notice is an arithmetic finding about the order stack and figures supplied here, never a determination that any order is valid, enforceable, or correctly served.",
  "input_schema_ref": "chaingraph/art-572-multi-garnishment-stacking-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:40566c4874e0229d5ecd0a9656e3643dfaabfb3bfdc79ddc78a332d900bec3bf",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IHH7s6xO/n+qU8AraF+yiT+g1lFFaBQ1gogWPgR+shUo+IH8/I8tS2DYllRt2bOlml6r9vCM8fGYp9TuOKMzJiHaRlJQ9mHxf3wKTvpJXST4VkByNOaGKwRd6LYU61dMHYLu+el3nQd9Jb8Ff14JfaW1WhPhaqsSsyfmmtLMgEMdD87XIZzzYW/Fi3G+a2tRp1G7hImSNvlBdip6qgGXUA2m6edNj1c7EzDaqddlX2WasFoq0ak9TNPwwt6UWs1cHH9tf3W6BzKYU7GsmseSsiO2U1dhjgAP6U0k14cHWUsXUcsZ2VCCGOBwdrTVomVjqZq2Bv0vXbIsdUQ9Ge7IXw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:40566c4874e0229d5ecd0a9656e3643dfaabfb3bfdc79ddc78a332d900bec3bf",
      "output": {
        "aggregate_cap_display": "440.10",
        "aggregate_cap_minor_units": 44010,
        "ccpa_floor_display": "217.50",
        "ccpa_floor_minor_units": 21750,
        "citations": {
          "ccpa_general_cap": {
            "detail": "General garnishment ceiling of 25% of disposable earnings, or the amount by which disposable earnings exceed 30 times the federal minimum wage, whichever is less.",
            "source": "29 CFR Part 870 / CCPA Sec. 303"
          },
          "ccpa_support_tiers": {
            "detail": "Support-order withholding tiers of 50/55/60/65% of disposable earnings, keyed on whether the obligor supports another spouse/child and whether arrears exceed 12 weeks. Re-verify against primary text before relying on it (research findings, not facts).",
            "source": "Consumer Credit Protection Act Title III, 15 U.S.C. Sec. 1673(b)"
          },
          "dol_fact_sheet_30": {
            "detail": "General guidance on Title III of the CCPA, cited for the aggregate-ceiling pattern this kernel applies across a multi-order stack.",
            "source": "U.S. DOL Wage and Hour Division, Fact Sheet 30"
          },
          "federal_tax_levy_exemption": {
            "detail": "A federal tax levy is exempt from the CCPA percentage limitations that bind every other order type modelled here. The IRS Publication 1494 wage-bracket exempt-amount table is NOT computed by this kernel.",
            "source": "26 U.S.C. Sec. 6334; CCPA Sec. 303(b)"
          },
          "hea_awg": {
            "detail": "Administrative Wage Garnishment on defaulted federal student loans is capped at 15% of disposable earnings, and may not reduce weekly pay below 30 times the federal minimum wage.",
            "source": "34 CFR Part 34 (Administrative Wage Garnishment); DOL Fact Sheet 30"
          }
        },
        "comparison_basis": "The recomputed side of every comparison is derived here from disposable earnings and the caller-declared order stack, allocated in the order the orders[] array was supplied. It is not read from a garnishment notice. A comparison is only meaningful because the two sides have independent provenance.",
        "currency": "USD",
        "diff": [
          {
            "agrees": true,
            "detail": "The independently recomputed withholding equals the amount the notice states for this order.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_order_stack": true,
            "noticed_display": "440.10",
            "noticed_minor_units": 44010,
            "order_id": "ord-1",
            "recomputed_display": "440.10",
            "recomputed_minor_units": 44010
          },
          {
            "agrees": true,
            "detail": "The independently recomputed withholding equals the amount the notice states for this order.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_order_stack": true,
            "noticed_display": "0.00",
            "noticed_minor_units": 0,
            "order_id": "ord-2",
            "recomputed_display": "0.00",
            "recomputed_minor_units": 0
          }
        ],
        "disposable_earnings_display": "733.50",
        "disposable_earnings_floored_at_zero": false,
        "disposable_earnings_minor_units": 73350,
        "employee_net_display": "293.40",
        "employee_net_minor_units": 29340,
        "employee_ref": "SYNTH-EMP-001",
        "federal_minimum_wage_display": "7.25",
        "federal_minimum_wage_minor_units": 725,
        "federal_minimum_wage_source": {
          "dated": "2009-07-24",
          "kind": "dated_prefill"
        },
        "fence": "This is not legal advice. Orders are withheld in the priority order the caller supplies, subject to each order's own statutory cap and an aggregate ceiling equal to the single highest individual cap present in the stack. A federal tax levy is capped only at remaining disposable earnings, not the IRS exempt-amount table. A state levy uses a caller-declared percentage where supplied, otherwise the general CCPA cap. No 50-state table is bundled. A divergence against a supplied notice is an arithmetic finding about the figures supplied here, never a legal determination.",
        "first_uncapped_shortfall": "ord-2",
        "gross_display": "1000.00",
        "gross_minor_units": 100000,
        "indeterminate_reason": null,
        "legally_required_deductions": [
          {
            "amount_display": "150.00",
            "amount_minor_units": 15000,
            "label": "Federal income tax withholding"
          },
          {
            "amount_display": "76.50",
            "amount_minor_units": 7650,
            "label": "FICA"
          },
          {
            "amount_display": "40.00",
            "amount_minor_units": 4000,
            "label": "State income tax withholding"
          }
        ],
        "minor_unit_exponent": 2,
        "not_proven": [
          {
            "detail": "This kernel recomputes statutory-cap arithmetic from caller-declared facts about one pay period. It is not a substitute for counsel, a state agency, or the employer's own legal review.",
            "item": "Not legal advice"
          },
          {
            "detail": "A federal_tax_levy order is capped only at remaining disposable earnings, not at the IRS Publication 1494 wage-bracket exempt-amount table, which this kernel does not compute.",
            "item": "Federal tax levy exempt amount"
          },
          {
            "detail": "No 50-state table is bundled. A state_levy order uses the caller-declared state_overlay.state_levy_cap_percent where supplied; absent that, it defaults to the general CCPA cap, which may not be the correct figure for the governing state.",
            "item": "State levy percentage"
          },
          {
            "detail": "The combined cap across every order in the stack is modelled here as the single highest individual statutory cap present. This is a documented simplification of a fact-specific area of law, not a comprehensive multi-order interaction rule for every jurisdiction.",
            "item": "Aggregate-ceiling simplification"
          },
          {
            "detail": "Orders are withheld in the order the caller lists orders[] in. This kernel infers no priority from order type and does not verify that the supplied order matches the governing statute or a court's instructions.",
            "item": "Priority ordering"
          },
          {
            "detail": "Gross earnings, legally-required deductions, and every order's claimed amount are caller-supplied and asserted, not independently verified against payroll records or a court order.",
            "item": "Input accuracy"
          }
        ],
        "note": "Deterministic multi-garnishment stacking recomputation for one stated pay period. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing. It performs no payroll processing and makes no assertion that any order is valid, enforceable, or correctly served.",
        "noticed_supplied": true,
        "order_count": 2,
        "orders": [
          {
            "arrears_over_12wk": false,
            "cap_basis": "CCPA Title III support tier: 60% of disposable earnings (arrears>12wk=false, second_family=false).",
            "cap_display": "440.10",
            "cap_minor_units": 44010,
            "ccpa_capped": true,
            "claimed_amount_minor_units": 44010,
            "claimed_display": "440.10",
            "fully_withheld": true,
            "label": "Child support order, county court",
            "order_id": "ord-1",
            "second_family": false,
            "shortfall_display": "0.00",
            "shortfall_minor_units": 0,
            "type": "child_support",
            "withheld_display": "440.10",
            "withheld_minor_units": 44010
          },
          {
            "arrears_over_12wk": null,
            "cap_basis": "General CCPA cap: lesser of 25% of disposable earnings and the amount by which disposable earnings exceed 30x the federal minimum wage.",
            "cap_display": "183.38",
            "cap_minor_units": 18338,
            "ccpa_capped": true,
            "claimed_amount_minor_units": 30000,
            "claimed_display": "300.00",
            "fully_withheld": false,
            "label": "Creditor garnishment",
            "order_id": "ord-2",
            "second_family": null,
            "shortfall_display": "300.00",
            "shortfall_minor_units": 30000,
            "type": "creditor",
            "withheld_display": "0.00",
            "withheld_minor_units": 0
          }
        ],
        "period_label": "2026-01-15 biweekly pay period",
        "rationale": [
          "Garnishment stack recomputed for period 2026-01-15 biweekly pay period on employee reference SYNTH-EMP-001.",
          "Disposable earnings of 733.50 USD were derived from gross earnings of 1000.00 USD less 266.50 USD of legally-required deductions.",
          "The federal minimum wage figure used was 7.25 USD/hour (a dated prefill from 2009-07-24), giving a 30x weekly floor of 217.50 USD.",
          "2 orders were withheld in the priority order supplied, subject to each order's own statutory cap and an aggregate ceiling of 440.10 USD (the single highest individual cap present in the stack).",
          "The stack ran out of capacity at order ord-2, the first order whose claimed amount could not be withheld in full within its cap and the remaining disposable earnings and aggregate ceiling.",
          "Total withheld across the stack is 440.10 USD, leaving the employee 293.40 USD of disposable earnings for the period.",
          "The independently recomputed withholding agrees with every one of the 2 orders the notice states a figure for. The left-hand side was computed here from the order stack, not lifted from the notice.",
          "This is not legal advice. The statutory caps modelled here (CCPA support tiers, the general CCPA cap, the HEA AWG cap, and the federal-tax-levy CCPA exemption) are a simplification of a fact-specific area of law; a state's own wage-garnishment statute, a court's instructions, or counsel govern over this arithmetic."
        ],
        "rejected_inputs": [],
        "state_overlay": {},
        "total_deductions_display": "266.50",
        "total_deductions_minor_units": 26650,
        "total_withheld_display": "440.10",
        "total_withheld_minor_units": 44010,
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-573-section16b-short-swing-profit-recompute",
  "tool_version": "1.0.0",
  "display_name": "Section 16(b) Short-Swing Profit Recomputation",
  "mcp_name": "recompute_section16b_profit",
  "mandate_type": "analytics_mandate",
  "wave": 96,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-573-section16b-short-swing-profit-recompute.html",
  "description": "Recomputes an Exchange Act Section 16(b) short-swing profit figure from a caller-declared list of an insider's own transactions in the issuer's equity security, then compares the recomputed figure against a number a demand letter claims where one is supplied. Section 16(b) demand letters are typically built by a plaintiff firm scanning Form 4 filings for a lowest-price-in, highest-price-out match; the recipient side, whether the insider or the issuer's counsel, has had no deterministic free tool to independently recompute that number, which this node is. Matching uses the Smolowe v. Delvag Reinsurance / Gratz v. Claughton maximal-recovery construction: the lowest-priced eligible purchase is repeatedly paired against the highest-priced eligible sale within a day-count approximation of the statutory less-than-six-months window, a pairing that would produce a loss is skipped rather than netted against a profitable one, and every matched pair is reported with its own purchase date, sale date, share count and profit. A transaction carrying a caller-declared exemption flag, such as a Rule 16b-3 approved-plan exemption, is excluded from matching and reported separately; this node makes no independent exemption determination. It also carries an informational Section 16(a) and 16(b) applicability check over caller-declared officer, director, and ten-percent-owner status, including the Holding Foreign Insiders Accountable Act asymmetry: a foreign private issuer's officers and directors became Section 16(a) reporting filers under HFIAA without becoming subject to Section 16(b) short-swing profit-recovery liability, which this node flags without gating the arithmetic on it. The verdict is MATCHES, DIVERGES, or INDETERMINATE, and INDETERMINATE covers both an empty transaction list and a run where no demand-letter figure was supplied to compare against; neither case is guessed toward agreement. Money is fixed point in integer minor units throughout with two-decimal display. Cites Exchange Act Section 16(b) and 16(a), Rule 16b-3, Rule 3a12-3, and HFIAA, each dated for re-verification against primary text, and names the matching algorithm and the six-month day-count approximation as research findings needing independent re-verification rather than established facts. Stated boundary: this is not legal advice, no computed figure resolves a matchability or exemption dispute, and a Rule 144 volume-limitation check is a named follow-on tool, not computed here.",
  "input_schema_ref": "chaingraph/art-573-section16b-short-swing-profit-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2bf576ae353041e722a9e64447d9484503c9d7208b320a9338562368f15e41d2",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "GGAQBHxmGg2D5ZplSEjx0g0q4szg9an+dRF8nX/QBqstuoSdfkSLLeo1yjZsBDvk9nhAbbs19641UcPvah3HOSb3k8UhRvIOx16llJXZ0lz/MpQ5wr1FfXjBWP5hqsn0GkCoF1/0MPQ3gfud/V8hMuSBDHo9JLRJskM5+L32CB4UbHvFs+KkD3vqfllQyWoITfIyGmObJ+EqlaUWPjc0YgtjOmdjMRAi0zxcyeZazlFKbxIvf2ywzJqDrD2wLqRQDkENbxUE2NWHJntw68mSm1YNh9a8rMZpub1ktt9e/3cu4KyjunSbHr2sGzPOogvzs8LT3thT3S27R8W7mTwvTA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2bf576ae353041e722a9e64447d9484503c9d7208b320a9338562368f15e41d2",
      "output": {
        "citations": {
          "hfiaa": {
            "detail": "Makes officers and directors of a foreign private issuer Section 16(a) reporting filers for the first time. Expressly does NOT extend Section 16(b) short-swing profit-recovery liability to that population, and does not disturb the Rule 3a12-3(b) exemption for a 10%-owner who is not also an officer or director. Re-verify against primary text before relying on it (research finding, not fact).",
            "source": "Holding Foreign Insiders Accountable Act, FY2026 NDAA, signed 2025-12-18"
          },
          "rule_16b3": {
            "detail": "Exempts certain transactions between an issuer and its officers/directors under an approved plan (e.g. grants, tax-withholding transactions) from Section 16(b) matching. This kernel excludes a transaction from matching only when the caller declares an exemption_flags entry for it; it makes no independent exemption determination.",
            "source": "17 CFR 240.16b-3"
          },
          "rule_3a12_3": {
            "detail": "Historically exempted a foreign private issuer and its officers, directors, and 10%-owners from Section 16 (both (a) and (b)) entirely.",
            "source": "17 CFR 240.3a12-3(b)"
          },
          "section_16a_general": {
            "detail": "Reporting obligation for officers, directors, and beneficial owners of more than 10% of a registered equity security.",
            "source": "Securities Exchange Act of 1934 Sec. 16(a), 15 U.S.C. Sec. 78p(a)"
          },
          "section_16b": {
            "detail": "Strict-liability disgorgement of any profit realized by a Section 16 insider from any purchase and sale, or sale and purchase, of the issuer's equity security within a period of less than six months.",
            "source": "Securities Exchange Act of 1934 Sec. 16(b), 15 U.S.C. Sec. 78p(b)"
          },
          "smolowe_maximal_recovery": {
            "detail": "The \"lowest price in, highest price out\" matching construction, maximizing recovery to the corporation rather than measuring the insider's actual realized gain; losses on other pairings are never netted against a profitable pairing. Re-verify against primary case text before relying on it (research finding, not fact).",
            "source": "Smolowe v. Delvag Reinsurance Co., 136 F.2d 231 (2d Cir. 1943); Gratz v. Claughton, 187 F.2d 46 (2d Cir. 1951)"
          }
        },
        "comparison_basis": "The recomputed matched-pair total is derived here from the declared transaction list using the lowest-in/highest-out construction; it is not read from the demand letter. A comparison is only meaningful because the two sides have independent provenance.",
        "currency": "USD",
        "demand_letter_claimed_profit_display": "1400.00",
        "demand_letter_claimed_profit_minor_units": 140000,
        "demand_letter_supplied": true,
        "difference_display": "0.00",
        "difference_minor_units": 0,
        "excluded_transactions": [],
        "fence": "This is not legal advice. It does not compute a Rule 144 volume-limitation check (a named follow-on tool). Matching uses the lowest-in/highest-out construction over caller-declared transactions and a day-count approximation of the six-month window; a declared exemption excludes a transaction from matching without this kernel independently determining whether that exemption applies. No computed figure resolves a matchability or exemption dispute, which is counsel's.",
        "indeterminate_reason": null,
        "insider_ref": "SYNTH-INSIDER-001",
        "insider_status": {
          "foreign_private_issuer": false,
          "officer_or_director": true,
          "ten_pct_owner": false
        },
        "issuer_ref": "SYNTH-ISSUER-CO",
        "matched_pairs": [
          {
            "day_gap": 81,
            "profit_display": "1000.00",
            "profit_minor_units": 100000,
            "purchase_date": "2026-01-10",
            "purchase_price_display": "10.00",
            "purchase_price_minor_units": 1000,
            "purchase_txn_id": "txn-1",
            "sale_date": "2026-04-01",
            "sale_price_display": "20.00",
            "sale_price_minor_units": 2000,
            "sale_txn_id": "txn-3",
            "shares_matched": 100,
            "window_basis": "81 day(s) apart, matched against a 183-day approximation of the statutory less-than-six-months window (day-count approximation, not calendar-month arithmetic; see not_proven)."
          },
          {
            "day_gap": 50,
            "profit_display": "400.00",
            "profit_minor_units": 40000,
            "purchase_date": "2026-02-10",
            "purchase_price_display": "12.00",
            "purchase_price_minor_units": 1200,
            "purchase_txn_id": "txn-2",
            "sale_date": "2026-04-01",
            "sale_price_display": "20.00",
            "sale_price_minor_units": 2000,
            "sale_txn_id": "txn-3",
            "shares_matched": 50,
            "window_basis": "50 day(s) apart, matched against a 183-day approximation of the statutory less-than-six-months window (day-count approximation, not calendar-month arithmetic; see not_proven)."
          }
        ],
        "minor_unit_exponent": 2,
        "not_proven": [
          {
            "detail": "This kernel recomputes a matchable-pair short-swing profit figure from caller-declared transaction facts. It is not a substitute for counsel, and no computed figure resolves a matchability or exemption dispute.",
            "item": "Not legal advice"
          },
          {
            "detail": "The statutory \"less than six months\" boundary is approximated here as strictly less than 183 days apart rather than true calendar-month arithmetic. A pair straddling the 182/183-day boundary needs independent calendar-month verification.",
            "item": "Six-month window is a day-count approximation"
          },
          {
            "detail": "The lowest-in/highest-out maximal-recovery construction is the widely cited Smolowe/Gratz heuristic, but this kernel's citation of it was not re-derived from primary case text at build time (research finding, not fact per the build row).",
            "item": "Algorithm re-verification"
          },
          {
            "detail": "A transaction is excluded from matching only because the caller declared an exemption_flags entry for it (e.g. Rule 16b-3). This kernel makes no independent determination that any exemption in fact applies.",
            "item": "Exemption determinations are caller-declared"
          },
          {
            "detail": "Whether a sale complies with Rule 144 volume limitations is out of scope; it is a named follow-on tool, not computed here.",
            "item": "Rule 144 volume limitation"
          },
          {
            "detail": "Every transaction's date, price, and share count, and the insider_status flags, are caller-supplied and asserted, not independently verified against EDGAR Form 4/5 filings.",
            "item": "Input accuracy"
          }
        ],
        "note": "Deterministic Section 16(b) matchable-pair short-swing profit recompute over a caller-declared transaction list. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing.",
        "purchase_count": 2,
        "rationale": [
          "Section 16(b) matchable-pair recompute for insider reference SYNTH-INSIDER-001 on issuer reference SYNTH-ISSUER-CO.",
          "3 of 3 declared transaction(s) were usable and non-exempt; 0 were excluded (unusable input or a declared exemption).",
          "2 purchase(s) and 1 sale(s) were eligible for matching. Matching applied the lowest-in/highest-out construction: the lowest-priced eligible purchase was paired against the highest-priced eligible sale, repeatedly, within a 183-day approximation of the statutory less-than-six-months window, and a pairing that would produce a loss was skipped rather than netted.",
          "2 matched pair(s) were found, for a total recomputed profit of 1400.00 USD.",
          "50 purchased share(s) and 0 sold share(s) remained unmatched (no eligible profitable in-window counterparty).",
          "Domestic insider: officer/director or 10%-owner status makes this insider both a Section 16(a) filer and subject to Section 16(b) short-swing profit-recovery liability.",
          "The independently recomputed matched-pair total agrees with the demand letter's claimed profit of 1400.00 USD.",
          "This is not legal advice. The six-month window applied here is a day-count approximation of the statutory calendar-month boundary, and no exemption was independently determined -- both are named in not_proven. No computed figure resolves a matchability or exemption dispute."
        ],
        "rejected_inputs": [],
        "sale_count": 1,
        "section_16a_applicability": {
          "basis": "Domestic insider: officer/director or 10%-owner status makes this insider both a Section 16(a) filer and subject to Section 16(b) short-swing profit-recovery liability.",
          "is_16a_filer": true,
          "is_16b_liable": true
        },
        "six_month_window_day_threshold": 183,
        "total_profit_display": "1400.00",
        "total_profit_minor_units": 140000,
        "transaction_count": 3,
        "unmatched_purchase_shares": 50,
        "unmatched_sale_shares": 0,
        "usable_transaction_count": 3,
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-574-certified-payroll-prevailing-wage-recompute",
  "tool_version": "1.0.0",
  "display_name": "Certified Payroll / Prevailing Wage Recomputation",
  "mcp_name": "recompute_certified_payroll_pwa",
  "mandate_type": "analytics_mandate",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-574-certified-payroll-prevailing-wage-recompute.html",
  "description": "Recomputes, for one stated certified-payroll week, whether each worker on a caller-declared payroll was paid at or above the wage-determination rate for their classification, with Contract Work Hours and Safety Standards Act overtime applied at time-and-a-half on the basic hourly rate and fringe due straight-time for every hour. A prime contractor verifying a subcontractor's weekly payroll and a Section 6418 credit-transferee or tax-equity investor diligencing a developer's prevailing-wage math before purchasing transferred credits can run the identical arithmetic; neither side is privileged. Where a submitted certified payroll is also supplied, the recomputed required gross for each worker, derived here from the wage determination and declared hours rather than lifted from the submission, is compared against it field by field. In PWA mode, any deficiency found triggers an IRC Section 45(b)(7)-(8) correction-payment and penalty computation re-verified against primary text at build: the wage-differential component of the correction is tripled on a declared intentional disregard, interest accrues at the Section 6621 underpayment rate with six percentage points substituted for three, and the penalty is five thousand dollars per underpaid worker for the stated period, ten thousand on intentional disregard, with annual aggregation across periods left to the caller since this kernel is single-run and stateless. An optional apprentice-ratio check compares a declared permitted ratio against declared journeyman and apprentice counts without a bundled fifty-state or program table and without reassigning excess-apprentice hours to the journeyman rate, both named in the artifact's not_proven list. The verdict is MATCHES, DIVERGES, or INDETERMINATE, and INDETERMINATE covers an empty wage determination, an empty payroll, a payroll row whose classification is not found in the wage determination, and a run where no submitted certified payroll was supplied to compare against; none of these cases is guessed toward agreement. Money is fixed point in integer minor units throughout with two-decimal display. Cites the Davis-Bacon Act at 40 U.S.C. Section 3141 and following, 29 CFR Part 5, the Contract Work Hours and Safety Standards Act at 40 U.S.C. Section 3701 and following, IRC Section 45(b)(7)-(8) and its final regulations, and DOL Form WH-347, each dated for re-verification against primary text; no WH-347 expiration or sunset date is encoded because research turned up conflicting secondary-source dates. Stated boundary: this is not tax or legal advice, and a divergence against a submitted payroll is an arithmetic finding about the wage determination and hours supplied here, never a determination that any classification, hours, or correction figure is legally or factually correct.",
  "input_schema_ref": "chaingraph/art-574-certified-payroll-prevailing-wage-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4da565b656d200c214becb712b820a097894e9edeae66b4275e34854847911c7",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "A8ebKl5U0SBPKQhB2oAIOyBlVl9ip6jHyBeqDDniSbYKavd4d/5j0XpROrL2wS9h3g5boP+F1hVPDPpTfg1bpCes77N6xTFd+jVGhqQ81rxA6OPsUWWLXBg6oF6K15sBGkGVjz9DN5tKRQQQF3dpBwyST1kJo9hyM16UH6DEcEEOBqFD7L9ky2+5ZWjZ7LM/E2q5hvhsrPyVbNy227jw8gMeHc9/aZmLeu1XBUW1z1L2OrKUb3Z7SU4YPk8Jvmc1HEAm1fd6aFOnwpHKzJsgnT0+AWP+eEcsWkcOmRFGr7kdJNB7YdkRK35tQsketO6BNeF6SREG12pxdqIzR1Kddw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4da565b656d200c214becb712b820a097894e9edeae66b4275e34854847911c7",
      "output": {
        "apprentice_check": null,
        "citations": {
          "cwhssa": {
            "detail": "Requires time-and-a-half overtime pay after 40 hours in a week. This kernel applies the premium to the basic hourly rate only, with fringe due straight-time for every hour -- the general convention, not an exhaustive rule for every fringe arrangement.",
            "source": "40 U.S.C. Sec. 3701 ff. (Contract Work Hours and Safety Standards Act); 29 CFR Part 5 contract clauses"
          },
          "davis_bacon_act": {
            "detail": "Requires laborers and mechanics on covered federal construction contracts to be paid not less than the wage determination rate (base plus fringe) for their classification.",
            "source": "40 U.S.C. Sec. 3141 ff. (Davis-Bacon Act); 29 CFR Part 5"
          },
          "irc_45b7_correction": {
            "detail": "Correction payment = the wage deficiency (tripled on intentional disregard) plus interest at the Sec. 6621 underpayment rate with 6 percentage points substituted for 3. Re-verify against primary text before relying on it (research findings, not facts).",
            "source": "IRC Sec. 45(b)(7)(B)(i)(I); 26 CFR Sec. 1.45-7"
          },
          "irc_45b7_penalty": {
            "detail": "Penalty of $5,000 per laborer or mechanic paid below the prevailing wage for any period during the year ($10,000 on intentional disregard). This kernel computes the penalty for the ONE stated period only; annual aggregation and deduplication across periods is the caller’s responsibility.",
            "source": "IRC Sec. 45(b)(7)(B)(i)(II)/(iii); 26 CFR Sec. 1.45-7"
          },
          "wh347": {
            "detail": "Certified payroll form referenced for the shape of a submitted-payroll comparison. No expiration/sunset date is encoded here -- verify current validity at dol.gov/agencies/whd/forms/wh347.",
            "source": "DOL Form WH-347 (OMB Control No. 1235-0008)"
          }
        },
        "comparison_basis": "The recomputed side of every comparison is derived here from the wage determination and the caller-declared payroll hours. It is not read from a submitted certified payroll. A comparison is only meaningful because the two sides have independent provenance.",
        "currency": "USD",
        "deficient_worker_count": 0,
        "diff": [
          {
            "agrees": true,
            "detail": "The independently recomputed required gross equals the amount the submitted certified payroll states for this worker.",
            "difference_display": "0.00",
            "difference_minor_units": 0,
            "in_payroll": true,
            "recomputed_gross_display": "2416.00",
            "recomputed_gross_minor_units": 241600,
            "submitted_gross_display": "2416.00",
            "submitted_gross_minor_units": 241600,
            "worker_id": "W-1"
          }
        ],
        "fence": "This is not tax or legal advice. Rate compliance and CWHSSA overtime are recomputed from a caller-declared wage determination and payroll hours. PWA-mode correction and penalty figures follow IRC Sec. 45(b)(7)-(8) as re-verified against primary text at build, computed for the ONE stated period only -- annual aggregation across periods is the caller’s responsibility. No WH-347 expiration date is encoded. A divergence against a submitted payroll is an arithmetic finding about the figures supplied here, never a legal or tax determination.",
        "indeterminate_reason": null,
        "minor_unit_exponent": 2,
        "not_proven": [
          {
            "detail": "This kernel recomputes wage/hour and IRC Sec. 45 correction arithmetic from caller-declared facts about one payroll week. It is not a substitute for counsel, a CPA, the Department of Labor, or the IRS.",
            "item": "Not tax or legal advice"
          },
          {
            "detail": "The wage determination rows and each payroll row’s classification are caller-declared and are not independently verified against the governing WD published for the project’s locality.",
            "item": "Wage determination match"
          },
          {
            "detail": "Overtime premium is modelled on the basic hourly rate only, with fringe due straight-time for every hour. Fringe-in-lieu-of-benefits arrangements and split-shift rules are not modelled.",
            "item": "CWHSSA overtime convention"
          },
          {
            "detail": "An excess-apprentice count is flagged, but this kernel does not reassign excess apprentice hours to the journeyman rate or verify the declared ratio against the governing apprenticeship program.",
            "item": "Apprentice ratio recompute"
          },
          {
            "detail": "Interest on a deficiency is computed as simple interest over the caller-declared number of underpayment days at the declared annual rate, not the daily-compounding convention Sec. 6621 actually uses.",
            "item": "Sec. 6621 interest approximation"
          },
          {
            "detail": "The Sec. 45(b)(7)(B) penalty aggregates by calendar year across every payroll period. This kernel is single-run and stateless and computes the penalty for the ONE stated period only; deduplicating a worker who recurs across periods in the same year is the caller’s responsibility.",
            "item": "Annual penalty aggregation"
          },
          {
            "detail": "No WH-347 OMB expiration/sunset date is encoded. Verify current form validity directly at dol.gov/agencies/whd/forms/wh347.",
            "item": "WH-347 form currency"
          },
          {
            "detail": "Hours, rates, fringe, and every submitted-payroll figure are caller-supplied and asserted, not independently verified against timecards or payroll records.",
            "item": "Input accuracy"
          }
        ],
        "note": "Deterministic certified-payroll and prevailing-wage recomputation for one stated payroll week. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing.",
        "payroll_rows": [
          {
            "classification": "Electrician",
            "combined_paid_rate_display": "53.00",
            "combined_paid_rate_minor_units": 5300,
            "deficiency_display": "0.00",
            "deficiency_minor_units": 0,
            "fringe_paid_display": "11.00",
            "fringe_paid_minor_units": 1100,
            "ot_hours": 4,
            "paid_gross_display": "2416.00",
            "paid_gross_minor_units": 241600,
            "rate_meets_wd": true,
            "rate_paid_display": "42.00",
            "rate_paid_minor_units": 4200,
            "required_gross_display": "2416.00",
            "required_gross_minor_units": 241600,
            "st_hours": 40,
            "wd_combined_rate_display": "53.00",
            "wd_combined_rate_minor_units": 5300,
            "wd_found": true,
            "worker_id": "W-1"
          }
        ],
        "project_ref": "SYNTH-PROJ-574-A",
        "pwa_mode": true,
        "pwa_result": {
          "correction_computable": true,
          "deficient_worker_count": 0,
          "intentional_disregard": false,
          "irc_6621_underpayment_rate_percent": null,
          "penalty_scope": "This penalty is computed for the ONE stated payroll period only. The statute aggregates by calendar year across every period; deduplicating a worker who recurs across periods in the same year is the caller’s responsibility.",
          "penalty_worker_count": 0,
          "per_worker_penalty_display": "5000.00",
          "per_worker_penalty_minor_units": 500000,
          "total_correction_payment_display": null,
          "total_correction_payment_minor_units": null,
          "total_penalty_display": "0.00",
          "total_penalty_minor_units": 0,
          "underpayment_days": null,
          "worker_corrections": []
        },
        "rationale": [
          "Certified payroll recomputed for project reference SYNTH-PROJ-574-A, week ending 2026-08-01 payroll week.",
          "1 wage-determination classification and 1 payroll row were supplied.",
          "No worker’s recomputed required gross exceeded the recomputed paid gross; no deficiency was found.",
          "PWA mode was requested but no deficiency was found, so no IRC Sec. 45(b)(7)-(8) correction or penalty applies.",
          "The independently recomputed required gross agrees with every one of the 1 worker the submitted certified payroll states a figure for. The left-hand side was computed here from the wage determination and hours, not lifted from the submission.",
          "This is not tax or legal advice. WH-347 is referenced only for the shape of a submitted-payroll comparison; no form expiration/sunset date is encoded here."
        ],
        "rejected_inputs": [],
        "submitted_supplied": true,
        "total_deficiency_display": "0.00",
        "total_deficiency_minor_units": 0,
        "verdict": "MATCHES",
        "wage_determination": [
          {
            "base_rate_minor_units": 4200,
            "classification": "Electrician",
            "combined_rate_minor_units": 5300,
            "fringe_rate_minor_units": 1100
          }
        ],
        "week_ending_label": "2026-08-01 payroll week"
      }
    }
  }
},
    {
  "tool_id": "art-575-tmpg-fails-charge-recompute",
  "tool_version": "1.0.0",
  "display_name": "TMPG Fails-Charge Recompute",
  "mcp_name": "recompute_tmpg_fails_charge",
  "mandate_type": "compliance_control",
  "wave": 94,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-575-tmpg-fails-charge-recompute.html",
  "description": "Recomputes the NY Fed Treasury Market Practices Group fails-charge claim a buyer presents to a failing seller on a UST, agency, or agency-MBS settlement fail: charge = max(0, 3% minus the caller-declared reference rate) / 360 x par amount x days failed, per the published trading practice (2016 revision). Accepts a batch of fails in one pass, each with its own par amount, reference rate, and day count, and diffs the recomputed charge against a caller-declared claimed amount within a caller-declared tolerance -- never a default. A fail with no claimed amount contributes an INDETERMINATE line rather than a silent pass. Overall verdict DIVERGES if any fail's recomputed charge falls outside tolerance of its claimed amount; INDETERMINATE if every fail is within tolerance or unclaimed but at least one has no claimed amount to diff, or if the tolerance itself, or every fail, is absent; MATCHES only when every fail carries a claimed amount and every one agrees within tolerance. Par and claimed amounts are integer minor units, so the arithmetic is exact; recomputed charges round to the nearest minor unit. Performs arithmetic only over caller-declared par amounts, reference rates, day counts, and claimed amounts -- does not source, derive, or independently verify fail status, par amounts, or reference rates from any feed, and makes no TMPG/NY Fed endorsement claim. Clause: NY Fed TMPG fails-charge trading practice (2016 revision); confirm current text at newyorkfed.org before relying on a computed figure for a live claim.",
  "input_schema_ref": "chaingraph/art-575-tmpg-fails-charge-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:14e3887cf72bab31d7ba429fce3f50695fd92a5bf06a7db441520862bfd55efc",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IQLijamtFm0H3CO8OK2eiFtum8XzPG/jOoD2Oeya6EEUJLka5wjGd0SdSB1oPOCUh4Q4m77pI/OZtgjZ8lY6nhMK99lD2YbSEma5pl3zUd5MiDJlZXO/8iojalXldQ3XDEseh6rXuXLoYr9g0SkWi09y2xhvj1Do5dC4+JrjDWghk/jM7RcUm54R1thhYtkKSXl1CPGQC4yIO0OnvxAuAwHPnrsHu0tW2/+w5gg6LxPg1/KetOm9eFv3Gkf6N1SLHqBOM3q+nm7ueHUWUFab38/aHw2G882cxZwj2/xSJnEkbOz+yhNOOJfy5mLTLtbfG5iEmh4639EtX395v1DC/w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:14e3887cf72bab31d7ba429fce3f50695fd92a5bf06a7db441520862bfd55efc",
      "output": {
        "clause_note": "NY Fed Treasury Market Practices Group fails-charge trading practice (2016 revision): charge = max(0, 3% - reference rate) / 360 x par x days failed. Confirm the current practice text at newyorkfed.org before relying on a computed figure for a live claim.",
        "decision": {
          "execution_state": "ran",
          "reason": null
        },
        "determinations": [
          {
            "claimed_charge_minor": 1389,
            "days_failed": 10,
            "delta_minor": 0,
            "fail_id": "fail-A",
            "par_amount_minor": 10000000,
            "rate_diff_bps": 50,
            "recomputed_charge_minor": 1389,
            "reference_rate_bps": 250,
            "verdict": "MATCHES"
          },
          {
            "claimed_charge_minor": 2083,
            "days_failed": 5,
            "delta_minor": 0,
            "fail_id": "fail-B",
            "par_amount_minor": 5000000,
            "rate_diff_bps": 300,
            "recomputed_charge_minor": 2083,
            "reference_rate_bps": 0,
            "verdict": "MATCHES"
          }
        ],
        "diff_tolerance_minor": 0,
        "fail_count": 2,
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over caller-declared par amounts, reference rates, and fail-day counts. Does not source, derive, or independently verify any fail status, par amount, or reference rate, and makes no TMPG/NY Fed endorsement claim.",
        "total_claimed_charge_minor": 3472,
        "total_recomputed_charge_minor": 3472,
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-576-emir3-active-account-representativeness-classifier",
  "tool_version": "1.0.0",
  "display_name": "EMIR 3.0 Active Account Representativeness Classifier",
  "mcp_name": "classify_emir3_active_account_status",
  "mandate_type": "compliance_mandate",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-576-emir3-active-account-representativeness-classifier.html",
  "description": "Classifies an EU counterparty's posture under EMIR Article 7a (the Active Account Requirement, inserted by Regulation (EU) 2024/2987) across three obligations: whether the active-account obligation applies and is met at an Article-14-authorised CCP; whether the Article 7a(4) representativeness obligation applies, is exempt below the EUR 6 billion notional-clearing-volume threshold, or is met by clearing at least five trades on an annual average basis in each caller-declared most-relevant subcategory per class; and whether a reporting submission falls within the applicable Commission Delegated Regulation (EU) 2026/305 Article 10 window (last day of January or July, first cycle anchored to the stated 2026-07-31 report). Subcategories are bucketed deterministically from caller-declared trade size and maturity against the RTS Annex I tables for EUR fixed-to-float, OIS and FRA, PLN fixed-to-float and FRA (single any/any bucket), and EUR STIR Euribor and euro short-term rate. Which subcategories are ESMA's market-wide most-relevant designation is not derivable from one counterparty's own trades and is taken as a caller-declared input, named in the artifact's not_proven list. Each obligation resolves to MET, NOT_MET, EXEMPT, or INDETERMINATE, and INDETERMINATE covers every case where a required input -- clearing-threshold exceedance, active-account status, notional volume, subcategory designation, or reporting date -- was not declared; none is guessed toward a passing verdict. Cites Article 7a EMIR and Commission Delegated Regulation (EU) 2026/305, re-verified against EUR-Lex at build. Existing EMIR coverage on this site is trade-report field, lifecycle, UTI and UPI validation only; this is a distinct Active Account Requirement self-check, not a duplicate. Stated boundary: this is not legal advice, and does not independently verify that a declared trade actually cleared or that the counterparty genuinely exceeds the Article 4a clearing threshold.",
  "input_schema_ref": "chaingraph/art-576-emir3-active-account-representativeness-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:61ccaaf1ba92ae118685760e5c4c2d2196095b159dd005a1e79d115d31e544c6",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K6XeDqSShocPrkhoPsooohve/62boBIrkRmnPMYfGegiWEN0+zJp/9g6Z8FhgrpD/aNSS78EVnpCRs3UbMhI6www39l5ei1FRqPnquvIdKOJiCoBb36cCsnarVu9jPNPDHS4GqjLmEu4f2jMWP0rZ6XtbVmqsKenVdr8E5S5Ur8PI1Xs6jIK3bQxBUwqch6TkKpeT00adWXuzVr0Aay4UAJWoz3lxc9FctEmB3O8gEzHgVfGXiB4xQKM8VG7wm44H4cwqR/gAwMQYa+rLsy9BWgP03ikS6lzUmTgZ879wKEXeDJAQUys1AsJGYzUVWG9QaXmAYG/Tl3eFHoL1nc0lg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:61ccaaf1ba92ae118685760e5c4c2d2196095b159dd005a1e79d115d31e544c6",
      "output": {
        "as_of_date": "2026-08-07",
        "bucket_counts": {},
        "citations": {
          "active_account_obligation": {
            "detail": "An in-scope counterparty shall hold at least one active account at an Article-14-authorised CCP for the categories in paragraph 6 (EUR/PLN interest rate derivatives; EUR short-term interest rate derivatives).",
            "source": "Article 7a(1) and 7a(6) EMIR (inserted by Regulation (EU) 2024/2987)"
          },
          "reporting_window": {
            "detail": "Reports are due on the last day of January and the last day of July each year. The first submission falls no earlier than six months from the RTS entry into force of 2026-02-26; the spec states the first report as the dated fact 2026-07-31.",
            "source": "Commission Delegated Regulation (EU) 2026/305, Article 10"
          },
          "representativeness_test": {
            "detail": "Counterparties above the threshold shall clear, on an annual average basis, at least five trades in each of the most relevant subcategories per class of derivative contracts and per reference period.",
            "source": "Article 7a(4) EMIR"
          },
          "representativeness_threshold": {
            "detail": "The representativeness obligation does not apply to counterparties with a notional clearing volume outstanding below EUR 6 billion in the paragraph-6 derivative contracts.",
            "source": "Article 7a(4) EMIR"
          },
          "subcategory_tables": {
            "detail": "Defines the size/maturity subcategory bucketing tables per class: EUR fixed-to-float, OIS, FRA (Article 4); PLN fixed-to-float and FRA, single any/any bucket (Article 5); EUR STIR Euribor and euro short-term rate, maturity-only buckets (Article 6).",
            "source": "Commission Delegated Regulation (EU) 2026/305, Articles 4-6 and Annex I"
          }
        },
        "counterparty_ref": "SYNTH-CP-001",
        "fence": "This is not legal advice and is not an ESMA or CCP determination. The most-relevant subcategory designation per class is taken as a caller-declared fact; this kernel does not compute it from market-wide data. Whether a declared trade genuinely cleared, and whether the counterparty genuinely exceeds the Article 4a clearing threshold, are asserted by the caller, not independently verified.",
        "in_scope": {
          "eur_pln_ird": false,
          "eur_stir": false
        },
        "not_proven": [
          {
            "detail": "This kernel classifies an Article 7a active-account and representativeness posture from caller-declared facts. It is not a substitute for counsel, ESMA, or the counterparty's own compliance review.",
            "item": "Not legal advice"
          },
          {
            "detail": "Which subcategories are the class's ESMA-designated \"most relevant\" ones for a reference period is a market-wide volume ranking published externally, not derivable from one counterparty's own trades. This kernel takes it as a caller-declared fact (subcategory_designations[].most_relevant) and does not verify it against any external source.",
            "item": "Most-relevant subcategory designation"
          },
          {
            "detail": "A trade count over a reference period shorter than 12 months is annualized by simple linear scaling (count * 12 / reference_period_months). This is a documented simplification, not a seasonally-aware estimate.",
            "item": "Annualization is a linear simplification"
          },
          {
            "detail": "Whether a declared trade was in fact cleared at an authorised CCP, and its size/maturity/class classification, are caller-supplied and asserted, not independently verified against a CCP or trade repository record.",
            "item": "Trade-level \"cleared\" status is asserted"
          },
          {
            "detail": "Whether the counterparty exceeds the Article 4a EMIR clearing threshold for each category is a caller-declared boolean, not independently recomputed here.",
            "item": "Clearing-threshold exceedance is asserted"
          }
        ],
        "note": "Deterministic EMIR Article 7a Active Account Requirement posture classification for one stated point in time. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing.",
        "obligations": {
          "active_account": {
            "reason": "Neither in-scope category (Art 7a(6)(a) EUR/PLN IRD, (b) EUR STIR) is declared as exceeding the clearing threshold, so the Article 7a(1) active-account obligation does not apply.",
            "verdict": "EXEMPT"
          },
          "reporting_window": {
            "applicable_deadline": "2027-01-31",
            "reason": "No in-scope category is declared as exceeding the clearing threshold, so no RTS Article 10 reporting obligation applies.",
            "reference_period_end": "2027-01-31",
            "reference_period_start": "2026-07-31",
            "reporting_submission_date": null,
            "verdict": "EXEMPT"
          },
          "representativeness": {
            "notional_clearing_volume_minor_units": null,
            "reason": "No in-scope category is declared as exceeding the clearing threshold, so the Article 7a(4) representativeness obligation does not apply.",
            "subcategory_results": [],
            "threshold_minor_units": 600000000000,
            "verdict": "EXEMPT"
          }
        },
        "rationale": [
          "EMIR Article 7a Active Account Requirement posture classified for counterparty reference SYNTH-CP-001 as of 2026-08-07.",
          "In-scope categories: EUR/PLN interest rate derivatives = false, EUR short-term interest rate derivatives = false (Article 7a(6)).",
          "Active-account obligation (Article 7a(1)): EXEMPT. Neither in-scope category (Art 7a(6)(a) EUR/PLN IRD, (b) EUR STIR) is declared as exceeding the clearing threshold, so the Article 7a(1) active-account obligation does not apply.",
          "Representativeness obligation (Article 7a(4)): EXEMPT. No in-scope category is declared as exceeding the clearing threshold, so the Article 7a(4) representativeness obligation does not apply.",
          "Reporting window (RTS Article 10): EXEMPT. No in-scope category is declared as exceeding the clearing threshold, so no RTS Article 10 reporting obligation applies.",
          "1 supplied value was not usable and was treated as absent or excluded, never silently guessed toward a MET/EXEMPT verdict. Each one is named in rejected_inputs.",
          "This is not legal advice. The most-relevant subcategory designation per class is a caller-declared fact, not derived from market-wide data this kernel does not have access to; whether a trade genuinely cleared is likewise asserted, not independently verified."
        ],
        "rejected_inputs": [
          {
            "reason": "absent or not a positive integer",
            "supplied": null,
            "where": "reference_period_months"
          }
        ],
        "subcategory_designations": [],
        "trades_classified": []
      }
    }
  }
},
    {
  "tool_id": "art-577-exchange-fee-tier-recompute",
  "tool_version": "1.0.0",
  "display_name": "Exchange Access-Fee / Maker-Taker Tier Recompute",
  "mcp_name": "recompute_exchange_fee_tier_invoice",
  "mandate_type": "compliance_control",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-577-exchange-fee-tier-recompute.html",
  "description": "Recomputes a monthly exchange maker-taker invoice from a caller-pasted fee schedule: resolves the firm's active tier from its declared prior-period average daily volume (ADV), applies that tier's maker rebate and taker access-fee rate to the declared monthly maker/taker share totals, and diffs the recomputed amount against the claimed invoice within a declared tolerance -- verdict MATCHES, DIVERGES, or INDETERMINATE when no tier qualifies. Separately, independent of which tier is currently active, checks every tier's taker rate in the declared schedule against the Reg NMS Rule 610(c) access-fee cap ($0.001/share for quotations priced at $1.00/share or more, compliance date 2026-11-02) -- verdict CAP_CONFORMANT, CAP_EXCEEDS, or INDETERMINATE when the caller has not declared that the schedule applies to quotes priced at $1.00/share or more. The two checks never gate each other: a schedule can conform to the cap while its invoice diverges, or the reverse. Fee schedules, ADV, and monthly volume are caller-declared inputs; this tool does not source, fetch, or maintain any exchange's published schedule. All rates and money amounts are integer micro-dollars (1 micro = $0.000001) so the arithmetic is exact. Not legal or accounting advice; a DIVERGES or CAP_EXCEEDS verdict is a citable arithmetic finding for the firm and, where relevant, its counsel to evaluate against the exchange's actual published schedule and rule text.",
  "input_schema_ref": "chaingraph/art-577-exchange-fee-tier-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:caed451dceca161ee2dd898a0aee48ceeaee497d39ac0eab2963ebad4437f5d8",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FMIDYrYAp3kDZl726yv09TsrS4+8MGFHeLWIxdVJIPkg25GgF0VEOV8Y/slXQDqageAXcinuwUpBAPNMSl3i8AhX+VZ1W7oy97B+AuXtitO6j41P2lZ4uQLWmIEigaooJbXmaRfUboKOV4TLJxx2BW1dc/GYZroQAw1FVEJBZ5cWr5AlwfxJ1Bf4dzUozneSeJN2+YwiK7MR9a7j5kRHdyRapWeS/h3xfSphwBfDjt0xlcnAqjR7vYrHbiZHU7b+GIcmDNeaW4Yc7vDNJ5cXB0QLwLwYN4SlaWy7jf3QRQgdQQ3o77nQ6/pG1gsqxP5ETwbw56ijf9UZDxRcJrGnWg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:caed451dceca161ee2dd898a0aee48ceeaee497d39ac0eab2963ebad4437f5d8",
      "output": {
        "active_tier": {
          "maker_rate_micros_per_share": -300,
          "min_adv_shares": 5000000,
          "taker_rate_micros_per_share": 300,
          "tier_id": "tier-3-top"
        },
        "cap_check": {
          "cap_micros_per_share": 1000,
          "quotes_priced_ge_1usd": true,
          "tier_findings": [
            {
              "exceeds_cap": false,
              "taker_rate_micros_per_share": 300,
              "tier_id": "tier-1-base"
            },
            {
              "exceeds_cap": false,
              "taker_rate_micros_per_share": 300,
              "tier_id": "tier-2-mid"
            },
            {
              "exceeds_cap": false,
              "taker_rate_micros_per_share": 300,
              "tier_id": "tier-3-top"
            }
          ]
        },
        "cap_verdict": "CAP_CONFORMANT",
        "claimed_invoice_micros": -450000000,
        "clause_note": "Regulation NMS Rule 610(c), as amended by the SEC access-fee-cap rule (adopted 2024-09-18), caps the access fee for a protected quotation priced at $1.00/share or more at $0.001/share; compliance date extended by SEC order to 2026-11-02 following the D.C. Circuit's 2025 review, which upheld the cap. Sub-dollar securities are governed by a different formula (0.1% of quotation price) that this kernel does not evaluate.",
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "diff_micros": 0,
        "fee_schedule_summary": {
          "effective_date": "2026-01-01",
          "quotes_priced_ge_1usd": true,
          "schedule_id": "demo-exchange-tier-schedule-2026-06",
          "tier_count": 3
        },
        "findings": [],
        "invoice_period": {
          "end_date": "2026-06-30",
          "start_date": "2026-06-01"
        },
        "invoice_verdict": "MATCHES",
        "prior_period_adv_shares": 6000000,
        "recompute_tolerance_micros": 1000,
        "recomputed_invoice_micros": -450000000,
        "rejected_inputs": [],
        "scope_note": "Fee schedules, ADV, and monthly volume are caller-declared inputs. Does not source, fetch, or maintain any exchange fee schedule; performs arithmetic only over what the caller pastes.",
        "tiers": [
          {
            "maker_rate_micros_per_share": -200,
            "min_adv_shares": 0,
            "taker_rate_micros_per_share": 300,
            "tier_id": "tier-1-base"
          },
          {
            "maker_rate_micros_per_share": -250,
            "min_adv_shares": 1000000,
            "taker_rate_micros_per_share": 300,
            "tier_id": "tier-2-mid"
          },
          {
            "maker_rate_micros_per_share": -300,
            "min_adv_shares": 5000000,
            "taker_rate_micros_per_share": 300,
            "tier_id": "tier-3-top"
          }
        ],
        "volume_summary": {
          "line_count": 2,
          "maker_shares_total": 4000000,
          "taker_shares_total": 2500000
        }
      }
    }
  }
},
    {
  "tool_id": "art-578-etf-pcf-basket-verification",
  "tool_version": "1.0.0",
  "display_name": "ETF PCF Create/Redeem Basket Verification",
  "mcp_name": "verify_etf_pcf_basket",
  "mandate_type": "compliance_control",
  "wave": 94,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-578-etf-pcf-basket-verification.html",
  "description": "Recomputes what an authorized participant's assembled ETF create/redeem basket should contain against the fund's daily Portfolio Composition File (PCF) and diffs it against what was actually assembled, for a declared number of creation units. Per PCF line, checks that the expected quantity (the PCF's per-unit quantity times units requested) is covered by the basket either in kind or through a declared cash-in-lieu substitution -- never a silent gap -- and flags any basket line that is not a PCF line at all. Separately recomputes the total cash the AP should have deposited or received: the PCF's declared per-unit balancing amount times units requested, plus the total cash-in-lieu substitution value, compared against the cash actually deposited within a declared tolerance. Cash tolerance is always a declared input, never defaulted. Verdict MATCHES when every line covers its expected quantity and the cash balances within tolerance; DIVERGES when any line mismatches or the cash breaks; INDETERMINATE when a required input (the tolerance, the transaction type, units requested, the creation-unit size, the PCF balancing amount, or at least one PCF line) is absent. All quantities are integer shares and all cash figures integer minor units, so the arithmetic is exact. Distinct from the shipped fund-NAV verification pack, which recomputes NAV per share rather than an in-kind basket against a PCF -- cross-link, do not duplicate. Performs arithmetic only over a caller-declared PCF and a caller-declared basket; does not source, derive, or independently verify the PCF, does not price securities, and does not determine which lines are cash-in-lieu-eligible. Clause: DTCC's ETF Processing service (Fund/SERV, over NSCC) settles AP creation/redemption baskets against the fund's daily PCF; no DTCC endorsement of this tool is implied or claimed.",
  "input_schema_ref": "chaingraph/art-578-etf-pcf-basket-verification.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:8490d544bbc1bcf3f211e1b3e65eb5f0d9d5e83522bb6baba6486139e802d40d",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DSeBGPcsHvE3N7nsRCMLrEV+n7+xbum/ouClY86ZkHkHIie63xXASoyrrdu9wSAYFnXPVe3FOUJn48TMNPhVBwpXGrOVWGuR4kG/syPIcSAY0fMgI0LMRJ6aacuztyynJ33xpy9WT3uB+4SMUXkEQIawtKKDRKm2Ck8sRSO5M/wXC5hQ2f44BbUcnt1ovvDR1EWKH6Jj1plkB+zKVMMWwAtHfxqbLE+iGk5DFm4eE6S5xS3fTAWse9ateNrdU3jNCk+aRqVTV1FHAFAnVeec0e+b6IXoUDEEOkEdQFtIOzMUIVOXjoTiQ2TjA2tC6293WLqWpTG1EXnkb6SZUcKiUA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:8490d544bbc1bcf3f211e1b3e65eb5f0d9d5e83522bb6baba6486139e802d40d",
      "output": {
        "cash_delta_minor": 0,
        "cash_deposited_minor": 15000,
        "cash_in_lieu_total_minor": 0,
        "cash_matches": true,
        "cash_tolerance_minor": 100,
        "clause_note": "DTCC's ETF Processing service (Fund/SERV, over NSCC) settles authorized-participant creation/redemption baskets against the fund's daily Portfolio Composition File. This kernel performs the per-line and balancing-amount reconciliation an AP or its custodian already runs against that PCF. No DTCC endorsement of this tool is implied or claimed.",
        "creation_unit_size": 50000,
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "expected_cash_minor": 15000,
        "findings": [],
        "line_count": 3,
        "line_results": [
          {
            "cash_in_lieu_value_minor": 0,
            "covered_quantity": 500,
            "delivered_quantity": 500,
            "expected_quantity": 500,
            "matches": true,
            "name": "Issuer A common stock",
            "security_id": "US0378331005",
            "substituted_quantity": 0
          },
          {
            "cash_in_lieu_value_minor": 0,
            "covered_quantity": 300,
            "delivered_quantity": 300,
            "expected_quantity": 300,
            "matches": true,
            "name": "Issuer B common stock",
            "security_id": "US5949181045",
            "substituted_quantity": 0
          },
          {
            "cash_in_lieu_value_minor": 0,
            "covered_quantity": 200,
            "delivered_quantity": 200,
            "expected_quantity": 200,
            "matches": true,
            "name": "Issuer C common stock",
            "security_id": "US4592001014",
            "substituted_quantity": 0
          }
        ],
        "pcf_as_of": "2026-08-07",
        "rejected_inputs": [],
        "scope_note": "Performs arithmetic only over a caller-declared Portfolio Composition File and a caller-declared assembled basket. Does not source, derive, or independently verify the PCF, does not price securities, and does not determine which lines are cash-in-lieu-eligible.",
        "transaction_type": "create",
        "units_requested": 1,
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-579-stock-loan-rebate-recompute",
  "tool_version": "1.0.0",
  "display_name": "Stock-Loan Rebate/Fee Recompute",
  "mcp_name": "recompute_stock_loan_rebate_fee",
  "mandate_type": "compliance_control",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-579-stock-loan-rebate-recompute.html",
  "description": "Recomputes the periodic rebate or fee bill on an open securities loan that a borrower or beneficial owner receives from an agent lender or prime broker, using the caller's own declared daily collateral and rate data under the standard MSLA/SIFMA Actual/360 daily-accrual convention, then diffs the recomputed total against the statement's claimed amount. Supports both loan bases: rebate-basis loans (cash collateral, daily accrual of collateral value times the benchmark rate minus the rebate spread, with a negative spread-benchmark differential correctly flipping to a borrower-pays amount for a hard-to-borrow security) and fee-basis loans (a flat fee rate on the loaned security's market value, always borrower-pays). Separately checks every declared day's collateral value against the caller-declared SIFMA collateral-maintenance threshold (102% same-currency or 105% cross-currency) independent of whether the period's money total matches. Verdict MATCHES when the computed total agrees with the statement within a caller-declared tolerance and no collateral-mark breach occurred; DIVERGES when either check fails; INDETERMINATE when a required input (the tolerance, the margin percentage, the period, or at least one loan) is absent. The money side complementing the shipped FINRA SLATE reporting tools, which check regulatory transparency reporting rather than the bill itself. Balances are integer minor units and rates are integer basis points, so the arithmetic is exact. Performs arithmetic only over caller-declared daily collateral values, loaned-security market values, and rate/spread inputs; does not source or independently verify any value against a DTC feed, an agent lender's books, or a Reg SHO threshold-security list, and does not determine which collateral-maintenance percentage a given master agreement requires. Clause: SIFMA Master Securities Loan Agreement (MSLA) conventions plus FINRA's Securities Lending and Transparency Engine (SLATE, Rule 6500 Series) as the distinct reporting-side reference.",
  "input_schema_ref": "chaingraph/art-579-stock-loan-rebate-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:76e2d848ba285ccf040cc4dbbef50f1caf5a2a24922ef89765eaf246faa5abc1",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "HGHkWBCwk6vGbmDpFQXQbpePyRscgVWd047lS+ZKXWYLUebSI1kujKwnONLS7bZhHpB4qhB645QdOCjiC8QRTCO/L8pBWdSh0lq+6eK40xHDVDW/MAe5iXuYofk5Vv7VBj2O5S733uKvBPcUuxYZhI9jsQop3rsFdI42MQC2Tiwmf2ERzOvvFclGY+UFQhnlhEOl7euf7U3exiUxJ2TLPwrMf8/ovnIDUiHqQOUo+K42Lr/EXrzCKCD7oR5AVuRvCARRZrFS0kFW3ufac8gdNw49dB6/TfuIYDCG+bHqYcYGUWt2Q3uuNVmyddSYzgTQl03N0tgNB8fS31mFAxIfkA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:76e2d848ba285ccf040cc4dbbef50f1caf5a2a24922ef89765eaf246faa5abc1",
      "output": {
        "clause_note": "SIFMA Master Securities Loan Agreement (MSLA, 2017 version in common use) conventions: Actual/360 day-count for USD cash-collateral rebate accrual; 102% (same-currency) / 105% (cross-currency) collateral maintenance thresholds per SIFMA securities lending best practices. FINRA's Securities Lending and Transparency Engine (SLATE, Rule 6500 Series, implementing Exchange Act Rule 10c-1a) governs regulatory transparency reporting of loan terms -- a distinct duty from the rebate/fee bill recomputed here.",
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "diff_tolerance_minor": 50,
        "findings": [],
        "loan_count": 1,
        "loans": [
          {
            "basis": "rebate_basis",
            "collateral_breach_count": 0,
            "computed_total_minor": -3825,
            "daily_marks": [
              {
                "collateral_value_minor": 10200000,
                "daily_net_minor": -1275,
                "date": "2026-06-01",
                "loaned_market_value_minor": 10000000,
                "mark_ok": true,
                "required_collateral_minor": 10200000
              },
              {
                "collateral_value_minor": 10200000,
                "daily_net_minor": -1275,
                "date": "2026-06-02",
                "loaned_market_value_minor": 10000000,
                "mark_ok": true,
                "required_collateral_minor": 10200000
              },
              {
                "collateral_value_minor": 10200000,
                "daily_net_minor": -1275,
                "date": "2026-06-03",
                "loaned_market_value_minor": 10000000,
                "mark_ok": true,
                "required_collateral_minor": 10200000
              }
            ],
            "day_count": 3,
            "diff_minor": 0,
            "loan_id": "loan-1",
            "matches": true,
            "statement_amount_minor": -3825,
            "worst_breach_date": null,
            "worst_shortfall_minor": 0
          }
        ],
        "rejected_inputs": [],
        "required_margin_pct": 102,
        "scope_note": "Performs arithmetic only over caller-declared daily collateral values, loaned-security market values, and rate/spread inputs. Does not source or independently verify any value against a DTC feed, an agent lender's books, or a Reg SHO threshold-security list, and does not determine which collateral maintenance percentage a given master agreement requires.",
        "statement_period": {
          "end_date": "2026-06-03",
          "start_date": "2026-06-01"
        },
        "verdict": "MATCHES"
      }
    }
  }
},
    {
  "tool_id": "art-580-15c3-3a-note-h-margin-debit",
  "tool_version": "1.0.0",
  "display_name": "15c3-3a Note H Margin-Debit Computation",
  "mcp_name": "compute_note_h_margin_debit",
  "mandate_type": "analytics_mandate",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-580-15c3-3a-note-h-margin-debit.html",
  "description": "Recomputes whether a margin debit related to a broker-dealer's customer transactions in U.S. Treasury securities qualifies for inclusion in the Exchange Act Rule 15c3-3 customer or PAB reserve formula under Note H to Exhibit A (Rule 15c3-3a), and if so computes the debit amount. Note H permits that debit only once a registered clearing agency's rules satisfy several Commission-approved conditions and the margin itself comes from a permitted source. This kernel checks each condition as its own declared boolean, cited to the specific Note H subsection it comes from: Commission approval and published notice that Note H is satisfied for the named clearing agency; a separate, gross, per-customer margin calculation; cash margin invested only in short-term U.S. Treasury securities; margin held in a segregated Special Clearing Account at a Federal Reserve Bank or an FDIC-insured bank; and a system for returning excess margin no longer required. The source of the margin is separately checked against Note H's three permitted sources, including the narrow path where a broker-dealer's own Treasury securities may be used only if the customer lacked sufficient margin of its own and the broker-dealer recouped the advance by the next business day. The verdict is INCLUDABLE, NOT_INCLUDABLE, or INDETERMINATE, and INDETERMINATE covers both an unstated condition and missing margin-required or margin-on-deposit figures, neither of which is guessed toward either other verdict. Where INCLUDABLE, the debit is the smaller of the margin required and the margin actually on deposit, since Note H permits a debit no larger than either figure. Money is fixed point in integer minor units throughout with two-decimal display. Cites Exchange Act Rule 15c3-3a Note H by subsection and the SEC's Treasury-clearing compliance dates (cash trades by 2026-12-31, repo by 2027-06-30), each dated for re-verification against primary text. This kernel is a narrow sibling to the shipped art-396 15c3-3 reserve-formula tool: it recomputes only the Note H margin-debit sliver, never the full Items 1-14 reserve formula, and never edits art-396. Not legal or regulatory advice, and whether a clearing agency's rules and Commission notice actually satisfy Note H is for the broker-dealer's own compliance and financial-operations review.",
  "input_schema_ref": "chaingraph/art-580-15c3-3a-note-h-margin-debit.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3bdfd9647ff94c830fe925048617e9528272a1bd33da7bc0a2a640e70563eea2",
      "valid_from": "2026-08-07"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JDJbyIePdMUogrjl2GkumgKRmjLByNBRPcpx3Vp5xGsJGkd/3N9AIWqSUwt+WBN+opo5UgU/d+9+bmisFLnRHgw/CNuI3Kzz+HhttbAK0wp7O7KV9qklqPtZ2QApX3nEE65gQiSax9qziZIhkH+u1TuhzLSdrwY+5BE6ZUcnQpcU7HzBBxslNlmg9H67NPSBgnyp3wuubzgR1fMvjLFSchFBoSWozm0+qRxgRFDZfxev1v+FBLGo7nLqush8T1R2KLCicam031M4qNWazDgY9AXLmdDDCX5ciitpbvgwSuMrbxZ7m3LS3HWnDbbhjX7cPzOTbrYTDdShmk4NyVZ9yg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:3bdfd9647ff94c830fe925048617e9528272a1bd33da7bc0a2a640e70563eea2",
      "output": {
        "broker_dealer_ref": "SYNTH-BD-001",
        "citations": {
          "note_h_b1": {
            "detail": "Permitted sources of the margin on deposit are: cash the customer delivered for that customer's own U.S. Treasury securities positions; that customer's own securities held in custody that qualify as \"qualified customer securities\" under the clearing agency's Note H rules; or, narrowly, the broker-dealer's own qualifying Treasury securities where the customer lacked sufficient margin, the clearing agency called for and received the margin, and the broker-dealer recouped the advance from the customer by the next business day. Re-verify against primary text before relying on it (research finding, not a fact).",
            "source": "Exchange Act Rule 15c3-3a, Note H(b)(1)"
          },
          "note_h_b2i": {
            "detail": "The clearing agency's rules must require a SEPARATE margin requirement calculated for each customer of the broker-dealer, with the broker-dealer delivering that customer's margin to the clearing agency on a gross basis.",
            "source": "Exchange Act Rule 15c3-3a, Note H(b)(2)(i)"
          },
          "note_h_b2ii": {
            "detail": "Cash on deposit as margin may be invested by the clearing agency only in short-term U.S. Treasury securities.",
            "source": "Exchange Act Rule 15c3-3a, Note H(b)(2)(ii)"
          },
          "note_h_b2iii_iv": {
            "detail": "Margin must be held in a segregated Special Clearing Account for the exclusive benefit of customers, maintained at a Federal Reserve Bank or an FDIC-insured bank.",
            "source": "Exchange Act Rule 15c3-3a, Note H(b)(2)(iii)-(iv)"
          },
          "note_h_b2v": {
            "detail": "The clearing agency's rules must provide a system for promptly returning excess margin that is no longer required.",
            "source": "Exchange Act Rule 15c3-3a, Note H(b)(2)(v)"
          },
          "note_h_b3": {
            "detail": "The clearing agency's Note H rules must have Commission approval, and the Commission must have published notice that the conditions of Note H are satisfied with respect to that clearing agency, before a broker-dealer may include the Note H debit for that clearing agency.",
            "source": "Exchange Act Rule 15c3-3a, Note H(b)(3)"
          },
          "treasury_clearing_compliance_dates": {
            "detail": "Central clearing of eligible U.S. Treasury cash trades is required by 2026-12-31 and of eligible repo transactions by 2027-06-30. Stated here as a dated fact, not a live countdown.",
            "source": "SEC Treasury-clearing adopting release and compliance-date extension (Federal Register, 2025 final rule and 2025-03-04 extension notice)"
          }
        },
        "clearing_agency_name": "SYNTH-FICC-LIKE-CCA",
        "commission_notice_dated": "2024-11-25",
        "computation_date_label": "2026-08-07 weekly reserve computation",
        "conditions": [
          {
            "citation_key": "note_h_b3",
            "key": "commission_notice_published",
            "label": "Commission has approved the clearing agency's Note H rules and published notice that Note H is satisfied for it",
            "satisfied": true
          },
          {
            "citation_key": "note_h_b2i",
            "key": "per_customer_gross_margin_calc",
            "label": "Clearing agency calculates a separate, gross, per-customer margin requirement",
            "satisfied": true
          },
          {
            "citation_key": "note_h_b2ii",
            "key": "cash_investment_short_term_treasuries_only",
            "label": "Cash margin is invested only in short-term U.S. Treasury securities",
            "satisfied": true
          },
          {
            "citation_key": "note_h_b2iii_iv",
            "key": "special_clearing_account_designated",
            "label": "Margin held in a segregated Special Clearing Account at a Federal Reserve Bank or FDIC-insured bank",
            "satisfied": true
          },
          {
            "citation_key": "note_h_b2v",
            "key": "excess_margin_return_system",
            "label": "Clearing agency has a system for returning excess margin no longer required",
            "satisfied": true
          }
        ],
        "currency": "USD",
        "debit_display": "5000000.00",
        "debit_minor_units": 500000000,
        "fence": "This is not legal or regulatory advice. This kernel recomputes only whether a margin debit qualifies for inclusion under Note H to Exchange Act Rule 15c3-3a and, if so, its amount -- it does not recompute Items 1-14 of the Rule 15c3-3a reserve formula (see the sibling art-396 15c3-3 reserve tool for that, an independent tool never edited by this one). Whether a clearing agency's rules and Commission notice actually satisfy Note H, and whether the declared facts are accurate, are for the broker-dealer's own compliance and financial-operations review.",
        "indeterminate_reason": null,
        "margin_on_deposit_display": "6500000.00",
        "margin_on_deposit_minor_units": 650000000,
        "margin_required_display": "5000000.00",
        "margin_required_minor_units": 500000000,
        "margin_source": "customer_cash",
        "minor_unit_exponent": 2,
        "not_proven": [
          {
            "detail": "This kernel recomputes the Note H margin-debit condition checks and debit arithmetic from caller-declared facts. It is not a substitute for counsel, FINRA/SEC guidance, or the broker-dealer's own compliance and financial-operations review.",
            "item": "Not legal or regulatory advice"
          },
          {
            "detail": "Whether the Commission has in fact published (and not since withdrawn) a Note H(b)(3) notice for the named clearing agency is a caller-declared fact, not independently verified against the Federal Register at run time -- this is an offline, zero-network tool.",
            "item": "Commission notice currency"
          },
          {
            "detail": "This kernel computes only the Note H margin-debit sliver. It does not recompute Items 1-14 of the Rule 15c3-3a customer/PAB reserve formula -- see the sibling art-396 15c3-3 reserve tool for that, a separate and independent tool.",
            "item": "Full reserve formula not recomputed"
          },
          {
            "detail": "The per-customer gross calculation, cash-investment restriction, Special Clearing Account designation, and excess-margin-return-system conditions are caller-declared facts about the named clearing agency's rules, not independently checked against that clearing agency's actual rulebook filings.",
            "item": "Clearing agency rulebook not verified"
          },
          {
            "detail": "Margin-required and margin-on-deposit figures are caller-supplied and asserted, not independently verified against the clearing agency's own margin call or the broker-dealer's books and records.",
            "item": "Input accuracy"
          }
        ],
        "note": "Deterministic Note H margin-debit includability and amount recomputation for one stated computation date. Single-run and stateless: it holds no records, runs on no schedule, and retains nothing.",
        "rationale": [
          "Note H margin-debit includability recomputed for broker-dealer reference SYNTH-BD-001 as of 2026-08-07 weekly reserve computation, clearing agency SYNTH-FICC-LIKE-CCA.",
          "Every declared Note H condition resolved TRUE and a margin_source was declared.",
          "Verdict is INCLUDABLE. The debit is MIN(margin required, margin on deposit) = 5000000.00 USD.",
          "This is not legal or regulatory advice, and this kernel recomputes only the Note H margin-debit sliver of the Rule 15c3-3a reserve formula, never the full formula (see the sibling art-396 15c3-3 reserve tool for that)."
        ],
        "rejected_inputs": [],
        "verdict": "INCLUDABLE"
      }
    }
  }
},
    {
  "tool_id": "art-581-emir3-simm-approval-scope-classifier",
  "tool_version": "1.0.0",
  "display_name": "EMIR 3 SIMM Approval-Scope Classifier",
  "mcp_name": "classify_emir3_simm_approval_scope",
  "mandate_type": "compliance_mandate",
  "wave": 97,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-581-emir3-simm-approval-scope-classifier.html",
  "description": "Classifies which EMIR 3 initial-margin model-approval obligations apply to a caller-declared counterparty profile across four items: prior competent-authority (NCA) authorisation before using or changing an initial-margin model under Article 11(12a) (inserted by Regulation (EU) 2024/2987); EBA central validation of a pro forma model's elements and general aspects, also under Article 11(12a), for the ISDA SIMM case; the recurring end-March annual application-data update to the home NCA for an already-authorised SIMM user, under the Article 11(15) supervisory-procedure process; and the 2026 EBA validation-system onboarding window published for SIMM applicants, open through end-August 2026. Each obligation resolves to IN_SCOPE, OUT_OF_SCOPE, or INDETERMINATE, and INDETERMINATE covers every case where a required fact -- a declared home competent authority, or a model-status distinction between a new application and an already-authorised model -- was not supplied; none is guessed toward a passing verdict. Carries zero ISDA SIMM methodology content: no risk weight, correlation, bucket, or sensitivity math, and no reproduction of any ISDA document. Cites EMIR Article 11(12a) and Article 11(15) as amended by Regulation (EU) 2024/2987, re-verified against EUR-Lex and EBA's published process at build; the implementing RTS and Guidelines on initial-margin model authorisation were at public-consultation stage (17 March - 17 June 2026) and not yet finalised as of the build date, stated plainly in-page. Distinct from art-576's Active Account Requirement classifier -- this is the initial-margin model-approval track, not the clearing-obligation track. Stated boundary: this is not legal advice, expresses no ISDA endorsement, and does not perform any methodology-level verification of an actual initial-margin model -- that omission is deliberate and disclosed in-page.",
  "input_schema_ref": "chaingraph/art-581-emir3-simm-approval-scope-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:05b8c0c228321335e7ba3d1133c961b3ba2aebcd9e92f1735833b892d78170ce",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-07"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "D58QgjoXXjYmxqpwaV6xKwb7LKzv+VrXPTbVG3oXePooOqdNVVxuLDNGcsXoj22C+9x/xWGP7vWrcYqSg1h5ww+NnxAp3USo+QKZ6lWZ3a4N5v158VKUxYb5S0pMuUCJBGqKshuCEd39i+6hjn5jX0Z1kCpufbuj/cPrz5daLd4ddSHLnwoSXjiSJ+8WHK7c9Vc17Ctuihj6/1iMoJmo0BNBJymzJ0a9HDN5hw4uLJwsiNaE6u860f9cLoIUDbxlGup1RSCPEAdqnJwEOg3TQKZBfri7AuF9/etR0XzO2nsl9JS9E/5+y+dB2o2FTyK0X6/ZsKFqnSZACAtYeSbq1g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:05b8c0c228321335e7ba3d1133c961b3ba2aebcd9e92f1735833b892d78170ce",
      "output": {
        "as_of_date": "2026-08-07",
        "competent_authority_declared": true,
        "counterparty_type": "financial_counterparty",
        "isda_endorsement": false,
        "methodology_verification": "deliberately_absent",
        "model_status": "new_application",
        "model_type": "isda_simm",
        "obligations": [
          {
            "basis": "EMIR Art. 11(12a): counterparty is subject to the bilateral IM requirement and declares a new model or a model change requiring prior NCA authorisation.",
            "description": "Prior NCA authorisation before using/changing an IM model",
            "obligation_id": "NCA_PRIOR_AUTHORISATION",
            "verdict": "IN_SCOPE"
          },
          {
            "basis": "EMIR Art. 11(12a): the pro forma model case -- elements and general aspects are validated centrally by EBA rather than separately by each NCA.",
            "description": "EBA central validation of pro forma model elements/general aspects",
            "obligation_id": "EBA_CENTRAL_VALIDATION_PROFORMA",
            "verdict": "IN_SCOPE"
          },
          {
            "basis": "EBA validation process under EMIR Art. 11(15): entity declares a new SIMM application not yet authorised -- whether the annual-update cycle applies before initial authorisation completes is not resolved by this classifier.",
            "description": "Annual application-data update to home NCA (end-March)",
            "obligation_id": "ANNUAL_APPLICATION_DATA_UPDATE",
            "verdict": "INDETERMINATE"
          },
          {
            "basis": "SIMM applicant on or before the published end-August 2026 EBA RIM Model Validation System onboarding cutoff.",
            "description": "2026 EBA validation-system onboarding window for SIMM applicants",
            "obligation_id": "EBA_ONBOARDING_WINDOW_2026",
            "verdict": "IN_SCOPE"
          }
        ],
        "subject_to_bilateral_im": true
      }
    }
  }
},
    {
  "tool_id": "art-582-genius-reserve-disclosure-conformance-monitor",
  "tool_version": "1.0.0",
  "display_name": "GENIUS Act Reserve-Disclosure Conformance Monitor",
  "mcp_name": "check_genius_reserve_disclosure_conformance",
  "mandate_type": "compliance_mandate",
  "wave": 55,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-582-genius-reserve-disclosure-conformance-monitor.html",
  "description": "Checks a monthly PPSI reserve disclosure against two statute-derived GENIUS Act S.394 §4 requirements: 1:1 reserve coverage arithmetic and attestation presence/timeliness against the statutory monthly cadence. Verdict per requirement (MET/NOT_MET/INDETERMINATE). NARROWED 2026-08-07: the permitted-asset composition check is out of scope because no final GENIUS Act implementing regulation exists as of that date (all OCC/FDIC/Treasury/FinCEN/NCUA instruments remain NPRM/ANPRM). Never claims final-rule attribution or compliance certification. Cross-links the shipped pre-issuance precheck_reserve_attestation (art-06) and the fuller check_genius_reserve_disclosure (art-275).",
  "input_schema_ref": "chaingraph/art-582-genius-reserve-disclosure-conformance-monitor.html#manifest",
  "deadline": "2027-01-18",
  "deadline_note": "GENIUS Act effective date is the earlier of 18 Jan 2027 or 120 days after final implementing regulations publish; the statutory 18 Jul 2026 rulemaking deadline was missed and no final rule exists as of 2026-08-07 (research/GENIUS-FINALRULE-CHECK-2026-08-07.md). Re-verify against final-rule text once one publishes.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:938dff18fe631418b8fc865198f0e4cb4ca4d6a9ee87967ccf818d5f2189edf9",
      "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": "LX6+o2nLxvsiM/bPO7pKKdXU5C7FBMP+AAnLUK6+NG0cxD1Ug1z12jnNrPcRult7/KhS5MObRwmauWeZ+UcUvBOb5XLTNBTblggxivv4Z05AU2SdBw5RUKauTF75f1sMBNn0xAwzj3G1FqFwO0SKm0RQNnxD77Q0TG+C+RKqVisYFe8Js1jOZBs1GnhxdJ2bh8CKDJ2jtfya0jpjiv5orgwc0gE+XUOwhWLHy6uO1kH+9ZUJKfHHDBsTCSfHzRYoH0GcAZ3sx+cwdbQHMleylKEdK3uisFpY73kTrarso+4BDbfkq/cdfV+OTG9KL6bda9U9TVe2+2d+CxE5vNpdig==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:938dff18fe631418b8fc865198f0e4cb4ca4d6a9ee87967ccf818d5f2189edf9",
      "output": {
        "attestation_date": null,
        "attestation_present": false,
        "coverage_ratio_pct": null,
        "days_after_period_end": null,
        "examiner_name": null,
        "examiner_registered": false,
        "onchain_supply_check": {
          "delta": null,
          "match": null,
          "note": "User-pasted on-chain supply figure compared numerically against the reported outstanding-tokens field. Informational only, does not feed a requirement verdict. Never performs a network fetch, zero-fetch and zero-PII.",
          "onchain_supply": null,
          "provided": false,
          "reported_outstanding_tokens": 0
        },
        "overall_determination": "NOT_MET",
        "period_end_date": null,
        "report_period": "",
        "requirement_verdicts": [
          {
            "detail": "outstanding_tokens_reported is missing or non-positive — coverage ratio cannot be computed.",
            "ref": "GENIUS Act S.394 §4(a) — 1:1 reserve coverage requirement",
            "requirement": "coverage_arithmetic_1to1",
            "verdict": "INDETERMINATE"
          },
          {
            "detail": "No monthly reserve report/attestation has been published for this period.",
            "ref": "GENIUS Act S.394 §4(b) — monthly reserve report, independent examination by a registered public accounting firm",
            "requirement": "attestation_presence_timeliness",
            "verdict": "NOT_MET"
          }
        ],
        "reserve_shortfall_usd": null,
        "scope_note": "NARROWED 2026-08-07: checks 1:1 coverage arithmetic and attestation presence/timeliness only. The permitted-asset composition check is out of scope pending final GENIUS Act implementing regulations (none exist as of 2026-08-07 — research/GENIUS-FINALRULE-CHECK-2026-08-07.md). Never treated as compliance certification.",
        "statutory_attestation_window_days": 30,
        "total_liabilities_usd": 0,
        "total_reserves_usd": 0
      }
    }
  }
},
    {
  "tool_id": "art-583-beacon-seeded-fair-sampling-deriver",
  "tool_version": "1.0.0",
  "display_name": "Beacon-Seeded Fair-Sampling Deriver",
  "mcp_name": "derive_beacon_fair_sample",
  "mandate_type": "compliance_control",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-583-beacon-seeded-fair-sampling-deriver.html",
  "description": "Derives a deterministic, offline-replayable audit sample by HMAC-DRBG (SHA-256) seeded from a caller-pasted public randomness beacon pulse (drand quicknet or NISTIR-8213) combined with an item-manifest hash committed before the pulse round. Emits the selected item indices plus a full per-draw derivation transcript (seed, per-draw HMAC output, candidate index, accept/reject) so an examiner re-derives the identical sample offline from the transcript alone. Verdict DERIVED, or INDETERMINATE when inputs are missing or malformed. The beacon pulse, its round and its randomness are caller-declared inputs: the kernel performs SHA-256/HMAC math only, never fetches a pulse and never verifies the pulse's BLS signature, so a sample is only as trustworthy as the pulse the caller supplied. Committing the item-manifest hash before the pulse round is what makes the selection cherry-pick-proof, and the page teaches that ordering. Extends the assurance and workpaper family; cross-links the shipped art-471 disposition-sampling-frame rather than duplicating it.",
  "input_schema_ref": "chaingraph/art-583-beacon-seeded-fair-sampling-deriver.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:00bf25e2ac76c12d2bc9de448a1c9d767c67581310b599637d193d2f949b708a",
      "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": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EUdv+kISbTJSo3re25jJWV6C5XgGzRulrAO9F2C4acsWoZZvRgu11qQtPWVzp1LTS+34XTiiI0GrVqja63TdORb+kZuf9mlIbyXql3GEr7G9qcnqSXH8mRQyQcWSlXlqBcWdFj7pjAZKE72FP/lTeduS/71k+uQWIMkG3Sj88rAF/hkH8Prybn5nwQ3R1k6XjJChzj6LNPmgo3dA856GshcF4PDJn1BP27NVR57u708sEw2fMY/VnOFKL5fxfiHUHcdEWiBpYBTEn2trZNXkueVy1NZBGg7tWqVJ3T7siesZtqFNLjQEeIeh2fBz72EiAymDS5tSQfashU0OTRqRDQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:00bf25e2ac76c12d2bc9de448a1c9d767c67581310b599637d193d2f949b708a",
      "output": {
        "algorithm_id": "hmac-drbg-sha256-v1",
        "beacon_randomness": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b85",
        "beacon_round": "4321000",
        "beacon_source": "drand_quicknet",
        "derivation_transcript": [
          {
            "accepted": true,
            "candidate_index": 106,
            "draw": 0,
            "hmac_hex": "c7c850c0be1cd7c6e88ad2f7615c1e776ffe5a9ea7a7111c0985d60417620870"
          },
          {
            "accepted": true,
            "candidate_index": 184,
            "draw": 1,
            "hmac_hex": "97bfae942d8b73791460e5a672cb83d8070b090257627d11da048b79d0a1dee9"
          },
          {
            "accepted": true,
            "candidate_index": 205,
            "draw": 2,
            "hmac_hex": "69ea8ff37d136f798f7a29e5a063daf44a62f0147d5f4b7d8cb92d6d0e8017d0"
          },
          {
            "accepted": true,
            "candidate_index": 91,
            "draw": 3,
            "hmac_hex": "57a20d8b60b445742b5c6af56574fcf20757ca472359d700969df7c6a9b184eb"
          },
          {
            "accepted": true,
            "candidate_index": 113,
            "draw": 4,
            "hmac_hex": "2707aaa70f87e79b251ac3e33ef64ca293079dedfc32da4181db305e5f3a0f7a"
          },
          {
            "accepted": true,
            "candidate_index": 99,
            "draw": 5,
            "hmac_hex": "0e59d463d5cfd53b6bb40bcd851ab6e67341b5e408102036a3f2d36eba69eeea"
          },
          {
            "accepted": true,
            "candidate_index": 199,
            "draw": 6,
            "hmac_hex": "27d8cc1964a825ff40092ccef8fb0e5a023e365abe683e803482e4b8c378dc12"
          },
          {
            "accepted": true,
            "candidate_index": 77,
            "draw": 7,
            "hmac_hex": "955917331707246538eeda870812cb0eeadbacf016df6ef1cc6ef070a2531737"
          },
          {
            "accepted": true,
            "candidate_index": 32,
            "draw": 8,
            "hmac_hex": "93229b7e5948d0ba0cfbf7c33a4ade9411c802a70d9c2feaf7d7280f819ba2a5"
          },
          {
            "accepted": true,
            "candidate_index": 158,
            "draw": 9,
            "hmac_hex": "e00cc5a01fd3b8c5042b719190a6a4f7690a502ab8b85b4f7030303470e9f1ac"
          }
        ],
        "draws_used": 10,
        "item_count": 250,
        "item_manifest_hash": "sha256:9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
        "sample_size": 10,
        "seed_hex": "e15a8aa2f6d6d3318be77fe06250a10823c3caf82c7d76b94b22cd80e40ddd0a",
        "selected_indices": [
          106,
          184,
          205,
          91,
          113,
          99,
          199,
          77,
          32,
          158
        ],
        "verdict": "DERIVED"
      }
    }
  }
},
    {
  "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
      }
    }
  }
},
    {
  "tool_id": "art-585-sanctions-screening-evidence-pack",
  "tool_version": "1.0.0",
  "display_name": "Sanctions Screening Evidence Pack",
  "mcp_name": "build_sanctions_screening_evidence_pack",
  "mandate_type": "compliance_mandate",
  "wave": 82,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-585-sanctions-screening-evidence-pack.html",
  "description": "Binds a caller-declared sanctions-screening decision (query, match count, decision) to the EXACT versioned dataset it was screened against, by comparing a caller-computed digest of the artifact they actually screened against a caller-declared published digest for that dataset version. Generic dataset_ref shape (dataset_id + version + digest_algo + published_digest) works with any versioned list source, never a named provider dependency; OpenSanctions' immutable version-pinned artifact paths are the worked example. Emits BOUND when the digests match, UNBOUND when they diverge, and INDETERMINATE when the dataset reference is incomplete or the caller declares no computed digest of their own, since the node never fetches or computes a digest itself (zero network, zero PII). Proves this decision ran against this exact byte-identical dataset version: process reproducibility, never screening adequacy; the underlying screening logic, thresholds, and list quality remain the screening provider's responsibility. Clause: FinCEN CVC 2019 guidance perimeter (verification only, no value custody); OFAC compliance program expectations for maintaining an auditable trail of the list version screened.",
  "input_schema_ref": "chaingraph/art-585-sanctions-screening-evidence-pack.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c686a99d6d05d28e3feba866c69df7eb43ba13b49c2ce7c8e260be818d13c8a6",
      "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).",
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "I2iUMlyQYYk171alO8i3jMUs4OVDM/cH2yRxCYmEiucKUQn+uEZI77XmyAeudMPtlJcSYJbajYLDjDeYGi+ZiQl8bhuv0zcr3u3p2MEB0E/FZC3BzIAL8K40RZOFgWwtH+ET12CVeNsYyH1JWsl1to98eDd0MvSxNsyl8leqvP4oSytxVZSj8NbIxwPvMnn/vQ157Vul9Lt0UImJyGYmuhtG2x1N/S+Dq/yU8i41SD+VSoBS7XQjEj0MjJgFwDZFGkecBSN5/xdZ2xu+6tcuQCCxMf87C33xWrGMhV4L8YARIchjuBLv3pZlnNZFPht6wdlXxjzTWkFnyMvsCE/1ow==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c686a99d6d05d28e3feba866c69df7eb43ba13b49c2ce7c8e260be818d13c8a6",
      "output": {
        "evidence_pack": {
          "caller_computed_digest": "abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
          "dataset_id": "opensanctions-default",
          "dataset_version": "20260810",
          "digest_algo": "sha256",
          "digest_match": true,
          "published_digest": "sha256:abcdef1234567890abcdef1234567890abcdef1234567890abcdef1234567890",
          "reason": null,
          "screening_decision": "clear",
          "screening_match_count": 0,
          "screening_query": "synthetic-test-entity-01",
          "verdict": "BOUND"
        },
        "reason": null,
        "verdict": "BOUND"
      }
    }
  }
},
    {
  "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"
  ]
},
    {
  "tool_id": "art-588-docket-deadline-sweep",
  "tool_version": "1.0.0",
  "display_name": "Docket Deadline Sweep",
  "mcp_name": "sweep_docket_deadlines",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-588-docket-deadline-sweep.html",
  "description": "Sweeps a caller-declared docket -- a flat list of {date, action, type, source, done} deadline records, the structured shape practitioners already keep in a spreadsheet, calendar, or practice-management export -- against a caller-declared as-of date, and bands every record OVERDUE, DUE_SOON, SCHEDULED, DONE, or INDETERMINATE. Shows the weekend/holiday roll derivation step by step for each record's actual due date, using roll rules (roll_weekends, roll_direction, holiday_dates) that are always declared caller inputs with labeled defaults, never an encoded jurisdiction rules table -- baking one in would be a standing-data-duty trap and UPL-adjacent. FRCP 6(a)(1)(C) is cited in-page only as a dated, structural EXAMPLE of what a roll rule looks like, never as an encoded ruleset for any jurisdiction. A record marked done:true is retained and reported DONE, never dropped -- the sweep is a receipt over the full declared docket at one as-of moment, not a filtered view of what remains open. Flags any two records that declare the same action on different dates as a conflict worth a human look. The due-soon banding threshold is a declared input with a labeled default (7 days). Gate policy is review_required when any record is OVERDUE or INDETERMINATE or a conflict exists, otherwise auto_pass; did_not_run when the as-of date, the sweep's own anchor, is absent -- it is never defaulted. Not legal advice, not a calendaring system of record, and not a reminder or scheduling service: it recomputes bands and roll derivations over a caller-declared snapshot, and does not source, generate, or independently verify any deadline. Attribution: deadline-record shape design borrow from CounselOS's structured deadline tracker (eigenlegal/counsel-os, MIT).",
  "input_schema_ref": "chaingraph/art-588-docket-deadline-sweep.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:54ec1d5b6fe7faac635820bc4b60de9ea75ea643abec9d1f312b6f54de3125fa",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-08"
    }
  ],
  "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": "G4HTW+IisGDngLP2KPKn+qJRsKNZcqMct3vcsXLTbLQUtWa29zQmYzIhdVJj4St9q9Om84OPaIRviTZp+WWW1ACKJ+j/dyy2tQ0zOxiQ+3J80cjUmUFUn+N2tuG9oPV+DzdSMIvikA6KdWyZEBr4cQ9A0zrhyOfnsn/uEx5wv3spMVpcylXT7qCK7A0VPTqfo9BGjxC+YLe5nXv41+osFyklcyJ0mE4Q+wvgkgf6jp1HAuQOWJCdy8/zeA2qKPsWDWg15Z4D9LiNTGOwB+i0ZY+jwU+Hp0mKgM5fhvy/nu8uI17yHoFWnAqWjbag3pal0AUVJPJPX9Qvc1hxQYDYPA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:54ec1d5b6fe7faac635820bc4b60de9ea75ea643abec9d1f312b6f54de3125fa",
      "output": {
        "as_of_date": "2026-08-08",
        "clause_note": "FRCP 6(a)(1)(C) (computing time: if the last day is a Saturday, Sunday, or legal holiday, the period continues to run until the next day that is not one) is cited here as a dated, structural EXAMPLE of what a roll rule looks like. This kernel does not encode FRCP 6 or any jurisdiction’s current computation-of-time rule -- roll_weekends, roll_direction, and holiday_dates are declared inputs every time.",
        "conflicts": [],
        "decision": {
          "execution_state": "ran",
          "gate_policy": "auto_pass",
          "reason": null
        },
        "due_soon_days_threshold": 7,
        "due_soon_days_threshold_is_default": false,
        "not_legal_advice_note": "Not legal advice. Not a calendaring system of record. Does not send reminders or perform scheduling.",
        "record_count": 4,
        "records": [
          {
            "action": "File answer",
            "date": "2026-08-08",
            "days_remaining": 3,
            "done": false,
            "record_id": "rec-0",
            "roll": {
              "rolled": true,
              "steps": [
                {
                  "checked_date": "2026-08-08",
                  "is_holiday": false,
                  "is_weekend": true,
                  "rolled": true
                },
                {
                  "checked_date": "2026-08-09",
                  "is_holiday": false,
                  "is_weekend": true,
                  "rolled": true
                },
                {
                  "checked_date": "2026-08-10",
                  "is_holiday": true,
                  "is_weekend": false,
                  "rolled": true
                },
                {
                  "checked_date": "2026-08-11",
                  "is_holiday": false,
                  "is_weekend": false,
                  "rolled": false
                }
              ]
            },
            "rolled_date": "2026-08-11",
            "source": "court order",
            "status": "DUE_SOON",
            "type": "filing"
          },
          {
            "action": "Serve discovery responses",
            "date": "2026-08-09",
            "days_remaining": 3,
            "done": false,
            "record_id": "rec-1",
            "roll": {
              "rolled": true,
              "steps": [
                {
                  "checked_date": "2026-08-09",
                  "is_holiday": false,
                  "is_weekend": true,
                  "rolled": true
                },
                {
                  "checked_date": "2026-08-10",
                  "is_holiday": true,
                  "is_weekend": false,
                  "rolled": true
                },
                {
                  "checked_date": "2026-08-11",
                  "is_holiday": false,
                  "is_weekend": false,
                  "rolled": false
                }
              ]
            },
            "rolled_date": "2026-08-11",
            "source": "FRCP 26",
            "status": "DUE_SOON",
            "type": "discovery"
          },
          {
            "action": "Initial disclosures",
            "date": "2026-07-01",
            "days_remaining": -38,
            "done": true,
            "record_id": "rec-2",
            "roll": {
              "rolled": false,
              "steps": [
                {
                  "checked_date": "2026-07-01",
                  "is_holiday": false,
                  "is_weekend": false,
                  "rolled": false
                }
              ]
            },
            "rolled_date": "2026-07-01",
            "source": "FRCP 26(a)",
            "status": "DONE",
            "type": "discovery"
          },
          {
            "action": "Pretrial conference",
            "date": "2026-09-15",
            "days_remaining": 38,
            "done": false,
            "record_id": "rec-3",
            "roll": {
              "rolled": false,
              "steps": [
                {
                  "checked_date": "2026-09-15",
                  "is_holiday": false,
                  "is_weekend": false,
                  "rolled": false
                }
              ]
            },
            "rolled_date": "2026-09-15",
            "source": "scheduling order",
            "status": "SCHEDULED",
            "type": "hearing"
          }
        ],
        "rejected_inputs": [],
        "roll_rule": {
          "holiday_dates": [
            "2026-08-10"
          ],
          "roll_direction": "forward",
          "roll_direction_is_default": false,
          "roll_weekends": true,
          "roll_weekends_is_default": false
        },
        "scope_note": "Recomputes bands and roll derivations over a caller-declared snapshot of deadline records at one as-of moment. Does not source, generate, or independently verify a deadline; every record and the as-of date are caller-declared inputs. Not a calendaring system of record and not a reminder or scheduling service.",
        "sweep_summary": {
          "as_of_date": "2026-08-08",
          "conflict_count": 0,
          "done_count": 1,
          "due_soon_count": 2,
          "indeterminate_count": 0,
          "overdue_count": 0,
          "record_count": 4,
          "scheduled_count": 1
        }
      }
    }
  }
},
    {
  "tool_id": "art-589-redline-round-classifier",
  "tool_version": "1.0.0",
  "display_name": "Redline Round Classifier",
  "mcp_name": "classify_redline_round_changes",
  "mandate_type": "compliance_control",
  "wave": 94,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-589-redline-round-classifier.html",
  "description": "Classifies per-segment changes between two negotiation rounds of the same document (paragraph or clause-segmented structured text, pasted or pre-extracted; never parses DOCX or any other binary format). Each declared segment carries a baseline text (the clause as it stood in round 1), a prior text (as it stood in the immediately preceding round), and a current text, and is classified ACCEPTED when current equals prior, REVERTED when current equals baseline after having diverged from it, MODIFIED when current differs from both, NEW when no prior text was declared, or DELETED when no current text was declared. Produces a word-level diff transcript for every changed segment. Round-over-round history is a hash chain: each round after the first declares the execution_hash the node produced for the immediately preceding round's own artifact as prior_round_digest, and a separate chain-verification pass recomputes each prior round's hash from its own content and confirms the next round committed to exactly that value, so a tampered middle round fails the chain check even though its own classification output still looks well-formed. Classifies the type of change only; never scores or evaluates which side a change favors, and is not legal advice. Five-state enum (adds DELETED) is a design borrow from eigenlegal/counsel-os diff_rounds.py (MIT), not a code port; that file has not been read by this node's author. Clause: illustrative only, no jurisdiction's redlining or e-discovery rules are encoded here.",
  "input_schema_ref": "chaingraph/art-589-redline-round-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5af85fdf37a3ae3ab73a616adad96621f2fc811520c30cafb6404da7d71393c6",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-08"
    }
  ],
  "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": "LDYbw1ePG6SBTs59rJDWPBZYagPHA8JBtUdO10mwtyEvAeJolmSs5UY596Ct9OECO7bffZySfpbVV2Osng3Wwgz2Fg5xIQVyXkMqqFPCcFKA6nHOkKnICBHyHJrQLTbFHZwcNGzHPi5ZWpn2DjPjSebhIIBYEfxCwDRBUqGDJAgOStBlZQLOu6Iy0XeYBnjTPQyi7rkhxWRKxCQLHbrEOiDQ+HaW+i7TTd0ONoD0cTrTr+dfkJ0Ri4ke6JlqSNyAJltabLfHDtc50evawTWY1c5w4zsQOK2lGgdGw8FMwBwqiRhC2f9aT1JYcUk7sWZOQUn81pctoCOfB3ZIunPJrA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5af85fdf37a3ae3ab73a616adad96621f2fc811520c30cafb6404da7d71393c6",
      "output": {
        "attribution_note": "Five-state enum (ACCEPTED/REVERTED/MODIFIED/NEW/DELETED) extends the four-state classification used by eigenlegal/counsel-os diff_rounds.py (MIT license), design-borrow only. That file was not read; no code was ported from it.",
        "classifications": [
          {
            "baseline_text": "Payment is due within 30 days of invoice.",
            "changed": false,
            "classification": "ACCEPTED",
            "current_text": "Payment is due within 45 days of invoice.",
            "prior_text": "Payment is due within 45 days of invoice.",
            "segment_id": "S1-payment-terms"
          },
          {
            "baseline_text": "Liability is capped at fees paid in the prior 12 months.",
            "changed": true,
            "classification": "REVERTED",
            "current_text": "Liability is capped at fees paid in the prior 12 months.",
            "diff": [
              {
                "op": "equal",
                "text": "Liability is capped at "
              },
              {
                "op": "delete",
                "text": "2x "
              },
              {
                "op": "equal",
                "text": "fees paid in the prior 12 months."
              }
            ],
            "prior_text": "Liability is capped at 2x fees paid in the prior 12 months.",
            "segment_id": "S2-liability-cap"
          },
          {
            "baseline_text": "Either party may terminate for convenience on 30 days notice.",
            "changed": true,
            "classification": "MODIFIED",
            "current_text": "Either party may terminate for convenience on 90 days notice with written approval.",
            "diff": [
              {
                "op": "equal",
                "text": "Either party may terminate for convenience on "
              },
              {
                "op": "delete",
                "text": "60"
              },
              {
                "op": "insert",
                "text": "90"
              },
              {
                "op": "equal",
                "text": " days "
              },
              {
                "op": "delete",
                "text": "notice."
              },
              {
                "op": "insert",
                "text": "notice with written approval."
              }
            ],
            "prior_text": "Either party may terminate for convenience on 60 days notice.",
            "segment_id": "S3-termination"
          },
          {
            "baseline_text": null,
            "changed": true,
            "classification": "NEW",
            "current_text": "Vendor will process personal data only as instructed by Customer.",
            "diff": [
              {
                "op": "insert",
                "text": "Vendor will process personal data only as instructed by Customer."
              }
            ],
            "prior_text": null,
            "segment_id": "S4-data-processing"
          },
          {
            "baseline_text": "Disputes are resolved by binding arbitration in Delaware.",
            "changed": true,
            "classification": "DELETED",
            "current_text": null,
            "diff": [
              {
                "op": "delete",
                "text": "Disputes are resolved by binding arbitration in Delaware."
              }
            ],
            "prior_text": "Disputes are resolved by binding arbitration in Delaware.",
            "segment_id": "S5-arbitration"
          }
        ],
        "diff_transcript": [
          {
            "classification": "REVERTED",
            "diff": [
              {
                "op": "equal",
                "text": "Liability is capped at "
              },
              {
                "op": "delete",
                "text": "2x "
              },
              {
                "op": "equal",
                "text": "fees paid in the prior 12 months."
              }
            ],
            "segment_id": "S2-liability-cap"
          },
          {
            "classification": "MODIFIED",
            "diff": [
              {
                "op": "equal",
                "text": "Either party may terminate for convenience on "
              },
              {
                "op": "delete",
                "text": "60"
              },
              {
                "op": "insert",
                "text": "90"
              },
              {
                "op": "equal",
                "text": " days "
              },
              {
                "op": "delete",
                "text": "notice."
              },
              {
                "op": "insert",
                "text": "notice with written approval."
              }
            ],
            "segment_id": "S3-termination"
          },
          {
            "classification": "NEW",
            "diff": [
              {
                "op": "insert",
                "text": "Vendor will process personal data only as instructed by Customer."
              }
            ],
            "segment_id": "S4-data-processing"
          },
          {
            "classification": "DELETED",
            "diff": [
              {
                "op": "delete",
                "text": "Disputes are resolved by binding arbitration in Delaware."
              }
            ],
            "segment_id": "S5-arbitration"
          }
        ],
        "reason": null,
        "rejected_inputs": [],
        "round_chain": {
          "prior_round_digest": "1111111111111111111111111111111111111111111111111111111111111111",
          "round_number": 2,
          "status": "LINKED"
        },
        "round_summary": {
          "accepted_count": 1,
          "changed_count": 4,
          "deleted_count": 1,
          "document_id": "msa-2026-acme",
          "modified_count": 1,
          "new_count": 1,
          "reverted_count": 1,
          "round_label": "Round 2",
          "round_number": 2,
          "total_segments": 5
        },
        "scope_note": "Classifies the TYPE of change per declared segment only (ACCEPTED, REVERTED, MODIFIED, NEW, DELETED). Never scores or evaluates the negotiating position of either side; not legal advice.",
        "verdict": "CLASSIFIED"
      }
    }
  }
},
    {
  "tool_id": "art-590-x402-eip712-digest-recomputer",
  "tool_version": "1.0.0",
  "display_name": "x402 EIP-712 Digest Recomputer",
  "mcp_name": "recompute_x402_eip712_digest",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-590-x402-eip712-digest-recomputer.html",
  "description": "Recomputes the EIP-712 typed-data digest for an EIP-3009 TransferWithAuthorization struct (the x402 payments rail's underlying authorization primitive) from caller-supplied domain and struct fields only: domain separator, struct hash, and the final keccak256(0x19 || 0x01 || domainSeparator || structHash) digest. All four EIP-712 domain fields (name, version, chainId, verifyingContract) are mandatory inputs and are never defaulted or guessed -- a guessed verifyingContract would defeat the entire point of domain separation. keccak256 comes from the already-vendored, pinned noble-curves/noble-hashes bundle (no new vendoring); the EIP-712/EIP-3009 ABI encoding scheme is implemented directly as public-spec arithmetic on top of it. This node performs no signature recovery and no domain/nonce/window checks -- it makes no claim about signature validity, on-chain settlement, or spend. Zero network calls; never a facilitator, proxy, or settlement relay. Golden vectors are cross-checked against externally published references (the EIP-712 spec's own domain-separator worked example, and Circle's production TransferWithAuthorization typehash), not round-trip self-tests alone.",
  "input_schema_ref": "chaingraph/art-590-x402-eip712-digest-recomputer.html#manifest",
  "consumes": [],
  "feeds": ["art-591-x402-signer-recovery-verifier"],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:62dbc12bf0d0a66b089587f7c30ca10fa8ec5e33bed5d8867d9d7dfdba7b0b15","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "standards_basis": "not_applicable"
},
    {
  "tool_id": "art-591-x402-signer-recovery-verifier",
  "tool_version": "1.0.0",
  "display_name": "x402 Signer Recovery Verifier",
  "mcp_name": "verify_x402_signer_recovery",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-591-x402-signer-recovery-verifier.html",
  "description": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest (the sibling art-590-x402-eip712-digest-recomputer's output) and a signature in (r,s,v) or (r,s,yParity) form, normalizing the recovery-id across the raw bit, legacy Ethereum v (27/28), and EIP-155 v (chainId*2+35/36) conventions. Reports the recovered address as a fact plus a separate boolean comparison against any caller-claimed from address. Signature recovery comes from the already-vendored, pinned noble-curves bundle (no new vendoring); malformed or invalid-recovery-id signatures produce a clean refusal finding, never a thrown exception. Proves that an address signed the exact digest supplied; does not prove settlement, spend, or that funds moved. Zero network calls; never a facilitator, proxy, or settlement relay.",
  "input_schema_ref": "chaingraph/art-591-x402-signer-recovery-verifier.html#manifest",
  "consumes": ["art-590-x402-eip712-digest-recomputer"],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:4dfa2047d3aeebb35c0825fa07d54d487c7b254d0ad031e2d0c360a3736b5ab7",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JPsgnLAcI5ew6704cgMRWW+ZP/L9Zd3R2j+nMeFDedAke+lPXmFHcXZJTL1H2cNzBFcyY8EA63ANGTsKbECjLhz6097vktDG9KSqCGK2ZL+4votNln8q5D/pc600aZmiK8FXFc3NukPPD+JyhX8SyOJ0CuPJavzLkhlh0Tvv99su+0x3PWoKlxycFdIjbfotxusmpMPmlSMnab+XiTrqOQByuurGlj0MIL46Vqw/a5+tXkBt5ewuU/DaZM3zVW4CDTX+kmp6TyzQtp8hISFXYRF7ciThH5NT/ePVkrLx9QsrmlFEwyAtGOqIQeWWGyTOE1JvOA/WFSvoEJ8V1Prv4Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4dfa2047d3aeebb35c0825fa07d54d487c7b254d0ad031e2d0c360a3736b5ab7",
      "output": {
        "claimed_from": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
        "digest": "0xb68e5d60d6169bad9739d30399af8f8c7378d464d25f4d971911ab65ef0b014b",
        "reasons": [],
        "recovered_signer": "0x7e5f4552091a69125d5dfcb7b8c2659029395bdf",
        "recovered_signer_matches_claimed_from": true,
        "recovery_id": 0,
        "recovery_id_source": "yParity",
        "scope_note": "Recovers the ECDSA signer address from a caller-supplied EIP-712 digest and signature. Proves that a given address's private key produced a valid signature over the exact digest bytes supplied -- it does not prove the recovered address is who the payload claims signed it (beyond the recovered_signer_matches_claimed_from comparison this node itself performs), that funds moved, that a transfer settled, or that the authorization was ever submitted on-chain. An authorization is not a settlement. Zero network calls; never a facilitator, proxy, or settlement relay.",
        "verdict": "SIGNER_RECOVERED"
      }
    }
  },
  "standards_basis": "not_applicable"
},
    {
  "tool_id": "art-592-x402-domain-nonce-window-checker",
  "tool_version": "1.0.0",
  "display_name": "x402 Domain & Nonce Window Checker",
  "mcp_name": "check_x402_domain_nonce_window",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-592-x402-domain-nonce-window-checker.html",
  "description": "Checks an EIP-3009 TransferWithAuthorization's domain separation and replay-defense-adjacent fields against caller-supplied expectations. Takes expected_chain_id and expected_verifying_contract as separate, mandatory policy parameters -- distinct from the chainId/verifyingContract actually baked into the signed domain -- and refuses hard (never a soft warning) on either mismatch, the cross-domain replay defect class EIP-712 domain separation exists to prevent. Also checks the validAfter/validBefore window against a caller-supplied now_unix, and the nonce's format (bytes32, non-zero). Accepts an optional caller-supplied nonce_already_used boolean computed against the caller's own on-chain record; this kernel never queries a chain, so on-chain nonce uniqueness is enforced by the token contract at settlement time, not by this verifier. Zero network calls; never a facilitator, proxy, or settlement relay.",
  "input_schema_ref": "chaingraph/art-592-x402-domain-nonce-window-checker.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b38255c8483b8792648d21f7a06a061fa24aaaea6ffce83ffb9c9b340afab72a",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DThpcpBZ30Ov9IIXTrn33rrIC6YESLxXc+Aske5u+I8GVcYNI44eQx2hou9sip/pJ0u0f5P9aDFCpD9v7EgKmh5WB2FYcMYQ2KmbRqjP4Xn+w4KR69DHstiEJPiy9j9SEaBiKXmS+FNKtUQBhGKYvOSo9vkDn8EsLZBgXAytwHErUku4IM1/uXT37J/ItLTSDygK5OCMY7WmW9DnL8MfwxkmigX0ek7YPszDVOHSdOLS0hFFrAPOstDhziy9v8KTI3jxFHEtSj/JPgw1Ev6vCPzcxwyNar8AsichLDNaBAskVHZCw8X3dWCPteLticzTZKRdiCru1Eq994MhJuED6w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b38255c8483b8792648d21f7a06a061fa24aaaea6ffce83ffb9c9b340afab72a",
      "output": {
        "authorization_expired": false,
        "authorization_not_yet_valid": false,
        "authorization_within_window": true,
        "disclosure": "On-chain nonce uniqueness is enforced by the token contract at settlement time, not by this verifier. This tool confirms the authorization is well-formed, correctly signed, and not self-reported as already used -- it cannot confirm the nonce has never been spent on-chain.",
        "domain_chain_match": true,
        "domain_contract_match": true,
        "expected": {
          "expected_chain_id": "1",
          "expected_verifying_contract": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
        },
        "nonce": "0x0000000000000000000000000000000000000000000000000000000000000001",
        "nonce_already_used": false,
        "nonce_well_formed": true,
        "reasons": [],
        "signed_domain": {
          "chain_id": "1",
          "verifying_contract": "0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48"
        },
        "verdict": "PASS",
        "window": {
          "now_unix": "1000000000",
          "valid_after": "0",
          "valid_before": "2000000000"
        }
      }
    }
  }
},
    {
  "tool_id": "art-593-webbotauth-nonce-replay-check",
  "tool_version": "1.0.0",
  "display_name": "Web Bot Auth Nonce & Replay-Window Checker",
  "mcp_name": "check_webbotauth_nonce_replay",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-593-webbotauth-nonce-replay-check.html",
  "description": "Checks a Visa TAP-shaped nonce for format (minimum entropy, base64url), freshness against a caller-supplied now_unix (created/expires spread capped at TAP's 8-minute limit), and an optional caller-supplied seen-nonce record. This kernel is a pure function invoked fresh per call with zero persistent storage -- it cannot itself remember whether a nonce was seen on a prior invocation. Replay prevention depends entirely on the caller supplying an accurate seen-nonce record from its own storage; this verifier is stateless and cannot detect replay on its own. Zero network calls; never a facilitator, proxy, or settlement relay. Feeds the signatures-directory validator (art-130) in the visa-tap-agent-verification chain.",
  "input_schema_ref": "chaingraph/art-593-webbotauth-nonce-replay-check.html#manifest",
  "consumes": [],
  "feeds": [
    "art-130-signature-directory-validator"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:4d4491d75002a02d8a1448ca25e0aa851ccd4ea646dccde0afdd5d745f48967b","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ir0NHf5Vgg+OOyem83As19Zvx658HM8LcfbeOJenUaUQdCo9+kgTYFQE1gPTYMlmBg/jcOLZJMiLzK0Ch1ARRAhH4tjfd5NrqBZFgCVuJd7OkCzENC0WqNqJwZy8N1LtGOqEXr45RAFeN3RLQcBuSrVLtvubn4C+3/+AIZWouAoN5jPpdrapPMJHN3pcvPltisycR0DfUcQa+2ON+HnrHChB9vBlOUH/iwL69hYYRSebCwWhYqjyg4epcsjeK0nOCmndK9i97qQ+41UJYSgXyvPfpbQbT2Z+FMe+/SJE1hwuPU/zhq0iwtJ7jNOUo/0aEegP7+2/e/jV1RTmYAazOg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4d4491d75002a02d8a1448ca25e0aa851ccd4ea646dccde0afdd5d745f48967b",
      "output": {
        "already_used": false,
        "format_ok": true,
        "fresh": true,
        "nonce_valid": true,
        "spread_ok": true,
        "verdict": "ACCEPT"
      }
    }
  }
},
    {
  "tool_id": "art-594-tempo-mpp-voucher-receipt-verifier",
  "tool_version": "1.0.0",
  "display_name": "Tempo MPP Voucher & Receipt Verifier",
  "mcp_name": "verify_tempo_mpp_voucher",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-594-tempo-mpp-voucher-receipt-verifier.html",
  "description": "Verifies a Tempo Machine Payments Protocol cumulative EIP-712 session voucher offline (ecrecover, no RPC or database lookup), validates a TIP-20 32-byte memo structurally, and validates/renders a merchant-side HTTP 402 Payment challenge plus a Payment-Receipt-shaped binding to an optional subject execution_hash. Voucher struct and channel-state field names confirmed against the primary TIP20ChannelReserve.sol contract source, not just secondary docs. Never holds a private key, never signs, never escrows third-party funds, never initiates a payment, never operates a live endpoint -- every field is caller-supplied and echoed, nothing is fetched or resolved independently. A receiving address is not custody.",
  "input_schema_ref": "chaingraph/art-594-tempo-mpp-voucher-receipt-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:8f2fed1a5536e8df4848f7026a0126867f1ee41058c3aac5f5bbaf57e9dc5cae","valid_from":"2026-08-16"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "deferred",
  "standards_basis": "not_applicable",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state)."
},
    {
  "tool_id": "art-595-ap2-cartmandate-hashchain-builder",
  "tool_version": "1.0.0",
  "display_name": "AP2 CartMandate Hash-Chain Builder",
  "mcp_name": "build_ap2_cartmandate_hashchain",
  "mandate_type": "payment_policy",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-595-ap2-cartmandate-hashchain-builder.html",
  "description": "Builds an illustrative Google AP2 CartMandate Verifiable Digital Credential (VDC) skeleton whose credentialSubject carries a deterministic hash-chain over an ordered list of cart line items: link_0 = keccak256(canon({index:0,item})), link_i = keccak256(canon({index:i,item,prev:link_(i-1)})), cart_root = the final link. Reuses this repo's existing RFC 8785/JCS canonicalization (cgCanon, from _hash.mjs) and the already-vendored @noble/hashes keccak256 bundle -- no new vendoring, no hand-rolled canonicalization or hashing. Stands beside art-16 (Google AP2 Mandate Builder) as a new node, not an edit to it -- art-16's flat CheckoutMandate/PaymentMandate shape has no line-item array to chain over. An intact chain proves the ordered cart_items list was not altered after the chain was built; it does NOT prove human authorisation, delivery, settlement, or that item prices are correct or current. Given a prior chain's per-item links (claimed_links) and a (possibly tampered) cart_items, the kernel recomputes and reports CART_CHAIN_INTACT plus the earliest divergent index, never a thrown exception. Zero network calls; never a facilitator, proxy, gateway, or settlement relay.",
  "input_schema_ref": "chaingraph/art-595-ap2-cartmandate-hashchain-builder.html#manifest",
  "consumes": [],
  "feeds": ["art-596-ap2-x402-cart-correlation"],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:b0b1ed06bbeb16d1227f7073af8e46c323bff835b503b0d2f3a7231baa44803e","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof_ready": "deferred",
  "deferred_reason": "Prove attempted 2026-08-13 (PROVE-8-DEFERRED-0812-1) and FAILED: the guest returns an error journal {error:\"ocg_run\",code:-3} with a stack at utf8ToBytes <- _canonBytes <- compute, so run_verify refuses at cgv_undefined rather than stage a proof over an error journal. Deterministic guest error (art-476/art-607 signature); not retried. Root cause unresolved; needs a diagnosis row."
},
    {
  "tool_id": "art-596-ap2-x402-cart-correlation",
  "tool_version": "1.0.0",
  "display_name": "Ap2 X402 Cart Correlation",
  "mcp_name": "correlate_ap2_cartmandate_x402",
  "mandate_type": "compliance_control",
  "wave": 107,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-596-ap2-x402-cart-correlation.html",
  "description": "Correlates a built AP2 CartMandate (cart_root, cart_items, merchant) against an x402_spend_evidence pack: does the cart total (sum of quantity*unit_price per currency) match the x402 authorization's value, does the CartMandate's merchant map to the authorization's recipient address, and does the CartMandate's own hash-chain independently re-verify against the supplied cart_items (never trusted as a self-reported flag). Output vocabulary is CORRELATION_STATUS (CORRELATED / NOT_CORRELATED / INDETERMINATE) -- this is a plausibility check over two independently-produced artifacts, never a cryptographic binding. Google has not shipped an AP2-compatible x402 extension; no field or code path here implies one exists. Zero network calls; never a facilitator, proxy, gateway, or settlement relay.",
  "input_schema_ref": "chaingraph/art-596-ap2-x402-cart-correlation.html#manifest",
  "consumes": ["art-595-ap2-cartmandate-hashchain-builder"],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:bd768b21783024010879049cb1560f975da0ac0a210a9fde5da62dca74523c81","valid_from":"2026-08-18"}],
  "export_capability": ["json"],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-596-ap2-x402-cart-correlation, scaffolded 2026-08-18 (KERNEL-SCAFFOLD-1). No GPU prove has been run and none is proposed by this scaffold — deferred per the section 18 steady-state rule (RIDER-KERNEL.md). Run GPU-CYCLE-PREFLIGHT-1's static pre-screen once compute() is real, then measure user_cycles with runq-cpu exec before booking."
},
    {
  "tool_id": "art-597-c2pa-aiml-assertion-decoder",
  "tool_version": "1.0.0",
  "display_name": "C2PA AI/ML Assertion Decoder",
  "mcp_name": "decode_c2pa_aiml_assertions",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-597-c2pa-aiml-assertion-decoder.html",
  "description": "Decodes AI/ML provenance assertions off a C2PA manifest's assertion array: ALL entries in every c2pa.actions/c2pa.actions.v2 assertion (a manifest can carry a created -> edited -> published history; this reads the whole chain, not just the first action, generalizing beyond art-361's single-action IDV-scoped read), the full IPTC digitalsourcetype NewsCodes vocabulary (raw code always surfaced, an unrecognized code is never silently dropped -- it lands in unrecognized_source_types), and c2pa.ai_training / c2pa.ai_generative_training training-and-data-mining opt-out assertions (training_mining_opt_out: true/false/not_asserted, read only from an explicit boolean, never inferred). Reports assertions only -- never adjudicates whether an assertion is true, and absence of an AI/ML assertion means nothing (not evidence of human authorship, not proof of AI generation). Reuses art-123's assertion-array input shape as a sibling stage; zero edits to art-123 or art-361. Zero network calls, zero PII.",
  "input_schema_ref": "chaingraph/art-597-c2pa-aiml-assertion-decoder.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d620138d5260a51255c0c89c76d6ae0e99a18d4a396f6b5443ca9aff00e2bd6e",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "L6IUpGV+YgGCpxQK/UxcUv74dN6PneV4jaE9quUgIeESZPlgMMUScr1+pyopk+ZUiACOmFaBmDYNzkY82MEJGBvT43THt9E8aueUDA7ofgpVqYspVNcKOVO0c09KcMoRKZ3s+j5MPBbgS5RsfL3bcfEX4iz+ZoqdZvXgr9oWZnIsXs0ahF7ECZMZ0hpXEkx//Y8cgj/x6sw+PFyWWTJe8iXx4fKyPDVHVCU1QFa2KIveWJSY/kNFhT2xtGlBjA4kFobcr6u3Ndlbb+kjQWzG4cJ5bvpg9RRklHnhkEFaEqIk19FvJ2l4r3fQxoUKcumX/gKe0KiLIxfgChwJ2ZChnA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d620138d5260a51255c0c89c76d6ae0e99a18d4a396f6b5443ca9aff00e2bd6e",
      "output": {
        "actions": [
          {
            "action": "c2pa.created",
            "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
            "software_agent": "Pixel Camera App 3.2",
            "when": "2026-08-01T10:00:00Z"
          },
          {
            "action": "c2pa.edited",
            "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
            "software_agent": "Adobe Photoshop 26.0",
            "when": "2026-08-01T11:00:00Z"
          },
          {
            "action": "c2pa.published",
            "digital_source_type": "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture",
            "software_agent": "Adobe Photoshop 26.0",
            "when": "2026-08-01T12:00:00Z"
          }
        ],
        "digital_source_type_summary": [
          "http://cv.iptc.org/newscodes/digitalsourcetype/digitalCapture"
        ],
        "note": "Reports assertions as declared by the manifest generator only -- never adjudicated. Absence of an AI/ML assertion means nothing: it is never evidence of human authorship, and its presence is never proof of AI generation. Assertions only, not a trust-chain or signature claim.",
        "training_mining_opt_out": "not_asserted",
        "unrecognized_source_types": []
      }
    }
  }
},
    {
  "tool_id": "art-598-input-attestation-verifier",
  "tool_version": "1.0.0",
  "display_name": "Input Attestation Verifier",
  "mcp_name": "verify_input_attestations",
  "mandate_type": "compliance_mandate",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-598-input-attestation-verifier.html",
  "description": "Verify SPEC.md §23 input_attestations entries -- vc-2.0, c2pa-manifest, rfc3161-snapshot, zktls -- against a target artifact's policy_parameters. Resolves each entry's RFC 6901 pointer, binds its digest to the resolved value's canonical SHA-256, and reports the exact §23.2 per-entry shape {pointer, type, structural, verifiable} plus freshness_status (§23.4) and a zero_attestation_caveat_shown marker. rfc3161-snapshot reuses the SAME §20 verifyRfc3161() CMS/TSTInfo verifier (no second RFC 3161 implementation), defaulting to the pinned FreeTSA root when none is supplied. vc-2.0 reuses the shipped §16 eddsa-jcs-2022 Data Integrity machinery (real base58 + Ed25519, not a reimplementation). c2pa-manifest imports art-123's own exported structural-check function directly -- art-123's kernel source is untouched. zktls carries no vendored verifier and is always reported verifiable:'external', never OCG-confirmed. Zero network calls.",
  "input_schema_ref": "chaingraph/art-598-input-attestation-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:91ced776d50f3ea42ea291b34a35b65afc7e7fe6cd2caa78b967671358618c9b","valid_from":"2026-07-10"}],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "ART598-DEASYNC-1 (2026-08-13) converted compute() to fully synchronous (vendored noble ed25519 verify + inlined sha256, no await, no crypto.subtle) -- the still-async guard that refused PROVE-8-DEFERRED-0812-1 no longer applies. output_payload demonstrated byte-identical to the pre-conversion kernel across every fixture vector. Not yet (re-)proven -- this row did not prove by design (needs its own GPU prove row/session)."
},
    {
  "tool_id": "art-599-gleif-snapshot-digest",
  "tool_version": "1.0.0",
  "display_name": "GLEIF Snapshot Digest",
  "mcp_name": "digest_gleif_snapshot",
  "mandate_type": "cryptographic_mandate",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-599-gleif-snapshot-digest.html",
  "description": "Hash-pins a pasted GLEIF Golden Copy record or file segment as of a caller-stated capture time, so a later reader can tell whether the entity data in front of them is the same data a pack was built from. The digest is taken over the raw pasted bytes, never a parsed, trimmed or re-serialized form, so anyone holding the original file can reproduce it. Reads LastUpdateDate only from the unambiguous CDF XML element; for a CSV row the caller states the value and the output records which of the two it came from. Validates LEI syntax as a courtesy flag (ISO 17442 mod-97, the same check art-246 carries), never as a blocking gate. Zero network: the GLEIF Golden Copy URL is named for the reader, never fetched. This records that these exact bytes were pinned at the stated time. It is not a statement that the record is still current, not a validation of the entity data, and carries no ongoing monitoring duty.",
  "input_schema_ref": "chaingraph/art-599-gleif-snapshot-digest.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:0b3902db12128174f906bfc436ef14f2415464d9bd58aa2215b3e5e2d1be2a7b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Dd4RZ+HvNf2h14EOdRuWCiRjk0H/OXm4sfs1J2qTvrYnXNZq9h9GVFt140Zh7hr3bBABlzvvJbLM31+OZwpvXSoJYZUZeiOE87QElxkpR9LoB1h/DOdD8jeE9Z3+AyWxCEhkp6rx3eCRnW6tKh/19KzypSMFdXjMb/K+bF6hXisEwA0u31L7M8ivvIIhr9of8REnrbbeuYT3+OQ1p2aHmhLDNgV9j+XyGaMpWL069kgyQ+i0GPUGqjE8i2yF890gE3Uz3P+RUdWfghMTPy9Oqy+KVQBvsM3hCZy5nCFeuygcrAObxidH3Z6AYfP7TnlNJozk4p5a5dUUbVax+dnMww==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:0b3902db12128174f906bfc436ef14f2415464d9bd58aa2215b3e5e2d1be2a7b",
      "output": {
        "captured_at": "2026-08-11T00:00:00Z",
        "golden_copy_as_of": "2026-06-30",
        "last_update_date": "2026-06-30T12:00:00.000Z",
        "last_update_date_found": true,
        "last_update_date_source": "record_xml",
        "lei": "5493001KJTIIGC8Y1R12",
        "lei_checksum_note": null,
        "lei_checksum_valid": true,
        "licence": "CC0 1.0 Universal -- GLEIF Open Data (confirmed: gleif.org/en/meta/lei-data-terms-of-use)",
        "pii_note": "LEI reference data is PUBLIC registry data (GLEIF, gleif.org). This tool hashes the pasted bytes and reads no field other than LastUpdateDate. No PII processed -- use synthetic or public registry data only.",
        "scope_note": "This records that these exact bytes were pinned at the stated capture time. It is not a statement that the record is still current, not a validation of the entity data, and carries no ongoing monitoring duty.",
        "snapshot_captured": true,
        "source_bytes": 242,
        "source_format": "xml",
        "source_sha256": "b7bf7a7c7b834d96f1f8f0ba2bb0185e65290e78cfc7e4406000477543591270",
        "source_url": "https://www.gleif.org/en/lei-data/gleif-golden-copy/download-the-golden-copy",
        "verification_path": "Compare source_sha256 against a fresh GLEIF Golden Copy download for the same as-of date. GLEIF publishes three golden-copy sets plus four delta files daily, so re-derive the digest from the file itself rather than trusting this record."
      }
    }
  }
},
    {
  "tool_id": "art-600-lei-relationship-consistency",
  "tool_version": "1.0.0",
  "display_name": "LEI Relationship Consistency Checker",
  "mcp_name": "check_lei_relationship_consistency",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-600-lei-relationship-consistency.html",
  "description": "Checks four structural invariants over a pasted set of GLEIF Level-2 relationship records for one subject LEI: every startNode and endNode is a syntactically valid LEI (ISO 17442 mod-97, the same check art-246 carries), walking IS_DIRECTLY_CONSOLIDATED_BY edges never revisits a node already on the current path, every reporting-exception code is a published GLEIF category held as a versioned constant rather than inferred, and no two active records share a startNode, endNode and relationshipType triple with overlapping validity periods. A violation flags a possible inconsistency in GLEIF's published Level-2 data for this LEI. It is not an assertion about the entity's actual corporate structure and not a finding about the entity itself; golden-copy data is periodically corrected, so recheck against a fresh pull before treating any violation as durable. An empty record set returns consistent as null rather than a clean pass. Zero network: this never queries GLEIF and is not a re-implementation of GLEIF's own reconciliation service.",
  "input_schema_ref": "chaingraph/art-600-lei-relationship-consistency.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5f6da9c921850504efa9bfc5e8e7f0e2bd92ee4271a81a8eb7d71e7a4dd60b96",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "CWZ5Y0+uzAr+lciDa/L61vYocjaDcJoI7XlSS+GGBgsdBU52AfcwBogZ662gkbPfkCPZDjgABW8pSzsFe7C4EgL0uaT1DbM/7cxDgy47YE2SPe0yBVbiIUcMxhg4lXjrDYtyi54f8woltM+p8FZBQxW4128xbFB1XxIpCt42htkMwnYStUWVUgt/acxRBAzqkIi0NBwET1ZChmlXLV17lRuNZ07SJJyRoRUmBCfBxF3PHE6/x/AtaIWNJrZoNE0WCs/5Qis3l7qXEBvRvY/aeNYieG9W+X8JG6tFVmj+euoVMXDA/cD2IXe/mM+WNCMXj1g2KiHmvlYcDZheqw1F0Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5f6da9c921850504efa9bfc5e8e7f0e2bd92ee4271a81a8eb7d71e7a4dd60b96",
      "output": {
        "consistent": true,
        "cycle_path": null,
        "deprecated_exception_codes": [],
        "duplicate_active_triples": [],
        "exception_table_source": "GLEIF Level 2 Data: Reporting Exceptions CDF format 2.1 (gleif.org/en/lei-data/access-and-use-lei-data/level-2-data-reporting-exceptions-2-1-format)",
        "exception_table_version": "GLEIF-REPORTING-EXCEPTIONS-CDF-2.1",
        "invalid_node_leis": [],
        "invariant_results": [
          {
            "code": "INVALID_NODE_LEI",
            "detail": "Every startNode/endNode LEI passes the ISO 17442 mod-97 check.",
            "invariant": "node_lei_validity",
            "pass": true
          },
          {
            "code": "PARENT_CYCLE_DETECTED",
            "detail": "Walking IS_DIRECTLY_CONSOLIDATED_BY edges never revisits a node on the current path.",
            "invariant": "no_direct_parent_cycle",
            "pass": true
          },
          {
            "code": "UNRECOGNIZED_EXCEPTION_CODE",
            "detail": "Every exception code is a published GLEIF category in GLEIF-REPORTING-EXCEPTIONS-CDF-2.1.",
            "invariant": "exception_code_well_formed",
            "pass": true
          },
          {
            "code": "DUPLICATE_ACTIVE_RELATIONSHIP",
            "detail": "No (startNode, endNode, relationshipType) triple has two ACTIVE records with overlapping validity periods.",
            "invariant": "no_overlapping_active_duplicates",
            "pass": true
          }
        ],
        "pii_note": "LEI reference data is PUBLIC registry data (GLEIF, gleif.org). Relationship records are processed structurally only. No PII processed -- use synthetic or public registry data only.",
        "recognized_exception_codes_current": [
          "NO_LEI",
          "NATURAL_PERSONS",
          "NON_CONSOLIDATING",
          "NO_KNOWN_PERSON",
          "NON_PUBLIC"
        ],
        "recognized_exception_codes_deprecated": [
          "BINDING_LEGAL_COMMITMENTS",
          "LEGAL_OBSTACLES",
          "DISCLOSURE_DETRIMENTAL",
          "DETRIMENT_NOT_EXCLUDED",
          "CONSENT_NOT_OBTAINED"
        ],
        "record_count": 2,
        "records_assessed": true,
        "scope_note": "This flags a possible inconsistency in GLEIF's published Level-2 relationship data for this LEI. It is not an assertion about the entity's actual corporate structure, and not a finding about the entity itself. GLEIF golden-copy data is periodically corrected; recheck against a fresh golden-copy pull before treating this as durable.",
        "subject_lei": "5493001KJTIIGC8Y1R12",
        "subject_lei_valid": true,
        "unrecognized_exception_codes": [],
        "violation_count": 0,
        "violations": []
      }
    }
  }
},
    {
  "tool_id": "art-601-dora-roi-gleif-preflight-pack",
  "tool_version": "1.0.0",
  "display_name": "Dora Roi Gleif Preflight Pack",
  "mcp_name": "compute_dora_roi_gleif_preflight_pack",
  "mandate_type": "compliance_control",
  "wave": 103,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-601-dora-roi-gleif-preflight-pack.html",
  "description": "DORA RoI GLEIF pre-submission evidence pack, terminal node of chain dora-roi-gleif-preflight-pack (art-466 -> art-599 x N -> art-600 x N -> art-601). Pure composition over upstream node outputs: links to the upstream dora-roi-builder artifact by execution_hash + tool_id (never the raw dataset), and for each LEI-bearing counterparty carries forward its art-599 GLEIF snapshot digest result and its art-600 relationship-consistency result. Rolls up all_snapshots_captured and any_relationship_violation across the counterparty set, plus a named-human attestation closure (management-body role, art-300 pattern). Every element carries captured_at and a source digest so staleness stays visible without the pack asserting freshness. Preparation aid only: assembles evidence a firm compiles when preparing its own DORA RoI submission. Not a submission, not a filing, not a determination that a submission is complete or accurate, and not a statement that any regulator has reviewed or would accept this output. compliance_flags describe pack-assembly state only.",
  "input_schema_ref": "chaingraph/art-601-dora-roi-gleif-preflight-pack.html#manifest",
  "consumes": [
    "art-466-dora-roi-builder",
    "art-599-gleif-snapshot-digest",
    "art-600-lei-relationship-consistency"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:bf3d3052e3888bced6a3528b63c51fffe36755a4e6d970720d62c04f4443438c",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-601-dora-roi-gleif-preflight-pack, built 2026-08-17. Pure composition over upstream node outputs (no domain rules of its own to cite -- standards_basis: not_applicable), deferred per the section 18 steady-state rule (RIDER-KERNEL.md) pending SO #39 SIDEBYSIDE and GPU-CYCLE-PREFLIGHT-1's static pre-screen before booking."
},
    {
  "tool_id": "art-602-mica-register-presence-check",
  "tool_version": "1.0.0",
  "display_name": "MiCA Register Presence Check",
  "mcp_name": "check_mica_register_presence",
  "mandate_type": "compliance_mandate",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-602-mica-register-presence-check.html",
  "description": "Answers one question about a pasted extract of an ESMA MiCA public register: was a named entity present in that snapshot on the date the reader captured it? The reader pastes the register extract (the register of crypto-asset white papers, or the register of authorised crypto-asset service providers), names the register type, supplies the entity identifier and supplies the capture date. The kernel digests the pasted bytes exactly as pasted into register_snapshot_digest, parses the extract with RFC 4180 quoting, searches either every cell or one caller-named column, and emits a single fixed verdict sentence: as of the retrieval date, the entity was or was not present in the named register snapshot with that digest. HARD FENCE: the extract, the entity identifier, the register type and the retrieval date are every one of them a caller input. This node performs no lookup of any kind (zero-egress), ships no bundled copy of either register, adds no scheduled refresh, and has no clock at all, so retrieval_date dates the reader's CAPTURE rather than the run. match_found is a tristate: null means the search did not run, and it is never collapsed into a false, because not looking and looking-and-not-finding are different facts. Oversized extracts are refused with a named flag rather than truncated, since a digest over bytes the reader never saw would be worse than no reading. Presence is a dated fact about a snapshot, never authorisation, never a current status, never a claim the register itself is complete or current, and never legal advice: absence proves absence from THAT PASTED TEXT, which a partial page, a filtered export or a different identifier spelling would each produce. Distinct from art-512-check-mica-reserve-disclosure, which checks a published reserve disclosure against caller-declared Article 30/36/37/54 terms, from art-102-crypto-asset-whitepaper-linter, which structurally lints a white paper rather than reading the register of white papers, and from tools/332-mica-casp-authorization-checker, which walks the authorisation question this node deliberately refuses to answer. None of those three is edited or imported. Out of scope: authorisation or status determination, live or scheduled register fetches, taxonomy and iXBRL validation, reserve arithmetic, and any coverage figure about our own estate.",
  "input_schema_ref": "chaingraph/art-602-mica-register-presence-check.html#manifest",
  "deadline": null,
  "deadline_note": "No statutory deadline is encoded. The retrieval date is a caller input, because a bundled register snapshot or a scheduled refresh is a standing duty that goes silently false the day it is not chased.",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:7457760d26cd21fb26da3a02695102c4a9345d971ef5eb464a38361db636d3c8",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LI6VuMBk+CkpE4cPmLqJewRpY3U+wEBqhUkeHqaqdw8r9RPkNlDxbY7Ccuo9ayu5QNqRZ/783e86Sb7PsAQU9hbjfkofQOvTuAphBioN7DoL5gM3d4jBZxVLAxVkyzIRGgVg6cWJNem3Ks91YrqthtknMlADC329e3IURvylNoEDuMkye9rFQ4Zcpi9qiuqM5SBLPomhnz8cBkJOaXOM4R0sgdhFsh0cYmF0W6O4zLPGy4FmGxF9BiLdt0cDGf57BL2d7oX4K5+VqfFEMLXjOYJnpv55/LCa7bFyliejwt8BrubnRHTDod+E/36t1SUy9acQfZH8FdoDebFCxuooDA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:7457760d26cd21fb26da3a02695102c4a9345d971ef5eb464a38361db636d3c8",
      "output": {
        "entity_identifier": "984500XXXXXXXXXXXX02",
        "fence": "The register extract, the entity identifier, the register type and the retrieval date are every one of them a caller input. This kernel performs no lookup of any kind (zero-egress by contract), ships no copy of either ESMA register, and has no clock: retrieval_date is the date the reader captured the extract, never a machine clock read. register_snapshot_digest pins the exact pasted bytes the verdict was reached against, so a later register update makes an old receipt dated rather than wrong. Presence in a snapshot is never authorisation and never a statement about today.",
        "judgment_required": null,
        "match_count": 1,
        "match_found": true,
        "matched_row": "984500XXXXXXXXXXXX02,Second Issuer NV,SECOND-TOKEN,2026-02-03,NL",
        "matched_rows": [
          {
            "cells": [
              "984500XXXXXXXXXXXX02",
              "Second Issuer NV",
              "SECOND-TOKEN",
              "2026-02-03",
              "NL"
            ],
            "line_number": 3,
            "matched_column_index": 0,
            "matched_row": "984500XXXXXXXXXXXX02,Second Issuer NV,SECOND-TOKEN,2026-02-03,NL"
          }
        ],
        "not_proven": [
          {
            "detail": "Presence in a register extract is not authorisation, licensing, registration in good standing, or any other status. This kernel reports whether a line was found in pasted text on a stated date, and refuses to say anything about what is true today.",
            "item": "Authorisation status"
          },
          {
            "detail": "The extract is whatever the reader pasted. Absence of a match proves absence from THAT TEXT, never absence from the register: a partial page, a filtered export, or a different register would each produce the same \"was not present\" reading.",
            "item": "Snapshot completeness"
          },
          {
            "detail": "Nothing here proves the pasted text came from ESMA, was unmodified in transit, or was captured on the date supplied. The digest pins the bytes that were checked; it does not attest their provenance.",
            "item": "Snapshot authenticity"
          },
          {
            "detail": "The entity identifier is compared as a literal string against the extract's own cells. A register spelling the identifier differently, a legal-name change, or a subsidiary listed under a different LEI all read as no match, and none of those is evidence about the entity.",
            "item": "Identifier correctness"
          },
          {
            "detail": "The register itself may have been stale, mid-update, or corrected after capture. retrieval_date dates the CAPTURE, not the register, and this kernel has no clock with which to compare either against now.",
            "item": "Currency of the register"
          }
        ],
        "rationale": [
          "The pasted extract is 272 characters and is pinned by digest sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc; every statement below is against those exact bytes.",
          "The extract parses to 4 non-blank lines, the first read as a header row, giving 3 data rows to search.",
          "Only the column resolved as header \"lei\" at index 0 was compared, because that is the column the caller declared.",
          "One line matched the identifier 984500XXXXXXXXXXXX02, at line 3 of the paste, and is echoed verbatim.",
          "Presence here is a dated fact about a pasted snapshot. It is not authorisation, not a current status, not a statement that the register is complete or current, and not legal advice."
        ],
        "register_label": "white-paper",
        "register_snapshot_digest": "sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc",
        "register_source_ref": "ESMA crypto-asset white paper register export (synthetic sample)",
        "register_type": "white_paper",
        "retrieval_date": "2026-08-11",
        "search": {
          "case_sensitive": true,
          "delimiter": ",",
          "match_column_declared": "lei",
          "match_column_resolved": "header \"lei\" at index 0",
          "match_column_unresolved": false,
          "searched": true
        },
        "snapshot": {
          "data_row_count": 3,
          "extract_length_chars": 272,
          "extract_present": true,
          "extract_too_large": false,
          "header_cells": [
            "lei",
            "issuer_name",
            "crypto_asset_name",
            "notification_date",
            "home_member_state"
          ],
          "header_row_declared": true,
          "max_extract_chars": 262144,
          "max_rows": 5000,
          "parsed_line_count": 4,
          "row_cap_exceeded": false
        },
        "verdict": "As of 2026-08-11, entity 984500XXXXXXXXXXXX02 was present in the white-paper register snapshot with digest sha256:45775add42af3cdd102e72c39852941693fa387036ca38b7cdaaaa5b82e33acc.",
        "verdict_unavailable_reason": null
      }
    }
  }
},
    {
  "tool_id": "art-603-stablecoin-reserve-3source-recompute",
  "tool_version": "1.0.0",
  "display_name": "Stablecoin Reserve 3-Source Recompute",
  "mcp_name": "recompute_stablecoin_reserve_3source",
  "mandate_type": "compliance_mandate",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-603-stablecoin-reserve-3source-recompute.html",
  "description": "Recomputes reserve ratio, weighted-average maturity (WAM), and per-holding GENIUS eligible-asset match from three independently-sourced, caller-declared legs, then reconciles them against each other, skew-gated on how far apart their as-of dates are. Leg A is the issuer's own published reserve report extended with a per-asset-class breakdown; Leg B is the EDGAR N-MFP Part 1 series-level summary for the government money-market fund holding reserves (never the Part 3 per-security schedule); Leg C is a declared on-chain supply figure. Each leg is optional at the type level and a missing leg drives every check that depends on it to INDETERMINATE, never a fabricated pass. Emits reserve-ratio, WAM-ceiling, and per-holding GENIUS eligible-asset verdicts in MET/NOT_MET/INDETERMINATE and MATCHES_CRITERION/DOES_NOT_MATCH/INDETERMINATE vocabulary, three cross-source reconcile checks in RECONCILED/DISCREPANT/INDETERMINATE vocabulary, and an overall_determination worst-of rollup. Not re-specifying the shipped art-582 (1:1 top-line coverage + report-timeliness only) or art-584 (Merkle-sum PoR consistency); this node is the granular per-asset-class recompute and cross-source reconcile neither of those covers. A RECOMPUTE only: never a solvency claim, never an audit, never a third-party sign-off, never 'satisfies GENIUS'. Per-holding GENIUS eligible-asset flags report criteria-match only, with the statutory catch-all item always INDETERMINATE and never auto-matched; there is no overall_eligibility field of any kind.",
  "input_schema_ref": "chaingraph/art-603-stablecoin-reserve-3source-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c8316be3de60b7720200258695a7e8932fc30fc151208c12d87714c647bfc3db",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "K24aid8o6SxYFnAMNfQ479x0BRDv2F1bqHB6kmwY7towHGOarKyFQTKE3wwA8mLkYJg8TiahXO8SFb7N9VLKQyNOry3x1/Jgo3LguKN+UfKozVCSX83pCxsWByYqJAeIEaJdpzdcisOAqMO+O1DTlM7V5ra8wngZ9ZZ6A9jiPNwQ9YyCK1JblqQwW80rL+11p95PTyj/2aeaQRLe3Ll+EiPjl7Elq4JGNwvn9kon6GBNcfq9uX/2D1zLBrrOPWKaFp4p1KPVlpef4WnfUfXg3SQGX/mWvCB6JGMeOhd18p4IkQWw4DvY4VE3QD3EbS61pcMaNY1e8XPlMLk4BofB/Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c8316be3de60b7720200258695a7e8932fc30fc151208c12d87714c647bfc3db",
      "output": {
        "as_of_skew_pairs": {
          "leg_a_vs_leg_b": 0,
          "leg_a_vs_leg_c": 0,
          "leg_b_vs_leg_c": 0
        },
        "as_of_skew_threshold_days": 10,
        "determination_note": "overall_determination is a worst-of rollup of independent recompute-and-reconcile checks on disclosed figures. It is never a solvency claim, never an audit opinion, and never \"satisfies GENIUS\" — it states whether recomputed arithmetic, WAM, and three independently-sourced figures are internally consistent with each other, and nothing about whether the declared figures are themselves true.",
        "genius_eligible_holdings": [
          {
            "amount_usd": 50000000,
            "asset_class": "us_coin_and_currency",
            "detail": "Matches statutory eligible-asset item 1: U.S. coins and currency.",
            "line_index": 0,
            "ref": "GENIUS Act statutory eligible-asset enumeration (8 items) — sourced from statute text, pre-final-rule disclosure per GENIUS-FINALRULE-CHECK-1; catch-all item 7 always INDETERMINATE, never auto-matched.",
            "statutory_item": 1,
            "statutory_item_label": "U.S. coins and currency",
            "verdict": "MATCHES_CRITERION"
          },
          {
            "amount_usd": 800000000,
            "asset_class": "treasury_bill_93d_or_less",
            "detail": "Matches statutory eligible-asset item 4: Treasury bills with 93 days or less remaining maturity.",
            "line_index": 1,
            "ref": "GENIUS Act statutory eligible-asset enumeration (8 items) — sourced from statute text, pre-final-rule disclosure per GENIUS-FINALRULE-CHECK-1; catch-all item 7 always INDETERMINATE, never auto-matched.",
            "statutory_item": 4,
            "statutory_item_label": "Treasury bills with 93 days or less remaining maturity",
            "verdict": "MATCHES_CRITERION"
          },
          {
            "amount_usd": 200000000,
            "asset_class": "government_mmf_solely_foregoing",
            "detail": "Matches statutory eligible-asset item 6: Government money market funds invested solely in the foregoing.",
            "line_index": 2,
            "ref": "GENIUS Act statutory eligible-asset enumeration (8 items) — sourced from statute text, pre-final-rule disclosure per GENIUS-FINALRULE-CHECK-1; catch-all item 7 always INDETERMINATE, never auto-matched.",
            "statutory_item": 6,
            "statutory_item_label": "Government money market funds invested solely in the foregoing",
            "verdict": "MATCHES_CRITERION"
          }
        ],
        "leg_a": {
          "as_of": "2027-02-28",
          "period_end_date": "2027-02-28",
          "report_period": "2027-02",
          "source_digest": "sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
        },
        "leg_b": {
          "accession_number": "0001234567-27-000123",
          "as_of": "2027-02-28",
          "filing_date": "2027-03-05",
          "source_digest": "sha256:bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"
        },
        "leg_c": {
          "as_of": "2027-02-28",
          "source_digest": "sha256:cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc"
        },
        "max_as_of_skew_days_global": 0,
        "not_proven": [
          {
            "detail": "This tool recomputes arithmetic on disclosed figures; it does not verify the underlying figures are true. Whether Leg A, Leg B, or Leg C's declared numbers are accurate is the declaring party's responsibility, not something this recomputation can determine.",
            "item": "Figure truthfulness"
          },
          {
            "detail": "A per-asset-class breakdown that sums correctly to the stated total does not prove the breakdown lists every holding — an omitted line and an inflated line on another can cancel out undetected.",
            "item": "Reserve composition completeness"
          },
          {
            "detail": "Each leg is a point-in-time figure at its own declared as_of date. No leg is compared against \"today\" — this tool has no clock.",
            "item": "Snapshot currency"
          },
          {
            "detail": "Per-holding eligible-asset flags report criteria-match only. This tool produces no compliance opinion, no audit, and no examination — a reader wanting one is told this explicitly, never given a merged eligibility boolean.",
            "item": "GENIUS compliance opinion"
          },
          {
            "detail": "This tool performs no audit and carries no PCAOB or other audit-firm opinion; it is a recompute-and-reconcile check only.",
            "item": "PCAOB audit opinion"
          }
        ],
        "overall_determination": "MET",
        "provisional_nprm_detail": [
          {
            "amount_usd": 50000000,
            "ceiling_pct": 40,
            "exceeds_concentration_ceiling": false,
            "institution": "us_coin_and_currency",
            "pct_of_recomputed_reserves": 4.7619,
            "provisional_nprm_detail": true,
            "ref": "OCC NPRM concentration detail (≤40% at any one eligible institution) — proposed-rule detail, not statute, kept visibly separate from the statutory eligible-asset list."
          },
          {
            "amount_usd": 800000000,
            "ceiling_pct": 40,
            "exceeds_concentration_ceiling": true,
            "institution": "US Treasury",
            "pct_of_recomputed_reserves": 76.1905,
            "provisional_nprm_detail": true,
            "ref": "OCC NPRM concentration detail (≤40% at any one eligible institution) — proposed-rule detail, not statute, kept visibly separate from the statutory eligible-asset list."
          },
          {
            "amount_usd": 200000000,
            "ceiling_pct": 40,
            "exceeds_concentration_ceiling": false,
            "institution": "Fund X",
            "pct_of_recomputed_reserves": 19.0476,
            "provisional_nprm_detail": true,
            "ref": "OCC NPRM concentration detail (≤40% at any one eligible institution) — proposed-rule detail, not statute, kept visibly separate from the statutory eligible-asset list."
          }
        ],
        "reconciles": [
          {
            "as_of_skew_days": 0,
            "check": "reserves_vs_mmf_assets",
            "detail": "Reserves attributed to the fund (840000000.00, 80.00% of recomputed reserves) vs Leg B total_net_assets (840000000): delta 0.0000%, tolerance 0.5%.",
            "verdict": "RECONCILED"
          },
          {
            "as_of_skew_days": 0,
            "check": "liabilities_vs_onchain_supply",
            "detail": "Reported outstanding tokens (1000000000) vs declared on-chain supply (1000200000): delta 0.0200%, tolerance 0.5%.",
            "verdict": "RECONCILED"
          },
          {
            "as_of_skew_days": 0,
            "check": "wam_cross_check",
            "detail": "Disclosure-recomputed WAM (20.00d) and EDGAR-reported WAM (21.00d) are within the 2-day tolerance. This comparison is directional, not exact, when the named fund holds only part of the issuer's reserves.",
            "verdict": "RECONCILED"
          }
        ],
        "regulatory_framework": "GENIUS Act reserve-composition recompute (statute-derived eligible-asset enumeration + OCC NPRM concentration/WAM detail, see art-582/art-06/art-275 for the pre-issuance/statutory-restatement/report-timeliness siblings); SEC EDGAR N-MFP Part 1 series summary (U.S. government work, freely usable); not a PCAOB audit, not a third-party sign-off, not an examination.",
        "reserve_ratio": {
          "breakdown_sum_consistency": {
            "delta_pct": 0,
            "recomputed_from_breakdown_usd": 1050000000,
            "stated_total_reserves_usd": 1050000000,
            "within_tolerance": true
          },
          "coverage_ratio_pct": 105,
          "detail": "Recomputed reserves (1050000000) cover 105.00% of liabilities (1000000000), computed from the per-asset-class breakdown, not the stated top-line figure.",
          "total_liabilities_usd": 1000000000,
          "total_reserves_usd_recomputed": 1050000000,
          "verdict": "MET"
        },
        "wam": {
          "wam_ceiling_check": {
            "ceiling_days": 20,
            "ceiling_ref": "OCC NPRM detail (research/GENIUS-FINALRULE-CHECK-2026-08-07.md) — NPRM, not final rule, re-verify at build time.",
            "detail": "Best-available WAM (20.00d, source: disclosure_recomputed) is at or below the 20-day ceiling.",
            "verdict": "MET",
            "wam_source": "disclosure_recomputed"
          },
          "wam_cross_check": {
            "detail": "Disclosure-recomputed WAM (20.00d) and EDGAR-reported WAM (21.00d) are within the 2-day tolerance. This comparison is directional, not exact, when the named fund holds only part of the issuer's reserves.",
            "verdict": "RECONCILED"
          },
          "wam_from_disclosure": {
            "detail": "Weighted-average maturity recomputed from the per-asset-class breakdown: 20.00 days.",
            "value_days": 20,
            "verdict": null
          },
          "wam_from_edgar": {
            "detail": "wam_days extracted directly from the N-MFP Part 1 series summary (accession 0001234567-27-000123). Extraction, not a recompute.",
            "value_days": 21,
            "wam_source": "edgar_nmfp_reported"
          }
        }
      }
    }
  }
},
    {
  "tool_id": "art-604-erc8004-registry-entry-verifier",
  "tool_version": "1.0.0",
  "display_name": "ERC-8004 Registry Entry Verifier",
  "mcp_name": "verify_erc8004_registry_entry",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-604-erc8004-registry-entry-verifier.html",
  "description": "Checks whether a caller-supplied claimed ERC-8004 agent registry entry (Identity, Reputation, or Validation registry) and a caller-supplied on-chain record, independently read by the caller from the registry contract, agree field-by-field, and separately whether any address-shaped field in the on-chain record is EIP-55 checksum-valid. Zero network calls; this tool never queries a registry contract itself, so it makes no claim about the current on-chain state, only that the two supplied records are consistent with each other at the time supplied. Generic schema only, no per-registry-type adapter code -- the caller supplies both records as arbitrary key-value pairs. agent_id is compared as an opaque literal string throughout: never parsed as a number, never resolved against an Agent Card or A2A endpoint, never cached, and never cross-referenced against another registry. Two independently reported findings, never fused into one boolean.",
  "input_schema_ref": "chaingraph/art-604-erc8004-registry-entry-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:1da61365399f5cf6ccd435e837f00981a4c6f9ebd9264d0d0641bda3f38091bc",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JZlQ8BOYlVo8nDePAIktCFmHLPYjRdzK04jGeDiQg3QEymdyv9DBRdpoWbutO000lmn+mY3g1cqNH+syaqdhmC5YGSE1aE4ywxdB4yOVqF5sW/7uLmKZiwbgcNABXh5LE91FJBi5T6RZwNxwjn68O/r3Q0xFgCbrdLJVNd6hMKcOTiDAd09WKuegQrUboRhDKubep4lmeRsHqeGWgQK5KQ4+uEDw+EGqai2Str428NVk9On3SlO1wHhvK4+UfW2MGW09ueMJky5MmmHzTIo0s4ggStOtN8kFUHgxtNXRFr4O9/cJfVFaoF1TAk2lEwjzx+ZMmq1lWUnwiFgq1yKdfA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:1da61365399f5cf6ccd435e837f00981a4c6f9ebd9264d0d0641bda3f38091bc",
      "output": {
        "address_checksum_findings": [
          {
            "checksum_verdict": "VALID",
            "detail": "Mixed-case address matches its EIP-55 checksum encoding.",
            "expected_checksum": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
            "field": "agentAddress",
            "value": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4"
          }
        ],
        "agent_id_handling": "agent_id (any key matching /agent[_-]?id/i) is compared as an opaque literal string only -- never parsed as a number, never resolved against an Agent Card, A2A endpoint, or any other registry, and never cached. This tool makes no identity-resolution claim (ERC8004-VERIFY-1 fence).",
        "chain_id": "1",
        "field_comparison": [
          {
            "claimed": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
            "field": "agentAddress",
            "match": true,
            "onchain": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
            "opaque_identifier": false,
            "present_in_claimed": true,
            "present_in_onchain": true
          },
          {
            "claimed": "agent.example.com",
            "field": "agentDomain",
            "match": true,
            "onchain": "agent.example.com",
            "opaque_identifier": false,
            "present_in_claimed": true,
            "present_in_onchain": true
          },
          {
            "claimed": "42",
            "field": "agentId",
            "match": true,
            "onchain": "42",
            "opaque_identifier": true,
            "present_in_claimed": true,
            "present_in_onchain": true
          }
        ],
        "findings": [
          {
            "check": "entry_field_consistency",
            "detail": "3 field(s) compared, all match between claimed_entry and onchain_record.",
            "verdict": "CONSISTENT"
          },
          {
            "check": "address_checksum_validity",
            "detail": "agentAddress:VALID",
            "verdict": "CONSISTENT"
          }
        ],
        "not_proven": [
          {
            "detail": "The on-chain_record is caller-supplied, not fetched by this tool. It may be stale relative to the registry contract's current state at verification time.",
            "item": "Current on-chain state"
          },
          {
            "detail": "agent_id is compared as an opaque literal only. This tool never resolves it against an Agent Card, A2A endpoint, or any other registry, and performs no cross-registry identity linking.",
            "item": "Agent identity resolution"
          },
          {
            "detail": "A consistent registry entry says nothing about whether the agent behaves honestly, whether reputation feedback is truthful, or whether a validation response is correct.",
            "item": "Agent trustworthiness / reputation validity"
          },
          {
            "detail": "This tool does not audit or attest to the ERC-8004 registry contract's own implementation; it only compares two caller-supplied records.",
            "item": "Registry contract correctness"
          }
        ],
        "overall_determination": "CONSISTENT",
        "registry_address": "0x5FbDB2315678afecb367f032d93F642f64180aa",
        "registry_type": "identity",
        "scope_note": "Checks whether a caller-supplied claimed registry entry and a caller-supplied on-chain record (independently read by the caller from the ERC-8004 registry contract) agree field-by-field, and separately whether any address-shaped field in the on-chain record is EIP-55 checksum-valid. Zero network calls -- this tool never queries a registry contract itself and makes no claim about the CURRENT on-chain state (the supplied on-chain record may be stale by the time it is read), agent trustworthiness, reputation validity, or validation-response correctness. Generic schema only: no per-registry-type or per-deployment adapter code, since the Identity/Reputation/Validation registries' exact field layouts are an external surface this tool does not control."
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-605-merkle-airdrop-proof-verifier",
  "tool_version": "1.0.0",
  "display_name": "Merkle Airdrop-Proof Verifier",
  "mcp_name": "verify_merkle_airdrop_proof",
  "mandate_type": "payment_policy",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-605-merkle-airdrop-proof-verifier.html",
  "description": "Recomputes a Merkle airdrop-claim proof from caller-declared leaf fields (address, uint256 amount, encoding_variant) and a sibling path, OpenZeppelin MerkleProof.verify shape (processProof/_hashPair over chaingraph/kernels/_noble-secp256k1.bundle.mjs's already-vendored keccak256, no new vendoring, no hand-rolled hashing). Leaf derivation follows OpenZeppelin StandardMerkleTree's (address,uint256) convention: encoding_variant selects the double-hash leaf (keccak256(keccak256(abi.encode(address,amount))), the default, second-preimage-resistant) or a single-hash variant some deployed contracts use instead -- never assumed, always a declared param. Sibling-pair hashing is sorted/commutative (OpenZeppelin's default _hashPair, pair_sort:true) or explicit per-step left/right position (pair_sort:false) -- also a declared param, never an assumption. Given an optional claimed_path (a prior run's per-step running hashes), re-verifies and reports the earliest step at which the recompute diverges, instead of only a final match/no-match. This node never reads any chain: it cannot know whether claimed_root is the root actually recorded on-chain, whether the leaf's allocation was already claimed or redeemed, or whether the underlying tree was built correctly from the full allocation list -- it only recomputes hashes from what the caller supplies.",
  "input_schema_ref": "chaingraph/art-605-merkle-airdrop-proof-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:b4ca349f69674d520b252804bfdcfb4e76d917db449c46bfdfa2ac1632ea2763","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-12"}],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EnwShRVRCe+EokZO0qY2LVcVEbroE7yRTJRzYaLSVH8vkHTMuvigICDkBaNa9vtNp+D1DLxvHhLF5S0SX/bsgxQlqSfp2F3qSP6KsLLdodCCY400ejNUVEFl292yHo8vGiQpqKzyHwOCd/8jycj3c1fr5QqPAVuhF+K6S+AoccYQKEO1YS3X65fuMOEnynhOeQrthZUGEM6hR1QBekavcCb26zOIUshCJYgLFJWWjVmnfZU1i7BfjwX0b+kTp90GCGqNPMfTQs4sgNyDf6SwWAQB7WNeJf9f4en1DXjnlEIr7WomnE0R+C1BCvin35UENE5+6KrWhDXV3sk4eZmyPg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b4ca349f69674d520b252804bfdcfb4e76d917db449c46bfdfa2ac1632ea2763",
      "output": {
        "computed_root": "0xb38ec842db1cd54e5e5ce48491f1a404551e9726ebda349d0478e189e0996dd4",
        "encoding_variant_used": "double-hash",
        "first_divergent_step": null,
        "leaf": "0xb38ec842db1cd54e5e5ce48491f1a404551e9726ebda349d0478e189e0996dd4",
        "note": "Pure hash recomputation over caller-declared leaf fields and sibling path -- OpenZeppelin MerkleProof.verify shape (leaf, then _hashPair per proof step, compared to claimed_root). This kernel does NOT know whether claimed_root is the root actually recorded on any chain, whether this leaf's airdrop allocation has already been claimed/redeemed, whether the underlying Merkle tree was constructed correctly from the full allocation list, or who controls the address. It only reports whether the supplied leaf + proof recompute to claimed_root, and (when a claimed_path is supplied for re-verification) the earliest step at which the recompute diverges from that claim.",
        "pair_sort_used": true,
        "path": [],
        "path_intact": null,
        "reasons": [],
        "root_matches_claimed": true
      }
    }
  }
},
    {
  "tool_id": "art-606-erc165-interface-id-verifier",
  "tool_version": "1.0.0",
  "display_name": "ERC-165 Interface ID Verifier",
  "mcp_name": "verify_erc165_interface_id",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-606-erc165-interface-id-verifier.html",
  "description": "Recomputes an ERC-165 interfaceId as the XOR of 4-byte function selectors (the first 4 bytes of keccak256 of each canonical Solidity signature) over a caller-declared list of function signatures, using the vendored keccak256 bundle already pinned in this repository. Zero network calls: this tool never queries a live contract's supportsInterface(bytes4) and makes no claim about what any deployed contract actually returns. Compares the recomputed id against an optional claimed_interface_id and flags a match against seven well-known standard ids (ERC-165 itself, ERC-721 core/Metadata/Enumerable, ERC-1155 core/MetadataURI, ERC-2981) purely as a courtesy label, never as verification. Malformed signature entries are excluded from the XOR and reported separately rather than silently dropped. A CONSISTENT match only establishes that the declared function list hashes to that value -- never that the list is complete, correct, or actually implemented anywhere.",
  "input_schema_ref": "chaingraph/art-606-erc165-interface-id-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:4e23a23b5e2ec1ba559f1dc3c84e9e352b8006df0c0049b25a218cf70c88fede",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-12"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "DDt7s7u5DfpVK2yiutiIgEtFFZGvopztSaGwKzaeKXgNAzaxZJltTiEfLnZI5EyXTcOeRSOoKbl6XEIa3uz4lyq81iLv8CnmdhgGFJvtc/5JmfJRimJcjBKBOl12lTknIW4dN/5sPDcuO491r4a3+y1AwRScP8uNjWo3K1rl7wURnpdLphgv0k5KwEzuOcYKILMIltF6uPcl4hWyfELWEgaxuPBBuYAIMwoCo4PQnxWVFW8icH2xTNjZbUMf2kj4JNRPyzytigzfDmGCZ5URcfi20pZTEVleQCI7ukZHIUoMtmmHIfa+cOTHL6paLlJHbFykYj7WL+nNdR4PJ20e7A==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:4e23a23b5e2ec1ba559f1dc3c84e9e352b8006df0c0049b25a218cf70c88fede",
      "output": {
        "claimed_interface_id": "0x80ac58cd",
        "computed_interface_id": "0x80ac58cd",
        "duplicate_signatures": [],
        "findings": [
          {
            "check": "signature_format_validity",
            "detail": "9 function signature(s) parsed and hashed cleanly.",
            "verdict": "CONSISTENT"
          },
          {
            "check": "claimed_id_match",
            "detail": "computed_interface_id matches the claimed value.",
            "verdict": "CONSISTENT"
          }
        ],
        "known_standard_match": "ERC-721 (core)",
        "malformed_signatures": [],
        "not_proven": [
          {
            "detail": "ERC-165 conformance is confirmed by calling supportsInterface(bytes4) on the live contract and checking it returns true. This tool never makes that call -- it only recomputes the id definition offline from a declared function list.",
            "item": "On-chain supportsInterface() response"
          },
          {
            "detail": "function_signatures is caller-supplied. Omitting or adding a function changes the XOR result; this tool cannot know whether the declared list matches any real interface definition unless the result happens to match a known_standard_match entry.",
            "item": "Function list completeness"
          },
          {
            "detail": "A computed interfaceId says nothing about whether a contract genuinely implements the corresponding functions correctly -- only that the declared signature strings hash to this value.",
            "item": "Actual contract implementation"
          }
        ],
        "overall_determination": "CONSISTENT",
        "scope_note": "Recomputes the ERC-165 interfaceId as the XOR of 4-byte function selectors (first 4 bytes of keccak256 of the canonical signature) over a caller-declared list of function signatures. Zero network calls -- this tool never queries a live contract's supportsInterface(bytes4). A CONSISTENT match against a claimed_interface_id only means the declared function list hashes to that value; it says nothing about whether any deployed contract actually implements those functions or returns true from supportsInterface() for this id.",
        "selectors": [
          {
            "canonical_signature": "balanceOf(address)",
            "selector": "0x70a08231",
            "signature": "balanceOf(address)"
          },
          {
            "canonical_signature": "ownerOf(uint256)",
            "selector": "0x6352211e",
            "signature": "ownerOf(uint256)"
          },
          {
            "canonical_signature": "safeTransferFrom(address,address,uint256,bytes)",
            "selector": "0xb88d4fde",
            "signature": "safeTransferFrom(address,address,uint256,bytes)"
          },
          {
            "canonical_signature": "safeTransferFrom(address,address,uint256)",
            "selector": "0x42842e0e",
            "signature": "safeTransferFrom(address,address,uint256)"
          },
          {
            "canonical_signature": "transferFrom(address,address,uint256)",
            "selector": "0x23b872dd",
            "signature": "transferFrom(address,address,uint256)"
          },
          {
            "canonical_signature": "approve(address,uint256)",
            "selector": "0x095ea7b3",
            "signature": "approve(address,uint256)"
          },
          {
            "canonical_signature": "setApprovalForAll(address,bool)",
            "selector": "0xa22cb465",
            "signature": "setApprovalForAll(address,bool)"
          },
          {
            "canonical_signature": "getApproved(uint256)",
            "selector": "0x081812fc",
            "signature": "getApproved(uint256)"
          },
          {
            "canonical_signature": "isApprovedForAll(address,address)",
            "selector": "0xe985e9c5",
            "signature": "isApprovedForAll(address,address)"
          }
        ]
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-607-erc1967-proxy-slot-classifier",
  "tool_version": "1.0.0",
  "display_name": "ERC-1967 Proxy Slot Classifier",
  "mcp_name": "classify_erc1967_proxy_slot",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-607-erc1967-proxy-slot-classifier.html",
  "description": "Recomputes the four canonical EIP-1967 storage slots (bytes32(uint256(keccak256(label)) - 1) for the implementation, admin, beacon, and rollback labels) fresh on every call using the vendored keccak256 bundle already pinned in this repository, then classifies a caller-supplied (declared_slot, storage_value) pair: which of the four roles declared_slot matches, if any, and whether storage_value looks like the zero-padded 20-byte address EIP-1967 expects at that slot (extracting and EIP-55 checksumming the embedded address when it does). Zero network calls: this tool never reads live chain state -- declared_slot and storage_value are both caller-supplied, read by the caller from their own eth_getStorageAt call or a block explorer, and may already be stale by the time they are pasted in. Address/slot-level fact only: renders no upgrade-safety, admin-trustworthiness, or implementation-safety judgment, and a non-standard declared_slot does not itself prove a contract is not a proxy.",
  "input_schema_ref": "chaingraph/art-607-erc1967-proxy-slot-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_proof_ready": "ready",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ba2594899100c01f60407bceb4cf910240b5fd70113d1cd91236d1b0bfa1c896",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ar5/GyvqDhu8JhED2Rw/GqyMjwe9iopUDYojXgTFTXohrbAM6aaX8uZUerqWoU09JIyYRkAHkOPR9JdG59/4lA47kmUfGSwbZaYrk/Vx2uKnPmmIdb0N9v2n93Q5uSOwF1BwLlGa3Nw9Sf/QG88Nmx7XO1F2QrFO6BnMuYsggasIq6JvoQaAi2vftgdfD7CFi/XH/8ImT0jLkkn3ISQ06Sim1IztdLo2KlxqH6nFv1uLrANwy00PK0spGWR3kmH5A/FP1wEifQN6I0XmH/aRwEYJf9V+Hh3D+VI/8AnutQ0bzJ3qTGHgjh4q8gu0A2CEfgnhJRT/VEg0g3P9P8sOiw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ba2594899100c01f60407bceb4cf910240b5fd70113d1cd91236d1b0bfa1c896",
      "output": {
        "classification_summary": "EIP-1967 \"implementation\" slot, holding address 0x5B38Da6a701c568545dCfcB03FcB875f56beddC4.",
        "declared_slot": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
        "embedded_address": "0x5b38da6a701c568545dcfcb03fcb875f56beddc4",
        "embedded_address_checksummed": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
        "findings": [
          {
            "check": "slot_classification",
            "detail": "declared_slot matches the canonical EIP-1967 \"implementation\" slot.",
            "verdict": "CONSISTENT"
          },
          {
            "check": "storage_value_shape",
            "detail": "storage_value is a zero-padded 20-byte address, as EIP-1967 mandates for this slot family.",
            "verdict": "CONSISTENT"
          }
        ],
        "known_eip1967_slots": {
          "admin": "0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103",
          "beacon": "0xa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50",
          "implementation": "0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc",
          "rollback": "0x4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd9143"
        },
        "matched_role": "implementation",
        "not_proven": [
          {
            "detail": "declared_slot and storage_value are both caller-supplied, read by the caller from their own eth_getStorageAt call or a block explorer. This tool never fetches them and cannot confirm they are current.",
            "item": "Current on-chain storage"
          },
          {
            "detail": "A recognized slot with an address-shaped value says nothing about whether that implementation, admin, or beacon address is safe, audited, or behaves correctly.",
            "item": "Upgrade safety"
          },
          {
            "detail": "A non-standard (unrecognized) declared_slot does not prove the contract is not a proxy -- only that this particular slot is not one of the four canonical EIP-1967 slots. Some proxies use EIP-1967 for one role and a custom slot for another.",
            "item": "Proxy pattern correctness"
          }
        ],
        "overall_determination": "CONSISTENT",
        "scope_note": "Recomputes the four canonical EIP-1967 storage slots (bytes32(uint256(keccak256(label)) - 1)) fresh on every call, then classifies a caller-supplied (declared_slot, storage_value) pair: which role declared_slot matches, if any, and whether storage_value looks like the zero-padded 20-byte address EIP-1967 expects. Zero network calls -- this tool never reads live chain state. Address/slot-level fact only: it renders no upgrade-safety, admin-trustworthiness, or implementation-safety judgment.",
        "storage_value": "0x0000000000000000000000005b38da6a701c568545dcfcb03fcb875f56beddc4"
      }
    }
  },
  "export_capability": [
    "json"
  ]
},
    {
  "tool_id": "art-608-erc2981-royalty-calculator",
  "tool_version": "1.0.0",
  "display_name": "ERC-2981 Royalty Calculator",
  "mcp_name": "calculate_erc2981_royalty",
  "mandate_type": "payment_policy",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-608-erc2981-royalty-calculator.html",
  "description": "Recomputes an ERC-2981 royalty amount as floor(sale_price * royalty_fraction_bps / 10000) -- the same integer-division convention the OpenZeppelin reference ERC2981 implementation uses -- from a caller-declared sale_price and royalty_fraction_bps, using BigInt arithmetic throughout so a sale_price beyond Number.MAX_SAFE_INTEGER never loses precision. Flags a bps value above 10000 (100%) as out of range (the value the reference implementation reverts on) while still reporting the raw recompute, and compares against an optional claimed_royalty_amount. Zero network calls: this tool never queries a contract's actual royaltyInfo() return value -- sale_price, royalty_fraction_bps, and receiver are all caller-declared. Cross-links 528-nft-metadata-validator and 521-cant-be-evil-nft-license-picker for adjacent NFT-standard surfaces (metadata shape, license terms) this tool does not cover. ERC-2981 royalty payment is a voluntary off-chain convention: this tool makes no claim that any marketplace will actually pay the computed amount.",
  "input_schema_ref": "chaingraph/art-608-erc2981-royalty-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:c573de67d9322a020f559748f9321e33213cedf75800b73729610cbe6cec2a94","valid_from":"2026-08-11"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-12"}],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IYBbgj+BwVEy5j9vR5Lg0aKmSAgidbGrKbr6NPw4FisgHi0f1Y1ZeTPsP/mOycJhYiDVhLCyEfTJZdlvo07sMRfmBl//LV8GK6L4dJILOERSySKXBTLkNdB+VW/dr3tsIXoLzt0nw9kCxAJ1cJdEhe65M6lg/DceA2aOgnKZ/QogCnyD+ZLsNa0zdbgg0GvN2qEt9gT8ty/D290dQZOiMiKgifhXpRwBYrg4udVVAuzqPMvZbmNu8k7B0L0Xzf8ICVAzIT5VSTc9znveZWxZU1hWjRJYR0lDZo7QK/PGx0MR/hqU1RZB76+YRL60AY9Fpyf5Sl46ZYZ3kyoJ+QBzrw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c573de67d9322a020f559748f9321e33213cedf75800b73729610cbe6cec2a94",
      "output": {
        "claimed_royalty_amount": null,
        "computed_royalty_amount": null,
        "effective_royalty_pct": null,
        "findings": [
          {
            "check": "input_validation",
            "detail": "sale_price is required; royalty_fraction_bps is required",
            "verdict": "INDETERMINATE"
          }
        ],
        "not_proven": [
          {
            "detail": "This tool never calls a contract's royaltyInfo(tokenId, salePrice). sale_price and royalty_fraction_bps are caller-declared, not read from chain state.",
            "item": "On-chain royaltyInfo() response"
          },
          {
            "detail": "ERC-2981 is a voluntary signalling standard. A computed royalty amount is what the formula yields, not a guarantee any marketplace will pay it.",
            "item": "Marketplace enforcement"
          },
          {
            "detail": "Many ERC-2981 implementations allow a per-token royalty that overrides a contract default. This tool has no way to know which one governs a given tokenId -- royalty_fraction_bps is exactly what the caller declares.",
            "item": "Per-token royalty override correctness"
          }
        ],
        "overall_determination": "INDETERMINATE",
        "receiver": null,
        "related_tools": [
          {
            "relation": "Validates the token metadata JSON this royalty figure would accompany.",
            "tool_id": "528-nft-metadata-validator"
          },
          {
            "relation": "Picks the license terms a royalty-bearing NFT is minted under.",
            "tool_id": "521-cant-be-evil-nft-license-picker"
          }
        ],
        "royalty_fraction_bps": null,
        "sale_price": null,
        "scope_note": "Recomputes an ERC-2981 royalty amount as floor(sale_price * royalty_fraction_bps / 10000), the same integer-division convention the OpenZeppelin reference ERC2981 implementation uses. Zero network calls -- this tool never queries a contract's actual royaltyInfo() return value; sale_price, royalty_fraction_bps, and receiver are all caller-declared. ERC-2981 royalty payment is a voluntary off-chain convention: most marketplaces are not required to honor it, and this tool makes no claim that any marketplace will actually pay the computed amount."
      }
    }
  }
},
    {
  "tool_id": "art-609-jwks-pinned-directory-check",
  "tool_version": "1.0.0",
  "display_name": "JWKS Pinned-Directory Check",
  "mcp_name": "check_jwks_pinned_directory",
  "mandate_type": "compliance_control",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-609-jwks-pinned-directory-check.html",
  "description": "Confirm a caller-supplied JWKS directory document matches a caller-pinned SHA-256 digest (sha256(canonicalize(directory_jwks)) === pinned_digest) before art-130 trusts its shape. Zero network, zero key hosting -- both the document and the digest are caller-supplied. Chains before art-130 in visa-tap-agent-verification.",
  "input_schema_ref": "chaingraph/art-609-jwks-pinned-directory-check.html#manifest",
  "consumes": [
    "art-129-webbotauth-signature-verifier"
  ],
  "feeds": [
    "art-130-signature-directory-validator"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:c2d3b27062a33c356a19c8e65db737fe59d34ad93c8ed44ecde8e960cd22813b",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-13"
    }
  ],
  "export_capability": [
    "json",
    "vc"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FB7tUjzWHtJSLORF4DH6eae4ruIGtcLmU3JfhDeTB6ANvhikkTgJUYfFd4bEr1q+NmBgh8ecc2FLC63UFritsg8AasvzzOzi8nCNlUa9Jl3eYWM9t3y/j3F+qMyUJskHDQUmnrzKEZjBWz7N05rdYKG6vmuKWU+nk23ZaekL0sUcj3/GSjkGARsNGi5FGQHOaRbsnnf/VeRlEqEiOogfIwnvJ2ziIKLYU44XMaUgxfzxyY+Z4QT3Kmx5AyIKVp6oJOvlcZpHr0R37cR9N3YqCVvyg5sW6m3dEvWt19704aUhT6BkZ9ibSTWveXJWCHWymgV/P+HNTyZ5edx1shAU+g==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:c2d3b27062a33c356a19c8e65db737fe59d34ad93c8ed44ecde8e960cd22813b",
      "output": {
        "computed_digest": "45d28be3698cb02c2a658ecb15c292076254ca24cd797bc75a39dacd244a028d",
        "digest_match": true,
        "key_count": 1,
        "pinned_digest": "45d28be3698cb02c2a658ecb15c292076254ca24cd797bc75a39dacd244a028d",
        "pinned_digest_well_formed": true
      }
    }
  }
},
    {
  "tool_id": "art-610-erc4626-vault-share-math",
  "tool_version": "1.0.0",
  "display_name": "ERC-4626 Vault Share Math",
  "mcp_name": "recompute_erc4626_vault_share_math",
  "mandate_type": "payment_policy",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-610-erc4626-vault-share-math.html",
  "description": "Recomputes ERC-4626 tokenized-vault share and asset conversions from caller-declared vault state (total_assets, total_supply, optional virtual-amounts offset), applying the rounding direction the standard mandates for each function and reporting which direction produced each result alongside what the opposite direction would have produced. ERC-4626 (Final, Created 2021-12-22, CC0-1.0) fixes those directions per function: convertToShares and convertToAssets round down towards 0, previewDeposit returns no more than the shares a deposit would mint and previewRedeem no more than the assets a redeem would withdraw (both round down), while previewMint returns no fewer than the assets a mint would deposit and previewWithdraw no fewer than the shares a withdraw would burn (both round up). Getting one direction backwards is how a vault leaks value, so each is checked separately. Also computes a deposit-then-redeem round-trip loss bound against the post-deposit state, a signed exchange-rate drift between two declared snapshots, and a declared fee application. All arithmetic is exact uint256 integer math with no floating point. This node never reads any chain: it cannot know whether the declared totals match a deployed vault, whether that vault applies these directions, or whether a rate change came from yield, loss, a donation, or an attack.",
  "input_schema_ref": "chaingraph/art-610-erc4626-vault-share-math.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:b112b2136dc497e69f632232e47a9a70fa63d7dbc3d67c313cf89edb1fb97f33","valid_from":"2026-08-11"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-12"}],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "FnJqQnhZy76bVkvzmYiAACydxrN9RUYhxw4zNJzhhr4pLI6hDUPeNwI51Ya5ECyPpssBNECQOmye6BM6Xxi9qAiTiV6bBUfMBAhoX5euqwU2XM6nITpS0SOw9o0U2ujQEj3AXKbZ+UiQMQRMN87cjvULIv97Ly8fWTgnkQyrIKYpYueTxBJwRPsuuSrS8pHxBqVbCOrADHxqZ+Z1AKCnmQ1zfNmdsYlaDaEZ2+aFjqJWexI8GJICt9R0mD/AW5v+Dk3zbGIqOCA+KagVeSnjEfn3NSnO9qCOct/6K/1bXAEbhfZX+E7EJpImENeBypDJt77vujBKYhSKRiHIGmT2Xw==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:b112b2136dc497e69f632232e47a9a70fa63d7dbc3d67c313cf89edb1fb97f33",
      "output": {
        "conversions": [
          {
            "eip_rule": "MUST round down towards 0",
            "input": "1000",
            "op": "convertToShares",
            "output": "333",
            "output_if_rounded_other_way": "334",
            "rounding_changes_result": true,
            "rounding_direction": "down",
            "side": "assets_to_shares"
          },
          {
            "eip_rule": "MUST round down towards 0",
            "input": "1000",
            "op": "convertToAssets",
            "output": "3003",
            "output_if_rounded_other_way": "3004",
            "rounding_changes_result": true,
            "rounding_direction": "down",
            "side": "shares_to_assets"
          },
          {
            "eip_rule": "MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit call",
            "input": "1000",
            "op": "previewDeposit",
            "output": "333",
            "output_if_rounded_other_way": "334",
            "rounding_changes_result": true,
            "rounding_direction": "down",
            "side": "assets_to_shares"
          },
          {
            "eip_rule": "MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call",
            "input": "1000",
            "op": "previewMint",
            "output": "3004",
            "output_if_rounded_other_way": "3003",
            "rounding_changes_result": true,
            "rounding_direction": "up",
            "side": "shares_to_assets"
          },
          {
            "eip_rule": "MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw call",
            "input": "1000",
            "op": "previewWithdraw",
            "output": "334",
            "output_if_rounded_other_way": "333",
            "rounding_changes_result": true,
            "rounding_direction": "up",
            "side": "assets_to_shares"
          },
          {
            "eip_rule": "MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call",
            "input": "1000",
            "op": "previewRedeem",
            "output": "3003",
            "output_if_rounded_other_way": "3004",
            "rounding_changes_result": true,
            "rounding_direction": "down",
            "side": "shares_to_assets"
          }
        ],
        "declared_context": {
          "chain_id": "1",
          "network_label": "declared label, not a selector"
        },
        "fee": null,
        "note": "Recomputes ERC-4626 share/asset conversions from caller-declared vault state, applying the per-function rounding directions ERC-4626 mandates (convertToShares/convertToAssets/previewDeposit/previewRedeem round down; previewMint/previewWithdraw round up) and reporting the direction used for each. This kernel does NOT read any chain: it cannot know whether the declared total_assets/total_supply match any deployed vault, whether that vault's own implementation actually applies these directions, whether a rate change between two declared snapshots came from yield, loss, donation or an attack, or whether the declared fee basis points are the fee a vault really charges. Round-trip loss and zero-share-mint findings are properties of the declared numbers under the standard's arithmetic, not an audit of any deployment.",
        "rate_drift": null,
        "reasons": [],
        "round_trip": null,
        "rounding_table": [
          {
            "direction": "down",
            "eip_rule": "MUST round down towards 0",
            "op": "convertToAssets"
          },
          {
            "direction": "down",
            "eip_rule": "MUST round down towards 0",
            "op": "convertToShares"
          },
          {
            "direction": "down",
            "eip_rule": "MUST return as close to and no more than the exact amount of Vault shares that would be minted in a deposit call",
            "op": "previewDeposit"
          },
          {
            "direction": "up",
            "eip_rule": "MUST return as close to and no fewer than the exact amount of assets that would be deposited in a mint call",
            "op": "previewMint"
          },
          {
            "direction": "down",
            "eip_rule": "MUST return as close to and no more than the exact amount of assets that would be withdrawn in a redeem call",
            "op": "previewRedeem"
          },
          {
            "direction": "up",
            "eip_rule": "MUST return as close to and no fewer than the exact amount of Vault shares that would be burned in a withdraw call",
            "op": "previewWithdraw"
          }
        ],
        "vault_state": {
          "decimals_offset_used": "0",
          "total_assets": "1000000000000000000000",
          "total_supply": "333000000000000000000",
          "virtual_amounts_used": true,
          "virtual_assets": "1",
          "virtual_shares": "1"
        }
      }
    }
  }
},
    {
  "tool_id": "art-611-erc7540-async-vault-request-accounting",
  "tool_version": "1.0.0",
  "display_name": "ERC-7540 Async-Vault Request Accounting",
  "mcp_name": "recompute_erc7540_request_accounting",
  "mandate_type": "payment_policy",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-611-erc7540-async-vault-request-accounting.html",
  "description": "Recomputes ERC-7540 asynchronous-vault request accounting from caller-declared request state. ERC-7540 (Final, Created 2023-10-18, CC0-1.0) extends ERC-4626 with a three-state request lifecycle used by institutional and real-world-asset funds that cannot settle a deposit or redemption in the same transaction: an amount is Pending after a request, becomes Claimable when the vault fulfils it, and is Claimed when the holder finally calls deposit, mint, withdraw or redeem. This node applies a sequence of claims against the claimable buckets at the pro-rata rate they were made claimable at, tracks the pending, claimable and claimed split for both legs, reports the rounding residue a sequence of partial claims strands, and checks the standard's own invariants by name: pending and claimable are disjoint views, a claim never short-circuits the Claim state, a claim never exceeds what is claimable, and a request with a non-zero requestId stays at a single pro-rata rate. ERC-7540 mandates no rounding direction for a partial claim, unlike ERC-4626 which fixes one per function, so the direction here is a declared parameter and the result of the opposite direction is reported beside it rather than a direction being presented as required. All arithmetic is exact uint256 integer math with no floating point. This node never reads any chain: it cannot know whether the declared amounts match a deployed vault, when or whether a pending request will be fulfilled, whether the controller is authorised, or whether a claim transaction would succeed.",
  "input_schema_ref": "chaingraph/art-611-erc7540-async-vault-request-accounting.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:5cd9dd6c701f8631291807f556d9b14f7f65bf9ccbacc31d2d089ef3a65c0541","valid_from":"2026-08-11"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-08-12"}],
  "export_capability": [
    "json"
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "Ee6ozLbFNY1+SzqZtuwnyKdak2RGTgIfdMmqWLftm80L1iQaUNX11aH6WtTKnJ1ZHxtqLi+lnKHTrfiiXITjuCWheIZaL5qg2jlfiA7JcGncdk8iiwEyNolYE+ens2jACNdpiIle7F0i0kkEGZvM7hqKzozgzc4qSI6cundhEckKGMV3gz+2s8SJrFgvUEhQibk+OxnE3TAz5JoFYUWPqx3kglJwm8/w6AVJeODYjZkz8Qwr2JHn7tYoGHf8+0SQLw+Qz1Ots01XZ4can2Mmp7lezADn8hsAQbRS0EexJpcKDn+sUh3PoxG6E5qC7qQkMS4Qx11wYVTnSCwxYLJONg==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5cd9dd6c701f8631291807f556d9b14f7f65bf9ccbacc31d2d089ef3a65c0541",
      "output": {
        "aggregate_by_controller": true,
        "claim_rounding_used": "down",
        "claims": [
          {
            "amount": "300",
            "consumed_requested": "300",
            "index": 0,
            "leg": "deposit",
            "opening_rate_scaled": "333000000000000000",
            "rate_scale": "1000000000000000000",
            "received": "99",
            "received_if_rounded_other_way": "100",
            "rejected": false,
            "rejection_reason": null,
            "rounding_changes_result": true,
            "rounding_direction": "down",
            "settled_rate_scaled": "330000000000000000",
            "unit": "requested"
          },
          {
            "amount": "700",
            "consumed_requested": "700",
            "index": 1,
            "leg": "deposit",
            "opening_rate_scaled": "333000000000000000",
            "rate_scale": "1000000000000000000",
            "received": "233",
            "received_if_rounded_other_way": "234",
            "rejected": false,
            "rejection_reason": null,
            "rounding_changes_result": true,
            "rounding_direction": "down",
            "settled_rate_scaled": "332857142857142857",
            "unit": "requested"
          }
        ],
        "closing": {
          "deposit": {
            "claimable_assets": "0",
            "claimable_shares": "1",
            "claimed_assets": "1000",
            "claimed_shares": "332",
            "pending_assets": "500"
          },
          "redeem": {
            "claimable_assets": "0",
            "claimable_shares": "0",
            "claimed_assets": "0",
            "claimed_shares": "0",
            "pending_shares": "0"
          }
        },
        "declared_context": {
          "chain_id": null,
          "network_label": null
        },
        "dust": {
          "deposit_assets_stranded": "0",
          "deposit_shares_stranded": "1",
          "note": "A stranded amount is one side of a claimable bucket left non-zero after the other side reached zero, so no further claim against it can be computed at the bucket's rate.",
          "redeem_assets_stranded": "0",
          "redeem_shares_stranded": "0"
        },
        "invariants": [
          {
            "detail": "Structural: this kernel models pending and claimable as separate buckets and never moves an amount between them, so the two views can never double-count. A claim only ever draws from the claimable bucket.",
            "holds": true,
            "name": "pending_and_claimable_disjoint",
            "source": "ERC-7540: pendingDepositRequest/claimableDepositRequest (and the redeem pair) each exclude the other state's amount."
          },
          {
            "detail": "Every claim drew only from an amount already in the Claimable state.",
            "holds": true,
            "name": "claim_never_skips_claimable_state",
            "source": "ERC-7540: \"Requests MUST NOT skip or otherwise short-circuit the Claim state.\""
          },
          {
            "detail": "No claim exceeded its leg's remaining claimable amount.",
            "holds": true,
            "name": "claim_within_claimable_bounds",
            "source": "ERC-7540 max* views track the claimable amount (the standard notes maxDeposit moves in sync with claimableDepositRequest)."
          },
          {
            "applicable": false,
            "detail": "Not applicable: request_id is 0, the aggregate-by-controller convention, where amounts from separate requests are fungible and no single per-request rate is asserted.",
            "holds": true,
            "name": "single_prorata_rate_for_nonzero_request_id",
            "source": "ERC-7540: \"If a Request with requestId != 0 becomes partially claimable, all requests of the same requestId MUST become claimable at the same pro-rata rate.\""
          },
          {
            "detail": "Direction \"down\" was supplied by the caller, not derived from the standard. Each claim reports what the opposite direction would have produced.",
            "holds": true,
            "name": "partial_claim_rounding_direction_is_declared_not_mandated",
            "source": "ERC-7540 states no rounding direction for a partial claim. ERC-4626 fixes a direction per function; ERC-7540 does not extend that to claims."
          }
        ],
        "note": "Recomputes ERC-7540 asynchronous-vault request accounting from caller-declared request state: applies a sequence of claims against the claimable buckets at the implied pro-rata rate, tracks the pending/claimable/claimed split, and checks the standard's stated invariants (pending and claimable are disjoint views; a claim never skips the Claim state; a non-zero requestId stays at one pro-rata rate). ERC-7540 mandates NO rounding direction for a partial claim, so the direction here is a declared parameter and the result of the opposite direction is reported alongside it. This kernel does NOT read any chain: it cannot know whether the declared amounts match any deployed vault, when or whether a pending request will be fulfilled (the standard leaves that timing unspecified), whether the controller is authorised, or whether a claim transaction would succeed.",
        "opening": {
          "deposit": {
            "claimable_assets": "1000",
            "claimable_shares": "333",
            "max_deposit_implied": "1000",
            "max_mint_implied": "333",
            "pending_assets": "500"
          },
          "redeem": {
            "claimable_assets": "0",
            "claimable_shares": "0",
            "max_redeem_implied": "0",
            "max_withdraw_implied": "0",
            "pending_shares": "0"
          }
        },
        "reasons": [],
        "request_id": "0"
      }
    }
  }
},
    {
  "tool_id": "art-613-erc4337-userop-math",
  "tool_version": "1.0.0",
  "display_name": "ERC-4337 UserOperation Math",
  "mcp_name": "recompute_erc4337_userop_math",
  "mandate_type": "payment_policy",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-613-erc4337-userop-math.html",
  "description": "Recomputes the ERC-4337 account-abstraction userOpHash from a caller-supplied UserOperation, computes the EntryPoint's required prefund from caller-supplied gas limits, and reconciles a declared paymaster charge against a charge recomputed from declared inputs. The EntryPoint version is a mandatory declared parameter and is never inferred: v0.6 hashes a 10-word UserOperation pack while v0.7 hashes an 8-word PackedUserOperation in which verificationGasLimit and callGasLimit pack into accountGasLimits and maxPriorityFeePerGas and maxFeePerGas pack into gasFees, so guessing the version would silently produce a wrong hash. The two versions also differ in the prefund formula: v0.6 multiplies verificationGasLimit by three when a paymaster is present, because that same limit also caps postOp, while v0.7 instead adds the paymaster's own verification and postOp gas limits, parsed from the fixed offsets inside paymasterAndData. Both are supported and an unrecognised version is refused rather than approximated. L1 data and blob fees are never derived: after EIP-4844 they depend on the inclusion-time L1 basefee and blob basefee, which are not derivable offline, so an L1 data fee enters reconciliation only when the caller declares it and its absence is reported as a named gap rather than absorbed into a residual. block.basefee is likewise never fetched, so when the two fee caps differ the effective gas price is reported as null with the reason unless a basefee is declared; when the caps are equal the EntryPoint's own legacy shortcut makes the price derivable with no basefee at all. keccak256 comes from the already-vendored, pinned noble-hashes bundle, copied byte-identically from the sibling x402 digest node, and the ABI encoding scheme is implemented directly as public-spec arithmetic on top of it. Zero network calls and zero chain reads: deposits, stakes, nonce-sequence validity and prior spend are never consulted, and every field is caller-declared and echoed back. This node recomputes and reconciles; it makes no claim that any operation was settled, accepted, included, or final, and no claim about signature validity, since the ERC-4337 spec excludes the signature from the hashed struct. Golden vectors are cross-checked against an independent from-spec Keccak-256 and ABI encoder, itself anchored on externally published Keccak-256 constants, not round-trip self-tests alone.",
  "input_schema_ref": "chaingraph/art-613-erc4337-userop-math.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:5590e940c1c036d108e0bfb8662b88bdfec6c275cc55843ac2a9f14cd0c78ba9",
      "valid_from": "2026-08-13"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-14"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EkUFKQ7Zelu/tv9T4LnWTWO9ogmfRe8tiIoKzjSIY0sihjZAtWEaU9Vc7kCq9cPXkFGZ46+JXt0dLe2OC97nWiFgJus7viYehYp+Tx74mte4kwwm2aSdPqpEm8QazSU+Hqyy+cd5n7vG8isnemK9z3f/WBt9hmjp3RBhLYZT0xMn9aVpShfA15qCYishSafo72Fhaa0HIr+IuKK8M0NdmgSi2cdUV8ib2BJQKlmTqDu3JdHPpt9HFSmq36H9w6wrI/xYsD0aFtEpxrxya6QKOmYRWPpJ2d8/k/rieedxHjEKcmGg8UlI1VqL4nOGO8t+h0D41yOCqD7+YkrgmneWMQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:5590e940c1c036d108e0bfb8662b88bdfec6c275cc55843ac2a9f14cd0c78ba9",
      "output": {
        "chain_id": "1",
        "entry_point": {
          "address": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
          "address_matches_canonical": true,
          "canonical_address_for_declared_version": "0x5ff137d4b0fdcd49dca30c7cf57e578a026d2789",
          "declared_version": "0.6"
        },
        "field_hashes": {
          "call_data_hash": "0x8f54361c53196a7fbccb94b6951e30560cd56ed2372519e43070080b38f6f453",
          "init_code_hash": "0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
          "paymaster_and_data_hash": "0x36d2122e1bfd3419690d0aeaf5131561065b8fe2c4eb07bad7c36e924076362d"
        },
        "gas_accounting": {
          "declared_base_fee_per_gas": null,
          "effective_gas_price_basis": "requires_declared_base_fee -- the fee caps differ, so the price depends on block.basefee, which this kernel never fetches. Supply declaredBaseFeePerGas.",
          "effective_gas_price_wei": null,
          "entry_point_version": "0.6",
          "paymaster_address": "0x1234567890abcdef1234567890abcdef12345678",
          "paymaster_fields_note": null,
          "paymaster_multiplier_applied": "3",
          "paymaster_post_op_gas_limit": null,
          "paymaster_present": true,
          "paymaster_verification_gas_limit": null,
          "prefund_formula": "v0.6: (callGasLimit + verificationGasLimit * paymasterMultiplier + preVerificationGas) * maxFeePerGas",
          "required_gas": "571000",
          "required_prefund_wei": "1142000000000000"
        },
        "never_fetched": [
          "L1 data fee / blob fee: never derived. Post-EIP-4844 it depends on the inclusion-time L1 basefee and blob basefee, neither of which is offline-derivable. Supply declaredL1DataFeeWei to include it in reconciliation.",
          "block.basefee: never fetched. Supply declaredBaseFeePerGas to derive an effective gas price when maxFeePerGas and maxPriorityFeePerGas differ.",
          "EntryPoint contract state: never read. Deposits, stakes, nonce-sequence validity, and prior spend are not consulted.",
          "Chain state of any kind: no RPC, no indexer, no receipt lookup. actualGasUsed and actualGasCost are reconciled only as caller-declared values."
        ],
        "packed_user_op_hash": "0x25d4eeb27d24d9b4899bb7a22ea8dddeca31d86ce7c8e916b63623dedc0329f1",
        "packed_words": {
          "account_gas_limits": null,
          "gas_fees": null,
          "layout": "v0.6 UserOperation -- abi.encode(address sender, uint256 nonce, bytes32 keccak(initCode), bytes32 keccak(callData), uint256 callGasLimit, uint256 verificationGasLimit, uint256 preVerificationGas, uint256 maxFeePerGas, uint256 maxPriorityFeePerGas, bytes32 keccak(paymasterAndData))",
          "word_count": 10
        },
        "paymaster_reconciliation": {
          "declared_actual_gas_cost_wei": null,
          "declared_actual_gas_used": null,
          "declared_l1_data_fee_wei": null,
          "missing_declared_inputs": [
            "declaredActualGasUsed",
            "declaredActualGasCostWei",
            "an effective gas price (supply declaredBaseFeePerGas)"
          ],
          "notes": [
            "Reconciliation was not attempted because the inputs above were not declared. This kernel never substitutes a fetched or assumed value for a missing declared one."
          ],
          "recomputed_execution_cost_wei": null,
          "recomputed_total_charge_wei": null,
          "residual_wei": null,
          "status": "NOT_ATTEMPTED",
          "tolerance_wei": "0"
        },
        "reasons": [],
        "scope_note": "Recomputes the ERC-4337 userOpHash from a caller-supplied UserOperation under a DECLARED EntryPoint version (v0.6 or v0.7), computes the required prefund from caller-supplied gas limits, and reconciles a declared paymaster charge against a charge recomputed from declared inputs. Zero network calls and zero chain reads: every field is caller-declared and echoed back, never independently resolved. L1 data and blob fees are NEVER derived -- post-EIP-4844 they depend on the inclusion-time L1 basefee, which is not offline-derivable, so they participate only when the caller declares them and their absence is reported as a named gap. block.basefee is likewise never fetched: absent a declared value the effective gas price is reported as null with the reason. This node recomputes and reconciles; it makes no claim that any operation was settled, accepted, included, or final, and no claim about signature validity (the signature field is excluded from the hashed struct by the ERC-4337 spec itself).",
        "user_op": {
          "call_data": "0xb61d27f60000000000000000000000005ff137d4b0fdcd49dca30c7cf57e578a026d2789",
          "call_gas_limit": "100000",
          "init_code": "0x",
          "max_fee_per_gas": "2000000000",
          "max_priority_fee_per_gas": "1000000000",
          "nonce": "0",
          "paymaster_and_data": "0x1234567890abcdef1234567890abcdef12345678000000000000000000000000000138800000000000000000000000000000c350deadbeef",
          "pre_verification_gas": "21000",
          "sender": "0x2a1530c4c41db0b0b2bb646cb5eb1a67b7158667",
          "verification_gas_limit": "150000"
        },
        "user_op_hash": "0x45ab83d646f4aaad28e0d2987bcdacd64d6b2ead0b56520d1d1119f2d942671b",
        "verdict": "USEROP_RECOMPUTED"
      }
    }
  }
},
    {
  "tool_id": "art-614-eip7702-authorization-tuple-decoder",
  "tool_version": "1.0.0",
  "display_name": "EIP-7702 Authorization-Tuple Decoder",
  "mcp_name": "decode_eip7702_authorization_tuple",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-614-eip7702-authorization-tuple-decoder.html",
  "description": "Recomputes the EIP-7702 authorization-tuple hash (keccak256(0x05 || rlp([chain_id, address, nonce])), the 'Set EOA account code' standard live on Ethereum mainnet since the Pectra upgrade, 2025-05-07), recovers the ECDSA signer from a caller-supplied signature, and reports the address the recovered signer is authorizing as its delegate. The tuple's own address field IS the delegate: the code the EOA is pointing itself at. This node stops at that address -- it never inspects, fetches, or judges the delegate contract's bytecode, and makes no safe/unsafe verdict about it. chain_id = 0 is EIP-7702-defined as a valid, deliberate cross-chain authorization (replayable on any chain) and is reported as such, never treated as malformed input. RLP encoding is hand-authored public-spec arithmetic (Ethereum Yellow Paper Appendix B); keccak256 and secp256k1 recovery come from the already-vendored, pinned noble-curves bundle, no new vendoring. Zero network calls: does not confirm the authorization was ever submitted on-chain, does not confirm the EOA's account nonce matches the declared nonce at any block, and makes no settlement claim.",
  "input_schema_ref": "chaingraph/art-614-eip7702-authorization-tuple-decoder.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:554841b60cdb4e6996f4083fe52c09e3c903610c5e4b31c6936f2ad3c77e32a8",
      "valid_from": "2026-08-14"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-14"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "deferred_reason": "New shard; awaiting the async GPU proving queue (S18 steady-state).",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "G/ht5Gb6gBhjHH7Q9Jxzl5WeAlGFL+oFwBwgpUKpx0sMxXNZvnm7cJemLs/8QG+Zsm0eCV+56KW5S1HHj6VwxA55m687bQeiYysO8zGc1Wq13trffcobDiUBLhdLlMFPBPvjACBDn5YXPyECCeBu08mKkf+iKp0V71ioN67oEc8SIfRg+/CrT/3v9oi/2JCZKzDW0q0XTCa4m8arbZen9xXrnielSmBmREmptDqcURfyUHf5Jv8hGvyvNi6FVqgJHAymMECKTldtb7emMdamspYICTz3ScFytE2H4fOzk4YlLoC54tv2usGTEKznI2oT/aHh0/tEsq7bEFbmhwsh1w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:554841b60cdb4e6996f4083fe52c09e3c903610c5e4b31c6936f2ad3c77e32a8",
      "output": {
        "authorization_tuple_hash": "0xdbbd0860628b133d6933d40f38c176c3d87bd97f681014457da6b41b8ef7c1fe",
        "chain_id": 8453,
        "cross_chain_authorization": false,
        "delegate_address": "0xabcdefabcdefabcdefabcdefabcdefabcdefabcd",
        "nonce": 7,
        "reasons": [],
        "recovered_signer": "0x2c7536e3605d9c16a7a3d7b1898e529396a65c23",
        "recovery_id": 1,
        "recovery_id_source": "yParity",
        "scope_note": "Recomputes the EIP-7702 authorization-tuple hash from declared (chain_id, address, nonce) fields, recovers the ECDSA signer from the caller-supplied signature, and reports the address the recovered signer is authorizing as its delegate. Proves that a private key produced a valid signature over the exact tuple supplied -- it does NOT judge the delegate contract's code, does not confirm the authorization was ever submitted or applied on-chain, and does not confirm the recovered signer's account nonce matches the declared nonce at any block. An authorization is not a settlement, and a recovered delegate address is not a safety verdict. Zero network calls; never a facilitator, proxy, or settlement relay.",
        "verdict": "AUTHORIZATION_RECOVERED"
      }
    }
  }
},
    {
  "tool_id": "art-615-mla-charge-inclusion-classifier",
  "tool_version": "1.0.0",
  "display_name": "MLA Charge-Inclusion Classifier",
  "mcp_name": "classify_mla_charge_inclusion",
  "mandate_type": "compliance_mandate",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-615-mla-charge-inclusion-classifier.html",
  "description": "Closed-set lookup of whether a charge type must be included in the Military Lending Act MAPR under 32 CFR 232.4(c) and 232.4(d), returning included_in_mapr as true, false or conditional together with the exact paragraph cited and a plain basis sentence. The domain is 9 charge types x is_credit_card_account x short_term_exception_claimed = 36 states, every one of them enumerated. Three charge types return conditional because the regulation's own worked examples at 232.4(d)(4)(iii) run the same fee twice and reach opposite answers on facts a charge type cannot express. The single cell the closed set cannot resolve, an application fee with the 232.4(c)(1)(iii)(B) short-term carve-out claimed, sets manual_review_required and names the three missing predicates rather than guessing. conditional_limit_usd reports the $100 per annum figure of 232.4(c)(2)(ii)(B) on the participation-fee credit-card cells: it NAMES that figure and never compares it to an amount, because 232.4(c)(2)(ii)(B) withdraws the limit for a bona fide participation fee under paragraph (d) and 232.4(d)(3)(iv) gives a $400 fee as potentially reasonable. Performs no arithmetic at all: no ratio, no scale, no threshold compare, no rounding. Zero network calls: does not determine covered-borrower status, does not compute a MAPR, does not compare anything to the 36 percent limit of 232.4(b), and does not decide whether a fee is bona fide or reasonable under 232.4(d)(1) and 232.4(d)(3).",
  "input_schema_ref": "chaingraph/art-615-mla-charge-inclusion-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:89816e3e50a57991a0dc1ef768b3915ef88e0fad54e72319fdd72363c04680af",
      "valid_from": "2026-08-14"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-16"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:e3890b4f3b32cdd2254b18c2313f4d9365b9b4d5b157ffe3f281280e39dd01e0",
      "source_url": "https://www.ecfr.gov/api/versioner/v1/full/2026-08-01/title-32.xml?part=232",
      "retrieved_at": "2026-08-14",
      "clause_path": "32 CFR 232.4(c)-(d)",
      "scheme": "cfr",
      "id": "32 CFR 232.4"
    }
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AW22VsMFgev6J59dlRyVWI4btt1EnhSGTcnZ1Eu+/M4fCQcIk/Ti71g8bK/dHTFnG70F/9ndWDBUAn7tT6yA5CBwiVr4PD88LyAYg/QPvBaPUaAQUrt2echs2lDokifoJYj+UxOIbw7XF9X8zzlLWo+qlFORZSN7s2LQnovhcTIGYNAZ2WTXHmuLzdTqeVO3q7zdfZ7x83GBuish2RdhESoesPqTfCo+TzMs9cQuf0KbyLwLw9dot13lOJ1561nBDtZAHCxRp0vuR41xl7DmclKafsWfiS353g4QGfgG6dkCjGFltlyCzY8Wq57/j8LdU6mCi1kSo3KwEM34MI177w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:89816e3e50a57991a0dc1ef768b3915ef88e0fad54e72319fdd72363c04680af",
      "output": {
        "basis": "Application fees are included by 32 CFR 232.4(c)(1)(iii)(B), but the caller claims the short-term small amount loan carve-out, which this closed-set lookup cannot resolve without whether the creditor is a Federal credit union or an insured depository institution, whether the loan is a short-term, small amount loan, and whether the application fee was charged no more than once in any rolling 12-month period.",
        "charge_type": "application_fee",
        "citation": "32 CFR 232.4(c)(1)(iii)(B)",
        "conditional_limit_usd": null,
        "included_in_mapr": "conditional",
        "is_credit_card_account": false,
        "manual_review_reason": "the 32 CFR 232.4(c)(1)(iii)(B) carve-out turns on three facts this node does not collect: whether the creditor is a Federal credit union or an insured depository institution, whether the loan is a short-term, small amount loan, and whether the application fee was charged no more than once in any rolling 12-month period",
        "manual_review_required": true,
        "short_term_exception_claimed": true
      }
    }
  }
},
    {
  "tool_id": "art-616-mla-mapr-actuarial-recompute",
  "tool_version": "1.0.0",
  "display_name": "MLA MAPR Actuarial Recompute",
  "mcp_name": "recompute_mla_mapr_actuarial",
  "mandate_type": "compliance_mandate",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-616-mla-mapr-actuarial-recompute.html",
  "description": "Recomputes a Military Lending Act MAPR for closed-end credit by the Regulation Z actuarial method, from caller-supplied cash flows and charges. 32 CFR 232.4(c)(2)(i) says the MAPR for closed-end credit is calculated following Regulation Z's own rules for the annual percentage rate, based on the wider charge set in 232.4(c)(1), so this node solves the Appendix J actuarial equation rather than a single-period ratio: the odd-days fraction is priced at simple interest per Appendix J (b)(6), only whole unit-periods compound, and the annual figure is the unit-period rate multiplied by the unit-periods in a year per (b)(1). Each supplied charge is classified against 232.4(c)(1) and (d) with its own paragraph citation, and an includable charge collected at consummation reduces the amount advanced, which is what raises the rate; a Regulation Z finance charge already carried by the payment schedule is echoed and never deducted twice. The result is compared against the 36 percent limit 232.4(b) sets, with the limit and the $100 participation-fee figure in 232.4(c)(2)(ii)(B) held as declared constants a caller cannot move. A rate is reported only when a sign-change bracket was established and narrowed, so a schedule with no non-negative rate returns no figure rather than a guess. Two questions the clause leaves to facts are surfaced rather than decided: whether a fee is bona fide and reasonable under 232.4(d)(3), which turns on a comparison against other creditors, and whether the application-fee exception in 232.4(c)(1)(iii)(B) applies, which turns on creditor type and a rolling 12-month charging history. This node is verify-only. It does not determine covered-borrower status, reads no external record, and does not assert that a real transaction meets the Military Lending Act.",
  "input_schema_ref": "chaingraph/art-616-mla-mapr-actuarial-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:fe52d9fd1931382c551fe8a68fe00b6e9f2695dbe089a890c0bd361fca7f102b",
      "valid_from": "2026-08-14"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "awaiting section-18 groth16 proof"
},
    {
  "tool_id": "art-617-m3p-monthly-cap-calculator",
  "tool_version": "1.0.0",
  "display_name": "M3P Monthly Cap Calculator",
  "mcp_name": "compute_m3p_monthly_cap",
  "mandate_type": "payment_policy",
  "wave": 102,
  "gpu": false,
  "url": "https://ainumbers.co/tools/617-m3p-monthly-cap-calculator.html",
  "description": "Recomputes the Medicare Prescription Payment Plan (M3P) maximum monthly cap under 42 CFR 423.137(c)(1)(i) (first month of participation) and (c)(1)(ii) (every subsequent month), verified by exhaustive enumeration over the full declared cents/months domain (4,830,023 states). The annual out-of-pocket threshold is a plan-year-indexed CMS figure, carried as a keyed, source-digested policy parameter rather than a bare constant -- CY2026 is $2,100. Rounding is declared half-up-to-the-cent, since the regulation states no explicit rounding rule for the division step; the declaration is backed by three independent CMS-sourced worked examples and implemented with exact integer arithmetic, never floating-point division. A caller-declared numerator or months value outside the declared domain is rejected with a named reason, never clamped or silently coerced. Verify-only: recomputes the formula from caller-declared inputs, does not track a real enrollee's true out-of-pocket accumulation, does not enroll anyone in M3P, and does not assert that any actual participant's bill is correct.",
  "input_schema_ref": "tools/617-m3p-monthly-cap-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:de0f2c827ca03f8101c1cb008207a577cc171246ad97a09d1e966bb29c9efd38",
      "valid_from": "2026-08-16"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-16"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:884d7a32607752e5550c66f152673b413dfd6acbf7364bfd233dfcb46d821c61",
      "source_url": "https://www.govinfo.gov/content/pkg/CFR-2025-title42-vol3/xml/CFR-2025-title42-vol3-sec423-137.xml",
      "retrieved_at": "2026-08-16",
      "clause_path": "(c)(1)(i)-(ii)",
      "scheme": "cfr",
      "id": "42 CFR 423.137(c)(1)"
    }
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "LUWXt4zriTMDVgbTBNrJ9vzuExLtFYgypruNREGfv7Um6P4/iJPtvMHTW4d731Rhb4hHqXatDLRG8IRS4w38bQ0Gv3wSzRSUBgacyR/gZN7ZcO6yWiLfEVun+LJyKUj3HLg4fGqc9jTI3tn7/8boroOdexYlD9H8J+W4ja5v9xknYvIc/fi1wiilM51ntDSdPMRmckk5fgXraTFfBBGelxRsHzlO6aRjMAc4u91FLMT4Jcfnxz4w5erFeqTAzeqYLGrbPYkI4zDK5daNOoKbw+QDBszcWvzuMj2avrfStVUGB2iiPnB+J8ZuAJBeFeRyK7/+3rDwuEN9M1iMloRx4w==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:de0f2c827ca03f8101c1cb008207a577cc171246ad97a09d1e966bb29c9efd38",
      "output": {
        "annual_oop_threshold_cents": 210000,
        "annual_oop_threshold_source": "CMS Final CY 2026 Part D Redesign Program Instructions fact sheet",
        "annual_oop_threshold_source_digest": "sha256:6eb8797d77cf892afb41f9fb5be0889ccc7504e770f323f7295c66f3ee49ac2d",
        "branch": "subsequent_month",
        "cap_cents": 150000,
        "cap_dollars_display": "1500.00",
        "domain_errors": [],
        "months_remaining": 1,
        "note": "Verify-only recomputation of the CMS Medicare Prescription Payment Plan monthly cap formula from caller-declared inputs. It does not track a real enrollee's true out-of-pocket accumulation, does not enroll anyone in M3P, and does not assert that any actual participant's bill is correct. Estimate only -- not an official CMS or plan communication, and not financial or legal advice.",
        "numerator_breakdown": {
          "newly_incurred_cents": 150000,
          "remaining_owed_cents": 0
        },
        "numerator_cents": 150000,
        "plan_year": 2026,
        "regulatory_basis": "42 CFR 423.137(a) general; (b)(1)-(2) definitions; (c)(1)(i) first-month formula; (c)(1)(ii) subsequent-month formula; (c)(3) months-remaining includes the current month; (c)(4) impact on true out-of-pocket accumulation.",
        "rounding_mode": "half_up",
        "rounding_oracle": "declared -- clause silent; 42 CFR 423.137 states no explicit rounding rule for the division step. Three independent CMS-sourced worked examples (423.137(b)(2): 2000/12=166.67; CMS Final Part Two Guidance section 50.2: 2000/3=666.67, 2000/11=181.82) are each consistent with round-half-up-to-the-cent and no other tested mode.",
        "rounding_precision": "cents",
        "valid_input": true
      }
    }
  }
},
    {
  "tool_id": "art-618-naic-clo-rbc-factor-calculator",
  "tool_version": "1.0.0",
  "display_name": "NAIC CLO/CBO/CDO Tranche RBC Factor Calculator",
  "mcp_name": "calculate_naic_clo_rbc_factor",
  "mandate_type": "compliance_control",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-618-naic-clo-rbc-factor-calculator.html",
  "description": "Recomputes the NAIC Life RBC per-tranche capital charge for CLO/CBO/CDO bond tranches against the LR002 Column (2) factor grid adopted by the RBC Investment Risk & Evaluation (E) Working Group (Proposal 2026-12-IRE, effective YE2026 filings). Given a tranche's NAIC designation category, BSL thin-tranche flag, current tranche thickness, and book/adjusted carrying value, looks up the correct pre-tax factor -- including the flat 11.77% BSL thin-tranche surcharge for designation 2.C or below at <=4% thickness -- and computes the tranche-level RBC dollar requirement (ROUND(...,0)), summed across a portfolio. Exhaustively enumerated over the declared 31-state (naic_designation x bsl_thin_override_applicable) input domain. Verify-only: recomputes a prescribed charge from declared inputs, never asserts filing compliance or correctness of the filer's own rating/thickness determination.",
  "input_schema_ref": "tools/618-naic-clo-rbc-factor-calculator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:cb99858043a626cef3ee2982c902f5dc20456fe04034d70adf63b9a8177fd864", "valid_from": "2026-08-14" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-618, staged 2026-08-14. No GPU proving attempted this session (single-session build; GPU-CYCLE-PREFLIGHT-1's exec-cycle check was not run) -- ratchet-visible deferral per the §18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. Proving is a follow-on."
},
    {
  "tool_id": "art-619-ccd2-aprc-annex3-recompute",
  "tool_version": "1.0.0",
  "display_name": "CCD2 Annex III APRC Recompute",
  "mcp_name": "recompute_ccd2_aprc_annex3",
  "mandate_type": "compliance_mandate",
  "wave": 101,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-619-ccd2-aprc-annex3-recompute.html",
  "description": "Recomputes the EU Directive (EU) 2023/2225 (CCD2) annual percentage rate of charge (APRC) from a caller-supplied drawdown/repayment schedule against Annex III Part I's own present-value-equality equation, solved iteratively by bracketed bisection for the rate X. Unlike Reg Z Appendix J (art-215), Annex III's own text expresses each flow's interval directly in years and fractions of a year and raises (1+X) to that real-valued power with no integer/fraction split, so this kernel uses genuine fractional exponentiation. A rate is reported only when a sign-change bracket was established and narrowed to a declared tolerance; non-convergence and a non-bracketed schedule are both reported honestly (converged:false, bracketed:false, aprc_pct:null), never silently returned as a guess. The result is expressed to at least one decimal place per Annex III Part I remark (d), rounded half-up on the next digit. Architecturally class-C shaped (unbounded schedule arrays, iterative solver) and assigned class-B property-testing rigor by this row's own explicit ruling, not because the input domain is bounded. Verify-only recompute: does not determine which CCD2-covered agreements a caller's product falls under, does not submit anything to a regulator, and does not assert that a real agreement is or is not CCD2-compliant.",
  "input_schema_ref": "chaingraph/art-619-ccd2-aprc-annex3-recompute.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:b6916f257c4bafb7ddf7dd00b907aae102f03c92267a3dd99876216548835032", "valid_from": "2026-08-14" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-619, staged 2026-08-14. GPU-CYCLE-PREFLIGHT-1's exec-cycle tool (runq-cpu) is not present in this session's environment, so no GPU proving was attempted -- ratchet-visible deferral per the §18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. Note for whoever runs the preflight: this kernel calls Math.pow with a real-valued exponent (fractional-t present-value discounting, per Annex III's own equation shape) inside the bisection loop, which is one of GPU-CYCLE-PREFLIGHT-SPEC.md's named static pre-screen flags (non-sqrt transcendentals) -- measure user_cycles before booking, do not assume FAST."
},
    {
  "tool_id": "art-620-summa-mst-inclusion-checker",
  "tool_version": "1.0.0",
  "display_name": "Summa MST Inclusion Checker",
  "mcp_name": "verify_summa_mst_inclusion",
  "mandate_type": "compliance_mandate",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-620-summa-mst-inclusion-checker.html",
  "description": "Paste a published Merkle-sum-tree root (hash + sum) and an inclusion proof for one leaf; verifies membership AND local balance-sum-chain consistency entirely offline, client-side. Independently recomputes both the hash chain and the sum chain from the leaf to the root over the pasted proof path -- never trusting the pasted root as an oracle for itself -- and rejects any negative balance or any balance/sum exceeding a declared MAX_BALANCE domain bound anywhere in the path, closing the Maxwell eprint 2022/043 'broken MST' negative-balance-cancellation hazard the same way Summa's own circuit does with a RangeCheckChip, applied here at the application layer instead of inside a ZK circuit. Verify-only: reports leaf inclusion and local range-consistency, never a solvency or reserve-sufficiency claim.",
  "input_schema_ref": "tools/620-summa-mst-inclusion-checker.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:2dc3bf8bb1f5ae7c1d3c1023fdd8c19a1abd94fae7105f93541303cf0f9c77a6",
      "valid_from": "2026-08-14"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-16"
    }
  ],
  "export_capability": [
    "json"
  ],
  "compute_proof_ready": "ready",
  "standards_basis": "not_applicable",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "E4hhvKiaYshZ/IsL0W/l7NPVrBASU+XOMAyu4t7o5iwszxdcNBjh4zBAIxacw059kJ8iJjp2mbFKKwd897CMhyFEdI7h3ipCrEB0oZgvhNgYLS/9LHqXU1MVb8K/h6cXKDCb5AeIMTEekMuYgTF/nemiFNfCVBKTj+Fm2vwebHccOjhsx/GX6t/dlfH93e2hgHUDjd4Erd92ExB3zSdteysCCRfw8YdSshB3KvnE4UXohxITOXuqWUuV7aK8+oLfB1gXjAPO4wxPws+mvlThiv3jmJuxPRtVVi6TEhgUG50pKoMiM8hJljuw9WAA79lz/EaQYeaOLV2iUWH0efS7/Q==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:2dc3bf8bb1f5ae7c1d3c1023fdd8c19a1abd94fae7105f93541303cf0f9c77a6",
      "output": {
        "computed_root": {
          "hash": "5d967f108c4cc8e9ea17607ac5d0454655967e2657ad77cefc295903e0aae551",
          "sum": "300"
        },
        "declared_root": {
          "hash": "5d967f108c4cc8e9ea17607ac5d0454655967e2657ad77cefc295903e0aae551",
          "sum": "300"
        },
        "leaf": {
          "balance": "100",
          "id": "aa11"
        },
        "max_balance_used": "1000000000000000000",
        "path_length": 1,
        "reason": null,
        "residual_limitation_note": "This checks inclusion and local range-consistency of the ONE leaf and its proof path only. It does not and cannot prove every other leaf in the tree obeyed the same range check — only the tree operator's own construction process (or a full ZK proof over the whole tree, which this tool does not implement) can guarantee that globally. This is never a statement that the reserve is solvent.",
        "verdict": "VERIFIED",
        "verify_only_note": "Verify-only: this tool reports \"this leaf's inclusion in the published tree is verified\" or \"verification failed: <reason>\" — never \"reserves are sufficient\", \"solvent\", or an audit opinion."
      }
    }
  }
},
    {
  "tool_id": "art-621-summa-mst-liability-aggregator",
  "tool_version": "1.0.0",
  "display_name": "Summa MST Liability Aggregator",
  "mcp_name": "aggregate_summa_mst_liabilities",
  "mandate_type": "cryptographic_mandate",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-621-summa-mst-liability-aggregator.html",
  "description": "Given up to 16 (id, balance) leaf entries, deterministically builds a SHA-256 Merkle-sum-tree (Summa's node layout: hash=H(id,balance) and sum=balance at each leaf; hash=H(left.sum+right.sum,left.hash,right.hash) and sum=left.sum+right.sum at each middle node, pattern-borrowed from Summa/PSE's proof-of-reserves design, no code vendored) and emits the root commitment plus every leaf's full inclusion proof. Applies Maxwell's (eprint 2022/043 §4.1) mandatory range-check mitigation on the input side: rejects any negative balance or balance exceeding the declared MAX_BALANCE before building the tree. The generator counterpart to the MST inclusion checker (art-620), whose output_payload proofs are consumable directly as that tool's input. Verify-only perimeter: commits to whatever balances it is given, never asserts those balances reflect real reserves.",
  "input_schema_ref": "manifests/621-summa-mst-liability-aggregator.manifest.json#input_schema",
  "consumes": [],
  "feeds": ["art-620-summa-mst-inclusion-checker"],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:f237e50a1552db96450eb52e9c5ba27f461bfa8c8a610a3eb7a4818213080688", "valid_from": "2026-08-14" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "standards_basis": "not_applicable",
  "deferred_reason": "New gpu:false node, art-621, staged 2026-08-14. No GPU proving attempted this session, so GPU-CYCLE-PREFLIGHT-1's exec-cycle check was not run and cycle_preflight stays PENDING; this is a ratchet-visible deferral per the §18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. GUEST-BUILTIN-GATE-1's check-guest-builtin-safety.mjs gate is not yet present on origin/main (unmerged branch), so it could not be run either, but this kernel was authored to satisfy it by construction: no TextEncoder/atob/btoa/URL anywhere in compute(), only the validated pure-JS utf8ToBytes encoder and a pure-JS synchronous SHA-256. Proving is a follow-on."
},
    {
  "tool_id": "art-626-deterministic-amortization-schedule",
  "tool_version": "1.0.0",
  "display_name": "Deterministic Amortization Schedule",
  "mcp_name": "compute_deterministic_amortization_schedule",
  "mandate_type": "compliance_mandate",
  "wave": 102,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-626-deterministic-amortization-schedule.html",
  "description": "Demonstrator node for the shared _amort.bundle.mjs kernel: a deterministic amortization-schedule engine over seven closed day-count conventions (six calendar conventions from ISDA 2006 Definitions Section 4.16 -- 30/360 US, 30E/360, 30E/360 (ISDA), Actual/360, Actual/365 Fixed, Actual/Actual (ISDA) -- plus UNIT_PERIOD for lease/revenue schedules that discount over equal periods rather than calendar day counts). Computes, per period, the effective-interest method's period_fraction, periodic_rate, interest, principal_component and closing_balance, each an independently-declared rounding step, plus a mandatory final-period plug that absorbs rounding residue so the schedule amortizes to exactly zero within a declared bound. Supports a bracketed-bisection rate solve (art-215's discipline, generalized: constant 200-step bound, sign-change bracket required before any rate is reported, no Newton/secant), scoped honestly to UNIT_PERIOD only -- a calendar convention's period_fraction is a real-valued fraction of a year that need not align with the solver's ordinal-integer-period PV formula, so calendar conventions require a caller-supplied annual_rate rather than a mismatched solve. Mid-stream remeasurement is modeled as schedule SEGMENTATION, never mutation: a new segment's opening balance is always the prior segment's exact closing balance, asserted as a continuity_invariant, with the prior segment retained unmodified. No engine transcendentals anywhere (SPEC.md Section 18.5): every exponent is an integer computed by repeated squaring and every rounding step multiplies by a literal power-of-ten, never Math.pow. This is a reusable shared kernel's demonstrator, not itself an ASC 842 / ASC 606 / CECL wave-specific tool -- waves 6, 7 and 10 inline this bundle directly rather than calling this node.",
  "input_schema_ref": "manifests/art-626-deterministic-amortization-schedule.manifest.json#input_schema",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:32ee03f89954474c9d09d90e18eba3acc47dc757fc8cab6bd19fd7bf8e6f4e06", "valid_from": "2026-08-15" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-626, staged 2026-08-15 (ACCT-AMORT-K-1). Sec 18 steady-state rule (RIDER-KERNEL.md): GPU proving is an async queue, not a per-wave gate. cycle_preflight: PENDING -- GPU-CYCLE-PREFLIGHT-1's exec-cycle tool (runq-cpu) is not present in this session's environment (same absence precedent as art-619), so no user_cycles figure could be measured and no GPU proving was attempted. Static pre-screen (GPU-CYCLE-PREFLIGHT-SPEC.md): this kernel has no in-guest signature/hash verification loop, no policy_parameters-driven loop bound (MAX_PERIODS=600 is a constant), and no non-sqrt transcendental anywhere (every exponent is an integer via repeated squaring; every round is a literal power-of-ten multiply) -- expected FAST per the build spec, but this is a prediction, not a measurement, and the row's check-off says so plainly rather than claiming FAST.",
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(f) 30/360 (Bond Basis)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(g) 30E/360 (Eurobond Basis)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(h) 30E/360 (ISDA)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(e) Actual/360", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(d) Actual/365 (Fixed)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:d58d3558747aaba8e5207417482dd2a35ef11b2fadc9e07d8546c71a2bee8b59", "source_url": "https://www.sc.com/en/uploads/sites/66/content/docs/2006-ISDA-Definitions.pdf", "retrieved_at": "2026-08-15", "clause_path": "Section 4.16(b) Actual/Actual (ISDA)", "scheme": "isda", "id": "2006 ISDA Definitions Sec 4.16" },
    { "digest": "sha256:b523793b29e30669d51a91b8e093010d2b9ffeb35763f10cd20ea5fc8811a960", "source_url": "https://www.consumerfinance.gov/rules-policy/regulations/1026/j/", "retrieved_at": "2026-08-15", "clause_path": "12 CFR 1026 Appendix J (b)(6) -- stub-period fraction pricing precedent for UNIT_PERIOD, not a calendar day-count clause", "scheme": "cfr", "id": "12 CFR 1026 Appendix J" },
    { "digest": "sha256:a558362611d0ca8dcfc5c1526c76ddfa721e0804d9346a49116e829d7586ca9b", "source_url": "https://www.consumerfinance.gov/rules-policy/regulations/1026/j/", "retrieved_at": "2026-08-16", "clause_path": "12 CFR 1026 Appendix J (a)(2) -- actuarial-method balance recurrence, authority for rounding_steps 4 (principal_component) and 5 (closing_balance)", "scheme": "cfr", "id": "12 CFR 1026 Appendix J" }
  ]
},
    {
  "tool_id": "art-627-effective-date-rule-version-registry",
  "tool_version": "1.0.0",
  "display_name": "Effective-Date / Rule-Version Registry",
  "mcp_name": "resolve_rule_version",
  "mandate_type": "compliance_mandate",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-627-effective-date-rule-version-registry.html",
  "description": "Resolves which version of an accounting standard binds a given filer, entirely offline and client-side. The query is a triple: fiscal_year_end as an ISO date, never a month/day pair, because 52/53-week filers exist and their year-ends move; filer_status from a closed seven-value enum; and a standard identifier. It returns the binding annual and interim period-beginning dates, the early-adoption flag, first_binding_period_end, the transition method, and the rule parameters in force, where a parameter is always a value with its own effective_from, effective_to, source and source digest, and never a bare number. The registry itself is inert data delivered in policy_parameters and is never baked into kernel bytes, so adding a rule entry can never move the kernel digest or stale a receipt. The kernel recomputes the slice digest from the slice's own bytes and refuses to resolve on a mismatch, bounded at max_slice_entries of 32 so the in-guest hash stays measurable. Resolution is total: every triple in the declared domain returns exactly one entry or an explicit NO_BINDING_ENTRY, never a silent undefined, and no two parameter versions may hold overlapping effective windows. Ships with two demonstrator standards, FASB ASU 2023-07 on reportable segment disclosures and ASU 2023-09 on income tax disclosures, whose dates and thresholds are pinned to retrieved primary text.",
  "input_schema_ref": "tools/627-effective-date-rule-version-registry.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:64836000e9e411175a31ce378e45f464cb8dc8f398ed04f409d94f764265cfe5", "valid_from": "2026-08-16" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-627, staged 2026-08-16 (ACCT-RULEREG-K-1). No GPU proving attempted or proposed this session -- Tim ruled 2026-08-15 that nodes are not being re-proven at this time, and GPU-CYCLE-PREFLIGHT-1's exec-cycle check could not be run because runq-cpu is unavailable in this environment, so cycle_preflight is recorded PENDING (same precedent as art-619, art-626/ACCT-AMORT-K-1 and art-628/ACCT-DTREE-K-1). This kernel is statically SLOW-suspect under GPU-CYCLE-PREFLIGHT-SPEC.md because it hashes in-guest; that marker is resolved by BOUNDING the hashed object (max_slice_entries=32, declared and enforced) rather than by dropping the check, and the measured figure is still owed before any GPU booking. Ratchet-visible deferral per the Sec.18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. Proving is a follow-on, gated by SIDEBYSIDE-BEFORE-PROVE-1 (SO #39) since the demonstrator entries implement published FASB pronouncements.",
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    { "digest": "sha256:a999642aced1ae446b09ed5a481dce13d74f6670995be8e9339e754939c74dd8", "source_url": "https://storage.fasb.org/ASU%202023-07.pdf", "retrieved_at": "2026-08-15", "clause_path": "Summary / When Will the Amendments Be Effective and What Are the Transition Requirements?", "scheme": "fasb-asu", "id": "ASU 2023-07" },
    { "digest": "sha256:f401f66dffdd21e008a8e388ea6461475430311df60a70f88b7fa2de5826fcc6", "source_url": "https://storage.fasb.org/ASU%202023-07.pdf", "retrieved_at": "2026-08-15", "clause_path": "Summary / Who Is Affected by the Amendments in This Update?", "scheme": "fasb-asu", "id": "ASU 2023-07" },
    { "digest": "sha256:2a0d8a9421bdf1e653800632f377f4d20201520e5e031a55e2dbbd867acfd62a", "source_url": "https://storage.fasb.org/ASU%202023-09.pdf", "retrieved_at": "2026-08-15", "clause_path": "Summary / When Will the Amendments Be Effective and What Are the Transition Requirements?", "scheme": "fasb-asu", "id": "ASU 2023-09" },
    { "digest": "sha256:470a5c00f7bd35796e923ac28f4d179e7b407edbb33a2ba9e15e6a178483d354", "source_url": "https://storage.fasb.org/ASU%202023-09.pdf", "retrieved_at": "2026-08-15", "clause_path": "Summary / What Are the Main Provisions? / Income Taxes Paid", "scheme": "fasb-asu", "id": "ASU 2023-09" }
  ]
},
    {
  "tool_id": "art-628-declarative-decision-tree-evaluator",
  "tool_version": "1.0.0",
  "display_name": "Declarative Decision-Tree Evaluator",
  "mcp_name": "evaluate_decision_tree",
  "mandate_type": "compliance_mandate",
  "wave": 100,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-628-declarative-decision-tree-evaluator.html",
  "description": "Evaluates a caller-supplied, hash-pinned decision tree against caller-supplied facts entirely offline, client-side. The tree is inert data -- one audited interpreter walks it over a closed operator set (eq, in, lt, lte, gt, gte, between, all_of, any_of, none_of), never eval and never a function-valued criterion. Every node in the tree, internal criteria included and not leaves only, must carry a citation to a pinned clause snapshot; a tree with any uncited node is rejected by the loader. Independently recomputes the tree's own tree_digest from its bytes and refuses to evaluate on a mismatch -- never trusting the declared digest as an oracle for itself. Ships with a demonstrator tree exercising the Reg D Rule 501(a) entity-type accredited-investor category test (17 CFR 230.501(a)(1), (2), (3), (8), (9)), enumerated exhaustively over its 5 declared boolean fields (32 combinations, 0 unexplained results) because every criterion in that tree is a bounded enum. Never a full accredited-investor determination: the natural-person and numeric-threshold prongs of Rule 501(a) are explicitly out of this demonstrator's scope.",
  "input_schema_ref": "tools/628-declarative-decision-tree-evaluator.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    { "system": "sha256-source", "image_id": "sha256:23fafefb1f2949dbb40b7bfb74f121ebae0388f743e72666aba5713731f80239", "valid_from": "2026-08-16" }
  ],
  "export_capability": ["json"],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-628, staged 2026-08-16 (ACCT-DTREE-K-1). No GPU proving attempted this session -- GPU-CYCLE-PREFLIGHT-1's exec-cycle check could not be run (runq-cpu unavailable in this environment, same precedent as art-626/ACCT-AMORT-K-1's cycle_preflight: PENDING). Ratchet-visible deferral per the Sec.18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. Proving is a follow-on, gated by SIDEBYSIDE-BEFORE-PROVE-1 (SO #39) since this is a standards-implementing node (17 CFR 230.501(a)).",
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    { "digest": "sha256:7281c8642064555f7f1375fdcf4a89ed513fa438cd62b358c865c33ce26b901e", "source_url": "https://www.law.cornell.edu/cfr/text/17/230.501", "retrieved_at": "2026-08-16", "clause_path": "(a)", "scheme": "cfr", "id": "17 CFR 230.501(a)" },
    { "digest": "sha256:ee3890d78e04a0c99b61ebd7536de2b9a12495f7571aa1d91d455d5abfa497f6", "source_url": "https://www.law.cornell.edu/cfr/text/17/230.501", "retrieved_at": "2026-08-16", "clause_path": "(a)(1)", "scheme": "cfr", "id": "17 CFR 230.501(a)(1)" },
    { "digest": "sha256:393146815712bf87aaab3508cc3b896ecd682e9a50c448d94d66ca7382117d79", "source_url": "https://www.law.cornell.edu/cfr/text/17/230.501", "retrieved_at": "2026-08-16", "clause_path": "(a)(2)", "scheme": "cfr", "id": "17 CFR 230.501(a)(2)" },
    { "digest": "sha256:78c27bf761a74f2c527196a7ea03d4345c5b97d04bebf341e76e6e1858a6b955", "source_url": "https://www.law.cornell.edu/cfr/text/17/230.501", "retrieved_at": "2026-08-16", "clause_path": "(a)(3)", "scheme": "cfr", "id": "17 CFR 230.501(a)(3)" },
    { "digest": "sha256:19b6da2ee9930ed5e98d94b68cc271fedb90f74b895869aa4ec78f4fa1c3d84c", "source_url": "https://www.law.cornell.edu/cfr/text/17/230.501", "retrieved_at": "2026-08-16", "clause_path": "(a)(8)", "scheme": "cfr", "id": "17 CFR 230.501(a)(8)" },
    { "digest": "sha256:033e47ce5f91bc0e2b22252bebfdfd7018622634e2eb9b0d04e875d1c61596bd", "source_url": "https://www.law.cornell.edu/cfr/text/17/230.501", "retrieved_at": "2026-08-16", "clause_path": "(a)(9)", "scheme": "cfr", "id": "17 CFR 230.501(a)(9)" }
  ]
},
    {
  "tool_id": "art-633-asc280-reportable-segment-tester",
  "tool_version": "1.0.0",
  "display_name": "ASC 280 Reportable Segment Tester",
  "mcp_name": "test_asc280_reportable_segment",
  "mandate_type": "compliance_mandate",
  "wave": 101,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-633-asc280-reportable-segment-tester.html",
  "description": "Applies the ASC 280-10-50-12 quantitative thresholds to one caller-declared candidate operating segment and computes the ASC 280-10-50-14 seventy-five percent coverage test, reporting each of the three ten percent tests separately with its own denominator. The three tests do not share a denominator: the revenue test runs the segment's revenue including intersegment sales or transfers against combined internal and external revenue of all reported operating segments, the profit-or-loss test runs the absolute amount of the segment's reported profit or loss against the greater in absolute amount of the combined profit of segments that did not report a loss and the combined loss of segments that did, and the assets test runs segment assets against combined assets of all operating segments. Netting the two profit-or-loss sides together, a plausible misreading, produces a smaller denominator and over-flags segments, so the denominator side actually used is reported. Thresholds are inclusive, and every comparison is made by exact cross multiplication on unrounded inputs rather than by rounding a percentage first, so a value sitting exactly on ten or seventy-five percent classifies as meeting it instead of being pushed under by binary floating point; reported percentages are rounded for display only, strictly after every comparison. The five ASC 280-10-50-11 aggregation criteria are echoed back as nullable booleans and are never computed or guessed by this node, with unanswered criteria named individually and a management-judgment flag raised rather than read as false. A zero or non-positive denominator reports not_assessable for that test, never a failing threshold. Source of the rule is FASB Statement No. 131 paragraphs 17, 18, 19 and 20 as carried into the Codification; ASU 2023-07 does not amend these paragraphs, which its own amendment instruction and scope statement both confirm. Verify-only: does not identify operating segments, does not aggregate them, does not decide the chief operating decision maker question, and does not assert that an entity's segment note is compliant.",
  "input_schema_ref": "chaingraph/art-633-asc280-reportable-segment-tester.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:861ca3919713e8e7e4d57042aa48f9399e5094c1f1abc550d686ea8c9fcc8487",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-16"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:f4b185c6deb193c426c26fd7b51883387fd14321ba67536dc512a9ebb1b1a1fc",
      "source_url": "https://storage.fasb.org/fas131.pdf",
      "retrieved_at": "2026-08-15",
      "clause_path": "FAS 131 ¶17-20, ¶24",
      "scheme": "fasb-fas",
      "id": "FAS 131"
    }
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "IcH88oMOaIGQAcRW5vN9qO/xZh53GL/mQPd5j+R1ewwDU1Aiu48OcV6yfrn2ph1ZxFOC0BHnLbVscvMCnOpcJQytf/6DedGOYKVzhZEA10AFGlAYdpvPUGqvLnFBeGhNEPxc3fMNVunpupQQtAUajnLn8dAs0EMgzNu1/mRxUaMs1mumpLjBspu0QPjRNW3oqoPpcCYkwF6tPQWnw9mRrRNbQ8aKZn+4jilS6vUkJf6THJNKEUGux6lgapVjtaYXJ+YjmFqE5sH6aDElXWH/Vhq7qCiR2FgsLgaayahhHqEeLGLVdFezPYH0SZfLMIYhcFy0vxqSAVjJSoDMwvTFjQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:861ca3919713e8e7e4d57042aa48f9399e5094c1f1abc550d686ea8c9fcc8487",
      "output": {
        "aggregation_criteria": {
          "aggregation_similar_customer_type": null,
          "aggregation_similar_distribution_methods": null,
          "aggregation_similar_production_processes": null,
          "aggregation_similar_products_services": null,
          "aggregation_similar_regulatory_environment": null
        },
        "aggregation_criteria_answered_count": 0,
        "aggregation_criteria_met_count": 0,
        "comparison_basis": "inclusive: 10 percent or more meets the threshold, and at least 75 percent satisfies coverage. Compared by exact cross multiplication on unrounded inputs; reported percentages are rounded to 6 decimal places for display only, strictly after every comparison.",
        "coverage_75_pct": {
          "additional_segments_required": "not_assessable",
          "coverage_pct": null,
          "coverage_ratio": null,
          "coverage_satisfied": "not_assessable",
          "note": "Total consolidated revenue is zero or non-positive, so no coverage ratio exists. Reported as not_assessable rather than as failing the 75 percent test.",
          "reportable_external_revenue": 100,
          "total_consolidated_revenue": 0
        },
        "coverage_threshold_pct": 75,
        "is_reportable_by_quantitative_threshold": false,
        "majority_of_criteria_met": false,
        "management_judgment_required": true,
        "note": "Verify-only classifier for ONE caller-declared candidate segment against caller-declared totals. It does not identify operating segments, does not aggregate them, does not decide the chief-operating-decision-maker question, and does not assert that an entity segment note is compliant. The three 10 percent tests each carry their own denominator and are reported separately; the profit-or-loss denominator is the greater in absolute amount of the profitable side and the loss side, never the two netted together. Aggregation criteria are echoed back exactly as supplied and are never computed by this node; an unanswered criterion raises management_judgment_required rather than being read as false. A zero or non-positive denominator reports not_assessable, never a failing threshold. Authoritative form of these rules is the FASB Codification, which was not directly reachable at build time; the basis chain is stated in research/DISE-SEG-K-1.spec.md.",
        "oracle": "declared -- clause silent",
        "practical_limit_consideration_advised": false,
        "regulatory_basis": "ASC 280-10-50-12 (quantitative thresholds), 280-10-50-14 (75 percent coverage) and 280-10-50-11 (aggregation criteria), source text FASB Statement No. 131 paragraphs 18, 20 and 17. ASU 2023-07 (November 2023) does not amend these paragraphs: its amendment instruction covers 280-10-50-17, 50-20 through 50-22, 50-24, 50-28 through 50-30 and 50-32 through 50-36, plus added 50-26A through 50-26C and 50-28A through 50-28C, linked to transition paragraph 280-10-65-1.",
        "reportable_segment_count": null,
        "rounding_steps": "none before comparison. Display rounding to 6 decimal places is applied only to reported percentages and never feeds a decision.",
        "tests": [
          {
            "denominator": 0,
            "denominator_basis": "Combined revenue, internal and external, of all reported operating segments (280-10-50-12(a)).",
            "note": "Denominator is zero or non-positive, so no ratio exists. Reported as not_assessable rather than as failing the threshold -- a segment cannot be shown to be below a threshold that does not exist.",
            "numerator": 100,
            "ratio": null,
            "ratio_pct": null,
            "test": "revenue",
            "threshold_met": "not_assessable"
          },
          {
            "abs_loss_side": 0,
            "abs_profit_side": 0,
            "denominator": 0,
            "denominator_basis": "The greater, in absolute amount, of the combined reported profit of all operating segments that did not report a loss and the combined reported loss of all operating segments that did report a loss (280-10-50-12(b)).",
            "denominator_side_used": null,
            "note": "Denominator is zero or non-positive, so no ratio exists. Reported as not_assessable rather than as failing the threshold -- a segment cannot be shown to be below a threshold that does not exist.",
            "numerator": 100,
            "ratio": null,
            "ratio_pct": null,
            "segment_profit_or_loss_signed": 100,
            "test": "profit_or_loss",
            "threshold_met": "not_assessable"
          },
          {
            "denominator": 0,
            "denominator_basis": "Combined assets of all operating segments (280-10-50-12(c)).",
            "note": "Denominator is zero or non-positive, so no ratio exists. Reported as not_assessable rather than as failing the threshold -- a segment cannot be shown to be below a threshold that does not exist.",
            "numerator": 100,
            "ratio": null,
            "ratio_pct": null,
            "test": "assets",
            "threshold_met": "not_assessable"
          }
        ],
        "tests_met": [],
        "tests_not_assessable": [
          "revenue",
          "profit_or_loss",
          "assets"
        ],
        "threshold_pct": 10,
        "unanswered_aggregation_criteria": [
          "nature of the products and services (280-10-50-11(a))",
          "nature of the production processes (280-10-50-11(b))",
          "type or class of customer (280-10-50-11(c))",
          "methods used to distribute products or provide services (280-10-50-11(d))",
          "nature of the regulatory environment, if applicable (280-10-50-11(e))"
        ]
      }
    }
  }
},
    {
  "tool_id": "art-634-codm-expense-significance-classifier",
  "tool_version": "1.0.0",
  "display_name": "CODM Significant Expense Classifier",
  "mcp_name": "classify_codm_expense_significance",
  "mandate_type": "compliance_mandate",
  "wave": 101,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-634-codm-expense-significance-classifier.html",
  "description": "Classifies one candidate segment expense under the significant expense principle that ASU 2023-07 added to ASC 280, returning whether it is separately disclosable under ASC 280-10-50-26A, whether it folds into other segment items under ASC 280-10-50-26B and through which of that paragraph's buckets, or whether it sits outside the principle entirely, together with the exact paragraphs cited and a plain basis sentence. Two things the Update does not supply are therefore not invented here. It closes no list of expense category names: ASC 280-10-50-26A directs an entity to identify the expenses in its own chief operating decision maker reporting first and then disclose the significant ones, so the category vocabulary is entity specific and category name is not an input. It states no quantitative significance benchmark, requiring instead that qualitative and quantitative factors be weighed, so significance arrives as a caller declared judgment and is never computed here. The one enum the clause genuinely closes is ASC 280-10-50-22's specified items, whose subparagraphs run (a) through (j) with (i) superseded by ASU 2015-01, leaving 9 live members. The declared domain is 4 booleans x 10 specified item values, counting the 9 live items plus none, for 160 states, every one of them enumerated. Evaluation under ASC 280-10-50-26A turns on a disjunction, not a single test: an expense easily computable from information regularly provided to the chief operating decision maker is evaluated alongside one that is regularly provided, which is what ASC 280-10-55-15A and 55-15B provide and where the Update's own cost of sales worked example lives. Nothing inside the reported measure of segment profit or loss is ever excluded entirely, because ASC 280-10-50-26B defines other segment items as a reconciling residual and its bucket (a) captures precisely the expense that is not regularly provided. The buckets of ASC 280-10-50-26B are reported as an array rather than a single value because that paragraph says other segment items may include them and they overlap by design. ASC 280-10-50-22 is reported separately and reaches further than the significant expense principle does, since it applies when a specified amount is included in the measure of segment profit or loss or is otherwise regularly provided even if not included in that measure. Performs no arithmetic at all: no ratio, no scale, no threshold compare, no rounding. Verify only: does not identify operating segments, does not apply the ASC 280-10-50-12 thresholds or the ASC 280-10-50-14 coverage test, does not determine the chief operating decision maker, does not compute segment profit or loss or the other segment items amount, does not author the qualitative description ASC 280-10-50-26B requires, and does not assert that an entity's segment note is compliant.",
  "input_schema_ref": "chaingraph/art-634-codm-expense-significance-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:ba852e7332b2eb306965c24556629e1120bcfa2adb18d491c6832fc1423640f6",
      "valid_from": "2026-08-15"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-16"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:3b26b7774945aee1a009cabb7eca54612954ffe8aeb61dc281c37946cd6c4402",
      "source_url": "https://storage.fasb.org/ASU%202023-07.pdf",
      "retrieved_at": "2026-08-15",
      "clause_path": "ASC 280-10-50-22 through 50-26C; 55-15A,55-15B,55-15G; effective date",
      "scheme": "fasb-asu",
      "id": "ASU 2023-07"
    }
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "EjxL7dAXB52Ahg7pbPNWxo2Hso6vK+iz7OT2S4KfhSos83h/gfW1CeJQc9neuVCajYYHvWUEpbfFWyq3zteYSxuD959K5xuC0kALPoanX/Sd609RYdEy83UJgXB0YFIpBYquQYveTVjDCkTrAGYEBxqkAF9KtI38DkVvOWGFWoEUD9jdo8mqgWBkBWIvgWTgh1/GDZNYU41mUiou1XNBHy7LjvJIpRw6Pi+9YUBQkgvfg9wH9HqVZgLrA73AEI8FIUEq1U5iiu+Zbdh9Bi2/456A01fIO4JsgBsrUg6xCF0GVtkrBssmsc6Bjy6DetCJ5y1cYe2CNIS2JUOaGHR6dA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:ba852e7332b2eb306965c24556629e1120bcfa2adb18d491c6832fc1423640f6",
      "output": {
        "assessed_significant": false,
        "basis": "Included in other segment items under ASC 280-10-50-26B rather than disclosed separately. The expense sits inside the reported measure of segment profit or loss but is neither regularly provided to the chief operating decision maker nor easily computable from information that is, so ASC 280-10-50-26A never evaluates it. Other segment items is a reconciling residual, so nothing inside the reported measure is excluded from disclosure entirely.",
        "bucket_c_scope_note": "ASC 280-10-50-26B(c) covers a segment gains, losses or other amounts included in the reported measure of profit or loss rather than expense categories, so it is outside the subject of this node and is never returned.",
        "citation": "ASC 280-10-50-26A; ASC 280-10-50-26B(a); ASC 280-10-50-26B(b); ASC 280-10-50-26B(d); ASC 280-10-50-22(h)",
        "easily_computable_from_codm_information": false,
        "evaluated_under_50_26A": false,
        "folds_into_other_segment_items_50_26B": true,
        "included_in_segment_profit_measure": true,
        "input_outside_declared_domain": false,
        "must_disclose_separately_50_26A": false,
        "other_segment_items_buckets": [
          "ASC 280-10-50-26B(a)",
          "ASC 280-10-50-26B(b)",
          "ASC 280-10-50-26B(d)"
        ],
        "outside_significant_expense_principle": false,
        "regularly_provided_to_codm": false,
        "segment_level_duties_not_decided_here": "This node classifies one candidate expense. ASC 280-10-50-26B separately requires an amount and a qualitative description of other segment items for each reportable segment, and ASC 280-10-50-26C requires that disclosure even when no significant expense categories are reported for a segment, together with an explanation of the nature of the expense information the chief operating decision maker uses to manage that segment (ASC 280-10-55-15G). Those are per-segment duties decided across all of a segment expenses, not from any single candidate, and are not decided here.",
        "separate_disclosure_required_50_22": true,
        "specified_item_50_22": "income_tax_expense_or_benefit"
      }
    }
  }
},
    {
  "tool_id": "art-635-rate-rec-5pct-threshold-classifier",
  "tool_version": "1.0.0",
  "display_name": "Rate Reconciliation 5% Threshold Classifier",
  "mcp_name": "classify_rate_rec_5pct_threshold",
  "mandate_type": "compliance_mandate",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-635-rate-rec-5pct-threshold-classifier.html",
  "description": "Applies the quantitative 5 percent threshold of ASC 740-10-50-12A(b), as amended by FASB Accounting Standards Update No. 2023-09, to one candidate rate reconciliation item. Takes the signed effect of the item, continuing operations pretax income, the applicable statutory federal or national rate of the domicile jurisdiction, the reconciling item category and whether the filer is a public business entity; returns the item as a percentage of the threshold base, a crossing flag, the separate disclosure consequence, and the disaggregation 740-10-50-12A(b) requires of that category. The comparison is taken in absolute amount on BOTH sides, which is stated at BC35 of the Update and corroborated by 740-10-50-12A(b)(2) requiring separate disclosure where an item's gross amount, positive or negative, meets the threshold. That is what makes the test well defined for a loss making entity, so a negative pretax income is ordinary here rather than degenerate. The category enum has nine members, not eight: 740-10-50-12A(a) closes a list of eight, and 740-10-50-12A(b)(3) separately addresses an item within none of them, which an eight member enum could not express. The arithmetic fact and the legal consequence are separate fields because 740-10-50-12A applies to a public business entity while 740-10-50-13 gives other entities a qualitative requirement and no numerical reconciliation. rounding_steps is none before comparison: every verdict is decided by exact cross multiplication on unrounded inputs, never by rounding a percentage and then comparing, and the reported percentage is computed after the verdict and never feeds it. A zero threshold base is reported as not assessable with a named caveat rather than divided silently, because BC38 records that the Board considered and declined to give guidance for the break even and no or minimal rate cases; for the same reason this node draws no numeric break even band. Zero network calls: it does not compute the rate reconciliation, does not determine the statutory rate, does not decide an item's category, does not choose the level of aggregation at which the threshold is applied, and does not apply the separate income taxes paid test of ASC 740-10-50-23.",
  "input_schema_ref": "chaingraph/art-635-rate-rec-5pct-threshold-classifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:d64faa0765db8024c6f6057f6f2e5ae0c86940532c5207fd7dabd0b07488b14c",
      "valid_from": "2026-08-15"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-16"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:f16b411d4a4c70df77a2c3181a81da7a0b24681845d5f15b29e88536afd1c123",
      "source_url": "https://storage.fasb.org/ASU%202023-09.pdf",
      "retrieved_at": "2026-08-15",
      "clause_path": "ASC 740-10-50-12 through 50-13; BC35-BC40",
      "scheme": "fasb-asu",
      "id": "ASU 2023-09"
    }
  ],
  "compute_proof_ready": "ready",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "AbWRhN85m+NXZnqsCI2uXRyESY/ZOhOmM7wA+IyyJScGe6KK++4d6c6xfs9IzXjHQdfo7durWIVzQIiwsUNHlgMpn++6KsQCzhg8w2K21tibKlsiqYJvNwbJsKwziQVfBFikqhZNj4cFuX6G1GwCwD+RCFItPLKgVVphTi7a06sOrox1d4D9fGmH/kEzpC0rN1zY5MZfGaahrXri42tgVitn6RRRLrrCGGDEkbsnNNtCCxHDccCLfkka2IgPQwt1FYDusivH4JTP7e5Y1XfXFfFxuzRyYVJTM9KpEGtQdIAhB6GX/a9SwtOtmyJPkEkcHyZGz5kcCWV9lkROnesSTA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:d64faa0765db8024c6f6057f6f2e5ae0c86940532c5207fd7dabd0b07488b14c",
      "output": {
        "basis": "No threshold verdict is returned. Zero threshold base: pretax_income or statutory_rate_pct is zero, or their product underflowed to zero. ASC 740-10-50-12C separately requires the entity to explain individual reconciling items and the judgment used in categorising them.",
        "break_even_judgment_note": "ASU 2023-09 BC38 records that the Board considered and declined to provide guidance on applying the 5 percent threshold where an entity operates at or around break even or is domiciled in a jurisdiction with no or minimal statutory income tax rates, and expects the entity to apply judgment. This node draws no numeric break even band for that reason.",
        "category_recognized": true,
        "citation": "ASC 740-10-50-12A(a) and (b); ASU 2023-09 BC35 and BC38",
        "crosses_5pct_threshold": null,
        "denominator_near_zero_caveat": "The threshold base is zero, so every amount clears it trivially and a verdict would be an artefact of the degenerate denominator rather than a reading of ASC 740-10-50-12A(b). Reported as not assessable under ASU 2023-09 BC38 rather than divided silently.",
        "disaggregation_citation": "ASC 740-10-50-12A(b); ASC 740-10-50-12B",
        "entity_is_public_business_entity": true,
        "management_judgment_required": true,
        "must_disclose_separately": null,
        "not_assessable_reason": "Zero threshold base: pretax_income or statutory_rate_pct is zero, or their product underflowed to zero.",
        "pct_of_threshold_base": null,
        "pretax_income": 1000,
        "reconciling_item_amount": 50,
        "reconciling_item_category": "state_and_local_income_tax_net_of_federal",
        "required_disaggregation": null,
        "statutory_rate_pct": 0,
        "threshold_amount": 0,
        "threshold_base_amount": 0
      }
    }
  }
},
    {
  "tool_id": "art-636-globe-transition-deferred-tax-tracker",
  "tool_version": "1.0.0",
  "display_name": "GloBE Article 9.1 Transition Deferred Tax Tracker",
  "mcp_name": "track_globe_transition_deferred_tax",
  "mandate_type": "compliance_mandate",
  "wave": 103,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-636-globe-transition-deferred-tax-tracker.html",
  "description": "Recomputes the OECD GloBE Article 9.1 transition recast for a jurisdiction, item by item, over a bounded array of caller-declared deferred tax attributes, and reports the jurisdictional roll-forward total. Article 9.1.1 takes attributes into account at the lower of the Minimum Rate or the applicable domestic tax rate. That lower-of rule operates as a cap rather than an upward re-measurement, so an attribute already recorded at or below it is left where it is; the guidance worked example states the same outcome from the other side, and reading it as an unconditional re-measurement would leave Article 9.1.1's third sentence nothing to do. That third sentence is the single path on which a recast rises above the recorded figure: a deferred tax asset recorded below the Minimum Rate may be taken at the Minimum Rate where the taxpayer demonstrates it is attributable to a GloBE Loss, so the node treats the demonstration as a caller declaration and falls back to the general cap when it is absent. The impact of a valuation or accounting recognition adjustment is disregarded, which requires the gross figure from the caller. Article 9.1.2 exclusions apply only where a declared limb holds and, on the date keyed limbs, the attribute arose strictly after the cut off, so an attribute arising on the cut off day itself is not excluded; each exclusion is reported with a named code and contributes exactly zero, never merely dropped from the report. Article 9.1.3 recasts an intra group transfer falling after the cut off and before the Transition Year on the disposing entity's carrying value. The Minimum Rate, the cut off date, the Transition Year start and the enabled exclusion set all arrive as versioned policy parameters, so a guidance change is a parameter version bump and never moves the kernel digest. The item array is bounded by a declared kernel constant and an over length input is a named error rather than a longer loop. Items are reported and summed in a declared total order keyed on arising date, attribute type, carrying amount and input index, so the total never depends on the order the caller supplied, and it equals the sum of the reported per item recasts at the declared precision. Verify only: this node does not characterize an attribute, does not decide whether an arrangement is governmental, does not decide whether a GloBE Loss demonstration succeeds, and does not compute the Grace Period or Grace Period Limitation, which govern deferred tax expense on reversal under a separate computation. Where a characterization is absent, or a recast cannot be justified from a declared parameter, the item carries a manual review flag or a named error code instead of a silently computed number.",
  "input_schema_ref": "manifests/art-636-globe-transition-deferred-tax-tracker.manifest.json#input_schema",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [{"system":"sha256-source","image_id":"sha256:381375695efa58f8b47e3c7ea2e6ab96ceb63350656696fc6ac4c4ae24d24086","valid_from":"2026-07-10"}],
  "export_capability": ["json"],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    { "digest": "sha256:af7d29868cf715088273c064e9d5c8d40f9caf13ca95ed896c2a6cb3e23cd3c6", "source_url": "https://www.oecd.org/content/dam/oecd/en/publications/reports/2021/12/tax-challenges-arising-from-digitalisation-of-the-economy-global-anti-base-erosion-model-rules-pillar-two_eed81a23/782bac33-en.pdf", "retrieved_at": "2026-08-17", "clause_path": "GloBE Model Rules Art 9.1 (9.1.1-9.1.3), Tax Attributes Upon Transition", "scheme": "oecd-globe", "id": "GloBE Model Rules Art 9.1" },
    { "digest": "sha256:9d610cc2d0fcfd2d8054a93036b43241f0b8545550d71e6935e07b2d2b7600b5", "source_url": "https://www.oecd.org/content/dam/oecd/en/topics/policy-sub-issues/global-minimum-tax/administrative-guidance-article-9-1-globe-rules-pillar-two-january-2025.pdf", "retrieved_at": "2026-08-17", "clause_path": "Administrative Guidance on Art 9.1 (Jan 2025), revised Commentary paras 6.4, 8-8.5 and Example 9.1.2-1", "scheme": "oecd-globe-ag", "id": "OECD AG on Art 9.1 Jan 2025" }
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-636, built 2026-08-17. Tim ruled on 2026-08-15 that nodes are not being re-proven at this time, so no GPU prove was run, none was booked, and none is proposed by this row; section 18 proving is a separate future row gated on proving resuming. This is a ratchet-visible deferral per the section 18 steady-state rule (RIDER-KERNEL.md), never a silent claim of proof. Note for whoever eventually runs GPU-CYCLE-PREFLIGHT-1: compute() contains no in-guest signature or hash verification, no loop bound taken from policy_parameters (the item array is bounded by the declared kernel constant MAX_DTA_ITEMS = 500), and no transcendental at all, not even Math.sqrt; arithmetic is comparison, addition, multiplication, division, Math.min and Math.round only, so the static pre-screen predicts FAST. A prediction is not a measurement: measure user_cycles with runq-cpu exec before booking. This shard adds one deferred node and therefore raises the section 18 ratchet baseline, which is declared here rather than silent; --update-baseline was deliberately not run by this row."
},
    {
  "tool_id": "art-637-globe-de-minimis-exclusion",
  "tool_version": "1.0.0",
  "display_name": "GloBE Permanent De Minimis Exclusion Evaluator",
  "mcp_name": "evaluate_globe_de_minimis_exclusion",
  "mandate_type": "compliance_mandate",
  "wave": 103,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-637-globe-de-minimis-exclusion.html",
  "description": "Recomputes the PERMANENT GloBE de minimis exclusion of Article 5.5 of the OECD GloBE Model Rules (Pillar Two, December 2021) from per-year figures the caller supplies. This is a different rule from the transitional CbCR safe harbour de minimis test, which is a single-year test taken from the Qualified CbCR and is already computed by art-456-globe-safe-harbour-tests; this node does not recompute that test. Article 5.5.2 averages the GloBE Revenue and the GloBE Income or Loss of a jurisdiction across the current and the two preceding Fiscal Years, and Article 5.5.1 then compares those averages against two thresholds: the Average GloBE Revenue must be less than EUR 10 million, and the Average GloBE Income or Loss must be a loss or less than EUR 1 million. Both thresholds and the averaging window length arrive as versioned policy parameters carrying their own source and source digest, never as constants in kernel source, so a later threshold change is a parameter-set version bump rather than a kernel edit. A GloBE Loss year enters the average as a signed negative amount, per Article 5.5.3(b) and Commentary paragraphs 84 and 91, and is never coerced to zero. A preceding Fiscal Year in which no Constituent Entities had GloBE Revenue or GloBE Losses is excluded from the computation under Article 5.5.2's second sentence, which shrinks the divisor rather than contributing a zero; a jurisdiction in scope for fewer years than the window is an ordinary case and is reported as partial_window_used. The per-year input array is bounded by a declared and enforced max_years. Both conditions must hold together, which Commentary paragraph 81 states as aggregate and cumulative. The Article 5.5.1 Annual Election is the Filing Constituent Entity's judgment and enters only as a declared input that the node echoes back; a deemed-zero result is reported only where the election was declared made, and it is a recomputed arithmetic outcome on declared inputs rather than a filing conclusion. Any absent year, absent threshold parameter or undeclared election raises manual_review_required and withholds the availability verdict, and no missing value is ever silently defaulted. Annualisation of short Fiscal Years, conversion into euro, and the Article 5.5.4 removal of Stateless Constituent Entities and Investment Entities are applied upstream by the caller and declared to this node. Verify-only: the node recomputes declared arithmetic and reports whether it matches or diverges. Zero network, zero PII.",
  "scope_statement": "SCOPE: WHICH DE MINIMIS RULE THIS IS. Pillar Two carries two distinct de minimis rules and this node implements exactly one of them. (a) The transitional CbCR safe harbour de minimis TEST is a single-fiscal-year test on Qualified CbCR revenue and profit before tax; it is implemented by art-456-globe-safe-harbour-tests and is NOT recomputed, altered, or relied on as authority here. (b) The permanent GloBE de minimis EXCLUSION of Article 5.5 is an Annual Election tested on GloBE Revenue and GloBE Income or Loss averaged across the current and the two preceding Fiscal Years. This node implements (b) and nothing else. TAXONOMY HONESTY: CLASS B, AND WHAT THAT DOES NOT MEAN. The property floor is class B, property-tested over stated ranges. The Article 5.5.1 thresholds are continuous euro amounts, so this node is NOT class A, and class B here must never be read as bounded input domain. The year window IS bounded and its paths are enumerated exhaustively by the floor. The money axis is NOT bounded and no totality claim is made over it; the floor instead forces each threshold boundary exactly and at plus and minus one unit in the last place. DECLARED SCOPE LIMITS: Short Fiscal Years are annualised by the caller before the amounts reach this node (Article 5.5.2 and Commentary paragraph 86 state the proportional adjustment, and the OECD's own Example 5.5.2-1 applies it). Conversion of amounts into euro is the caller's (Commentary paragraph 83). The Article 5.5.4 exclusion of Stateless Constituent Entities and Investment Entities from the Article 5.5.3 computations is applied upstream and is taken here as a caller declaration, which the node requires and echoes. The Article 5.5.1 election is a filer judgment taken as a declared input and never inferred. Post-filing ETR adjustments that re-open a prior year's averages (Commentary paragraphs 92 and 93) are outside this node: it evaluates the amounts it is given for the window it is given. PERIMETER: This node recomputes a declared arithmetic test and reports whether inputs match or diverge from the stated thresholds. It states no filing conclusion and gives no tax advice, and a deemed-zero result is a computed outcome on declared inputs rather than a determination about what is due or owed.",
  "input_schema_ref": "chaingraph/art-637-globe-de-minimis-exclusion.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:f15d513b3387a912f17ff6e10150595086fb1cb79cc8e858e25fcf457844db54",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "float_sensitive": "yes",
  "rounding_steps": [
    {
      "step": "average_globe_revenue",
      "description": "Article 5.5.2: the GloBE Revenue of the jurisdiction is summed across the included Fiscal Years and divided by the count of INCLUDED years, which is the window length less any year excluded under Article 5.5.2's second sentence.",
      "clause": "OECD GloBE Model Rules (Pillar Two), December 2021, Article 5.5.2; Commentary March 2022, paragraphs 84 and 85",
      "mode": "no rounding applied; IEEE-754 binary64 division",
      "oracle": "declared — clause silent"
    },
    {
      "step": "average_globe_income_or_loss",
      "description": "Article 5.5.2 applied to the GloBE Income or Loss of the jurisdiction, where a GloBE Loss year carries a SIGNED NEGATIVE amount per Article 5.5.3(b) and is never coerced to zero. The divisor is the same included-year count as the revenue average.",
      "clause": "OECD GloBE Model Rules (Pillar Two), December 2021, Articles 5.5.2 and 5.5.3(b); Commentary March 2022, paragraphs 84 and 91",
      "mode": "no rounding applied; IEEE-754 binary64 division over signed addends",
      "oracle": "declared — clause silent"
    },
    {
      "step": "threshold_comparison_precision",
      "description": "Article 5.5.1's STRICT less-than comparison of each unrounded binary64 average against its versioned threshold. An average exactly equal to a threshold does NOT meet the condition. Article 5.5.1(b)'s first limb, that the average is a loss, is evaluated and reported separately from its threshold limb.",
      "clause": "OECD GloBE Model Rules (Pillar Two), December 2021, Articles 5.5.1(a) and 5.5.1(b); Commentary March 2022, paragraphs 80 and 81",
      "mode": "strict < on the unrounded quotient; no pre-comparison rounding and no epsilon tolerance",
      "oracle": "declared — clause silent"
    }
  ],
  "cited_clause_source": [
    "https://www.oecd.org/content/dam/oecd/en/publications/reports/2021/12/tax-challenges-arising-from-digitalisation-of-the-economy-global-anti-base-erosion-model-rules-pillar-two_eed81a23/782bac33-en.pdf",
    "https://www.oecd.org/content/dam/oecd/en/publications/reports/2022/03/tax-challenges-arising-from-the-digitalisation-of-the-economy-commentary-to-the-global-anti-base-erosion-model-rules-pillar-two-first-edition_d97d7096/1e0e9cd8-en.pdf",
    "https://www.oecd.org/content/dam/oecd/en/topics/policy-sub-issues/global-minimum-tax/tax-challenges-arising-from-the-digitalisation-of-the-economy-global-anti-erosion-model-rules-pillar-two-examples.pdf"
  ],
  "cited_clause_digest": [
    {
      "digest": "sha256:6bc1e0fdf4a52150280168aedaedfcb311805668197d08b9c3584d9cf21066ae",
      "source_url": "https://www.oecd.org/content/dam/oecd/en/publications/reports/2021/12/tax-challenges-arising-from-digitalisation-of-the-economy-global-anti-base-erosion-model-rules-pillar-two_eed81a23/782bac33-en.pdf",
      "retrieved_at": "2026-08-17",
      "clause_path": "Article 5.5.1 through 5.5.4",
      "scheme": "oecd-globe",
      "id": "GloBE Model Rules Art 5.5"
    },
    {
      "digest": "sha256:3eb779f0a0b9f5c4f604f9fab212311b7a6e3824aed99cf462a7c9adc849d978",
      "source_url": "https://www.oecd.org/content/dam/oecd/en/publications/reports/2022/03/tax-challenges-arising-from-the-digitalisation-of-the-economy-commentary-to-the-global-anti-base-erosion-model-rules-pillar-two-first-edition_d97d7096/1e0e9cd8-en.pdf",
      "retrieved_at": "2026-08-17",
      "clause_path": "Commentary paras 80, 81, 84, 85, 91",
      "scheme": "oecd-globe",
      "id": "GloBE Commentary Art 5.5"
    },
    {
      "digest": "sha256:a39484003bbfbdaf40c2776fa935146528e95a356335d534e3f72271ffee6ec4",
      "source_url": "https://www.oecd.org/content/dam/oecd/en/topics/policy-sub-issues/global-minimum-tax/tax-challenges-arising-from-the-digitalisation-of-the-economy-global-anti-erosion-model-rules-pillar-two-examples.pdf",
      "retrieved_at": "2026-08-17",
      "clause_path": "Example 5.5.2-1",
      "scheme": "oecd-globe",
      "id": "GloBE Examples 5.5.2-1"
    }
  ],
  "clause_retrieved_date": "2026-08-17",
  "clause_snapshot_location": "research/clause-snapshots/OECD-GloBE-Model-Rules-Dec2021-oecd-2026-08-17.pdf; research/clause-snapshots/OECD-GloBE-Commentary-Mar2022-oecd-2026-08-17.pdf; research/clause-snapshots/OECD-GloBE-Examples-oecd-2026-08-17.pdf",
  "cited_clause_paragraphs": [
    "Model Rules Article 5.5.1(a) and 5.5.1(b), the two thresholds and the strict less-than comparison (p. 32)",
    "Model Rules Article 5.5.1 closing sentence, the exclusion is an Annual Election of the Filing Constituent Entity (p. 32)",
    "Model Rules Article 5.5.2, the current and two preceding Fiscal Years averaging window, and the second-sentence exclusion of a preceding year with no Constituent Entities carrying GloBE Revenue or GloBE Losses (p. 32)",
    "Model Rules Article 5.5.3(a) and 5.5.3(b), the definitions of GloBE Revenue and of GloBE Income or Loss of a jurisdiction, the latter being the Net GloBE Income if any, or the Net GloBE Loss (p. 32)",
    "Model Rules Article 5.5.4, Stateless Constituent Entities and Investment Entities are outside the election and their amounts are excluded from the Article 5.5.3 computations (pp. 32-33)",
    "Commentary paragraph 79, the election is an annual election (p. 130)",
    "Commentary paragraph 80, the two conditions restated, including the loss limb of Article 5.5.1(b) (p. 130)",
    "Commentary paragraph 81, the conditions are aggregate and cumulative, so failing one makes the jurisdiction ineligible: the CONJUNCTION authority (p. 130)",
    "Commentary paragraph 83, the thresholds are euro-denominated and conversion may be required (p. 130)",
    "Commentary paragraph 84, the three-year average, and that the current year's value whether income or loss is averaged: the LOSS-SIGN authority (p. 130)",
    "Commentary paragraph 85, years excluded from the computation to avoid skewing the average, including the first-GloBE-year case: the PARTIAL-WINDOW authority (pp. 130-131)",
    "Commentary paragraph 86, short Fiscal Years are annualised in proportion to the period covered, declared here as the caller's step (p. 131)",
    "Commentary paragraph 91, where the Chapter 3 difference is nil or negative the outcome is a loss and is the Net GloBE Loss (p. 132)",
    "Commentary paragraphs 92-93, post-filing ETR adjustments may re-open a prior year's averages, declared out of scope (pp. 132-133)",
    "Commentary paragraphs 95-96, why Article 5.5.4 excludes those entities and that their revenue and income leave the Article 5.5.3 computations (pp. 133-134)",
    "Examples document, Example 5.5.2-1 (p. 88), the OECD's own worked multi-year case with a loss year, used as the independent fixture oracle"
  ],
  "compute_proof_ready": "ready",
  "cycle_preflight": "FAST — 5,866,490 user_cycles max across all 6 fixture vectors (argmax v4), measured exec-only 2026-08-17 against the landed bytes on origin/main; 0.20x the 30,000,000 line.",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "L/aAU2iawt3aCUG91kqASVmejHBsIIs8CP8v0vrKznUII7t53LOWP5wsF6elhF0OP18UR3dAIMhg0esKnSI2ASudirBpJHkGWXM3QwDgov0692ZJ9EfsbFj/5sMCKfmICI2otljdAInlDRJAoxga8Q56wPpB+2IuwvPs+UkvCM8t7PnUsFW/NGwTKm4o3G/17jmEAU2CZcq7eqLDFRlAPRbWOzLljQqqv8QyGaA3UJ3KtNpL0DQQPNP8OR61FUQvHd+/rfcVeR3l1FVqYanyFWgbHgAJmnFWb9uO0qWj/90KRXkL9a5JyyEi5ugCXmhWPSTp9PMlaRTrwbEeMMBPzQ==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:f15d513b3387a912f17ff6e10150595086fb1cb79cc8e858e25fcf457844db54",
      "output": {
        "average_globe_income_eur": 200000,
        "average_globe_income_is_loss": false,
        "average_globe_revenue_eur": 1500000,
        "averaging_window_years": 3,
        "de_minimis_available": false,
        "deemed_zero_topup": false,
        "election_made": true,
        "fiscal_year": 2026,
        "income_test_met": true,
        "jurisdiction": "Jurisdiction F",
        "manual_review_required": true,
        "max_years_enforced": 3,
        "notes": [
          "Fiscal Year 2025 supplied neither complete amounts nor an Art 5.5.2 no-Constituent-Entities declaration. It is held for review rather than defaulted.",
          "The declared averaging window is 3 Fiscal Years but only 2 were accounted for (included or declared excluded). The remaining years are neither present nor explained."
        ],
        "parameter_set_version": "oecd-globe-model-rules-2021-12",
        "partial_window_used": true,
        "revenue_test_met": true,
        "thresholds_applied": {
          "income_threshold_eur": 1000000,
          "income_threshold_provenance": {
            "effective_from": "2021-12-20",
            "effective_to": null,
            "source": "OECD GloBE Model Rules (Pillar Two), December 2021, Article 5.5.1(b)",
            "source_digest": "sha256:796d1a16fad360204a76450f5246e038263ef4bc652356f25d367d4b9389e306"
          },
          "revenue_threshold_eur": 10000000,
          "revenue_threshold_provenance": {
            "effective_from": "2021-12-20",
            "effective_to": null,
            "source": "OECD GloBE Model Rules (Pillar Two), December 2021, Article 5.5.1(a)",
            "source_digest": "sha256:796d1a16fad360204a76450f5246e038263ef4bc652356f25d367d4b9389e306"
          }
        },
        "years_evaluated": [
          {
            "fiscal_year": 2024,
            "globe_income_or_loss_eur": 300000,
            "globe_revenue_eur": 2000000,
            "is_loss_year": false,
            "status": "included"
          },
          {
            "fiscal_year": 2025,
            "globe_income_or_loss_eur": null,
            "globe_revenue_eur": null,
            "is_loss_year": null,
            "status": "missing_data"
          },
          {
            "fiscal_year": 2026,
            "globe_income_or_loss_eur": 100000,
            "globe_revenue_eur": 1000000,
            "is_loss_year": false,
            "status": "included"
          }
        ],
        "years_excluded_no_constituent_entities": 0,
        "years_included": 2
      }
    }
  }
},
    {
  "tool_id": "art-645-compute-index-weights",
  "tool_version": "1.0.0",
  "display_name": "Compute Index Weights",
  "mcp_name": "compute_index_weights",
  "mandate_type": "attestation_mandate",
  "wave": 104,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-645-compute-index-weights.html",
  "description": "Computes (or receipts an externally-declared) weight per constituent from a stated methodology (market-cap, float-adjusted-market-cap, equal-weight, price-weight, or factor-tilted) and caller-supplied inputs, giving the weight set its own citable execution_hash separate from the constituent-membership fact in art-557. HARD FENCE: every input row (market_cap/price/float_factor/factor_score) is supplied and asserted, never fetched (zero-egress); this attests THAT a weight set was computed exactly as stated from the declared inputs, never whether those inputs are accurate. weight_sum_check is a hard local check (sum of weights within 1e-9 of 1.0), not a re-fetch. constituents_ref is optional and backward-compatible: a caller with no art-557 artifact yet still gets a valid weighting receipt over its declared constituent list. Second entry of the Financial Index/Benchmark Administrator Lineage family. Not fund NAV recomputation (art-373) or any benchmark-publisher scorecard. EU Benchmark Regulation (BMR, Regulation (EU) 2016/1011) Art 12(1) and SEBI (Index Providers) Regulations, 2024 Reg 18(1)/18(3) citations informative only.",
  "input_schema_ref": "chaingraph/art-645-compute-index-weights.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:89e1c42dc3d59ad3566052948cdbe988799613418a705f2fb499bf4c98e981cb",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:2d81dcf294e18d029b04d056da7de764a62ffa605ed2e660e0df6c4e46590066",
      "source_url": "https://eur-lex.europa.eu/eli/reg/2016/1011/2024-01-09/eng",
      "retrieved_at": "2026-08-17",
      "clause_path": "Art 12(1)(a)-(e)",
      "scheme": "eu-regulation",
      "id": "Regulation (EU) 2016/1011 Art 12(1)"
    },
    {
      "digest": "sha256:b6f3e42e447c118fe76fb8557d6b065a56311bf7f1ce1b1ac141186ad65da011",
      "source_url": "https://taxguru.in/sebi/securities-exchange-board-india-index-providers-regulations-2024.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "Reg 18(1),18(3)",
      "scheme": "sebi-regulation",
      "id": "SEBI (Index Providers) Regulations, 2024 Reg 18"
    }
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-645-compute-index-weights, built 2026-08-17 (BUILD-INDEXLINEAGE-1, INDEX-LINEAGE-BUILD-SPEC.md §2). No GPU prove has been run and none is proposed by this row — deferred per the section 18 steady-state rule (RIDER-KERNEL.md) and SO #39 (standards-implementing node: build -> land -> SIDEBYSIDE -> prove, no prove row until a SIDEBYSIDE has cleared)."
},
    {
  "tool_id": "art-646-compile-rebalance-evidence-pack",
  "tool_version": "1.0.0",
  "display_name": "Compile Rebalance Evidence Pack",
  "mcp_name": "compile_rebalance_evidence_pack",
  "mandate_type": "compliance_mandate",
  "wave": 105,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-646-compile-rebalance-evidence-pack.html",
  "description": "Packages one rebalance event, the current period's constituent set and weight set, plus the prior period's for diffing, into a regulator-shaped bundle: what changed (additions/removals/weight deltas), citing the underlying art-557/art-645 receipts rather than recomputing them. This is the vertical's answer to a BMR administrator's-oversight-function record and a SEBI benchmark-administrator disclosure pack. HARD FENCE: this bundle CITES the referenced receipts (execution_hash + tool_id); it does not re-run or independently verify the weighting arithmetic against a third-party feed, and it makes no claim of BMR/SEBI compliance, informative citation only. The current/prior constituent and weight rows used for the diff are caller-supplied and asserted (zero-egress), same fence as art-557/art-645. Third entry of the Financial Index/Benchmark Administrator Lineage family. EU Benchmark Regulation (BMR, Regulation (EU) 2016/1011) Art 13(1) and SEBI (Index Providers) Regulations, 2024 Reg 19(2)/19(3) citations informative only.",
  "input_schema_ref": "chaingraph/art-646-compile-rebalance-evidence-pack.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:06a6f6215cff260bdeadad70817cacf72195aebec6e2d5ac436002c095b70fde",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:55eb73880210ba672eed31d82a929c8fc1a558aebc8700615970efc0fc021777",
      "source_url": "https://eur-lex.europa.eu/eli/reg/2016/1011/2024-01-09/eng",
      "retrieved_at": "2026-08-17",
      "clause_path": "Art 13(1)(a),(c),(d)",
      "scheme": "eu-regulation",
      "id": "Regulation (EU) 2016/1011 Art 13(1)"
    },
    {
      "digest": "sha256:43707a153c602d07a81a901e73beaa475dd1b4e9c46b667af650d61c82162d3f",
      "source_url": "https://taxguru.in/sebi/securities-exchange-board-india-index-providers-regulations-2024.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "Reg 19(2),19(3)(a)-(d)",
      "scheme": "sebi-regulation",
      "id": "SEBI (Index Providers) Regulations, 2024 Reg 19"
    }
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-646-compile-rebalance-evidence-pack, built 2026-08-17 (BUILD-INDEXLINEAGE-1, INDEX-LINEAGE-BUILD-SPEC.md §3). No GPU prove has been run and none is proposed by this row — deferred per the section 18 steady-state rule (RIDER-KERNEL.md) and SO #39 (standards-implementing node: build -> land -> SIDEBYSIDE -> prove, no prove row until a SIDEBYSIDE has cleared)."
},
    {
  "tool_id": "art-647-record-index-correction",
  "tool_version": "1.0.0",
  "display_name": "Record Index Correction",
  "mcp_name": "record_index_correction",
  "mandate_type": "attestation_mandate",
  "wave": 106,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-647-record-index-correction.html",
  "description": "art-557 already covers constituent-set corrections via the SPEC.md top-level supersedes field; this node adds the equivalent for a published index level or weight-set value, the case BMR calls an index restatement: a level or weight was published, then found wrong, and corrected. HARD FENCE: this kernel attests THAT a correction was declared, by whom (the caller-supplied original_value_ref), and why (reason_code); it does not itself verify the corrected value against a third-party recomputation, and it creates no reverse link or status registry, SPEC.md §1 is explicit that supersession is discoverable only from the newer artifact or a log scan. Fourth entry of the Financial Index/Benchmark Administrator Lineage family. Two separate regimes, cited separately: EU Benchmark Regulation (BMR, Regulation (EU) 2016/1011) Art 12(1)(e) (traceable and verifiable) is the cited traceability rationale; SEBI (Index Providers) Regulations, 2024 was searched and has no located provision governing correction or restatement of a published index value, recorded here as an explicit N/A, not silently inherited. This kernel makes no compliance claim under either regime.",
  "input_schema_ref": "chaingraph/art-647-record-index-correction.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:b2e5b57d770e2f357434539c6d70b7271e7f0bafbfc71e5b9e07f11e9dbb83e8",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:2d81dcf294e18d029b04d056da7de764a62ffa605ed2e660e0df6c4e46590066",
      "source_url": "https://eur-lex.europa.eu/eli/reg/2016/1011/2024-01-09/eng",
      "retrieved_at": "2026-08-17",
      "clause_path": "Art 12(1)(a)-(e)",
      "scheme": "eu-regulation",
      "id": "Regulation (EU) 2016/1011 Art 12(1)"
    }
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-647-record-index-correction, built 2026-08-17 (BUILD-INDEXLINEAGE-1, INDEX-LINEAGE-BUILD-SPEC.md §4). No GPU prove has been run and none is proposed by this row — deferred per the section 18 steady-state rule (RIDER-KERNEL.md) and SO #39 (standards-implementing node: build -> land -> SIDEBYSIDE -> prove, no prove row until a SIDEBYSIDE has cleared)."
},
    {
  "tool_id": "art-648-record-model-input-lineage",
  "tool_version": "1.0.0",
  "display_name": "Record Model Input Lineage",
  "mcp_name": "record_model_input_lineage",
  "mandate_type": "attestation_mandate",
  "wave": 104,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-648-record-model-input-lineage.html",
  "description": "Attests attribute-level data lineage for a model's input data, which source system, which field, what transformation was applied, feeding which model run, distinct from every existing model-risk node (art-450/451/453/488/489), none of which attest where a model's input data came from, only what the model did with declared inputs. Input attributes are SUPPLIED and asserted by the caller (zero-egress); this node never fetches or validates against a live data warehouse or source system. An attribute declared without a source_system is reported as a legitimate finding (unmapped_attribute_count), never silently dropped or treated as an error. run_ref is optional, a caller with no model-run artifact yet still gets a valid lineage receipt. ECB Guide on effective risk data aggregation and risk reporting (May 2024) §3.4(3) requires complete, up-to-date data lineages on data attribute level for the risk indicators and critical data elements within scope; this node gives that its own citable artifact. SR 26-2 (effective 2026-04-17) scopes the model-risk context to conventional quantitative models only. Feeds the model-risk-lineage-pack chain (art-562) as an optional additional citation, never a required one.",
  "input_schema_ref": "chaingraph/art-648-record-model-input-lineage.html#manifest",
  "consumes": [
    "art-451-model-outcome-analysis",
    "art-488-model-replication-diff"
  ],
  "feeds": [
    "art-562-compile-model-risk-lineage-pack"
  ],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:eaebdde7fd42f9319b93555563ad4562fc7f0b4aced441f82296b30776fcda66",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_digest": [
    {
      "digest": "sha256:4a7105bb64fe54be21ed2ce832cea896b4b3a09e7518426a51fba825c36d5703",
      "source_url": "https://www.bankingsupervision.europa.eu/ecb/pub/pdf/ssm.supervisory_guides240503_riskreporting.en.pdf",
      "retrieved_at": "2026-08-17",
      "clause_path": "§3.4(3)",
      "scheme": "ecb-guide",
      "id": "ECB RDARR Guide (May 2024) §3.4(3)"
    }
  ],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-648-record-model-input-lineage, scaffolded 2026-08-17 (KERNEL-SCAFFOLD-1). No GPU prove has been run and none is proposed by this scaffold — deferred per the section 18 steady-state rule (RIDER-KERNEL.md). Run GPU-CYCLE-PREFLIGHT-1's static pre-screen once compute() is real, then measure user_cycles with runq-cpu exec before booking."
},
    {
  "tool_id": "art-649-publish-model-risk-head",
  "tool_version": "1.0.0",
  "display_name": "Publish Model Risk Head",
  "mcp_name": "publish_model_risk_head",
  "mandate_type": "attestation_mandate",
  "wave": 105,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-649-publish-model-risk-head.html",
  "description": "Publishes one SPEC.md §HEAD-1 head-commit publication event for a model's revalidation-history stream, so a model's validation history (art-453/art-489 results, or art-562/art-648 lineage artifacts) becomes a sequence-numbered, signer-continuous chain instead of a series of unlinked artifacts a reviewer must independently discover and order, mirroring NAV-LINEAGE-BUILD-SPEC.md §3 and INDEX-LINEAGE-BUILD-SPEC.md §5, applied to a model's revalidation cadence. HARD FENCE: this node never accepts or handles private key material, the caller signs the head-commit off-node via chaingraph/kernels/_head.mjs's own buildHead/signHead and separately runs its own Ed25519 verification (again via _head.mjs's verifyHeadProof/verifyChain) before calling this node. signature_valid and chain_valid are the caller's own verification claim, asserted and digested into this receipt, exactly like art-562's stage-reference citations, never independently re-derived by this node (the real zkVM guest has no WebCrypto at all, so an in-kernel Ed25519 verify result would not be reproducible across this repo's required execution environments). The one field this node DOES independently recompute is head_hash (pure SHA-256/JCS over the caller-supplied head, never trusted as a caller-asserted value, per SO #34). Backed by ocg-head-file@1 only at first, matching the NAV/index lineage rows; a head-file tip proves the signer's claimed tip, it does not itself detect equivocation (needs ocg-head-tlog@1, a later WU) and is not itself a revalidation-cadence enforcement mechanism. The estate's head-commit primitive (SPEC.md §HEAD-1 + _head.mjs) is merged to main; this node applies that estate-internal primitive to a model-risk stream and makes no claim under RDARR, BCBS 239, or SR 26-2 itself.",
  "input_schema_ref": "chaingraph/art-649-publish-model-risk-head.html#manifest",
  "consumes": [
    "art-453-model-validation-status",
    "art-489-model-test-battery",
    "art-562-compile-model-risk-lineage-pack"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:3f1c6d1e5f697c7965be668eb206a5c9d533b097a4d381c90c48aefaafdf0f91",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-649-publish-model-risk-head, scaffolded 2026-08-17 (KERNEL-SCAFFOLD-1). No GPU prove has been run and none is proposed by this scaffold — deferred per the section 18 steady-state rule (RIDER-KERNEL.md). Run GPU-CYCLE-PREFLIGHT-1's static pre-screen once compute() is real, then measure user_cycles with runq-cpu exec before booking."
},
    {
  "tool_id": "art-651-authzen-conformance-fixture",
  "tool_version": "1.0.0",
  "display_name": "Authzen Conformance Fixture",
  "mcp_name": "compute_authzen_conformance_fixture",
  "mandate_type": "compliance_control",
  "wave": 104,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-651-authzen-conformance-fixture.html",
  "description": "Evaluates the 8-decision AuthZEN Authorization API 1.0 certification fixture (AUTHZEN-CONFORMANCE-BUILD-SPEC.md) through the spec-mandated subject/action/resource/context request envelope (Information Model §5, Access Evaluation API §6.1-6.2), against a local hand-authored FIXTURE_POLICY. AuthZEN is an OpenID Foundation open specification rather than a regulation or legal instrument , standards_basis is implements_standard against a published spec, per SO #38 Step 0. The spec itself is silent on PDP decision logic (§2: 'policy language... beyond the scope of this specification'), so the 8 decision outcomes are mechanical, hand-authored test-fixture policy (role/resource-state/action-parameter rules), not spec-mandated content; what IS spec-mandated and cited below is the request/response envelope shape and the boolean-only Decision semantics the fixture is expressed through. Also checks the §6.1 'context is OPTIONAL and must not change the decision' invariant on every decision.",
  "input_schema_ref": "chaingraph/art-651-authzen-conformance-fixture.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:a5c7470c83caad488c64b75342a1e532d18fc9c76126d3c5cb0614deb36bc15d",
      "valid_from": "2026-08-17"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "implements_standard",
  "cited_clause_source": [
    "https://openid.net/specs/authorization-api-1_0.html"
  ],
  "cited_clause_digest": [
    {
      "digest": "sha256:991ba7b4a7f70912be3d1c0e8bb6b97c78d499a5a61d1792d701e3464cfd71e5",
      "source_url": "https://openid.net/specs/authorization-api-1_0.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "§5.1",
      "scheme": "openid-authzen",
      "id": "AuthZEN Authorization API 1.0 §5.1 Subject"
    },
    {
      "digest": "sha256:da42892b2aa6058c7c7def220fe3fc7f5446c0a58987b6b8ce83fd2927f24def",
      "source_url": "https://openid.net/specs/authorization-api-1_0.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "§5.2",
      "scheme": "openid-authzen",
      "id": "AuthZEN Authorization API 1.0 §5.2 Resource"
    },
    {
      "digest": "sha256:0838327bbb8c444c1557b7dd2e50879de9f9d4653aab4a8b5b895073ad214900",
      "source_url": "https://openid.net/specs/authorization-api-1_0.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "§5.3",
      "scheme": "openid-authzen",
      "id": "AuthZEN Authorization API 1.0 §5.3 Action"
    },
    {
      "digest": "sha256:6bc2daccdfa1d2d749a9cb5104be41c9b1f91219b9a2484e806c069b3581aa56",
      "source_url": "https://openid.net/specs/authorization-api-1_0.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "§5.5",
      "scheme": "openid-authzen",
      "id": "AuthZEN Authorization API 1.0 §5.5 Decision"
    },
    {
      "digest": "sha256:475fcdade4fa8161e3c8c179f2d281a365bee9f54a6c3f6acc4af15c54f1bccd",
      "source_url": "https://openid.net/specs/authorization-api-1_0.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "§6.1",
      "scheme": "openid-authzen",
      "id": "AuthZEN Authorization API 1.0 §6.1 Access Evaluation API Request"
    },
    {
      "digest": "sha256:a4f3cf709c9aded4aa6103d75e9a4dbd0ae956c9551fe9a0a5b066088d04fd0a",
      "source_url": "https://openid.net/specs/authorization-api-1_0.html",
      "retrieved_at": "2026-08-17",
      "clause_path": "§6.2",
      "scheme": "openid-authzen",
      "id": "AuthZEN Authorization API 1.0 §6.2 Access Evaluation API Response"
    }
  ],
  "clause_retrieved_date": "2026-08-17",
  "clause_snapshot_location": "research/clause-snapshots/authzen-authorization-api-1.0.md; research/clause-snapshots/authzen-spec.html (whole-document context copy); research/clause-snapshots/authzen-excerpts/authzen-5.1-subject.txt; authzen-5.2-resource.txt; authzen-5.3-action.txt; authzen-5.5-decision.txt; authzen-6.1-request.txt; authzen-6.2-response.txt (the 6 excerpts registered in chaingraph/standard/clause-snapshot-registry.json, one per cited_clause_digest entry)",
  "cited_clause_paragraphs": [
    "§5.1 Subject: \"A Subject is an object that contains two REQUIRED keys, type and id... and an OPTIONAL key, properties\" — the subject shape every fixture request uses.",
    "§5.2 Resource: constructed like a Subject (REQUIRED type/id, OPTIONAL properties) — the resource shape every fixture request uses, including the owner/status properties FIXTURE_POLICY reads.",
    "§5.3 Action: \"Action is an object that contains a REQUIRED name key... and an OPTIONAL properties key\" — the action shape, including the delete.properties.soft parameter FIXTURE_POLICY reads.",
    "§5.5 Decision: \"a REQUIRED decision key with a boolean value\"... \"there are only two possible values for the decision: true... false: ...MUST NOT be permitted to go forward\" — the decision output shape and boolean-only semantics compute() returns.",
    "§6.1 Access Evaluation API Request: \"subject: REQUIRED... action: REQUIRED... resource: REQUIRED... context: OPTIONAL\" — the four-entity envelope, and the basis for the context-optional invariant this kernel checks on every decision.",
    "§6.2 Access Evaluation API Response: \"The response... consists of the Decision entity\" — confirms the response shape compute() reports per request."
  ],
  "scope_statement": "The Decision VALUE for each of the 8 fixture requests (whether alice/bob may read/write/delete a given record) is local hand-authored test policy rather than spec-mandated content , AuthZEN §2 explicitly places PDP policy logic out of scope ('The policy language, architecture, and state management aspects of a PDP are beyond the scope of this specification'). What is cited above and exercised by compute() is the request/response ENVELOPE (§5 Subject/Action/Resource, §6.1 request shape with OPTIONAL context, §6.2 response-is-a-Decision, §5.5 boolean-only decision semantics) and the §6.1 context-optional invariant, checked on every decision. CLAUSE-SILENT determination (SO #39(b)(ii), art-617 precedent): the fixture-policy rule table is a design choice named explicitly here, not an omission, and needs no further authority because it is not asserted as spec-mandated.",
  "compute_proof_ready": "deferred",
  "deferred_reason": "New gpu:false node, art-651-authzen-conformance-fixture, scaffolded 2026-08-17 (KERNEL-SCAFFOLD-1). No GPU prove has been run and none is proposed by this scaffold — deferred per the section 18 steady-state rule (RIDER-KERNEL.md). Run GPU-CYCLE-PREFLIGHT-1's static pre-screen once compute() is real, then measure user_cycles with runq-cpu exec before booking."
},
    {
      "tool_id": "cry-01-zk-compliance-proof-generator",
      "tool_version": "1.0.0",
      "display_name": "ZK Compliance Proof Generator",
      "mcp_name": "generate_zk_compliance_proof",
      "mandate_type": "compliance_mandate",
      "wave": 2,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/cry-01-zk-compliance-proof-generator.html",
      "description": "Synthetic ZK compliance proof token for AML/Travel Rule predicates (amount threshold, sanctions clear, KYC complete, velocity normal, source of funds). NTT simulation: models the number-theoretic transform in real ZK-SNARK/STARK backends. GDPR Art. 25 data-minimisation demonstrator. Explicitly educational.",
      "input_schema_ref": "chaingraph/cry-01-zk-compliance-proof-generator.html#manifest",
      "deadline": null,
      "deadline_note": "GDPR Art. 25 / FATF Travel Rule / EU AMLR 2024/1624",
      "consumes": [
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "feeds": [
        "cry-04-merkle-batch-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "educational_note": "Synthetic proof tokens — not cryptographically secure. For learning, demos, and architecture planning only.",
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:c5d758f79de7b13d3b76a0c77f4a5922703386c1dc80db64fb81a1829465a800",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "C4Quj8eaX/e9QD8UCdcKSJK7Nre0NZKO1PI0AMNH00ki8xZFF0zr53gbjwrhuceJIPOoyNIZHIa3273S2xVylxMNuC1KP7g31xsUJLh4nw/3zsKqupd4u11+j7J5NM9pJXH/OLohWXCqNgEbjCpbQefTE3W5CjvK+hMErcjK7owJNLUZGyzypdWm7gSxFxMyAv8/2jP/fMRhXsAYT/IMSwkoHG8Seb5/BWAmCbpHnH1GLqm+Ae0cLNX1rG6FpBnYH2p8pcevCPAOz2CeAtrwIZi97ZIJCfgi7MBCy14UHEcpQfLu0H1liKJaWRa34FPJ7NtgculmTk9rJ3LHT9Fx1g==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:c5d758f79de7b13d3b76a0c77f4a5922703386c1dc80db64fb81a1829465a800",
          "output": {
            "checks": [
              {
                "constraint_index": 0,
                "label": "Constraint 1",
                "satisfied": true
              },
              {
                "constraint_index": 1,
                "label": "Constraint 2",
                "satisfied": true
              },
              {
                "constraint_index": 2,
                "label": "Constraint 3",
                "satisfied": true
              },
              {
                "constraint_index": 3,
                "label": "Constraint 4",
                "satisfied": true
              }
            ],
            "compliance_flags": [
              "ZK_PROOF_VALID",
              "ZK_Groth16_VERIFIED"
            ],
            "constraint_count": 4,
            "predicate_label": "Amount Below Threshold",
            "predicate_type": "amount_below_threshold",
            "proof_commitment": "401693386006721edffeda7fa4dc981723f3ece38c2e8c42f1d227d4770f0589",
            "proof_ms_simulated": 32,
            "proof_result": "VALID",
            "proof_system": "Groth16"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "cry-04-merkle-batch-verifier",
      "tool_version": "1.0.0",
      "display_name": "Merkle Batch Verifier",
      "mcp_name": "verify_merkle_batch",
      "mandate_type": "cryptographic_mandate",
      "wave": 3,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/cry-04-merkle-batch-verifier.html",
      "description": "Batch-verifies Merkle inclusion proofs using SHA-256 over payment batches, settlement message sets, and ISO 20022 sets. Zero-egress, browser-local. DORA Art. 12 audit-trail integrity.",
      "input_schema_ref": "chaingraph/cry-04-merkle-batch-verifier.html#manifest",
      "deadline": null,
      "deadline_note": "DORA Art.12 cryptographic controls + BIS CPMI PFMI Principle 9 settlement integrity — both in force",
      "consumes": [
        "rca-02-mica-reserve-stress",
        "pnr-01-dora-ict-cascade-simulator"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator",
        "cry-05-agent-action-audit-trail-aggregator"
      ],
      "feeds_stub": [],
      "status": "live",
      "standards_basis": "not_applicable",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:7c89b9651f986ed6652903c6d41e9fbda29d12db9fbc0a6acd4f7270160b7ccb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "A6qeYlYkaTcq/lSYv86T6jX0Bl6H2p36/pJ34ZTIAvwCwupT6sO6eO6p/rdvnrPnsLAs8AK+lkU0h2nwbR5S5wFawvABqO6JUxhsmIFEog8Up37aLdeHKEXty0rWjRELI/QYifvS2f4S4oCrJduaxB8RvkDFa9kczGcwdFWTB6sfYbS/apuW2YEOYPSFvV+niFg7+uautVnGKacOdIiokSynUiMd2pIjHHqrqd93AFnVU5zOzrsQhyaUL8XQi2HKGJK46oXS8naiuG6nIZtrAqH6xDcFtq2qOm2vV+IVwtUNH/KRApv8LAQ7vWsR5lF1SHLXGPbjL3C9RpITuvoowg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ed9553c31a630d4b05d456b155da6ab2983f12c1ef7659b5220400da0e6be45c",
          "output": {
            "batch_integrity": "COMPROMISED",
            "failed_count": 0,
            "invalid_count": 0,
            "pass_rate": 0,
            "results": [],
            "total": 0,
            "verified_count": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "cry-05-agent-action-audit-trail-aggregator",
      "tool_version": "1.0.0",
      "display_name": "Agent-Action Audit-Trail Aggregator",
      "mcp_name": "aggregate_execution_receipts",
      "mandate_type": "cryptographic_mandate",
      "wave": 6,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/cry-05-agent-action-audit-trail-aggregator.html",
      "description": "The regulatory receipt. Aggregates N execution_hashes from an agent session into one SHA-256 Merkle-root session receipt with per-leaf inclusion proofs and an ordered chain-depth map. Sets session_receipt_root. The tamper-evident audit object for EU AI Act Art. 12 record-keeping + DORA. Consumes ANY ChainGraph artifact; feeds CRY-04, PTG-01.",
      "input_schema_ref": "chaingraph/cry-05-agent-action-audit-trail-aggregator.html#manifest",
      "deadline": null,
      "deadline_note": "session-level provenance receipt; positions execution_hash as a portable agent-action receipt.",
      "consumes": [
        "art-30-agent-commerce-conformance-validator",
        "art-31-a2a-x402-extension-mandate-validator",
        "art-33-mcp-server-self-attestation-pack",
        "cry-04-merkle-batch-verifier"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "standards_basis": "not_applicable",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5f7f6ab0bb2e2b736805ecde518ca59ba9a83ad38b17545a8c7c133cffa1481f","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JL/cFwV9+QpzfGOsLKaXi091Dz53genENgiZDVtAx18APWx+Dc9dtdE9H/3/T1hB8HbeDOWn+l58UnQfPwrl/w/y1PKXAcjXeTSxmqICpIE/MRPiQ0uRvSd7RMyXbt07GaAwgUX5UrJtFVIPfmLBJ6qjV8BgEvSqqfpjE+MXxH8J2qp/Bauw57AJwPdSczvO7uN9UKUfoL0TpHBeT13t/gOB3YWOX0YZgmapCpSWnlIPxVl6OkoA7dJ7ftqArSxMCtwHrjeQG4lEBV6iTkHifFN5fwfiYBSTNjdtejUtf0Eikcmsl4qKer91a0db+V7eMePRjD0BNy5Tew42NMhuTw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:931b8504b696bccaa9e2cf2d98f2302cb3671ef091c16803767bebbdbe634c6d",
          "output": {
            "aggregator_chain_depth": 1,
            "all_proofs_verified": false,
            "max_chain_depth": 0,
            "merkle_root": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
            "n_receipts": 0,
            "receipts": [],
            "session_receipt_root": "sha256:0000000000000000000000000000000000000000000000000000000000000000",
            "tree_depth": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "ml-01-isolation-forest",
      "tool_version": "1.0.0",
      "display_name": "Isolation Forest Transaction Anomaly Detector",
      "mcp_name": "detect_transaction_anomalies",
      "mandate_type": "risk_control",
      "wave": 3,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/ml-01-isolation-forest.html",
      "description": "Native-JS Isolation Forest anomaly detection on synthetic transaction batches. 10-tree forest, 4-feature scoring (amount, hour, counterparty frequency, recency), anomaly score histogram, flagged transaction table. Zero-egress: no real transaction data transmitted. Chains from ART-05 (EU AI Act credit-scoring) and ART-10 (AMLA typology).",
      "input_schema_ref": "chaingraph/ml-01-isolation-forest.html#manifest",
      "deadline": null,
      "deadline_note": "EU AI Act high-risk system classification Aug 2026; AMLA 2024/1624 SAR obligations; FCA Consumer Duty ongoing",
      "consumes": [
        "art-05-eu-ai-act-credit-scoring-conformity",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:78207d018dcf3f06b8aa059f913a99be9170d053e9cdccb55f4db93837d377fb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HbYOCOkuXurkBFVGiGK2l02pjznOCQlNqKia/M4RSeMwPvfIbqAZUEwNaQHdVx9za3TGESsA1QXDUKyiqcWYghjhsNzvFPuSgyDlpZrkCl7AL0upmfYDMxTdw6vvCZNkE6/UF0bcFbuuFCC/P9Vrc/pYdIbews8MXWzDMATkCOctO7HJkP+Dex/Amw7N+SCQgsRRRoawDoEfhvtKWl0fny9BLpU7v+Sn21Gfcg7orMR9c8kkC12mMvrvWQAX7pyMFsRYXq66Qm9UC/k3691DiaIuE83RCwfQkqymxNOGAuYAvXthi/Y3UXHIMV2mG/T/2J5Oy/JuSyRWgQvkg4QNJA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:78207d018dcf3f06b8aa059f913a99be9170d053e9cdccb55f4db93837d377fb",
          "output": {
            "flag_rate": 0.05,
            "flagged_count": 10,
            "max_anomaly_score": 0.7432,
            "mean_anomaly_score": 0.4828,
            "n_transactions_scored": 200,
            "p95_anomaly_score": 0.6207,
            "threshold": 0.6,
            "verdict": "NORMAL — Anomaly Rate Within Baseline"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "ml-02-credit-default-risk-scorer",
      "tool_version": "1.0.1",
      "display_name": "Credit Default Risk Scorer",
      "mcp_name": "score_credit_default_risk",
      "mandate_type": "credit_assessment",
      "wave": 4,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/ml-02-credit-default-risk-scorer.html",
      "description": "Logistic regression PD scorer on synthetic loan portfolio with Basel 3.1 F-IRB / A-IRB / SA RWA comparison (BCBS d424 formula, Φ⁻¹ Horner rational approximation). AUC-ROC trapezoid, KS statistic, Gini coefficient (EBA GL/2017/16 model performance thresholds). Chains from ART-05 (EU AI Act conformity). Feeds SIM-03 (Basel RWA Scenario Modeler).",
      "input_schema_ref": "chaingraph/ml-02-credit-default-risk-scorer.html#manifest",
      "deadline": "2027-12-02",
      "deadline_note": "EU AI Act Annex III Part 5(b) credit-scoring high-risk obligations — 2 December 2027, per the Digital Omnibus amendments (June 2026); EBA GL/2017/16 IRB model performance",
      "consumes": [
        "art-05-eu-ai-act-credit-scoring-conformity"
      ],
      "feeds": [
        "sim-03-basel-rwa-scenario-modeler",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:a2933b0418c10f52d341cae29d664e594f88937aa4ad42187f95eaf86af9bb2f",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BPeMEkhrvmy7FtJek9bFkmeThn+mmmaa1pk2zV3Perkv8yFh/J4CeH1z4/jRb1IRXGPG7kEaJ08A36PGTOjAAiE14+mwuCSt9LJflqC5HI4OCerN4cuYFyson/sp8PCjL2JxYbt/pcZ9sIAu8OEs90aObpuwumSsC3hurCrqpkwMBihQNCXmn8mScAylZRa5QniZdb0fmYDKeoZ6kALMoRCKu93d8QFTmslHD/J9V1rnb7ORKb+lGVWC8SLhIPXPEPQf0dixfkB9Nsc9jd0eTw0CLdRK2WQyq76lOoIQAdIb2ZzjY6f5UzxnbCTJBbDRIy1iC+8zPO0S1rlelqlBDg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:a2933b0418c10f52d341cae29d664e594f88937aa4ad42187f95eaf86af9bb2f",
          "output": {
            "auc_roc": 0.626506,
            "compliance_flags": [
              "CREDIT_SCORING_COMPLETED",
              "BASEL3_IRB_CAPITAL_COMPUTED",
              "EU_AI_ACT_ANNEX3_PART5B_HIGH_RISK_SYSTEM",
              "EBA_GL_2017_16_MODEL_PERFORMANCE_ASSESSED",
              "MODEL_PERFORMANCE_BELOW_0_70_AUC",
              "BCBS_D424_IRB_FORMULA_APPLIED"
            ],
            "expected_loss_gbp": 58934926,
            "gini_coefficient": 0.253013,
            "high_pd_loans": 498,
            "irb_capital_gbp": 0,
            "irb_rwa_gbp": 0,
            "irb_vs_sa_saving": 1,
            "ks_statistic": 0.233837,
            "n_defaults_observed": 87,
            "n_loans_scored": 500,
            "portfolio_pd": 0.506899,
            "sa_capital_gbp": 7207934,
            "sa_rwa_gbp": 90099181,
            "total_ead_gbp": 257426232,
            "verdict": "WEAK_MODEL_ELEVATED_RISK"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "ml-03-timeseries-anomaly-detector",
      "tool_version": "1.0.0",
      "display_name": "Time-Series Anomaly Detector",
      "mcp_name": "detect_timeseries_anomalies",
      "mandate_type": "risk_control",
      "wave": 4,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/ml-03-timeseries-anomaly-detector.html",
      "description": "Rolling-window z-score and STL-style seasonal decomposition anomaly detection on synthetic payment volume time series. Control chart (UCL/LCL 3σ), trend/seasonal/residual panel decomposition, anomaly flag table with severity, naïve ARIMA-lite 30-period forecast. Chains from SIM-03 (Basel RWA Scenario Modeler). Feeds RCA-01 (FRTB IMA). DORA Art.17 monitoring / EBA GL/2021/03 operational risk / PSD2 Art.96 fraud reporting.",
      "input_schema_ref": "chaingraph/ml-03-timeseries-anomaly-detector.html#manifest",
      "deadline": null,
      "deadline_note": "DORA Art.17 ICT-risk monitoring in force Jan 2025; EBA GL/2021/03 operational risk guidelines; PSD2 Art.96 fraud reporting ongoing",
      "consumes": [
        "sim-03-basel-rwa-scenario-modeler"
      ],
      "feeds": [
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:ae20b291caf5eac025d4e7103782427565fe7cf0c99f4045122257c87db0d9c6","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "EUruWMFa95zqznDl1F8Yt4RazPfNmtMMuTyrMBTOViMG3LlZzAMhfQLS1TBMmmqPvH1QLS0T0WB9AYl5ZovKTSF5pVSkSgxVb9X1CcsAbbezZtBDFyX49zzCeAQia4eZFxxr0YYXJHv/EZzeUf+YqLFBBPxl6p672IHECk36U+sb0o7qGX474/ZPDq1P3BM14nWdroMidNFoDb0UlEsy1Bw4mnwg9is/QuuJnlnHEyLO5EKeiocJ5OwEk++e2SHHJejPhJEVikHWidjRgOWWBZcMOYldxsLTv196kId4Yu8EQQ8sHJgOAp0Wjy1CSGXx6dHdPY8nCAP0RljF1yj+mw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:ae20b291caf5eac025d4e7103782427565fe7cf0c99f4045122257c87db0d9c6",
          "output": {
            "anomalies_flagged": 2,
            "flag_rate": 0.0222,
            "flagged_periods": [
              {
                "direction": "Spike-Up",
                "severity": "HIGH",
                "t": 29,
                "z": 7.104
              },
              {
                "direction": "Spike-Up",
                "severity": "HIGH",
                "t": 68,
                "z": 5.265
              }
            ],
            "high_severity_flags": 2,
            "max_abs_z_score": 7.104,
            "medium_severity_flags": 0,
            "n_periods": 90,
            "verdict": "Elevated Anomaly Rate — Review Required"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "mms-03-app-fraud-graph",
      "tool_version": "1.0.0",
      "display_name": "APP Fraud Graph Simulator",
      "mcp_name": "simulate_app_fraud_graph",
      "mandate_type": "aml_rule",
      "wave": 3,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/mms-03-app-fraud-graph.html",
      "description": "Monte Carlo BFS simulation of Authorised Push Payment (APP) fraud propagation across a payment-account graph. UK PSR reimbursement framing. Zero-egress.",
      "input_schema_ref": "chaingraph/mms-03-app-fraud-graph.html#manifest",
      "deadline": null,
      "deadline_note": "UK PSR Reimbursement Policy Oct 2024 (£85k cap) — live obligation; EBA fraud monitoring guidelines ongoing",
      "consumes": [
        "art-09-dora-incident-classifier",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "feeds_stub": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:e4475d26f24233cd44e35864937108b85615179add6786403c54a4540d903def",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "C6RawOyW1sBxWngMHFwRRa/2eAnzZD15z66BC9C0PuES905/Xh/hGFCyhuVDro/9+y5nVM83b513khqtQGu77xiGRI9W146LW/4qeEAPHq6KjVyqD3CLzeOWt4gKNo2KHggW8q7p0Wt9LWcaLnTG6s0gsJ444cMFlXRT4/U8R7sYkwJsnedwSKDfOFfN4pXAjBWC17ZMrxgJ+mv7nCAewBNYwlPXK+gMSv+NJheXJhFfRw6yYh5i2G5n/dIsIQq4JRioRGpT/OnlLg5O+CCJNHP3Ji7q00y8Mie0pYRM54kEKEaeJgafCPoxDfbw+wjok6wFOJJQwi3CpameFsZM3w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e4475d26f24233cd44e35864937108b85615179add6786403c54a4540d903def",
          "output": {
            "compliance_flags": [
              "UK_PSR_REIMBURSEMENT_ASSESSED",
              "EBA_FRAUD_MONITORING_GUIDELINES",
              "SEPA_INSTANT_SCT_FRAUD_REVIEW",
              "PSD2_TRANSACTION_MONITORING",
              "PSR_BREACH_UNLIKELY"
            ],
            "fraud_verdict": "CONTAINED",
            "loss_p95": 19400,
            "mean_detection_hop": 1.31,
            "mean_loss_at_risk": 7511.33,
            "n_paths": 300,
            "node_reach_probabilities": {
              "aggregator": 0,
              "beneficiary_001": 0.39,
              "beneficiary_002": 0.41,
              "clean_001": 0,
              "clean_002": 0,
              "clean_003": 0,
              "clean_004": 0,
              "clean_005": 0,
              "clean_006": 0.3233,
              "clean_007": 0.3267,
              "clean_008": 0,
              "clean_009": 0,
              "mule_A": 0.49,
              "mule_B": 0.51,
              "victim_001": 0,
              "victim_002": 0,
              "victim_003": 0,
              "victim_004": 0,
              "victim_005": 0.26,
              "victim_006": 0
            },
            "psr_threshold_breach_probability": 0
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "pnr-01-dora-ict-cascade-simulator",
      "tool_version": "1.0.0",
      "display_name": "DORA ICT Cascade Simulator",
      "mcp_name": "simulate_ict_cascade",
      "mandate_type": "infrastructure_mandate",
      "wave": 3,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/pnr-01-dora-ict-cascade-simulator.html",
      "description": "Monte Carlo cascade simulation of ICT incident propagation across a financial-institution dependency graph under DORA (EU) 2022/2554. 500 stochastic BFS paths; models failure propagation, recovery, and concentration risk.",
      "input_schema_ref": "chaingraph/pnr-01-dora-ict-cascade-simulator.html#manifest",
      "deadline": null,
      "deadline_note": "DORA (EU) 2022/2554 in force January 2025; TLPT requirements ongoing",
      "consumes": [
        "art-09-dora-incident-classifier"
      ],
      "feeds": [
        "sim-07-open-banking-consent-flow-stress",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:d4edfa0ba9cd195aecdc9a77ffd6e108ca1c8d56ad899e79cfe848617854b65c",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IpSeO2CgPCxErhReqkLhQhVniUgpBBXkk0hAZobrdl0G40fg7H843mTSSTI/pdPJI0SXrVV6Ksa9YTskNhIwqBxne3tdxHw90VumfteSeurz+4vUHoEbBFORmf0sLw8hL4DG8nfiUUZ0eOfD3gKBn+s2OA5celFOMrLcvRfnyI8WSmy4/eP5NJRpC9shaqrMChdGwFk5vqVDiUaDNOXv5yRCVvt8DX5dMFsqJPFy6+xviFoAeqOPQFJWiiLmEj/TFjgFANcX8kP1c9I3ySeKKf3gdUSG3mpXLJUBdOdwYCMGVD3FSUyFd9WUlT7BltM8Lg/GWCOPK0YSo7cjBtqP7Q==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:d4edfa0ba9cd195aecdc9a77ffd6e108ca1c8d56ad899e79cfe848617854b65c",
          "output": {
            "compliance_flags": [
              "DORA_MAJOR_INCIDENT_RISK_HIGH",
              "DORA_REPORTING_THRESHOLD_EXPOSURE",
              "CRITICAL_FUNCTION_CASCADE_RISK",
              "RAPID_PROPAGATION_RISK"
            ],
            "critical_path_node": "payment_gateway",
            "dora_reporting_probability": 1,
            "median_nodes_affected": 4,
            "n_paths": 500,
            "node_cascade_probabilities": {
              "api_gateway": 0,
              "backup_datacenter": 0,
              "clearing_interface": 1,
              "core_banking": 1,
              "customer_portal": 0,
              "database_primary": 0,
              "database_replica": 0,
              "fraud_detection": 0,
              "identity_service": 0,
              "message_broker": 0,
              "mobile_app": 0,
              "monitoring": 0,
              "payment_gateway": 1,
              "reporting_engine": 0,
              "swift_gateway": 1,
              "third_party_kyc": 0
            },
            "p25_breach_h": 0.14,
            "p50_breach_h": 0.36,
            "p5_breach_h": 0.03,
            "p75_breach_h": 0.66,
            "p95_breach_h": 1.41,
            "topology_id": "bank_core",
            "verdict": "CRITICAL_CASCADE"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "ptg-01-ap2-prompt-template-generator",
      "tool_version": "1.0.0",
      "display_name": "AP2 Prompt Template Generator",
      "mcp_name": "compose_ap2_prompt",
      "mandate_type": "prompt_template",
      "wave": 1,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/ptg-01-ap2-prompt-template-generator.html",
      "description": "Transforms any ChainGraph artifact JSON into a structured, regulator-framed prompt for any external LLM. Template registry v1.0.0: one entry per mandate_type with regulatory citations, audience framing, stochastic-output conventions, escalation conditions.",
      "input_schema_ref": "chaingraph/ptg-01-ap2-prompt-template-generator.html#manifest",
      "deadline": null,
      "deadline_note": "Chains into all tools — the execution-hash citation footer makes every LLM narrative traceable",
      "consumes": [],
      "feeds": [
        "ALL"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:5f23d03d4d538507b92a3f3461e5d0ebb6987227fd3a7ae41281216fc2fabe8e","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "ErVeLk1xvIGzz7zW0HAXFEOKueqIiRXJIkIBdzilrP4fQbY+ppO9xh2BHO4gAyHZvX/x5l+hOu5HDMj9Bxlmsh0oiN/VS/HJacuswIFBUt9uq278/ePMbsqIWJay2CD/EXosOeel+xg4g3afBmHmvfOns5k1KZukeYabYEBHJ0sKsjDDkG/03bjupAEI6UAOtKKcZX6X548+Qjz4fKhRcxd6SjHJDJFQxlPpllP35/LZUBBoKzohpv+xcCsksikCBKjfCbz9XYAwgYlt2I6bqea0rRRqvi0j9hJqE++jp3kJRZ8a8+QSRbjEihs0pqI2KG7DwzfxvxCB64AdTyruhw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:5f23d03d4d538507b92a3f3461e5d0ebb6987227fd3a7ae41281216fc2fabe8e",
          "output": {
            "audience": "board",
            "claude_deeplink": "https://claude.ai/new?q=You%20are%20a%20financial%20compliance%20analyst.%20Prepare%20a%20plain_english_summary%20for%20the%20board%20audience.%0A%0ATone%3A%20Formal%20professional%20language%0AMandate%20type%3A%20unknown%0ATool%3A%20unknown%0AExecution%20hash%3A%20unknown%0AChain%20depth%3A%200%0A%0AKey%20findings%20from%20the%20tool%20output%3A%0A%7B%7D%0A%0AInclude%20regulatory%20citations%20relevant%20to%20mandate%20type%20unknown.%0A%0AStructure%20the%20plain_english_summary%20with%3A%20Executive%20Summary%2C%20Key%20Findings%2C%20Risk%20Assessment%2C%20Recommended%20Actions.",
            "generated_prompt": "You are a financial compliance analyst. Prepare a plain_english_summary for the board audience.\n\nTone: Formal professional language\nMandate type: unknown\nTool: unknown\nExecution hash: unknown\nChain depth: 0\n\nKey findings from the tool output:\n{}\n\nInclude regulatory citations relevant to mandate type unknown.\n\nStructure the plain_english_summary with: Executive Summary, Key Findings, Risk Assessment, Recommended Actions.",
            "generated_prompt_length": 423,
            "include_citations": true,
            "mandate_type_matched": "unknown",
            "source_execution_hash": "unknown",
            "source_tool_id": "unknown",
            "task": "plain_english_summary",
            "tone": "formal"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "qfa-01-options-greeks",
      "tool_version": "1.0.0",
      "display_name": "Options Greeks Calculator",
      "mcp_name": "compute_options_greeks",
      "mandate_type": "risk_parameter",
      "wave": 3,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/qfa-01-options-greeks.html",
      "description": "Black-Scholes options pricer with full Greeks (delta, gamma, theta, vega, rho). Equity, FX and rate presets; payoff profile and sensitivity charts. Zero-egress, deterministic.",
      "input_schema_ref": "chaingraph/qfa-01-options-greeks.html#manifest",
      "deadline": null,
      "deadline_note": "FRTB SA greeks — UK PRA PS1/26 Jan 2027; buy-side pre-validation ahead of FRTB-IMA UK Jan 2028",
      "consumes": [],
      "feeds": [
        "qfa-04-xva-cva-calculator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "feeds_stub": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:4c530398ab42ff734dd6db698e15fbea8f6eaaede6646e324af8e79d514dfa44","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "BDU2wAw5E9UPhCn/0DbN5GqtCaKZ2BtJ0Oo0Uir8HjwVmsAbSKoTYH+U90suHm7EBd+wbY2janUxOykApMQqUQBx9KAaHY9hYZ+FY5sIxwOoTCaRGOzhGLJINWMvo0dDB17XObE2ou7fowVfXfgLZkclQyX4tlIfKdqWLYk63TIvZGRi26WI9go2MHa6dZTiVIueJRHtjo+g0MySj8AqGRQrIEkqFtfeVYrPyY3J5kJsvZtIqZEM2bmtGX7JNB8JDuRtQTrD8t9P8lDHMDyMWnKf4bu5dBDO7Z+hzuYrPXEuZUFy6UMw33OJIrqWTLsCYZw4d7HadQ2D+a8XniIIpQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:4c530398ab42ff734dd6db698e15fbea8f6eaaede6646e324af8e79d514dfa44",
          "output": {
            "d1": 0.173797,
            "d2": 0.074485,
            "delta": 0.568988,
            "delta_risk_band": "MODERATE",
            "gamma": 0.039568,
            "price": 4.579025,
            "rho_per_pct": 0.129008,
            "theta_per_day": -0.028848,
            "type": "call",
            "vega_per_pct": 0.195131
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "qfa-02-portfolio-var-engine",
      "tool_version": "1.0.0",
      "display_name": "Portfolio Covariance & VaR Engine",
      "mcp_name": "compute_portfolio_var",
      "mandate_type": "risk_control",
      "wave": 2,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/qfa-02-portfolio-var-engine.html",
      "description": "VaR and Expected Shortfall: Historical Simulation, Parametric (variance-covariance), and Monte Carlo with Cholesky 2-factor correlation structure. P&L histogram (30 bins), 8×8 covariance heatmap. 500 assets, seeded LCG RNG. Buy-side zero-egress story.",
      "input_schema_ref": "chaingraph/qfa-02-portfolio-var-engine.html#manifest",
      "deadline": null,
      "deadline_note": "Buy-side; pre-validation ahead of FRTB-IMA UK Jan 2028",
      "consumes": [
        "sim-03-basel-rwa-scenario-modeler"
      ],
      "feeds": [
        "qfa-03-stress-test-engine",
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:9051ffa2fd22d389890aa26c21be6f7d3f32a0da1de5ba47890946271487ebe3",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "GC1nhD1VfU2hlIFjrncHEIWhwYEL78WhBBYom7v/CeEZx920q5KZcqp1j09rlsutSAHZ+5Y1FahqL8TH4+1gWgDbM1ozea1U3ygFhLwM3wYsVtPsqQVElzyjJ541SvOcLBfDmF/c++/2+ylsmdzDRA9XSYsTtCLDsjiMNl7yKb8E8bIRIvWeqKPFQ8GIJBs+zgVQ9957W0i6GF3Wod7j/AYxwO7srrzwXfCd7x18K2nLhXQov9cQuPAihOAOJL+FAoBoytQLp3sryCQGdhjpEuedqx2JaYICQgKzodZC38cUWHekJheHHJLKtILi5i7uOqijrck9+oLeo/FclaeELw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:9051ffa2fd22d389890aa26c21be6f7d3f32a0da1de5ba47890946271487ebe3",
          "output": {
            "compliance_flags": [
              "VAR_WITHIN_LIMITS"
            ],
            "conf_level": 0.99,
            "es_dollar_mm": 6.7595,
            "hist_var_pct": 0.056619,
            "holding_period": 10,
            "mc_es_pct": 0.067595,
            "mc_var_pct": 0.056619,
            "n_paths": 2000,
            "param_es_pct": 0.070454,
            "param_var_pct": 0.061438,
            "portfolio_vol_hp": 2.6413,
            "var_dollar_mm": 5.6619,
            "verdict": "MODERATE_RISK"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "qfa-03-stress-test-engine",
      "tool_version": "1.0.0",
      "display_name": "Stress Test Engine",
      "mcp_name": "compute_stress_test_scenarios",
      "mandate_type": "risk_parameter",
      "wave": 4,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/qfa-03-stress-test-engine.html",
      "description": "Multi-scenario stress testing across 6 historical crisis scenarios (GFC 2008, COVID Mar 2020, Dot-com Bust, Lehman Week, Rate Shock 2022, SVB Contagion 2023) with Monte Carlo per scenario. Equity/credit/rate factor decomposition, stressed VaR and ES, stress multiplier, recovery-day estimate. Chains from QFA-02 (VaR Engine). Feeds RCA-01 (FRTB IMA). Basel 3.1 Pillar 2 ICAAP / EBA GL/2018/04 / FRTB MAR30 stress calibration reference.",
      "input_schema_ref": "chaingraph/qfa-03-stress-test-engine.html#manifest",
      "deadline": null,
      "deadline_note": "Basel III Pillar 2 ICAAP ongoing; EBA GL/2018/04 stress scenario guidelines; FRTB-IMA UK Jan 2028 pre-validation",
      "consumes": [
        "qfa-02-portfolio-var-engine"
      ],
      "feeds": [
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:16acc10c94489a5127aab924048c6903c4df2ac6bb1acb5f2d1b2ed1982769d4",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "IZqDvW/PgSaalNFW/khXUuNU/nbOYx3J/+gz4U1q02wI/zLbdrInxjxp9XfXjLIDxe5v5GHF3zchL14JBBohLgqWQjgPySv2JInlFpDSL0GWcdeCHczWQDHlJCHNVn9AFzb++FI0aoIY3tm4DfZQIyQI3R6Lgxw27fpAlXnt5gsrPVjByHvSgBxv7eEfpcDjAbLKpGdcaKLGWZHqif4VMyVc5I1CeObNoUnTcfMP4zJgcp5KQ4Uw8gC5U0ARaYVxEwBMDZxJswAcWrRotLKLFWOEL+AD3zHVZBUfz31aKmYqVKrh51lRxdfEg0MTwKJrV+/rOX0tV9qPvWcGfADDmw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:16acc10c94489a5127aab924048c6903c4df2ac6bb1acb5f2d1b2ed1982769d4",
          "output": {
            "compliance_flags": [
              "PILLAR2_CAPITAL_BUFFER_REQUIRED",
              "EBA_GL_2018_04_STRESS_TEST_APPLIED",
              "BASEL3_PILLAR2_ICAAP_STRESS_ASSESSED"
            ],
            "max_drawdown": 0.462,
            "normal_var_pct": 0.064241,
            "recovery_days_estimate": 6160,
            "scenario_details": [
              {
                "creditLoss": 0.15,
                "creditShock": 0.06,
                "equityLoss": 0.252,
                "equityShock": -0.42,
                "horizon": 10,
                "id": "gfc_2008",
                "label": "GFC Peak (Oct 2008)",
                "rateLoss": 0.06,
                "rateShock": -0.02,
                "recoveryDays": 6160,
                "stressedES": 0.708522,
                "stressedVar": 0.679456,
                "totalLoss": 0.462,
                "volMult": 3
              },
              {
                "creditLoss": 0.075,
                "creditShock": 0.03,
                "equityLoss": 0.204,
                "equityShock": -0.34,
                "horizon": 10,
                "id": "covid_2020",
                "label": "COVID Crash (Mar 2020)",
                "rateLoss": 0.045,
                "rateShock": -0.015,
                "recoveryDays": 4320,
                "stressedES": 0.541549,
                "stressedVar": 0.52097,
                "totalLoss": 0.324,
                "volMult": 2.8
              },
              {
                "creditLoss": 0.03,
                "creditShock": 0.012,
                "equityLoss": 0.27,
                "equityShock": -0.45,
                "horizon": 20,
                "id": "dotcom_bust",
                "label": "Dot-com Bust (2000–02)",
                "rateLoss": 0.075,
                "rateShock": -0.025,
                "recoveryDays": 5000,
                "stressedES": 0.614064,
                "stressedVar": 0.598109,
                "totalLoss": 0.375,
                "volMult": 2.2
              },
              {
                "creditLoss": 0.0875,
                "creditShock": 0.035,
                "equityLoss": 0.06,
                "equityShock": -0.1,
                "horizon": 5,
                "id": "lehman_week",
                "label": "Lehman Week (Sep 2008)",
                "rateLoss": 0.015,
                "rateShock": 0.005,
                "recoveryDays": 2167,
                "stressedES": 0.426933,
                "stressedVar": 0.387848,
                "totalLoss": 0.1625,
                "volMult": 4.5
              },
              {
                "creditLoss": 0.045,
                "creditShock": 0.018,
                "equityLoss": 0.12,
                "equityShock": -0.2,
                "horizon": 20,
                "id": "rate_shock",
                "label": "Rate Shock (2022)",
                "rateLoss": 0.12,
                "rateShock": 0.04,
                "recoveryDays": 3800,
                "stressedES": 0.484122,
                "stressedVar": 0.464884,
                "totalLoss": 0.285,
                "volMult": 1.8
              },
              {
                "creditLoss": 0.05,
                "creditShock": 0.02,
                "equityLoss": 0.18,
                "equityShock": -0.3,
                "horizon": 5,
                "id": "svb_2023",
                "label": "SVB Contagion (Mar 2023)",
                "rateLoss": 0.015,
                "rateShock": 0.005,
                "recoveryDays": 3267,
                "stressedES": 0.384756,
                "stressedVar": 0.372546,
                "totalLoss": 0.245,
                "volMult": 2.4
              }
            ],
            "scenario_losses": {
              "covid_2020": 0.324,
              "dotcom_bust": 0.375,
              "gfc_2008": 0.462,
              "lehman_week": 0.1625,
              "rate_shock": 0.285,
              "svb_2023": 0.245
            },
            "stress_multiplier": 10.8726,
            "stressed_es_pct": 0.731728,
            "stressed_var_pct": 0.698464,
            "verdict": "HIGH_STRESS_EXPOSURE",
            "worst_case_loss": 0.462,
            "worst_case_scenario": "gfc_2008"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "qfa-04-xva-cva-calculator",
      "tool_version": "1.0.0",
      "display_name": "XVA / CVA Calculator",
      "mcp_name": "calculate_xva",
      "mandate_type": "risk_parameter",
      "wave": 3,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/qfa-04-xva-cva-calculator.html",
      "description": "Monte Carlo XVA/CVA calculator. Simulates expected-exposure profiles for IRS, FX forwards, and CDS; computes CVA, DVA, FVA via discounted expected positive/negative exposure. Zero-egress.",
      "input_schema_ref": "chaingraph/qfa-04-xva-cva-calculator.html#manifest",
      "deadline": null,
      "deadline_note": "Basel III SA-CVA (BCBS d325) ongoing; FRTB CVA desk requirements — UK PRA PS1/26 Jan 2027",
      "consumes": [
        "qfa-01-options-greeks"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "feeds_stub": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:610e4753f0cc5efc58fe433b1ebc1277facbc7952b89439515a00493070bb3e0",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "JMQEJ2f67Tz93x9+MLrIBrEJ3rVCEqXzZUZYc86leQgeHZlD/T3DKtL34O+/04sNiqMimTpRLRp2jO0U05GufQ1gYBLsUXRdqNcy0VgUnTuh2fjJOQOMbnDz96YWWrquH3nN3K0I90coYPAs12CuCN732GrgEJ5go2zNaSIB+90pXFbdm3ToSz3Anbs7piAZkG47ar70p6D/5iYZZRjBPS8AgUUHQIo7KO4REsFC5o7OKVaLEZGFkTij7yhA6TfICoBUXeVXVWomzv2+A2GxQoW/BUPcwQ8pZ1NCw5iikCwr9YidtYXHaeltKOIFODzUvF4PfQCe7yBYs5DctbtG+w==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:610e4753f0cc5efc58fe433b1ebc1277facbc7952b89439515a00493070bb3e0",
          "output": {
            "compliance_flags": [
              "FRTB_CVA_DESK_COMPUTED",
              "BASEL_III_SA_CCR_ASSESSED",
              "IFRS13_FAIR_VALUE_HIERARCHY",
              "SA_CVA_LOW_RISK"
            ],
            "cva": 4853.45,
            "cva_basis": "Basel_III_SA-CVA_EPE_discounted",
            "dva": 991.16,
            "dva_basis": "ENE_own_hazard_discounted",
            "fva": 4318.22,
            "fva_basis": "EPE_funding_spread_integral",
            "n_paths": 400,
            "n_steps": 40,
            "peak_epe": 202141.57,
            "peak_epe_pct_notional": 2.021,
            "verdict": "LOW",
            "xva": 8180.51,
            "xva_risk_rating": "LOW"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "rca-01-frtb-ima-pre-validator",
      "tool_version": "1.0.0",
      "display_name": "FRTB IMA Expected Shortfall Pre-Validator",
      "mcp_name": "simulate_frtb_es",
      "mandate_type": "risk_parameter",
      "wave": 3,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/rca-01-frtb-ima-pre-validator.html",
      "description": "FRTB IMA Expected Shortfall pre-validation: MC simulation across liquidity horizons LH1–LH5 (10/20/40/60/120 days), NMRF surcharge estimation, PLA Test (green/amber/red), IMA vs SA floor capital comparison. Educational pre-validator ahead of UK IMA go-live January 2028.",
      "input_schema_ref": "chaingraph/rca-01-frtb-ima-pre-validator.html#manifest",
      "deadline": "2028-01-01",
      "deadline_note": "UK FRTB-IMA go-live January 2028; EU slipped to ~2029-30. Pre-validation educational tool.",
      "consumes": [
        "qfa-02-portfolio-var-engine",
        "sim-03-basel-rwa-scenario-modeler"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:da8805bcbfcd243d64f4bc2ac97f773b290fe8baa5a30fa7277e2d8c965506bb","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "HEGt/K7yUhVaIy2REeb5lOx1lx1mbGpk4vc+8T0WZBIv7cC1aa/nbVik39LeSP5E68C+UG+2C+rnosT2AhWeNwBDODK4FGDsTkjY0BQVGoFbALBwJOLvMM2TuohJ5kw2GudfPPEKfGE3uMBF+epg0eAGRJxUq0auOjz6RwUEGNQhQcGjgRzOVOo8HMvA4tX+g4IbevDqrtXD76fRfBn9dyhw2w79sLTGvDcursiDvC1YFXQ7gpQ0aD2vomw/XvzpL19bHQBfRXxPvjZKzPsMhkmvWcLoVnA/LdhG8WVTYl0gsu5KJQ30SbUzByc6n2bu3oFbc64NW0w0rdQg5ch3Fw==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:da8805bcbfcd243d64f4bc2ac97f773b290fe8baa5a30fa7277e2d8c965506bb",
          "output": {
            "capital_ima": 0.03,
            "capital_required": 0.03,
            "confidence_level": 0.975,
            "es_97_5_pct": 0.02,
            "es_by_lh_class": [
              0.01,
              0.01,
              0.01,
              0,
              0
            ],
            "floor_binding": false,
            "n_positions": 20,
            "n_scenarios": 500,
            "nmrf_surcharge": 0,
            "pla_ratio": 1.0295,
            "pla_test_status": "GREEN",
            "sa_floor": 0.02,
            "undiversified_es": 0.07,
            "verdict": "IMA Pre-Validation Passed"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "rca-02-mica-reserve-stress",
      "tool_version": "1.0.0",
      "display_name": "MiCA Stablecoin Reserve Stress Simulator",
      "mcp_name": "simulate_stablecoin_reserve",
      "mandate_type": "liquidity_mandate",
      "wave": 3,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/rca-02-mica-reserve-stress.html",
      "description": "Monte Carlo simulation of stablecoin reserve portfolios under MiCA Article 36 redemption stress and asset price shocks. 1,000 paths × 90-day horizon. Coverage ratio fan chart (P5–P95), breach probability curve, Article 36 liquid buffer analysis, fire-sale contagion estimate. Complements ART-06 (static attestation) with full stochastic dimension.",
      "input_schema_ref": "chaingraph/rca-02-mica-reserve-stress.html#manifest",
      "deadline": "2024-06-30",
      "deadline_note": "MiCA Title III/IV in force June 30 2024 — ART/EMT issuers subject to Article 36 reserve requirements now",
      "consumes": [
        "art-06-genius-act-reserve-attestation",
        "sim-01-lcr-nsfr-liquidity-stress-test"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator",
        "cry-04-merkle-batch-verifier"
      ],
      "feeds_stub": [],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:6fce2ba734c51cd45d54192ce1f75dba7e32561d4e7ee9792a7bfae0cdfea260",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Baj+aUZ06Ndurv3fsCNNGVEh3Zy7Gs9lEAnSLec+AYANtMGuDFvuLpb1r3TVANYjKZ5TuGMDQ34vWYzvKXej1BB9oyM80YknVXj9aWMCK6mvTfvXnHoOnXU+Y9ExbE5/GeD3polc+ezfXr5ho+2aKGXxt+yU4wxPYSAuyqtEKbImQBuYpwk+i8lrg0zyagQjrsfoLm6y5rB1G0N1DMDb0BIJxtde0nDWbkL1KmhWvQXuMeZEELVyciHcd7xA0uLxIqmtwFDtx+1QeNt0usUvpqKlBtQYuuvb6+iMuT+pFCsBhSeKpMcln3lfNgLcXumgoSQvGY08ptrC1HQUBARP2A==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:6fce2ba734c51cd45d54192ce1f75dba7e32561d4e7ee9792a7bfae0cdfea260",
          "output": {
            "art36_buffer_adequate_pct": 100,
            "breach_probability_pct": 62.8,
            "compliance_flags": [
              "MICA_ART36_RESERVE_BREACH_LIKELY",
              "MICA_ART36_BUFFER_SUFFICIENT"
            ],
            "coverage_p50_end_day": 0.7117,
            "coverage_p5_end_day": 0.0289,
            "horizon_days": 30,
            "n_paths": 500,
            "peak_breach_pct": 80,
            "scenario": "moderate",
            "verdict": "BREACH_LIKELY"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "rca-03-iso20022-address-migration-verifier",
      "tool_version": "1.0.0",
      "display_name": "ISO 20022 Structured-Address Migration Batch Verifier",
      "mcp_name": "verify_address_migration_batch",
      "mandate_type": "compliance_mandate",
      "semantic_profile": "iso20022:pacs.008-subset",
      "wave": 1,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/rca-03-iso20022-address-migration-verifier.html",
      "description": "GPU-parallel validation of PostalAddress24 fields across pacs.008 messages (up to 500k). Country-specific rules (UK postcode, DE Postleitzahl, US ZIP+4), MT103 :50K: truncation-risk flagging, November-2026 readiness score.",
      "input_schema_ref": "chaingraph/rca-03-iso20022-address-migration-verifier.html#manifest",
      "deadline": "2026-11-01",
      "deadline_note": "SWIFT CBPR+ structured-address mandate — November 2026 (~5 months). Hardest deadline tool in suite by proximity.",
      "consumes": [],
      "feeds": [
        "art-11-vop-batch-match-rate-analyser",
        "art-08-en16931-einvoice-batch-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:b41abc8dbbec9f4b614bec77a444fbf320cdc1ff4f6fea220336759777c104e4",
          "valid_from": "2026-07-10"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-10"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "KVQUMkciHc4qQeQrkDJ/JVc0WDSsiBk1Q40nffSxqjQZhnCidpvRLX7hodkG+GSp5fMLZ+5iy0al1hcxaePO4gt2hrcvMLjU+kMTPDbb1vTBo+hPiWIg/nz6VAf5Iy6CF3D58D0k0yTb7t8jBECP7imFH21UttSUhymtS2qlnkcQB2V1nDGJIiQsaA98F4umTBM21PbMnLwp8wCJHQzTkTA14w0gsNludfG7jjRo2Wn9dOn0+lmHqbvnURI7bNgWI/M//6tf8u9Qt7ZyeAfcqLHFP2fSED4avLInsLvqQrgiXahSIq7q/P0MCvpINxkgKU2hFnQPdD/+BzvjL2GPXg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:b41abc8dbbec9f4b614bec77a444fbf320cdc1ff4f6fea220336759777c104e4",
          "output": {
            "batch_summary": {
              "fail": 2,
              "pass": 3,
              "total": 5,
              "truncation_risk": 5,
              "warn": 0
            },
            "compliance_flags": [
              "ISO20022_NOV2026_NOT_READY",
              "TRUNCATION_RISK_DETECTED",
              "RECORDS_FAILING_VALIDATION"
            ],
            "failing_records": [
              {
                "country": "FR",
                "index": 2,
                "issues": [
                  "MISSING_REQUIRED_POSTCODE"
                ],
                "name": "ABC Corp",
                "status": "FAIL",
                "truncation_risk": true
              },
              {
                "country": "IT",
                "index": 3,
                "issues": [
                  "MISSING_NAME"
                ],
                "name": "",
                "status": "FAIL",
                "truncation_risk": true
              }
            ],
            "november_2026_readiness_pct": 60,
            "verdict": "NOT_READY"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "sim-01-lcr-nsfr-liquidity-stress-test",
      "tool_version": "1.0.0",
      "display_name": "Liquidity Stress Test Simulator (LCR/NSFR)",
      "mcp_name": "run_liquidity_stress_test",
      "mandate_type": "liquidity_mandate",
      "wave": 1,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/sim-01-lcr-nsfr-liquidity-stress-test.html",
      "description": "Monte Carlo simulation of LCR and NSFR under Basel III stress (CRR Art. 412/428, EBA GL/2017/01). 1,000 paths × 250 time steps. P5–P95 percentile distribution, breach probability, time-to-breach, sensitivity tornado.",
      "input_schema_ref": "chaingraph/sim-01-lcr-nsfr-liquidity-stress-test.html#manifest",
      "deadline": null,
      "deadline_note": "Basel III LCR/NSFR ongoing; strongest classic regulatory narrative in the suite",
      "consumes": [],
      "feeds": [
        "rca-02-mica-reserve-stress",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "feeds_stub": [
        "mms-02"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:e22635c466fd20d5fb8ff61aa494e70f70f958e303b5d52a90e0f0f22a6e930e",
          "valid_from": "2026-07-13"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-13"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "F+RjBVhfs3aOjDpiqaDcjnu7xOp4ILjVcAbB+/wMEyAlr4nSY5Wpg7DuRjZRqu3585OVmV359s/j5PltdLmUaCGY4ipWy0aDTGcbMHfI7uTpciyFOfbbER4MOwf8u2c4KaeZaMkhw05IoRfJYhcCUsJ1gc2BMp/em+OJDW42aFAt0HoIdWvCQR954vOdKmbVQ1RxhRT2NA8PJvNsMtjAbiuRtwGr20JsehLGQZn+u0Zg73iqUuFBw12ifbLlF73AHpzqzmA3hP90yECXtU87oubEm4liiKS/JGmi80XyqEANftJouZHlvyvF4PAx9PN43uS5Z0CbeMtVS4XqscbYfA==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:e22635c466fd20d5fb8ff61aa494e70f70f958e303b5d52a90e0f0f22a6e930e",
          "output": {
            "compliance_flags": [
              "LCR_COMPLIANT_MEDIAN",
              "NSFR_BREACH_RISK_MEDIAN",
              "NSFR_HIGH_BREACH_PROBABILITY"
            ],
            "lcr_breach_pct": 0,
            "lcr_median_day30": 2577.0389,
            "lcr_p5": 2459.6301,
            "n_paths": 500,
            "nsfr_breach_pct": 99,
            "nsfr_median_day250": 0.9453,
            "nsfr_p5": 0.9024,
            "scenario": "moderate",
            "verdict": "BORDERLINE"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "sim-03-basel-rwa-scenario-modeler",
      "tool_version": "1.0.0",
      "display_name": "Basel RWA Scenario Modeler",
      "mcp_name": "compute_rwa_scenarios",
      "mandate_type": "capital_assessment",
      "wave": 2,
      "gpu": true,
      "url": "https://ainumbers.co/chaingraph/sim-03-basel-rwa-scenario-modeler.html",
      "description": "SA-CR / F-IRB / A-IRB RWA in parallel with output-floor comparison (72.5% §CAP30). BCBS d424 IRB capital formula with Φ⁻¹ rational approximation, LCG Monte Carlo. Percentile table P5–P99. Three portfolio mixes.",
      "input_schema_ref": "chaingraph/sim-03-basel-rwa-scenario-modeler.html#manifest",
      "deadline": "2027-01-01",
      "deadline_note": "Basel 3.1 output floor — UK PRA PS1/26 January 1, 2027",
      "consumes": [
        "art-07-basel31-reporting-delta-calculator"
      ],
      "feeds": [
        "ml-03-timeseries-anomaly-detector",
        "qfa-02-portfolio-var-engine",
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_proof_ready": "ready",
      "compute_images": [
        {
          "system": "sha256-source",
          "image_id": "sha256:20305fc80c7e9f21ce85aaa35d67d4208e694fc0a45b1b9598d65046b4e9900a",
          "valid_from": "2026-07-12"
        },
        {
          "system": "risc0",
          "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
          "valid_from": "2026-07-12"
        }
      ],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "Bab9l9ZoB4vM/dKChV6S1Smi5imdYluitFcwwP/j00ATgHGthMqKktB1T+25BFiPTatmgLHZ+gvlP8o+/S7DNzBQyAUhNqUxs5abmbKtZencC70Vn/jgRLlAd+P68oKYGtyRJEf8oYwWcylXYOvaRhi7d4M+Du+0fDgt2UiJ5rEkKKK0LprSyah2SowCRmg50PStc7Mss7bHYxo/xLG3KjBD2LqOnUkF2uP7yprAhlIUihWky+Aw66cG1RshOHBsGjGCTpIy4Utzj/aaJp4qoVg/EVZXo6mzA/rhgqnGR40DSuAwxrfxLwdWRMuM7ax38lC0We4omeIms4KVM7VatQ==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:20305fc80c7e9f21ce85aaa35d67d4208e694fc0a45b1b9598d65046b4e9900a",
          "output": {
            "airb_floored_bn": 44.116,
            "airb_pcts": [
              37.61,
              41.132,
              44.188,
              47.326,
              51.327,
              53.514
            ],
            "airb_rwa_bn": 35.109,
            "compliance_flags": [
              "OUTPUT_FLOOR_BINDING",
              "SIGNIFICANT_IRB_CAPITAL_SAVING"
            ],
            "firb_floored_bn": 49.383,
            "firb_pcts": [
              41.513,
              45.001,
              49.064,
              52.915,
              57.488,
              60.888
            ],
            "firb_rwa_bn": 49.383,
            "floor_binding": {
              "airb": true,
              "firb": false
            },
            "floor_rwa_bn": 44.116,
            "percentile_labels": [
              "P5",
              "P25",
              "P50",
              "P75",
              "P95",
              "P99"
            ],
            "sacr_pcts": [
              51.876,
              56.734,
              60.949,
              65.277,
              70.796,
              73.812
            ],
            "sacr_rwa_bn": 60.85,
            "verdict": "FLOOR_BINDING"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    },
    {
      "tool_id": "sim-07-open-banking-consent-flow-stress",
      "tool_version": "1.0.0",
      "display_name": "Open Banking Consent Flow Stress Simulator",
      "mcp_name": "simulate_consent_stress",
      "mandate_type": "compliance_mandate",
      "wave": 3,
      "gpu": false,
      "url": "https://ainumbers.co/chaingraph/sim-07-open-banking-consent-flow-stress.html",
      "description": "Monte Carlo stress simulation of PSD2/FAPI 2.0/CDR consent lifecycle FSM (INIT→REDIRECT→AUTH→AUTHORIZED→ACTIVE→FAILED/EXPIRED/REVOKED). Configurable failure probabilities per transition stage, terminal state distribution, ASPSP SCA availability compliance check (95% threshold). Chains from PNR-01 (DORA ICT cascade).",
      "input_schema_ref": "chaingraph/sim-07-open-banking-consent-flow-stress.html#manifest",
      "deadline": null,
      "deadline_note": "PSD2 RTS Art.32/33 ASPSP availability obligations in force; FAPI 2.0 live; CDR ongoing in AU",
      "consumes": [
        "pnr-01-dora-ict-cascade-simulator"
      ],
      "feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "status": "live",
      "conformance_fixtures": false,
      "compute_capability": "server",
      "compute_images": [{"system":"sha256-source","image_id":"sha256:0b2c97e4308777a28ab7fc66df7d263499547d2376a2465fc7b415effd195189","valid_from":"2026-07-10"},{"system":"risc0","image_id":"sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6","valid_from":"2026-06-28"}],
      "compute_proof": {
        "type": "ZkVmReceipt",
        "system": "risc0",
        "receiptFormat": "groth16-bn254",
        "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
        "seal": "FTv4qxp8aynTHi3lqnFqlVc4/A9t3mN/wdGPKlDRf6AT4lBP1UJs4sw4vVIdoN4iNDeMloXGwet4wObbI4KlRR+PAasZCOUOApm/KOCHTK5xV1idisfiTWv8zejWFNPHLXR2UsiY9qFMgaXpEhsfxEmGhT4tgZVn/UQiDacd6kMFAtPTvwydbA3j0ymgY+4kyslNlZYylGFVUWE/YQ1vjwO0v+vEtWu/vpepMAaNnZsuHnFJl3I6OONsNasiskLaLkgGP5jzUmIWh7KyD7+YE55TIGHg32qXOxoImDEoT2gC2kz++wzcFfad2cAImtvwjyYoZ9c5a1yebFZIEla3Dg==",
        "journal": {
          "chaingraph_version": "0.4.0",
          "kernel_digest": "sha256:0b2c97e4308777a28ab7fc66df7d263499547d2376a2465fc7b415effd195189",
          "output": {
            "consents_active": 414,
            "consents_expired": 21,
            "consents_failed": 43,
            "consents_revoked": 22,
            "mean_fsm_steps": 4.57,
            "regulatory_regime": "psd2",
            "stage_failures": {
              "auth": 27,
              "redirect": 11,
              "token": 5
            },
            "success_rate": 0.828,
            "total_flows": 500,
            "verdict": "CRITICAL — Consent API Below Regulatory Threshold"
          }
        }
      },
      "export_capability": [
        "xlsx",
        "csv",
        "pdf",
        "xbrl:ocg-ext"
      ]
    }
  ],
  "chains": [
    {
      "name": "2052a-classify-daily",
      "domain": "Corporate Treasury & FX",
      "title": "FR 2052a Inflow/Outflow Daily Classification",
      "description": "Single-node daily FR 2052a complex-institution liquidity monitoring classification: buckets inflows/outflows by product/maturity against a caller-supplied Appendix IV-style boundary table.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/2052a-classify-daily.html",
      "steps": [
        {
          "tool_id": "art-437-fr2052a-inflow-outflow-classifier",
          "handoff": "bucket-classified inflow/outflow export feeds the daily FR 2052a filing layer; a bucket override without a reason_code routes to the §27 human_accountability_record"
        }
      ]
    },
    {
      "name": "2052a-validate-classify-daily",
      "domain": "Corporate Treasury & FX",
      "title": "FR 2052a Validate then Classify Daily",
      "description": "Linear two-step chain for FR 2052a daily liquidity reporting. Step 1 runs the Appendix II-a/II-b/II-c/II-d edit-check rule set against caller-supplied rows, producing a gate_status and a named list of failing edit_ids. Step 2 buckets inflows/outflows by product/maturity against a caller-supplied Appendix IV-style boundary table. Both steps always run; the edit-check result is advisory context for the classification, not a routing gate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/2052a-validate-classify-daily.html",
      "steps": [
        {
          "tool_id": "art-484-regrpt-editcheck-runner",
          "handoff": "Computes gate_status and a named list of failing edit_ids against the FR 2052a Appendix II-a/b/c/d rule set."
        },
        {
          "tool_id": "art-437-fr2052a-inflow-outflow-classifier",
          "handoff": "Bucket-classified inflow/outflow export for the daily FR 2052a filing layer; a bucket override without a reason_code triggers the §27 human_accountability_record. Final stage."
        }
      ]
    },
    {
      "name": "a2a-payment-rail-compliance",
      "domain": "Cross-Border & Instant Payments",
      "title": "A2A Payment Rail Compliance",
      "description": "A2A fee route optimisation > A2A reconciliation workbench > A2A compliance checklist > A2A rail command centre: composite A2A payment rail compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/a2a-payment-rail-compliance.html",
      "steps": [
        {
          "tool_id": "01-a2a-fee-route-optimizer",
          "handoff": "fee_route_options and optimal_routing feed Stage 2 A2A reconciliation workbench"
        },
        {
          "tool_id": "09-a2a-reconciliation-workbench",
          "handoff": "reconciliation_gaps and settlement_exceptions feed Stage 3 A2A compliance checklist"
        },
        {
          "tool_id": "18-a2a-compliance-checklist",
          "handoff": "compliance_requirements and gap_assessment feed Stage 4 A2A rail command centre"
        },
        {
          "tool_id": "82-a2a-rail-command-center",
          "handoff": "rail_operations_status and composite_a2a_mandate — final A2A payment rail mandate"
        }
      ]
    },
    {
      "name": "aca-226j-response-composer",
      "domain": "HR & Benefits Compliance",
      "title": "ACA 226J Response Composer",
      "description": "Linear three-step evidence pipeline for responding to an IRS Letter 226J proposed Employer Shared Responsibility Payment assessment: affordability safe-harbor calculation, ESRP exposure recomputation, and a hash-anchored response evidence pack with a named-HR/benefits-officer attestation closure.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/aca-226j-response-composer.html",
      "steps": [
        {
          "tool_id": "art-298-aca-affordability-safe-harbor",
          "handoff": "affordability harbor verdicts feed Stage 2 ESRP exposure recomputation"
        },
        {
          "tool_id": "art-299-aca-esrp-exposure",
          "handoff": "controlling_exposure_annual feeds the terminal 226J response evidence pack"
        },
        {
          "tool_id": "art-300-aca-226j-response-evidence-pack",
          "handoff": "Composes the response-window-deadline evidence pack with named-human attestation closure -- final stage"
        }
      ]
    },
    {
      "name": "ach-fraud-monitoring",
      "domain": "Fraud & Dispute",
      "title": "ACH Fraud Monitoring (Nacha Phase 2)",
      "description": "Procedure builder (role-based) > false-pretenses scenario simulator > annual audit pack generator. Nacha Phase 2 effective 2026-06-22.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ach-fraud-monitoring.html",
      "steps": [
        {
          "tool_id": "492-ach-fraud-monitoring-procedure-builder",
          "handoff": "roles and risk_tier feed Stage 2 scenario simulator and Stage 3 audit pack"
        },
        {
          "tool_id": "493-ach-false-pretenses-credit-entry-simulator",
          "handoff": "scenario obligations and recovery path inform Stage 3 gap identification"
        },
        {
          "tool_id": "494-ach-fraud-monitoring-audit-pack-generator",
          "handoff": "Exports annual review audit binder + composite ACH Fraud Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "adverse-action-notice-compliance",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Adverse Action Notice Compliance",
      "spec_version": "0.8.0",
      "wave": 39,
      "description": "Gated two-step chain for adverse action notice compliance. Step 1 builds the notice skeleton from SHAP-ranked FICO or VantageScore factor codes. Gate: action_taken=approved exits immediately (no notice required for approved applications). Denied, counteroffer, or incomplete applications continue to Step 2 notice validation against Reg B §1002.9 completeness requirements and CFPB Circular prohibited-vague-code list.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/adverse-action-notice-compliance.html",
      "regulatory_refs": [
        "12 CFR §1002.9 (Reg B adverse action notice requirements)",
        "15 USC §1691 (ECOA)",
        "15 USC §1681m(a) (FCRA §615(a) credit score disclosure)",
        "CFPB Circular 2022-03 (prohibited vague reason codes)",
        "CFPB Circular 2023-03 (prohibited vague reason codes update)"
      ],
      "steps": [
        {
          "tool_id": "art-228-build-adverse-action-notice",
          "handoff": "Notice skeleton with SHAP-ranked factor codes. Gate: action_taken=approved exits (no notice required); denied/counteroffer continues to validation.",
          "gate": {
            "input": "/action_taken",
            "rules": [
              {
                "op": "eq",
                "value": "approved",
                "next": "end"
              }
            ],
            "default": "art-227-validate-adverse-action-notice",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-227-validate-adverse-action-notice",
          "handoff": "Compliance score (0-100), violation list, FCRA §615(a) completeness check. Final stage."
        }
      ]
    },
    {
      "name": "agent-audit-trail-conformance",
      "domain": "AI & Agent Governance",
      "title": "Agent Audit Trail Conformance",
      "spec_version": "0.8.0",
      "wave": 40,
      "description": "Linear two-step chain for agent audit trail conformance. Step 1 builds an EU AI Act Art 12(2)-conformant decision log record (art-236) with completeness score, chain_position, and anchor instructions. Step 2 validates the record against IETF draft-sharif-agent-audit-trail-00 (art-237), confirming AAT field conformance, sha256_prev_record chain-link format, and trust level. Both steps always run. Use as the lightweight audit-trail path when Annex III high-risk classification (art-238) is already resolved upstream.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-audit-trail-conformance.html",
      "regulatory_refs": [
        "EU AI Act (Reg. 2024/1689) Art 12(2) (decision logging for high-risk AI systems)",
        "IETF draft-sharif-agent-audit-trail-00 (AAT, expires Sept 2026)"
      ],
      "steps": [
        {
          "tool_id": "art-236-build-ai-decision-log-record",
          "handoff": "Art 12(2) decision log record with art12_completeness_score and anchor instructions. Passes to audit trail validation."
        },
        {
          "tool_id": "art-237-validate-agent-audit-trail",
          "handoff": "IETF AAT conformance result and aat_completeness_score. Final stage."
        }
      ]
    },
    {
      "id": "agent-authorization-lifecycle",
      "name": "agent-authorization-lifecycle",
      "domain": "AI & Agent Governance",
      "title": "Agent Authorization & Lifecycle",
      "description": "Audit scoped and revocable MCP tool grants: each tool carries an explicit scope, a revocation endpoint is configured, and token rotation posture is healthy (art-150) → validate the agent on-behalf-of (OBO) mandate: subject, bounded scope, intent, and non-expired validity window; mismatch or expiry returns REFUSE (art-151) → validate that the long-running task state transitions are legal per the new MCP specification state machine (art-152). Exports lifecycle attestation with execution_hash: final stage.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-authorization-lifecycle.html",
      "steps": [
        {
          "tool_id": "art-150-mcp-tool-scope-revocation-auditor",
          "handoff": "Scope and revocation audit feeds OBO mandate validator"
        },
        {
          "tool_id": "art-151-agent-obo-mandate-validator",
          "handoff": "OBO mandate verdict feeds task lifecycle validator"
        },
        {
          "tool_id": "art-152-mcp-task-lifecycle-validator",
          "handoff": "Exports task lifecycle validity with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "agent-commerce-conformance",
      "domain": "AI & Agent Governance",
      "title": "Agent Commerce Cross-Protocol Conformance",
      "description": "AP2 v0.2 mandate chain > ACP checkout conformance > x402 settlement modelling > unified cross-protocol conformance verdict.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-commerce-conformance.html",
      "steps": [
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "ap2_mandate and execution_hash (H1) feed Stage 2 ACP checkout conformance"
        },
        {
          "tool_id": "art-12-acp-checkout-conformance-validator",
          "handoff": "acp_verdict and conformance_flags + execution_hash (H2) feed Stage 3 x402 settlement model"
        },
        {
          "tool_id": "art-03-x402-settlement-modeler",
          "handoff": "x402_payload and settlement execution_hash (H3) feed Stage 4 cross-protocol validator"
        },
        {
          "tool_id": "art-30-agent-commerce-conformance-validator",
          "handoff": "Exports unified AP2+ACP+TAP+x402 cross-protocol conformance mandate; execution_hash (H4) covers full transaction -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-audit-pack",
      "domain": "Agent Economy",
      "title": "Agent Economy Runtime Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the runtime decision set (cry-04) -> one Merkle-root audit receipt (cry-05) -> platform/regulator-framed cover memo (ptg-01). Other chains can feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-autonomous-guardrail",
      "domain": "Agent Economy",
      "title": "Human-Not-Present Autonomous-Payment Guardrail",
      "description": "W-C. Spend-policy envelope (art-02) -> mandate scope & freshness (art-01) -> HNP guardrail verdict on the executed payment (ART-62). End-to-end gate for an agent paying with no human present.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-autonomous-guardrail.html",
      "steps": [
        {
          "tool_id": "art-02-agent-spend-policy-simulator",
          "handoff": "spend envelope (H1) feeds the mandate validator"
        },
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "mandate scope/freshness (H2) feeds the HNP verifier"
        },
        {
          "tool_id": "art-62-ap2-payment-receipt-verifier",
          "handoff": "Exports composite autonomous-guardrail artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-batch-settlement",
      "domain": "Agent Economy",
      "title": "x402 V2 Batch-Settlement Reconciliation",
      "description": "W-A. Voucher-to-onchain batch reconciliation + settlement-risk window (ART-61) -> independent Merkle re-verification (cry-04) -> one Merkle-root settlement receipt (cry-05). The flagship runtime decision: did this batch of agent micro-payments settle correctly?",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-batch-settlement.html",
      "steps": [
        {
          "tool_id": "art-61-x402-batch-settlement-reconciler",
          "handoff": "recon_verdict and merkle_root (H1) feed the batch verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "verified integrity (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite batch-settlement artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-fit",
      "domain": "Agent Economy",
      "title": "Agent Economy Runtime Fit Diagnostic",
      "description": "Single-node D0 diagnostic grading an agent platform/operator A-F across settlement rail, receipt & mandate, HNP autonomy, reconciliation, metering, and runtime fraud for the agent-economy runtime layer; routes to the right agent-economy chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-fit.html",
      "steps": [
        {
          "tool_id": "art-60-agent-economy-runtime-fit-diagnostic",
          "handoff": "dim_scores and primary_recommendation route to agent-economy-batch-settlement / agent-economy-payment-receipt / agent-economy-autonomous-guardrail / agent-economy-metering / agent-economy-fraud-runtime / agent-economy-marketplace / agent-economy-audit-pack"
        }
      ]
    },
    {
      "name": "agent-economy-fraud-runtime",
      "domain": "Agent Economy",
      "title": "Runtime Agent-Payment Fraud Surveillance",
      "description": "W-E. Spend-policy violation detection (art-02) -> agent-network/collusion graph (mms-03) -> payment-velocity anomaly monitoring (ml-03). Runtime fraud surveillance over an autonomous agent's payment stream.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-fraud-runtime.html",
      "steps": [
        {
          "tool_id": "art-02-agent-spend-policy-simulator",
          "handoff": "policy violations (H1) feed the graph engine"
        },
        {
          "tool_id": "mms-03-app-fraud-graph",
          "handoff": "network red flags (H2) feed the anomaly detector"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite runtime-fraud artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-marketplace",
      "domain": "Agent Economy",
      "title": "Agent-Service Marketplace Onboarding & Metering",
      "description": "W-F. Agent identity & authorization attestation (art-04) -> agent-traffic acceptance policy (art-21) -> service metering/pricing (ART-63). Onboards an agent service into a micropayment marketplace with a metered, policy-gated listing.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-marketplace.html",
      "steps": [
        {
          "tool_id": "art-04-agent-identity-attestation-checker",
          "handoff": "attestation verdict (H1) feeds the traffic-policy builder"
        },
        {
          "tool_id": "art-21-agent-traffic-acceptance-policy-builder",
          "handoff": "acceptance policy (H2) feeds the metering modeler"
        },
        {
          "tool_id": "art-63-agent-service-metering-modeler",
          "handoff": "Exports composite marketplace artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-metering",
      "domain": "Agent Economy",
      "title": "Agent-Service Metering & Marketplace Economics",
      "description": "W-D. Metering + marketplace unit economics (ART-63) -> x402 settlement cost/finality (art-03) -> usage/billing anomaly monitoring (ml-03). Models the economics of an agent-service micropayment marketplace. Educational estimator.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-metering.html",
      "steps": [
        {
          "tool_id": "art-63-agent-service-metering-modeler",
          "handoff": "unit economics (H1) feed the settlement modeler"
        },
        {
          "tool_id": "art-03-x402-settlement-modeler",
          "handoff": "settlement cost (H2) feeds the anomaly detector"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite metering artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-economy-payment-receipt",
      "domain": "Agent Economy",
      "title": "AP2 PaymentReceipt Verification & HNP Guardrail",
      "description": "W-B. PaymentReceipt-to-mandate verification + Human-Not-Present autonomy gate (ART-62) -> mandate-chain re-validation (art-01) -> receipt aggregation (cry-05). Verifies an autonomous AP2 payment after the fact: valid receipt, intact mandate chain, in-policy autonomy.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-economy-payment-receipt.html",
      "steps": [
        {
          "tool_id": "art-62-ap2-payment-receipt-verifier",
          "handoff": "receipt_verdict and hnp_verdict (H1) feed the mandate-chain validator"
        },
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "mandate-chain verdict (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite payment-receipt artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "agent-identity-publishing",
      "domain": "AI & Agent Governance",
      "title": "Agent Identity Publishing Readiness (Visa TAP / Mastercard Agent Pay)",
      "description": "Audit key freshness and rotation posture (art-132) then crosswalk identity posture to Visa TAP, Mastercard Agent Pay, and Web Bot Auth acceptance criteria (art-133) then emit a directory-publish readiness verdict with a precise gap list (art-134). Supply-side of the Ed25519 identity substrate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-identity-publishing.html",
      "steps": [
        {
          "tool_id": "art-132-agent-key-rotation-auditor",
          "handoff": "Rotation posture feeds payment-rail crosswalk"
        },
        {
          "tool_id": "art-133-agent-payment-rail-trust-crosswalk",
          "handoff": "Rail trust gaps feed publish-readiness diagnostic"
        },
        {
          "tool_id": "art-134-agent-directory-publish-readiness",
          "handoff": "Exports directory-publish verdict with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "agent-identity-trust",
      "domain": "AI & Agent Governance",
      "title": "Agent Identity & Trust-Chain",
      "description": "A2A agent-card + delegated-authority trust-chain validation > KYA-OS identity attestation > spend-policy simulation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-identity-trust.html",
      "steps": [
        {
          "tool_id": "art-32-a2a-agent-card-trust-chain-validator",
          "handoff": "a2a_card + trust-chain verdict and execution_hash feed Stage 2 KYA attestation"
        },
        {
          "tool_id": "art-04-agent-identity-attestation-checker",
          "handoff": "attestation verdict and execution_hash feed Stage 3 spend-policy simulation"
        },
        {
          "tool_id": "art-02-agent-spend-policy-simulator",
          "handoff": "Exports the agent-identity-trust policy artifact -- final stage"
        }
      ]
    },
    {
      "name": "agent-identity-verification",
      "domain": "AI & Agent Governance",
      "title": "Agent Identity Verification (RFC 9421 Web Bot Auth)",
      "description": "Reconstruct the RFC 9421 signature base and verify the Ed25519 Web Bot Auth signature against a caller-supplied public key (art-129) then validate the /.well-known/http-message-signatures-directory JWKS and keyid resolution (art-130) then validate the Signature Agent Card against the directory and emit an identity-trust verdict (art-131). Agent verifies agent, zero network, no human.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-identity-verification.html",
      "steps": [
        {
          "tool_id": "art-129-webbotauth-signature-verifier",
          "handoff": "Signature verdict feeds directory validation"
        },
        {
          "tool_id": "art-130-signature-directory-validator",
          "handoff": "Directory validation feeds agent card check"
        },
        {
          "tool_id": "art-131-signature-agent-card-validator",
          "handoff": "Exports identity-trust verdict with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "agent-payment-dispute-evidence",
      "domain": "Fraud & Dispute",
      "title": "Agent Payment Dispute Evidence",
      "description": "AP2 mandate-chain validator confirms the payment mandate's signature chain and scope; agent token scope checker evaluates the disputed action against the mandate's declared bounds; chargeback evidence bundle composer assembles both verdicts plus mandate/receipt, payment-protocol, and session/delivery evidence into a Merkle-rooted adjudication bundle.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-payment-dispute-evidence.html",
      "steps": [
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "mandate signature-chain, scope/limit, and TTL verdict feeds Stage 2 agent token scope check against the same mandate"
        },
        {
          "tool_id": "art-385-agent-token-scope-checker",
          "handoff": "in-scope / out-of-scope verdict and receipt feed Stage 3 chargeback evidence bundle composer as the mandate/receipt evidence group input"
        },
        {
          "tool_id": "567-chargeback-evidence-bundle-composer",
          "handoff": "assembles mandate-chain and scope verdicts with payment-protocol and session/delivery evidence into a hash-chained, Merkle-rooted adjudication bundle; terminal check"
        }
      ]
    },
    {
      "name": "agent-session-receipt",
      "domain": "AI & Agent Governance",
      "title": "Agent Session Receipt",
      "description": "Aggregate N execution_hashes from an agent session into one SHA-256 Merkle-root session receipt (CRY-05) > regulator-framed prompt (PTG-01). One tamper-evident audit object for EU AI Act Art. 12 / DORA.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-session-receipt.html",
      "steps": [
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "session_receipt_root (Merkle root over all session execution_hashes) feeds Stage 2 prompt generation"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Generates a regulator-framed prompt citing the full session receipt -- final stage"
        }
      ]
    },
    {
      "name": "agentic-checkout",
      "domain": "AI & Agent Governance",
      "title": "Agentic Checkout Protocol Readiness",
      "description": "Protocol selector (UCP/ACP/x402/Visa TAP) > ACP/UCP product-feed conformance auditor > agent-traffic acceptance policy builder.",
      "composer_url": "https://ainumbers.co/guides/agentic-checkout-composer.html",
      "steps": [
        {
          "tool_id": "495-agentic-checkout-protocol-selector",
          "handoff": "protocol_recommendation and stack_config feed Stage 2 conformance auditor"
        },
        {
          "tool_id": "496-acp-ucp-product-feed-conformance-auditor",
          "handoff": "conformance_gaps and fix_checklist feed Stage 3 acceptance policy"
        },
        {
          "tool_id": "498-agent-traffic-acceptance-policy-builder",
          "handoff": "Exports agent-traffic acceptance Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "agentic-commerce-checkout",
      "domain": "AI & Agent Governance",
      "title": "Agentic Commerce Checkout Chain",
      "description": "Select optimal agentic checkout protocol → validate ACP conformance and APP fraud risk → verify agent identity attestation and A2A trust chain → simulate spend policy and build traffic acceptance policy → model x402 settlement, reconcile batch, verify receipts, and certify agent commerce conformance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agentic-commerce-checkout.html",
      "steps": [
        {
          "tool_id": "495-agentic-checkout-protocol-selector",
          "handoff": "protocol_rank,merchant_risk_profile feed Stage 2"
        },
        {
          "tool_id": "art-12-acp-checkout-conformance-validator",
          "handoff": "conformance_verdict,acp_gap_list feed Stage 2 fraud risk"
        },
        {
          "tool_id": "26-app-fraud-matrix",
          "handoff": "fraud_exposure_score,mule_density_risk feed Stage 3"
        },
        {
          "tool_id": "art-04-agent-identity-attestation-checker",
          "handoff": "attestation_pass,identity_assurance_level feed Stage 3"
        },
        {
          "tool_id": "art-32-a2a-agent-card-trust-chain-validator",
          "handoff": "trust_chain_depth,card_validity feed Stage 4"
        },
        {
          "tool_id": "art-02-agent-spend-policy-simulator",
          "handoff": "spend_limits,velocity_cap feed Stage 4"
        },
        {
          "tool_id": "498-agent-traffic-acceptance-policy-builder",
          "handoff": "traffic_policy_mandate,acceptance_gates feed Stage 5"
        },
        {
          "tool_id": "art-03-x402-settlement-modeler",
          "handoff": "settlement_model,net_exposure feed Stage 5"
        },
        {
          "tool_id": "art-61-x402-batch-settlement-reconciler",
          "handoff": "batch_reconciliation,unmatched_payments feed Stage 5"
        },
        {
          "tool_id": "art-62-ap2-payment-receipt-verifier",
          "handoff": "receipt_hash,payment_verified feed Stage 5"
        },
        {
          "tool_id": "art-30-agent-commerce-conformance-validator",
          "handoff": "conformance_certificate -- Exports agentic commerce mandate -- final stage"
        }
      ]
    },
    {
      "name": "agentic-commerce-convergence",
      "domain": "Agent Economy",
      "title": "Agentic Commerce Convergence",
      "description": "Binds one agent-run transaction across three independent agentic-commerce layers into a single hash-anchored composite: UCP cart/checkout discovery, ACP checkout conformance, and the AP2 payment mandate. UCP composes with AP2 rather than competing with it; this chain evidences that composition as one dated receipt.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agentic-commerce-convergence.html",
      "export_capability": ["json"],
      "steps": [
        {
          "tool_id": "art-564-ucp-checkout-payload-lint",
          "handoff": "Produces UCP cart/checkout resource conformance (CONFORMANT / NONCONFORMANT / UNKNOWN_VERSION) against the pinned v2026-04-08 schema, evidencing the discovery/cart layer of this declared transaction; each step keeps its own verdict scope, never merged into a single cross-layer determination"
        },
        {
          "tool_id": "art-12-acp-checkout-conformance-validator",
          "handoff": "Produces ACP checkout-session conformance findings over the same caller-declared amount/currency/merchant identity fields, evidencing the checkout layer of this declared transaction"
        },
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "AP2 mandate-chain integrity determination over the same caller-declared amount/currency/merchant identity fields, closing the composite as the payment-authorization layer; terminal stage"
        }
      ]
    },
    {
  "name": "agentic-payment-mandate-lint",
  "domain": "Agent Economy",
  "title": "Agentic Payment Mandate Lint",
  "description": "A2A agent card validation > x402 extension mandate validation > AP2 mandate credential build: a verify-then-build lint chain for agentic payment mandates supplied by the caller. Checks the calling agent's card, checks its x402 payment-extension mandate, then builds the AP2 verifiable credential representation. Read-only linting only; no payment execution, no wallet or custody action, no live network call.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/agentic-payment-mandate-lint.html",
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "AGENTPAY-LINT-CHAIN-1",
  "regulatory_basis_decided_at": "2026-08-03",
  "steps": [
    {
      "tool_id": "art-25-a2a-agent-card-validator",
      "handoff": "verdict, score, and has_ap2_extension establish whether the calling agent's card is well-formed and AP2-capable before its payment mandate is checked."
    },
    {
      "tool_id": "art-31-a2a-x402-extension-mandate-validator",
      "handoff": "verdict, pass_count, and fail_count record whether the caller-supplied x402 payment-extension mandate checks out before the AP2 credential is built from it."
    },
    {
      "tool_id": "art-16-google-ap2-mandate-builder",
      "handoff": "vdc and vdc_stage are the chain output — the AP2 W3C verifiable-credential mandate built from the caller's own inputs, gated behind the two prior lint passes."
    }
  ]
},
    {
      "name": "agentic-payment-protocol-audit",
      "domain": "AI & Agent Governance",
      "title": "Agentic Payment Protocol Audit",
      "description": "A2A agent card validation > Google AP2 mandate building > X402 payload decode/flow simulation > Visa trusted agent protocol inspection: composite agentic payment protocol mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agentic-payment-protocol-audit.html",
      "steps": [
        {
          "tool_id": "283-a2a-agent-card-validator",
          "handoff": "agent_card_validity and trust_chain_gaps feed Stage 2 AP2 mandate builder"
        },
        {
          "tool_id": "285-google-ap2-mandate-builder",
          "handoff": "ap2_mandate and payment_parameters feed Stage 3 X402 payload simulation"
        },
        {
          "tool_id": "277-x402-payload-decoder-flow-simulator",
          "handoff": "x402_flow_results and payment_protocol_compliance feed Stage 4 Visa TAP inspection"
        },
        {
          "tool_id": "286-visa-trusted-agent-protocol-inspector",
          "handoff": "tap_inspection_report and composite_agentic_payment_mandate — final protocol audit mandate"
        }
      ]
    },
    {
      "name": "agentic-policy",
      "domain": "AI & Agent Governance",
      "title": "Agentic Policy",
      "description": "Agentic mandate sandbox > Google AP2 mandate builder > AP2/MCP policy validator > MCP developer readiness scorecard.",
      "composer_url": "https://ainumbers.co/guides/policy-composer.html",
      "steps": [
        {
          "tool_id": "rbe-06-agentic-mandate-sandbox",
          "handoff": "mandate_draft and guardrail_flags feed Stage 2 AP2 mandate build"
        },
        {
          "tool_id": "285-google-ap2-mandate-builder",
          "handoff": "ap2_mandate and payment_policy feed Stage 3 policy validation"
        },
        {
          "tool_id": "320-ap2-mcp-policy-validator",
          "handoff": "validation_results and policy_gaps feed Stage 4 readiness scorecard"
        },
        {
          "tool_id": "288-mcp-developer-readiness-scorecard",
          "handoff": "Exports agentic policy composite mandate -- final stage"
        }
      ]
    },
    {
      "name": "agentic-rail-standards",
      "domain": "AI & Agent Governance",
      "title": "Agentic Rail & Tokenised Payment Standards",
      "description": "Agentic payments protocol comparison > Mastercard agentic token builder > Visa VIC agent token scope > Visa agentic-ready issuer readiness scoring: composite agentic rail standards mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agentic-rail-standards.html",
      "steps": [
        {
          "tool_id": "276-agentic-payments-protocol-comparator",
          "handoff": "protocol_comparison and rail_selection feed Stage 2 Mastercard agentic token builder"
        },
        {
          "tool_id": "287-mastercard-agentic-token-builder",
          "handoff": "mastercard_token_specification and mandate feed Stage 3 Visa VIC agent token scope"
        },
        {
          "tool_id": "374-visa-vic-agent-token-scope-builder",
          "handoff": "vic_token_scope and authorisation_model feed Stage 4 Visa agentic-ready readiness"
        },
        {
          "tool_id": "375-visa-agentic-ready-issuer-readiness-scorer",
          "handoff": "issuer_readiness_score and composite_agentic_rail_mandate — final agentic rail mandate"
        }
      ]
    },
    {
      "name": "ai-act-for-fs",
      "domain": "AI & Agent Governance",
      "title": "EU AI Act for Financial Services Chain",
      "description": "Classify agentic AI and GPAI risk tier and map EU AI Act Article 6 risk class → run high-risk fit and classification diagnostic → build conformity pack, Article 9 risk management system, and credit-scoring conformity pack → build FRIA and post-market monitoring plan and assess SR 11-7 model risk management gaps → aggregate agent-action audit trail for EU AI Act Article 12 / DORA. End-to-end EU AI Act Article 5-66 compliance journey for financial services.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-act-for-fs.html",
      "steps": [
        {
          "tool_id": "art-67-agentic-ai-risk-classifier",
          "handoff": "risk_tier,gpai_obligations,prohibited_flag,transparency_duties feed Stage 2 high-risk fit"
        },
        {
          "tool_id": "327-eu-ai-act-risk-class-mapper",
          "handoff": "risk_class,annex_iii_applicable,high_risk_criteria,registration_threshold feed Stage 2 high-risk fit"
        },
        {
          "tool_id": "art-64-ai-act-highrisk-fit-diagnostic",
          "handoff": "high_risk_confirmed,gap_list,registration_required,obligations_triggered feed Stage 3 conformity"
        },
        {
          "tool_id": "art-65-ai-conformity-pack-builder",
          "handoff": "conformity_pack_json,qms_requirements,technical_doc_checklist feed Stage 3 risk mgmt"
        },
        {
          "tool_id": "333-eu-ai-act-article9-risk-mgmt-builder",
          "handoff": "risk_mgmt_plan,residual_risk_score,monitoring_frequency feed Stage 3 credit conformity"
        },
        {
          "tool_id": "art-05-eu-ai-act-credit-scoring-conformity",
          "handoff": "credit_scoring_conformity_pass,bias_mitigation_required,model_card_needed feed Stage 4 FRIA"
        },
        {
          "tool_id": "art-66-fria-postmarket-monitoring-builder",
          "handoff": "fria_required,monitoring_cadence,incident_criteria,sentinel_events feed Stage 4 MRM gap"
        },
        {
          "tool_id": "451-sr11-7-model-risk-management-gap-assessor",
          "handoff": "mrm_gap_score,validation_independence_flag,remediation_priority feed Stage 5 audit trail"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "session_receipt_root,audit_hash -- Exports EU AI Act financial services compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "ai-content-disclosure-conformance",
      "domain": "AI & Agent Governance",
      "title": "AI Content Disclosure Conformance (EU AI Act Art. 50)",
      "description": "Check Art. 50(2) IPTC digitalSourceType marking adequacy and deepfake disclosure (art-126) then verify both C2PA metadata and imperceptible watermark dual-layer are present per Code of Practice (art-127) then validate hard-binding vs soft-binding consistency and confirm asset byte-hash matches (art-128). Applies 2 Aug 2026.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-content-disclosure-conformance.html",
      "steps": [
        {
          "tool_id": "art-126-ai-act-art50-marking-checker",
          "handoff": "Art. 50 marking verdict feeds dual-layer verification"
        },
        {
          "tool_id": "art-127-dual-layer-disclosure-verifier",
          "handoff": "dual-layer verdict feeds binding assertion validation"
        },
        {
          "tool_id": "art-128-content-binding-assertion-validator",
          "handoff": "Exports binding verdict with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "ai-decision-log-conformance",
      "domain": "AI & Agent Governance",
      "title": "AI Decision Log Conformance",
      "spec_version": "0.8.0",
      "wave": 40,
      "description": "Gated three-step chain for EU AI Act Art 12 decision-log conformance in financial services. Step 1 classifies Annex III FS obligations (art-238); gate on is_high_risk=true to proceed (OUT_OF_SCOPE exits). Step 2 builds the Art 12(2)-conformant decision log record (art-236), including art12_completeness_score and anchor_surface instructions. Step 3 validates the record as an IETF AAT agent audit trail (art-237), confirming chain_position and aat_completeness_score. Covers EU AI Act Art 12(2) logging, Art 26(6) FRIA, and Art 27(1) EU database registration.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-decision-log-conformance.html",
      "regulatory_refs": [
        "EU AI Act (Reg. 2024/1689) Art 12(2) (decision logging for high-risk AI systems)",
        "EU AI Act Annex III 5(b) (creditworthiness AI systems)",
        "EU AI Act Annex III 5(c) (life/health insurance pricing AI systems)",
        "EU AI Act Art 26(6) (deployer FRIA and human oversight duties)",
        "EU AI Act Art 27(1) (EU AI Act public database registration)",
        "IETF draft-sharif-agent-audit-trail-00 (AAT, expires Sept 2026)"
      ],
      "steps": [
        {
          "tool_id": "art-238-classify-annex3-decisioning-obligations",
          "handoff": "Annex III FS obligation classification. Gate: is_high_risk=true continues to Art 12 log building; OUT_OF_SCOPE exits chain.",
          "gate": {
            "input": "/is_high_risk",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-236-build-ai-decision-log-record"
          }
        },
        {
          "tool_id": "art-236-build-ai-decision-log-record",
          "handoff": "Art 12(2) decision log record with completeness score and anchor instructions. Passes to audit trail validation."
        },
        {
          "tool_id": "art-237-validate-agent-audit-trail",
          "handoff": "IETF AAT conformance result, aat_completeness_score, and validation errors. Final stage."
        }
      ]
    },
    {
      "name": "ai-governance-audit-pack",
      "domain": "AI Governance",
      "title": "AI Governance Conformity Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the AI-governance decision set (cry-04) -> one Merkle-root audit receipt (cry-05) -> regulator/notified-body-framed cover memo (ptg-01). Other chains can feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-conformity",
      "domain": "AI Governance",
      "title": "AI Act High-Risk Conformity Pack (Provider)",
      "description": "W-A. Annex IV technical documentation + conformity route + CE/DoC readiness (ART-65) -> Article 9 risk-management system (333) -> conformity assessment (art-05). The flagship provider lifecycle: is this high-risk financial AI system ready to CE-mark? Decision-support draft, not a certificate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-conformity.html",
      "steps": [
        {
          "tool_id": "art-65-ai-conformity-pack-builder",
          "handoff": "conformity_grade and annex_iv_gaps (H1) feed the Article 9 builder"
        },
        {
          "tool_id": "333-eu-ai-act-article9-risk-mgmt-builder",
          "handoff": "risk-management system (H2) feeds the conformity assessor"
        },
        {
          "tool_id": "art-05-eu-ai-act-credit-scoring-conformity",
          "handoff": "Exports composite conformity artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-credit-ai-conformity",
      "domain": "AI Governance",
      "title": "Credit-Scoring AI Conformity & FRIA",
      "description": "W-E. Credit-scoring conformity (art-05) -> risk-class confirmation (327) -> deployer FRIA (ART-66). The Annex III credit-scoring vertical end-to-end: the single most common high-risk financial AI use case. Decision-support draft.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-credit-ai-conformity.html",
      "steps": [
        {
          "tool_id": "art-05-eu-ai-act-credit-scoring-conformity",
          "handoff": "conformity verdict (H1) feeds the risk-class mapper"
        },
        {
          "tool_id": "327-eu-ai-act-risk-class-mapper",
          "handoff": "risk class (H2) feeds the FRIA builder"
        },
        {
          "tool_id": "art-66-fria-postmarket-monitoring-builder",
          "handoff": "Exports composite credit-conformity artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-fairness-bias",
      "domain": "AI Governance",
      "title": "Fair-Lending & AI Bias Assessment",
      "description": "W-C. Fair-lending / bias assessment (452) -> the credit model under test (ml-02) -> subgroup/outlier performance anomaly (ml-01). Article 10 data-governance + non-discrimination evidence for a high-risk credit model.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-fairness-bias.html",
      "steps": [
        {
          "tool_id": "452-fair-lending-ai-bias-assessment",
          "handoff": "bias findings (H1) feed the credit scorer"
        },
        {
          "tool_id": "ml-02-credit-default-risk-scorer",
          "handoff": "model performance (H2) feeds the anomaly detector"
        },
        {
          "tool_id": "ml-01-isolation-forest",
          "handoff": "Exports composite fairness artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-fit",
      "domain": "AI Governance",
      "title": "EU AI Act High-Risk Fit & Classification Diagnostic",
      "description": "Single-node D0 diagnostic classifying a financial AI system's high-risk status (Annex III) and grading Article 9-15 readiness + provider/deployer split; screens in-force obligations first (Art 5, Art 4, GPAI) and routes to the right ai-governance chain with a do-now vs prepare-ahead checklist.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-fit.html",
      "steps": [
        {
          "tool_id": "art-64-ai-act-highrisk-fit-diagnostic",
          "handoff": "high_risk_verdict and primary_recommendation route to ai-governance-conformity / ai-governance-fria-monitoring / ai-governance-fairness-bias / ai-governance-credit-ai-conformity / ai-governance-gpai-agentic / ai-governance-resilience-overlap / ai-governance-audit-pack"
        }
      ]
    },
    {
      "id": "ai-governance-framework-crosswalk",
      "name": "ai-governance-framework-crosswalk",
      "domain": "AI Governance",
      "title": "AI Governance Framework Crosswalk",
      "description": "Map AI controls and evidence to NIST AI RMF Govern/Map/Measure/Manage functions with per-function coverage scores (art-174) -> check GPAI provider obligations under EU AI Act Art. 53/55 and voluntary Code of Practice (art-175) -> A-F AI governance readiness diagnostic across ISO 42001, NIST RMF, and EU AI Act convergence (art-176). Full multi-framework governance crosswalk. GPAI enforcement Aug 2026.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-framework-crosswalk.html",
      "steps": [
        {
          "tool_id": "art-174-nist-ai-rmf-function-mapper",
          "handoff": "RMF function coverage feeds GPAI conformance checker"
        },
        {
          "tool_id": "art-175-gpai-code-of-practice-conformance",
          "handoff": "GPAI obligation status feeds AI governance readiness diagnostic"
        },
        {
          "tool_id": "art-176-ai-governance-readiness-diagnostic",
          "handoff": "Exports A-F governance readiness grade with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-fria-monitoring",
      "domain": "AI Governance",
      "title": "Deployer FRIA & Post-Market Monitoring",
      "description": "W-B. Article 27 FRIA + Article 72 post-market monitoring + logging/oversight (ART-66) -> SR 11-7 model-risk evidence (451) -> audit receipt (cry-05). The flagship deployer lifecycle for a bank/insurer using a high-risk AI system. Decision-support draft.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-fria-monitoring.html",
      "steps": [
        {
          "tool_id": "art-66-fria-postmarket-monitoring-builder",
          "handoff": "fria_grade and monitoring_plan (H1) feed the model-risk assessor"
        },
        {
          "tool_id": "451-sr11-7-model-risk-management-gap-assessor",
          "handoff": "model-risk gaps (H2) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite FRIA/monitoring artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-gpai-agentic",
      "domain": "AI Governance",
      "title": "Agentic AI & GPAI Governance",
      "description": "W-D. Agentic-AI autonomy + GPAI/systemic-risk classification (ART-67, Arts 53-55 IN FORCE 2 Aug 2025) -> agent identity & authorization (art-04) -> agent/MCP self-attestation (art-33). Governs the autonomous AI agents that transact on the runtime -- the reflexive tie between AINumbers' agent rails and AI governance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-gpai-agentic.html",
      "steps": [
        {
          "tool_id": "art-67-agentic-ai-risk-classifier",
          "handoff": "governance_tier and gpai_class (H1) feed the identity checker"
        },
        {
          "tool_id": "art-04-agent-identity-attestation-checker",
          "handoff": "attestation verdict (H2) feeds the self-attestation pack"
        },
        {
          "tool_id": "art-33-mcp-server-self-attestation-pack",
          "handoff": "Exports composite agentic-governance artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "ai-governance-resilience-overlap",
      "domain": "AI Governance",
      "title": "AI-as-ICT Resilience (DORA x AI Act Overlap)",
      "description": "W-F. DORA readiness for the AI system as ICT (art-29) -> AI Act Article 15 robustness/cybersecurity conformity (ART-65) -> integrity over the combined evidence (cry-04). Maps where DORA ICT-risk duties and AI Act high-risk duties overlap for a financial AI system.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-governance-resilience-overlap.html",
      "steps": [
        {
          "tool_id": "art-29-dora-readiness-diagnostic",
          "handoff": "DORA readiness (H1) feeds the conformity pack"
        },
        {
          "tool_id": "art-65-ai-conformity-pack-builder",
          "handoff": "robustness/cyber conformity (H2) feeds the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite resilience-overlap artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "id": "ai-management-system-conformance",
      "name": "ai-management-system-conformance",
      "domain": "AI & Agent Governance",
      "title": "AI Management System Conformance",
      "description": "Assess ISO/IEC 42001 AIMS clause and Annex A control conformance with maturity scoring (art-171) -> validate AI impact assessment completeness across seven ISO 42005 elements (art-172) -> classify AI system to EU AI Act risk tier, NIST RMF profile, and ISO 42001 control set (art-173). Full AIMS conformance pipeline. ISO/IEC 42001 mandatory via enterprise AI-vendor RFP requirements (~40% EU, ~25% NA mid-2026); EU AI Act Art. 6-17 enforcement Aug 2026.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-management-system-conformance.html",
      "steps": [
        {
          "tool_id": "art-171-iso42001-aims-clause-conformance",
          "handoff": "AIMS clause maturity score and gaps feed impact assessment validator"
        },
        {
          "tool_id": "art-172-ai-risk-impact-assessment-validator",
          "handoff": "Impact assessment completeness feeds system governance classifier"
        },
        {
          "tool_id": "art-173-ai-system-governance-classifier",
          "handoff": "Exports EU AI Act tier, NIST RMF profile, ISO 42001 control set with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "ai-vendor-onboarding-packet",
      "domain": "AI Governance",
      "title": "AI Vendor Onboarding Packet",
      "description": "Risk-classify an AI vendor against the EU AI Act, pull the matching Model Contractual AI Clauses, assemble the Common Paper AI Addendum from Cover Page Key Terms, confirm the DPA is GDPR Art 28 complete, and emit a countersigned agent-acceptance receipt. End-to-end verifiable AI-vendor onboarding.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ai-vendor-onboarding-packet.html",
      "steps": [
        {
          "tool_id": "art-64-ai-act-highrisk-fit-diagnostic",
          "handoff": "high-risk verdict normalizes to a risk_tier (high-risk unless out-of-scope) feeding the clause mapper"
        },
        {
          "tool_id": "art-412-ai-act-procurement-clause-mapper",
          "handoff": "MCC-AI template + applicable Chapter III clauses inform the addendum's Cover Page Key Terms"
        },
        {
          "tool_id": "art-411-ai-addendum-assembler",
          "handoff": "assembled AI Addendum + contract-api.json feed the DPA completeness check"
        },
        {
          "tool_id": "art-409-dpa-art28-completeness-checker",
          "handoff": "Art 28(3) completeness verdict feeds the agent-countersign step"
        },
        {
          "tool_id": "art-277-agreement-acceptance-binder",
          "handoff": "Exports a countersigned agent-acceptance receipt, hash-chained to the assembled addendum -- final stage"
        }
      ]
    },
    {
      "name": "allocation-decision-receipt",
      "domain": "Bank Capital & Credit Risk",
      "title": "Allocation Decision Receipt",
      "spec_version": "0.8.0",
      "wave": 80,
      "description": "Linear three-step chain instantiating the allocation-decision-receipt pattern on a collateral-allocation worked example. Step 1 classifies each candidate asset's DTC/Fed eligibility and Basel HQLA tier. Step 2 applies the Basel CRE22 comprehensive-approach haircut to each eligible candidate. Step 3 re-derives whether the allocation actually chosen is explained by the declared objective over the eligibility and haircut snapshots that were true at the time, reporting a reproducibility verdict and the binding constraint behind any divergence. All three steps always run; the node's re-derivation logic is portable to any optimizer, this chain is one collateral instance of it.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/allocation-decision-receipt.html",
      "regulatory_refs": [
        "BCBS d349/SCO60 (HQLA)",
        "Basel CRE22 (comprehensive approach collateral haircuts)"
      ],
      "steps": [
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "DTC/Fed eligibility and Basel HQLA tier of each candidate feed the haircut step's eligibility snapshot."
        },
        {
          "tool_id": "art-444-collateral-haircut-engine",
          "handoff": "Basel CRE22 haircut applied per candidate feeds the haircut-table-version input to the allocation re-derivation."
        },
        {
          "tool_id": "art-515-build-allocation-decision-receipt",
          "handoff": "Re-derives the chosen allocation against the declared objective over the eligibility schedule and haircut snapshots from steps 1-2. Reproducibility verdict, delta, and binding constraint are the chain output. Terminal stage."
        }
      ]
    },
    {
      "name": "aml-lookback-closure-cycle",
      "domain": "Financial Crime & KYC",
      "title": "AML Lookback Closure Cycle",
      "description": "Three-step closure cycle over a BSA/AML consent-order or self-identified lookback: the re-screened population, the resulting disposition sampling frame, and the caller's own per-sampled-item disposition records (filed/no-SAR/escalated, with rationale). Step 1 reconciles the re-screening extract's completeness against the declared population, excluding any period with no preserved list snapshot as unverifiable rather than screening it against today's list. Step 2 builds a deterministic disposition sampling frame and reviewer workload allocation over the verifiable population. Step 3 rolls up disposition-coverage against the sample frame's declared size, disposition-rationale-presence on every filed/no-SAR item, and a population-to-sample tie-out between steps 1 and 2's declared population sizes, into a closed §27.4 gate value. A hold or escalate outcome routes the cycle to the BSA Officer as reviewer before the lookback is treated as settled; a completed lookback, including an auto_pass rollup, still requires a separate §27 approval record naming the BSA Officer or designated compliance role as approver; automation never substitutes for that named sign-off. Customer id, alert id, and transaction reference are §25-salted throughout (sha256-salted@1 commitment strings only; no plaintext identifier ever enters the chain). This bundle is the institution's own evidence of its lookback closure basis, not a supervisory determination.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/aml-lookback-closure-cycle.html",
      "regulatory_refs": [
        "31 CFR 1020.210(b)(4) (BSA compliance program independent testing requirement)",
        "FFIEC BSA/AML Examination Manual (Independent Testing)"
      ],
      "steps": [
        {
          "tool_id": "art-470-lookback-completeness-reconciler",
          "handoff": "verifiable_source_count, verifiable_extract_count, and unverifiable_periods (excluded from re-screen scope) feed the disposition sampling frame's population definition; population size also feeds the rollup's population-to-sample tie-out"
        },
        {
          "tool_id": "art-471-disposition-sampling-frame",
          "handoff": "reviewer_workload allocation and the sample frame's declared population size feed the disposition rollup kernel, alongside the caller's per-sampled-item disposition records"
        },
        {
          "tool_id": "art-534-aml-lookback-disposition-rollup",
          "handoff": "Disposition-coverage, disposition-rationale-presence, and population-to-sample tie-out roll up into a closed §27.4 gate_policy value that closes the lookback's evidence bundle. Final stage.",
          "gate": {
            "input": "/decision/gate_policy",
            "rules": [
              {
                "op": "neq",
                "value": "auto_pass",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "hold"
          }
        }
      ]
    },
    {
  "name": "aml-lookback-cycle",
  "domain": "Sanctions",
  "title": "AML Lookback Cycle",
  "description": "Reconciles a consent-order lookback's population against the extract actually re-screened, flagging any period with no preserved list snapshot as unverifiable rather than screening it against today's list. Re-screens the verifiable population against the sanctions/export-control program in force, versioned list snapshots as policy inputs. Builds a deterministic disposition sampling frame and reviewer workload allocation for the final independent-validator disposition review.",
  "composer_url": "https://ainumbers.co/chaingraph/art-470-lookback-completeness-reconciler.html",
  "steps": [
    {
      "tool_id": "art-470-lookback-completeness-reconciler",
      "handoff": "verifiable_source_count, verifiable_extract_count, and unverifiable_periods (excluded from re-screen scope) feed Stage 2's population definition"
    },
    {
      "tool_id": "art-90-sanctions-screening-fit-diagnostic",
      "handoff": "program-config diagnostic against the versioned list snapshot in force for the verifiable period feeds Stage 3's quality scorecard",
      "gate": {
        "input": "/program_grade",
        "rules": [
          {
            "op": "eq",
            "value": "F",
            "next": "end"
          }
        ],
        "default": "art-97-sanctions-screening-quality-scorer",
        "gate_policy": "escalate"
      }
    },
    {
      "tool_id": "art-97-sanctions-screening-quality-scorer",
      "handoff": "composite program-conformance grade and delta-vs-original-dispositions priorities feed Stage 4's sampling population",
      "gate": {
        "input": "/program_grade",
        "rules": [
          {
            "op": "eq",
            "value": "F",
            "next": "end"
          }
        ],
        "default": "art-471-disposition-sampling-frame",
        "gate_policy": "escalate"
      }
    },
    {
      "tool_id": "art-471-disposition-sampling-frame",
      "handoff": "reviewer_workload allocation hands off to the independent-validator human disposition review -- final stage, never an auto-generated SAR"
    }
  ]
},
    {
      "name": "aml-programme",
      "domain": "Financial Crime & KYC",
      "title": "AML Programme",
      "description": "Customer risk rating > TM rule building > CTR/SAR thresholds > AML Policy Mandate. Full audited run available in the composer.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/aml-consolidation.html",
      "steps": [
        {
          "tool_id": "110-customer-risk-rating",
          "handoff": "risk_tier and composite_score feed Stage 2 TM rule calibration"
        },
        {
          "tool_id": "116-tm-rule-builder",
          "handoff": "rule_set and velocity_thresholds feed Stage 3 CTR/SAR simulation"
        },
        {
          "tool_id": "119-ctr-sar-threshold-simulator",
          "handoff": "threshold_values and alert_triggers feed Stage 4 mandate payload"
        },
        {
          "tool_id": "131-ap2-aml-mandate-builder",
          "handoff": "Exports composite AML Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "amlr-single-rulebook",
      "domain": "EU Digital ID & Consumer Credit",
      "title": "EU AML Single Rulebook (AMLR)",
      "description": "Obliged-entity scope > UBO / beneficial ownership > cash limit & EDD classification > CDD policy > readiness. AMLR (Regulation (EU) 2024/1624) applies from 10 Jul 2027.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/aml-consolidation.html",
      "steps": [
        {
          "tool_id": "485-amlr-obliged-entity-scope-mapper",
          "handoff": "entity_type and obligations feed Stage 2 UBO mapping"
        },
        {
          "tool_id": "486-amlr-ubo-beneficial-ownership-mapper",
          "handoff": "ubo_tier and edd_triggers feed Stage 3 cash/EDD classifier"
        },
        {
          "tool_id": "487-amlr-cash-limit-edd-classifier",
          "handoff": "cash_verdict and edd_flags feed Stage 4 CDD policy builder"
        },
        {
          "tool_id": "488-amlr-cdd-policy-builder",
          "handoff": "cdd_tier_config feeds Stage 5 readiness"
        },
        {
          "tool_id": "350-amla-2027-readiness-gap-analyzer",
          "handoff": "Exports composite AML Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "anchored-extract-verification",
      "domain": "Verification & Proof Receipts",
      "title": "Anchored Extract Verification",
      "description": "Single-node diagnostic verifying an extract's Merkle inclusion against a root only when that root is externally anchored (RFC 3161, OpenTimestamps, Sigstore, or on-chain via VR-1) or is a recognized OCG artifact envelope.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/anchored-extract-verification.html",
      "steps": [
        {
          "tool_id": "art-286-anchored-extract-verifier",
          "handoff": "anchored_extract_determination and escalation feed the auditor's evidence-inclusion workpaper; composes with VR-1 (verify_eth_state_proof) for the on-chain anchor class, standalone otherwise"
        }
      ]
    },
    {
  "name": "ap2-x402-cart-correlation",
  "domain": "Agent Economy",
  "title": "AP2 x402 Cart Correlation",
  "description": "Builds an illustrative AP2 CartMandate with a deterministic hash-chain over its cart line items, then checks whether that CartMandate's total and merchant plausibly correlate with a caller-supplied x402_spend_evidence pack (from the x402-spend-evidence chain). Output vocabulary is CORRELATION_STATUS (CORRELATED / NOT_CORRELATED / INDETERMINATE) -- a plausibility check over two independently-produced artifacts, never a cryptographic binding. Google has not shipped an AP2-compatible x402 extension; no field or code path here implies one exists. Zero network calls; never a facilitator, proxy, gateway, or settlement relay.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/ap2-x402-cart-correlation.html",
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "BUILD-AP2-X402-CHAIN-1",
  "regulatory_basis_decided_at": "2026-08-18",
  "steps": [
    {
      "tool_id": "art-595-ap2-cartmandate-hashchain-builder",
      "handoff": "cart_root, cart_items, and merchant are the CartMandate fields the correlation step checks against a caller-supplied x402_spend_evidence pack."
    },
    {
      "tool_id": "art-596-ap2-x402-cart-correlation",
      "handoff": "terminal step -- independently re-derives cart_chain_intact from cart_items and cart_root, then checks the cart total and merchant against the x402_spend_evidence pack's authorization.value and authorization.to, reporting CORRELATION_STATUS."
    }
  ]
},
    {
      "name": "arc-agentic-commerce",
      "domain": "Digital-Asset Rails",
      "title": "Arc Agentic Commerce",
      "description": "W-E chain. Model agentic commerce economics on Arc: Paymaster gas abstraction + CPN settlement for autonomous agent payment flows.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-agentic-commerce.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "arc_score → agentic commerce dimension primary"
        },
        {
          "tool_id": "art-46-arc-paymaster-model",
          "handoff": "paymaster_verdict, sponsorship_breakeven feed Stage 3 CPN economics"
        },
        {
          "tool_id": "art-43-arc-cpn-model",
          "handoff": "npv_3yr, cost_per_payment — Exports agentic commerce mandate — final stage"
        }
      ]
    },
    {
      "name": "arc-cctp-transfer",
      "domain": "Digital-Asset Rails",
      "title": "Arc CCTP v2 Transfer",
      "description": "W-G chain. Validate CCTP v2 cross-chain USDC transfer: fires when ≥2 Arc fit dimensions score >0.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-cctp-transfer.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "cctp_routing_flag, arc_score → CCTP v2 transfer validation"
        },
        {
          "tool_id": "art-47-arc-cctp-transfer",
          "handoff": "grade, v1_migration_required, hook_risk — CCTP v2 validated — final stage"
        }
      ]
    },
    {
      "name": "arc-cpn-payment",
      "domain": "Digital-Asset Rails",
      "title": "Arc CPN Payment",
      "description": "W-A chain. Model CPN corridor economics vs SWIFT/ACH/card for cross-border USD flows.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-cpn-payment.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "arc_score → CPN dimension primary"
        },
        {
          "tool_id": "art-43-arc-cpn-model",
          "handoff": "npv_3yr, cost_per_payment, migration_verdict — CPN corridor economics — final stage"
        }
      ]
    },
    {
      "name": "arc-dvp-settlement",
      "domain": "Digital-Asset Rails",
      "title": "Arc DvP Atomic Settlement",
      "description": "W-D chain. Validate Arc DvP atomic settlement fit: StableFX + Paymaster for agentic settlement flows.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-dvp-settlement.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "arc_score → DvP dimension primary"
        },
        {
          "tool_id": "art-44-arc-stablefx-model",
          "handoff": "pvp_verdict, herstatt_saved feed Stage 3 Paymaster economics"
        },
        {
          "tool_id": "art-46-arc-paymaster-model",
          "handoff": "paymaster_verdict, cost_per_uop — Exports DvP settlement mandate — final stage"
        }
      ]
    },
    {
      "name": "arc-fit",
      "domain": "Digital-Asset Rails",
      "title": "Arc Fit Diagnostic",
      "description": "D0 entry chain. 12-question diagnostic scoring CPN, StableFX, DvP, and agentic commerce fit for Circle Arc L1.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-fit.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "arc_score, dimension scores, and cctp_routing_flag route to appropriate Arc chain"
        }
      ]
    },
    {
      "name": "arc-multicurrency-corridor",
      "domain": "Digital-Asset Rails",
      "title": "Arc Multi-Currency Corridor Jurisdiction & Settlement",
      "description": "Route a multi-currency Arc corridor to its per-currency home regimes and validate cross-currency settlement and Travel Rule: compliance layer, no FX economics. Per-currency jurisdiction/regime router across the partner-stablecoin set (art-111) → multi-currency PvP atomicity (511) → cross-border Travel-Rule batch validation (art-104). FX pricing is handled separately by the Arc StableFX economics chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-multicurrency-corridor.html",
      "steps": [
        {
          "tool_id": "art-111-arc-corridor-jurisdiction-router",
          "handoff": "per-leg home regimes and disclosure gaps feed Stage 2 PvP validation"
        },
        {
          "tool_id": "511-multi-currency-pvp-validator",
          "handoff": "multi-leg PvP atomicity verdict feeds Stage 3 Travel-Rule batch"
        },
        {
          "tool_id": "art-104-tfr-travel-rule-batch-validator",
          "handoff": "Exports composite multi-currency corridor artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "arc-partner-onboarding",
      "domain": "Digital-Asset Rails",
      "title": "Arc Partner Stablecoin Onboarding & Conformance",
      "description": "Score a non-USD issuer readiness to join Circle Partner Stablecoins on Arc against technical/operational, reserve-management, and risk-management standards. Arc fit diagnostic (art-42) → partner-stablecoin eligibility scorer with A–F grade and gap list (art-110) → xReserve reserve-composition lint (art-45) → MiCA reserve stress for the non-USD EMT (rca-02). Optional Ed25519 §16 proof binds the conformance attestation to a key.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-partner-onboarding.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "Arc fit dimension scores feed Stage 2 partner eligibility scoring"
        },
        {
          "tool_id": "art-110-arc-partner-stablecoin-onboarding",
          "handoff": "tech/reserve/risk scores and gaps feed Stage 3 reserve lint"
        },
        {
          "tool_id": "art-45-arc-xreserve-linter",
          "handoff": "reserve composition verdict feeds Stage 4 MiCA stress"
        },
        {
          "tool_id": "rca-02-mica-reserve-stress",
          "handoff": "Exports composite partner-onboarding artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "arc-reserve-compliance",
      "domain": "Digital-Asset Rails",
      "title": "Arc Reserve Compliance",
      "description": "W-F chain. Full reserve compliance workflow: xReserve linter for GENIUS/MiCA + StableFX risk elimination.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-reserve-compliance.html",
      "steps": [
        {
          "tool_id": "art-45-arc-xreserve-linter",
          "handoff": "compliance_verdict, grade feed Stage 2 StableFX risk model"
        },
        {
          "tool_id": "art-44-arc-stablefx-model",
          "handoff": "pvp_verdict, annual_benefit — Exports reserve compliance mandate — final stage"
        }
      ]
    },
    {
      "name": "arc-stablefx",
      "domain": "Digital-Asset Rails",
      "title": "Arc StableFX Risk Elimination",
      "description": "W-B chain. Quantify Herstatt risk and FX spread savings from Arc StableFX atomic PvP vs non-CLS bilateral settlement.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-stablefx.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "arc_score → StableFX dimension primary"
        },
        {
          "tool_id": "art-44-arc-stablefx-model",
          "handoff": "herstatt_exposure, annual_benefit_usd, verdict — StableFX economics — final stage"
        }
      ]
    },
    {
      "name": "arc-xreserve-issuance",
      "domain": "Digital-Asset Rails",
      "title": "Arc xReserve Issuance Compliance",
      "description": "W-C chain. Lint Arc xReserve config for GENIUS Act §4 eligible assets, yield prohibition (§4(a)(11)), MiCA Art. 54, and USYC composition.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/arc-xreserve-issuance.html",
      "steps": [
        {
          "tool_id": "art-42-arc-fit-diagnostic",
          "handoff": "arc_score → xReserve/issuance dimension"
        },
        {
          "tool_id": "art-45-arc-xreserve-linter",
          "handoff": "grade, checks_failed, compliance_verdict — xReserve compliance — final stage"
        }
      ]
    },
    {
      "name": "assemble-agent-dispute-evidence",
      "domain": "AI & Agent Governance",
      "title": "Assemble Agent Dispute Evidence",
      "description": "Five-step agentic-transaction compelling-evidence pack, mapped to Visa CE3.0: documents authorization at the point of delegation (AP2 mandate), inspects the Visa Trusted Agent Protocol signature, binds the Mastercard Agent Pay agentic token, aggregates a session execution receipt for fulfillment, then terminates in a deterministic evidence lint checking presence and digest-binding of every element.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/agent-dispute-evidence-composer.html",
      "steps": [
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "Documents authorization at the point of delegation; feeds the terminal lint as evidence.ap2_mandate"
        },
        {
          "tool_id": "art-23-visa-trusted-agent-protocol-inspector",
          "handoff": "Visa TAP signature inspection over the transaction; feeds the terminal lint as evidence.tap_signature"
        },
        {
          "tool_id": "art-24-mastercard-agentic-token-builder",
          "handoff": "Mastercard Agent Pay token binding; feeds the terminal lint as evidence.agentic_token"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Session-receipt execution proof for the fulfilled order; feeds the terminal lint as evidence.delivery_proof"
        },
        {
          "tool_id": "art-297-agentic-dispute-ce30-linter",
          "handoff": "Composes the gated evidence-pack receipt -- final stage"
        }
      ]
    },
    {
      "name": "assemble-aiuc1-evidence-pack",
      "domain": "AI & Agent Governance",
      "title": "Assemble AIUC-1 Evidence Pack",
      "description": "Three-step AIUC-1 evidence pipeline: lint a control-evidence bundle against the 23 automatable AIUC-1 v2026-Q1 controls, assemble a signed control-keyed evidence pack with an OSCAL export, then lint the pack for evidence freshness against the AIUC-1 quarterly re-test cadence and cert expiry.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/assemble-aiuc1-evidence-pack.html",
      "steps": [
        {
          "tool_id": "art-303-aiuc1-control-evidence-linter",
          "handoff": "per_control status feeds Stage 2 pack assembly as the control_mapping evidence basis"
        },
        {
          "tool_id": "art-304-aiuc1-evidence-pack-assembler",
          "handoff": "controls[] and pack_claim_strength feed Stage 3 freshness lint against the assembled pack"
        },
        {
          "tool_id": "art-305-aiuc1-evidence-freshness-lint",
          "handoff": "Computes stale_controls and cert_expiry over the assembled pack -- final stage"
        }
      ]
    },
    {
      "name": "avax-evergreen-l1-onboarding",
      "domain": "Digital-Asset Rails",
      "title": "Avalanche Evergreen L1 Onboarding",
      "description": "Evergreen permissioning-control classifier > precompile segregation-of-duties check > validator change-control receipt > L1 continuous-fee runway model: composite Evergreen L1 onboarding walkthrough.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/avax-evergreen-l1-onboarding.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "AVAX-CHAIN-1",
      "regulatory_basis_decided_at": "2026-07-31",
      "steps": [
        {
          "tool_id": "art-495-avax-permissioning-control-classifier",
          "handoff": "protocol-enforced, application-enforced and absent control classification (with gap register) feeds Stage 2 precompile segregation-of-duties check"
        },
        {
          "tool_id": "art-459-sod-matrix-check",
          "handoff": "clean/conflict SoD verdict over the application-enforced roles feeds Stage 3 validator change-control receipt"
        },
        {
          "tool_id": "art-497-validator-change-control-receipt",
          "handoff": "authorization chain, quorum verdict and exceptions for the validator-set change feed Stage 4 L1 continuous-fee runway model"
        },
        {
          "tool_id": "art-496-l1-continuous-fee-runway",
          "handoff": "annual TCO, months_to_depletion and refill_amount_required complete the Evergreen L1 onboarding walkthrough"
        }
      ]
    },
    {
      "name": "b2b-payments-ap-automation",
      "domain": "SME & Commercial Finance",
      "title": "B2B Payments & AP Automation",
      "description": "Invoice-to-payment orchestration > AP automation savings > supplier payment terms optimisation > orchestration vendor scorecard > ERP payment integration scoring: composite B2B AP automation mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/b2b-payments-ap-automation.html",
      "steps": [
        {
          "tool_id": "132-invoice-to-payment-orchestrator",
          "handoff": "invoice_workflow and payment_orchestration feed Stage 2 AP automation savings"
        },
        {
          "tool_id": "134-ap-automation-savings-calculator",
          "handoff": "automation_savings and process_gaps feed Stage 3 supplier payment terms optimiser"
        },
        {
          "tool_id": "135-supplier-payment-terms-optimiser",
          "handoff": "optimal_terms and DPO_improvement feed Stage 4 orchestration vendor scorecard"
        },
        {
          "tool_id": "137-payment-orchestration-vendor-scorecard",
          "handoff": "vendor_scores and selection_criteria feed Stage 5 ERP integration scoring"
        },
        {
          "tool_id": "139-erp-payment-integration-scorer",
          "handoff": "erp_integration_score and composite_ap_mandate — final B2B AP automation mandate"
        }
      ]
    },
    {
      "name": "baas-programme",
      "domain": "BaaS & Embedded Finance",
      "title": "BaaS Provider Selection to Compliance Mapping",
      "description": "BaaS provider scoring > embedded lending unit economics > compliance control mapping > B2B fraud detection.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/baas-programme.html",
      "steps": [
        {
          "tool_id": "152-baas-provider-comparator",
          "handoff": "provider_scores and selection_rationale feed T160 unit economics"
        },
        {
          "tool_id": "160-embedded-lending-unit-economics",
          "handoff": "unit_economics and margin_drivers feed T158 compliance mapping"
        },
        {
          "tool_id": "158-fintech-compliance-control-mapper",
          "handoff": "control_gaps and framework_obligations feed T140 fraud detection"
        },
        {
          "tool_id": "140-b2b-payment-fraud-detector",
          "handoff": "Exports BaaS programme Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "baas-sponsor-bank",
      "domain": "BaaS & Embedded Finance",
      "title": "BaaS / Sponsor-Bank Oversight & Readiness",
      "description": "Provider selection > FBO account structure > ledger architecture > BSA/AML control mapping > sponsor-bank readiness score.",
      "composer_url": "https://ainumbers.co/guides/baas-sponsor-bank-composer.html",
      "steps": [
        {
          "tool_id": "152-baas-provider-comparator",
          "handoff": "provider_shortlist feeds Stage 2 FBO structuring"
        },
        {
          "tool_id": "153-fbo-account-structure-simulator",
          "handoff": "fbo_structure and reconciliation_model feed Stage 3 ledger design"
        },
        {
          "tool_id": "154-ledger-architecture-builder",
          "handoff": "ledger_topology feeds Stage 4 control mapping"
        },
        {
          "tool_id": "158-fintech-compliance-control-mapper",
          "handoff": "control_gaps feed Stage 5 readiness scoring"
        },
        {
          "tool_id": "162-sponsor-bank-readiness-scorer",
          "handoff": "Exports BaaS programme Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "bank-capital-liquidity",
      "domain": "Bank Capital & Credit Risk",
      "title": "Bank Capital & Liquidity (Basel III)",
      "description": "Full Basel III capital and liquidity workflow: RWA calculation > LCR > NSFR > leverage ratio > Pillar 3 disclosure.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/bank-capital-liquidity.html",
      "steps": [
        {
          "tool_id": "201-basel-rwa-calculator",
          "handoff": "rwa_total and credit/market/ops breakdown feed Stage 2 LCR"
        },
        {
          "tool_id": "469-lcr-calculator",
          "handoff": "hqla_total and nco feed Stage 3 NSFR"
        },
        {
          "tool_id": "470-nsfr-calculator",
          "handoff": "asf and rsf totals feed Stage 4 leverage ratio"
        },
        {
          "tool_id": "471-leverage-ratio-calculator",
          "handoff": "tier1 and exposure measure feed Stage 5 Pillar 3 disclosure"
        },
        {
          "tool_id": "472-pillar-3-disclosure-builder",
          "handoff": "Exports composite Basel III capital & liquidity Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "basel-endgame-frtb-capital",
      "domain": "Bank Capital & Credit Risk",
      "title": "Basel Endgame & FRTB Capital Impact",
      "description": "Model-risk gap analysis > FRTB IMA eligibility > Basel III endgame capital impact > CRR3 output-floor phase-in > trading-desk IMA eligibility: composite Basel endgame capital mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/basel-endgame-frtb-capital.html",
      "steps": [
        {
          "tool_id": "339-sr2602-model-risk-mgmt-gap-analyzer",
          "handoff": "model_risk_gaps and sr2602_alignment feed Stage 2 FRTB IMA eligibility"
        },
        {
          "tool_id": "340-frtb-internal-model-eligibility-checker",
          "handoff": "ima_eligibility and desk_qualifications feed Stage 3 Basel III endgame capital"
        },
        {
          "tool_id": "341-basel-iii-endgame-capital-impact-estimator",
          "handoff": "capital_impact_estimate and rwa_delta feed Stage 4 CRR3 output-floor calc"
        },
        {
          "tool_id": "357-crr3-output-floor-phase-in-calculator",
          "handoff": "output_floor_rwa and phase_in_schedule feed Stage 5 trading-desk IMA assessment"
        },
        {
          "tool_id": "398-frtb-trading-desk-ima-eligibility-assessor",
          "handoff": "desk_ima_status and composite capital_mandate — final Basel endgame mandate"
        }
      ]
    },
    {
      "name": "basel-iv-capital-stress",
      "domain": "Bank Capital & Credit Risk",
      "title": "Basel IV Capital Stress Testing",
      "description": "Basel RWA calculation > credit stress-testing workbench > RAROC loan pricing > IFRS9 credit migration matrix: composite Basel IV capital stress mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/basel-iv-capital-stress.html",
      "steps": [
        {
          "tool_id": "201-basel-rwa-calculator",
          "handoff": "rwa_baseline and capital_ratio feed Stage 2 credit stress-testing workbench"
        },
        {
          "tool_id": "202-credit-stress-testing-workbench",
          "handoff": "stress_scenarios and loss_estimates feed Stage 3 RAROC loan pricing model"
        },
        {
          "tool_id": "203-raroc-loan-pricing-model",
          "handoff": "raroc_hurdle and loan_pricing_matrix feed Stage 4 IFRS9 credit migration"
        },
        {
          "tool_id": "204-ifrs9-credit-migration-matrix",
          "handoff": "migration_matrix and ecl_projection — final Basel IV capital stress mandate"
        }
      ]
    },
    {
      "name": "basel-sco60-crypto-exposure-classification",
      "domain": "Digital-Asset Rails",
      "title": "Basel SCO60 Crypto-Asset Exposure Classification",
      "description": "Single-node classifier mapping a crypto-asset position to its Basel SCO60 Group (1a/1b/2a/2b), applying the infrastructure-risk add-on and the Group 2 exposure limit check.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/basel-sco60-crypto-exposure-classification.html",
      "steps": [
        {
          "tool_id": "art-281-sco60-crypto-asset-exposure-classifier",
          "handoff": "group, risk_weight_applied_pct, and group2_limit_breached feed the bank's SCO60 capital calculation and Pillar 3 DIS55 disclosure; standalone recurring classification per position"
        }
      ]
    },
    {
      "name": "basel-take2-impact-assessment",
      "domain": "Bank Capital & Credit Risk",
      "title": "Basel Endgame 2026 Reproposal Impact Assessment",
      "description": "Run a bank's own exposure book and business-indicator inputs through the 2026 Basel Endgame reproposal (BCBS/US NPR, reproposed 2026-03-19, comments closed 2026-06-18, final expected ~Q4 2026): credit-risk ERBA/standardized RWA (art-355), operational-risk SMA business-indicator and internal-loss-multiplier component (art-356), and the output-floor phase-in path (art-358) run in parallel off the same book, then a 2023-vs-2026 capital-delta comparator (art-357) reproduces the headline relief story on the caller's own numbers. rule_status stays proposed throughout -- every stage carries the reproposal's provisional status and this chain is due for a re-pin WU at finalization (~Q4 2026).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/basel-take2-impact-assessment.html",
      "steps": [
        {
          "tool_id": "art-355-erba-standardized-rwa-calculator",
          "handoff": "Per-exposure risk weights and aggregate RWA under the 2026 reproposal feed both the output-floor simulator (as the standardized-RWA input) and the capital-delta comparator's 2026-side credit-risk figure"
        },
        {
          "tool_id": "art-356-compute-oprisk-sma-2026",
          "handoff": "Operational-risk capital under the SMA business-indicator component and ILM feeds the capital-delta comparator's 2026-side operational-risk figure"
        },
        {
          "tool_id": "art-358-simulate-output-floor",
          "handoff": "Year-by-year binding-floor capital-impact path, computed off the same standardized RWA, feeds the capital-delta comparator as the floor-phase-in context for the final delta report"
        },
        {
          "tool_id": "art-357-basel-2023-vs-2026-capital-delta-comparator",
          "handoff": "RWA and minimum-capital delta versus the 2023 NPR baseline, plus the floor-phase-in path -- the caller's own reproduction of the reproposal's headline relief number, with a receipt"
        }
      ]
    },
    {
      "name": "beacon-sampled-audit-testing",
      "domain": "Audit & Assurance",
      "title": "Beacon-Sampled Audit Testing",
      "description": "The audit-sampling ceremony as one hash-anchored composite: an item manifest is hashed and committed BEFORE a public randomness beacon pulse exists, the pulse then seeds a deterministic HMAC-DRBG selection (art-583), and the selected population is recomputed by the recompute node configured for the regime under test. The ordering is the whole point -- a manifest committed before the pulse round cannot be reshaped to steer which items get drawn, and a pulse nobody controlled cannot be shopped for a friendlier sample. One generic chain, configured per regime: stage 2 is the prevailing-wage certified-payroll recompute (art-574) as the first instance, and stage 3 the multi-garnishment stacking recompute (art-572) as a second configuration of the identical ceremony. GATED (OCG Standard v0.8 §21.4): gate 1 on art-583's own /verdict, so a sample that did not derive stops the automated path rather than sending an unusable selection downstream; gate 2 on art-574's own /verdict, so a run whose declared population is not a certified payroll falls through to the garnishment configuration instead of ending on an empty prevailing-wage stage. Regime instances are configurations of these steps, not new nodes. The beacon pulse and its round are caller-declared throughout: no step fetches a pulse or checks a beacon signature.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/beacon-sampled-audit-testing.html",
      "regulatory_refs": [
        "NISTIR 8213 (Draft, May 2019), A Reference for Randomness Beacons: Format and Protocol Version 2 -- public auditability of randomized processes as a named beacon application",
        "Colorado Election Rule 25.2.2(i), 8 CCR 1505-1 -- risk-limiting-audit random seed established at a public meeting after county ballot manifests are filed",
        "AICPA AU-C 530 (Audit Sampling) -- selection method giving each sampling unit a chance of selection",
        "PCAOB AS 2315 (Audit Sampling) -- sample selection expected to be representative of the population"
      ],
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "PACKS-FAIRAUDIT-1",
      "regulatory_basis_decided_at": "2026-08-08",
      "export_capability": ["json"],
      "steps": [
        {
          "tool_id": "art-583-beacon-seeded-fair-sampling-deriver",
          "handoff": "Derives the selected item indices and the full per-draw HMAC-DRBG transcript from three caller-declared inputs: the item-manifest hash committed before the pulse round, the beacon pulse (drand quicknet or NISTIR-8213) and the algorithm id. Gate: a DERIVED sample continues to the configured recompute; any other verdict means there is no usable selection to test against, and the automated path ends rather than recomputing an arbitrary population.",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "eq",
                "value": "DERIVED",
                "next": "art-574-certified-payroll-prevailing-wage-recompute"
              }
            ],
            "default": "end"
          }
        },
        {
          "tool_id": "art-574-certified-payroll-prevailing-wage-recompute",
          "handoff": "Recomputes the sampled certified-payroll rows against the declared wage determination, with CWHSSA overtime and straight-time fringe, and compares the recomputed required gross against a submitted payroll where one is supplied. Gate: an INDETERMINATE verdict means this run declared no certified payroll to test, so the chain falls through to the garnishment configuration of the same ceremony; a MATCHES or DIVERGES verdict is the tested result and the automated path ends there.",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "eq",
                "value": "INDETERMINATE",
                "next": "art-572-multi-garnishment-stacking-recompute"
              }
            ],
            "default": "end"
          }
        },
        {
          "tool_id": "art-572-multi-garnishment-stacking-recompute",
          "handoff": "Second configuration of the identical ceremony: recomputes, for the sampled pay periods, how much each order in the declared garnishment stack may lawfully withhold from disposable earnings, and compares that against a garnishment notice where one is supplied. Terminal stage."
        }
      ]
    },
    {
      "name": "benefits-nondiscrimination-composer",
      "domain": "HR & Benefits Compliance",
      "title": "Benefits Nondiscrimination Composer",
      "description": "Bundled two-test evidence package: §125 cafeteria-plan nondiscrimination tests and 401(k) ADP/ACP nondiscrimination tests. Each test is independent (no data dependency); bundled here into one plan-year benefits-compliance evidence view.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/benefits-nondiscrimination-composer.html",
      "steps": [
        {
          "tool_id": "art-301-section125-ndt",
          "handoff": "Independent test -- no data dependency. Bundled into the plan-year benefits-compliance evidence package."
        },
        {
          "tool_id": "art-302-401k-adp-acp-test",
          "handoff": "Independent test -- no data dependency. Bundled into the plan-year benefits-compliance evidence package."
        }
      ]
    },
    {
      "name": "besu-contract-conformance",
      "domain": "Digital-Asset Rails",
      "title": "Besu Settlement Contract Conformance Gate",
      "description": "Pre-deployment gate for a bank’s Besu-permissioned settlement contract and its off-chain orchestrator: static contract lint, orchestrator attestation, and receipt aggregation compose into one conformance record before go-live.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/besu-contract-conformance-composer.html",
      "steps": [
        {
          "tool_id": "art-289-lint-besu-settlement-contract",
          "handoff": "lint findings feed Stage 2 orchestrator attestation"
        },
        {
          "tool_id": "art-292-attest-settlement-orchestrator",
          "handoff": "orchestrator attestation feeds Stage 3 receipt aggregation"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Aggregates the conformance receipts -- final stage"
        }
      ]
    },
    {
      "name": "bnpl-programme",
      "domain": "Consumer & Wealth Compliance",
      "title": "BNPL Programme — FCA Regulation",
      "description": "FCA BNPL readiness > affordability modelling > APR calculation > disclosure templates > arrears & collections policy.",
      "composer_url": "https://ainumbers.co/guides/bnpl-programme-composer.html",
      "steps": [
        {
          "tool_id": "187-bnpl-fca-readiness-checker",
          "handoff": "readiness_score and gap_list feed Stage 2 affordability model"
        },
        {
          "tool_id": "190-bnpl-affordability-assessment-modeller",
          "handoff": "affordability_result and repayment_schedule feed Stage 3 APR calc"
        },
        {
          "tool_id": "193-bnpl-apr-calculator",
          "handoff": "representative_apr and total_charge feed Stage 4 disclosure templates"
        },
        {
          "tool_id": "191-bnpl-disclosure-template-generator",
          "handoff": "pcci_template and summary_box feed Stage 5 arrears assessment"
        },
        {
          "tool_id": "192-bnpl-arrears-collections-checker",
          "handoff": "Exports composite BNPL programme Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "bond-mandate-receipt",
      "domain": "AI & Agent Governance",
      "title": "Agentic Bond-Trading Mandate Receipt",
      "description": "Compiles size, spread, and issuer limits into a work mandate, simulates the spend policy against it, then runs the mandate through the agentic mandate sandbox against synthetic bond-trade transactions. GATE: any breach halts the run and opens an escalation record (OCG §22.8) referencing the verify_escalation_closure tail on the anchor worker; a clean run emits the per-session bond-trading mandate receipt.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/bond-mandate-receipt-composer.html",
      "steps": [
        {
          "tool_id": "art-274-compile-work-mandate",
          "handoff": "mandate bounds (size/spread/issuer limits) feed Stage 2 spend-policy simulation"
        },
        {
          "tool_id": "art-02-agent-spend-policy-simulator",
          "handoff": "spend_policy_verdict and synthetic-transaction results feed Stage 3 sandbox run"
        },
        {
          "tool_id": "rbe-06-agentic-mandate-sandbox",
          "handoff": "sandbox verdict → GATE: any breach escalates (HALT, open escalation record, closed via verify_escalation_closure on the anchor worker); clean run emits the per-session bond-trading mandate receipt. Terminal stage.",
          "gate": {
            "input": "/breach",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "escalate"
              }
            ],
            "default": "end"
          }
        }
      ]
    },
    {
  "name": "broker-dealer-ops-pack",
  "domain": "Securities Settlement",
  "title": "Broker-Dealer Operations Pack",
  "description": "15c3-3 Exhibit A customer reserve formula > TRACE/CAT reporting lint.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/broker-dealer-ops-pack.html",
  "steps": [
    {
      "tool_id": "art-396-compute-15c3-3-reserve",
      "handoff": "reserve_requirement_musd and deposit_sufficient feed the reporting-period context for Stage 2 TRACE/CAT lint"
    },
    {
      "tool_id": "art-397-lint-trace-cat-reports",
      "handoff": "Reports TRACE timeliness and CAT structural lint verdicts for the same reporting period -- final stage"
    }
  ]
},
    {
      "name": "ca-genai-disclosure",
      "domain": "AI & Agent Governance",
      "title": "California GenAI Training Data Disclosure",
      "wave": 55,
      "description": "Single-step lint of a supplied generative-AI training-data disclosure against the 12 datapoint categories required by California AB 2013 (Cal. Bus. & Prof. Code §22757.7, eff. 2026-01-01). The present/missing verdict is the lint's own terminal output, not a mid-chain branch -- linear per the wave's non-branching evidence-lint pattern.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ca-genai-disclosure.html",
      "regulatory_refs": [
        "Cal. Bus. & Prof. Code §22757.7 (AB 2013), eff. 2026-01-01 -- DRAFT-PINNED against secondary-source summaries"
      ],
      "steps": [
        {
          "tool_id": "art-315-ab2013-training-data-disclosure-linter",
          "handoff": "all_present and missing_datapoints complete the disclosure coverage report -- final stage"
        }
      ]
    },
    {
      "name": "call-report-edit-gate",
      "domain": "Bank Capital & Credit Risk",
      "title": "FFIEC Call Report Edit-Check Gate (Schedule RC + RC-R)",
      "description": "Schedule RC balance-sheet mapper and Schedule RC-R capital mapper feed the Call Report edit-check gate, which runs cross-schedule identity and capital-stack checks and emits an auto_pass / review_required §27 gate verdict.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/call-report-edit-gate.html",
      "steps": [
        {
          "tool_id": "art-432-call-report-rc-balance-sheet",
          "handoff": "RC balance-sheet totals (total assets, liabilities, equity capital) feed Stage 3 cross-schedule edit checks"
        },
        {
          "tool_id": "art-433-call-report-rcr-capital",
          "handoff": "RC-R capital ratios and RWA feed Stage 3 cross-schedule edit checks against Stage 1 Schedule RC",
          "gate": {
            "input": "/ratios/total_capital_pass",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "art-434-call-report-edit-check-gate"
              }
            ],
            "default": "art-434-call-report-edit-check-gate",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-434-call-report-edit-check-gate",
          "handoff": "emits per-check pass/fail verdicts plus an auto_pass | review_required gate_status for the §27 dual_control/review_required gate ahead of submission-evidence export; terminal check"
        }
      ]
    },
    {
      "name": "camt053-parallel-run-recon-pack",
      "domain": "Corporate Treasury & FX",
      "title": "camt.053 Parallel-Run Recon Pack",
      "description": "Evidence pack for a bank-statement parallel run, where a treasury receives the same period twice: once as a Swift MT9xx statement it maps itself, and once as the bank's native camt.053. Stage 1 maps the MT leg to a camt-shaped object with a fidelity report and the 60F + sum(61) = 62F balance check. Stage 2 classifies the native camt.053 leg by BkTxCd and checks the OPBD + sum(movements) = CLBD balance equation. Stage 3 takes declared record counts and control totals for both legs and checks count completeness, value completeness against a declared tolerance, and aggregate-versus-partition consistency. Both legs are DECLARED inputs: the pack reads no bank connection and fetches no statement, so it evidences whether the two legs agree, never that either leg is correct. A run that cannot establish agreement reports that as its own state rather than defaulting to a pass.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/camt053-parallel-run-recon-pack.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "PACKS-CAMT-1",
      "regulatory_basis_decided_at": "2026-08-08",
      "steps": [
        {
          "tool_id": "art-563-mt9xx-camt-statement-migration-mapper",
          "handoff": "Stage 1, the MT-derived leg. A pasted MT900/910/940/942/950 statement or notification mapped to a camt.052/053/054-shaped JSON object, with a fidelity report covering truncation findings, unmappable tags, and the 60F + sum(61) = 62F balance-consistency check."
        },
        {
          "tool_id": "art-258-parse-camt053-reconciliation",
          "handoff": "Stage 2, the bank-native leg. The camt.053 statement the bank sent for the same account and period, classified by Domain, Family and SubFamily per the CGI-MP usage guide, with the OPBD + sum(movements) = CLBD balance equation checked and a structured-remittance match rate scored."
        },
        {
          "tool_id": "art-519-payment-data-migration-completeness",
          "handoff": "Stage 3, the both-legs agreement check. Declared per-partition record counts and control totals for the two legs, checked for count completeness, value completeness within a declared tolerance, and aggregate-versus-partition consistency, so a grand total that reconciles while a partition underneath does not is reported rather than passed. Final stage."
        }
      ]
    },
    {
      "name": "canton-capital-efficiency",
      "domain": "Digital-Asset Rails",
      "title": "Canton Capital Efficiency Chain",
      "description": "Assess Canton pilot readiness and compute settlement-risk capital savings.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-capital-efficiency.html",
      "steps": [
        {
          "tool_id": "503-canton-tokenization-readiness-diagnostic",
          "handoff": "entity_type,grade,gaps feed Stage 2 capital optimizer"
        },
        {
          "tool_id": "504-settlement-risk-capital-optimizer",
          "handoff": "total_rwa_delta,annual_saving_bps feeds downstream Basel 3.1/XVA/LCR chain -- final stage"
        }
      ]
    },
    {
      "name": "canton-cash-leg-assurance",
      "domain": "Digital-Asset Rails",
      "title": "Canton Cash-Leg Assurance Chain",
      "description": "Stress-test the cash leg: LCR/NSFR liquidity scenario → MiCA reserve adequacy → on-chain finality verification. Assures Canton settlement payments against Basel III, MiCA Art. 36, and PFMI P9.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-cash-leg-assurance.html",
      "steps": [
        {
          "tool_id": "sim-01-lcr-nsfr-liquidity-stress-test",
          "handoff": "lcr_breach_probability,nsfr_ratio,time_to_breach feed Stage 2 reserve stress",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "eq",
                "value": "BREACH_RISK",
                "next": "end"
              }
            ],
            "default": "rca-02-mica-reserve-stress",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "rca-02-mica-reserve-stress",
          "handoff": "reserve_shortfall_pct,breach_probability feed Stage 3 cash-leg finality"
        },
        {
          "tool_id": "506-onchain-cash-leg-finality-checker",
          "handoff": "finality_verdict,genius_status -- Exports cash-leg assurance mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-counterparty-onboarding",
      "domain": "Digital-Asset Rails",
      "title": "Canton Counterparty Onboarding Chain",
      "description": "KYA screening and party allowlist validation for Canton Network onboarding.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-counterparty-onboarding.html",
      "steps": [
        {
          "tool_id": "509-canton-party-allowlist-validator",
          "handoff": "allowlist_verdict,fatf_flags,parties_approved -- Exports counterparty onboarding mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-deposit-compliance",
      "domain": "Digital-Asset Rails",
      "title": "Canton Deposit Token Compliance Chain",
      "description": "Classify the digital asset type and validate PvP settlement compliance for Canton deposit tokens. MiCA/MiFID II regulatory classification → multi-currency PvP finality check.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-deposit-compliance.html",
      "steps": [
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "mifid_instrument,mca_token_type,dlt_pilot_eligible feed Stage 2 PvP validator"
        },
        {
          "tool_id": "511-multi-currency-pvp-validator",
          "handoff": "pvp_verdict,cross_network_finality -- Exports deposit compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-dtc-treasury",
      "domain": "Digital-Asset Rails",
      "title": "Canton DTC Tokenized Treasury Issuance & Settlement",
      "description": "Validate a DTCC/ComposerX tokenized U.S. Treasury for issuance and atomic settlement. Regulatory/asset classification (510) → DTC-custody link, Fed-eligibility, ComposerX DAML lifecycle and programmable-collateral-at-issuance (art-109) → PFMI P12 atomic DvP (507) → tokenized-collateral eligibility for reuse (505). Treasury/DTC-custody-specific; not generic securities lifecycle, not FICC clearing economics.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-dtc-treasury.html",
      "steps": [
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "instrument class and DLT-pilot eligibility feed Stage 2 DTC-treasury validation"
        },
        {
          "tool_id": "art-109-dtc-tokenized-treasury",
          "handoff": "custody link, Fed-eligibility, DAML lifecycle gaps feed Stage 3 DvP atomicity"
        },
        {
          "tool_id": "507-canton-dvp-atomicity-validator",
          "handoff": "atomic DvP verdict feeds Stage 4 collateral eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "Exports composite tokenized-treasury artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "canton-dvp-readiness",
      "domain": "Digital-Asset Rails",
      "title": "Canton DvP Readiness Chain",
      "description": "Validate DvP atomicity and collateral eligibility for Canton settlement. PFMI P12 atomicity model + DTC/Fed/HQLA eligibility verdict.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-dvp-readiness.html",
      "steps": [
        {
          "tool_id": "507-canton-dvp-atomicity-validator",
          "handoff": "dvp_verdict,atomicity_model,finality_model feed Stage 2 collateral eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "hqla_tier,dtc_eligible,haircut_pct -- Exports DvP readiness mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-margin-call",
      "domain": "Digital-Asset Rails",
      "title": "Canton Margin Call & Collateral Mobilization Chain",
      "description": "Margin computation (UMR/d499 for derivatives; GMRA/d349 for repo/SFT), collateral eligibility, and cash-leg finality.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-margin-call.html",
      "steps": [
        {
          "tool_id": "513-margin-call-collateral-mobilizer",
          "handoff": "branch,margin_required,collateral_gap feed Stage 2 collateral eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "hqla_tier,eligible_value feed Stage 3 cash-leg finality"
        },
        {
          "tool_id": "506-onchain-cash-leg-finality-checker",
          "handoff": "finality_verdict -- Exports margin call collateral mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-mmf-collateral",
      "domain": "Digital-Asset Rails",
      "title": "Canton MMF Collateral Eligibility Chain",
      "description": "Validate a tokenized money-market fund as eligible collateral for Canton settlement. Fund-level NAV and eligibility check → HQLA tier and haircut verdict.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-mmf-collateral.html",
      "steps": [
        {
          "tool_id": "514-tokenized-fund-collateral-validator",
          "handoff": "fund_eligible,nav_verified,ucits_compliant feed Stage 2 collateral eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "hqla_tier,dtc_eligible,haircut_pct -- Exports MMF collateral mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-repo-mobility",
      "domain": "Digital-Asset Rails",
      "title": "Canton Repo Collateral Mobility Chain",
      "description": "Compute repo haircut with Canton 24/7 valuation, verify collateral and cash-leg finality.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-repo-mobility.html",
      "steps": [
        {
          "tool_id": "508-repo-haircut-collateral-calculator",
          "handoff": "total_haircut_pct,initial_margin,canton_247 feed Stage 2 collateral eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "hqla_tier,dtc_eligible feed Stage 3 cash-leg finality"
        },
        {
          "tool_id": "506-onchain-cash-leg-finality-checker",
          "handoff": "finality_verdict,genius_status -- Exports repo collateral mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-securities-issuance",
      "domain": "Digital-Asset Rails",
      "title": "Canton Securities Issuance Chain",
      "description": "Regulatory classification and Daml lifecycle validation for tokenized securities.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-securities-issuance.html",
      "steps": [
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "frameworks_applied,mifid_instrument,dlt_pilot_eligible feed Stage 2 lifecycle validator"
        },
        {
          "tool_id": "512-tokenized-security-lifecycle-validator",
          "handoff": "lifecycle_verdict,daml_gaps -- Exports securities issuance mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-securities-lending",
      "domain": "Digital-Asset Rails",
      "title": "Canton Securities Lending Chain",
      "description": "Assess collateral swap eligibility and HQLA classification for Canton securities lending. Swap direction assessment → HQLA tier and haircut verdict.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-securities-lending.html",
      "steps": [
        {
          "tool_id": "515-collateral-swap-eligibility-validator",
          "handoff": "swap_direction,upgrade_eligible,spread_bps feed Stage 2 collateral eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "hqla_tier,dtc_eligible,haircut_pct -- Exports securities lending mandate -- final stage"
        }
      ]
    },
    {
      "name": "canton-selective-disclosure",
      "domain": "Digital-Asset Rails",
      "title": "Canton Selective-Disclosure DvP Attestation",
      "description": "Attest that a Canton DvP privacy partition is sound: each counterparty sees only its leg, both views reconcile to one atomic commitment, no cross-leg leakage. PFMI P12 atomic DvP (507) → selective-disclosure partition and view-reconciliation attestation (art-108) → off-protocol zero-knowledge compliance proof that the views reconcile without revealing the counter-leg (cry-01). Optional Ed25519 §16 proof binds each party attestation to a key.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/canton-selective-disclosure.html",
      "steps": [
        {
          "tool_id": "507-canton-dvp-atomicity-validator",
          "handoff": "atomicity/finality verdict feeds Stage 2 partition attestation"
        },
        {
          "tool_id": "art-108-canton-selective-disclosure",
          "handoff": "per-party view-reconciliation attestation feeds Stage 3 ZK disclosure proof"
        },
        {
          "tool_id": "cry-01-zk-compliance-proof-generator",
          "handoff": "Exports composite selective-disclosure artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "carbon-audit-pack",
      "domain": "Climate & Sustainable Finance",
      "title": "Carbon & Climate Compliance Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the carbon/climate decision set (cry-04) -> one Merkle-root audit receipt (cry-05) -> customs/reviewer/supervisor-framed cover memo (ptg-01). Other chains can feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/carbon-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "card-act-ability-to-pay",
      "domain": "Consumer Lending & Fair Lending",
      "title": "CARD Act Ability to Pay",
      "spec_version": "0.8.0",
      "wave": 39,
      "description": "Gated two-step chain for CARD Act ability-to-pay compliance. Step 1 evaluates ATP per §1026.51 (DTI threshold 45%, under-21 income restriction, penalty fee safe harbor $32/$43). Gate: atp_passes=true exits immediately (approved). Failed ATP continues to Step 2: adverse action notice build per Reg B §1002.9 with SHAP-ranked factor codes. CFPB $8 late fee rule vacated January 17, 2025 (Fifth Circuit No. 24-10266); $32/$43 remain in effect.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/card-act-ability-to-pay.html",
      "regulatory_refs": [
        "15 USC §1665e (CARD Act ATP requirement)",
        "12 CFR §1026.51 (Reg Z ATP)",
        "12 CFR §1026.51(b) (under-21 independent income restriction)",
        "12 CFR §1026.52(b) (penalty fee safe harbor, $32/$43)",
        "12 CFR §1002.9 (Reg B adverse action notice)"
      ],
      "steps": [
        {
          "tool_id": "art-233-check-card-act-ability-to-pay",
          "handoff": "ATP decision with DTI, under-21 gate, and penalty fee safe harbor. Gate: atp_passes=true exits (approved); failed ATP continues to adverse action notice.",
          "gate": {
            "input": "/atp_passes",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "art-228-build-adverse-action-notice"
          }
        },
        {
          "tool_id": "art-228-build-adverse-action-notice",
          "handoff": "Adverse action notice skeleton per Reg B §1002.9 with SHAP-ranked factor codes. Only reached when ATP fails. Final stage."
        }
      ]
    },
    {
      "name": "card-interchange",
      "domain": "Card & Payment Economics",
      "title": "Interchange Optimisation to Scheme Compliance",
      "description": "Interchange optimisation > Visa/MC qualification testing > scheme fee benchmarking > 3DS/EMV compliance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/card-interchange.html",
      "steps": [
        {
          "tool_id": "52-interchange-optimizer",
          "handoff": "optimal_mcc and routing_strategy feed T225 qualification testing"
        },
        {
          "tool_id": "225-visa-mc-interchange-qualification-tester",
          "handoff": "ic_category and qualification_flags feed T233 scheme fee benchmarking"
        },
        {
          "tool_id": "233-card-scheme-fee-benchmarking",
          "handoff": "fee_delta and scheme_comparison feed T228 3DS/EMV compliance"
        },
        {
          "tool_id": "228-3ds-emv-compliance-checker",
          "handoff": "Exports card interchange Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "card-programme",
      "domain": "Card & Payment Economics",
      "title": "Card Programme",
      "description": "Launch readiness > interchange qualification > PCI-DSS scope > 3DS/EMV compliance > scheme fee benchmarking.",
      "composer_url": "https://ainumbers.co/guides/card-programme-composer.html",
      "steps": [
        {
          "tool_id": "163-card-programme-launch-readiness-checker",
          "handoff": "readiness_score and gap_list feed Stage 2 interchange qualification"
        },
        {
          "tool_id": "225-visa-mc-interchange-qualification-tester",
          "handoff": "ic_category and qualification_flags feed Stage 3 PCI scope"
        },
        {
          "tool_id": "226-pci-dss-v4-scope-wizard",
          "handoff": "scope_components and cde_boundaries feed Stage 4 3DS/EMV check"
        },
        {
          "tool_id": "228-3ds-emv-compliance-checker",
          "handoff": "compliance_status and exemptions feed Stage 5 scheme benchmarking"
        },
        {
          "tool_id": "233-card-scheme-fee-benchmarking",
          "handoff": "Exports card programme Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "card-scheme-dispute-management",
      "domain": "Fraud & Dispute",
      "title": "Card Scheme Dispute Management",
      "description": "Card dispute reason-code mapping > card economics optimisation > chargeback representment building: composite card scheme dispute management mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/card-scheme-dispute-management.html",
      "steps": [
        {
          "tool_id": "227-card-dispute-reason-code-mapper",
          "handoff": "dispute_reason_codes and representment_eligibility feed Stage 2 card economics optimisation"
        },
        {
          "tool_id": "85-card-economics-optimizer",
          "handoff": "card_cost_impact and dispute_economics feed Stage 3 chargeback representment builder"
        },
        {
          "tool_id": "41-chargeback-representment-builder",
          "handoff": "representment_package and composite_dispute_mandate — final card dispute mandate"
        }
      ]
    },
    {
      "name": "cat-bond-trigger-validation",
      "domain": "Insurance & Reinsurance",
      "title": "Cat Bond Trigger Validation",
      "spec_version": "0.8.0",
      "wave": 43,
      "description": "Linear two-step chain for cat bond due diligence: validate trigger terms before running the trigger evaluation. Step 1 validates the attachment/exhaustion point structure and pro-rata arithmetic (cat bond terms). Step 2 evaluates the parametric trigger against the validated structure and computes payout. Designed for pre-issuance term review and post-event payout calculation where bond terms must be validated first. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cat-bond-trigger-validation.html",
      "regulatory_refs": [
        "ISDA/IAIS cat bond trigger definitions",
        "Swiss Re sigma 1/2024 (cat bond market data)",
        "NAIC catastrophe bond guidelines",
        "IAIS ICP 13 (reinsurance principles)"
      ],
      "steps": [
        {
          "tool_id": "art-252-validate-cat-bond-trigger-terms",
          "handoff": "Validated layer structure: attachment/exhaustion ordering, layer_width, terms_valid. Passes to trigger evaluation."
        },
        {
          "tool_id": "art-251-compute-parametric-trigger-payout",
          "handoff": "Trigger evaluation: trigger_hit, payout_amount, trigger_fraction, trigger_receipt. Final stage."
        }
      ]
    },
    {
      "name": "cbam-fit",
      "domain": "CBAM",
      "title": "Carbon & Climate Compliance Fit Diagnostic",
      "description": "Single-node D0 diagnostic classifying which carbon/climate obligations bind a firm (CBAM authorised-declarant duty, EU Taxonomy alignment, EU Green Bond conformance, climate stress) and routing to the right carbon-compliance chain; separates in-force CBAM liability (since 1 Jan 2026) from prepare-ahead items.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbam-fit.html",
      "steps": [
        {
          "tool_id": "art-68-carbon-compliance-fit-diagnostic",
          "handoff": "verdicts route to carbon-compliance-liability / carbon-compliance-precursor / taxonomy-align / taxonomy-kpi / eugb-conformance / climate-scenario / carbon-audit-pack"
        }
      ]
    },
    {
      "name": "cbam-liability",
      "domain": "CBAM",
      "title": "CBAM Import Liability & Certificate Declaration",
      "description": "W-A flagship. Embedded-emissions calculation (ART-69) -> default-value resolution (ART-70) -> certificate cost + free-allocation phase-out + holding/surrender schedule (ART-71). The importer-to-customs CBAM declaration lifecycle end-to-end. Decision-support draft, not a filed declaration.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbam-liability.html",
      "steps": [
        {
          "tool_id": "art-70-cbam-default-value-resolver",
          "handoff": "resolved default value + markup (H1) feeds the emissions calculator"
        },
        {
          "tool_id": "art-69-cbam-embedded-emissions-calculator",
          "handoff": "total embedded emissions (H2) feed the certificate-cost engine"
        },
        {
          "tool_id": "art-71-cbam-certificate-cost-engine",
          "handoff": "Exports composite CBAM liability artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "cbam-precursor",
      "domain": "CBAM",
      "title": "CBAM Precursor Emissions Roll-Up",
      "description": "Precursor embedded-emissions aggregation incl. the 2028 scrap rule (ART-72) -> consignment embedded-emissions calculation (ART-69) -> Merkle integrity over the supplier data set (cry-04). Lets a complex-goods producer supply verifiable embedded emissions to its importer; pre-positions the downstream-180 scope extension.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbam-precursor.html",
      "steps": [
        {
          "tool_id": "art-72-cbam-precursor-emissions-aggregator",
          "handoff": "cumulative precursor SEE (H1) feeds the emissions calculator"
        },
        {
          "tool_id": "art-69-cbam-embedded-emissions-calculator",
          "handoff": "consignment embedded emissions (H2) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite precursor artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "cbcr-annual-publish",
      "domain": "Audit & Assurance",
      "title": "CbCR Annual Publish",
      "description": "OECD BEPS Action 13 Country-by-Country Report build with internal consistency gates and anomaly-pattern surfacing in one artifact. gate_status (auto_pass / review_required) and anomaly_flags (e.g. profit-with-zero-employees) are recorded in output_payload per the §27 Human Accountability vocabulary; a PUBLIC release additionally requires a dual_control(2) preparer/tax-officer gate before disclosure -- both recorded now, enforced once HA-RETRO-1 wires runtime gating. Cross-links art-473-interquartile-benchmark (same underlying entity financial data, different arm's-length-range analysis) and art-456 GloBE safe-harbour.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbcr-annual-publish.html",
      "steps": [
        {
          "tool_id": "art-472-cbcr-builder",
          "handoff": "Builds the CbCR XML schema skeleton, runs consistency checks, surfaces anomaly_flags, and computes gate_status -- final stage. PUBLIC export_mode release requires a dual_control(2) preparer + tax-officer sign-off (recorded, not yet runtime-gated) and review_required routing on any anomaly_flags before disclosure."
        }
      ]
    },
    {
      "name": "cbdc-dlt-architecture",
      "domain": "Digital-Asset Rails",
      "title": "CBDC & DLT Architecture",
      "description": "CBDC architecture comparison > ISO20022/DLT mapping > CBDC interoperability modelling > DLT platform comparison > DLT decision framework: composite CBDC/DLT architecture mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbdc-dlt-architecture.html",
      "steps": [
        {
          "tool_id": "53-cbdc-architecture-comparator",
          "handoff": "cbdc_architecture_options and tradeoffs feed Stage 2 ISO20022/DLT mapping"
        },
        {
          "tool_id": "57-iso20022-dlt-mapper",
          "handoff": "iso20022_dlt_alignment and interop_requirements feed Stage 3 CBDC interop model"
        },
        {
          "tool_id": "58-cbdc-interop-modeler",
          "handoff": "interop_design and network_topology feed Stage 4 DLT platform comparison"
        },
        {
          "tool_id": "68-dlt-platform-comparator",
          "handoff": "platform_comparison and selection_criteria feed Stage 5 DLT decision framework"
        },
        {
          "tool_id": "73-dlt-decision-lab",
          "handoff": "dlt_decision_matrix and composite_architecture_mandate — final CBDC/DLT mandate"
        }
      ]
    },
    {
      "name": "cbpr-address-lint-chain",
      "domain": "Cross-Border & Instant Payments",
      "title": "CBPR+ Address Lint Chain",
      "spec_version": "0.8.0",
      "wave": 41,
      "description": "Linear three-step chain for CBPR+ November 2026 structured address migration. Step 1 lints a PostalAddress24 block for structure type (FULLY_STRUCTURED, HYBRID, UNSTRUCTURED) and silent-fail duplication. Step 2 validates BIS CPMI d218 party completeness (UETR UUIDv4, party names, BIC, LEI format, purpose code format). Step 3 validates originator and beneficiary LEIs via ISO 17442 mod-97 and scores Wolfsberg payment transparency. All three steps always run. ZERO PII BY CONSTRUCTION: addresses are structural fields only, LEIs are public GLEIF registry data.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbpr-address-lint-chain.html",
      "regulatory_refs": [
        "SWIFT CBPR+ Structured Address Migration Bulletin (deadline 14 Nov 2026)",
        "BIS CPMI d218 Harmonised ISO 20022 data requirements for cross-border payments",
        "ISO 20022 PostalAddress24 (MX catalogue)",
        "ISO 17442:2020 Legal Entity Identifier",
        "Wolfsberg Payment Transparency Standards 2023"
      ],
      "steps": [
        {
          "tool_id": "art-241-cbpr-structured-address-linter",
          "handoff": "PostalAddress24 structure type, silent-fail violations, and per-field lint results. Passes to party completeness validation."
        },
        {
          "tool_id": "art-242-pacs008-party-completeness-validator",
          "handoff": "CPMI d218 completeness score, UETR format check, BIC/LEI format checks. Passes to LEI check-digit validation."
        },
        {
          "tool_id": "art-246-lei-payment-binding-linter",
          "handoff": "ISO 17442 mod-97 LEI check-digit results and Wolfsberg transparency tier. Final stage."
        }
      ]
    },
    {
      "name": "cbpr-cutover",
      "domain": "Cross-Border & Instant Payments",
      "title": "CBPR+ Cutover Validation",
      "description": "Validate message structure, remittance mapping, cross-rail compatibility, and schema compliance before SWIFT CBPR+ go-live.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cbpr-cutover.html",
      "steps": [
        {
          "tool_id": "02-iso20022-builder",
          "handoff": "generated_xml and validation_status feed T144 remittance validation"
        },
        {
          "tool_id": "144-iso20022-remittance-validator",
          "handoff": "remittance_fields and mapping_errors feed T254 cross-rail check"
        },
        {
          "tool_id": "254-iso20022-cross-rail-compatibility",
          "handoff": "compatibility_matrix and gap_list feed T98 schema validation"
        },
        {
          "tool_id": "98-iso20022-validator",
          "handoff": "Exports ISO 20022 validation Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "ccd2-consumer-credit",
      "domain": "EU Digital ID & Consumer Credit",
      "title": "EU Consumer Credit (CCD2)",
      "description": "Scope classification > Art. 18 creditworthiness > SECCI pre-contractual disclosure > readiness. CCD2 (Directive (EU) 2023/2225) applies from 20 Nov 2026.",
      "composer_url": "https://ainumbers.co/guides/ccd2-consumer-credit-composer.html",
      "steps": [
        {
          "tool_id": "481-ccd2-scope-classifier",
          "handoff": "in_scope_products and obligation_tier feed Stage 2"
        },
        {
          "tool_id": "482-ccd2-creditworthiness-assessment-builder",
          "handoff": "assessment_framework feeds Stage 3 disclosure"
        },
        {
          "tool_id": "483-ccd2-secci-precontractual-disclosure-generator",
          "handoff": "disclosure_set feeds Stage 4 readiness scoring"
        },
        {
          "tool_id": "484-ccd2-readiness-scorer",
          "handoff": "Exports CCD2 Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "ccp-margin-monitor",
      "domain": "Treasury Clearing",
      "title": "CCP Margin Monitor",
      "description": "Quarterly public benchmark chain for the CCP Margin Monitor series: presents the cross-CCP public quantitative disclosure (PQD) field comparison - financial resources, default fund size, Cover-2 stress loss, initial margin required, skin-in-the-game - across FICC and ICE for the benchmark's published issues. Presentation and receipt wiring over the already-proven comparator node - no new derive step.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ccp-margin-monitor.html",
      "export_capability": ["pdf"],
      "steps": [
        {
          "tool_id": "art-528-cross-ccp-pqd-comparator",
          "handoff": "comparison arithmetic and delta table are the terminal output; the Monitor's presentation layer selects and labels fields for quarterly publication, no downstream derive stage"
        }
      ]
    },
    {
      "name": "cecl-allowance-quarterly",
      "domain": "Bank Capital & Credit Risk",
      "title": "CECL Allowance Calculation & Rollforward (Quarterly)",
      "description": "Single-node quarterly ASC 326 CECL allowance run: computes per-segment expected credit loss from caller-supplied PD/LGD/EAD curves and reconciles the allowance rollforward against the prior period balance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cecl-allowance-quarterly.html",
      "steps": [
        {
          "tool_id": "art-426-cecl-ecl-calculator",
          "handoff": "per-segment ECL and the reconciled allowance rollforward feed the quarterly ASC 326 disclosure and audit workpaper; recurring quarterly cadence"
        }
      ]
    },
    {
      "name": "cfpb-1033-open-banking",
      "domain": "Open Banking / Open Finance",
      "title": "CFPB 1033 Open Banking Compliance",
      "description": "Institution classification > data-rights scope > TPPP authorisation mapping: composite CFPB 1033 open-banking mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cfpb-1033-open-banking.html",
      "steps": [
        {
          "tool_id": "165-cfpb-1033-institution-classifier",
          "handoff": "institution_classification and covered_data_types feed Stage 2 data-rights scoping"
        },
        {
          "tool_id": "166-cfpb-1033-data-rights-scoper",
          "handoff": "data_rights_scope and consumer_entitlements feed Stage 3 TPPP mapping"
        },
        {
          "tool_id": "167-cfpb-1033-tppp-mapper",
          "handoff": "tppp_authorisation_map and compliance_gaps — final CFPB 1033 mandate"
        }
      ]
    },
    {
      "name": "chain-ccp-default-waterfall",
      "domain": "Treasury Clearing",
      "title": "CCP Default Waterfall Recompute to Cover-2 Sizing",
      "description": "Recomputes a CCP's sequential default-waterfall loss allocation for a caller-declared defaulting-member loss, then checks whether the recomputed allocation stays within the CCP's Cover-2 default fund sizing or breaches it.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/chain-ccp-default-waterfall.html",
      "steps": [
        {
          "tool_id": "art-529-ccp-default-waterfall-recompute",
          "handoff": "stage-by-stage loss absorption and any unallocated residual feed Stage 2's fund-size adequacy check against the same declared loss amount"
        },
        {
          "tool_id": "art-530-default-fund-cover2-sizing",
          "handoff": "checks the declared default fund size against the worst-case Cover-2 stress scenario; terminal check"
        }
      ]
    },
    {
      "name": "chain-ccp-pqd-benchmark",
      "domain": "Treasury Clearing",
      "title": "Cross-CCP PQD Benchmark",
      "description": "Single-node cross-CCP public quantitative disclosure (PQD) benchmark: compares a caller-selected set of CPMI-IOSCO PQD fields across FICC and ICE using a source-cited fixture dataset, flagging any caller-declared threshold breach per entity.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/chain-ccp-pqd-benchmark.html",
      "steps": [
        {
          "tool_id": "art-528-cross-ccp-pqd-comparator",
          "handoff": "comparison arithmetic and delta table are the terminal output; no downstream stage"
        }
      ]
    },
    {
      "name": "chain-member-margin-call-to-porting",
      "domain": "Treasury Clearing",
      "title": "Member Margin Call Lifecycle to Client Porting Check",
      "description": "Attests a clearing member's margin call lifecycle against its SLA window; an unmet-SLA call (disputed, escalated, or still-open past the SLA) routes to the client porting check as a contingency path, while a funded within-SLA call ends.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/chain-member-margin-call-to-porting.html",
      "steps": [
        {
          "tool_id": "art-531-member-margin-call-lifecycle",
          "handoff": "suggested_gate_route of end closes the chain; escalate or hold routes to Stage 2's client porting check as a contingency path",
          "gate": {
            "input": "/suggested_gate_route",
            "rules": [
              {
                "op": "eq",
                "value": "end",
                "next": "end"
              }
            ],
            "default": "art-532-client-porting-check",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "art-532-client-porting-check",
          "handoff": "checks whether the member's client positions and collateral are portable to a backup clearing member given the unmet-SLA margin call; terminal check"
        }
      ]
    },
    {
      "name": "claim-dispute-bundle-assembly",
      "domain": "Insurance & Reinsurance",
      "title": "Claim Dispute Bundle Assembly",
      "description": "Two-step agent-insurability evidence flow: score an agent execution evidence bundle for underwriter-facing evidence completeness, then build a two-sided replay-challenge dossier for a disputed execution_claim, optionally testing a warranty KPI breach.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/claim-dispute-bundle-assembly.html",
      "steps": [
        {
          "tool_id": "art-306-agent-insurability-evidence-scorer",
          "handoff": "composite and dims feed Stage 2 as evidence-completeness context for the dispute bundle"
        },
        {
          "tool_id": "art-307-claim-dispute-bundle-builder",
          "handoff": "Builds the replay-challenge dossier, optionally testing a warranty_kpi_breach -- final stage"
        }
      ]
    },
    {
      "name": "climate-scenario",
      "domain": "Climate & Sustainable Finance",
      "title": "Climate Scenario Stress (NGFS / Fit-for-55)",
      "description": "Apply an NGFS / Fit-for-55 scenario path to an exposure set -> stress-adjusted metrics (ART-76) -> audit receipt (cry-05). The bank/insurer climate-risk computation a supervisor re-verifies. Scenario paths are versioned reference data, not the suite financial-shock stress parameters.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/climate-scenario.html",
      "steps": [
        {
          "tool_id": "art-76-climate-scenario-applicator",
          "handoff": "stressed metrics + per-sector deltas (H1) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite climate-scenario artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "collections-compliance-pack",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Collections Compliance Pack",
      "description": "Linear two-step chain for debt-collection compliance review. Step 1 checks a declared call log against the Regulation F 12 CFR 1006.14(b) 7-in-7 and post-conversation quiet-period rebuttable presumptions. Step 2 checks a debt-validation-notice content-element checklist against 12 CFR 1006.34 / Model Form B-1 and computes the 30-day response-period math. Both presumption and completeness checks are over DECLARED inputs -- neither determines that harassment occurred or that a notice's disclosed amounts are accurate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/collections-compliance-pack.html",
      "regulatory_refs": [
        "12 CFR 1006.14(b) (Regulation F call-frequency rebuttable presumptions)",
        "12 CFR 1006.34 (Regulation F validation-notice content requirements)",
        "Model Form B-1 (Appendix B)"
      ],
      "steps": [
        {
          "tool_id": "art-402-validate-regf-call-frequency",
          "handoff": "Per-debt 7-in-7 and quiet-period presumption findings. Independent of Step 2's notice-completeness check -- both run against the same declared debt collection file."
        },
        {
          "tool_id": "art-403-check-debt-validation-notice",
          "handoff": "Validation-notice element completeness grade and 30-day response-period math, completing the collections compliance review."
        }
      ]
    },
    {
      "name": "commission-integrity-and-amortization",
      "domain": "Corporate Treasury & FX",
      "title": "Commission Integrity and Amortization",
      "spec_version": "0.8.0",
      "wave": 45,
      "description": "Gated three-step chain for commission STP under ASC 606/340-40. Step 1 validates commission hierarchy structure (BFS orphan/cycle/split-sum). Step 2 reconciles commission statement line items; gate on /has_discrepancy: true exits early (discrepancy found -- correct base before amortizing). Default (clean statement) proceeds to Step 3: ASC 340-40 amortization with practical expedient check. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/commission-integrity-and-amortization.html",
      "regulatory_refs": [
        "ASC 340-40-25-4 (FASB incremental costs of obtaining a contract, 12-month practical expedient)",
        "ASC 606 (Revenue from Contracts with Customers)"
      ],
      "steps": [
        {
          "tool_id": "art-264-validate-commission-hierarchy",
          "handoff": "BFS hierarchy validation: is_valid (bool), violations[], orphan_count, circular_count, split_violations. Passes structural summary to statement reconciliation."
        },
        {
          "tool_id": "art-266-reconcile-commission-statement",
          "handoff": "Statement reconciliation: variance_amount and variance_pct per line. Sets has_discrepancy. GATE: has_discrepancy=true -> END (discrepancy found). Default (false) -> Step 3.",
          "gate": {
            "input": "/has_discrepancy",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "art-265-amortize-asc606-commissions"
          }
        },
        {
          "tool_id": "art-265-amortize-asc606-commissions",
          "handoff": "ASC 340-40 amortization: apply_expedient (bool), monthly_amortization, cumulative_amortized_pct, remaining_book_value. Final stage."
        }
      ]
    },
    {
      "name": "conditional-relief-collateral",
      "domain": "Digital-Asset Rails",
      "title": "Conditional-Relief Collateral Evidence",
      "description": "Six-step composed evidence chain for accepting a payment stablecoin as collateral under a conditional regulatory relief. Step 1 confirms GENIUS Act reserve-attestation readiness for the permitted payment stablecoin. Step 2 checks the MiCA reserve disclosure and records, via a gate on token_type, whether the issuer is also a regulated e-money-token issuer; either branch continues to the reserve-proof stage, since the GENIUS Act attestation from step 1 stands on its own regardless of MiCA classification. Step 3 independently verifies the reserve proof and Chainlink PoR/NAVLink depeg staleness. Step 4 classifies the tokenized leg's DTC/Fed eligibility and Basel HQLA tier. Step 5 applies the Basel CRE22 comprehensive-approach collateral haircut. Step 6 builds the conditional-relief collateral receipt: a per-condition PASS/FAIL/UNDECIDABLE verdict against the caller's own condition set, a version-staleness check, the applicable capital charge, and the revocation-exposure figure if the relief were withdrawn.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/conditional-relief-collateral.html",
      "regulatory_refs": [
        "GENIUS Act S.394 (permitted payment stablecoin reserves)",
        "MiCA Title IV / RTS on reserve of assets (e-money token reserve disclosure)",
        "BCBS d349/SCO60 (HQLA tier)",
        "Basel CRE22 comprehensive-approach collateral haircuts"
      ],
      "steps": [
        {
          "tool_id": "art-06-genius-act-reserve-attestation",
          "handoff": "attestation_readiness_determination and coverage_ratio_pct establish the payment stablecoin's GENIUS Act reserve-attestation readiness before the MiCA leg is checked."
        },
        {
          "tool_id": "art-512-check-mica-reserve-disclosure",
          "handoff": "token_type, coverage, and judgment_required record whether the issuer is also a MiCA e-money-token issuer and whether that leg resolved cleanly.",
          "gate": {
            "input": "/token_type",
            "rules": [
              {
                "op": "eq",
                "value": "EMT",
                "next": "art-280-reserve-proof-verifier"
              }
            ],
            "default": "art-280-reserve-proof-verifier"
          }
        },
        {
          "tool_id": "art-280-reserve-proof-verifier",
          "handoff": "reserve_proof_determination and root_hash_match feed the tokenized-collateral eligibility check with an independently verified reserve and depeg-staleness record."
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "dtc_status and hqla_tier feed the Basel haircut engine as the tokenized leg's eligibility tier."
        },
        {
          "tool_id": "art-444-collateral-haircut-engine",
          "handoff": "collateral_adjusted_total and net_exposure feed the conditional-relief receipt as the haircut-adjusted collateral value."
        },
        {
          "tool_id": "art-514-conditional-relief-collateral-receipt",
          "handoff": "all_conditions_met, applicable_capital_charge, and revocation_capital_delta are the chain output."
        }
      ]
    },
    {
      "name": "consumer-protection",
      "domain": "Consumer & Wealth Compliance",
      "title": "Consumer Protection & FCA Consumer Duty",
      "description": "Vulnerability assessment > fair-value assessment > MiFID costs & charges > PRIIPs KID compliance > Consumer Duty board MI > composite consumer-duty mandate.",
      "composer_url": "https://ainumbers.co/guides/consumer-protection-composer.html",
      "steps": [
        {
          "tool_id": "395-consumer-duty-vulnerability-assessment-builder",
          "handoff": "vulnerability_segments feed Stage 2 fair-value assessment"
        },
        {
          "tool_id": "396-consumer-duty-price-value-assessment",
          "handoff": "value_rating and outlier_flags feed Stage 3 costs aggregation"
        },
        {
          "tool_id": "428-mifid-costs-charges-calculator",
          "handoff": "total_cost_ratio and cost_breakdown feed Stage 4 KID check"
        },
        {
          "tool_id": "448-priips-kid-compliance-checker",
          "handoff": "kid_compliance_status feeds Stage 5 board MI framework"
        },
        {
          "tool_id": "397-consumer-duty-mi-framework-builder",
          "handoff": "Exports consumer protection Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "content-credential-verification",
      "domain": "Document & Content Provenance",
      "title": "C2PA Content Credential Verification (provenance integrity)",
      "description": "Validate a decoded C2PA manifest (art-123) then verify the Content Credential signature against a caller-supplied trust posture with zero network (art-124) then resolve the ingredient provenance tree and confirm it chains back (art-125). Client-side, zero-egress, agent-callable alternative to network-dependent trust-list validation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/content-credential-verification.html",
      "steps": [
        {
          "tool_id": "art-123-c2pa-manifest-validator",
          "handoff": "validated manifest structure feeds signature verification"
        },
        {
          "tool_id": "art-124-content-credential-signature-verifier",
          "handoff": "signature verdict feeds ingredient-tree resolution"
        },
        {
          "tool_id": "art-125-provenance-ingredient-tree-resolver",
          "handoff": "Exports provenance verdict with execution_hash — final stage"
        }
      ]
    },
    {
  "name": "corporate-action-entitlement",
  "domain": "Securities Settlement",
  "title": "Corporate Action Entitlement",
  "description": "DTC CA ISO 20022 message validator > corporate action entitlement recompute: message-shape validation feeding deterministic dividend/rights/split entitlement math per record date, under the DTCC Important Notice 23890-26 operator mandate field set.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/corporate-action-entitlement.html",
  "steps": [
    {
      "tool_id": "art-546-dtcc-ca-iso20022-validator",
      "handoff": "structure_valid and event_type feed Stage 2 corporate action entitlement recompute"
    },
    {
      "tool_id": "art-547-corporate-action-entitlement-recompute",
      "handoff": "entitlement_computed, cash_entitlement/whole_shares -- final DTC corporate-action entitlement mandate"
    }
  ]
},
    {
      "name": "corporate-treasury-statement-reconciliation",
      "domain": "Corporate Treasury & FX",
      "title": "Corporate Treasury Statement Reconciliation",
      "spec_version": "0.8.0",
      "wave": 44,
      "description": "Linear two-step chain for TMS straight-through reconciliation. Step 1 classifies ISO 20022 camt.053 BkTxCd entries (Domain/Family/SubFamily per CGI-MP v5.0), validates the OPBD+sum(movements)=CLBD balance equation, and scores structured-remittance match rate. Step 2 scores AFP 2024 MAPE and timing-bias of cash forecasts against the reconciled actual transaction amounts, closing the TMS forecast-vs-actual cycle. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/corporate-treasury-statement-reconciliation.html",
      "regulatory_refs": [
        "ISO 20022 ExternalBankTransactionCode1Code registry 2023-03",
        "CGI-MP camt.053 Usage Guide v5.0 (Common Global Implementation)",
        "AFP Cash Forecasting Survey 2024 (MAPE tier benchmarks)"
      ],
      "steps": [
        {
          "tool_id": "art-258-parse-camt053-reconciliation",
          "handoff": "camt.053 BkTxCd classification, OPBD+sum=CLBD balance equation check, structured-remittance match rate. Emits reconciliation_status (CLEAN/PARTIAL_MATCH/LOW_MATCH_RATE/FAILED_BALANCE) and match_rate_pct."
        },
        {
          "tool_id": "art-263-score-cash-forecast-accuracy",
          "handoff": "AFP 2024 MAPE/bias scoring across T+1/T+7/T+30/T+90 horizon buckets. Detects persistent timing bias (>75% same-sign). Returns overall_accuracy_tier, by_horizon breakdown, timing_bias_detected. Final stage."
        }
      ]
    },
    {
      "name": "counterparty-capital-margin",
      "domain": "Bank Capital & Credit Risk",
      "title": "Counterparty Capital & Margin",
      "description": "SA-CCR exposure calculation > CVA capital framework selection > SA-IM initial margin calculation > CVA calculator: composite counterparty capital and margin mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/counterparty-capital-margin.html",
      "steps": [
        {
          "tool_id": "400-sa-ccr-exposure-calculator",
          "handoff": "sa_ccr_ead and exposure_by_asset_class feed Stage 2 CVA capital framework selection"
        },
        {
          "tool_id": "401-cva-capital-framework-selector",
          "handoff": "cva_framework and capital_charge feed Stage 3 SA-IM margin calculation"
        },
        {
          "tool_id": "516-sa-im-initial-margin-calculator",
          "handoff": "im_requirement and collateral_plan feed Stage 4 CVA calculator"
        },
        {
          "tool_id": "200-cva-calculator",
          "handoff": "cva_fair_value and composite_counterparty_mandate — final counterparty capital mandate"
        }
      ]
    },
    {
      "name": "cra-product-conformance",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "CRA Product Conformance (EU CRA Annex I + Art. 14)",
      "description": "Validate an SPDX SBOM against EU CRA Annex I machine-readable requirement (art-138) → check Annex I essential requirements: sbom_machine_readable, top-level dep coverage, vuln handling policy, secure-by-default, conformity route (art-139) → assess CRA Article 14 vulnerability reporting readiness: 24-hour early warning, 72-hour notification, CSIRT/ENISA endpoint (art-140). Obligation date Art.14: 11 Sep 2026. Full CRA product conformance pipeline. Zero network.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cra-product-conformance.html",
      "steps": [
        {
          "tool_id": "art-138-spdx-sbom-validator",
          "handoff": "SPDX SBOM validity feeds Annex I completeness checker"
        },
        {
          "tool_id": "art-139-cra-annex1-completeness-checker",
          "handoff": "Annex I gaps and conformity route feed vulnerability reporting readiness"
        },
        {
          "tool_id": "art-140-cra-vuln-reporting-readiness",
          "handoff": "Article 14 readiness emits full CRA product conformance verdict — final stage"
        }
      ]
    },
    {
      "name": "credit-decisioning",
      "domain": "Bank Capital & Credit Risk",
      "title": "Credit Decisioning",
      "description": "PD/LGD/EAD modelling > Basel RWA calculation > RAROC pricing > covenant compliance check > facility structuring > composite credit mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/credit-decisioning.html",
      "steps": [
        {
          "tool_id": "198-pd-lgd-ead-modeller",
          "handoff": "pd, lgd, ead values feed Stage 2 Basel RWA calculation"
        },
        {
          "tool_id": "201-basel-rwa-calculator",
          "handoff": "rwa_total and capital_requirement feed Stage 3 RAROC pricing"
        },
        {
          "tool_id": "437-raroc-loan-pricing",
          "handoff": "raroc and hurdle_rate feed Stage 4 covenant compliance"
        },
        {
          "tool_id": "199-financial-covenant-compliance-checker",
          "handoff": "covenant_status and breach_flags feed Stage 5 facility structuring"
        },
        {
          "tool_id": "435-credit-facility-structuring",
          "handoff": "Exports credit decisioning Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "credit-ecl-valuation",
      "domain": "Bank Capital & Credit Risk",
      "title": "Credit ECL & Valuation",
      "description": "IFRS9 macro-overlay calculation > credit risk rating calibration > CVA calculator: composite credit ECL and valuation mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/credit-ecl-valuation.html",
      "steps": [
        {
          "tool_id": "196-ifrs9-macro-overlay-calculator",
          "handoff": "macro_overlay_adjustments and ecl_impact feed Stage 2 credit risk rating calibration"
        },
        {
          "tool_id": "197-credit-risk-rating-calculator",
          "handoff": "credit_ratings and pd_estimates feed Stage 3 CVA calculator"
        },
        {
          "tool_id": "200-cva-calculator",
          "handoff": "cva_fair_value and composite_credit_mandate — final credit ECL/valuation mandate"
        }
      ]
    },
    {
      "name": "cross-border-payment-prevalidation",
      "domain": "Cross-Border & Instant Payments",
      "title": "Cross-Border Payment Pre-Validation",
      "spec_version": "0.8.0",
      "wave": 41,
      "description": "Gated two-step chain for CBPR+ payment pre-validation. Step 1 checks whether a purpose code is mandatory for the beneficiary jurisdiction (UAE, India, Bahrain, Jordan, China, Malaysia per BIS CPMI d218) and whether SwiftGo eligibility conditions are met. Step 2 runs aggregate pre-validation (IBAN mod-97, BIC format, LEI format, UETR UUIDv4, PostalAddress24 structure) and emits a /ready boolean. Gate on /ready: both branches terminate, recording in decisions[] which path was taken. ready=true = STP-eligible; ready=false = remediation required. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/cross-border-payment-prevalidation.html",
      "regulatory_refs": [
        "SWIFT CBPR+ Structured Address Migration Bulletin (deadline 14 Nov 2026)",
        "BIS CPMI d218 country payment profiles",
        "SWIFT SwiftGo eligibility rules",
        "ISO 13616:2020 IBAN",
        "ISO 9362:2022 BIC",
        "ISO 17442:2020 LEI",
        "ISO 20022 pacs.008.001.10"
      ],
      "steps": [
        {
          "tool_id": "art-243-purpose-code-requirement-checker",
          "handoff": "Jurisdiction purpose code requirement and SwiftGo eligibility. Passes to aggregate pre-validation."
        },
        {
          "tool_id": "art-247-prevalidation-readiness-scorer",
          "handoff": "Aggregate /ready boolean and per-check detail. Gate: ready=true exits STP-eligible; ready=false exits requiring remediation.",
          "gate": {
            "input": "/ready",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "end"
          }
        }
      ]
    },
    {
      "name": "crypto-tax-reporting",
      "domain": "Digital-Asset Rails",
      "title": "Crypto-Asset Tax Reporting (CARF / DAC8 / 1099-DA)",
      "description": "CARF/DAC8 reportable classification > cost-basis and gain/loss calculation > IRS Form 1099-DA assembly > CASP readiness scoring.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/crypto-tax-reporting.html",
      "steps": [
        {
          "tool_id": "465-carf-dac8-reportable-classifier",
          "handoff": "reportable_users and reportable_txns feed Stage 2 basis calc"
        },
        {
          "tool_id": "466-crypto-cost-basis-gain-calculator",
          "handoff": "gain_loss_schedule feeds Stage 3 1099-DA assembly"
        },
        {
          "tool_id": "467-form-1099-da-generator",
          "handoff": "filing_records feed Stage 4 readiness scoring"
        },
        {
          "tool_id": "468-casp-tax-reporting-readiness-scorer",
          "handoff": "Exports crypto-tax reporting Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "digital-product-passport-lineage",
      "domain": "Supply-Chain Traceability",
      "title": "Digital Product Passport Lineage (EU ESPR / CIRPASS-2 / GS1 Digital Link)",
      "description": "Validate DPP data carrier against CIRPASS-2 Core Ontology (art-115) → build cradle-to-gate hash-only supplier lineage with carbon aggregation (art-116) → verify consumer/resale authenticity + ownership continuity (art-117). EU Central DPP Registry live 19 Jul 2026.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-product-passport-lineage.html",
      "steps": [
        {
          "tool_id": "art-115-dpp-data-carrier-validator",
          "handoff": "CIRPASS-2 conformance result feeds lineage building"
        },
        {
          "tool_id": "art-116-product-lineage-builder",
          "handoff": "anchored supplier lineage feeds authenticity verification"
        },
        {
          "tool_id": "art-117-product-authenticity-verifier",
          "handoff": "Exports authenticity artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "digital-trade-audit-pack",
      "domain": "Digital Trade",
      "title": "Digital Trade Transaction Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the transaction document + decision set (cry-04) -> one Merkle-root audit receipt (cry-05) -> regulator/bank-framed cover memo (ptg-01). Other chains can feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "digital-trade-counterparty-aml",
      "domain": "Digital Trade",
      "title": "Trade Counterparty Screening & AML",
      "description": "W-D. Party allowlist (LEI/OFAC/sanctions/FATF Rec 16, 509) -> counterparty risk rating (customer_risk_rating) -> TBML typology score (art-10). KYC/sanctions/AML pack for a trade counterparty.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-counterparty-aml.html",
      "steps": [
        {
          "tool_id": "509-canton-party-allowlist-validator",
          "handoff": "party verdict and sanctions flags (H1) feed the risk rater"
        },
        {
          "tool_id": "110-customer-risk-rating",
          "handoff": "risk rating (H2) feeds the typology scorer"
        },
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "Exports composite counterparty-AML artifact with execution_hash (H3) -- final stage",
          "gate": {
            "input": "/overall_risk",
            "rules": [
              {
                "op": "eq",
                "value": "HIGH",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "escalate"
          }
        }
      ]
    },
    {
      "name": "digital-trade-doc-integrity",
      "domain": "Digital Trade",
      "title": "Trade Document-Set Integrity & Consistency",
      "description": "W-C. Cross-document consistency + Merkle provenance (ART-55) -> independent Merkle re-verification (cry-04) -> invoicing/volume anomaly monitoring (ml-03). Detects inconsistent or tampered trade-document sets.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-doc-integrity.html",
      "steps": [
        {
          "tool_id": "art-55-trade-document-provenance-verifier",
          "handoff": "merkle_root and mismatches (H1) feed the batch verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "verified integrity (H2) feeds the anomaly detector"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite integrity artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "digital-trade-ebl-enforceability",
      "domain": "Digital Trade",
      "title": "eBL MLETR Conformance & Corridor Enforceability",
      "description": "W-A. MLETR functional-equivalence + cross-corridor enforceability (ART-53) -> instrument/jurisdiction classification (510) -> Merkle integrity over the authoritative copy (cry-04). The flagship decision chain: will this electronic bill of lading hold up at both ends?",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-ebl-enforceability.html",
      "steps": [
        {
          "tool_id": "art-53-mletr-ebl-conformance-validator",
          "handoff": "conformance_grade and enforceability_tier (H1) feed the classifier"
        },
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "classification verdict (H2) feeds the integrity verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite enforceability artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "digital-trade-finance",
      "domain": "Digital Trade",
      "title": "Digital Trade Finance Credit & Eligibility",
      "description": "W-E. Enforceable-eBL-as-collateral (ART-53) -> SME/obligor credit default risk (ml-02) -> repayment anomaly monitoring (ml-03). Frames the trade-finance-gap wedge: a digitally-verified trade as financeable collateral. Educational credit estimator, not a lending decision.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-finance.html",
      "steps": [
        {
          "tool_id": "art-53-mletr-ebl-conformance-validator",
          "handoff": "enforceability_tier (H1) feeds the credit scorer"
        },
        {
          "tool_id": "ml-02-credit-default-risk-scorer",
          "handoff": "PD/credit band (H2) feeds the anomaly detector"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite trade-finance artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "digital-trade-fit",
      "domain": "Digital Trade",
      "title": "Digital Trade Corridor Fit Diagnostic",
      "description": "Single-node D0 diagnostic grading a firm/corridor A–F across legality, document digitisation, platform connectivity, trade-rule basis (eUCP/URDTT), financing, and AML/TBML for digital trade (MLETR); routes to the right chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-fit.html",
      "steps": [
        {
          "tool_id": "art-52-digital-trade-fit-diagnostic",
          "handoff": "dim_scores and primary_recommendation route to dtc-ebl-enforceability / dtc-digital-lc / dtc-doc-integrity / dtc-counterparty-aml / dtc-trade-finance / dtc-tbml-surveillance / dtc-audit-pack"
        }
      ]
    },
    {
      "name": "digital-trade-letter-of-credit",
      "domain": "Digital Trade",
      "title": "Digital Letter-of-Credit Presentation Compliance",
      "description": "W-B. eUCP/eURC/URDTT discrepancy check (ART-54) -> commercial-invoice data validation (art-08) -> cross-document consistency + provenance (ART-55). Machine-checks a digital LC presentation end-to-end.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-letter-of-credit.html",
      "steps": [
        {
          "tool_id": "art-54-digital-trade-rules-checker",
          "handoff": "discrepancies and verdict (H1) feed the invoice validator"
        },
        {
          "tool_id": "art-08-en16931-einvoice-batch-validator",
          "handoff": "invoice validation (H2) feeds the provenance verifier"
        },
        {
          "tool_id": "art-55-trade-document-provenance-verifier",
          "handoff": "Exports composite digital-LC artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "digital-trade-tbml-surveillance",
      "domain": "Digital Trade",
      "title": "Trade-Based Money-Laundering Surveillance",
      "description": "W-F. TBML typology screen (art-10) -> network/phantom-entity & circular-trade graph (mms-03) -> invoicing/volume anomaly monitoring (ml-03). Surveillance over a trade flow for TBML patterns.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/digital-trade-tbml-surveillance.html",
      "steps": [
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "typology risk (H1) feeds the graph engine",
          "gate": {
            "input": "/overall_risk",
            "rules": [
              {
                "op": "eq",
                "value": "HIGH",
                "next": "end"
              }
            ],
            "default": "mms-03-app-fraud-graph",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "mms-03-app-fraud-graph",
          "handoff": "network red flags (H2) feed the anomaly detector"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite TBML-surveillance artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "dlt-network-governance",
      "domain": "Digital-Asset Rails",
      "title": "DLT Network Governance & Design",
      "description": "DLT privacy selector > node topology modeller > DLT guardrail builder > DLT readiness checklist: composite DLT network governance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dlt-network-governance.html",
      "steps": [
        {
          "tool_id": "69-dlt-privacy-selector",
          "handoff": "privacy_model_selection and regulatory_compatibility feed Stage 2 node topology design"
        },
        {
          "tool_id": "70-node-topology-modeler",
          "handoff": "topology_design and resilience_score feed Stage 3 DLT guardrail builder"
        },
        {
          "tool_id": "71-dlt-guardrail-builder",
          "handoff": "guardrail_requirements and risk_controls feed Stage 4 DLT readiness checklist"
        },
        {
          "tool_id": "72-dlt-readiness-checklist",
          "handoff": "readiness_score and deployment_plan — final DLT governance mandate"
        }
      ]
    },
    {
      "name": "dlt-settlement-compliance",
      "domain": "Digital-Asset Rails",
      "title": "DLT Tokenised Settlement Compliance",
      "description": "DVP reconciliation > tokenised-asset compliance check > settlement finality auditing > DLT TCO calculation > DLT settlement verification: composite DLT settlement compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dlt-settlement-compliance.html",
      "steps": [
        {
          "tool_id": "55-dvp-reconciliation",
          "handoff": "dvp_reconciliation_results and fails_analysis feed Stage 2 tokenised-asset compliance"
        },
        {
          "tool_id": "63-tokenized-asset-compliance",
          "handoff": "tokenised_asset_status and compliance_gaps feed Stage 3 settlement finality audit"
        },
        {
          "tool_id": "65-settlement-finality-auditor",
          "handoff": "finality_assessment and irrevocability_checks feed Stage 4 DLT TCO calculation"
        },
        {
          "tool_id": "67-dlt-tco-calculator",
          "handoff": "tco_estimate and cost_drivers feed Stage 5 DLT settlement verification"
        },
        {
          "tool_id": "74-dlt-settlement-verifier",
          "handoff": "settlement_verification and composite_dlt_mandate — final DLT settlement mandate"
        }
      ]
    },
    {
      "id": "document-conversion-verification",
      "name": "document-conversion-verification",
      "domain": "Document & Content Provenance",
      "title": "Document Conversion Verification",
      "description": "Convert a document locally, bind the conversion into a receipt, and independently verify the receipt. Stage 1 converts Markdown to HTML and plain text (art-189), or tabular data across CSV, JSON, and Markdown tables on the tabular branch (art-190). Stage 2 binds the input digest, converter identity, parameters, and output digest into a canonical receipt (art-191). Stage 3 recomputes the binding and re-hashes the files to return a valid, binding_mismatch, digest_mismatch, or malformed verdict (art-192). Every stage produces a SHA-256 execution hash. Zero network, zero PII.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/document-conversion-verification.html",
      "branches": {
        "markdown": [
          "art-189-markdown-document-converter",
          "art-191-conversion-receipt-builder",
          "art-192-conversion-receipt-verifier"
        ],
        "tabular": [
          "art-190-tabular-data-converter",
          "art-191-conversion-receipt-builder",
          "art-192-conversion-receipt-verifier"
        ]
      },
      "steps": [
        {
          "tool_id": "art-189-markdown-document-converter",
          "handoff": "Local conversion produces input and output digests that feed the receipt builder (tabular branch swaps in art-190)"
        },
        {
          "tool_id": "art-191-conversion-receipt-builder",
          "handoff": "Binds the conversion edge into a receipt with binding_sha256 that feeds the verifier"
        },
        {
          "tool_id": "art-192-conversion-receipt-verifier",
          "handoff": "Recomputes the binding and returns the verification verdict with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "document-integrity-anchor",
      "domain": "Document & Content Provenance",
      "title": "Document Integrity & Timestamp Anchor (eIDAS Art.41 / RFC 3161)",
      "description": "Anchor document SHA-256 + claimed timestamp as an eIDAS Art.41-aligned electronic timestamp (art-121) → verify that the anchor recomputes correctly and all claims are internally consistent (art-122). W3C VC export via §13.11.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/document-integrity-anchor.html",
      "steps": [
        {
          "tool_id": "art-121-document-integrity-anchor",
          "handoff": "document hash + timestamp anchor feeds attestation verification"
        },
        {
          "tool_id": "art-122-timestamp-attestation-verifier",
          "handoff": "Exports verified timestamp artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "id": "document-sanitization-integrity",
      "name": "document-sanitization-integrity",
      "domain": "Document & Content Provenance",
      "title": "Document Sanitization Integrity",
      "description": "Strip file metadata locally, prove what was removed, bind the sanitization into a receipt, and record the cleaned files in a digest manifest. Stage 1 produces a proof-of-sanitization record binding the original digest to the removed, redacted, or retained findings and the sanitized digest, with a residual-risk analysis by file type (art-193). Stage 2 binds the sanitization edge into a canonical conversion receipt (art-191). Stage 3 records the original and cleaned file digests in one canonical, hash-anchored manifest (art-194). Every stage produces a SHA-256 execution hash. Zero network, zero PII.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/document-sanitization-integrity.html",
      "steps": [
        {
          "tool_id": "art-193-metadata-sanitization-prover",
          "handoff": "Sanitization record digests feed the receipt builder"
        },
        {
          "tool_id": "art-191-conversion-receipt-builder",
          "handoff": "Binds the sanitization edge into a receipt that feeds the manifest builder"
        },
        {
          "tool_id": "art-194-digest-manifest-builder",
          "handoff": "Records original and cleaned file digests in one hash-anchored manifest with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "dora-escalation-demo",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA Escalation Demo",
      "spec_version": "0.8.2",
      "description": "OCG §22.8 escalation-record demo. DORA readiness diagnostic gates on grade: grade F escalates to human review (run HALTs, open escalation record attached). Any passing grade (D or above) continues to DORA incident classification. Demonstrates skipped_by_escalation, deterministic record_hash, and both-branch fixture coverage.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-escalation-demo.html",
      "regulatory_refs": [
        "DORA (EU) 2022/2554 Art. 5-30"
      ],
      "steps": [
        {
          "tool_id": "art-29-dora-readiness-diagnostic",
          "handoff": "DORA readiness grade. GATE: grade='F' escalates to human review (OCG §22.8). Default (any grade != F) continues to incident classification.",
          "gate": {
            "input": "/grade",
            "rules": [
              {
                "op": "eq",
                "value": "F",
                "next": "escalate"
              }
            ],
            "default": "art-09-dora-incident-classifier",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "art-09-dora-incident-classifier",
          "handoff": "DORA incident classification: major_incident determination, reporting clock, competent authority note. Final stage."
        }
      ]
    },
    {
      "name": "dora-operational-resilience",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA Operational Resilience Reporting",
      "description": "GDPR DSR workflow generation > BCBS239 model-risk readiness scoring > MiFID2 transaction-reporting compliance > operational resilience self-assessment > FCA consumer duty outcome dashboard: composite operational resilience reporting mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-operational-resilience.html",
      "steps": [
        {
          "tool_id": "311-gdpr-dsr-workflow-generator",
          "handoff": "dsr_workflow and data_subject_obligations feed Stage 2 BCBS239 model-risk scoring"
        },
        {
          "tool_id": "312-bcbs239-model-risk-readiness-scorer",
          "handoff": "model_risk_score and bcbs239_gaps feed Stage 3 MiFID2 transaction-reporting check"
        },
        {
          "tool_id": "313-mifid2-transaction-reporting-checker",
          "handoff": "transaction_reporting_gaps and remediation feed Stage 4 operational resilience assessment"
        },
        {
          "tool_id": "314-operational-resilience-self-assessment",
          "handoff": "resilience_self_assessment and scenario_gaps feed Stage 5 consumer duty dashboard"
        },
        {
          "tool_id": "315-fca-consumer-duty-outcome-dashboard",
          "handoff": "consumer_duty_outcomes and composite_resilience_mandate — final operational resilience mandate"
        }
      ]
    },
    {
      "name": "dora-readiness",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA ICT Risk to NCA Submission",
      "description": "Gap analysis > resilience testing design > proportionality assessment > AP2 DORA Policy Mandate. Full orchestrated run available in the composer.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-readiness.html",
      "steps": [
        {
          "tool_id": "300-dora-ict-risk-gap-analyser",
          "handoff": "gap_findings and ict_risk_score feed T304 resilience testing design"
        },
        {
          "tool_id": "304-dora-resilience-testing-designer",
          "handoff": "testing_plan and tlpt_scope feed T307 proportionality assessment"
        },
        {
          "tool_id": "307-dora-proportionality-assessment",
          "handoff": "proportionality_tier and obligations feed T310 policy mandate build"
        },
        {
          "tool_id": "310-ap2-dora-policy-mandate-builder",
          "handoff": "Exports DORA ICT risk Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "dora-resilience",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA Operational Resilience Chain",
      "description": "Classify ICT incidents → model ICT concentration risk → simulate cascade failure propagation → build ICT TPP register → assess TLPT scope and design resilience tests → track NCA submission and score full DORA readiness. End-to-end DORA Article 5-30 operational resilience journey.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-resilience.html",
      "steps": [
        {
          "tool_id": "303-dora-incident-classification-engine",
          "handoff": "incident_class,reporting_deadlines feed Stage 2 concentration risk"
        },
        {
          "tool_id": "rbe-11-dora-incident-classifier",
          "handoff": "incident_severity,rts_criteria_flags,compound_major_check feed Stage 2 concentration modelling"
        },
        {
          "tool_id": "306-dora-ict-concentration-risk-modeller",
          "handoff": "hhi_index,spof_flags,ctpp_exposure feed Stage 3 ICT cascade simulation"
        },
        {
          "tool_id": "pnr-01-dora-ict-cascade-simulator",
          "handoff": "cascade_probability,breach_time_p95,affected_nodes feed Stage 4 TPP register"
        },
        {
          "tool_id": "358-dora-ict-tpp-register-builder",
          "handoff": "tpp_register_json,critical_providers,ctpp_flagged feed Stage 5 TLPT scope"
        },
        {
          "tool_id": "359-dora-tlpt-scope-assessor",
          "handoff": "tlpt_in_scope,testing_frequency,threat_led_required feed Stage 5 resilience design"
        },
        {
          "tool_id": "304-dora-resilience-testing-designer",
          "handoff": "test_plan,scenario_library,bcp_test_schedule feed Stage 6 NCA submission"
        },
        {
          "tool_id": "308-dora-nca-submission-tracker",
          "handoff": "submission_status,deadline_compliance feed Stage 6 readiness score"
        },
        {
          "tool_id": "art-29-dora-readiness-diagnostic",
          "handoff": "readiness_score,remediation_roadmap -- Exports DORA resilience mandate -- final stage. GATE: grade='F' escalates to human review (OCG §22.8), mirroring dora-escalation-demo's proven shape on the same kernel.",
          "gate": {
            "input": "/grade",
            "rules": [
              {
                "op": "eq",
                "value": "F",
                "next": "escalate"
              }
            ],
            "default": "end",
            "gate_policy": "escalate"
          }
        }
      ]
    },
    {
      "name": "dora-roi-annual-cycle",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA RoI Annual Cycle",
      "description": "DORA (EU 2022/2554) Art. 28/30 Register of Information annual build in one artifact: criticality designations for ICT third-party providers and functions are recorded as review_required approval records (a judgment call, not kernel-decided); the annual RoI release itself requires a dual_control(2) gate with a management-body-role approver before submission, reflecting the Art. 5 personal management-body accountability for ICT risk management -- both recorded now via the §27 Human Accountability vocabulary, enforced once HA-RETRO-1's runtime gating is wired to this chain. Each annual cycle's approvals and gate outcome export as one evidence bundle citing the Art. 5 accountability basis. Never a filed submission.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-roi-annual-cycle.html",
      "steps": [
        {
          "tool_id": "art-466-dora-roi-builder",
          "handoff": "Constructs and cross-validates the RoI template set -- final stage. Criticality designations on functions/providers route as review_required approval records (judgment, not kernel-decided). The annual release requires a dual_control(2) gate (preparer + management-body-role approver, Art. 5 personal accountability) before submission, recorded now and runtime-gated once HA-RETRO-1 is wired to this chain; the cycle's approvals and gate outcome export as one evidence bundle citing that Art. 5 basis."
        }
      ]
    },
    {
      "name": "dora-roi-gleif-preflight-pack",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA RoI GLEIF Pre-Submission Preflight Pack",
      "description": "DORA (EU) 2022/2554 Art. 28/30 Register of Information build, GLEIF-hardened: art-466's RoI template set feeds a GLEIF snapshot digest + relationship-consistency check for each LEI-bearing counterparty (provider) in the register, and art-601 composes the results into one preparation-aid evidence pack with a named-human attestation closure. Preparation aid only -- not a submission, not a filing, not a determination that a submission is complete or accurate, and not a statement that any regulator has reviewed or would accept this output.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-roi-gleif-preflight-pack.html",
      "steps": [
        {
          "tool_id": "art-466-dora-roi-builder",
          "handoff": "Constructs and cross-validates the RoI template set. The caller identifies every LEI-bearing counterparty (provider) in the resulting providers[] array to drive Stage 2/3, one GLEIF check pair per counterparty."
        },
        {
          "tool_id": "art-599-gleif-snapshot-digest",
          "handoff": "Run once per LEI-bearing counterparty from Stage 1 (paste-in GLEIF Golden Copy record for that counterparty's LEI). Each result's lei/lei_checksum_valid/source_sha256/captured_at/snapshot_captured feeds that counterparty's gleif_snapshot slot in Stage 4."
        },
        {
          "tool_id": "art-600-lei-relationship-consistency",
          "handoff": "Run once per counterparty from Stage 1, over that counterparty's pasted GLEIF Level-2 relationship record set. Each result's records_assessed/consistent/violation_count feeds that counterparty's lei_relationship_check slot in Stage 4."
        },
        {
          "tool_id": "art-601-dora-roi-gleif-preflight-pack",
          "handoff": "Terminal stage. Links the Stage 1 artifact by execution_hash + tool_id (never the raw dataset), composes each counterparty's Stage 2 + Stage 3 results, rolls up all_snapshots_captured and any_relationship_violation across the set, and records the management-body attestation closure — the final preparation-aid evidence pack."
        }
      ]
    },
    {
      "name": "dora-third-party-ict-risk",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "DORA Third-Party ICT Risk",
      "description": "DORA ROI structure builder > DORA CIF identifier > DORA third-party contract checker > NIS2/DORA overlap mapper: composite DORA third-party ICT risk mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dora-third-party-ict-risk.html",
      "steps": [
        {
          "tool_id": "301-dora-roi-structure-builder",
          "handoff": "ict_roi_framework and cost_benefit feed Stage 2 CIF identification"
        },
        {
          "tool_id": "302-dora-cif-identifier",
          "handoff": "cif_register and concentration_risk feed Stage 3 third-party contract checker"
        },
        {
          "tool_id": "305-dora-third-party-contract-checker",
          "handoff": "contract_gaps and remediation_plan feed Stage 4 NIS2/DORA overlap mapper"
        },
        {
          "tool_id": "309-nis2-dora-overlap-mapper",
          "handoff": "nis2_dora_overlap and dual_compliance_plan — final DORA third-party ICT mandate"
        }
      ]
    },
    {
      "name": "dw-capacity-check",
      "domain": "Corporate Treasury & FX",
      "title": "Discount Window Borrowing-Capacity Check",
      "description": "Two-step BCBS 248 / Federal Reserve intraday liquidity chain. Step 1 computes daily maximum intraday liquidity usage from a caller-supplied time-stamped transaction list and classifies it against a caller-supplied list of available intraday liquidity sources. Step 2 checks Discount Window borrowing capacity -- lendable collateral value against a runnable-liability / uninsured-deposit coverage target -- as one of those declared sources.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/dw-capacity-check.html",
      "steps": [
        {
          "tool_id": "art-477-intraday-liquidity-monitoring",
          "handoff": "daily maximum intraday usage classified against declared available liquidity sources feeds the Discount Window capacity check for the DW-source leg"
        },
        {
          "tool_id": "art-427-discount-window-capacity",
          "handoff": "lendable value vs. coverage-target result feeds the Discount Window Preparedness Act evidence pack and LCR pre-positioned-collateral disclosure. Final stage."
        }
      ]
    },
    {
      "id": "ebl-control-evidence",
      "name": "ebl-control-evidence",
      "domain": "Digital Trade",
      "title": "eBL Exclusive-Control Evidence Chain",
      "description": "Check a supplied electronic bill of lading's control-transfer event log against UNCITRAL MLETR Art. 10/11 singularity and exclusive-control elements (art-352), then bind the same event log into a hash-chained possession-receipt evidence pack with a Merkle root a holder can present to a bank or court (art-353). A jurisdiction-adoption lookup runs on its own branch (art-354) to answer whether the eBL is legally effective end-to-end for the corridor in question. Zero network, no PII, not a title registry or legal opinion.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ebl-control-evidence.html",
      "branches": {
        "jurisdiction": [
          "art-354-mletr-jurisdiction-adoption-lookup"
        ]
      },
      "steps": [
        {
          "tool_id": "art-352-etr-control-evidence-checker",
          "handoff": "Control-transfer event log and verdict feed the possession-chain receipt builder"
        },
        {
          "tool_id": "art-353-etr-possession-chain-builder",
          "handoff": "Hash-chained possession receipts and Merkle root -- final stage of the main chain (jurisdiction branch runs independently over the same corridor)"
        }
      ]
    },
    {
      "name": "einvoice-validation-pipeline",
      "domain": "ViDA / E-Invoicing",
      "title": "E-Invoice Validation Pipeline",
      "description": "Gated four-step e-invoice validation pipeline: format conformance check (Factur-X, XRechnung, PINT-AE, MyInvois, Peppol BIS 3.0/Belgium, KSeF FA(3)/Poland), VAT arithmetic verification, jurisdiction mandate routing, and a hash-anchored transmission receipt carrying the SPEC.md §27 pre-transmission release gate (review_required, schema-only pending HA-RETRO-1). Exits early on a format-conformance failure or a VAT-arithmetic mismatch, so the receipt is only ever built for a document that passed both checks.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/einvoice-validation-pipeline.html",
      "steps": [
        {
          "tool_id": "art-293-einvoice-format-validator",
          "handoff": "structural_completeness feeds Stage 2 VAT verification; a format failure stops the chain",
          "gate": {
            "input": "/structural_completeness",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-294-einvoice-vat-calc-verifier",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-294-einvoice-vat-calc-verifier",
          "handoff": "consistent feeds Stage 3 mandate routing; a VAT-arithmetic mismatch stops the chain",
          "gate": {
            "input": "/consistent",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-295-einvoice-jurisdiction-mandate-router",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-295-einvoice-jurisdiction-mandate-router",
          "handoff": "routed_mandate feeds the terminal transmission receipt"
        },
        {
          "tool_id": "art-296-einvoice-transmission-receipt-builder",
          "handoff": "Composes the hash-anchored transmission receipt -- final stage"
        }
      ]
    },
    {
      "name": "einvoicing-vida",
      "domain": "ViDA / E-Invoicing",
      "title": "E-Invoicing & ViDA Digital Reporting",
      "description": "DRR readiness > B2B e-invoice compliance (EN16931) > Peppol XML audit > invoice-to-ISO20022 bridge > e-invoicing compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/einvoicing-vida.html",
      "steps": [
        {
          "tool_id": "179-vida-drr-readiness-scorer",
          "handoff": "drr_gaps feed Stage 2 e-invoice compliance scoring"
        },
        {
          "tool_id": "180-b2b-einvoice-compliance-scorer",
          "handoff": "compliance_score and field_errors feed Stage 3 XML audit"
        },
        {
          "tool_id": "174-peppol-xml-auditor",
          "handoff": "xml_validation_results feed Stage 4 ISO 20022 bridge"
        },
        {
          "tool_id": "178-invoice-to-iso20022-bridge",
          "handoff": "Exports e-invoicing Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "embedded-finance-licensing",
      "domain": "BaaS & Embedded Finance",
      "title": "Embedded Finance Licensing",
      "description": "Seller onboarding classification > MTL licensing risk mapping > fintech compliance control mapping > sponsor-bank readiness scoring: composite embedded finance licensing mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/embedded-finance-licensing.html",
      "steps": [
        {
          "tool_id": "149-seller-onboarding-classifier",
          "handoff": "seller_classification and licensing_threshold feed Stage 2 MTL licensing risk mapping"
        },
        {
          "tool_id": "150-mtl-licensing-risk-mapper",
          "handoff": "mtl_risk_score and state_by_state_requirements feed Stage 3 compliance control mapping"
        },
        {
          "tool_id": "158-fintech-compliance-control-mapper",
          "handoff": "compliance_controls and gap_assessment feed Stage 4 sponsor-bank readiness scoring"
        },
        {
          "tool_id": "162-sponsor-bank-readiness-scorer",
          "handoff": "sponsor_bank_readiness and composite_licensing_mandate — final embedded finance mandate"
        }
      ]
    },
    {
      "name": "emerging-market-fx-corridor",
      "domain": "Corporate Treasury & FX",
      "title": "Emerging Market FX Corridor",
      "description": "Settlement orchestration simulation > EM FX risk classification > PVP settlement sync model > correspondent derisking model > cross-border finality comparison > payment cutoff/settlement atlas: composite EM corridor mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/emerging-market-fx-corridor.html",
      "steps": [
        {
          "tool_id": "157-settlement-orchestration-simulator",
          "handoff": "settlement_simulation and liquidity_requirements feed Stage 2 EM FX risk classification"
        },
        {
          "tool_id": "217-em-fx-risk-classifier",
          "handoff": "em_fx_risk_score and currency_classification feed Stage 3 PVP settlement sync"
        },
        {
          "tool_id": "218-pvp-settlement-sync-model",
          "handoff": "pvp_model and netting_efficiency feed Stage 4 correspondent derisking model"
        },
        {
          "tool_id": "220-correspondent-derisking-modeler",
          "handoff": "derisking_risk_score and correspondent_options feed Stage 5 finality comparison"
        },
        {
          "tool_id": "221-cross-border-finality-comparator",
          "handoff": "finality_comparison and settlement_risks feed Stage 6 payment cutoff atlas"
        },
        {
          "tool_id": "325-payment-cutoff-settlement-atlas",
          "handoff": "cutoff_atlas and composite_corridor_mandate — final EM corridor mandate"
        }
      ]
    },
    {
      "name": "emir-recon-cycle",
      "domain": "EMIR",
      "title": "EMIR Inter-TR Reconciliation Cycle",
      "description": "Two-step daily cycle over the trade repository's own ISO 20022 reconciliation response and the firm's submitted state. Step 1 independently reproduces the reconciliation verdict per field against a policy-supplied field and tolerance table with a suppression list, emits agreement or disagreement with the repository, and builds a break set keyed for stable diffing across cycles. Step 2 ages that break set against the prior sealed break set, splitting newly opened, persisting and newly closed breaks and running the escalation clock. Step 1 is gated review_required for cycle sign-off, with the reporting-operations owner as reviewer. Step 2 is gated escalate once any break passes its policy ageing limit. Each break disposition is recorded as a separate annotation record naming the acting identity, so the accountability trail is per break rather than per cycle, and the prior cycle's sealed break set is referenced by subject_hash rather than mutated in place.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/emir-recon-cycle.html",
      "regulatory_refs": [
        "EMIR Refit reporting technical standards (inter-TR reconciliation)",
        "ESMA validation rules and reconciliation tolerance tables"
      ],
      "steps": [
        {
          "tool_id": "art-482-emir-recon-adjudicator",
          "handoff": "Per-field agreement or disagreement with the repository plus a stably keyed break set feed the ageing and escalation-clock stage",
          "gate": {
            "input": "/break_count",
            "rules": [
              {
                "op": "gt",
                "value": 0,
                "next": "art-483-emir-break-ageing"
              }
            ],
            "default": "art-483-emir-break-ageing",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-483-emir-break-ageing",
          "handoff": "Ageing buckets, recurrence counts, the newly-opened / persisting / newly-closed split and escalation-clock status close the cycle bundle. Final stage.",
          "gate": {
            "input": "/escalation_breached_count",
            "rules": [
              {
                "op": "gt",
                "value": 0,
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "escalate"
          }
        }
      ]
    },
    {
      "id": "emir-reconciliation-and-lifecycle",
      "name": "emir-reconciliation-and-lifecycle",
      "domain": "EMIR",
      "title": "EMIR Reconciliation & Lifecycle",
      "description": "Pair two counterparties EMIR Refit reports by UTI and reconcile up to 148 matching fields within configurable numeric tolerance, flagging reconciliation breaks (art-156) -> validate the action type against the prior reported state of the UTI (art-157) -> grade the firm overall EMIR Refit reporting readiness across five dimensions: ISO 20022 cutover, UPI sourcing, UTI sharing SLA, reconciliation tolerance, and lifecycle controls; returns A-F grade and gap list (art-158). Exports readiness attestation with execution_hash.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/emir-reconciliation-and-lifecycle.html",
      "steps": [
        {
          "tool_id": "art-156-emir-counterparty-pairing-reconciler",
          "handoff": "Pairing and reconciliation feeds lifecycle event validator"
        },
        {
          "tool_id": "art-157-emir-lifecycle-event-validator",
          "handoff": "Lifecycle validity feeds readiness diagnostic"
        },
        {
          "tool_id": "art-158-emir-reporting-readiness-diagnostic",
          "handoff": "Exports EMIR Refit readiness attestation with execution_hash -- final stage"
        }
      ]
    },
    {
      "id": "emir-trade-report-validation",
      "name": "emir-trade-report-validation",
      "domain": "EMIR",
      "title": "EMIR Trade Report Validation",
      "description": "Validate the required-field subset of an EMIR Refit ISO 20022 auth.030 derivative trade report: action type, counterparty LEIs, UTI, UPI, notional, currency, effective date, and asset class (art-153) -> validate UTI format (ISO 23897, 52 chars max), generating-party identity, and T+1 10:00 CET sharing timing (art-154) -> validate UPI format (ISO 4914, 12-char ANNA DSB) and product classification consistency against asset class and instrument type (art-155). Exports field-level validity verdict with execution_hash.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/emir-trade-report-validation.html",
      "steps": [
        {
          "tool_id": "art-153-emir-trade-report-field-validator",
          "handoff": "Field validity feeds UTI completeness checker"
        },
        {
          "tool_id": "art-154-emir-uti-completeness-checker",
          "handoff": "UTI completeness feeds UPI validator"
        },
        {
          "tool_id": "art-155-emir-upi-validator",
          "handoff": "Exports UPI validity verdict with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "escalation-sla-supervised-autonomy-receipt",
      "domain": "AI & Agent Governance",
      "title": "Escalation SLA / Supervised-Autonomy Receipt",
      "description": "\"Agent halted -> human X answered in T -> decision D\" as protocol-native evidence for EU AI Act Art 12 supervised-autonomy obligations. Compiles a work mandate with escalation triggers (art-274), classifies the agent's autonomy/oversight tier (art-67), then GATES: an overall grade of F escalates (HALT, opens an OCG Section 22.8 escalation record, closed via verify_escalation_closure on the anchor worker, with the closing decision available as an AuthZEN 1.0-mapped Policy Decision Point evaluation at anchor.ainumbers.co); any passing grade routes directly to building the Art 12(2)-conformant decision log record (art-236). An ISO 24970 field mapping is DRAFT-PINNED honesty only, never a claim of conformance to a ratified standard. The SEP-2322 InputRequired transport binding for the escalation itself is a planned upgrade (rides the MCP-728 Track A Section T3 work); this receipt composes the live mandate, classification, and decision-log evidence today. Verify-only; asserts only that the mandate, classification, and decision-log steps it ran are internally consistent, never a broader safe-to-deploy guarantee.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/escalation-sla-supervised-autonomy-receipt.html",
      "steps": [
        {
          "tool_id": "art-274-compile-work-mandate",
          "handoff": "the compiled work mandate (escalation_triggers, scope, conditions) establishes the supervision context for Stage 2 autonomy/risk classification"
        },
        {
          "tool_id": "art-67-agentic-ai-risk-classifier",
          "handoff": "overall_grade and governance_tier -> GATE: overall_grade='F' escalates (HALT, open OCG Section 22.8 escalation record, closed via verify_escalation_closure on the anchor worker); any passing grade continues to Stage 3 Art 12 decision-log recording.",
          "gate": {
            "input": "/overall_grade",
            "rules": [
              {
                "op": "eq",
                "value": "F",
                "next": "escalate"
              }
            ],
            "default": "art-236-build-ai-decision-log-record"
          }
        },
        {
          "tool_id": "art-236-build-ai-decision-log-record",
          "handoff": "art12_completeness_score, chain_position, and anchor_surface instructions complete the supervised-autonomy escalation-SLA receipt. Final stage."
        }
      ]
    },
    {
      "name": "eu-ai-act-provider-obligations",
      "domain": "AI & Agent Governance",
      "title": "EU AI Act Provider & Deployer Obligations",
      "description": "EU AI Act risk class mapping > Article 9 risk management system > Article 10 data governance > provider/deployer obligations split: composite EU AI Act provider compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/eu-ai-act-provider-obligations.html",
      "steps": [
        {
          "tool_id": "327-eu-ai-act-risk-class-mapper",
          "handoff": "risk_classification and high_risk_determination feed Stage 2 Article 9 risk mgmt system"
        },
        {
          "tool_id": "333-eu-ai-act-article9-risk-mgmt-builder",
          "handoff": "risk_mgmt_system_gaps and corrective_actions feed Stage 3 Article 10 data governance"
        },
        {
          "tool_id": "334-eu-ai-act-article10-data-governance-mapper",
          "handoff": "data_governance_requirements and bias_monitoring feed Stage 4 provider/deployer split"
        },
        {
          "tool_id": "335-eu-ai-act-provider-deployer-obligations-splitter",
          "handoff": "obligation_split and composite_ai_act_mandate — final EU AI Act provider mandate"
        }
      ]
    },
    {
      "name": "eudi-wallet-acceptance",
      "domain": "EU Digital ID & Consumer Credit",
      "title": "eIDAS 2.0 / EUDI Wallet Acceptance",
      "description": "Attribute attestation mapping > wallet-based KYC flow design > RP registration check > readiness scoring. eIDAS 2.0 (Regulation (EU) 2024/1183).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/eudi-wallet.html",
      "steps": [
        {
          "tool_id": "489-eudi-attribute-attestation-mapper",
          "handoff": "pid_attributes and qeaa_map feed Stage 2 KYC flow"
        },
        {
          "tool_id": "490-eudi-kyc-flow-designer",
          "handoff": "kyc_flow_steps feed Stage 3 RP registration check"
        },
        {
          "tool_id": "491-eudi-relying-party-registration-checker",
          "handoff": "rp_registration_status feeds Stage 4 readiness"
        },
        {
          "tool_id": "348-eidas2-eudi-wallet-relying-party-readiness-scorer",
          "handoff": "Exports EUDI Acceptance Mandate -- final stage"
        }
      ]
    },
    {
      "id": "eudr-due-diligence-statement-validation",
      "name": "eudr-due-diligence-statement-validation",
      "domain": "EUDR",
      "title": "EUDR Due Diligence Statement Validation",
      "description": "Validate EUDR DDS required fields and EORI (art-165) -> validate GeoJSON plot geolocation against size rules and coordinate validity (art-166) -> classify HS code to EUDR Annex I commodity scope and determine operator role, deadline, and obligations (art-167). Full DDS pre-submission validation pipeline. Reg. EU 2023/1115, mandatory 2026-12-30 (large/medium) / 2027-06-30 (SME).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/eudr-due-diligence-statement-validation.html",
      "steps": [
        {
          "tool_id": "art-165-eudr-dds-field-validator",
          "handoff": "DDS field conformance feeds geolocation validator"
        },
        {
          "tool_id": "art-166-eudr-geolocation-plot-validator",
          "handoff": "Plot geolocation validity feeds commodity scope classifier"
        },
        {
          "tool_id": "art-167-eudr-commodity-scope-classifier",
          "handoff": "Exports commodity scope, obligations, and deadline with execution_hash -- final stage"
        }
      ]
    },
    {
      "id": "eudr-supply-chain-risk-and-traceability",
      "name": "eudr-supply-chain-risk-and-traceability",
      "domain": "EUDR",
      "title": "EUDR Supply-Chain Risk and Traceability",
      "description": "Score country-of-production against EUDR benchmark risk tiers (low/standard/high) and inspection rates 1/3/9% (art-168) -> validate single-DDS upstream traceability linking and custody-chain integrity (art-169) -> A-F EUDR readiness diagnostic across scope, geolocation, DDS submission, risk assessment, mitigation, and retention dimensions (art-170). Full supply-chain risk and readiness pipeline. Reg. EU 2023/1115.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/eudr-supply-chain-risk-and-traceability.html",
      "steps": [
        {
          "tool_id": "art-168-eudr-country-benchmark-risk-scorer",
          "handoff": "Country benchmark risk feeds traceability linker"
        },
        {
          "tool_id": "art-169-eudr-supply-chain-traceability-linker",
          "handoff": "Supply-chain integrity verdict feeds readiness diagnostic"
        },
        {
          "tool_id": "art-170-eudr-readiness-diagnostic",
          "handoff": "Exports A-F EUDR readiness grade with enforcement deadlines with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "eugb-conformance",
      "domain": "Climate & Sustainable Finance",
      "title": "EU Green Bond Factsheet & Allocation Conformance",
      "description": "EuGB factsheet (Annex I) + allocation report (Annex II) completeness + proceeds-alignment validation (ART-75) -> use-of-proceeds Taxonomy alignment cross-check (ART-73) -> Merkle integrity over the bond evidence set (cry-04). The issuer-to-external-reviewer green-bond conformance pack. Decision-support draft, not a reviewer attestation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/eugb-conformance.html",
      "steps": [
        {
          "tool_id": "art-75-eugb-factsheet-validator",
          "handoff": "factsheet/allocation conformance + proceeds-aligned % (H1) feeds the alignment scorer"
        },
        {
          "tool_id": "art-73-taxonomy-alignment-scorer",
          "handoff": "use-of-proceeds alignment (H2) feeds the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite EuGB conformance artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "exchange-assurance-pack",
      "domain": "Digital-Asset Rails",
      "title": "Exchange Assurance Pack",
      "description": "Custody segregation ratio > asset/liability coverage > PoR liabilities composer > best-execution recompute: composite exchange-assurance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/exchange-assurance-pack.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "sonnet",
      "regulatory_basis_decided_at": "2026-08-04",
      "steps": [
        {
          "tool_id": "art-538-custody-segregation-ratio",
          "handoff": "segregation_ratio and status feed Stage 2 asset/liability coverage as the custody-side input to the exchange's solvency picture"
        },
        {
          "tool_id": "art-539-asset-liability-coverage",
          "handoff": "coverage_ratio and surplus_shortfall_musd feed Stage 3 PoR-liabilities composer as balance-sheet context for the reported liabilities figure"
        },
        {
          "tool_id": "art-540-por-liabilities-composer",
          "handoff": "composite_determination and reserve_to_liability_ratio feed Stage 4 best-execution recompute, completing the reserves side of the assurance pack"
        },
        {
          "tool_id": "art-541-best-execution-recompute",
          "handoff": "pct_at_or_better and avg_price_improvement_bps complete the pack — composite exchange-assurance mandate"
        }
      ]
    },
    {
      "name": "export-control-circumvention",
      "domain": "Export Control",
      "title": "Anti-Circumvention Diligence & No-Russia Clause",
      "description": "ECCN classification (ART-94) -> circumvention due-diligence + liability-allocation assessment vs the EU 20th-package no-Russia clause (ART-95) -> no-Russia-clause + DD-evidence pack (ART-96). The export-control diligence lifecycle. Decision-support draft.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/export-control-circumvention.html",
      "steps": [
        {
          "tool_id": "art-94-eccn-dual-use-classifier",
          "handoff": "classification (H1) feeds the diligence assessor"
        },
        {
          "tool_id": "art-95-circumvention-diligence-assessor",
          "handoff": "diligence grade + liability allocation (H2) feeds the pack builder"
        },
        {
          "tool_id": "art-96-no-russia-clause-pack-builder",
          "handoff": "Exports composite circumvention pack with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "export-control-eccn",
      "domain": "Export Control",
      "title": "ECCN / Dual-Use Classification",
      "description": "Product attributes -> ECCN (EAR) + EU Annex I + controlling regime + licence logic including 2025 emerging-tech controls (ART-94) -> Merkle integrity (cry-04). EU Annex I updated 15 Nov 2025.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/export-control-eccn.html",
      "steps": [
        {
          "tool_id": "art-94-eccn-dual-use-classifier",
          "handoff": "classification + licence requirement (H1) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite classification artifact with Merkle-root execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "fair-lending-disparity-audit",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Fair Lending Disparity Audit",
      "spec_version": "0.8.0",
      "wave": 39,
      "description": "Gated two-step chain for fair lending disparate impact audit. Step 1 computes the HMDA rate spread and classifies reportability. Step 2 computes disparate impact metrics from aggregate approval counts (4/5ths rule, z-statistic, standardised mean difference). Gate: adverse_impact_ratio < 0.8 exits to remediation path (4/5ths rule violation). All inputs are aggregate counts only. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fair-lending-disparity-audit.html",
      "regulatory_refs": [
        "29 CFR §1607.4(D) (EEOC 4/5ths adverse impact rule)",
        "12 CFR Part 1003 (HMDA/Reg C)",
        "FFIEC Rate Spread methodology (APR minus APOR)"
      ],
      "steps": [
        {
          "tool_id": "art-230-compute-hmda-rate-spread",
          "handoff": "HMDA rate spread and reportability classification. Passes to disparity metrics computation."
        },
        {
          "tool_id": "art-229-compute-disparity-metrics",
          "handoff": "Adverse impact ratio, z-statistic, standardised mean difference from aggregate counts. Gate: AIR < 0.8 triggers remediation flag.",
          "gate": {
            "input": "/adverse_impact_ratio",
            "rules": [
              {
                "op": "lt",
                "value": 0.8,
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "review_required"
          }
        }
      ]
    },
    {
      "name": "fatca-ro-certification-cycle",
      "domain": "Financial Crime & KYC",
      "title": "Responsible-Officer Certification Cycle (FATCA / CRS)",
      "description": "Two-step certification-period cycle over the institution's own submission file, the notifications returned against it, and its remediation records. Step 1 evaluates the submission against a policy-supplied schema and business-rule set -- element sequencing and cardinality, mandatory identifiers, and message and document reference uniqueness across corrected and voided records -- keyed by the published error code and element path, with a suppression list so stood-down rules cannot produce false findings. Step 2 triages the returned notification set against the firm's remediation records: open, closed or overdue per notification, which corrected message closes which error, closure coverage, and a readiness verdict against the declared cut-off. Step 1 is gated review_required once findings exist, with the compliance officer as reviewer, because a disclosed-and-corrected failure is a reviewed act rather than an automatic one. Step 2 is gated hold while any error remains unremediated past its policy cut-off. The certification itself carries an approval record bound to the Responsible Officer identity, which is the approver role named exactly as the regulation names it. Free validators already check these files; what this cycle adds is a sealed, offline-verifiable chain from submission errors through remediation to that named signature. The bundle is the institution's own evidence and does not satisfy an IRS or competent-authority requirement.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fatca-ro-certification-cycle.html",
      "regulatory_refs": [
        "FATCA Responsible Officer certification of compliance (Treas. Reg. 1.1471-4(f)(3))",
        "IRS FATCA XML schema and ICMM notifications; OECD CRS XML and Status Message schemas"
      ],
      "steps": [
        {
          "tool_id": "art-490-fatca-crs-submission-check",
          "handoff": "Per-finding pass/fail keyed by published error code and element path, with the applied suppressions recorded, feeds the remediation-closure stage",
          "gate": {
            "input": "/fail_count",
            "rules": [
              {
                "op": "gt",
                "value": 0,
                "next": "art-491-ro-remediation-closure"
              }
            ],
            "default": "art-491-ro-remediation-closure",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-491-ro-remediation-closure",
          "handoff": "Open, closed and overdue determinations per notification, resubmission linkage, closure coverage and the certification-period readiness verdict close the certification evidence bundle. Final stage.",
          "gate": {
            "input": "/readiness_verdict",
            "rules": [
              {
                "op": "eq",
                "value": "NOT_READY",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "hold"
          }
        }
      ]
    },
    {
      "name": "fca-bnpl-dpc",
      "domain": "Consumer & Wealth Compliance",
      "title": "FCA BNPL Digital Private Credit",
      "description": "FCA DPC scope classification > DPC creditworthiness assessment > consumer duty DPC mapping: composite FCA BNPL/DPC mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fca-bnpl-dpc.html",
      "steps": [
        {
          "tool_id": "329-fca-dpc-scope-classifier",
          "handoff": "dpc_scope and authorisation_requirements feed Stage 2 creditworthiness assessment"
        },
        {
          "tool_id": "330-fca-dpc-creditworthiness-assessment-builder",
          "handoff": "creditworthiness_methodology and affordability_checks feed Stage 3 consumer duty mapping"
        },
        {
          "tool_id": "331-fca-consumer-duty-dpc-mapper",
          "handoff": "consumer_duty_obligations and composite_dpc_mandate — final FCA BNPL/DPC mandate"
        }
      ]
    },
    {
      "name": "fedwire-address-migration",
      "domain": "Wholesale Settlement",
      "title": "Fedwire/CHIPS Structured-Address Migration",
      "description": "Fedwire and CHIPS structured-address readiness for the 2026-11-16 cutover. Lint a single message (art-349, network param selects fedwire or chips -- rules are byte-identical between the two networks), gate on the lint result: a fully compliant message ends the chain immediately, anything else continues to a batch sweep (art-350) of the full payment file for a rejection-risk report, then a before/after remediation diff receipt (tools/548) binding both file digests and the rule-clearance delta a bank shows its regulator or correspondents.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fedwire-address-migration.html",
      "regulatory_refs": [
        "Federal Reserve Financial Services Fedwire Funds Service ISO 20022 November 2026 Release",
        "The Clearing House CHIPS ISO 20022 implementation (aligned to Fedwire address rules)"
      ],
      "steps": [
        {
          "tool_id": "art-349-fedwire-structured-address-linter",
          "handoff": "Structural lint of one message (network=fedwire|chips, same kernel, same rules). If compliant, no remediation is needed -- the chain ends. Otherwise error_count and violations[] carry into the batch sweep.",
          "gate": {
            "input": "/compliant",
            "rules": [
              { "op": "eq", "value": true, "next": "end" }
            ],
            "default": "art-350-fedwire-address-sweep"
          }
        },
        {
          "tool_id": "art-350-fedwire-address-sweep",
          "handoff": "Rejection-risk report (violation counts by rule, worst offenders) and remediation worksheet receipt (file digest, per-record findings digest, risk score) for the whole payment file. Feeds the before/after diff receipt once remediation is applied."
        },
        {
          "tool_id": "548-fedwire-remediation-diff-receipt",
          "handoff": "Before/after remediation-evidence receipt binding both file digests and the rule-clearance delta (N failures to 0) -- the artifact a bank shows its regulator or correspondents."
        }
      ]
    },
    {
      "name": "fida-data-monetisation",
      "domain": "Open Banking / Open Finance",
      "title": "FIDA Data Monetisation",
      "description": "Open-finance data product revenue modelling > API monetisation calculator > business-case ROI > EU Data Act scope mapping: composite data-monetisation mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fida-data-monetisation.html",
      "steps": [
        {
          "tool_id": "377-open-finance-data-product-revenue-modeler",
          "handoff": "revenue_model and data_product_catalogue feed Stage 2 API monetisation"
        },
        {
          "tool_id": "409-open-finance-api-monetisation-calculator",
          "handoff": "api_pricing and monetisation_levers feed Stage 3 business-case modeller"
        },
        {
          "tool_id": "411-open-finance-business-case-roi-modeller",
          "handoff": "roi_projection and break_even feed Stage 4 EU Data Act scope check"
        },
        {
          "tool_id": "413-eu-data-act-financial-services-scope-mapper",
          "handoff": "data_act_obligations and compliance_flags — final FIDA data-monetisation mandate"
        }
      ]
    },
    {
      "name": "fida-open-finance-readiness",
      "domain": "Open Banking / Open Finance",
      "title": "FIDA Open Finance Readiness",
      "description": "FIDA scope classification > data-scope mapping > FIP authorisation readiness > permission-scheme scoping > cross-sector data scope: composite FIDA readiness mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fida-open-finance-readiness.html",
      "steps": [
        {
          "tool_id": "273-fida-open-finance-readiness",
          "handoff": "fida_scope and regulated_entities feed Stage 2 data-scope mapping"
        },
        {
          "tool_id": "360-fida-open-finance-data-scope-mapper",
          "handoff": "data_scope_map feeds Stage 3 FIP authorisation readiness builder"
        },
        {
          "tool_id": "407-fida-fip-authorisation-readiness-builder",
          "handoff": "fip_auth_gaps and timeline feed Stage 4 permission scheme checker"
        },
        {
          "tool_id": "408-fida-permission-scheme-scope-checker",
          "handoff": "permission_scheme_scores feed Stage 5 cross-sector data scope mapper"
        },
        {
          "tool_id": "410-fida-cross-sector-data-scope-mapper",
          "handoff": "cross_sector_scope and composite readiness score — final FIDA mandate"
        }
      ]
    },
    {
      "name": "financial-crime-compliance",
      "domain": "Financial Crime & KYC",
      "title": "Financial Crime Compliance Chain",
      "description": "Dual customer risk rating → triple-layer sanctions, PEP, and batch screening → fuzzy-match calibration scoring → layering typology and AMLA transaction risk scoring → ML anomaly detection and structuring pattern detection → final AML programme health scorecard.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/financial-crime-compliance.html",
      "steps": [
        {
          "tool_id": "110-customer-risk-rating",
          "handoff": "crr_tier,risk_band feed Stage 2"
        },
        {
          "tool_id": "477-fatf-customer-risk-rating",
          "handoff": "fatf_risk_category,enhanced_dd_required feed Stage 2"
        },
        {
          "tool_id": "316-sanctions-programme-health-checker",
          "handoff": "programme_health_score,gap_list feed Stage 2"
        },
        {
          "tool_id": "112-pep-sanctions-simulator",
          "handoff": "pep_hit_rate,match_precision feed Stage 2"
        },
        {
          "tool_id": "43-batch-sanctions-screening",
          "handoff": "batch_results,match_rate feed Stage 3"
        },
        {
          "tool_id": "art-93-fuzzy-match-calibration-scorer",
          "handoff": "f1_score,fpr,calibration_grade feed Stage 4"
        },
        {
          "tool_id": "120-layering-typology-identifier",
          "handoff": "layering_patterns,typology_matches feed Stage 4"
        },
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "typology_risk_score,fatf_category feed Stage 5"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "anomaly_flags,deviation_sigma feed Stage 5"
        },
        {
          "tool_id": "117-structuring-pattern-detector",
          "handoff": "structuring_confidence,ctr_threshold_breaches feed Stage 6"
        },
        {
          "tool_id": "316-sanctions-programme-health-checker",
          "handoff": "final_programme_health_score,remediation_plan -- Exports AML compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "fiusd-reserve-attestation",
      "domain": "Digital-Asset Rails",
      "title": "FIUSD Reserve Attestation Receipt",
      "description": "VERIFY-SIDE ONLY: reserve-attestation precheck, stablecoin reserve stress simulation, partner-jurisdiction routing, and partner-stablecoin readiness score compose into a daily reserve-precheck receipt a regulator or auditor of a community bank can independently replay. Optionally anchors the receipt digest. Asserts only that these inputs replay to this readiness verdict, never that the underlying reserves are attested or cryptographically proven; no claim of verifying an issuer's reserve PDF.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fiusd-reserve-attestation-composer.html",
      "steps": [
        {
          "tool_id": "art-06-genius-act-reserve-attestation",
          "handoff": "reserve-attestation precheck result feeds Stage 2 reserve stress simulation",
          "gate": {
            "input": "/attestation_readiness_determination",
            "rules": [
              {
                "op": "eq",
                "value": "FAIL",
                "next": "rca-02-mica-reserve-stress"
              }
            ],
            "default": "rca-02-mica-reserve-stress",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "rca-02-mica-reserve-stress",
          "handoff": "reserve stress simulation result feeds Stage 3 jurisdiction routing"
        },
        {
          "tool_id": "art-111-arc-corridor-jurisdiction-router",
          "handoff": "jurisdiction routing result feeds Stage 4 partner readiness scoring"
        },
        {
          "tool_id": "art-110-arc-partner-stablecoin-onboarding",
          "handoff": "readiness score composes into the readiness verdict (ready/gaps). Terminal stage; optional anchor_document_integrity (art-121) tail anchors the receipt digest."
        }
      ]
    },
    {
      "name": "food-traceability-fsma204",
      "domain": "Supply-Chain Traceability",
      "title": "Food Traceability & 24-Hour Recall (FSMA 204 / GS1 EPCIS 2.0)",
      "description": "Validate Critical Tracking Event KDEs (art-118) → link Traceability Lot Code chain across CTEs, detect transformation events (art-119) → one-up/one-back recall trace emitting the FDA 24-hour sortable list (art-120). Zero-egress alternative to a food safety consortium.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/food-traceability-fsma204.html",
      "steps": [
        {
          "tool_id": "art-118-fsma204-cte-validator",
          "handoff": "validated CTE KDEs feed lot code linkage"
        },
        {
          "tool_id": "art-119-traceability-lot-code-linker",
          "handoff": "lot code lineage feeds recall trace resolution"
        },
        {
          "tool_id": "art-120-recall-trace-resolver",
          "handoff": "Exports recall trace artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "fraud-decisioning",
      "domain": "Fraud & Dispute",
      "title": "Fraud & Scam Decisioning",
      "description": "Velocity rule building > structuring pattern detection > fraud investigation > APP-scam risk scoring > fraud/velocity policy mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fraud-decisioning.html",
      "steps": [
        {
          "tool_id": "256-rtp-fraud-velocity-rule-builder",
          "handoff": "rule_set and velocity_thresholds feed Stage 2 structuring pattern detection"
        },
        {
          "tool_id": "117-structuring-pattern-detector",
          "handoff": "detected_patterns and risk_flags feed Stage 3 fraud investigation"
        },
        {
          "tool_id": "80-fraud-investigation-lab",
          "handoff": "investigation_findings and disposition feed Stage 4 APP-scam scoring"
        },
        {
          "tool_id": "322-app-scam-risk-assessor",
          "handoff": "Exports fraud/velocity Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "fx-corridor",
      "domain": "Corporate Treasury & FX",
      "title": "Corridor Cost and Failure Analysis",
      "description": "FX margin transparency > cross-border failure modelling > corridor cost ranking > payment corridor optimisation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fx-corridor.html",
      "steps": [
        {
          "tool_id": "209-fx-margin-cost-transparency",
          "handoff": "margin_breakdown and all-in-cost feed T210 failure modelling"
        },
        {
          "tool_id": "210-cross-border-payment-failure-model",
          "handoff": "failure_rates and root_causes feed T216 corridor cost ranking"
        },
        {
          "tool_id": "216-corridor-cost-ranker",
          "handoff": "corridor_ranking and cost_delta feed T95 optimisation"
        },
        {
          "tool_id": "95-payment-corridor-optimizer",
          "handoff": "Exports FX corridor Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "fx-risk-management",
      "domain": "Corporate Treasury & FX",
      "title": "FX Risk Management & Hedging",
      "description": "FX hedging instrument comparison > SWIFT GPI rail comparison > currency risk exposure heatmap > IBOR transition reference check: composite FX risk management mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/fx-risk-management.html",
      "steps": [
        {
          "tool_id": "211-fx-hedging-instrument-comparison",
          "handoff": "hedging_instruments and cost_comparison feed Stage 2 SWIFT GPI rail comparison"
        },
        {
          "tool_id": "212-swift-gpi-rail-comparator",
          "handoff": "gpi_rail_performance and settlement_comparison feed Stage 3 currency risk heatmap"
        },
        {
          "tool_id": "213-currency-risk-exposure-heatmap",
          "handoff": "currency_risk_exposure and var_estimates feed Stage 4 IBOR reference checker"
        },
        {
          "tool_id": "214-ibor-transition-reference-checker",
          "handoff": "ibor_legacy_exposure and transition_plan — final FX risk management mandate"
        }
      ]
    },
    {
      "name": "genius-act-issuer-licensing",
      "domain": "Digital-Asset Rails",
      "title": "GENIUS Act Issuer Licensing",
      "description": "Issuer classification mapping > reserve attestation checklist > AML/sanctions scope building > state-federal licensing path selection > disclosure and reporting builder: composite GENIUS Act issuer mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/genius-act-issuer-licensing.html",
      "steps": [
        {
          "tool_id": "336-genius-act-issuer-classification-mapper",
          "handoff": "issuer_classification and regulatory_pathway feed Stage 2 reserve attestation"
        },
        {
          "tool_id": "337-genius-act-reserve-attestation-checklist",
          "handoff": "reserve_requirements and attestation_gaps feed Stage 3 AML/sanctions scope"
        },
        {
          "tool_id": "338-genius-act-aml-sanctions-scope-builder",
          "handoff": "aml_programme_requirements and sanctions_controls feed Stage 4 licensing path"
        },
        {
          "tool_id": "387-genius-act-state-federal-licensing-path-selector",
          "handoff": "licensing_pathway and jurisdiction_plan feed Stage 5 disclosure/reporting builder"
        },
        {
          "tool_id": "389-genius-act-disclosure-reporting-builder",
          "handoff": "disclosure_requirements and reporting_schedule — final GENIUS Act issuer mandate"
        }
      ]
    },
    {
      "name": "genius-listing-acceptance-pack",
      "domain": "Digital-Asset Rails",
      "title": "GENIUS Listing / Acceptance Pack",
      "description": "Three-step stablecoin issuer conformance pack for GENIUS Act monthly attestations: a pre-issuance reserve attestation check for 1:1 coverage and asset-class eligibility, the GENIUS Act monthly reserve disclosure lint against S.394 Section 4, and an issuer key revocation status check against a supplied BitstringStatusList credential. Composes into a bundle receipt of continuous conformance for an exchange listing desk or a mid-market stablecoin issuer, replacing a static PDF attestation with replayable evidence. Verify-only; asserts only the three conditions it checked, never a broader solvency or safe-to-list guarantee. The receipt does not yet carry a receipt:// resolver link (pending the N1 MCP Resources work) or witness-cosigned anchors (pending SPEC-TICK-088 Section WITNESS-1); both are planned upgrades, not missing requirements.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/genius-listing-acceptance-pack.html",
      "steps": [
        {
          "tool_id": "art-06-genius-act-reserve-attestation",
          "handoff": "attestation_readiness_score and pre_check_pass feed the monthly disclosure lint",
          "gate": {
            "input": "/attestation_readiness_determination",
            "rules": [
              {
                "op": "eq",
                "value": "FAIL",
                "next": "art-275-genius-reserve-disclosure-checker"
              }
            ],
            "default": "art-275-genius-reserve-disclosure-checker",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-275-genius-reserve-disclosure-checker",
          "handoff": "monthly disclosure pass or fail feeds the issuer revocation status check"
        },
        {
          "tool_id": "art-287-revocation-status-verifier",
          "handoff": "issuer key revocation status completes the GENIUS listing pack. Final stage."
        }
      ]
    },
    {
      "name": "genius-reserve-disclosure",
      "domain": "Digital-Asset Rails",
      "title": "GENIUS Act Monthly Reserve Disclosure",
      "description": "Single-node D0 diagnostic linting an extracted monthly reserve disclosure against GENIUS Act S.394 §4: composition, tenor, custody, certification, examiner, MoM diff, on-chain supply cross-check.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/genius-reserve-disclosure.html",
      "steps": [
        {
          "tool_id": "art-275-genius-reserve-disclosure-checker",
          "handoff": "monthly_disclosure_determination and failing_dimensions feed the issuer's compliance record; standalone monthly recurring check"
        }
      ]
    },
    {
  "name": "gl-tieout-recompute",
  "domain": "Audit & Assurance",
  "title": "GL Tie-Out Recompute",
  "description": "Core Verify pack, chain 3 of 3 (CORE-VERIFY-BUILD-SPEC.md §6): independently ties a caller-declared reported figure to a caller-declared general-ledger figure, by account, using the existing report-to-GL reconciliation node (art-526) -- no new kernel, no new node. This is internal-control arithmetic, not a regulatory recompute: a general-ledger tie-out is a pure accounting identity (reported total must equal the GL total, net of any declared plug), not a rule stated by any external standard, so this chain carries no regulatory citation by design (see regulatory_basis_status below). The same node also serves the pack's core-conversion-balancing use (CORE-VERIFY-BUILD-SPEC.md §7): running it once with a legacy-core export as the 'reported' side and a new-core export as the 'gl' side, over the same period and account scope, produces a symmetric two-source diff with no 'correct' side asserted -- a caller-side framing choice, not a second code path.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/gl-tieout-recompute.html",
  "regulatory_refs": [],
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "BUILD-COREVERIFY-CHAINS-1",
  "regulatory_basis_decided_at": "2026-08-17",
  "export_capability": ["json"],
  "steps": [
    {
      "tool_id": "art-526-report-gl-reconciliation",
      "handoff": "Ties each declared account's reported_figure_minor_units to its gl_figure_minor_units, nets any declared designed plug before the residual, and reports within_tolerance per account plus an aggregate breaking_account_count. Refuses to run (did_not_run) rather than emit a misleading pass or false break when the requested cadence is finer than the GL's own schedule cadence, or when the GL is not yet declared closed. Terminal stage. For the pack's diff-mode / conversion-balancing use, the caller supplies the legacy-core export as reported_figure_minor_units and the new-core export as gl_figure_minor_units over the same period and account scope -- the node's own reported-vs-GL fields, relabelled by the caller, not a second execution mode."
    }
  ]
},
    {
  "name": "globe-annual-cycle",
  "domain": "Bank Capital & Credit Risk",
  "title": "GloBE Annual Filing Cycle",
  "description": "OECD Pillar Two GloBE annual cycle -- jurisdictional ETR feeds the transitional safe harbour test; if safe harbour is met, top-up tax is deemed zero and SBIE/top-up computation is skipped (§21.4 conditional), otherwise SBIE and top-up tax are computed; the GIR composer then assembles the jurisdictional-summary GIR (OECD GIR XML, version-pinned, NOT-submittable) from whichever upstream artifacts ran. Election choices are recorded as §27.4 review_required; GIR release requires dual_control(2) (preparer + tax-officer); safe-harbour reliance is a separate reviewer approval record with reason_code. Evidence bundle per filing cycle (§27.6). Never a filed submission.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/globe-annual-cycle.html",
  "steps": [
    {
      "tool_id": "art-454-globe-jurisdictional-etr",
      "handoff": "Jurisdictional GloBE income/loss and covered taxes reduce to etr_by_jurisdiction; feeds the safe harbour test."
    },
    {
      "tool_id": "art-456-globe-safe-harbour-tests",
      "handoff": "Evaluates de minimis / simplified ETR / routine profits tests against etr_by_jurisdiction. safe_harbour_flags gate the next stage (§21.4 conditional): if met, top-up tax is deemed zero and SBIE/top-up is skipped; if not met, SBIE/top-up runs. Safe-harbour reliance is a reviewer approval record with reason_code, not computed here.",
      "gate": {
        "input": "/safe_harbour_met",
        "rules": [
          {
            "op": "eq",
            "value": true,
            "next": "art-457-globe-gir-composer"
          }
        ],
        "default": "art-455-globe-sbie-topup",
        "gate_policy": "review_required"
      }
    },
    {
      "tool_id": "art-455-globe-sbie-topup",
      "handoff": "CONDITIONAL on art-456's safe_harbour_flags (§21.4) -- runs only when safe harbour is not met for a jurisdiction. Computes SBIE (payroll + tangible-asset carve-outs, versioned transition-year rates) and top-up tax, producing topup_amounts and qdmtt_allocation for the GIR composer."
    },
    {
      "tool_id": "art-457-globe-gir-composer",
      "handoff": "Assembles the OECD GloBE Information Return jurisdictional-summary shape from art-454/455/456 outputs (deemed-zero top-up where safe harbour was met): OECD GIR XML (schema version pinned) + form-shaped JSON, both NOT-submittable. Election choices review_required; GIR release dual_control(2) preparer + tax-officer; evidence bundle per filing cycle -- final stage."
    }
  ]
},
    {
  "name": "government-payment-lifecycle",
  "domain": "Public Finance & Government Payments",
  "title": "Government Payment Lifecycle",
  "description": "One settlement-asset-agnostic shape for a government payment programme, from backing through disbursement to audit. Backs and issues the settlement asset, confirming the aggregate backing invariant and, only where the asset is issuer-reserve-backed, pulling its reserve facts. Collects a public-money payment once across declared rails at par. Nets the period and crosses only the residual, reported as a crossing count -- skipped entirely when no netting period exists. Disburses in bulk with duplicate and split-payment integrity checks. Reconciles and attests daily. Evidences the controls with audit-trail completeness and RBAC segregation-of-duties. A central bank digital currency and a reserve-backed stablecoin run the identical chain: the settlement asset is a declared parameter, not a different shape.",
  "composer_url": "https://ainumbers.co/chaingraph/art-521-settlement-asset-backing-invariant.html",
  "steps": [
    {
      "tool_id": "art-521-settlement-asset-backing-invariant",
      "handoff": "the declared backing_model routes the chain: a reserve-backed asset falls through to its reserve facts (Stage 1b), a centrally-issued asset (backing_model=vacuous, no backing set) skips straight to Stage 2 collection",
      "gate": {
        "input": "/backing_model",
        "rules": [
          { "op": "eq", "value": "vacuous", "next": "art-513-public-money-settlement-receipt" }
        ],
        "default": "art-06-genius-act-reserve-attestation",
        "gate_policy": "escalate"
      }
    },
    {
      "tool_id": "art-06-genius-act-reserve-attestation",
      "handoff": "reserve-attestation precheck feeds the MiCA-style reserve disclosure check (reserve-backed path only)"
    },
    {
      "tool_id": "art-512-check-mica-reserve-disclosure",
      "handoff": "reserve disclosure verdict feeds the reserve proof-of-reserves check"
    },
    {
      "tool_id": "art-280-reserve-proof-verifier",
      "handoff": "proof-of-reserves verdict closes out the backing stage; both settlement-asset paths rejoin at Stage 2 collection"
    },
    {
      "tool_id": "art-513-public-money-settlement-receipt",
      "handoff": "single-settlement, at-par collection receipt feeds the netting stage"
    },
    {
      "tool_id": "art-259-compute-multilateral-netting",
      "handoff": "net position per entity feeds the cross-currency residual step when a netting period exists (gross_count > 0); with no netting period the chain skips straight to disbursement",
      "gate": {
        "input": "/gross_count",
        "rules": [
          { "op": "eq", "value": 0, "next": "art-518-bulk-disbursement-integrity" }
        ],
        "default": "art-368-compute-fx-netting-positions",
        "gate_policy": "escalate"
      }
    },
    {
      "tool_id": "art-368-compute-fx-netting-positions",
      "handoff": "cross-currency residual position feeds bulk disbursement; crossing count is the cost driver reported, not a new netting node"
    },
    {
      "tool_id": "art-518-bulk-disbursement-integrity",
      "handoff": "control-total-reconciled, duplicate/split-checked disbursement run feeds the daily reconciliation attestation"
    },
    {
      "tool_id": "art-516-daily-reconciliation-attestation",
      "handoff": "reconciliation attestation, including any vanished exception, feeds the audit-trail completeness check"
    },
    {
      "tool_id": "art-517-audit-trail-completeness",
      "handoff": "audit-trail gap enumeration feeds the RBAC segregation-of-duties check -- the last of the two controls-evidence steps"
    },
    {
      "tool_id": "art-459-sod-matrix-check",
      "handoff": "segregation-of-duties verdict is the terminal control evidence for this run"
    }
  ]
},
    {
      "name": "government-payment-programme-assurance",
      "domain": "Public Finance & Government Payments",
      "title": "Government Payment Programme Assurance",
      "description": "Lifecycle-of-the-programme evidence, complementing the payment-level lifecycle chain: entering a programme (identity assurance for an onboarding agency), migrating into it (legacy data arrives complete and reconcilable), and leaving it (the operator can hand the data back in an open format). Rates a declared identity-evidence set against a declared assurance-level framework, then checks declared legacy migration counts and control totals for completeness, then evaluates a declared operator-exit and data-portability posture. Every fact is a caller-declared input -- no country, agency, or framework is hardcoded.",
      "composer_url": "https://ainumbers.co/chaingraph/art-523-identity-proofing-assurance-level.html",
      "steps": [
        {
          "tool_id": "art-523-identity-proofing-assurance-level",
          "handoff": "the achieved assurance level and any IAL_SHORTFALL/IAL_DEFINITION_INSUFFICIENT flags feed the migration-completeness check as the onboarding agency's identity posture"
        },
        {
          "tool_id": "art-519-payment-data-migration-completeness",
          "handoff": "per-partition completeness, aggregate reconciliation, and transformation-coverage verdicts feed the operator-exit portability check as the migrated data's known state"
        },
        {
          "tool_id": "art-520-operator-exit-data-portability",
          "handoff": "the stranded-category list and control/dependency flags are the terminal evidence for this run"
        }
      ]
    },
    {
      "name": "gpi-mt-to-mx-translation",
      "domain": "Cross-Border & Instant Payments",
      "title": "GPI MT-to-MX Translation",
      "spec_version": "0.8.0",
      "wave": 41,
      "description": "Linear two-step chain for SWIFT GPI MT103 to pacs.008 migration fidelity. Step 1 simulates the GPI tracker lifecycle for the payment status transition and Universal Confirmation SLA (ACSP to ACCC within 24h). Step 2 scores MT103-to-pacs.008 field mapping fidelity (ordering customer, beneficiary, agent BICs, remittance info, charge bearer code mapping OUR=DEBT/SHA=SHAR/BEN=CRED). Both steps always run. Use to diagnose translation quality before CBPR+ November 2026 go-live.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/gpi-mt-to-mx-translation.html",
      "regulatory_refs": [
        "SWIFT CBPR+ mandatory migration deadline 14 Nov 2026",
        "SWIFT GPI Universal Confirmation SLA rules",
        "SWIFT Standards Release Guide MT103",
        "ISO 20022 pacs.008.001.10",
        "ISO 20022 pacs.002 ExternalPaymentTransactionStatus1Code"
      ],
      "steps": [
        {
          "tool_id": "art-244-gpi-tracker-lifecycle-simulator",
          "handoff": "GPI status transition validity, SLA breach flag, and allowed next statuses. Passes to MT-to-MX fidelity scoring."
        },
        {
          "tool_id": "art-245-mt-mx-translation-fidelity-scorer",
          "handoff": "MT103-to-pacs.008 fidelity score, per-field mapping results, charge bearer check, and truncation risks. Final stage."
        }
      ]
    },
    {
      "name": "green-finance-transition",
      "domain": "Climate & Sustainable Finance",
      "title": "Green Finance & Transition Plan",
      "description": "Greenwashing risk assessment > SLL KPI adequacy > EU Green Bond Standard screening > net-zero alignment scoring > transition-plan adequacy: composite green-finance transition mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/green-finance-transition.html",
      "steps": [
        {
          "tool_id": "365-greenwashing-risk-assessor",
          "handoff": "greenwashing_risk_score and disclosure_gaps feed Stage 2 SLL KPI adequacy"
        },
        {
          "tool_id": "366-sll-kpi-adequacy-checker",
          "handoff": "kpi_adequacy_assessment and improvement_flags feed Stage 3 EUGB screening"
        },
        {
          "tool_id": "381-eu-green-bond-standard-screener",
          "handoff": "eugb_compliance_status and use_of_proceeds feed Stage 4 net-zero alignment"
        },
        {
          "tool_id": "382-net-zero-alignment-scorer",
          "handoff": "net_zero_alignment_score and gap_to_target feed Stage 5 transition-plan adequacy"
        },
        {
          "tool_id": "385-transition-plan-adequacy-checker",
          "handoff": "transition_plan_adequacy and composite_score — final green-finance transition mandate"
        }
      ]
    },
    {
      "name": "hedge-effectiveness-documentation",
      "domain": "Corporate Treasury & FX",
      "title": "Hedge Effectiveness Documentation",
      "spec_version": "0.8.0",
      "wave": 44,
      "description": "Gated two-step chain for ASC 815 hedge accounting designation. Step 1 applies the dollar-offset test (80-125%) and OLS R-squared regression (>=0.8) for retrospective effectiveness. Gate on /is_effective: if false (INEFFECTIVE), the chain ends -- hedge accounting not permitted. Default (true, EFFECTIVE): Step 2 scores AFP 2024 cash-flow forecast accuracy for prospective effectiveness documentation required by ASC 815-20-35. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/hedge-effectiveness-documentation.html",
      "regulatory_refs": [
        "ASC 815-20-35 (FASB Codification, hedge effectiveness assessment)",
        "ASC 815-20-25 (formal hedge documentation requirements)",
        "AFP Cash Forecasting Survey 2024 (prospective effectiveness benchmarks)"
      ],
      "steps": [
        {
          "tool_id": "art-261-test-hedge-effectiveness",
          "handoff": "ASC 815 dollar-offset ratio (80-125%) + OLS R-squared (>=0.8). Emits is_effective (bool), offset_ratio_pct, r_squared, compliance_flags. GATE: is_effective=false -> END (INEFFECTIVE). Default -> Step 2.",
          "gate": {
            "input": "/is_effective",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-263-score-cash-forecast-accuracy"
          }
        },
        {
          "tool_id": "art-263-score-cash-forecast-accuracy",
          "handoff": "AFP 2024 MAPE/bias scoring of hedged cash-flow forecasts for prospective effectiveness evidence. Returns accuracy_tier and by_horizon breakdown. Final stage."
        }
      ]
    },
    {
      "name": "icfr-control-test-cycle",
      "domain": "SOX 404 / ICFR",
      "title": "ICFR Control-Test Cycle",
      "description": "SOX 404 control-test evidence cycle -- population, sample, and per-item test results reconcile into ONE test-conclusion artifact (coverage, exception count vs tolerable deviation, test conclusion). gate_status (review_required) and any deficiency candidate are recorded per the §27 Human Accountability vocabulary: the tester is the §27.1 preparer, every conclusion requires a reviewer sign-off, and deficiency severity classification is a separate reviewer approval record -- both recorded now, enforced once HA-RETRO-1's runtime gating is wired to this chain. Quarter-end evidence bundles (§27.6) align to the §302 sub-certification cascade. Never a filed submission.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/icfr-control-test-cycle.html",
      "steps": [
        {
          "tool_id": "art-461-control-test-evidence-composer",
          "handoff": "Reconciles the declared sample against per-item test results into sample coverage, exception count, and test_conclusion -- final stage. Fixed review_required gate routes every conclusion to a §27.4 reviewer sign-off (recorded, not yet runtime-gated); an exception_count above the tolerable-deviation threshold flags a deficiency CANDIDATE for the reviewer's severity classification, never computed here."
        }
      ]
    },
    {
      "id": "idv-session-evidence",
      "name": "idv-session-evidence",
      "domain": "Financial Crime & KYC",
      "title": "IDV/KYC Session Evidence Chain",
      "spec_version": "0.8.0",
      "wave": 62,
      "description": "Structural camera-provenance check on an IDV/KYC capture's C2PA manifest (art-361), feeding a hash-chained session receipt that binds the verifier's declared results, capture-chain digest, and injection/liveness/document/device verdicts into a single tamper-evident record (art-359). Every verifier-sourced field is labeled asserted: the chain attests the session record as declared, never detection quality or subject genuineness, and consumes only digests, booleans, and scores -- zero PII by construction. Gate: an asserted injection-detection verdict of true routes to the verification-failure incident composer (art-418) for fraud-team/regulator/insurer evidence; a clean session ends the chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/idv-session-evidence.html",
      "regulatory_refs": [
        "C2PA Technical Specification (manifest structural integrity, digitalSourceType)"
      ],
      "steps": [
        {
          "tool_id": "art-361-camera-provenance-check",
          "handoff": "C2PA manifest structural verdict and digitalSourceType/trainedAlgorithmicMedia flag feed the session receipt builder's capture-chain field."
        },
        {
          "tool_id": "art-359-idv-session-receipt-builder",
          "handoff": "Hash-chained IDV/KYC session receipt. Gate: an asserted injection-detection verdict of true routes to the verification-failure incident composer; a clean session ends the chain.",
          "gate": {
            "input": "/session/injection_detection/verdict",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "art-418-idv-verification-failure-incident-composer"
              }
            ],
            "default": "end"
          }
        },
        {
          "tool_id": "art-418-idv-verification-failure-incident-composer",
          "handoff": "Verification-failure incident evidence record for fraud teams, regulators, and insurers -- final stage, cross-linked to the session receipt hash."
        }
      ]
    },
    {
      "id": "ifrs17-measurement-conformance",
      "name": "ifrs17-measurement-conformance",
      "domain": "Insurance & Reinsurance",
      "title": "IFRS 17 Measurement Conformance",
      "description": "Classify insurance contracts to GMM/VFA/PAA measurement model from coverage period and direct-participating features (art-177) -> validate CSM roll-forward mechanics and flag onerous contracts where computed closing CSM is negative (art-178) -> check risk-adjustment disclosure technique, confidence level, and onerous-contract loss-component recognition (art-179). Full IFRS 17 measurement conformance pipeline. IFRS 17 live Jan 1 2023; mandatory for all IFRS reporters.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ifrs17-measurement-conformance.html",
      "steps": [
        {
          "tool_id": "art-177-ifrs17-measurement-model-classifier",
          "handoff": "Measurement model classification feeds CSM roll-forward validator"
        },
        {
          "tool_id": "art-178-ifrs17-csm-rollforward-validator",
          "handoff": "CSM roll-forward verdict feeds risk-adjustment checker"
        },
        {
          "tool_id": "art-179-ifrs17-risk-adjustment-checker",
          "handoff": "Exports risk-adjustment validity and onerous-contract flags with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "instant-payments-compliance",
      "domain": "Cross-Border & Instant Payments",
      "title": "Instant Payments Compliance",
      "description": "FedNow service lookup and reachability > instant payment limits assessment > pay-by-bank prototyping: composite instant payments compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/instant-payments-compliance.html",
      "steps": [
        {
          "tool_id": "06-fednow-lookup",
          "handoff": "fednow_reachability and participant_status feed Stage 2 instant payment limits"
        },
        {
          "tool_id": "17-instant-payment-limits",
          "handoff": "limit_analysis and velocity_constraints feed Stage 3 pay-by-bank prototyping"
        },
        {
          "tool_id": "08-pay-by-bank-prototyper",
          "handoff": "pay_by_bank_design and composite_instant_payments_mandate — final instant payments mandate"
        }
      ]
    },
    {
      "name": "instant-payments-vop",
      "domain": "Cross-Border & Instant Payments",
      "title": "Instant Payments & Verification of Payee Readiness",
      "description": "Rail participation readiness > Verification of Payee simulation > intraday liquidity sizing > IPR annual report > instant-payments policy mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/instant-payments-vop.html",
      "steps": [
        {
          "tool_id": "229-rtp-network-participation-checker",
          "handoff": "participation_gaps feed Stage 2 VoP simulation"
        },
        {
          "tool_id": "289-verification-of-payee-simulator",
          "handoff": "vop_match_rates and response_timing feed Stage 3 liquidity sizing"
        },
        {
          "tool_id": "258-intraday-credit-facility-sizer",
          "handoff": "intraday_facility_size feeds Stage 4 IPR report"
        },
        {
          "tool_id": "349-sepa-ipr-annual-report-builder",
          "handoff": "ipr_report_data feeds Stage 5 RTP policy mandate"
        },
        {
          "tool_id": "259-ap2-rtp-policy-builder",
          "handoff": "Exports instant-payments Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "insurance-ai-bias-attestation",
      "domain": "AI & Agent Governance",
      "title": "Insurance AI Bias Attestation",
      "spec_version": "0.8.0",
      "wave": 40,
      "description": "Gated two-step chain for Colorado SB 21-169 / Reg. 10-1-1 annual bias attestation for insurance AI models. Step 1 tests BIFSG proxy bias thresholds (art-239) from aggregate regression outputs (ZERO PII). Gate: bias_detected=true proceeds to NAIC AIS readiness assessment (art-240) for remediation planning. When bias is not detected, chain terminates (annual attestation evidence is the execution_hash anchored at anchor.ainumbers.co/mcp). Step 2 (art-240) scores insurance AI program readiness across 6 NAIC AIS dimensions and produces exam-ready gap list.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/insurance-ai-bias-attestation.html",
      "regulatory_refs": [
        "Colorado SB 21-169 (signed 2021-07-06)",
        "Colorado Reg. 10-1-1 (effective 2023-11-14, Colorado Division of Insurance)",
        "NAIC AI Model Bulletin (adopted Aug 2020, updated 2023)",
        "NAIC AI Systems (AIS) Evaluation Tool (2024 edition)"
      ],
      "steps": [
        {
          "tool_id": "art-239-test-bifsg-bias-thresholds",
          "handoff": "BIFSG proxy bias test result. Gate: bias_detected=true proceeds to NAIC AIS readiness assessment; PASS exits with execution_hash for annual attestation anchor.",
          "gate": {
            "input": "/bias_detected",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "art-240-assess-naic-ais-program-readiness"
              }
            ],
            "default": "end"
          }
        },
        {
          "tool_id": "art-240-assess-naic-ais-program-readiness",
          "handoff": "NAIC AIS readiness tier, dimension scores, and exam-ready gap list. Only reached when bias is detected. Final stage."
        }
      ]
    },
    {
      "name": "insurance-capital-pricing",
      "domain": "Insurance & Reinsurance",
      "title": "Insurance Capital & Pricing Adequacy",
      "description": "Embedded insurance pricing model > Solvency II SCR calculation > NAIC RBC calculation > ratemaking adequacy assessment > claims reserve adequacy: composite insurance capital mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/insurance-capital-pricing.html",
      "steps": [
        {
          "tool_id": "446-embedded-insurance-pricing-modeller",
          "handoff": "pricing_model and embedded_structure feed Stage 2 Solvency II SCR calc"
        },
        {
          "tool_id": "447-solvency-ii-scr-calculator",
          "handoff": "scr_capital_requirement and buffer feed Stage 3 NAIC RBC calculation"
        },
        {
          "tool_id": "457-naic-rbc-calculator",
          "handoff": "rbc_ratio and jurisdiction_comparison feed Stage 4 ratemaking adequacy"
        },
        {
          "tool_id": "459-insurance-ratemaking-adequacy",
          "handoff": "pricing_adequacy and combined_ratio feed Stage 5 claims reserve adequacy"
        },
        {
          "tool_id": "462-claims-reserve-adequacy-checker",
          "handoff": "reserve_adequacy and composite_capital_mandate — final insurance capital mandate"
        }
      ]
    },
    {
      "name": "insurer-rbc-action-level",
      "domain": "Insurance & Reinsurance",
      "title": "Insurer RBC Action Level Assessment",
      "spec_version": "0.8.0",
      "wave": 43,
      "description": "Gated two-step chain for NAIC RBC capital adequacy assessment and claims STP economics. Step 1 computes the RBC action level (TAC/ACL ratio) and classifies into NO_ACTION / COMPANY_ACTION / REGULATORY_ACTION / AUTHORIZED_CONTROL / MANDATORY_CONTROL per NAIC Model Laws #312/#315/#315H. Gate on /action_level_code: if NO_ACTION (above 200% ACL), the chain ends -- insurer is well-capitalised and no corrective action is required. Default (below 200% ACL): Step 2 computes claims STP economics to model the financial impact of automation investment as a capital restoration pathway. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/insurer-rbc-action-level.html",
      "regulatory_refs": [
        "NAIC RBC Model Law #312 (Life Insurance RBC)",
        "NAIC RBC Model Law #315 (P&C RBC)",
        "NAIC RBC Model Law #315H (Health RBC)",
        "NAIC RBC Instructions 2024 edition (LR023, Exhibit 1, HR-1)",
        "IAIS ComFrame (proportionality in claims governance)"
      ],
      "steps": [
        {
          "tool_id": "art-254-compute-rbc-action-level",
          "handoff": "RBC ratio (TAC/ACL%), action_level_code, and headroom_to_next_level_pct. Gate on /action_level_code: NO_ACTION exits (well-capitalised). Default (below 200% ACL): proceed to claims STP economics model.",
          "gate": {
            "input": "/action_level_code",
            "rules": [
              {
                "op": "eq",
                "value": "NO_ACTION",
                "next": "end"
              }
            ],
            "default": "art-257-calculate-claims-stp-economics",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "art-257-calculate-claims-stp-economics",
          "handoff": "Claims STP ROI: NPV, IRR, payback_years, net_annual_benefit, and per-claim cost reduction. Final stage -- models automation investment as capital improvement lever."
        }
      ]
    },
    {
  "name": "interest-accrual-recompute",
  "domain": "Audit & Assurance",
  "title": "Interest Accrual Recompute",
  "description": "Core Verify pack, chain 1 of 3 (CORE-VERIFY-BUILD-SPEC.md §1): independently recomputes a core-system-reported interest accrual figure from the caller-declared principal, annual rate, day-count basis, and days accrued, then diffs the recomputed figure against the core's reported amount under a caller-declared variance tolerance. This chain configures the existing audit recalculation suite (art-463) to its interest_accrual category only -- no new kernel, no new node. The day-count/compounding convention is a contract term the caller declares for each item, never inferred or defaulted by this chain. A DIVERGES result names the exact recalculated-vs-reported variance in cents and percent for the flagged item(s); MATCHES/DIVERGES/INDETERMINATE semantics are the underlying node's own verdict, unchanged.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/interest-accrual-recompute.html",
  "regulatory_refs": [
    "ISDA 2006 Definitions Section 4.16 (day-count fraction conventions) -- the day-count/compounding convention recomputed here is a caller-declared contract term, not a regulation; this is the standard cross-industry reference for day-count fraction definitions, dated as of the 2006 ISDA Definitions"
  ],
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "BUILD-COREVERIFY-CHAINS-1",
  "regulatory_basis_decided_at": "2026-08-17",
  "export_capability": ["json"],
  "steps": [
    {
      "tool_id": "art-463-recalc-suite",
      "handoff": "Recomputes each declared interest-accrual item (principal, annual_rate_pct, days_accrued, day_count_basis) independently and diffs the result against the core-reported interest figure, flagging any variance outside the caller-declared tolerance (tolerance_abs, tolerance_pct). Terminal stage -- this chain runs the suite's interest_accrual category only; the suite's other four categories (depreciation, EPS, amortization, prepaid roll-forward) are out of scope for this chain and are not invoked."
    }
  ]
},
    {
      "name": "intl-wire-iso-preflight",
      "domain": "Cross-Border & Instant Payments",
      "title": "International Wires ISO Migration Preflight",
      "description": "Per-template preflight for the Nov 16 2026 ISO 20022 structured-address harmonization deadline: CBPR+ structured-address lint, purpose-code requirement check, LEI payment-binding lint, and MT-MX translation fidelity score. PASS only when all four checks pass; FAIL surfaces the failing check(s). Each receipt records which template/version was checked so re-runs show drift toward compliance across receipts.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/intl-wire-iso-preflight-composer.html",
      "steps": [
        {
          "tool_id": "art-241-cbpr-structured-address-linter",
          "handoff": "structured-address lint result feeds Stage 2 purpose-code check"
        },
        {
          "tool_id": "art-243-purpose-code-requirement-checker",
          "handoff": "purpose-code check result feeds Stage 3 LEI payment-binding lint"
        },
        {
          "tool_id": "art-246-lei-payment-binding-linter",
          "handoff": "LEI payment-binding lint result feeds Stage 4 translation-fidelity scoring"
        },
        {
          "tool_id": "art-245-mt-mx-translation-fidelity-scorer",
          "handoff": "translation-fidelity score composes with the prior three checks into the per-template PASS/FAIL ISO-migration preflight receipt. Terminal stage."
        }
      ]
    },
    {
      "name": "intraday-finality-attestation",
      "domain": "Verification & Proof Receipts",
      "title": "Intraday Finality Attestation Receipt",
      "description": "Five-step shared-ledger intraday finality receipt: settlement-asset finality-regime classification, Linea L2 finality-window classification, on-chain cash-leg finality check, settlement-orchestrator ship-readiness attestation, and a document-integrity anchor over the composite digest. Composes into replayable evidence of \"final at window Y\" for a correspondent bank or auditor. Verify-only -- never asserts on-chain settlement it did not observe. The receipt does not yet carry a receipt:// resolver link (pending the N1 MCP Resources work); this is a planned upgrade, not a missing requirement.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/intraday-finality-attestation.html",
      "steps": [
        {
          "tool_id": "art-59-settlement-asset-finality-classifier",
          "handoff": "finality_tier and singleness_verdict feed the L2 finality-window classification"
        },
        {
          "tool_id": "art-290-check-linea-l2-finality-window",
          "handoff": "finality_tier and safe_to_release feed the on-chain cash-leg finality check"
        },
        {
          "tool_id": "506-onchain-cash-leg-finality-checker",
          "handoff": "cash-leg verdict feeds the settlement-orchestrator attestation"
        },
        {
          "tool_id": "art-292-attest-settlement-orchestrator",
          "handoff": "composite ship-readiness grade completes the intraday finality attestation; feeds the optional document-integrity anchor"
        },
        {
          "tool_id": "art-121-document-integrity-anchor",
          "handoff": "Anchors the composite receipt digest as an eIDAS Art.41-aligned electronic timestamp. Optional terminal stage."
        }
      ]
    },
    {
      "name": "ip-license-election-and-attestation",
      "domain": "Document & Content Provenance",
      "title": "IP License Election and Attestation",
      "description": "License selection (CC / CBE / PIL / embedded) > rights matrix comparison > compatibility check > terms assembly > rights record > certified license VC with execution hash binding. The election step is interchangeable across license families; the compatibility check applies when a parent asset constrains the child license.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/ip-license-election-and-attestation.html",
      "steps": [
        {
          "tool_id": "art-195-creative-commons-license-chooser",
          "handoff": "Selected license_id, spdx_id, and required_elements feed Stage 2 cross-license rights comparison"
        },
        {
          "tool_id": "art-198-cross-license-rights-comparator",
          "handoff": "Canonical rights vectors and diff feed Stage 3 compatibility check"
        },
        {
          "tool_id": "art-204-license-compatibility-checker",
          "handoff": "Compatibility verdict and reason codes feed Stage 4 terms assembly"
        },
        {
          "tool_id": "art-205-license-terms-assembler",
          "handoff": "Rendered license terms feed Stage 5 rights record builder"
        },
        {
          "tool_id": "art-206-rights-record-builder",
          "handoff": "Normalized rights record and record_hash feed Stage 6 license election certification"
        },
        {
          "tool_id": "art-199-license-election-certifier",
          "handoff": "Exports certified license election VC with execution_hash binding -- final stage"
        }
      ]
    },
    {
      "id": "irrbb-measurement-and-disclosure",
      "name": "irrbb-measurement-and-disclosure",
      "domain": "IRRBB",
      "title": "IRRBB Measurement and Disclosure",
      "description": "Map non-maturing deposit positions to EBA standardised-approach behavioural caps (art-186) -> identify Credit Spread Risk in the Banking Book (CSRBB) scope and governance gaps (art-187) -> A-F IRRBB disclosure readiness diagnostic across shock calc, SOT, standardised approach, CSRBB, and Pillar 3 IRRBB1 dimensions (art-188). Full IRRBB measurement and disclosure pipeline. BCBS d368 + EBA GL/2022/14 + Pillar 3 IRRBB1.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/irrbb-measurement-and-disclosure.html",
      "steps": [
        {
          "tool_id": "art-186-irrbb-standardised-approach-mapper",
          "handoff": "NMD core/maturity mapping feeds CSRBB scope checker"
        },
        {
          "tool_id": "art-187-irrbb-csrbb-scope-checker",
          "handoff": "CSRBB scope and governance gaps feed disclosure readiness diagnostic"
        },
        {
          "tool_id": "art-188-irrbb-disclosure-readiness-diagnostic",
          "handoff": "Exports A-F IRRBB disclosure readiness grade with execution_hash -- final stage"
        }
      ]
    },
    {
      "id": "irrbb-supervisory-outlier-test",
      "name": "irrbb-supervisory-outlier-test",
      "domain": "IRRBB",
      "title": "IRRBB Supervisory Outlier Test",
      "description": "Calculate delta EVE under the 6 BCBS d368 standardised shock scenarios from bucketed repricing cash flow gaps (art-183) -> evaluate the EVE leg of the EBA Supervisory Outlier Test against the hard 15%-of-Tier-1 threshold (art-184) -> evaluate the NII leg of the SOT against a caller-supplied threshold (art-185). Full IRRBB supervisory outlier test pipeline. BCBS d368 (2024 recalibration, effective 1 Jan 2026) + EBA GL/2022/14.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/irrbb-supervisory-outlier-test.html",
      "steps": [
        {
          "tool_id": "art-183-irrbb-eve-shock-calculator",
          "handoff": "Per-scenario delta EVE and worst_delta_eve feed SOT/EVE evaluator"
        },
        {
          "tool_id": "art-184-irrbb-sot-eve-evaluator",
          "handoff": "SOT/EVE outlier verdict feeds SOT/NII evaluator"
        },
        {
          "tool_id": "art-185-irrbb-sot-nii-evaluator",
          "handoff": "Exports SOT/NII outlier verdict with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "iso20022-cross-border-readiness",
      "domain": "Cross-Border & Instant Payments",
      "title": "ISO 20022 Cross-Border Readiness",
      "description": "pacs.008 cross-border message generation > ISO20022 message validation > ISO20022 migration navigator: composite ISO20022 cross-border readiness mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/iso20022-cross-border-readiness.html",
      "steps": [
        {
          "tool_id": "219-pacs008-cross-border-generator",
          "handoff": "pacs008_message and field_population_status feed Stage 2 ISO20022 validation"
        },
        {
          "tool_id": "248-iso20022-validator",
          "handoff": "validation_errors and schema_compliance feed Stage 3 ISO20022 migration navigator"
        },
        {
          "tool_id": "81-iso20022-migration-navigator",
          "handoff": "migration_gaps and cutover_plan — final ISO20022 cross-border readiness mandate"
        }
      ]
    },
    {
      "name": "iso20022-cutover",
      "domain": "Cross-Border & Instant Payments",
      "title": "ISO 20022 Cutover",
      "description": "Truncation audit > migration score > cross-rail compatibility check.",
      "composer_url": "https://ainumbers.co/guides/iso20022-cutover-composer.html",
      "steps": [
        {
          "tool_id": "77-iso-truncation-auditor",
          "handoff": "truncation_risks and field_map feed Stage 2 migration scoring"
        },
        {
          "tool_id": "101-iso20022-migration-scorer",
          "handoff": "migration_score and readiness_flags feed Stage 3 cross-rail check"
        },
        {
          "tool_id": "254-iso20022-cross-rail-compatibility",
          "handoff": "Exports ISO 20022 cutover Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "kya-agent-counterparty-receipt",
      "domain": "AI & Agent Governance",
      "title": "Agent Counterparty Due-Diligence Receipt (KYA)",
      "description": "Know-Your-Agent (KYA) receipt for onboarding an autonomous agent counterparty: checks the agent's key is not revoked against a supplied BitstringStatusList credential (art-287), verifies its delegated-authority attestation chain (art-04), audits its key rotation posture (art-132), then GATES on a provable reputation score composed from prior OCG execution receipts (art-278). GATE: a composite reputation score below the tunable threshold theta ends the chain with no acceptance receipt issued; a score at or above theta continues to bind an NDA acceptance receipt referenced by hash (art-277). Theta is a composer policy_parameter, never a literal baked into kernel code, so it can be retuned without a rebuild. The receipt asserts unrevoked key, unexpired mandate, reputation at or above theta, and NDA accepted, each with its own evidence class; composite claim_strength honestly reports the weakest verification class among its steps. A Web Bot Auth signed-agent verification tail is an optional planned upgrade (rides the AGENTIC-NAV Section N2 landing, whose bypass-half is still unverified) and is omitted here, not missing. Verify-only; asserts only the four conditions it checked, never a broader safe-to-transact guarantee.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/kya-agent-counterparty-receipt.html",
      "steps": [
        {
          "tool_id": "art-287-revocation-status-verifier",
          "handoff": "revocation posture (BitstringStatusList lookup) feeds the delegated-authority attestation chain check"
        },
        {
          "tool_id": "art-04-agent-identity-attestation-checker",
          "handoff": "delegated-authority credential chain and scope classification feed the key rotation audit"
        },
        {
          "tool_id": "art-132-agent-key-rotation-auditor",
          "handoff": "key rotation posture (HEALTHY / ROTATION_STAGED / ACTION_REQUIRED) feeds the reputation aggregation"
        },
        {
          "tool_id": "art-278-reputation-score-aggregator",
          "handoff": "composite reputation score gates continuation: GATE composite < theta ends the chain with no acceptance receipt issued; composite >= theta continues to the NDA acceptance binder",
          "gate": {
            "input": "/composite",
            "rules": [
              {
                "op": "lt",
                "value": 0.5,
                "next": "end"
              }
            ],
            "default": "art-277-agreement-acceptance-binder"
          }
        },
        {
          "tool_id": "art-277-agreement-acceptance-binder",
          "handoff": "binds the counterparty's NDA acceptance by hash reference, completing the KYA receipt. Final stage."
        }
      ]
    },
    {
      "name": "kyb-beneficial-ownership-attribution",
      "domain": "SME & Commercial Finance",
      "title": "KYB Beneficial Ownership Attribution",
      "spec_version": "0.8.0",
      "wave": 45,
      "description": "Gated two-step bank KYB chain under FinCEN CDD Rule 31 CFR 1010.230. Step 1 computes indirect natural-person beneficial ownership via recursive ownership-tier multiplication (25% threshold). Gate on /is_beneficial_owner: false exits early (no beneficial owner at or above 25%). Default (true, beneficial owner identified) proceeds to Step 2: W-8 series structural validation for withholding compliance. NOT the CTA/BOI domestic reporting rule. Synthetic entity IDs only. Zero PII by construction.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/kyb-beneficial-ownership-attribution.html",
      "regulatory_refs": [
        "FinCEN CDD Rule 31 CFR 1010.230 (Customer Due Diligence -- Beneficial Ownership of Legal Entity Customers)",
        "Treas. Reg. 1.1441-1(e)(4)(ii) (W-8 series 3-year validity window)",
        "IRS Pub 901 (treaty dividend rates by country)"
      ],
      "steps": [
        {
          "tool_id": "art-268-compute-cdd-ownership-25pct",
          "handoff": "Recursive ownership: is_beneficial_owner (bool), total_indirect_pct, natural_person_breakdown. GATE: is_beneficial_owner=false -> END (no BO at 25%). Default (true) -> Step 2.",
          "gate": {
            "input": "/is_beneficial_owner",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-269-validate-w8-series-structural",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-269-validate-w8-series-structural",
          "handoff": "W-8 structural checks: is_structurally_valid (bool), violations[], validity_expiry_date, days_until_expiry. Final stage."
        }
      ]
    },
    {
      "name": "kyc-onboarding-cdd",
      "domain": "Financial Crime & KYC",
      "title": "KYC Onboarding & Customer Due Diligence",
      "description": "CDD/EDD checklist > KYB/UBO mapping > PEP/sanctions simulation > adverse media profiling > KYC document checklist: composite KYC onboarding mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/kyc-onboarding-cdd.html",
      "steps": [
        {
          "tool_id": "109-cdd-edd-checklist",
          "handoff": "cdd_edd_requirements and risk_factors feed Stage 2 KYB/UBO mapping"
        },
        {
          "tool_id": "111-kyb-ubo-mapper",
          "handoff": "ubo_structure and beneficial_owners feed Stage 3 PEP/sanctions simulation"
        },
        {
          "tool_id": "112-pep-sanctions-simulator",
          "handoff": "pep_flags and sanctions_hits feed Stage 4 adverse media profiling"
        },
        {
          "tool_id": "113-adverse-media-profiler",
          "handoff": "adverse_media_score and risk_narrative feed Stage 5 KYC document checklist"
        },
        {
          "tool_id": "114-kyc-document-checklist",
          "handoff": "document_requirements and onboarding_checklist — final KYC onboarding mandate"
        }
      ]
    },
    {
      "name": "large-exposures-check",
      "domain": "Bank Capital & Credit Risk",
      "title": "Large Exposures Limit Check (Basel III / Regulation YY)",
      "description": "Single-node check aggregating each counterparty group's exposure against the Basel III / Regulation YY 25% (general) or 15% (GSIB-to-GSIB) single-counterparty limit, emitting a breach-list artifact.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/large-exposures-check.html",
      "steps": [
        {
          "tool_id": "art-425-large-exposures-limit-check",
          "handoff": "breach-list artifact feeds Basel III / Regulation YY large-exposures reporting and routes any breaching group to the §27 review gate; standalone recurring check per reporting date"
        }
      ]
    },
    {
      "name": "license-compatibility-check",
      "domain": "Document & Content Provenance",
      "title": "License Compatibility Check",
      "description": "Cross-framework rights matrix comparison > compatibility analysis with reason codes and required child license. Also usable as a standalone entry point for checking whether a child license can derive from a parent asset.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/license-compatibility-check.html",
      "steps": [
        {
          "tool_id": "art-198-cross-license-rights-comparator",
          "handoff": "Canonical rights vectors and diff feed Stage 2 compatibility analysis"
        },
        {
          "tool_id": "art-204-license-compatibility-checker",
          "handoff": "Exports compatibility verdict, reason codes, and required child license -- final stage"
        }
      ]
    },
    {
      "name": "life-illustration-self-support-test",
      "domain": "Insurance & Reinsurance",
      "title": "Life Illustration Self-Support Test",
      "spec_version": "0.8.0",
      "wave": 43,
      "description": "Linear two-step chain for life insurance illustration compliance and insurer capital review. Step 1 runs the NAIC Model 582 §8C self-support test (year 15 and year 20) and §8D lapse-support check per ASOP 24 -- certifies the illustration is not lapse-supported and maintains a non-negative account value. Step 2 computes the RBC action level for the issuing insurer to confirm adequate capital supports the product offering. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/life-illustration-self-support-test.html",
      "regulatory_refs": [
        "NAIC Model Regulation 582 §8C (Life Insurance Self-Support Test)",
        "NAIC Model Regulation 582 §8D (Lapse-Support Prohibition)",
        "ASOP 24 (Actuarial Standard of Practice for Illustrations)",
        "NAIC RBC Model Laws #312/#315/#315H"
      ],
      "steps": [
        {
          "tool_id": "art-253-run-illustration-selfsupport-test",
          "handoff": "Illustration validity: self_support_pass (yr15+yr20), lapse_support_flag, and issues list. Passes to RBC capital review."
        },
        {
          "tool_id": "art-254-compute-rbc-action-level",
          "handoff": "RBC action level classification (NO_ACTION / COMPANY_ACTION / REGULATORY_ACTION / AUTHORIZED_CONTROL / MANDATORY_CONTROL). Final stage.",
          "gate": {
            "input": "/action_level_code",
            "rules": [
              {
                "op": "neq",
                "value": "NO_ACTION",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "escalate"
          }
        }
      ]
    },
    {
      "name": "marketplace-platform-payments",
      "domain": "SME & Commercial Finance",
      "title": "Marketplace Platform Payments",
      "description": "Marketplace fee waterfall design > virtual account structure simulation > payout rail cost/finality modelling > split-payment escrow simulation > marketplace payout flow design: composite marketplace payments mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/marketplace-platform-payments.html",
      "steps": [
        {
          "tool_id": "138-marketplace-fee-waterfall-designer",
          "handoff": "fee_waterfall and revenue_split feed Stage 2 virtual account structure simulation"
        },
        {
          "tool_id": "146-virtual-account-structure-simulator",
          "handoff": "va_structure and settlement_routing feed Stage 3 payout rail cost/finality model"
        },
        {
          "tool_id": "147-payout-rail-cost-finality-modeller",
          "handoff": "rail_economics and finality_comparison feed Stage 4 split-payment escrow simulation"
        },
        {
          "tool_id": "151-split-payment-escrow-simulator",
          "handoff": "escrow_terms and fund_flows feed Stage 5 marketplace payout flow designer"
        },
        {
          "tool_id": "159-marketplace-payout-flow-designer",
          "handoff": "payout_flow and composite_marketplace_mandate — final marketplace payments mandate"
        }
      ]
    },
    {
      "name": "mcp-publish-readiness",
      "domain": "AI & Agent Governance",
      "title": "MCP Publish-Readiness Chain",
      "description": "Validates an MCP server manifest → lints tool definitions → audits OAuth 2.1 → scans for tool-poisoning → scores developer readiness. Full 5-stage MCP compliance journey before shipping a production MCP server.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mcp-publish-readiness.html",
      "steps": [
        {
          "tool_id": "275-mcp-server-json-validator",
          "handoff": "schema_errors,version_compliance,missing_fields feed Stage 2 tool linting"
        },
        {
          "tool_id": "274-mcp-tool-definition-linter",
          "handoff": "lint_errors,naming_violations,schema_gaps feed Stage 3 OAuth audit"
        },
        {
          "tool_id": "278-mcp-oauth-authorization-auditor",
          "handoff": "auth_scheme,token_scope_gaps,pkce_compliance feed Stage 4 poisoning scan"
        },
        {
          "tool_id": "282-mcp-tool-poisoning-scanner",
          "handoff": "poisoning_risk_score,suspicious_instructions,injection_patterns feed Stage 5 readiness score"
        },
        {
          "tool_id": "288-mcp-developer-readiness-scorecard",
          "handoff": "readiness_score,deployment_verdict -- Exports MCP compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "mcp-security-hardening",
      "domain": "AI & Agent Governance",
      "title": "MCP Server Security Hardening",
      "description": "MCP tool definition linting > MCP server JSON validation > MCP OAuth authorisation audit > MCP tool-poisoning scan > MCP DNS-rebinding transport audit: composite MCP security mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mcp-security-hardening.html",
      "steps": [
        {
          "tool_id": "274-mcp-tool-definition-linter",
          "handoff": "tool_definition_issues and schema_gaps feed Stage 2 MCP server JSON validation"
        },
        {
          "tool_id": "275-mcp-server-json-validator",
          "handoff": "server_json_errors and config_mismatches feed Stage 3 MCP OAuth audit"
        },
        {
          "tool_id": "278-mcp-oauth-authorization-auditor",
          "handoff": "oauth_vulnerabilities and auth_gaps feed Stage 4 tool-poisoning scan"
        },
        {
          "tool_id": "282-mcp-tool-poisoning-scanner",
          "handoff": "poisoning_risk_score and exploit_vectors feed Stage 5 DNS-rebinding audit"
        },
        {
          "tool_id": "284-mcp-transport-dns-rebinding-auditor",
          "handoff": "transport_security_assessment and composite_mcp_mandate — final MCP security mandate"
        }
      ]
    },
    {
      "name": "mcp-server-attestation",
      "domain": "AI & Agent Governance",
      "title": "MCP Server Attestation",
      "description": "MCP deployability diagnostic > signed server self-attestation (composite A-F grade).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mcp-server-attestation.html",
      "steps": [
        {
          "tool_id": "art-28-mcp-server-deployability-diagnostic",
          "handoff": "deployability grade and execution_hash feed Stage 2 readiness scorecard"
        },
        {
          "tool_id": "art-18-mcp-developer-readiness-scorecard",
          "handoff": "readiness score and execution_hash feed Stage 3 self-attestation"
        },
        {
          "tool_id": "art-33-mcp-server-self-attestation-pack",
          "handoff": "Exports the composite MCP server attestation artifact -- final stage"
        }
      ]
    },
    {
      "id": "mcp-server-governance-conformance",
      "name": "mcp-server-governance-conformance",
      "domain": "AI & Agent Governance",
      "title": "MCP Server Governance Conformance",
      "description": "Validate a new-spec MCP server identity document including subject, issuer, serverInfo, and attestation reference at the well-known path (art-147) → validate OAuth 2.0 Protected Resource Metadata per RFC 9728: resource URI, authorization servers, scopes, and bearer methods (art-148) → validate the MCP Registry server.json entry for schema, reverse-DNS name, semver version, and endpoint (art-149). Full governance attestation with execution_hash: final stage.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mcp-server-governance-conformance.html",
      "steps": [
        {
          "tool_id": "art-147-mcp-server-identity-attestation-validator",
          "handoff": "Server identity validity feeds RFC 9728 authorization metadata validator"
        },
        {
          "tool_id": "art-148-mcp-authorization-metadata-validator",
          "handoff": "Authorization metadata validity feeds MCP Registry entry conformance checker"
        },
        {
          "tool_id": "art-149-mcp-registry-entry-conformance",
          "handoff": "Exports registry conformance verdict with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "mica-audit-pack",
      "domain": "Digital-Asset Rails",
      "title": "MiCA CASP Compliance Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the CASP-lifecycle decision set (cry-04) -> Merkle-root audit receipt (cry-05) -> NCA/auditor-framed cover memo (ptg-01). Other chains feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "mica-casp-authorization",
      "domain": "Digital-Asset Rails",
      "title": "CASP Authorization & Own-Funds",
      "description": "W-A flagship. CASP authorization-readiness (governance, custody segregation, conflicts) (ART-100) -> Art 67 own-funds calculation (ART-101) -> audit receipt (cry-05). The CASP licensing lifecycle end-to-end. Decision-support draft.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-casp-authorization.html",
      "steps": [
        {
          "tool_id": "art-100-mica-casp-authorization-readiness",
          "handoff": "authorization grade + gaps (H1) feed the own-funds calculator"
        },
        {
          "tool_id": "art-101-mica-art67-own-funds-calculator",
          "handoff": "own-funds requirement (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite authorization artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "mica-fit",
      "domain": "Digital-Asset Rails",
      "title": "MiCA CASP Fit Diagnostic",
      "description": "Single-node D0 diagnostic scoping a CASP's MiCA Title-V lifecycle readiness and routing to the right MiCA chain; ART/EMT-issuer cases route to the existing stablecoin chains.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-fit.html",
      "steps": [
        {
          "tool_id": "art-98-mica-casp-fit-diagnostic",
          "handoff": "readiness grade routes to mica-casp-authorization / mica-transitional / mica-whitepaper / mica-mar-surveillance / mica-travel-rule / mica-token-scoping / mica-audit-pack"
        }
      ]
    },
    {
      "name": "mica-mar-surveillance",
      "domain": "Digital-Asset Rails",
      "title": "MAR-Crypto Surveillance Readiness",
      "description": "Market-abuse arrangements (PPAET/STOR/insider-list/manipulation) per Arts 86-92 + Dec-2024 RTS, assessed on synthetic order batches (ART-103) -> audit receipt (cry-05). Synthetic data only.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-mar-surveillance.html",
      "steps": [
        {
          "tool_id": "art-103-mar-crypto-surveillance-readiness",
          "handoff": "surveillance grade + gaps (H1) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite MAR artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "mica-passporting-surveillance",
      "domain": "Digital-Asset Rails",
      "title": "MiCA CASP Passporting & Market Surveillance",
      "description": "CASP authorisation check > passporting readiness > market-abuse surveillance mapping > periodic reporting obligations > significant-token threshold: composite MiCA CASP mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-passporting-surveillance.html",
      "steps": [
        {
          "tool_id": "332-mica-casp-authorization-checker",
          "handoff": "casp_auth_status and gaps feed Stage 2 passporting readiness"
        },
        {
          "tool_id": "393-mica-casp-passporting-readiness-checker",
          "handoff": "passporting_pathway and timeline feed Stage 3 market-abuse mapping"
        },
        {
          "tool_id": "392-mica-market-abuse-surveillance-mapper",
          "handoff": "mar_surveillance_requirements feed Stage 4 periodic reporting obligations"
        },
        {
          "tool_id": "394-mica-periodic-reporting-obligation-mapper",
          "handoff": "reporting_obligations and deadlines feed Stage 5 significant-token threshold"
        },
        {
          "tool_id": "391-mica-significant-token-threshold-calculator",
          "handoff": "threshold_status and enhanced_obligations — final MiCA CASP mandate"
        }
      ]
    },
    {
  "name": "mica-register-crosscheck",
  "domain": "Digital-Asset Rails",
  "title": "MiCA Register Cross-Check",
  "description": "A cross-check for the case of a MiCA-authorised issuer whose register presence, published reserve disclosure and stablecoin attestation recompute ought to line up. Stage 1 records whether the entity was present in a pasted ESMA register extract as of the date the reader captured it, pinned by a digest of the pasted bytes. Stage 2 checks that issuer's published reserve disclosure against the composition, concentration, segregation and cadence terms the reader declares. Stages 3 and 4 recompute the stablecoin side twice from the reader's own declared figures: a GENIUS Act reserve-attestation precheck, and a GENIUS-shaped conformance read over the published monthly disclosure. Every stage is computed independently from its own declared inputs; a chain composes computations in an analytical order and the execution model carries nothing between them. The evidence value is that four separate readings about one issuer, each dated and hash-anchored, can be laid beside each other by whoever is asking. HARD FENCE: presence in a register snapshot is a dated fact about pasted text, never authorisation, never a current status, and never a claim that the register is complete or current. Nothing in this chain fetches a register, an issuer disclosure or a market price, and no stage certifies compliance, solvency, or the truthfulness of the underlying data.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/mica-register-crosscheck.html",
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "MICA-REGISTER-K-1",
  "regulatory_basis_decided_at": "2026-08-11",
  "steps": [
    {
      "tool_id": "art-602-mica-register-presence-check",
      "handoff": "Stage 1, root: whether a named entity was present in a pasted ESMA MiCA register extract (crypto-asset white papers, or authorised crypto-asset service providers) as of the reader's own capture date, with the pasted bytes pinned by register_snapshot_digest. The reading is a dated fact about that snapshot and never an authorisation or current-status determination."
    },
    {
      "tool_id": "art-512-check-mica-reserve-disclosure",
      "handoff": "Stage 2: the same issuer's published reserve disclosure read against the composition, concentration, segregation and publication-cadence terms the reader declares, with coverage arithmetic in exact fixed point. Every rule tested here is the reader's own, transcribed from the terms the issuer is being held to, never a bundled template."
    },
    {
      "tool_id": "art-06-genius-act-reserve-attestation",
      "handoff": "Stage 3: a GENIUS Act reserve-attestation precheck over the reader's declared reserve and attestation figures, computed independently of Stage 2 from its own declared inputs. A second reading of the same subject, reached by a different route, is what makes a divergence visible."
    },
    {
      "tool_id": "art-582-genius-reserve-disclosure-conformance-monitor",
      "handoff": "Stage 4, terminal: GENIUS-shaped conformance over the published monthly reserve disclosure, covering coverage arithmetic and attestation presence and timeliness, each with its own verdict of MET, NOT_MET or INDETERMINATE. Permitted-asset composition stays out of scope while no final implementing rule text exists to check it against."
    }
  ]
},
    {
      "name": "mica-token-scoping",
      "domain": "Digital-Asset Rails",
      "title": "MiCA Token & Service Scoping",
      "description": "Disambiguation router (ART-105) classifying ART/EMT-issuer cases (delegated to the existing stablecoin-compliance/reserve chains) vs CASP-service cases -> audit receipt (cry-05). Prevents overlap; packages the MiCA suite.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-token-scoping.html",
      "steps": [
        {
          "tool_id": "art-105-mica-token-service-scoper",
          "handoff": "route decision + cross-references (H1) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite scoping artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "mica-transitional",
      "domain": "Digital-Asset Rails",
      "title": "CASP Transitional-Deadline & Authorization Path",
      "description": "Member-state transitional-deadline routing incl. the 30 Jun 2026 cliff (ART-99) -> CASP authorization-readiness (ART-100) -> audit receipt (cry-05). File-vs-wind-down decision against the Art 143(3) date.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-transitional.html",
      "steps": [
        {
          "tool_id": "art-99-mica-transitional-deadline-router",
          "handoff": "deadline + preconditions (H1) feed the readiness assessor"
        },
        {
          "tool_id": "art-100-mica-casp-authorization-readiness",
          "handoff": "readiness grade (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite transitional artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "mica-travel-rule",
      "domain": "Digital-Asset Rails",
      "title": "TFR Travel-Rule Batch Conformance",
      "description": "Originator/beneficiary field completeness on hashed/synthetic transfer batches incl. unhosted-wallet branch (ART-104) -> Merkle integrity (cry-04). Reuses the shipped synthetic-batch screening pattern; no real PII.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-travel-rule.html",
      "steps": [
        {
          "tool_id": "art-104-tfr-travel-rule-batch-validator",
          "handoff": "batch conformance + flagged transfers (H1) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite travel-rule artifact with Merkle-root execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "mica-whitepaper",
      "domain": "Digital-Asset Rails",
      "title": "Crypto-Asset Whitepaper Conformance",
      "description": "Art 6/8 whitepaper Annex I completeness + iXBRL / ESMA MiCA taxonomy conformance (ART-102) -> Merkle integrity (cry-04). A hash-anchored conformance target distinct from any shipped tool.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mica-whitepaper.html",
      "steps": [
        {
          "tool_id": "art-102-crypto-asset-whitepaper-linter",
          "handoff": "conformance grade + gaps (H1) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite whitepaper artifact with Merkle-root execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "model-passport-lifecycle",
      "domain": "Bank Capital & Credit Risk",
      "title": "Model Passport Lifecycle",
      "spec_version": "0.8.0",
      "wave": 73,
      "description": "Linear three-step chain building an SR 26-2 model passport. Step 1 registers a model-inventory record with a completeness score and proportionality tier (art-450). Step 2 backtests the model's period predicted-vs-actual outcomes against a caller-declared error tolerance (art-451). Step 3 determines the model's SR 26-2 validation status from its tier, last-validation date, and the outcome-analysis result, applying a tier-based revalidation cadence (art-453), which also carries a terminal §27 review_required accountability gate on a restricted_use validation status.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/model-passport-lifecycle.html",
      "regulatory_refs": [
        "SR 26-2 (model risk management guidance, successor to SR 11-7)",
        "SR 11-7 (Guidance on Model Risk Management)"
      ],
      "steps": [
        {
          "tool_id": "art-450-model-inventory-entry",
          "handoff": "Model-inventory record with proportionality tier and completeness score. Passes to outcome-analysis backtest."
        },
        {
          "tool_id": "art-451-model-outcome-analysis",
          "handoff": "Predicted-vs-actual outcome backtest with pass/fail status against the declared breach-rate tolerance. Passes to validation-status determination."
        },
        {
          "tool_id": "art-453-model-validation-status",
          "handoff": "Final SR 26-2 validation status, days-since-validation, and next-due-in-days. Final stage.",
          "gate": {
            "input": "/validation_status",
            "rules": [
              {
                "op": "eq",
                "value": "restricted_use",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "review_required"
          }
        }
      ]
    },
    {
      "name": "model-risk-governance",
      "domain": "AI & Agent Governance",
      "title": "Model Risk & AI-Fairness Governance",
      "description": "EU AI Act risk classification > SR 11-7 MRM gap assessment > fair-lending bias testing > AI Act Art.9 risk-management system > AI-governance mandate.",
      "composer_url": "https://ainumbers.co/guides/model-risk-governance-composer.html",
      "steps": [
        {
          "tool_id": "327-eu-ai-act-risk-class-mapper",
          "handoff": "risk_tier and obligations feed Stage 2 MRM gap assessment"
        },
        {
          "tool_id": "451-sr11-7-model-risk-management-gap-assessor",
          "handoff": "mrm_gaps and severity feed Stage 3 fair-lending testing"
        },
        {
          "tool_id": "452-fair-lending-ai-bias-assessment",
          "handoff": "disparate_impact_metrics feed Stage 4 Art.9 RMS build"
        },
        {
          "tool_id": "333-eu-ai-act-article9-risk-mgmt-builder",
          "handoff": "Exports AI-governance Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "model-risk-lineage-pack",
      "domain": "Bank Capital & Credit Risk",
      "title": "Model Risk Lineage Pack",
      "description": "Single-node citation bundle that compiles a model's current model-passport-lifecycle (art-450 inventory tier, art-451 outcome analysis, art-453 validation status) and model-validation-cycle (art-488 replication diff, art-489 test battery) artifacts into one BCBS 239 SS II / RDARR-shaped document, cited by execution_hash and never recomputed. No new gate logic: the two source chains already carry their own gates, and this pack is a read-after-the-fact bundler, not a re-router. Each of the five stages is optional individually; zero-stages-cited is a legitimate empty state, never an error.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/model-risk-lineage-pack.html",
      "regulatory_refs": [
        "SR 26-2 (Revised Guidance on Model Risk Management, effective 2026-04-17, superseding SR 11-7)",
        "BCBS 239 (Principles for effective risk data aggregation and risk reporting), Principle Group II",
        "RDARR Guide Section 3.4(3) (attribute-level data-lineage informative context)"
      ],
      "steps": [
        {
          "tool_id": "art-562-compile-model-risk-lineage-pack",
          "handoff": "Cites the model-passport-lifecycle and model-validation-cycle artifacts' execution_hashes into one BCBS 239/RDARR-shaped bundle. Citation only: this pack does not re-run the model, re-derive the outcome analysis, or re-score the test battery, and it takes no position on validation sufficiency. Final stage."
        }
      ]
    },
    {
      "name": "model-validation-cycle",
      "domain": "Bank Capital & Credit Risk",
      "title": "Model Validation Replication Cycle",
      "description": "Two-step validation cycle over a declared model specification, its stated inputs and its reported outputs, routed in through the shipped workbook bridge. Step 1 recomputes the reported outputs independently and returns a per-record and aggregate tolerance diff with the failing segment named, so an independent party reruns the model offline and reaches the same verdict. Step 2 runs the deterministic-given-data battery -- discriminatory power, population and characteristic stability, back-test outcome against predicted, and calibration comparison -- each scored against policy-supplied thresholds. Step 1 is gated hold whenever replication does not succeed, including the honest not-replicable-as-specified verdict. Step 2 is gated dual_control(2) for validation sign-off, where counting distinct approver identities is what mechanically evidences that the validator is independent of the developer; a test breach holds the sign-off for review. The model owner is bound as a separate role on the subject artifact so owner and validator are named apart. This surface evidences replication and testing only. It states no validation opinion, no view on conceptual soundness or fitness for use, and no sufficiency claim under any supervisory model-risk guidance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/model-validation-cycle.html",
      "regulatory_refs": [
        "SR 11-7 Supervisory Guidance on Model Risk Management (superseded 2026-04-17 by SR 26-2)",
        "SR 26-2 Revised Guidance on Model Risk Management",
        "IFRS 9 and CECL expected-credit-loss model validation practice"
      ],
      "steps": [
        {
          "tool_id": "art-488-model-replication-diff",
          "handoff": "Replication verdict, per-record and aggregate tolerance diff and the failing segments feed the quantitative test battery",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "neq",
                "value": "replicated",
                "next": "end"
              }
            ],
            "default": "art-489-model-test-battery",
            "gate_policy": "hold"
          }
        },
        {
          "tool_id": "art-489-model-test-battery",
          "handoff": "Per-test pass or breach against the declared thresholds, each labelled with its standard name, closes the validation evidence bundle under dual control. Final stage.",
          "gate": {
            "input": "/tests_breached",
            "rules": [
              {
                "op": "gt",
                "value": 0,
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "dual_control",
            "gate_threshold": {
              "role": "approver",
              "threshold": 2
            }
          }
        }
      ]
    },
    {
      "name": "mortgage-agency-pricing-and-eligibility",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Mortgage Agency Pricing and Eligibility",
      "spec_version": "0.8.0",
      "wave": 38,
      "description": "Gated three-step chain: conforming loan limit check feeds agency eligibility matrix (gate: INELIGIBLE routes to non-conforming referral terminal step; ELIGIBLE continues to LLPA pricing stack). Determines agency deliverability and computes the LLPA cost grid for eligible loans. FHFA CLL 2026 + Fannie/Freddie DU/LPA eligibility + LLPA FNM-2025-11-01.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mortgage-agency-pricing-and-eligibility.html",
      "regulatory_refs": [
        "12 USC 1454/1717 (FHFA conforming loan limits)",
        "Fannie Mae Selling Guide B3-2-01 (DU eligibility)",
        "Freddie Mac Guide Ch.5100 (LPA eligibility)",
        "Fannie Mae LLPA Matrix effective 2025-11-01",
        "Fannie Mae Selling Guide B3-4.1-02; SEL-2023-07 FTHB waiver"
      ],
      "steps": [
        {
          "tool_id": "art-223-conforming-loan-limit",
          "handoff": "Conforming/super-conforming/jumbo classification feeds Step 2 agency eligibility check",
          "gate": {
            "input": "/classification",
            "rules": [
              {
                "op": "eq",
                "value": "jumbo",
                "next": "end"
              }
            ],
            "default": "art-222-agency-eligibility-matrix",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-222-agency-eligibility-matrix",
          "handoff": "Agency eligibility verdict -- gate routes INELIGIBLE to non-conforming referral, ELIGIBLE to LLPA pricing",
          "gate": {
            "input": "/eligible_flag",
            "rules": [
              {
                "op": "eq",
                "value": "INELIGIBLE",
                "next": "end"
              }
            ],
            "default": "art-221-llpa-stack"
          }
        },
        {
          "tool_id": "art-221-llpa-stack",
          "handoff": "LLPA pricing stack with table_version binding completes the agency pricing and eligibility report -- final stage"
        }
      ]
    },
    {
      "name": "mortgage-apr-accuracy-and-tolerance-cure",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Mortgage APR Accuracy and Tolerance Cure",
      "description": "Actuarial APR solve followed by TRID APR accuracy check and TRID fee tolerance cure calculation. Linear chain: computes APR, verifies it against disclosed APR within §1026.22(a) tolerance, then computes the cure amount required for any fee tolerance violation under §1026.19(e)(3).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mortgage-apr-accuracy-and-tolerance-cure.html",
      "regulatory_refs": [
        "Reg Z §1026.22(a) APR accuracy",
        "Reg Z §1026.19(e)(3) TRID fee tolerance",
        "Reg Z Appendix J actuarial APR"
      ],
      "steps": [
        {
          "tool_id": "art-215-reg-z-appendix-j-apr",
          "handoff": "apr_pct and converged flag feed Stage 2 APR accuracy check"
        },
        {
          "tool_id": "art-217-trid-apr-accuracy",
          "handoff": "verdict and within_tolerance feed Stage 3 tolerance cure calculation"
        },
        {
          "tool_id": "art-216-trid-tolerance-cure",
          "handoff": "cure_required and cure_amount complete the APR accuracy and tolerance cure report -- final stage"
        }
      ]
    },
    {
      "name": "mortgage-compliance-preflight",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Mortgage Compliance Preflight",
      "spec_version": "0.8.0",
      "description": "Gated four-step preflight: Reg Z threshold lookup -> TRID APR accuracy check (gate: exit on understated_violation) -> QM points-and-fees test (gate: exit on fail) -> QM APR-APOR spread classification. First live OCG gated chain using OCG §21.4 decision gates.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mortgage-compliance-preflight.html",
      "regulatory_refs": [
        "Reg Z §1026.22(a) APR accuracy",
        "Reg Z §1026.43(e)(3) QM points and fees",
        "Reg Z §1026.43(e)(2)(vi) QM APR-APOR spread",
        "Reg Z Appendix J actuarial APR"
      ],
      "steps": [
        {
          "tool_id": "art-220-reg-z-threshold-lookup",
          "handoff": "Version-pinned threshold tables feed downstream QM and TRID nodes"
        },
        {
          "tool_id": "art-217-trid-apr-accuracy",
          "handoff": "verdict feeds Stage 3 QM points-and-fees; understated_violation stops the chain",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "eq",
                "value": "understated_violation",
                "next": "end"
              }
            ],
            "default": "art-218-qm-points-and-fees"
          }
        },
        {
          "tool_id": "art-218-qm-points-and-fees",
          "handoff": "pass flag feeds Stage 4 QM spread; points-and-fees failure stops the chain",
          "gate": {
            "input": "/pass",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-219-qm-apr-apor-spread"
          }
        },
        {
          "tool_id": "art-219-qm-apr-apor-spread",
          "handoff": "qm_status and is_hpct complete the preflight report -- final stage"
        }
      ]
    },
    {
      "name": "mortgage-government-loan-fit",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Mortgage Government Loan Fit",
      "spec_version": "0.8.0",
      "wave": 38,
      "description": "Gated two-step government loan program router. First step surfaces the target loan program into output_payload (loan_program field). Gate routes VA program to VA funding fee and residual income calculation; all other programs (FHA and others) continue to FHA MIP eligibility and cost calculation. Both branches are reachable: VA path computes funding fee + 38 USC §3729 table; FHA/default path computes HUD 4000.1 MIP. Total function with mandatory default.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mortgage-government-loan-fit.html",
      "regulatory_refs": [
        "38 USC §3729 (VA funding fee)",
        "38 CFR Part 36 (VA home loans)",
        "VA Pamphlet 26-7 Ch.4 (residual income tables)",
        "12 USC 1709 (FHA §203(b))",
        "HUD Handbook 4000.1 §II.A.8 (MIP)",
        "HUD Mortgagee Letter 2023-05 (annual MIP rates)"
      ],
      "steps": [
        {
          "tool_id": "art-223-conforming-loan-limit",
          "handoff": "loan_program field (VA/FHA/Conventional) surfaces into output_payload; gate routes VA to funding-fee path, default to FHA MIP path",
          "gate": {
            "input": "/loan_program",
            "rules": [
              {
                "op": "eq",
                "value": "VA",
                "next": "art-225-va-funding-fee-residual"
              }
            ],
            "default": "art-224-fha-mip-eligibility",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-225-va-funding-fee-residual",
          "handoff": "VA funding fee (38 USC §3729) and residual income (Pamphlet 26-7 Ch.4) -- VA path final stage"
        },
        {
          "tool_id": "art-224-fha-mip-eligibility",
          "handoff": "FHA MIP eligibility and cost (HUD 4000.1, ML 2023-05) -- FHA/default path final stage"
        }
      ]
    },
    {
      "name": "mortgage-high-cost-and-hpml-screen",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Mortgage High-Cost and HPML Screen",
      "spec_version": "0.8.0",
      "wave": 39,
      "description": "Gated two-step consumer-protection screen: HOEPA high-cost trigger test (§1026.32(a)(1)) with gate on is_high_cost. If any HOEPA trigger fires, chain terminates (HOEPA restrictions are terminal). Otherwise proceeds to HPML escrow test (§1026.35). Covers the full Reg Z consumer-protection spectrum beyond the QM preflight.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mortgage-high-cost-and-hpml-screen.html",
      "regulatory_refs": [
        "Reg Z §1026.32(a)(1) HOEPA high-cost mortgage triggers",
        "Reg Z §1026.35(a)(1) HPML definition",
        "Reg Z §1026.35(b)(1)-(2) HPML escrow requirement and exemptions",
        "FR 2025-22773 (2026 HOEPA points-and-fees threshold, effective Jan 1, 2026)"
      ],
      "steps": [
        {
          "tool_id": "art-234-test-hoepa-high-cost",
          "handoff": "is_high_cost feeds HOEPA gate; if true any further HPML check is superseded by HOEPA restrictions",
          "gate": {
            "input": "/is_high_cost",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "art-235-test-hpml-escrow",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-235-test-hpml-escrow",
          "handoff": "is_hpml and escrow_required complete the consumer-protection screen"
        }
      ]
    },
    {
      "name": "mra-consent-order-closure-cycle",
      "domain": "Audit & Assurance",
      "title": "Consent-Order / MRA Remediation Closure Cycle",
      "description": "Single-stage register cycle over an institution's own consent-order Articles or MRA findings and its own remediation-status records. The register computes, per issue, milestone completeness (every committed milestone closed with evidence attached), evidence validity (delivered evidence type matches what the milestone itself declares it calls for), and overdue or on-track timing against each issue's own committed date, reusing the RO remediation-closure cycle's cutoff arithmetic unchanged. The rollup emits the closed human-accountability decision enum: auto_pass, review_required, escalate, or hold. hold and escalate route the register to an exception step naming the issue owner as reviewer; review_required routes to the compliance officer; and a fully closed register that reaches auto_pass still requires a named-human approval record rather than an automatic pass, because whether remediation was appropriate, timely, and sustainable is exactly the judgment the approval record exists to evidence, not to automate. The approver is bound to the institution's own MRA or consent-order response-owner role, named exactly as the order itself names it. The bundle evidences the institution's own basis for asserting closure; it does not itself satisfy a supervisor's own closure determination.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mra-consent-order-closure-cycle.html",
      "regulatory_refs": [
        "Interagency MRA / MRIA remediation-tracking practice (OCC, FRB, FDIC supervisory letters)",
        "Consent order / written agreement remediation-closure representations to the supervisor",
        "GAO-25-107721 sec. 10.18 (remediation completeness, validity and timeliness dimensions)"
      ],
      "steps": [
        {
          "tool_id": "art-533-mra-remediation-closure-register",
          "handoff": "Per-issue milestone completeness, evidence validity and overdue/on-track determinations, plus the rollup closed decision enum, close the closure-evidence bundle. Single stage.",
          "gate": {
            "input": "/decision/gate_policy",
            "rules": [
              {
                "op": "in",
                "value": ["auto_pass", "review_required", "escalate", "hold"],
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "dual_control",
            "gate_threshold": { "role": "approver", "threshold": 1 }
          }
        }
      ]
    },
    {
      "name": "multilateral-netting-settlement",
      "domain": "Corporate Treasury & FX",
      "title": "Multilateral Netting Settlement",
      "spec_version": "0.8.0",
      "wave": 44,
      "description": "Linear two-step chain for IHB settlement cycles. Step 1 computes N-entity corporate cash netting (gross positions to net positions to minimum settlement legs, BIS CPMI greedy algorithm). Step 2 allocates IHB overnight interest on the net settlement balances per OECD TP Guidelines 2022 Chapter X arm's-length rate, with ACT/360 day-count and per-member withholding tax. Corporate cash netting only -- NOT FICC clearing margin netting. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/multilateral-netting-settlement.html",
      "regulatory_refs": [
        "BIS CPMI Net Settlement Framework 2012 (greedy netting algorithm)",
        "OECD Transfer Pricing Guidelines 2022 Chapter X (financial transactions, IHB)",
        "SWIFT gpi SLA Framework (settlement leg efficiency)"
      ],
      "steps": [
        {
          "tool_id": "art-259-compute-multilateral-netting",
          "handoff": "Net entity positions, settlement legs, wire-count savings, netting_efficiency_pct. Emits entity_net_positions[] and settlement_legs[]. NOT FICC clearing margin netting."
        },
        {
          "tool_id": "art-260-allocate-ihb-interest",
          "handoff": "OECD TP arm's-length interest allocation on net settlement balances. Per-member gross_interest, withholding_amount, net_interest. Supports ACT/360, ACT/365, 30/360. Final stage."
        }
      ]
    },
    {
      "name": "muni-spending-exception-tracker-pack",
      "domain": "Public Finance & Government Payments",
      "title": "Muni Spending-Exception Tracker Pack",
      "description": "Evidence pack for a tax-exempt bond issue tracking its arbitrage-rebate spending exception under Treas. Reg. section 1.148-7. Stage 1 tests the declared expenditure schedule against the milestone dates of the elected exception, the 6-month, 18-month, or 24-month construction schedule including their reasonable-retainage variants, and gives each milestone exactly one verdict: MET, FAILED, or PENDING relative to a caller-declared evaluation date. Stage 2 assembles a shareable evidence bundle around that receipt and stamps the SPEC.md SIDECAR.1 tier label the caller's declared gate results qualify it for, minting no new trust claim. Every input is declared by the caller: the pack reads no trustee statement and no fund ledger, so it evidences whether the declared schedule satisfies the elected exception's milestones, never that the declared spending occurred. It does not compute the future-value arbitrage rebate itself, which is a separate tool, and it is not tax advice.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/muni-spending-exception-tracker-pack.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "PACKS-MUNI-1",
      "regulatory_basis_decided_at": "2026-08-08",
      "steps": [
        {
          "tool_id": "art-569-muni-arbitrage-spending-exception-checker",
          "handoff": "Stage 1, the milestone check. A declared expenditure schedule tested against the elected spending exception's milestone dates under Treas. Reg. section 1.148-7, calendar-computed from the issue date, with a per-milestone MET, FAILED, or PENDING verdict, an overall exception status, and the de minimis cap enforced as the lesser of 3 percent of gross proceeds or $150,000."
        },
        {
          "tool_id": "art-408-evidence-bundle-tier-labeler",
          "handoff": "Stage 2, the evidence bundle. The Stage 1 receipt's execution hash wrapped in a shareable bundle stamped with the SPEC.md SIDECAR.1 tier label the caller's declared gate results qualify it for. The label re-expresses declared gate outcomes and mints no new trust claim. Final stage."
        }
      ]
    },
    {
      "name": "mutual-nda-composer",
      "domain": "Document & Content Provenance",
      "title": "Mutual NDA Composer",
      "description": "Assembles a Common Paper Mutual NDA from Cover Page Key Terms, then binds a party's acceptance to the assembled artifact by its execution_hash, template_id, and vendored body_sha256.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/mutual-nda-composer.html",
      "steps": [
        {
          "tool_id": "art-276-mutual-nda-composer",
          "handoff": "assembled_markdown and contract_api (template_id, body_sha256, variable_map) feed the acceptance binder as the referenced artifact"
        },
        {
          "tool_id": "art-277-agreement-acceptance-binder",
          "handoff": "accepted_template_id, accepted_body_sha256, and referenced_execution_hash form the countersignable acceptance record"
        }
      ]
    },
    {
      "name": "nacha-ach-rules-compliance",
      "domain": "Cross-Border & Instant Payments",
      "title": "NACHA ACH Rules Compliance",
      "description": "ACH/NACHA message validation > NACHA ACH rule compliance checking: composite NACHA ACH rules compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/nacha-ach-rules-compliance.html",
      "steps": [
        {
          "tool_id": "07-ach-nacha-validator",
          "handoff": "ach_message_validation and format_errors feed Stage 2 NACHA rule compliance check"
        },
        {
          "tool_id": "224-nacha-ach-rule-compliance-checker",
          "handoff": "rule_compliance_status and violation_flags — final NACHA ACH compliance mandate"
        }
      ]
    },
    {
      "name": "nav-verification-pack",
      "domain": "Securities Settlement",
      "title": "NAV Verification Pack",
      "description": "Fund NAV recomputation from declared inputs > NAV-error materiality testing against a declared policy > fee-waiver-aware expense-ratio check as an independent rider: composite fund NAV verification pack for administrators and auditors.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/nav-verification-pack.html",
      "steps": [
        {
          "tool_id": "art-373-recompute-fund-nav",
          "handoff": "recomputed NAV per share, component breakdown, and input digests feed Stage 2 materiality testing and Stage 3 expense-ratio check"
        },
        {
          "tool_id": "art-374-test-nav-error-materiality",
          "handoff": "material/immaterial verdict and affected-period math complete the primary NAV-verification path"
        },
        {
          "tool_id": "art-375-compute-fund-expense-ratios",
          "handoff": "gross/net expense ratios and TER computed as an independent rider against the same declared accrual conventions as Stage 1, not sequential on Stage 2"
        }
      ]
    },
    {
      "name": "neobank-baas",
      "domain": "BaaS & Embedded Finance",
      "title": "Neobank & BaaS Launch Chain",
      "description": "Compare BaaS sponsor bank providers → assess PSD3/PSR2 transition impact and SCA requirements → simulate Verification of Payee outcomes → score APP fraud liability, risk, PSR reimbursement exposure, and fraud network propagation → run batch sanctions screening and PEP exposure check → classify seller onboarding, build KYC checklist, score sponsor bank readiness, and check card programme launch readiness. End-to-end neobank and BaaS programme compliance journey.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/neobank-baas.html",
      "steps": [
        {
          "tool_id": "152-baas-provider-comparator",
          "handoff": "provider_scores,sponsor_bank_recommendation,capability_gaps feed Stage 2 PSD3 transition"
        },
        {
          "tool_id": "168-baas-provider-comparison",
          "handoff": "feature_matrix,api_capability_gap,pricing_delta feed Stage 2 PSD3 transition"
        },
        {
          "tool_id": "343-psd3-psr2-transition-impact-assessor",
          "handoff": "transition_impact_score,sca_gap_items,timeline_risk feed Stage 2 SCA check"
        },
        {
          "tool_id": "414-psd3-sca-transition-checker",
          "handoff": "sca_compliance_status,exemption_applicability,rts_readiness feed Stage 3 VoP"
        },
        {
          "tool_id": "289-verification-of-payee-simulator",
          "handoff": "vop_match_rate,false_positive_rate,operational_cost feed Stage 4 APP fraud"
        },
        {
          "tool_id": "26-app-fraud-matrix",
          "handoff": "liability_decision,reimbursement_obligation,sending_psp_duty feed Stage 4 risk score"
        },
        {
          "tool_id": "322-app-scam-risk-assessor",
          "handoff": "scam_risk_score,warning_flag,intervention_type feed Stage 4 reimbursement split"
        },
        {
          "tool_id": "406-psr-app-reimbursement-liability-splitter",
          "handoff": "sending_psp_share,receiving_psp_share,claim_eligible feed Stage 4 fraud graph"
        },
        {
          "tool_id": "mms-03-app-fraud-graph",
          "handoff": "fraud_network_exposure,psr_cap_impact,propagation_depth feed Stage 5 screening"
        },
        {
          "tool_id": "43-batch-sanctions-screening",
          "handoff": "screened_counterparties,hit_count,review_list feed Stage 5 PEP check"
        },
        {
          "tool_id": "112-pep-sanctions-simulator",
          "handoff": "pep_exposure_score,sanctions_flags,risk_band feed Stage 6 onboarding"
        },
        {
          "tool_id": "149-seller-onboarding-classifier",
          "handoff": "jurisdiction_requirements,license_needed,passporting_available feed Stage 6 KYC"
        },
        {
          "tool_id": "114-kyc-document-checklist",
          "handoff": "kyc_doc_list,verification_steps,cdd_level feed Stage 6 sponsor bank"
        },
        {
          "tool_id": "162-sponsor-bank-readiness-scorer",
          "handoff": "readiness_score,gap_remediation,go_live_blockers feed Stage 6 card launch"
        },
        {
          "tool_id": "163-card-programme-launch-readiness-checker",
          "handoff": "launch_ready_flag,programme_checklist -- Exports neobank BaaS compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "nis2-entity-scope-and-obligations",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "NIS2 Entity Scope & Obligations",
      "description": "Determine NIS2 entity classification (Essential/Important/Out-of-scope), assess Article 21 cybersecurity risk-management measure maturity across all ten controls, and calculate maximum penalty exposure under Article 34 including mitigating-factor adjustment. Full chain exports a board-ready PDF with execution_hash.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/nis2-entity-scope-and-obligations.html",
      "steps": [
        {
          "tool_id": "art-141-nis2-entity-scope-classifier",
          "handoff": "Entity classification (Essential/Important/Out-of-scope) and penalty caps feed Art. 21 gap checker"
        },
        {
          "tool_id": "art-142-nis2-art21-gap-checker",
          "handoff": "Art. 21 compliance score and critical gaps feed penalty exposure calculator"
        },
        {
          "tool_id": "art-143-nis2-penalty-exposure-calculator",
          "handoff": "Maximum penalty exposure and mitigated estimate — board-ready export with execution_hash"
        }
      ]
    },
    {
      "name": "nis2-incident-and-supply-chain-readiness",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "NIS2 Incident Reporting & Supply-Chain Readiness",
      "description": "Score whether an operational event meets the NIS2 Article 23 significant-incident threshold (firing the 24h/72h/30-day reporting clocks), assess ICT vendor due-diligence posture against Art. 21(2)(d) and ENISA supply-chain guidance, and check Art. 20 management-body governance readiness including personal-liability risk flag. Terminal stage exports governance attestation with execution_hash.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/nis2-incident-and-supply-chain-readiness.html",
      "steps": [
        {
          "tool_id": "art-144-nis2-incident-significance-scorer",
          "handoff": "Incident significance verdict and reporting clocks feed ICT supply-chain diligence scorer"
        },
        {
          "tool_id": "art-145-nis2-ict-supply-chain-diligence-scorer",
          "handoff": "Vendor risk tier and remediation checklist feed governance readiness checker"
        },
        {
          "tool_id": "art-146-nis2-governance-readiness-checker",
          "handoff": "Governance grade and personal liability risk — governance attestation with execution_hash"
        }
      ]
    },
    {
      "name": "open-banking-api-lifecycle",
      "domain": "Open Banking / Open Finance",
      "title": "Open Banking API Lifecycle",
      "description": "Open Banking API explorer > VRP mandate/SEPA validation > consent compliance audit: composite open banking API lifecycle mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/open-banking-api-lifecycle.html",
      "steps": [
        {
          "tool_id": "10-open-banking-api-explorer",
          "handoff": "api_capabilities and endpoint_coverage feed Stage 2 VRP/SEPA mandate validation"
        },
        {
          "tool_id": "11-vrp-mandate-sepa-validator",
          "handoff": "vrp_mandate_terms and sepa_compliance feed Stage 3 consent compliance audit"
        },
        {
          "tool_id": "03-consent-compliance-auditor",
          "handoff": "consent_obligations and compliance_gaps — final open banking API mandate"
        }
      ]
    },
    {
      "name": "parametric-trigger-adjudication",
      "domain": "Insurance & Reinsurance",
      "title": "Parametric Trigger Adjudication",
      "spec_version": "0.8.0",
      "wave": 43,
      "description": "Gated two-step chain for parametric insurance trigger adjudication and cat bond term validation. Step 1 evaluates the parametric trigger (threshold / tiered / linear_index) and emits trigger_hit and payout_amount. Gate on /trigger_hit: if false (trigger not fired), the chain ends -- no payout, no bond validation needed. If true (default), Step 2 validates the cat bond trigger terms (attachment/exhaustion ordering, pro-rata arithmetic, layer position). Outputs a tamper-evident trigger receipt anchored at anchor.ainumbers.co/mcp for neutral dispute adjudication per IAIS ICP 19. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/parametric-trigger-adjudication.html",
      "regulatory_refs": [
        "ISO 11116:2023 (parametric insurance trigger methodology)",
        "ISDA/IAIS cat bond trigger definitions",
        "Swiss Re sigma 1/2024 (cat bond trigger types)",
        "IAIS ICP 19 (claims handling, neutral adjudication)",
        "NAIC catastrophe bond guidelines"
      ],
      "steps": [
        {
          "tool_id": "art-251-compute-parametric-trigger-payout",
          "handoff": "Trigger evaluation result including trigger_hit boolean, payout_amount, trigger_fraction, and trigger_receipt. Gate on /trigger_hit: false exits -- no payout triggered. Default (true): proceed to cat bond term validation.",
          "gate": {
            "input": "/trigger_hit",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-252-validate-cat-bond-trigger-terms"
          }
        },
        {
          "tool_id": "art-252-validate-cat-bond-trigger-terms",
          "handoff": "Cat bond layer position (BELOW_ATTACHMENT / WITHIN_LAYER / ABOVE_EXHAUSTION), pro-rata factor, and payout_amount. Final stage -- anchor both execution_hashes for a two-node trigger receipt."
        }
      ]
    },
    {
      "name": "payment-economics-benchmarking",
      "domain": "Card & Payment Economics",
      "title": "Payment Economics Benchmarking",
      "description": "Fee benchmark reporting > payment ROI business case > card economics optimisation: composite payment economics benchmarking mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/payment-economics-benchmarking.html",
      "steps": [
        {
          "tool_id": "12-fee-benchmark-report",
          "handoff": "fee_benchmark and competitive_positioning feed Stage 2 payment ROI business case"
        },
        {
          "tool_id": "46-payment-roi-business-case",
          "handoff": "roi_projection and payback_period feed Stage 3 card economics optimisation"
        },
        {
          "tool_id": "85-card-economics-optimizer",
          "handoff": "card_economics and composite_payment_economics_mandate — final payment economics mandate"
        }
      ]
    },
    {
      "name": "payment-operations-health",
      "domain": "Card & Payment Economics",
      "title": "Payment Operations Health",
      "description": "Payment journey mapping > real-time ops dashboard assessment > payment failure analysis > decline code decoding: composite payment operations health mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/payment-operations-health.html",
      "steps": [
        {
          "tool_id": "13-payment-journey-mapper",
          "handoff": "payment_journey and touchpoint_analysis feed Stage 2 real-time ops dashboard"
        },
        {
          "tool_id": "14-realtime-ops-dashboard",
          "handoff": "ops_metrics and sla_breaches feed Stage 3 payment failure analyser"
        },
        {
          "tool_id": "20-failure-analyser",
          "handoff": "failure_analysis and root_cause_categories feed Stage 4 decline code decoder"
        },
        {
          "tool_id": "22-decline-code-decoder",
          "handoff": "decline_code_breakdown and remediation_plan — final payment ops health mandate"
        }
      ]
    },
    {
      "name": "pd-lgd-covenant",
      "domain": "Bank Capital & Credit Risk",
      "title": "PD, LGD, EAD to Covenant Compliance",
      "description": "Credit risk parameter modelling > Basel RWA calculation > financial covenant compliance check.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pd-lgd-covenant.html",
      "steps": [
        {
          "tool_id": "198-pd-lgd-ead-modeller",
          "handoff": "pd, lgd, ead values feed T201 Basel RWA calculation"
        },
        {
          "tool_id": "201-basel-rwa-calculator",
          "handoff": "rwa_total and capital_requirement feed T199 covenant compliance"
        },
        {
          "tool_id": "199-financial-covenant-compliance-checker",
          "handoff": "Exports credit risk Policy Mandate -- final stage"
        }
      ]
    },
    {
  "name": "pe-waterfall-true-up-pack",
  "domain": "Audit & Assurance",
  "title": "PE Waterfall True-Up Pack",
  "description": "Evidence pack for a private equity fund distribution true-up between a general partner and its limited partners. The pack has one computational stage: a batch recompute of a standard four-tier distribution waterfall, return of capital, preferred return, GP catch-up, and residual carry split, run over caller-declared dated contribution and distribution cashflows and a caller-declared waterfall parameterization, then diffed tier by tier against a caller-supplied GP-reported allocation, with an overall verdict of MATCHES, DIVERGES, or INDETERMINATE and a matching verdict for every individual tier. The pack's evidence value comes from running that one stage twice: the GP's own distribution notice reports an allocation, and the LP side recomputes it independently over the identical declared cashflows and waterfall terms. Because the kernel is deterministic and every tier comparison is exact fixed-point arithmetic with no declared tolerance, two honest recomputations over the same inputs reach the identical execution hash, and each side can countersign a receipt of that recomputation under SPEC.md section 27.12, kernel-pinned and dated, with no relay and no shared registry between the fund and its investor. The receipt is evidence that both parties independently recomputed and signed the same result. It does not state or imply that the LP has approved the distribution, that the true-up is closed, or that a dispute over the underlying waterfall's terms is foreclosed. Every input, the cashflows and their dates and amounts, the preferred return rate and compounding basis, the GP catch-up and carry percentages, the tier structure, and the GP-reported allocation, is declared by the caller: the pack reads no fund administrator ledger and no capital account statement. ILPA's own reporting-template guidance is cited as dated gap evidence that GP-side reporting tooling was not designed for LP-side verification, not as a standard the pack certifies against.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/pe-waterfall-true-up-pack.html",
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "PACKS-WATERFALL-1",
  "regulatory_basis_decided_at": "2026-08-08",
  "steps": [
    {
      "tool_id": "art-567-pe-waterfall-lp-recompute",
      "handoff": "The waterfall recompute, run independently by the GP and the LP over the same declared batch of dated cashflows and the same declared waterfall parameterization, each diffed tier by tier against the GP's own reported allocation with no declared tolerance, exact fixed-point equality only. Every tier carries its own MATCHES, DIVERGES, or INDETERMINATE verdict, and the run carries one overall verdict of the same three values. Only the resulting execution hash, not any editorial reading of it, is what the two sides countersign."
    }
  ]
},
    {
      "name": "pharma-serialization-custody",
      "domain": "Supply-Chain Traceability",
      "title": "Pharma Serialization & Saleable-Returns Custody (DSCSA / EU FMD)",
      "description": "Verify DSCSA T3 + GS1 SGTIN and EPCIS event (art-112) → verify saleable returns against the original transaction (art-113) → assess suspect/illegitimate product and required FDA actions (art-114). Client-side, zero-egress alternative to a permissioned serialization consortium.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pharma-serialization-custody.html",
      "steps": [
        {
          "tool_id": "art-112-dscsa-transaction-statement-verifier",
          "handoff": "verified T3 + SGTIN feeds saleable-returns matching"
        },
        {
          "tool_id": "art-113-saleable-returns-verifier",
          "handoff": "return verdict feeds suspect-product assessment"
        },
        {
          "tool_id": "art-114-suspect-product-quarantine",
          "handoff": "Exports custody artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "pi-emi-authorisation",
      "domain": "BaaS & Embedded Finance",
      "title": "PI/EMI Authorisation — PSD2/PSRs",
      "description": "PI authorisation readiness > EMI capital requirements > PI own funds (PSD2 Art.9) > PSP safeguarding assessment > PSR APP reimbursement liability.",
      "composer_url": "https://ainumbers.co/guides/pi-emi-authorisation-composer.html",
      "steps": [
        {
          "tool_id": "404-payment-institution-authorisation-readiness-checker",
          "handoff": "readiness_gaps and business_volumes feed Stage 2 capital calc"
        },
        {
          "tool_id": "405-emi-capital-requirements-calculator",
          "handoff": "emi_capital_requirement and method_results feed Stage 3 own funds"
        },
        {
          "tool_id": "418-pi-own-funds-calculator",
          "handoff": "own_funds_requirement feeds Stage 4 safeguarding assessment"
        },
        {
          "tool_id": "269-psp-safeguarding-assessment",
          "handoff": "safeguarding_method and shortfall feed Stage 5 APP liability"
        },
        {
          "tool_id": "406-psr-app-reimbursement-liability-splitter",
          "handoff": "Exports composite PI/EMI authorisation Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "pillar-two-globe",
      "domain": "Bank Capital & Credit Risk",
      "title": "Pillar Two GloBE Minimum Tax",
      "description": "OECD Pillar Two GloBE end-to-end workflow: ETR per jurisdiction > top-up tax and QDMTT/IIR/UTPR allocation > safe harbour eligibility > GloBE Information Return (GIR).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pillar-two-globe.html",
      "steps": [
        {
          "tool_id": "473-globe-etr-jurisdiction-calculator",
          "handoff": "etr_by_jur and sbie_amounts feed Stage 2 top-up tax calc"
        },
        {
          "tool_id": "474-topup-tax-qdmtt-calculator",
          "handoff": "topup_amounts and qdmtt_allocation feed Stage 3 safe harbour check"
        },
        {
          "tool_id": "475-pillar-two-safe-harbour-checker",
          "handoff": "safe_harbour_flags feed Stage 4 GIR Builder"
        },
        {
          "tool_id": "476-gir-builder",
          "handoff": "Exports composite Pillar Two GloBE Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "pqc-audit-pack",
      "domain": "Post-Quantum Cryptography",
      "title": "PQC Migration Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the PQC protocol decision set (cry-04) -> Merkle-root audit receipt (cry-05) -> regulator/board-framed cover memo (ptg-01). The existing pqc-migration chain and the protocol chains feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity over PQC protocol artifacts (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite PQC audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "pqc-blockchain-risk",
      "domain": "Post-Quantum Cryptography",
      "title": "Blockchain / Stablecoin Quantum-Risk",
      "description": "CBOM inventory (499) -> blockchain/stablecoin signature-exposure classification (exposed-pubkey %, reuse, migration maturity) (ART-89) -> Merkle integrity (cry-04). Ties PQC to the suite's stablecoin/tokenization clusters.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-blockchain-risk.html",
      "steps": [
        {
          "tool_id": "499-crypto-asset-inventory-classifier",
          "handoff": "on-chain key/algorithm inventory (H1) feeds the risk classifier"
        },
        {
          "tool_id": "art-89-blockchain-quantum-risk-classifier",
          "handoff": "risk tier (H2) feeds the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite blockchain quantum-risk artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "pqc-fido-webauthn",
      "domain": "Post-Quantum Cryptography",
      "title": "FIDO2 / WebAuthn PQC Conformance",
      "description": "FIDO2/WebAuthn/COSE ML-DSA conformance vs IANA identifiers + CTAP2.3 (ART-88) -> audit receipt (cry-05). Credential crypto-suite migration; credential FORMAT/protocol conformance belongs to any future EUDI wave.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-fido-webauthn.html",
      "steps": [
        {
          "tool_id": "art-88-fido-pqc-conformance-checker",
          "handoff": "conformance verdict (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite FIDO PQC conformance artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "pqc-fit",
      "domain": "Post-Quantum Cryptography",
      "title": "PQC Timeline & Migration Fit Diagnostic",
      "description": "Single-node D0 diagnostic mapping a crypto estate to CNSA 2.0 / EU-2030 / G7 / DORA milestones. Routes to the existing pqc-migration chain (inventory/HNDL/roadmap/agility, tools 499-502) and to the new protocol chains.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-fit.html",
      "steps": [
        {
          "tool_id": "art-85-pqc-timeline-fit-diagnostic",
          "handoff": "readiness grade routes to pqc-migration (existing spine) / pqc-tls-pki / pqc-swift-iso20022 / pqc-fido-webauthn / pqc-blockchain-risk / pqc-hndl-protocol-plan / pqc-audit-pack"
        }
      ]
    },
    {
      "name": "pqc-hndl-protocol-plan",
      "domain": "Post-Quantum Cryptography",
      "title": "HNDL-Prioritised Protocol Migration Plan",
      "description": "CBOM inventory (499) -> HNDL quantum-risk scoring (500) -> TLS/PKI migration sequencing (ART-86) -> audit receipt (cry-05). Extends the inventory+HNDL data into an exposure-prioritised protocol plan -- the step beyond the existing pqc-migration roadmap chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-hndl-protocol-plan.html",
      "steps": [
        {
          "tool_id": "499-crypto-asset-inventory-classifier",
          "handoff": "classified assets (H1) feed the HNDL scorer"
        },
        {
          "tool_id": "500-hndl-quantum-risk-scorer",
          "handoff": "HNDL priority (H2) feeds the TLS/PKI planner"
        },
        {
          "tool_id": "art-86-tls-pki-migration-planner",
          "handoff": "exposure-prioritised protocol plan (H3) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite HNDL-protocol artifact with execution_hash (H4) -- final stage"
        }
      ]
    },
    {
      "name": "pqc-migration",
      "domain": "Post-Quantum Cryptography",
      "title": "Post-Quantum Cryptography Migration",
      "description": "End-to-end PQC migration: crypto asset inventory (NISTIR 8547) > HNDL quantum risk scoring > phased migration roadmap (FIPS 203/204/205) > crypto-agility readiness score.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-migration.html",
      "steps": [
        {
          "tool_id": "499-crypto-asset-inventory-classifier",
          "handoff": "classified_assets and algorithm_status feed Stage 2 HNDL risk scoring"
        },
        {
          "tool_id": "500-hndl-quantum-risk-scorer",
          "handoff": "hndl_priority per system feed Stage 3 roadmap"
        },
        {
          "tool_id": "501-pqc-migration-roadmap-builder",
          "handoff": "migration_phases and target_algorithms feed Stage 4 agility assessment"
        },
        {
          "tool_id": "502-crypto-agility-readiness-scorer",
          "handoff": "Exports composite PQC migration Policy Mandate -- final stage"
        }
      ]
    },
    {
  "name": "pqc-migration-evidence",
  "domain": "Post-Quantum Cryptography",
  "title": "PQC Migration Evidence Workflow",
  "description": "Structural CBOM lint and CNSA-2.0 classification feeding a per-row CNSA-2.0 deadline calculation: two receipts binding a declared cryptography inventory to its asserted quantum-vulnerable findings and its migration deadlines.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-migration-evidence.html",
  "steps": [
    {
      "tool_id": "art-386-lint-cbom-structure",
      "handoff": "Components classified quantum_vulnerable or cnsa2_ready feed Stage 2 as declared inventory rows -- asset_type mapped from each finding's primitive (key-encapsulation/key-establishment -> key-establishment, signature -> signature), system_class and deployment_date supplied per system alongside the CBOM."
    },
    {
      "tool_id": "art-387-pqc-deadline-ladder-calculator",
      "handoff": "Returns the applicable CNSA-2.0 deadline, days remaining, earliest binding constraint, and FIPS 140-2 Historical-list exposure flag per inventory row -- the terminal migration-evidence receipt."
    }
  ]
},
    {
      "name": "pqc-swift-iso20022",
      "domain": "Post-Quantum Cryptography",
      "title": "SWIFT / ISO 20022 PQC Readiness",
      "description": "HNDL quantum-risk prioritisation (500) -> SWIFT/ISO 20022 PQC readiness + BAH signature-bloat sizing per BIS Leap Phase 2 (ART-87) -> Merkle integrity (cry-04). Sizes the ~12.9x payload growth against message limits.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-swift-iso20022.html",
      "steps": [
        {
          "tool_id": "500-hndl-quantum-risk-scorer",
          "handoff": "HNDL priority per flow (H1) feeds the readiness checker"
        },
        {
          "tool_id": "art-87-iso20022-pqc-readiness-checker",
          "handoff": "readiness + size-breach flags (H2) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite ISO 20022 readiness artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "pqc-tls-pki",
      "domain": "Post-Quantum Cryptography",
      "title": "TLS / X.509 PKI PQC Migration Plan",
      "description": "CBOM inventory (499) -> TLS + PKI migration sequencing, hybrid vs composite strategy (ART-86) -> Merkle integrity (cry-04). The PKI protocol-migration workhorse, built on the live inventory tool.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/pqc-tls-pki.html",
      "steps": [
        {
          "tool_id": "499-crypto-asset-inventory-classifier",
          "handoff": "classified PKI-relevant assets (H1) feed the planner"
        },
        {
          "tool_id": "art-86-tls-pki-migration-planner",
          "handoff": "sequenced plan (H2) feeds the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite TLS/PKI plan artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "producer-license-reciprocity",
      "domain": "Financial Crime & KYC",
      "title": "Producer License Reciprocity",
      "spec_version": "0.8.0",
      "wave": 45,
      "description": "Linear one-step chain checking NAIC producer license reciprocity for non-resident filing across target states. Identifies non-standard states (CA, FL, NJ, NY, HI, MN, WI) requiring independent filing, background checks, or state exams outside the standard reciprocity path. Per NAIC MDL-218 and NIPR Reciprocity Matrix 2024. State codes and LOA enum inputs only. Zero PII by construction.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/producer-license-reciprocity.html",
      "regulatory_refs": [
        "NAIC Producer Licensing Model Act (MDL-218)",
        "NIPR Non-Resident Uniform Application Reciprocity Matrix 2024"
      ],
      "steps": [
        {
          "tool_id": "art-267-check-producer-license-reciprocity",
          "handoff": "NAIC reciprocity check: all_reciprocal (bool), non_standard_states[], coverage_by_target[] with per-state reciprocal flag and LOA gaps. Final stage."
        }
      ]
    },
    {
      "name": "psd3-psr2-transition",
      "domain": "Open Banking / Open Finance",
      "title": "PSD3 / PSR2 Transition Planning",
      "description": "EU IPR ISO20022 address validation > PSD3/PSR2 transition impact assessment > SCA exemption mapping > VRP mandate builder: composite PSD3 transition mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/psd3-psr2-transition.html",
      "steps": [
        {
          "tool_id": "342-eu-ipr-iso20022-address-validator",
          "handoff": "address_validation_errors and iso20022_ipr_compliance feed Stage 2 PSD3 impact assessment"
        },
        {
          "tool_id": "343-psd3-psr2-transition-impact-assessor",
          "handoff": "psd3_impact_score and compliance_gaps feed Stage 3 SCA exemption mapping"
        },
        {
          "tool_id": "92-sca-exemption-mapper",
          "handoff": "sca_exemption_options and liability_shift feed Stage 4 VRP mandate builder"
        },
        {
          "tool_id": "93-vrp-mandate-builder",
          "handoff": "vrp_mandate_terms and composite_psd3_mandate — final PSD3/PSR2 transition mandate"
        }
      ]
    },
    {
      "name": "psr-app-fraud-reimbursement",
      "domain": "Fraud & Dispute",
      "title": "PSR APP Fraud Reimbursement",
      "description": "PSR reimbursement workflow building > fraud-score simulation > payment failure analysis: composite PSR APP fraud reimbursement mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/psr-app-fraud-reimbursement.html",
      "steps": [
        {
          "tool_id": "257-psr-reimbursement-workflow-builder",
          "handoff": "reimbursement_workflow and eligibility_criteria feed Stage 2 fraud score simulation"
        },
        {
          "tool_id": "04-fraud-score-simulator",
          "handoff": "fraud_score and detection_confidence feed Stage 3 payment failure analyser"
        },
        {
          "tool_id": "20-failure-analyser",
          "handoff": "failure_analysis and composite_psr_mandate — final PSR APP fraud reimbursement mandate"
        }
      ]
    },
    {
      "name": "public-money-settlement-receipt",
      "domain": "Public Finance & Government Payments",
      "title": "Public-Money Settlement Receipt",
      "description": "A payment of public money reconciles from payer to the correct government revenue line (art-513), with its finality (art-492) and settlement-asset legal-finality class (art-59) classified. Where the receipt actually declares a settlement currency, a multi-currency PvP atomicity check runs (511); where that PvP leg is not itself a Canton/DLT-native leg, an ISO 20022 address-migration check runs on the messaging leg (rca-03). GATED (OCG Standard v0.8 §21.4): gate 1 on art-513's own /currency (a receipt with no declared currency has nothing further to classify or PvP-check, so the automated path ends); gate 2 on 511's own /has_canton_leg (a Canton-native PvP leg does not carry an ISO 20022 message, so rca-03 does not apply). Portable to any government payment platform, any treasury-single-account regime, any supreme audit institution -- not specific to any one jurisdiction, ministry or vendor.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/public-money-settlement-receipt.html",
      "regulatory_refs": [
        "CPMI-IOSCO PFMI Principle 12 (PvP settlement)",
        "EU Settlement Finality Directive 98/26/EC",
        "UCC Article 12 (controllable electronic records, 2022 amendments)",
        "ISO 20022 pacs.008.001.10"
      ],
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "INBOUND-PMR-CHAIN-1",
      "regulatory_basis_decided_at": "2026-08-01",
      "steps": [
        {
          "tool_id": "art-513-public-money-settlement-receipt",
          "handoff": "Single-settlement, attribution and at-par verdicts. Gate: a declared /currency continues to finality classification; no declared currency means there is nothing further to classify, and the automated path ends.",
          "gate": {
            "input": "/currency",
            "rules": [
              {
                "op": "neq",
                "value": null,
                "next": "art-492-classify-settlement-finality"
              }
            ],
            "default": "end"
          }
        },
        {
          "tool_id": "art-492-classify-settlement-finality",
          "handoff": "Rail-agnostic settlement-finality tier feeds the settlement-asset legal-finality classification."
        },
        {
          "tool_id": "art-59-settlement-asset-finality-classifier",
          "handoff": "Settlement-asset legal-finality tier and singleness verdict feed the multi-currency PvP check."
        },
        {
          "tool_id": "511-multi-currency-pvp-validator",
          "handoff": "PFMI Principle 12 atomicity and Herstatt-risk verdict for the currency leg. Gate: a Canton/DLT-native leg carries no ISO 20022 message and ends here; any other leg continues to the address-migration check.",
          "gate": {
            "input": "/has_canton_leg",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "rca-03-iso20022-address-migration-verifier"
          }
        },
        {
          "tool_id": "rca-03-iso20022-address-migration-verifier",
          "handoff": "ISO 20022 pacs.008 Nov-2026 address-field readiness verdict for the messaging leg -- final stage."
        }
      ]
    },
    {
      "name": "qfc-recordkeeping-cycle",
      "domain": "Audit & Assurance",
      "title": "QFC Part 371 Recordkeeping Cycle",
      "description": "Single-stage cycle over an institution's own 12 CFR part 371 qualified-financial-contract position, counterparty, and collateral file. The validator checks the file's shape against the appendix's published record layout and ties the file's declared totals to a supplied control-total summary, reporting a shape defect and a totals mismatch as two separate, never-merged findings. The rollup emits the closed decision enum: auto_pass, review_required, or escalate (did_not_run when no control-total summary is supplied). A file nonconformance routes the finding to internal audit as reviewer; the daily-capability recordkeeping check closes with a preparer/reviewer pair rather than a named external approver, since this is an internal standing test rather than a supervisor-facing filing -- an approver role binding stays available where the institution runs this co-sourced. The bundle evidences the institution's own basis for asserting part 371 recordkeeping conformance; it is not a filing and offers no advice on whether a contract is in fact a covered QFC.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/qfc-recordkeeping-cycle.html",
      "regulatory_refs": [
        "12 CFR part 371 (Qualified Financial Contract Recordkeeping) and its appendix record layouts",
        "GAO-25-107721 sec. 10.18 (recordkeeping completeness, validity and timeliness dimensions)"
      ],
      "steps": [
        {
          "tool_id": "art-537-qfc-recordkeeping-file-validator",
          "handoff": "File-shape validation against the part 371 appendix record layout plus a control-total tie-out, and the rollup closed decision enum, close the recordkeeping-conformance evidence pack. Single stage.",
          "gate": {
            "input": "/decision/gate_policy",
            "rules": [
              {
                "op": "in",
                "value": ["auto_pass", "review_required", "escalate", "did_not_run"],
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "review_required"
          }
        }
      ]
    },
    {
      "name": "rdarr-attestation-cycle",
      "domain": "Bank Capital & Credit Risk",
      "title": "RDARR Management-Body Attestation Cycle",
      "description": "Two-step attestation cycle for risk data aggregation and risk reporting. The attestation is the deliverable: step 1 re-derives a stated risk-report figure from a declared tabular extract under a declared aggregation policy, so the signature is backed by a recomputed number rather than a self-assessment; step 2 scores the deterministic quality metrics against policy-supplied thresholds, each labelled with its ECB Guide prerequisite area. Step 1 is gated review_required when any source line is excluded from the recompute, with the risk-data owner as reviewer. Step 2 is gated dual_control(2) for periodic attestation release, with one of the two distinct approver identities bound to a management-body role. The recompute is evidence for the institution's own internal attestation; it is not a supervisory submission and carries no supervisory pass mark.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rdarr-attestation-cycle.html",
      "regulatory_refs": [
        "ECB Guide on effective risk data aggregation and risk reporting (3 May 2024)",
        "BCBS 239 Principles for effective risk data aggregation and risk reporting"
      ],
      "steps": [
        {
          "tool_id": "art-480-rdarr-aggregation-recompute",
          "handoff": "Recomputed figure, signed delta against the reported figure, and the per-level contribution breakdown localise a break to one roll-up node; the same extract feeds the quality scorecard",
          "gate": {
            "input": "/lines_excluded",
            "rules": [
              {
                "op": "gt",
                "value": 0,
                "next": "art-481-rdarr-quality-scorecard"
              }
            ],
            "default": "art-481-rdarr-quality-scorecard",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-481-rdarr-quality-scorecard",
          "handoff": "Per-metric pass/breach plus an overall scorecard status, each metric labelled by ECB Guide prerequisite area, released under dual control into the accountability evidence bundle for the cycle. Final stage.",
          "gate": {
            "input": "/scorecard/overall_status",
            "rules": [
              {
                "op": "eq",
                "value": "breach",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "dual_control",
            "gate_threshold": {
              "role": "approver",
              "threshold": 2
            }
          }
        }
      ]
    },
    {
      "name": "reg-w-23a-23b-testing-cycle",
      "domain": "Audit & Assurance",
      "title": "Reg W 23A/23B Affiliate-Transaction Testing Cycle",
      "description": "Single-stage standing internal-audit test cycle over an institution's own caller-declared population of covered transactions with an affiliate. Per transaction, tests the Regulation W (12 CFR 223, eCFR 2026 codification) 10% single-affiliate and 20% aggregate-affiliate capital limits and the collateral-coverage percentage requirement on covered credit transactions; the qualitative 12 CFR 223.51 market-terms test is a caller-declared boolean the tester records for the artifact only, never a judgment it makes. Capital base, both limit percentages, and the collateral-coverage percentage all arrive as caller-declared policy_parameters cited with a required policy_vintage, never hardcoded. Either quantitative limit breached routes the standing test to internal audit as reviewer (escalate); a collateral shortfall with no capital breach flags review_required; both limits satisfied and full collateral coverage closes auto_pass. The standing internal-audit test-evidence pack closes with a preparer/reviewer pair rather than necessarily a named external approver, since these are internal standing tests, distinct from an externally-facing sign-off; where the institution runs this co-sourced an approver role binding is still available. This tool tracks and evidences the quantitative test only; it never itself determines that a transaction was conducted on market terms.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/reg-w-23a-23b-testing-cycle.html",
      "regulatory_refs": [
        "12 CFR 223 (Regulation W), eCFR 2026 codification: 10%/20% affiliate capital limits (223.11/223.12), collateral-coverage requirement on covered credit transactions (223.14), market-terms test (223.51)"
      ],
      "steps": [
        {
          "tool_id": "art-536-reg-w-affiliate-transaction-tester",
          "handoff": "Per-affiliate and aggregate capital-limit test results, collateral-coverage test results, and the caller-declared market-terms declarations, plus the rollup closed decision enum, close the internal-audit test-evidence pack. Single stage.",
          "gate": {
            "input": "/decision",
            "rules": [
              {
                "op": "eq",
                "value": "escalate",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "review_required"
          }
        }
      ]
    },
    {
      "name": "regrpt-submission-cycle",
      "domain": "Bank Capital & Credit Risk",
      "title": "Regulatory Report Submission Cycle (Published Edit Checks)",
      "description": "Two-step pre-submission cycle over a report instance and a freely published rule set. Step 1 evaluates the instance against policy-supplied validity and quality edits, keyed by the published edit identifier, and records which deactivated rules were suppressed so a stood-down rule cannot produce a false failure. Step 2 computes period-over-period variance per line item against policy-supplied materiality thresholds and flags which movements require a written explanation. Step 1 is gated hold on any hard-rule failure, and in that state the cycle stops before a submission bundle is produced. Step 2 is gated dual_control(2) for filing release, satisfied by a preparer and a distinct signing-officer approver; a flagged material movement carrying no explanation annotation holds the release for review, and the submitter identity is recorded separately at transmission. The bundle is the filer's own evidence and does not satisfy any issuer's submission requirement.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/regrpt-submission-cycle.html",
      "regulatory_refs": [
        "FFIEC Call Report validation criteria (validity and quality edits)",
        "EBA implementing technical standards validation-rules list"
      ],
      "steps": [
        {
          "tool_id": "art-484-regrpt-editcheck-runner",
          "handoff": "Per-rule pass/fail keyed by the published edit identifier, with failing cell references and computed-versus-reported values, feeds the variance stage",
          "gate": {
            "input": "/summary/overall_pass",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-485-regrpt-variance-explainer",
            "gate_policy": "hold"
          }
        },
        {
          "tool_id": "art-485-regrpt-variance-explainer",
          "handoff": "Ranked material movements and the explained/unexplained split close the submission-evidence bundle under dual control. Final stage.",
          "gate": {
            "input": "/summary/all_material_explained",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "dual_control",
            "gate_threshold": {
              "role": "approver",
              "threshold": 2
            }
          }
        }
      ]
    },
    {
      "name": "regulatory-impact",
      "domain": "Financial Crime & KYC",
      "title": "Regulatory Impact to Policy Mandate",
      "description": "Regulatory change impact assessment > NIS2/DORA overlap mapping > AP2 DORA Policy Mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/regulatory-impact.html",
      "steps": [
        {
          "tool_id": "318-regulatory-change-impact-assessor",
          "handoff": "impact_domains and change_timeline feed T309 NIS2/DORA overlap map"
        },
        {
          "tool_id": "309-nis2-dora-overlap-mapper",
          "handoff": "overlap_matrix and dual_obligations feed T310 policy mandate build"
        },
        {
          "tool_id": "310-ap2-dora-policy-mandate-builder",
          "handoff": "Exports regulatory impact Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "reinsurance-catastrophe",
      "domain": "Insurance & Reinsurance",
      "title": "Reinsurance & Catastrophe Risk",
      "description": "Reinsurance burning-cost pricing > parametric trigger design > cyber accumulation modelling > P&C combined-ratio analysis: composite reinsurance risk mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/reinsurance-catastrophe.html",
      "steps": [
        {
          "tool_id": "456-reinsurance-burning-cost-pricer",
          "handoff": "burning_cost_price and loss_load feed Stage 2 parametric trigger design"
        },
        {
          "tool_id": "458-parametric-trigger-designer",
          "handoff": "parametric_terms and trigger_calibration feed Stage 3 cyber accumulation model"
        },
        {
          "tool_id": "461-cyber-insurance-accumulation-modeler",
          "handoff": "cyber_accumulation_limits and correlation feed Stage 4 P&C combined-ratio analysis"
        },
        {
          "tool_id": "455-pc-combined-ratio-analyzer",
          "handoff": "combined_ratio and reinsurance_adequacy — final reinsurance risk mandate"
        }
      ]
    },
    {
      "name": "remittance-disclosure-and-corridor-cost",
      "domain": "Cross-Border & Instant Payments",
      "title": "Remittance Disclosure and Corridor Cost",
      "spec_version": "0.8.0",
      "wave": 42,
      "description": "Gated two-step chain for Reg E remittance disclosure and corridor cost benchmarking. Step 1 computes the required CFPB Reg E subpart B (12 CFR 1005.31/1005.32) disclosure fields and emits estimate_permissible. Gate on /estimate_permissible: if true (12 CFR 1005.32 estimated disclosure applies), the chain ends at the disclosure receipt -- no corridor benchmarking required. If false (exact disclosure, default path), Step 2 runs compare_corridor_cost to benchmark total cost (fee % + FX margin %) against the World Bank RPW Q1 2026 snapshot and SDG 10.c 3% target. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/remittance-disclosure-and-corridor-cost.html",
      "regulatory_refs": [
        "12 CFR 1005.31 (CFPB Reg E subpart B, required disclosure fields)",
        "12 CFR 1005.32 (CFPB Reg E, estimate permissibility conditions)",
        "12 CFR 1005.33 (CFPB Reg E, error resolution)",
        "World Bank Remittance Prices Worldwide (RPW) Q1 2026",
        "SDG 10.c <=3% target (UN 2030 Agenda)"
      ],
      "steps": [
        {
          "tool_id": "art-248-compute-remittance-disclosure",
          "handoff": "Reg E disclosure fields including estimate_permissible. Gate: estimate_permissible=true exits with ESTIMATED disclosure (12 CFR 1005.32 path). Default: proceed to corridor cost benchmarking.",
          "gate": {
            "input": "/estimate_permissible",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "art-249-compare-corridor-cost"
          }
        },
        {
          "tool_id": "art-249-compare-corridor-cost",
          "handoff": "Corridor cost vs RPW benchmark, SmaRT average, and SDG 10.c target. Includes meets_sdg_target and cost_at_200_usd/cost_at_500_usd. Final stage."
        }
      ]
    },
    {
      "name": "reputation-score-aggregate",
      "domain": "AI & Agent Governance",
      "title": "Provable Reputation Score Aggregate",
      "description": "Single-node diagnostic aggregating OCG execution receipts into a deterministic, groth16-provable reputation score: exponential decay, self-issued exclusion, dedupe.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/reputation-score-aggregate.html",
      "steps": [
        {
          "tool_id": "art-278-reputation-score-aggregator",
          "handoff": "composite and per-dim scores feed the subject's trust record; standalone recurring aggregation over the growing receipt set"
        }
      ]
    },
    {
      "name": "reserve-proof-verification",
      "domain": "Verification & Proof Receipts",
      "title": "Reserve Proof Verification",
      "description": "Single-node D0 diagnostic verifying a Merkle-sum Proof-of-Reserves customer-inclusion proof against a declared root, plus a Chainlink PoR / NAVLink round staleness and deviation check.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/reserve-proof-verification.html",
      "steps": [
        {
          "tool_id": "art-280-reserve-proof-verifier",
          "handoff": "reserve_proof_determination and not_proven feed the issuer or auditor compliance record; composes with VR-1 (verify_eth_state_proof) when an on-chain storage proof is available; standalone otherwise"
        }
      ]
    },
    {
      "name": "retirement-decumulation-decisions",
      "domain": "Consumer & Wealth Compliance",
      "title": "Retirement Decumulation Decisions",
      "description": "Social Security claiming-age optimization paired with the pension lump-sum-vs-annuity decision engine.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/retirement-decumulation-decisions.html",
      "steps": [
        {
          "tool_id": "art-282-social-security-claiming-optimizer",
          "handoff": "recommendedClaimAge and lifetimePV establish the claimant's decumulation income baseline used alongside the pension lump-sum-vs-annuity comparison"
        },
        {
          "tool_id": "art-283-pension-lump-sum-vs-annuity-decision-engine",
          "handoff": "annuityPV, breakEvenRate, and recommendation form the paired decumulation decision record; terminal stage"
        }
      ]
    },
    {
      "name": "rhc-ap-redemption-stress",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain AP Redemption Stress",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Single-step chain stress-testing the economic-exposure claim for Robinhood Chain stock tokens against Authorised Participant concentration and redemption-path reachability.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-ap-redemption-stress.html",
      "regulatory_refs": [
        "docs.robinhood.com/chain/stock-tokens (Authorised Participant / KYB)"
      ],
      "steps": [
        {
          "tool_id": "art-322-rhc-ap-redemption-stress",
          "handoff": "concentration_risk, redemption_path, and structural_dependencies feed the stress record."
        }
      ]
    },
    {
      "name": "rhc-bold-finality-classification",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain BoLD Finality Classification",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Gated two-step chain classifying settlement finality on Robinhood Chain. Step 1 classifies the underlying settlement asset finality, step 2 classifies the BoLD challenge-window state. Gate on /claim_verdict: overstated routes to a false-finality-claim flag, default proceeds to the finality class record.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-bold-finality-classification.html",
      "regulatory_refs": [
        "Arbitrum BoLD (interactive fraud proofs)",
        "Arbitrum Orbit dedicated blockchain"
      ],
      "steps": [
        {
          "tool_id": "art-59-settlement-asset-finality-classifier",
          "handoff": "settlement asset finality classification feeds the BoLD challenge-window check."
        },
        {
          "tool_id": "art-321-rhc-bold-finality-classifier",
          "handoff": "finality_class, earliest_final_at, and claim_verdict are the chain output.",
          "gate": {
            "input": "/claim_verdict",
            "rules": [
              {
                "op": "eq",
                "value": "OVERSTATED",
                "next": "end"
              }
            ],
            "default": "end"
          }
        }
      ]
    },
    {
      "name": "rhc-collateral-haircut",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain Collateral Haircut",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Gated three-step chain for accepting Robinhood Chain stock tokens as collateral. Step 1 checks tokenized-collateral eligibility, step 2 computes the base repo haircut, step 3 layers the feed-staleness, sequencer-downtime, and underlying-halt haircut. Gate on /liquidation_risk: blocked halts the chain at the liquidation-risk verdict, default proceeds to the adjusted collateral value.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-collateral-haircut.html",
      "regulatory_refs": [
        "BCBS d349/SCO60 (HQLA)",
        "Chainlink staleness + Arbitrum sequencer-uptime best practice"
      ],
      "steps": [
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "DTC/Fed eligibility and Basel HQLA tier feed the repo haircut base."
        },
        {
          "tool_id": "508-repo-haircut-collateral-calculator",
          "handoff": "base_haircut feeds the staleness/halt haircut layer."
        },
        {
          "tool_id": "art-320-rhc-collateral-haircut",
          "handoff": "final_haircut, adjusted_collateral_value, and liquidation_risk are the chain output.",
          "gate": {
            "input": "/liquidation_risk",
            "rules": [
              {
                "op": "eq",
                "value": "blocked",
                "next": "end"
              }
            ],
            "default": "end"
          }
        }
      ]
    },
    {
      "name": "rhc-fit",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain Fit Diagnostic",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Single-node entry-point diagnostic grading a firm A-F across four Robinhood Chain adoption paths (stock-token application, collateral venue, index/basket, agent-settlement) and routing to the relevant RHC verification chains.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-fit.html",
      "regulatory_refs": [
        "docs.robinhood.com/chain/stock-tokens",
        "docs.robinhood.com/chain/building-with-stock-tokens"
      ],
      "steps": [
        {
          "tool_id": "art-323-rhc-fit-diagnostic",
          "handoff": "path_scores and routed_workflows route to rhc-multiplier-reconciliation / rhc-regime-mapping / rhc-valuation-lint / rhc-collateral-haircut / rhc-bold-finality-classification / rhc-ap-redemption-stress chains"
        }
      ]
    },
    {
      "name": "rhc-multiplier-reconciliation",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain Multiplier Reconciliation",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Single-step chain reconciling a declared Robinhood Chain stock-token corporate action against its ERC-8056 uiMultiplier transition, event log, and raw-balance invariance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-multiplier-reconciliation.html",
      "regulatory_refs": [
        "ERC-8056 (scaled UI amount)",
        "docs.robinhood.com/chain/stock-tokens"
      ],
      "steps": [
        {
          "tool_id": "art-317-rhc-multiplier-reconciler",
          "handoff": "verdict, ratio_match, raw_balance_invariant, and discrepancies feed the reconciliation record."
        }
      ]
    },
    {
      "name": "rhc-regime-mapping",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain Regime Mapping",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Single-step chain mapping the regulatory regime implied by a Robinhood Chain stock-token characterization, inverting the MiCA/GENIUS assumption that applies to the estate's other digital-asset-rail chains.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-regime-mapping.html",
      "regulatory_refs": [
        "MiCA Art. 2(4)(a)",
        "MiFID II transferable securities",
        "Jersey company law"
      ],
      "steps": [
        {
          "tool_id": "art-318-rhc-regime-mapper",
          "handoff": "regime_tree, mica_carveout_applies, and us_persons_gate_violated feed the regime record."
        }
      ]
    },
    {
      "name": "rhc-valuation-lint",
      "domain": "Digital-Asset Rails",
      "title": "Robinhood Chain Valuation Lint",
      "spec_version": "0.8.0",
      "wave": 56,
      "description": "Single-step chain linting a Robinhood Chain stock-token USD valuation expression for the corporate-action double-count bug against the Chainlink 8-decimal feed.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rhc-valuation-lint.html",
      "regulatory_refs": [
        "Chainlink AggregatorV3Interface",
        "docs.robinhood.com/chain/building-with-stock-tokens"
      ],
      "steps": [
        {
          "tool_id": "art-319-rhc-valuation-linter",
          "handoff": "verdict, correct_value, and corrected_expression feed the lint record."
        }
      ]
    },
    {
      "name": "rtp-participation",
      "domain": "Cross-Border & Instant Payments",
      "title": "Real-Time Rail Participation",
      "description": "Score FedNow/RTP participation readiness, check network rules, size intraday credit, and build the AP2 policy mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/rtp-participation.html",
      "steps": [
        {
          "tool_id": "255-fednow-participation-readiness-scorer",
          "handoff": "readiness_score and gap_items feed T229 RTP network rule check"
        },
        {
          "tool_id": "229-rtp-network-participation-checker",
          "handoff": "rule_compliance and membership_flags feed T258 intraday credit sizing"
        },
        {
          "tool_id": "258-intraday-credit-facility-sizer",
          "handoff": "credit_requirement and peak_exposure feed T259 AP2 policy build"
        },
        {
          "tool_id": "259-ap2-rtp-policy-builder",
          "handoff": "Exports RTP participation Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "sanctions-audit-pack",
      "domain": "Sanctions",
      "title": "Sanctions & Export-Control Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the screening decision set (cry-04) -> Merkle-root audit receipt (cry-05) -> regulator/auditor-framed cover memo (ptg-01). Other chains feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sanctions-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "sanctions-fit",
      "domain": "Sanctions",
      "title": "Sanctions & Export-Control Screening Fit Diagnostic",
      "description": "Single-node D0 diagnostic scoping a firm's screening/export-control program and routing to the right sanctions/export-control chain. Config-only, no customer data.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sanctions-fit.html",
      "steps": [
        {
          "tool_id": "art-90-sanctions-screening-fit-diagnostic",
          "handoff": "program grade routes to sanctions-ownership / sanctions-list-coverage / sanctions-fuzzy-calibration / ec-eccn-classify / ec-circumvention / sanctions-screening-quality / sanctions-audit-pack"
        }
      ]
    },
    {
      "name": "sanctions-fuzzy-calibration",
      "domain": "Sanctions",
      "title": "Fuzzy-Match Calibration",
      "description": "Fuzzy-match FPR/recall scoring + threshold calibration on a synthetic labelled name-pair set (ART-93) -> audit receipt (cry-05). Tunes the matching engine without touching real names.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sanctions-fuzzy-calibration.html",
      "steps": [
        {
          "tool_id": "art-93-fuzzy-match-calibration-scorer",
          "handoff": "calibration grade + threshold recommendation (H1) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite calibration artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "sanctions-list-coverage",
      "domain": "Sanctions",
      "title": "Screening List-Coverage Conformance",
      "description": "Screening config conformance vs EU consolidated + UN + UK Sanctions List (post-OFSI-closure 28 Jan 2026) + OFAC SDN with nexus gating (ART-92) -> Merkle integrity (cry-04).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sanctions-list-coverage.html",
      "steps": [
        {
          "tool_id": "art-92-screening-list-coverage-checker",
          "handoff": "coverage grade + gaps (H1) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite coverage artifact with Merkle-root execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "sanctions-ownership",
      "domain": "Sanctions",
      "title": "50%-Rule Ownership Screening",
      "description": "W-A flagship. OFAC/EU/BIS 50%-rule aggregate-ownership traversal over a synthetic ownership graph (ART-91) -> sanctions list-coverage conformance (ART-92) -> audit receipt (cry-05). Determines constructively-blocked entities per BIS Affiliates Rule (29 Sep 2025) and OFAC 50% rule. Synthetic entities only.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sanctions-ownership.html",
      "steps": [
        {
          "tool_id": "art-91-ownership-50pct-aggregator",
          "handoff": "blocked-entity verdicts (H1) feed the coverage checker"
        },
        {
          "tool_id": "art-92-screening-list-coverage-checker",
          "handoff": "coverage conformance (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite ownership-screening artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "sanctions-screening-quality",
      "domain": "Sanctions",
      "title": "Sanctions Screening-Program Quality",
      "description": "Fuzzy-match calibration (ART-93) -> list-coverage conformance (ART-92) -> Wolfsberg-aligned screening-program quality grade (ART-97) -> audit receipt (cry-05). End-to-end program conformance score.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sanctions-screening-quality.html",
      "steps": [
        {
          "tool_id": "art-93-fuzzy-match-calibration-scorer",
          "handoff": "calibration grade (H1) feeds the coverage checker"
        },
        {
          "tool_id": "art-92-screening-list-coverage-checker",
          "handoff": "coverage grade (H2) feeds the quality scorer"
        },
        {
          "tool_id": "art-97-sanctions-screening-quality-scorer",
          "handoff": "Exports composite program-quality artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "sb53-frontier-scope",
      "domain": "AI & Agent Governance",
      "title": "SB 53 Frontier Scope",
      "wave": 55,
      "description": "Single-step obligation router for the California SB 53 Transparency in Frontier Artificial Intelligence Act (eff. 2026-01-01). Kept as its own composer rather than folded into the CAIA/TRAIGA/AB2013 chains -- SB 53 serves a narrow frontier-lab audience, distinct from the general deployer/developer compliance-owner persona of the other state-AI chains.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sb53-frontier-scope.html",
      "regulatory_refs": [
        "Cal. SB 53 (Transparency in Frontier Artificial Intelligence Act), eff. 2026-01-01"
      ],
      "steps": [
        {
          "tool_id": "art-316-sb53-frontier-scope-checker",
          "handoff": "is_frontier_model, is_large_frontier_developer, and obligation_set complete the scope determination -- final stage"
        }
      ]
    },
    {
      "name": "sbom-provenance-attestation",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "SBOM Provenance Attestation (EU CRA / SLSA / OpenVEX)",
      "description": "Validate a CycloneDX SBOM against EU CRA Annex I machine-readable SBOM requirement (art-135) → verify the SLSA provenance in-toto statement: subject digest match, builder.id present, claimed build level (art-136) → validate the OpenVEX vulnerability disclosure statement including not_affected justification (art-137). Full EU CRA supply-chain attestation pipeline. Zero network.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sbom-provenance-attestation.html",
      "steps": [
        {
          "tool_id": "art-135-cyclonedx-sbom-validator",
          "handoff": "SBOM validity verdict feeds SLSA provenance verifier"
        },
        {
          "tool_id": "art-136-slsa-provenance-verifier",
          "handoff": "Provenance validity feeds OpenVEX disclosure validator"
        },
        {
          "tool_id": "art-137-openvex-statement-validator",
          "handoff": "VEX validity emits full supply-chain attestation verdict — final stage"
        }
      ]
    },
    {
      "name": "sca-consent-fapi",
      "domain": "Open Banking / Open Finance",
      "title": "SCA, Consent, and FAPI Compliance",
      "description": "Map SCA exemptions, build consent scope, validate FAPI security profile, and generate consent receipts.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sca-consent-fapi.html",
      "steps": [
        {
          "tool_id": "92-sca-exemption-mapper",
          "handoff": "exemption_map and risk_scores feed T91 consent scope builder"
        },
        {
          "tool_id": "91-consent-dashboard-builder",
          "handoff": "consent_scope and framework_flags feed T97 FAPI validation"
        },
        {
          "tool_id": "97-fapi-security-validator",
          "handoff": "fapi_profile and security_gaps feed T96 consent receipt generation"
        },
        {
          "tool_id": "96-consent-receipt-generator",
          "handoff": "Exports SCA/consent/FAPI Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "sec16b-early-warning-pack",
      "domain": "Securities Compliance & Corporate Governance",
      "title": "Section 16(b) Early-Warning Pack",
      "description": "Evidence pack for the recipient side of a Section 16(b) short-swing demand letter, built for an issuer's general counsel or an insider's own counsel. Stage 1 recomputes the matchable-pair short-swing profit figure from a declared list of the insider's own transactions in the issuer's equity security, using the lowest-in/highest-out construction, and compares the recomputed figure against a number the demand letter claims where one is supplied. Stage 2 wraps that receipt in a shareable evidence bundle stamped with the SPEC.md SIDECAR.1 tier label the caller's declared gate results qualify it for. Every transaction is declared by the caller: the pack reads no Form 4/5 filing and no brokerage record, so it evidences whether the declared transaction list produces the claimed figure, never that the declared transactions are complete or accurate. It does not compute a Rule 144 volume-limitation check, which is a named follow-on tool, and it is not legal advice.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sec16b-early-warning-pack.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "PACKS-SEC16-1",
      "regulatory_basis_decided_at": "2026-08-08",
      "steps": [
        {
          "tool_id": "art-573-section16b-short-swing-profit-recompute",
          "handoff": "Stage 1, the recompute. A declared list of the insider's own transactions in the issuer's equity security matched under the Smolowe/Gratz lowest-in/highest-out construction within a day-count approximation of the statutory less-than-six-months window, with the recomputed matched-pair total compared against a demand-letter figure where one is supplied, and a MATCHES, DIVERGES, or INDETERMINATE verdict."
        },
        {
          "tool_id": "art-408-evidence-bundle-tier-labeler",
          "handoff": "Stage 2, the evidence bundle. The Stage 1 receipt's execution hash wrapped in a shareable bundle stamped with the SPEC.md SIDECAR.1 tier label the caller's declared gate results qualify it for. The label re-expresses declared gate outcomes and mints no new trust claim. Final stage."
        }
      ]
    },
    {
      "name": "securities-lending-impact",
      "domain": "Securities Settlement",
      "title": "Securities Lending Settlement Impact",
      "description": "Recall/revenue impact modelling > non-DVP retail fund settlement impact > US/EU settlement mismatch impact: composite securities-lending settlement mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/securities-lending-impact.html",
      "steps": [
        {
          "tool_id": "371-securities-lending-recall-revenue-impact-modeler",
          "handoff": "recall_revenue_impact and haircut_effect feed Stage 2 retail fund settlement impact"
        },
        {
          "tool_id": "373-non-dvp-retail-fund-settlement-impact-assessor",
          "handoff": "non_dvp_impact and fund_liquidity_risk feed Stage 3 US/EU mismatch analysis"
        },
        {
          "tool_id": "378-us-eu-settlement-mismatch-impact-estimator",
          "handoff": "mismatch_exposure and cross-border_settlement_cost — final securities-lending mandate"
        }
      ]
    },
    {
      "name": "servicemember-lending-protections",
      "domain": "Consumer Lending & Fair Lending",
      "title": "Servicemember Lending Protections",
      "spec_version": "0.8.0",
      "wave": 39,
      "description": "Linear two-step chain covering both servicemember lending protections in sequence. Step 1 computes the MLA MAPR and checks the 36% cap (applies at origination for covered borrowers). Step 2 computes the SCRA 6% rate cap and excess interest forgiveness (applies during active duty on pre-service obligations). Both steps always run.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/servicemember-lending-protections.html",
      "regulatory_refs": [
        "32 CFR Part 232 §232.4(c) (MLA 36% MAPR cap, effective 2016-10-03)",
        "50 USC §3937 (SCRA 6% interest rate cap; excess forgiven not deferred)"
      ],
      "steps": [
        {
          "tool_id": "art-231-compute-mla-mapr",
          "handoff": "MAPR percentage, cap compliance flag, and charge breakdown. Passes to SCRA rate cap computation."
        },
        {
          "tool_id": "art-232-compute-scra-rate-cap",
          "handoff": "SCRA rate cap result, excess interest forgiven amount, covered-months calculation. Final stage."
        }
      ]
    },
    {
      "name": "settlement-discipline-alloc-affirm",
      "domain": "Settlement Discipline",
      "title": "Allocation/Affirmation Timing & Message Conformance",
      "description": "Allocation/confirmation timing + format conformance vs the 23:00 CET trade-date mandate (ART-81) -> ISO 20022 securities-settlement message linting (ART-82) -> Merkle integrity (cry-04). Covers the binding Dec-2026 same-day machine-readable requirement.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-alloc-affirm.html",
      "steps": [
        {
          "tool_id": "art-81-allocation-affirmation-conformance",
          "handoff": "on-time rate + flagged events (H1) feed the message linter"
        },
        {
          "tool_id": "art-82-securities-settlement-message-linter",
          "handoff": "message validation (H2) feeds the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite allocation/affirmation artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "settlement-discipline-audit-pack",
      "domain": "Settlement Discipline",
      "title": "Settlement Discipline Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the settlement-discipline decision set (cry-04) -> one Merkle-root audit receipt (cry-05) -> CSD/regulator/management-framed cover memo (ptg-01). Other chains can feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "settlement-discipline-buyin",
      "domain": "Settlement Discipline",
      "title": "Mandatory Buy-In Exposure",
      "description": "CSDR penalty accrual (ART-78) -> last-resort mandatory buy-in exposure/cost modeling under reformed CSDR Refit rules (ART-83) -> audit receipt (cry-05). Models the tail cost of persistent fails.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-buyin.html",
      "steps": [
        {
          "tool_id": "art-78-csdr-penalty-calculator",
          "handoff": "accrued penalty to trigger (H1) feeds the buy-in modeler"
        },
        {
          "tool_id": "art-83-buy-in-exposure-modeler",
          "handoff": "buy-in exposure (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite buy-in artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "settlement-discipline-failpredict",
      "domain": "Settlement Discipline",
      "title": "Settlement-Fail Prediction Pipeline",
      "description": "SSI conformance check (ART-80) -> fail-probability scoring on anonymized features (ART-79) -> Merkle integrity over the scored batch (cry-04). Ranks pending trades for pre-settlement intervention; targets the ~30%-of-fails SSI root cause. No PII -- features are band-level.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-failpredict.html",
      "steps": [
        {
          "tool_id": "art-80-ssi-conformance-checker",
          "handoff": "SSI match-rate + flags (H1) feed the predictor"
        },
        {
          "tool_id": "art-79-settlement-fail-predictor",
          "handoff": "ranked fail-risk list (H2) feeds the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite fail-prediction artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "settlement-discipline-fit",
      "domain": "Settlement Discipline",
      "title": "T+1 Settlement Readiness Diagnostic",
      "description": "Single-node D0 diagnostic scoring a firm's readiness for the EU/UK/CH T+1 move (11 Oct 2027) and the Dec-2026 allocation/confirmation timing mandate, routing to the right settlement-discipline chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-fit.html",
      "steps": [
        {
          "tool_id": "art-77-t1-settlement-readiness-diagnostic",
          "handoff": "readiness grade + gaps route to sd-ssi-hygiene / sd-failpredict / sd-penalty / sd-alloc-affirm / sd-message-conformance / sd-buyin / sd-audit-pack"
        }
      ]
    },
    {
      "name": "settlement-discipline-message-conformance",
      "domain": "Settlement Discipline",
      "title": "ISO 20022 Securities-Settlement Message Conformance",
      "description": "ISO 20022 securities-settlement / penalty message linting (ART-82) -> Merkle integrity over the message batch (cry-04) -> CSD/counterparty-framed cover memo (ptg-01). Scoped to the sese/semt securities family, distinct from the payments CBPR+ migration.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-message-conformance.html",
      "steps": [
        {
          "tool_id": "art-82-securities-settlement-message-linter",
          "handoff": "validation results (H1) feed the verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite message-conformance artifact with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "settlement-discipline-penalty",
      "domain": "Settlement Discipline",
      "title": "CSDR Penalty Calculation & Exposure",
      "description": "W-A flagship. CSDR cash-penalty calculation incl. the Oct-2025 RTS rate increases (ART-78) -> settlement-efficiency / penalty-cost aggregation (ART-84) -> audit receipt (cry-05). Computes per-fail penalties and forward book exposure. Decision-support draft.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-penalty.html",
      "steps": [
        {
          "tool_id": "art-78-csdr-penalty-calculator",
          "handoff": "per-fail + batch penalty (H1) feeds the KPI engine"
        },
        {
          "tool_id": "art-84-settlement-efficiency-kpi",
          "handoff": "penalty-cost rollup + efficiency score (H2) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite penalty-exposure artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
  "name": "settlement-discipline-penalty-v2",
  "domain": "Settlement Discipline",
  "title": "CSDR Penalty Recompute (Reference-Price Reachable)",
  "description": "CSDR cash-penalty recompute using a caller-supplied reference price (ART-543) -> settlement-efficiency / penalty-cost aggregation (ART-84) -> audit receipt (cry-05). Fixes the reachability defect in the original settlement-discipline-penalty chain, whose ART-78 stage has no path for a caller to supply a reference price differing from notional. Decision-support draft.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-penalty-v2.html",
  "steps": [
    {
      "tool_id": "art-543-csdr-penalty-recompute",
      "handoff": "per-fail penalty and forward exposure (H1), priced off a caller-supplied reference_price, feeds the KPI engine"
    },
    {
      "tool_id": "art-84-settlement-efficiency-kpi",
      "handoff": "penalty-cost rollup + efficiency score (H2) feeds the aggregator"
    },
    {
      "tool_id": "cry-05-agent-action-audit-trail-aggregator",
      "handoff": "Exports composite penalty-exposure artifact with execution_hash (H3) -- final stage"
    }
  ]
},
    {
      "name": "settlement-discipline-ssi-hygiene",
      "domain": "Settlement Discipline",
      "title": "SSI Hygiene & Match-Rate",
      "description": "SSI completeness/staleness/format conformance + golden-source match-rate scoring (ART-80) -> audit receipt (cry-05). The single highest-leverage T+1 prep: clean SSIs prevent ~30% of fails.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/settlement-discipline-ssi-hygiene.html",
      "steps": [
        {
          "tool_id": "art-80-ssi-conformance-checker",
          "handoff": "flagged records + match-rate (H1) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite SSI-hygiene artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "id": "slate-reporting-readiness",
      "name": "slate-reporting-readiness",
      "domain": "Securities Settlement",
      "title": "SLATE Reporting Readiness",
      "description": "Field-level structural validation of a covered-securities-loan report record against the FINRA Rule 6500-series field spec (art-544) feeds a readiness diagnostic scoring the caller's declared reporting pipeline against the FINRA Rule 6540 obligation checklist across five dimensions: reporting-agent registration, same-day capture, field-spec mapping, unique loan-identifier scheme, and recordkeeping retention (art-545). Returns an A-F grade and a gap list. Validate-never-transmit throughout: neither node calls fetch, calls an RNSA, or simulates submission.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/slate-reporting-readiness.html",
      "steps": [
        {
          "tool_id": "art-544-slate-report-validator",
          "handoff": "Field-level structural validation feeds the readiness diagnostic"
        },
        {
          "tool_id": "art-545-slate-readiness-diagnostic",
          "handoff": "Scores declared reporting-pipeline readiness against the Rule 6540 obligation checklist -- final stage"
        }
      ]
    },
    {
      "name": "sme-credit-intelligence",
      "domain": "SME & Commercial Finance",
      "title": "SME Credit Intelligence",
      "description": "SME credit risk scoring > working capital gap analysis > business loan readiness > open-finance credit signal mapping > SME cashflow stress test: composite SME credit intelligence mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sme-credit-intelligence.html",
      "steps": [
        {
          "tool_id": "239-sme-credit-risk-scoring",
          "handoff": "credit_score and risk_tier feed Stage 2 working capital gap analysis"
        },
        {
          "tool_id": "240-working-capital-gap-calculator",
          "handoff": "working_capital_gap and cashflow_gaps feed Stage 3 business loan readiness"
        },
        {
          "tool_id": "241-business-loan-readiness-checker",
          "handoff": "loan_readiness_score and qualification_criteria feed Stage 4 open-finance signal mapping"
        },
        {
          "tool_id": "243-open-finance-credit-signal-mapper",
          "handoff": "open_finance_signals and alternative_data feed Stage 5 cashflow stress test"
        },
        {
          "tool_id": "246-sme-cashflow-stress-test",
          "handoff": "stress_scenario_results and composite_credit_mandate — final SME credit mandate"
        }
      ]
    },
    {
      "name": "sme-finance-lending",
      "domain": "SME & Commercial Finance",
      "title": "SME Finance & Lending",
      "description": "SME credit risk scoring > working capital gap analysis > invoice finance eligibility > revenue-based finance calculator > lending covenant monitoring: composite SME finance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sme-finance-lending.html",
      "steps": [
        {
          "tool_id": "239-sme-credit-risk-scoring",
          "handoff": "credit_score and risk_tier feed Stage 2 working capital gap analysis"
        },
        {
          "tool_id": "240-working-capital-gap-calculator",
          "handoff": "working_capital_gap and cashflow_seasonality feed Stage 3 invoice finance eligibility"
        },
        {
          "tool_id": "242-invoice-finance-eligibility",
          "handoff": "invoice_finance_capacity and eligible_receivables feed Stage 4 revenue-based finance"
        },
        {
          "tool_id": "244-revenue-based-finance-calculator",
          "handoff": "rbf_terms and repayment_schedule feed Stage 5 lending covenant monitoring"
        },
        {
          "tool_id": "247-lending-covenant-monitoring",
          "handoff": "covenant_triggers and monitoring_plan — final SME finance mandate"
        }
      ]
    },
    {
      "name": "sme-government-grants-funding",
      "domain": "SME & Commercial Finance",
      "title": "SME Government Grants & Funding",
      "description": "Government funding and grant mapping > SME credit risk scoring > revenue-based finance calculation: composite SME government grants and funding mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sme-government-grants-funding.html",
      "steps": [
        {
          "tool_id": "245-government-funding-grant-mapper",
          "handoff": "grant_eligibility and funding_sources feed Stage 2 SME credit risk scoring"
        },
        {
          "tool_id": "239-sme-credit-risk-scoring",
          "handoff": "credit_score and debt_capacity feed Stage 3 revenue-based finance calculator"
        },
        {
          "tool_id": "244-revenue-based-finance-calculator",
          "handoff": "rbf_terms and repayment_structure — final SME grants/funding mandate"
        }
      ]
    },
    {
      "id": "solvency-ii-reconciliation-and-capital",
      "name": "solvency-ii-reconciliation-and-capital",
      "domain": "Insurance & Reinsurance",
      "title": "Solvency II Reconciliation and Capital",
      "description": "Calculate SCR and MCR coverage ratios and check Tier-1/Tier-3 tiering limits under Solvency II Delegated Regulation 2015/35 (art-180) -> bridge SII technical provisions to IFRS 17 insurance contract liabilities and flag gaps outside 10% tolerance using EIOPA benchmarks (art-181) -> A-F insurance reporting readiness diagnostic across IFRS 17, SII Pillar-3 QRT, reconciliation, and ICS dimensions (art-182). Full Solvency II capital and reconciliation pipeline. Solvency II Dir. 2009/138/EC + IFRS 17.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/solvency-ii-reconciliation-and-capital.html",
      "steps": [
        {
          "tool_id": "art-180-solvency2-scr-ratio-calculator",
          "handoff": "SCR/MCR coverage ratios and tiering verdict feed reconciliation bridger"
        },
        {
          "tool_id": "art-181-sii-ifrs17-reconciliation-bridger",
          "handoff": "SII-IFRS 17 bridge delta and RA benchmark feed readiness diagnostic"
        },
        {
          "tool_id": "art-182-insurance-reporting-readiness-diagnostic",
          "handoff": "Exports A-F insurance reporting readiness grade with execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "stablecoin-compliance",
      "domain": "Digital-Asset Rails",
      "title": "Stablecoin Compliance (GENIUS Act / MiCA)",
      "description": "Issuance architecture > reserve stress testing > GENIUS Act compliance > MiCA white paper / CASP > composite stablecoin compliance mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/stablecoin-compliance.html",
      "steps": [
        {
          "tool_id": "53-cbdc-architecture-comparator",
          "handoff": "architecture_choice feeds Stage 2 reserve stress testing"
        },
        {
          "tool_id": "388-stablecoin-reserve-stress-test-modeller",
          "handoff": "reserve_adequacy and stress_results feed Stage 3 GENIUS Act check"
        },
        {
          "tool_id": "386-genius-act-payment-stablecoin-compliance-checker",
          "handoff": "genius_compliance_status feeds Stage 4 MiCA white paper"
        },
        {
          "tool_id": "390-mica-white-paper-builder",
          "handoff": "Exports stablecoin compliance Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "stablecoin-examiner-pack",
      "domain": "Digital-Asset Rails",
      "title": "Stablecoin Examiner Pack",
      "description": "Examiner-facing composition over four landed nodes: a GENIUS-shaped reserve disclosure conformance check (art-582), an independent Proof-of-Reserves recompute (art-584), a sanctions-screening decision pinned to the exact versioned dataset it ran against (art-585), and a granular three-source reserve recompute that reconciles the issuer's per-asset-class breakdown, an EDGAR N-MFP Part 1 series summary and a declared on-chain supply figure against one another (art-603). On-chain circulating supply enters as a DECLARED caller input throughout and involves no network read: art-582 compares it numerically against the issuer's reported outstanding-token count as an informational figure reaching no requirement verdict, and art-603 treats the same declared figure as a first-class reconcile leg with its own RECONCILED, DISCREPANT or INDETERMINATE verdict, gated on how far apart the three as-of dates sit. Reading that figure directly from a light client is a named follow-on, not part of this pack. Produces the evidence a stablecoin examination asks for; it is not a compliance certification and takes no position on solvency.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/stablecoin-examiner-pack.html",
      "export_capability": ["pdf"],
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "sonnet",
      "regulatory_basis_decided_at": "2026-08-08",
      "regulatory_refs": [
        "GENIUS Act (S.1582, 119th Congress) statutory reserve and monthly-attestation requirements. Dated observation, checked 2026-08-08: no final implementing regulation exists from any primary regulator; the OCC instrument remains a proposed rule (Federal Register doc 2026-04089, published 2026-03-02, comments closed 2026-05-01).",
        "OCC comment windows open as of 2026-08-08: PPSI reporting forms and instructions information collection (Federal Register doc 2026-11856, published 2026-06-12, comments close 2026-08-11) and stablecoin licensing/registration application forms (doc 2026-15088, published 2026-07-27, comments close 2026-10-05).",
        "Statutory effective date is the earlier of 2027-01-18 or 120 days after final implementing regulations publish. As no final rule exists on the date above, the 120-day clock has not started."
      ],
      "steps": [
        {
          "tool_id": "art-582-genius-reserve-disclosure-conformance-monitor",
          "handoff": "Stage 1: GENIUS-shaped conformance over an issuer's published monthly reserve disclosure, covering 1:1 coverage arithmetic and attestation presence/timeliness, each with its own verdict of MET, NOT_MET or INDETERMINATE. Permitted-asset composition stays out of scope while no final rule text exists. The on-chain supply figure is a caller-declared number compared against the reported outstanding-token count, informational only, never a requirement verdict."
        },
        {
          "tool_id": "art-584-proof-of-reserves-verifier",
          "handoff": "Stage 2: independent recompute of the issuer's published Proof-of-Reserves data, covering a bounded Merkle-sum inclusion path, a liability-side branch aggregation, and the coverage ratio between the two recomputed sums, with an optional cross-check against a caller-declared published reserve figure. Consistency here concerns the internal arithmetic of what was published, never solvency and never the truthfulness of the underlying data."
        },
        {
          "tool_id": "art-585-sanctions-screening-evidence-pack",
          "handoff": "Stage 3: binds a caller-declared sanctions-screening decision to the exact versioned dataset it ran against, by comparing a caller-computed digest of the artifact actually screened with the caller-declared published digest for that dataset version. Evidence of process reproducibility, never of screening adequacy."
        },
        {
          "tool_id": "art-603-stablecoin-reserve-3source-recompute",
          "handoff": "Stage 4, terminal: granular recompute across three independently sourced, caller-declared legs. Recomputes the reserve ratio from the issuer's per-asset-class breakdown rather than the stated top-line figure, recomputes weighted-average maturity from that same breakdown and compares it against the maturity figure reported in the EDGAR N-MFP Part 1 series summary, flags each holding against the statutory GENIUS eligible-asset enumeration as a criteria match only, and runs three cross-source reconcile checks each gated on the largest gap between the three declared as-of dates. Recompute of disclosed arithmetic, never a solvency claim and never a statement that the disclosed figures are true."
        }
      ]
    },
    {
      "name": "stablecoin-issuer-genius-mica",
      "domain": "Digital-Asset Rails",
      "title": "Stablecoin Issuer GENIUS + MiCA Chain",
      "description": "Classify digital asset regulatory status and GENIUS Act issuer type → stress-test reserves, optimise composition, and calculate MiCA EMT compliance → check reserve attestation checklist and pre-check readiness → verify Merkle batch proof and aggregate execution receipts → validate deposit token compliance, disclose Tempo zone, and build MiCA white paper.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/stablecoin-issuer-genius-mica.html",
      "steps": [
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "asset_class,regulatory_regime feed Stage 2"
        },
        {
          "tool_id": "336-genius-act-issuer-classification-mapper",
          "handoff": "issuer_type,permitted_reserves,genius_tier feed Stage 2"
        },
        {
          "tool_id": "388-stablecoin-reserve-stress-test-modeller",
          "handoff": "stress_pass,worst_case_shortfall feed Stage 2"
        },
        {
          "tool_id": "328-genius-act-reserve-optimizer",
          "handoff": "optimal_reserve_composition,liquidity_buffer feed Stage 2"
        },
        {
          "tool_id": "346-mica-emt-reserve-compliance-calculator",
          "handoff": "emt_compliance_delta,reserve_gap_pct feed Stage 3"
        },
        {
          "tool_id": "337-genius-act-reserve-attestation-checklist",
          "handoff": "attestation_items,evidence_gaps feed Stage 3"
        },
        {
          "tool_id": "art-06-genius-act-reserve-attestation",
          "handoff": "pre_check_pass,attestation_readiness_score feed Stage 4",
          "gate": {
            "input": "/attestation_readiness_determination",
            "rules": [
              {
                "op": "eq",
                "value": "FAIL",
                "next": "cry-04-merkle-batch-verifier"
              }
            ],
            "default": "cry-04-merkle-batch-verifier",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "merkle_root,proof_valid feed Stage 4"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "session_receipt_root,audit_hash feed Stage 5"
        },
        {
          "tool_id": "art-57-deposit-token-compliance-validator",
          "handoff": "deposit_token_compliance_pass feed Stage 5"
        },
        {
          "tool_id": "art-39-tempo-zone-disclosure",
          "handoff": "zone_disclosure_status feed Stage 5"
        },
        {
          "tool_id": "390-mica-white-paper-builder",
          "handoff": "white_paper_json -- Exports stablecoin compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "stablecoin-remittance-corridor-economics",
      "domain": "Digital-Asset Rails",
      "title": "Stablecoin Remittance Corridor Economics",
      "spec_version": "0.8.0",
      "wave": 42,
      "description": "Linear two-step chain for stablecoin remittance corridor economics analysis. Step 1 models the all-in cost of a USDC-based corridor (on-ramp fee, chain gas fee, off-ramp/local-rail fee, FX spread, and pre-funding float savings vs correspondent banking). Step 2 benchmarks total cost against the World Bank RPW Q1 2026 snapshot for the same origin-destination pair and the SDG 10.c 3% target. Together they surface whether a stablecoin corridor meets the SDG 3% goal and how it compares to the World Bank corridor average. Both steps always run.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/stablecoin-remittance-corridor-economics.html",
      "regulatory_refs": [
        "World Bank Remittance Prices Worldwide (RPW) Q1 2026 (remittanceprices.worldbank.org)",
        "SDG 10.c <=3% target (UN 2030 Agenda, Target 10.c)",
        "Felix/Circle USDC corridor case study (Stripe, 2024)",
        "SmaRT global average 6.36% (RPW Q1 2026)"
      ],
      "steps": [
        {
          "tool_id": "art-250-model-stablecoin-corridor-economics",
          "handoff": "USDC corridor all-in cost: on-ramp, chain fee, off-ramp, FX spread, float savings, gross/net cost bps and %, break-even vs traditional MTO. Passes to corridor benchmarking."
        },
        {
          "tool_id": "art-249-compare-corridor-cost",
          "handoff": "Corridor cost vs RPW benchmark, SmaRT average, and SDG 10.c target. Includes meets_sdg_target and cost_at_200_usd/cost_at_500_usd. Final stage."
        }
      ]
    },
    {
      "name": "stablecoin-reserve",
      "domain": "Digital-Asset Rails",
      "title": "GENIUS Act / MiCA Reserve Compliance",
      "description": "Reserve portfolio optimisation > smart contract validation > RWA tokenisation cost modelling.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/stablecoin-reserve.html",
      "steps": [
        {
          "tool_id": "328-genius-act-reserve-optimizer",
          "handoff": "reserve_composition and compliance_status feed T54 smart contract validation"
        },
        {
          "tool_id": "54-smart-contract-validator",
          "handoff": "contract_audit and risk_flags feed T66 RWA tokenisation cost model"
        },
        {
          "tool_id": "66-rwa-tokenization-cost-model",
          "handoff": "Exports stablecoin reserve Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "stablecoin-reserve-scorecard",
      "domain": "Digital-Asset Rails",
      "title": "Stablecoin Reserve Scorecard",
      "description": "Merkle-sum Proof-of-Reserves verification feeding a MiCA reserve disclosure check, presented as one dated scorecard over an issuer's published attestation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/stablecoin-reserve-scorecard.html",
      "export_capability": ["pdf"],
      "steps": [
        {
          "tool_id": "art-280-reserve-proof-verifier",
          "handoff": "reserve_proof_determination and not_proven feed the disclosure-level coverage, composition, segregation and cadence check as corroborating cryptographic evidence of the same reserve; each check keeps its own not_proven scope, never merged into a single verdict"
        },
        {
          "tool_id": "art-512-check-mica-reserve-disclosure",
          "handoff": "coverage, composition, segregation and cadence findings, plus the caller-declared rule set they were checked against, feed the scorecard's export; terminal stage"
        }
      ]
    },
    {
      "name": "state-proof-verification",
      "domain": "Verification & Proof Receipts",
      "title": "State-Proof Verification",
      "description": "Single-node diagnostic verifying an EIP-1186 account and storage Merkle-Patricia-Trie proof against a caller-supplied trusted state root.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/state-proof-verification.html",
      "steps": [
        {
          "tool_id": "art-279-state-proof-verifier",
          "handoff": "verdict and account/storage results feed the auditor's holdings-verification record; standalone check"
        }
      ]
    },
    {
  "name": "substantive-procedure-cycle",
  "domain": "Audit & Assurance",
  "title": "Substantive Procedure Cycle",
  "description": "Four-step substantive audit-recalculation cycle: journal-entry rule screen (weekend/holiday postings, round numbers, suspense accounts, unusual user-account pairs) runs alongside a recalc suite (depreciation, interest accrual, EPS, amortization, prepaid roll-forwards) and a bank/AR confirmation matcher, then terminates in a workpaper bundle composer that assembles a per-area evidence bundle -- procedure id, population hash, the three kernels' execution-hash artifacts, an exception list with disposition inputs, and preparer/reviewer/partner sign-off roles. Estimates, going concern, and materiality stay out of scope by design -- these kernels are recalculation, rule screens, and matching only. Partner release is single-signer but always recorded review_required per the §27 Human Accountability vocabulary; runtime dual-control gating is not yet wired.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/substantive-procedure-cycle-composer.html",
  "steps": [
    {
      "tool_id": "art-462-je-ruleset-screen",
      "handoff": "Screens the journal-entry population for weekend/holiday postings, round numbers, suspense/manual accounts, post-close entries, and unusual user-account pairs; feeds the terminal composer as a kernel_artifacts entry."
    },
    {
      "tool_id": "art-463-recalc-suite",
      "handoff": "Recomputes depreciation, interest accrual, EPS, amortization, and prepaid roll-forwards against client figures with a threshold gate; feeds the terminal composer as a kernel_artifacts entry."
    },
    {
      "tool_id": "art-464-confirmation-matcher",
      "handoff": "Matches bank/AR confirmation responses against ledger balances (exact and tolerance rules); feeds the terminal composer as a kernel_artifacts entry."
    },
    {
      "tool_id": "art-465-workpaper-bundle-composer",
      "handoff": "Composes the per-area evidence bundle from the three kernel artifacts plus the exception list and preparer/reviewer/partner sign-off roles -- final stage. GATE: any recorded exception (exception_count > 0) escalates the bundle for reviewer/partner disposition rather than the default zero-exception close.",
      "gate": {
        "input": "/exception_count",
        "rules": [
          {
            "op": "gt",
            "value": 0,
            "next": "escalate"
          }
        ],
        "default": "end",
        "gate_policy": "escalate"
      }
    }
  ]
},
    {
      "name": "sustainability-disclosure-sfdr",
      "domain": "Climate & Sustainable Finance",
      "title": "Sustainability Disclosure & SFDR Compliance",
      "description": "SFDR Article 8/9 fund classification > EU Taxonomy CapEx/revenue alignment > CSRD double-materiality > TCFD/ISSB climate risk > SFDR PAI indicator calculation: composite sustainability-disclosure mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/sustainability-disclosure-sfdr.html",
      "steps": [
        {
          "tool_id": "353-sfdr-article89-fund-classification-checker",
          "handoff": "article_classification and disclosure_obligations feed Stage 2 taxonomy alignment"
        },
        {
          "tool_id": "354-eu-taxonomy-capex-revenue-alignment-scorer",
          "handoff": "taxonomy_capex_score and dnsh_flags feed Stage 3 CSRD double-materiality"
        },
        {
          "tool_id": "355-csrd-double-materiality-assessment-builder",
          "handoff": "material_topics and impact_scores feed Stage 4 TCFD/ISSB climate risk builder"
        },
        {
          "tool_id": "364-tcfd-issb-climate-risk-builder",
          "handoff": "climate_risk_disclosure and scenarios feed Stage 5 SFDR PAI calculator"
        },
        {
          "tool_id": "384-sfdr-pai-indicator-calculator",
          "handoff": "pai_indicators and compliance_assessment — final SFDR disclosure mandate"
        }
      ]
    },
    {
      "name": "swift-csp-attestation-cycle",
      "domain": "DORA / NIS2 / ICT Resilience",
      "title": "Customer Security Controls Attestation Cycle",
      "description": "Two-step annual attestation cycle over a declared architecture type and component inventory. Step 1 derives the applicable mandatory and advisory control set from the policy-supplied control-framework version, scores declared implementation status, and returns coverage figures, a gap list keyed by published control number, an evidence index aligned to the framework's own supporting-evidence column, and an explicit not-applicable set with stated reasons so an omission cannot read as a pass. Step 2 tests assessor eligibility: assessment route, claimed certifications against the required set, independence from the implementer by distinct-identity counting, and assessment-date validity against the attestation deadline. Step 1 is gated hold while any mandatory control gap remains. Step 2 is gated reject, a terminal human rejection, when the assessor is ineligible, and the failing predicate is carried as the reason code. Release of the attestation bundle is a dual-control act with the assessor bound as reviewer and the attesting officer as approver; an examiner role binding grants inspection only and never an approval path. The framework's annual 31 December attestation deadline is a fact about the regime. This surface produces the firm's own evidence: it is not a Swift endorsement, not an assessor accreditation, and does not satisfy a KYC-SA submission.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/swift-csp-attestation-cycle.html",
      "regulatory_refs": [
        "Swift Customer Security Controls Framework (CSCF) v2026",
        "Swift Independent Assessment Framework"
      ],
      "steps": [
        {
          "tool_id": "art-486-cscf-control-applicability",
          "handoff": "Applicable control set, coverage figures, gap list and evidence index keyed by control number feed the assessor-eligibility stage",
          "gate": {
            "input": "/overall_status",
            "rules": [
              {
                "op": "eq",
                "value": "gaps_present",
                "next": "end"
              }
            ],
            "default": "art-487-assessor-independence-check",
            "gate_policy": "hold"
          }
        },
        {
          "tool_id": "art-487-assessor-independence-check",
          "handoff": "Eligible or ineligible with the failing predicate named, closing the attestation evidence bundle. Final stage.",
          "gate": {
            "input": "/eligible",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "reject"
          }
        }
      ]
    },
    {
      "name": "swift-ledger-transfer-readiness",
      "domain": "Digital-Asset Rails",
      "title": "Shared-Ledger Transfer Readiness Receipt",
      "description": "Gated four-step preflight for a shared-ledger tokenized-deposit transfer: ISO 20022-to-EVM calldata mapping, batch sanctions and purpose-code screen, L2 finality window classification, and cash-leg finality check compose into one receipt. An unmapped required field or a screening hit halts the chain before commit.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/swift-ledger-transfer-readiness-composer.html",
      "steps": [
        {
          "tool_id": "art-288-map-iso20022-to-evm-calldata",
          "handoff": "resolved_call and mapping_ok feed Stage 2 batch screening; an incomplete mapping stops the chain",
          "gate": {
            "input": "/mapping_ok",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-291-screen-onledger-transfer-batch"
          }
        },
        {
          "tool_id": "art-291-screen-onledger-transfer-batch",
          "handoff": "batch_clean feeds Stage 3 finality classification; a screening hit stops the chain",
          "gate": {
            "input": "/batch_clean",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-290-check-linea-l2-finality-window"
          }
        },
        {
          "tool_id": "art-290-check-linea-l2-finality-window",
          "handoff": "finality_tier and safe_to_release feed Stage 4 cash-leg finality check"
        },
        {
          "tool_id": "506-onchain-cash-leg-finality-checker",
          "handoff": "Composes the transfer-readiness receipt -- final stage"
        }
      ]
    },
    {
      "name": "t1-csdr-settlement",
      "domain": "Securities Settlement",
      "title": "T+1 / CSDR Settlement Chain",
      "description": "Verify allocation affirmation conformance and T+1 readiness → predict settlement fails and assess FX exposure → calculate CSDR cash penalties → compute settlement efficiency KPIs → model buy-in exposure and classify scope. End-to-end T+1 and CSDR settlement compliance journey.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/t1-csdr-settlement.html",
      "steps": [
        {
          "tool_id": "art-81-allocation-affirmation-conformance",
          "handoff": "affirmation_pass,ssi_gaps,counterparty_mismatches feed Stage 2 fail prediction"
        },
        {
          "tool_id": "351-t1-settlement-operational-readiness-assessor",
          "handoff": "readiness_score,gap_items,cutoff_compliance feed Stage 2 fail prediction"
        },
        {
          "tool_id": "art-79-settlement-fail-predictor",
          "handoff": "fail_probability,fail_reasons,expected_fail_rate feed Stage 3 penalty calculation"
        },
        {
          "tool_id": "215-fx-settlement-fails-assessor",
          "handoff": "fx_fail_rate,exposure_usd,corridor_breakdown feed Stage 3 CSDR penalty"
        },
        {
          "tool_id": "art-78-csdr-penalty-calculator",
          "handoff": "cash_penalty_eur,penalty_band,reporting_obligation feed Stage 4 efficiency KPI"
        },
        {
          "tool_id": "368-csdr-settlement-fails-penalty-calculator",
          "handoff": "total_penalty_estimate,daily_rate,penalty_tier feed Stage 4 efficiency scoring"
        },
        {
          "tool_id": "art-84-settlement-efficiency-kpi",
          "handoff": "efficiency_rate,fail_count,kpi_band feed Stage 4 efficiency rate"
        },
        {
          "tool_id": "370-settlement-efficiency-rate-calculator",
          "handoff": "settlement_rate_pct,t0_t2_breakdown,volume_weighted feed Stage 5 buy-in"
        },
        {
          "tool_id": "art-83-buy-in-exposure-modeler",
          "handoff": "buy_in_exposure_usd,triggered_threshold feed Stage 5 scope classification"
        },
        {
          "tool_id": "372-buyin-scope-classifier-cost-penalty-estimator",
          "handoff": "buyin_scope,total_cost_estimate -- Exports CSDR settlement compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "taxonomy-align",
      "domain": "Climate & Sustainable Finance",
      "title": "EU Taxonomy Activity Alignment",
      "description": "Activity-level Taxonomy alignment: substantial-contribution + DNSH + minimum-safeguards scoring (ART-73) -> audit receipt (cry-05). The activity-by-activity alignment decision an undertaking emits and an auditor re-verifies.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/taxonomy-align.html",
      "steps": [
        {
          "tool_id": "art-73-taxonomy-alignment-scorer",
          "handoff": "alignment verdict + gaps (H1) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite alignment artifact with execution_hash (H2) -- final stage"
        }
      ]
    },
    {
      "name": "taxonomy-kpi",
      "domain": "Climate & Sustainable Finance",
      "title": "Taxonomy KPI & Green Asset Ratio",
      "description": "Activity alignment (ART-73) -> entity revenue/CapEx/OpEx KPIs + Green Asset Ratio for financials (ART-74) -> audit receipt (cry-05). Rolls activity-level alignment into the entity disclosure KPIs an issuer/bank reports to investors and supervisors.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/taxonomy-kpi.html",
      "steps": [
        {
          "tool_id": "art-73-taxonomy-alignment-scorer",
          "handoff": "per-activity alignment (H1) feeds the KPI aggregator"
        },
        {
          "tool_id": "art-74-taxonomy-kpi-gar-aggregator",
          "handoff": "KPI set + GAR (H2) feed the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite KPI/GAR artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "tempo-agentic-checkout",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Agentic Checkout",
      "description": "W-D chain. x402/MPP protocol decode → TIP-20 settlement mapper.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-agentic-checkout.html",
      "steps": [
        {
          "tool_id": "art-26-x402-payload-decoder-flow-simulator",
          "handoff": "protocol_decode and payment_details feed Stage 2 TIP-20 settlement mapping"
        },
        {
          "tool_id": "art-40-tempo-agentic-checkout",
          "handoff": "Exports TIP-20 settlement artifact with execution_hash; memo → remittance_information crosswalk -- final stage"
        }
      ]
    },
    {
      "name": "tempo-fit",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Fit Diagnostic",
      "description": "Single-node D0 diagnostic grading an organisation A–F across four Tempo use cases (Issue/TIP-20, Payments rail, Agent/MPP, Commerce/checkout).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-fit.html",
      "steps": [
        {
          "tool_id": "art-34-tempo-fit-diagnostic",
          "handoff": "dim_scores and primary_recommendation route to tempo-payments / tempo-issuance / tempo-mpp-agent / tempo-agentic-checkout chains"
        }
      ]
    },
    {
      "name": "tempo-gas-economics",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Fee-Sponsorship & Gas-AMM Economics",
      "description": "Model Tempo enshrined-AMM gas cost paid in any major stablecoin plus server-paid fee sponsorship, vs card/SWIFT/ACH baselines. Payments business case (art-35) → gas-AMM slippage, sponsorship break-even, and net per-tx saving (art-107). Distinct from Arc Paymaster: Tempo has no native gas token and uses an enshrined AMM, not ERC-4337.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-gas-economics.html",
      "steps": [
        {
          "tool_id": "art-35-tempo-payments-business-case",
          "handoff": "volume, corridor mix, baseline fees feed Stage 2 gas economics"
        },
        {
          "tool_id": "art-107-tempo-gas-economics",
          "handoff": "Exports composite gas-economics artifact (blended gas cost, sponsorship break-even, per-tx saving) — final stage"
        }
      ]
    },
    {
      "name": "tempo-issuance",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Stablecoin Issuance",
      "description": "W-B chain. TIP-20 config lint + TIP-403 policy design → GENIUS Act reserve pre-check → AML typology pre-screen. Dual US GENIUS PPSI + EU MiCA EMT compliance.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-issuance.html",
      "steps": [
        {
          "tool_id": "art-37-tempo-stablecoin-issuance",
          "handoff": "genius_checks, mica_checks, overall_verdict, and issuer_lei feed Stage 2 reserve pre-check"
        },
        {
          "tool_id": "art-06-genius-act-reserve-attestation",
          "handoff": "reserve_attestation verdict feeds Stage 3 AML pre-screen",
          "gate": {
            "input": "/attestation_readiness_determination",
            "rules": [
              {
                "op": "eq",
                "value": "FAIL",
                "next": "art-10-amla-transaction-typology-risk-scorer"
              }
            ],
            "default": "art-10-amla-transaction-typology-risk-scorer",
            "gate_policy": "review_required"
          }
        },
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "Exports composite stablecoin issuance compliance mandate -- final stage"
        }
      ]
    },
    {
      "name": "tempo-mpp-agent",
      "domain": "Digital-Asset Rails",
      "title": "Tempo MPP Agent Mandate",
      "description": "W-C chain. Decode MPP session → AP2 mandate chain validation → agent spend-policy simulation → KYA identity attestation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-mpp-agent.html",
      "steps": [
        {
          "tool_id": "art-36-tempo-mpp-agent-mandate",
          "handoff": "session_mandate and execution_hash (H1) + AP2 mapping feed Stage 2 mandate validation"
        },
        {
          "tool_id": "art-01-ap2-mandate-chain-validator",
          "handoff": "ap2_mandate verdict and execution_hash (H2) feed Stage 3 spend-policy simulation"
        },
        {
          "tool_id": "art-02-agent-spend-policy-simulator",
          "handoff": "spend_policy verdict and execution_hash (H3) feed Stage 4 KYA attestation"
        },
        {
          "tool_id": "art-04-agent-identity-attestation-checker",
          "handoff": "Exports composite MPP agent mandate with execution_hash (H4) -- final stage"
        }
      ]
    },
    {
      "name": "tempo-onchain-aml",
      "domain": "Digital-Asset Rails",
      "title": "Tempo On-Chain AML",
      "description": "W-E chain. TIP-403 freeze/allowlist pre-check → TIP-20 batch AML + FATF Travel Rule screening → typology risk scoring.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-onchain-aml.html",
      "steps": [
        {
          "tool_id": "art-37-tempo-stablecoin-issuance",
          "handoff": "tip403_controls verified before batch screening"
        },
        {
          "tool_id": "art-38-tempo-onchain-aml",
          "handoff": "sar_determination, travel_rule_attestation, and execution_hash feed Stage 3 typology scoring",
          "gate": {
            "input": "/batch_verdict",
            "rules": [
              {
                "op": "eq",
                "value": "ESCALATE",
                "next": "end"
              }
            ],
            "default": "art-10-amla-transaction-typology-risk-scorer",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "Exports composite AML + Travel Rule mandate -- final stage",
          "gate": {
            "input": "/overall_risk",
            "rules": [
              {
                "op": "eq",
                "value": "HIGH",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "escalate"
          }
        }
      ]
    },
    {
      "name": "tempo-payments",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Payments Business Case",
      "description": "W-A chain. Models CFO-level cost savings of migrating payroll, remittance, or merchant settlement to Tempo vs card/SWIFT/ACH/SEPA.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-payments.html",
      "steps": [
        {
          "tool_id": "art-35-tempo-payments-business-case",
          "handoff": "annual_savings, per_tx_saving, break_even_months, and cfo_memo feed downstream issuance or agent chains"
        }
      ]
    },
    {
      "name": "tempo-subscription-settlement",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Subscription & Streaming Settlement Reconciliation",
      "description": "Reconcile executed MPP recurring/streamed draws against the authorized mandate envelope, prove draw-set integrity, and aggregate receipts. Decode granted MPP mandate (art-36) → reconcile draws vs per-cycle and cumulative caps incl. expiry/revocation (art-106) → Merkle batch integrity over the draw set (cry-04) → audit-trail receipt aggregation (cry-05).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-subscription-settlement.html",
      "steps": [
        {
          "tool_id": "art-36-tempo-mpp-agent-mandate",
          "handoff": "granted session/subscription envelope (cap, cadence, valid_until) feeds Stage 2 reconciliation"
        },
        {
          "tool_id": "art-106-tempo-subscription-reconciler",
          "handoff": "per-cycle conformance, breaches, draw_merkle_root feed Stage 3 batch integrity"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "verified draw-set Merkle root feeds Stage 4 receipt aggregation"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite subscription-settlement artifact with execution_hash — final stage"
        }
      ]
    },
    {
      "name": "tempo-validator-readiness",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Validator Readiness",
      "description": "ART-41 standalone node. 12-question infrastructure readiness scorer for prospective Tempo validators.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-validator-readiness.html",
      "steps": [
        {
          "tool_id": "art-41-tempo-validator-readiness",
          "handoff": "Exports infrastructure_mandate artifact with execution_hash and permissioning notice -- standalone node"
        }
      ]
    },
    {
      "name": "tempo-zone-disclosure",
      "domain": "Digital-Asset Rails",
      "title": "Tempo Zone Disclosure",
      "description": "W-F chain. Operator AML screen on full Zone tx set → selective-disclosure attestation → ZK compliance proof.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tempo-zone-disclosure.html",
      "steps": [
        {
          "tool_id": "art-38-tempo-onchain-aml",
          "handoff": "aml_verdict and execution_hash (H1) feed Stage 2 zone disclosure attestation",
          "gate": {
            "input": "/batch_verdict",
            "rules": [
              {
                "op": "eq",
                "value": "ESCALATE",
                "next": "end"
              }
            ],
            "default": "art-39-tempo-zone-disclosure",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "art-39-tempo-zone-disclosure",
          "handoff": "zone_attestation verdict and execution_hash (H2) feed Stage 3 ZK proof generation"
        },
        {
          "tool_id": "cry-01-zk-compliance-proof-generator",
          "handoff": "Exports privacy-and-auditability attestation + ZK proof -- final stage"
        }
      ]
    },
    {
      "name": "tmpg-fails-charge-claim-pack",
      "domain": "Settlement Discipline",
      "title": "TMPG Fails-Charge Claim Pack",
      "description": "Evidence pack for a monthly NY Fed TMPG fails-charge claim cycle between two settlement counterparties. The pack has one computational stage: a batch recompute of the published fails-charge formula, charge equals the greater of zero or three percent minus the declared reference rate, divided by 360, times par amount, times days failed, diffed against each claimed amount within a caller-declared tolerance, with an overall verdict of MATCHES, DIVERGES, or INDETERMINATE and a matching verdict for every individual fail line. The pack's evidence value comes from running that one stage twice: the non-defaulting party presenting the claim computes it once, and the failing counterparty recomputes it independently over the identical declared inputs. Because the kernel is deterministic, two honest recomputations over the same inputs reach the identical execution hash, and each side can countersign a receipt of that recomputation under SPEC.md section 27.12, kernel-pinned and dated, with no relay and no shared registry between the two firms. The receipt is evidence that both parties independently recomputed and signed the same result. It does not state or imply that either party owes or agrees to the claim, that the matter is closed, or that a dispute over the underlying fail or its reference rate is foreclosed. Every input, the fails themselves, their par amounts, reference rates, days failed, and claimed amounts, is declared by the caller: the pack reads no clearing feed and no fails database. The NY Fed Treasury Market Practices Group's fails-charge trading practice (2016 revision) is cited as the dated market practice this evidence is usually gathered for, not as a standard the pack certifies against.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tmpg-fails-charge-claim-pack.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "PACKS-TMPG-1",
      "regulatory_basis_decided_at": "2026-08-08",
      "steps": [
        {
          "tool_id": "art-575-tmpg-fails-charge-recompute",
          "handoff": "The fails-charge recompute, run independently by each counterparty over the same declared batch of fails, each with its own par amount, reference rate, and days failed, diffed against the claimed amount within a caller-declared tolerance. Every fail line carries its own MATCHES, DIVERGES, or INDETERMINATE verdict, and the batch carries one overall verdict of the same three values. Only the resulting execution hash, not any editorial reading of it, is what the two sides countersign."
        }
      ]
    },
    {
      "name": "tokenization-prep",
      "domain": "Document & Content Provenance",
      "title": "Tokenization Prep",
      "description": "ISCC content fingerprint > AI-training rights reservation > royalty split validation > TASL attribution string > certified tokenization-ready license VC. The royalty-split step is optional and can be skipped if no on-chain split applies.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tokenization-prep.html",
      "steps": [
        {
          "tool_id": "art-201-iscc-content-code-generator",
          "handoff": "ISCC content fingerprint and datahash feed Stage 2 AI-training rights reservation"
        },
        {
          "tool_id": "art-202-tdmrep-reservation-builder",
          "handoff": "TDMRep JSON and Content-Usage header feed Stage 3 royalty split validation"
        },
        {
          "tool_id": "art-208-royalty-split-validator",
          "handoff": "Validated split config and config_hash feed Stage 4 attribution string generation (step is optional -- proceed with empty input if no split applies)"
        },
        {
          "tool_id": "art-207-attribution-string-generator",
          "handoff": "TASL attribution string, ccREL JSON-LD, and RDFa block feed Stage 5 license election certification"
        },
        {
          "tool_id": "art-199-license-election-certifier",
          "handoff": "Exports certified tokenization-ready license VC with ISCC binding and execution_hash -- final stage"
        }
      ]
    },
    {
      "name": "tokenized-deposit-settlement-proof",
      "domain": "Digital-Asset Rails",
      "title": "Tokenized Deposit Settlement Proof",
      "description": "Settled-compliantly proof for a tokenized-deposit transfer on a shared orchestration layer, without leaking counterparty data: tokenized-settlement fit check, L2/L1 asset-finality classification, and a zk compliance proof compose into a receipt an auditor can independently verify.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/tokenized-deposit-settlement-proof-composer.html",
      "steps": [
        {
          "tool_id": "art-56-tokenized-settlement-fit-diagnostic",
          "handoff": "fit diagnostic feeds Stage 2 asset-finality classification"
        },
        {
          "tool_id": "art-59-settlement-asset-finality-classifier",
          "handoff": "finality classification feeds Stage 3 zk compliance proof generation"
        },
        {
          "tool_id": "cry-01-zk-compliance-proof-generator",
          "handoff": "zk proof feeds Stage 4 anchor"
        },
        {
          "tool_id": "art-121-document-integrity-anchor",
          "handoff": "Anchors the settlement proof digest -- final stage"
        }
      ]
    },
    {
      "name": "trade-finance-lc-lifecycle",
      "domain": "Digital Trade",
      "title": "Trade Finance Letter of Credit Lifecycle",
      "description": "LC analysis > MT700 field validation > DC vs LC comparison > forfaiting/factoring economics > trade sanctions compliance: composite trade-finance LC mandate.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/trade-finance-lc-lifecycle.html",
      "steps": [
        {
          "tool_id": "50-trade-finance-lc-analyser",
          "handoff": "lc_terms and discrepancy_risk feed Stage 2 MT700 field validation"
        },
        {
          "tool_id": "420-mt700-lc-field-validator",
          "handoff": "mt700_field_errors and swift_compliance feed Stage 3 DC vs LC analysis"
        },
        {
          "tool_id": "423-dc-vs-lc-analyzer",
          "handoff": "instrument_comparison and cost_delta feed Stage 4 forfaiting/factoring economics"
        },
        {
          "tool_id": "425-forfaiting-factoring-economics",
          "handoff": "financing_economics and receivable_yield feed Stage 5 trade sanctions check"
        },
        {
          "tool_id": "426-trade-sanctions-compliance-checker",
          "handoff": "sanctions_clearance and composite_trade_mandate — final trade finance mandate"
        }
      ]
    },
    {
      "name": "traiga-safe-harbor",
      "domain": "AI & Agent Governance",
      "title": "TRAIGA Safe Harbor",
      "spec_version": "0.8.0",
      "wave": 55,
      "description": "Gated three-step chain for the Texas Responsible AI Governance Act affirmative defense. Step 1 flags TRAIGA applicability and intentional prohibited-use assertions (gate: a prohibited use exits immediately, no defense evidence assembled). Step 2 (shipped map_nist_ai_rmf_functions) maps supplied controls to NIST AI RMF coverage (gate: Minimal or Partial coverage band exits, Substantial or Comprehensive continues). Step 3 assembles the affirmative-defense evidence pack. Evidence toward the Tex. Bus. & Com. Code §553.106 statutory defense, never a guarantee the defense succeeds.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/traiga-safe-harbor.html",
      "regulatory_refs": [
        "Tex. Bus. & Com. Code Ch. 552-553 (TRAIGA, HB 149), eff. 2026-01-01",
        "Tex. Bus. & Com. Code §553.106 (NIST AI RMF affirmative defense)",
        "NIST AI RMF 1.0 (2023) + Generative AI Profile (NIST-AI-600-1)"
      ],
      "steps": [
        {
          "tool_id": "art-313-traiga-exposure-assessor",
          "handoff": "prohibited_use_detected feeds the gate -- a detected prohibited use exits the chain, otherwise the RMF mapping stage runs",
          "gate": {
            "input": "/prohibited_use_detected",
            "rules": [
              {
                "op": "eq",
                "value": true,
                "next": "end"
              }
            ],
            "default": "art-174-nist-ai-rmf-function-mapper"
          }
        },
        {
          "tool_id": "art-174-nist-ai-rmf-function-mapper",
          "handoff": "coverage_band feeds the gate -- Minimal or Partial coverage exits (does not meet the substantial-compliance bar), Substantial or Comprehensive continues to the pack builder",
          "gate": {
            "input": "/coverage_band",
            "rules": [
              {
                "op": "in",
                "value": [
                  "Minimal",
                  "Partial"
                ],
                "next": "end"
              }
            ],
            "default": "art-314-traiga-safe-harbor-pack-builder"
          }
        },
        {
          "tool_id": "art-314-traiga-safe-harbor-pack-builder",
          "handoff": "Assembles the affirmative-defense evidence pack from the exposure and RMF-mapping results -- final stage"
        }
      ]
    },
    {
      "name": "transaction-screening",
      "domain": "Financial Crime & KYC",
      "title": "Transaction Screening and Rule-Building",
      "description": "Sanctions screening > FATF travel rule > fraud investigation.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/transaction-screening.html",
      "steps": [
        {
          "tool_id": "43-batch-sanctions-screening",
          "handoff": "screening_results and hit_list feed T222 travel rule check"
        },
        {
          "tool_id": "222-fatf-travel-rule-checker",
          "handoff": "travel_rule_status and originator_flags feed T80 fraud investigation"
        },
        {
          "tool_id": "80-fraud-investigation-lab",
          "handoff": "Exports transaction screening Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "treasury-account-lifecycle-ebam",
      "domain": "Corporate Treasury & FX",
      "title": "Treasury Account Lifecycle (eBAM)",
      "spec_version": "0.8.0",
      "wave": 44,
      "description": "Gated two-step chain for TMS account lifecycle straight-through processing. Step 1 validates the CGI-MP eBAM 2023 acmt state machine (acmt.007/010/011/017/019) and detects orphan messages. Gate on /acmt_state: OPENING_CONFIRMED -> Step 2 (IHB interest pool onboarding for the new account). All other states (CLOSURE_CONFIRMED, MODIFICATION_CONFIRMED, PENDING, INVALID) -> END. Automates TMS account lifecycle STP with automatic pool interest setup for newly confirmed accounts. ZERO PII BY CONSTRUCTION.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-account-lifecycle-ebam.html",
      "regulatory_refs": [
        "CGI-MP eBAM Usage Guide 2023 (acmt message types)",
        "ISO 20022 acmt.007/010/011/017/019 message schemas",
        "OECD Transfer Pricing Guidelines 2022 Chapter X (IHB pool interest)"
      ],
      "steps": [
        {
          "tool_id": "art-262-validate-ebam-acmt-flow",
          "handoff": "CGI-MP eBAM 2023 acmt state machine validation. Orphan detection. Emits acmt_state (OPENING_CONFIRMED/CLOSURE_CONFIRMED/MODIFICATION_CONFIRMED/PENDING/INVALID). GATE: OPENING_CONFIRMED -> art-260. All others -> END.",
          "gate": {
            "input": "/acmt_state",
            "rules": [
              {
                "op": "eq",
                "value": "OPENING_CONFIRMED",
                "next": "art-260-allocate-ihb-interest"
              }
            ],
            "default": "end"
          }
        },
        {
          "tool_id": "art-260-allocate-ihb-interest",
          "handoff": "IHB pool interest allocation for newly confirmed account. OECD TP arm's-length rate, ACT/360. Per-member interest schedule. Only reached for OPENING_CONFIRMED accounts entering the notional pool. Final stage."
        }
      ]
    },
    {
      "name": "treasury-clearing-access-model",
      "domain": "Treasury Clearing",
      "title": "Treasury Clearing Access Model Selector",
      "description": "W-A. Access-model selection & economics (ART-49) -> SA-CCR/QCCP capital impact (504) -> FICC VaR-margin & netting estimate (ART-50). The flagship decision chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-access-model.html",
      "steps": [
        {
          "tool_id": "art-49-clearing-access-model-selector",
          "handoff": "recommended_model + im_estimate_by_model feed the capital optimizer"
        },
        {
          "tool_id": "504-settlement-risk-capital-optimizer",
          "handoff": "rwa_delta + qccp_capital feed the margin/netting estimate"
        },
        {
          "tool_id": "art-50-ficc-margin-netting-estimator",
          "handoff": "Exports the composite access-model decision -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-capital-relief",
      "domain": "Treasury Clearing",
      "title": "Central Clearing Capital & RWA Relief",
      "description": "W-E. SA-CCR/QCCP capital impact of moving bilateral UST/repo to a CCP (504) -> Basel 3.1 RWA delta & output floor (art-07) -> RWA scenario modeling (sim-03). Bank/dealer capital case for clearing.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-capital-relief.html",
      "steps": [
        {
          "tool_id": "504-settlement-risk-capital-optimizer",
          "handoff": "qccp_capital + rwa_delta feed the Basel 3.1 delta calculator"
        },
        {
          "tool_id": "art-07-basel31-reporting-delta-calculator",
          "handoff": "rwa + output-floor figures feed the RWA scenario modeler"
        },
        {
          "tool_id": "sim-03-basel-rwa-scenario-modeler",
          "handoff": "Exports composite capital-relief artifact -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-collateral",
      "domain": "Treasury Clearing",
      "title": "Cleared Repo Collateral & Substitution",
      "description": "W-D. HQLA eligibility for UST collateral (505) -> collateral-swap/substitution direction (515) -> 2a-7 MMF cash-investor validation (514). Collateral side of cleared repo.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-collateral.html",
      "steps": [
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "hqla_tier + haircut feed the swap validator"
        },
        {
          "tool_id": "515-collateral-swap-eligibility-validator",
          "handoff": "swap_direction verdict feeds the fund-collateral validator"
        },
        {
          "tool_id": "514-tokenized-fund-collateral-validator",
          "handoff": "Exports composite collateral artifact -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-cross-margin",
      "domain": "Treasury Clearing",
      "title": "FICC-CME Cross-Margining Benefit",
      "description": "W-C. Cross-margining IM-reduction estimate (ART-51, FICC-CME customer expansion Dec 2025) -> combined-netting-set VaR (qfa-02) -> stress test of the offset under 6 historical crises (qfa-03).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-cross-margin.html",
      "steps": [
        {
          "tool_id": "art-51-cross-margining-benefit-estimator",
          "handoff": "im_reduction + eligible_offsets feed the VaR engine"
        },
        {
          "tool_id": "qfa-02-portfolio-var-engine",
          "handoff": "combined VaR feeds the stress engine"
        },
        {
          "tool_id": "qfa-03-stress-test-engine",
          "handoff": "Exports composite cross-margin artifact -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-fit",
      "domain": "Treasury Clearing",
      "title": "Treasury Clearing Fit Diagnostic",
      "description": "D0 single-node diagnostic grading a firm A-F for the SEC US Treasury clearing mandate; routes to treasury-clearing-access-model / treasury-clearing-repo-margin / treasury-clearing-cross-margin / treasury-clearing-collateral / treasury-clearing-capital-relief / treasury-clearing-liquidity / treasury-clearing-onboarding.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-fit.html",
      "steps": [
        {
          "tool_id": "art-48-treasury-clearing-fit-diagnostic",
          "handoff": "dim_scores + primary_recommendation route to the relevant treasury-clearing chain"
        }
      ]
    },
    {
      "name": "treasury-clearing-liquidity",
      "domain": "Treasury Clearing",
      "title": "Clearing Margin-Funding Liquidity Stress",
      "description": "W-F. LCR/NSFR liquidity stress (sim-01) -> margin-call collateral mobilization (513) -> stress test of margin-call size under 6 historical crises (qfa-03). Models the intraday liquidity drain of meeting CCP margin calls.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-liquidity.html",
      "steps": [
        {
          "tool_id": "sim-01-lcr-nsfr-liquidity-stress-test",
          "handoff": "lcr/nsfr stress paths feed the mobilizer",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "eq",
                "value": "BREACH_RISK",
                "next": "end"
              }
            ],
            "default": "513-margin-call-collateral-mobilizer",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "513-margin-call-collateral-mobilizer",
          "handoff": "mobilization shortfall feeds the stress engine"
        },
        {
          "tool_id": "qfa-03-stress-test-engine",
          "handoff": "Exports composite liquidity-stress artifact -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-onboarding",
      "domain": "Treasury Clearing",
      "title": "Sponsored/Agent Clearing Onboarding",
      "description": "W-G. Counterparty allowlist (LEI/OFAC/FATF Rec 16, 509) -> AML typology screen (art-10) -> Merkle-root onboarding receipt (cry-05). KYC/AML/audit pack for sponsored or agent clearing onboarding.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-onboarding.html",
      "steps": [
        {
          "tool_id": "509-canton-party-allowlist-validator",
          "handoff": "party verdict + LEI/OFAC flags feed the AML scorer"
        },
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "typology risk score feeds the audit aggregator",
          "gate": {
            "input": "/overall_risk",
            "rules": [
              {
                "op": "eq",
                "value": "HIGH",
                "next": "end"
              }
            ],
            "default": "cry-05-agent-action-audit-trail-aggregator",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Exports composite onboarding receipt with Merkle-root hash -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-repo-margin",
      "domain": "Treasury Clearing",
      "title": "Cleared Repo Margin & Haircut",
      "description": "W-B. FICC VaR-margin estimate (ART-50) -> CRE22/d349 repo haircuts (508) -> margin-call collateral mobilization (513) -> portfolio VaR distribution (qfa-02).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-repo-margin.html",
      "steps": [
        {
          "tool_id": "art-50-ficc-margin-netting-estimator",
          "handoff": "net_cleared_im + margin_by_bucket feed the haircut calculator"
        },
        {
          "tool_id": "508-repo-haircut-collateral-calculator",
          "handoff": "haircut-adjusted collateral value feeds the mobilizer"
        },
        {
          "tool_id": "513-margin-call-collateral-mobilizer",
          "handoff": "mobilization plan + shortfall feed the VaR engine"
        },
        {
          "tool_id": "qfa-02-portfolio-var-engine",
          "handoff": "Exports composite repo-margin artifact -- final stage"
        }
      ]
    },
    {
      "name": "treasury-clearing-settlement-integrity",
      "domain": "Treasury Clearing",
      "title": "Cleared Settlement Integrity & Fails",
      "description": "W-H convergence terminal. Merkle batch integrity over the cleared settlement set (cry-04) -> PFMI P12 DvP atomicity & CRE70 fail charge (507) -> settlement-fail-rate anomaly monitoring (ml-03).",
      "composer_url": "https://ainumbers.co/chaingraph/chains/treasury-clearing-settlement-integrity.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity verdict feeds the DvP validator"
        },
        {
          "tool_id": "507-canton-dvp-atomicity-validator",
          "handoff": "atomicity/finality verdict + fail-charge feed the anomaly detector"
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite settlement-integrity artifact -- final stage"
        }
      ]
    },
    {
      "name": "treasury-corridor",
      "domain": "Corporate Treasury & FX",
      "title": "Treasury Corridor",
      "description": "FX netting simulation > FX hedge optimisation > corridor savings calculation.",
      "composer_url": "https://ainumbers.co/guides/treasury-corridor-composer.html",
      "steps": [
        {
          "tool_id": "105-fx-netting-simulator",
          "handoff": "netting_savings and net_exposure feed Stage 2 hedge optimisation"
        },
        {
          "tool_id": "76-fx-hedge-optimizer",
          "handoff": "hedge_ratio and instrument_mix feed Stage 3 corridor savings model"
        },
        {
          "tool_id": "23-corridor-savings-calc",
          "handoff": "Exports treasury corridor Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "trust-audit-closeout-pack",
      "domain": "Audit & Assurance",
      "title": "Trust-Audit Closeout Pack",
      "description": "Evidence pack for a law practice closing out a client-trust review period. Stage 1 recomputes a three-way trust reconciliation from a declared bank balance, trust-ledger balance, and per-client ledger total, and gives the period exactly one verdict: RECONCILED, DISCREPANT, or INCOMPLETE. Stage 2 sweeps the declared docket records against caller-declared roll rules and labels each record OVERDUE, DUE_SOON, SCHEDULED, DONE, or INDETERMINATE, so a period that reconciles cleanly but leaves dated obligations open is visible rather than implied. Stage 3 assembles a shareable evidence bundle around the receipt trail and stamps the SPEC.md SIDECAR.1 tier label the caller's declared gate results qualify it for, minting no new trust claim. Every input is declared by the caller: the pack reads no bank feed, no accounting system, and no court docket, so it evidences whether the declared figures reconcile and whether the declared deadlines are met, never that the declared balances or filings are real. It is not legal advice, it is not a calendaring system, and it does not issue reminders. California Business and Professions Code section 6091.3 and the State Bar Client Trust Account Protection Program are cited as the reporting duties this evidence is usually gathered for, not as a standard the pack certifies against.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/trust-audit-closeout-pack.html",
      "regulatory_basis_status": "not_assessed",
      "regulatory_basis_decided_by": "PACKS-IOLTA-1",
      "regulatory_basis_decided_at": "2026-08-08",
      "steps": [
        {
          "tool_id": "art-566-iolta-three-way-reconciliation",
          "handoff": "Stage 1, the trust reconciliation. A declared bank balance, trust-ledger balance, and per-client ledger total recomputed as a three-way comparison, with the per-pair differences and any negative client low points shown, and a single period verdict of RECONCILED, DISCREPANT, or INCOMPLETE. Reconciling is a statement about the declared figures, never about funds observed in an account."
        },
        {
          "tool_id": "art-588-docket-deadline-sweep",
          "handoff": "Stage 2, the docket sweep. The declared deadline records tested against caller-declared roll rules, each labelled OVERDUE, DUE_SOON, SCHEDULED, DONE, or INDETERMINATE against a declared evaluation date, with the roll derivation shown step by step and duplicate or conflicting records flagged. Roll rules are declared parameters, not a jurisdiction table this pack maintains."
        },
        {
          "tool_id": "art-408-evidence-bundle-tier-labeler",
          "handoff": "Stage 3, the evidence bundle. The Stage 2 receipt's execution hash, whose own chain.parent_hashes already carries the Stage 1 receipt's hash under the standard's linear parent-threading, wrapped in one shareable bundle stamped with the SPEC.md SIDECAR.1 tier label the caller's declared gate results qualify it for. The label re-expresses declared gate outcomes and mints no new trust claim. Final stage."
        }
      ]
    },
    {
      "name": "us-banking-compliance",
      "domain": "Consumer & Wealth Compliance",
      "title": "US Consumer-Banking Compliance",
      "description": "HMDA reportability > BSA/SAR filing adequacy > Reg E dispute timelines > Durbin interchange analysis > consumer-banking compliance mandate.",
      "composer_url": "https://ainumbers.co/guides/us-banking-compliance-composer.html",
      "steps": [
        {
          "tool_id": "444-hmda-reportability-checker",
          "handoff": "reportable_loans and data_gaps feed Stage 2 BSA/SAR check"
        },
        {
          "tool_id": "445-bsa-sar-filing-adequacy-checker",
          "handoff": "sar_adequacy_flags feed Stage 3 Reg E workflow"
        },
        {
          "tool_id": "442-reg-e-dispute-workflow-builder",
          "handoff": "dispute_timelines feed Stage 4 Durbin analysis"
        },
        {
          "tool_id": "443-durbin-amendment-interchange-analyzer",
          "handoff": "Exports consumer-banking compliance Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "us-treasury-clearing",
      "domain": "Treasury Clearing",
      "title": "US Treasury Clearing Chain",
      "description": "Model clearing access economics → estimate FICC margin netting benefit → calculate repo haircut and collateral eligibility → estimate cross-margining benefit → mobilize margin call collateral and verify tokenized collateral eligibility. End-to-end US Treasury clearing and SEC Rule 17ad-22 journey.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/us-treasury-clearing.html",
      "steps": [
        {
          "tool_id": "art-49-clearing-access-model-selector",
          "handoff": "clearing_model,cost_basis,margin_requirements feed Stage 2 FICC netting"
        },
        {
          "tool_id": "art-50-ficc-margin-netting-estimator",
          "handoff": "initial_margin_netting_benefit,net_im_usd,portfolio_offset feed Stage 3 repo haircut"
        },
        {
          "tool_id": "508-repo-haircut-collateral-calculator",
          "handoff": "haircut_pct,collateral_value,eligible_assets,dtc_eligible feed Stage 4 cross-margin benefit"
        },
        {
          "tool_id": "art-51-cross-margining-benefit-estimator",
          "handoff": "cross_margin_savings_usd,portfolio_offset_pct,netting_set feed Stage 5 collateral mobilization"
        },
        {
          "tool_id": "513-margin-call-collateral-mobilizer",
          "handoff": "mobilization_plan,eligible_pool,shortfall_flag feed Stage 5 tokenized eligibility"
        },
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "eligibility_verdict,dtc_clearable,hqla_tier -- Exports US treasury clearing mandate -- final stage"
        }
      ]
    },
    {
      "name": "verify-agent-delegation",
      "domain": "AI & Agent Governance",
      "title": "Agent Identity & Delegation Chain Verifier",
      "description": "Verifies the two most-cited emerging agent-identity primitives in sequence: a did:webvh DID log's hash-chain and update-key authorization, then an ACDC credential chain's SAID integrity and issuer-to-issuee edge linkage back to a stated root AID. Verify-only across both steps.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/verify-agent-delegation.html",
      "steps": [
        {
          "tool_id": "art-284-did-webvh-log-verifier",
          "handoff": "did, current_version_id, and deactivated status establish which controller AID is currently authoritative before the delegation chain below is evaluated"
        },
        {
          "tool_id": "art-285-acdc-delegation-chain-verifier",
          "handoff": "chain_depth, root_aid_matched, and said_failures/edge_failures form the final delegation-authority determination for the agent named in the leaf credential"
        }
      ]
    },
    {
      "id": "vida-digital-reporting-requirements",
      "name": "vida-digital-reporting-requirements",
      "domain": "ViDA / E-Invoicing",
      "title": "ViDA Digital Reporting Requirements",
      "description": "Validate EN 16931-1:2026 structured e-invoice conformance (art-159) -> assess intra-EU B2B DRR scope and 10-calendar-day reporting deadline (art-160) -> assess EC Sales List to DRR migration readiness and harmonization deadline (art-161). Full ViDA digital reporting pipeline. EU 2025/516, mandatory 2030-07-01.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/vida-digital-reporting-requirements.html",
      "steps": [
        {
          "tool_id": "art-159-vida-einvoice-en16931-conformance-validator",
          "handoff": "EN 16931 conformance feeds DRR obligation assessor"
        },
        {
          "tool_id": "art-160-vida-drr-transaction-reporter",
          "handoff": "DRR scope and 10-day deadline feeds migration assessor"
        },
        {
          "tool_id": "art-161-vida-recapitulative-statement-migration-assessor",
          "handoff": "Exports ESL-to-DRR migration verdict and harmonization deadline with execution_hash -- final stage"
        }
      ]
    },
    {
      "id": "vida-platform-and-registration",
      "name": "vida-platform-and-registration",
      "domain": "ViDA / E-Invoicing",
      "title": "ViDA Platform and Registration",
      "description": "Classify a digital platform as a ViDA deemed supplier under Art. 46a: short-term accommodation (≤30 nights) or intra-EU road transport where underlying supplier has no valid VAT ID (art-162) -> route to correct ViDA Single VAT Registration scheme: Union OSS, Non-Union OSS, IOSS, or Domestic VAT (art-163) -> scored ViDA readiness diagnostic with 2028/2030/2035 phased obligation timeline (art-164). EU 2025/516, platform rule mandatory 2028-07-01.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/vida-platform-and-registration.html",
      "steps": [
        {
          "tool_id": "art-162-vida-platform-deemed-supplier-classifier",
          "handoff": "Deemed supplier verdict feeds OSS registration router"
        },
        {
          "tool_id": "art-163-vida-oss-registration-router",
          "handoff": "OSS scheme recommendation feeds readiness diagnostic"
        },
        {
          "tool_id": "art-164-vida-compliance-readiness-diagnostic",
          "handoff": "Exports scored ViDA readiness position with phased obligation timeline with execution_hash -- final stage"
        }
      ]
    },
    {
  "name": "visa-tap-agent-verification",
  "domain": "AI & Agent Governance",
  "title": "Visa TAP Agent Verification (RFC 9421 Web Bot Auth + Nonce + JWKS Pin)",
  "description": "Four independent verification facts about a caller-captured Visa TAP-shaped agent request: the RFC 9421 Ed25519 Web Bot Auth signature base (art-129), the request's nonce format/freshness/replay-set membership per TAP's 8-minute window (art-593), a caller-pinned SHA-256 digest match against the caller-supplied JWKS directory document (art-609), and the directory's own shape plus keyid resolution (art-130, reused unmodified). Verification only -- zero network, zero key hosting, never a facilitator or transaction-path role.",
  "composer_url": "https://ainumbers.co/chaingraph/chains/visa-tap-agent-verification.html",
  "regulatory_basis_status": "not_assessed",
  "regulatory_basis_decided_by": "BUILD-BOTAUTH-VISATAP-CHAIN-1",
  "regulatory_basis_decided_at": "2026-08-17",
  "steps": [
    {
      "tool_id": "art-129-webbotauth-signature-verifier",
      "handoff": "Ed25519 signature verdict over the RFC 9421 signature base establishes whether the caller-captured request signature is genuine, ahead of the nonce and directory checks below."
    },
    {
      "tool_id": "art-593-webbotauth-nonce-replay-check",
      "handoff": "Nonce format, the TAP created/expires spread, and caller-supplied replay-set membership are assessed next -- a separate fact about the same captured request, independent of the signature verdict above."
    },
    {
      "tool_id": "art-609-jwks-pinned-directory-check",
      "handoff": "The caller-supplied JWKS directory document's canonical digest is checked against the caller's own out-of-band pinned digest before the directory's internal shape is trusted by the next step."
    },
    {
      "tool_id": "art-130-signature-directory-validator",
      "handoff": "Terminal stage: JWKS directory shape and keyid resolution are validated on the same pinned document, completing the four-fact TAP verification surface."
    }
  ]
},
    {
      "name": "vop-liability-evidence",
      "domain": "Fraud & Dispute",
      "title": "VoP Liability Evidence Pack",
      "description": "Payee name-match score (art-376) into a signed, hash-chained session receipt (art-377) binding the declared match result, the warning shown, and the consumer's action. Produces the evidence a PSP presents in an APP-fraud reimbursement liability review -- what the check found and what happened next, not who is at fault.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/vop-liability-evidence.html",
      "steps": [
        {
          "tool_id": "art-376-score-payee-name-match",
          "handoff": "declared match score and band (H1) feed the session receipt as the match result"
        },
        {
          "tool_id": "art-377-build-vop-session-receipt",
          "handoff": "binds the match result to the warning shown and the consumer's action, exports the hash-chained receipt (H2) -- final stage"
        }
      ]
    },
    {
      "name": "wealth-advisory-regbi",
      "domain": "Consumer & Wealth Compliance",
      "title": "US Wealth & Advisory — Reg BI Suitability",
      "description": "Model portfolio risk > Reg BI best-interest check > portfolio construction/rebalancing > costs & fee disclosure > Form CRS.",
      "composer_url": "https://ainumbers.co/guides/wealth-advisory-regbi-composer.html",
      "steps": [
        {
          "tool_id": "429-model-portfolio-risk-analytics",
          "handoff": "risk_profile and model_allocation feed Stage 2 Reg BI best-interest check"
        },
        {
          "tool_id": "463-reg-bi-best-interest-checker",
          "handoff": "reg_bi_verdict and obligation_gaps feed Stage 3 portfolio construction"
        },
        {
          "tool_id": "432-portfolio-drift-rebalancing",
          "handoff": "rebalancing_trades and cost_estimates feed Stage 4 costs disclosure"
        },
        {
          "tool_id": "428-mifid-costs-charges-calculator",
          "handoff": "total_cost_bps and riy feed Stage 5 Form CRS"
        },
        {
          "tool_id": "464-form-crs-generator",
          "handoff": "Exports composite Reg BI suitability Policy Mandate -- final stage"
        }
      ]
    },
    {
      "name": "wholesale-settlement-audit-pack",
      "domain": "Wholesale Settlement",
      "title": "Wholesale Tokenized Settlement Audit Pack",
      "description": "W-G convergence terminal. Merkle integrity over the settlement decision set (cry-04) -> one Merkle-root audit receipt (cry-05) -> regulator/custodian-framed cover memo (ptg-01). Other chains can feed in.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-audit-pack.html",
      "steps": [
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "batch integrity (H1) feeds the aggregator"
        },
        {
          "tool_id": "cry-05-agent-action-audit-trail-aggregator",
          "handoff": "Merkle-root receipt (H2) feeds the memo generator"
        },
        {
          "tool_id": "ptg-01-ap2-prompt-template-generator",
          "handoff": "Exports composite audit pack with Merkle-root execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "wholesale-settlement-collateral-mobility",
      "domain": "Wholesale Settlement",
      "title": "24/7 Tokenized Collateral Mobility",
      "description": "W-D. Tokenized-collateral eligibility (505) -> 24/7 cross-network collateral mobilization (513) -> haircut/valuation (508). Frames the DTCC tokenized-collateral wedge: moving eligible collateral across networks on a 24/7 basis. Educational estimator, not a settlement instruction.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-collateral-mobility.html",
      "steps": [
        {
          "tool_id": "505-tokenized-collateral-eligibility-checker",
          "handoff": "eligibility verdict (H1) feeds the mobilizer"
        },
        {
          "tool_id": "513-margin-call-collateral-mobilizer",
          "handoff": "mobilization plan (H2) feeds the haircut calculator"
        },
        {
          "tool_id": "508-repo-haircut-collateral-calculator",
          "handoff": "Exports composite collateral-mobility artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "wholesale-settlement-cross-network-dvp",
      "domain": "Wholesale Settlement",
      "title": "Cross-Network Atomic DvP/PvP Settlement",
      "description": "W-A. Cross-network atomicity + finality-compatibility + settlement-risk window (ART-58) -> asset-leg DvP atomicity (507) -> FX-leg PvP (511). The flagship decision chain: is this tokenized settlement all-or-nothing across the cash network and the asset network?",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-cross-network-dvp.html",
      "steps": [
        {
          "tool_id": "art-58-cross-network-settlement-validator",
          "handoff": "atomicity_verdict and settlement_risk_window (H1) feed the DvP validator"
        },
        {
          "tool_id": "507-canton-dvp-atomicity-validator",
          "handoff": "asset-leg atomicity (H2) feeds the PvP validator"
        },
        {
          "tool_id": "511-multi-currency-pvp-validator",
          "handoff": "Exports composite cross-network settlement artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "wholesale-settlement-deposit-token",
      "domain": "Wholesale Settlement",
      "title": "Tokenized Deposit / Deposit-Token Compliance",
      "description": "W-B. Deposit-token classification, at-par redemption and holder-eligibility tests (ART-57) -> instrument/regime classification (510) -> Merkle integrity over the issuance/redemption set (cry-04). Distinguishes a redeemable bank-liability deposit token (JPMD/RLN) from a reserve-backed stablecoin or e-money token.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-deposit-token.html",
      "steps": [
        {
          "tool_id": "art-57-deposit-token-compliance-validator",
          "handoff": "token_class and classification_grade (H1) feed the classifier"
        },
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "regime classification (H2) feeds the integrity verifier"
        },
        {
          "tool_id": "cry-04-merkle-batch-verifier",
          "handoff": "Exports composite deposit-token artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "wholesale-settlement-fit",
      "domain": "Wholesale Settlement",
      "title": "Wholesale Tokenized Settlement Fit Diagnostic",
      "description": "Single-node D0 diagnostic grading a firm/desk A-F across settlement asset, finality regime, cross-network atomicity, asset-leg type, cash-leg issuer, intraday liquidity, and controls for wholesale tokenized settlement; routes to the right wholesale-settlement chain.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-fit.html",
      "steps": [
        {
          "tool_id": "art-56-tokenized-settlement-fit-diagnostic",
          "handoff": "dim_scores and primary_recommendation route to wholesale-settlement-cross-network-dvp / wholesale-settlement-deposit-token / wholesale-settlement-settlement-asset / wholesale-settlement-collateral-mobility / wholesale-settlement-intraday-liquidity / wholesale-settlement-participant-onboarding / wholesale-settlement-audit-pack"
        }
      ]
    },
    {
      "name": "wholesale-settlement-intraday-liquidity",
      "domain": "Wholesale Settlement",
      "title": "Intraday Liquidity & Capital under 24/7 Settlement",
      "description": "W-E. Settlement-risk capital (504) -> intraday/HQLA liquidity stress (sim-01) -> liquidity-usage anomaly monitoring (ml-03). Models the liquidity and capital impact of moving from RTGS windows to 24/7 tokenized settlement. Educational estimator.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-intraday-liquidity.html",
      "steps": [
        {
          "tool_id": "504-settlement-risk-capital-optimizer",
          "handoff": "capital profile (H1) feeds the liquidity stress test"
        },
        {
          "tool_id": "sim-01-lcr-nsfr-liquidity-stress-test",
          "handoff": "liquidity result (H2) feeds the anomaly detector",
          "gate": {
            "input": "/verdict",
            "rules": [
              {
                "op": "eq",
                "value": "BREACH_RISK",
                "next": "end"
              }
            ],
            "default": "ml-03-timeseries-anomaly-detector",
            "gate_policy": "escalate"
          }
        },
        {
          "tool_id": "ml-03-timeseries-anomaly-detector",
          "handoff": "Exports composite intraday-liquidity artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "wholesale-settlement-participant-onboarding",
      "domain": "Wholesale Settlement",
      "title": "Cross-Network Settlement Participant Onboarding",
      "description": "W-F. Participant allowlist (LEI/sanctions/eligibility, 509) -> participant risk rating (customer_risk_rating) -> AML typology score (art-10). KYC/sanctions/AML pack for a wholesale tokenized-settlement participant across the cash and asset networks.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-participant-onboarding.html",
      "steps": [
        {
          "tool_id": "509-canton-party-allowlist-validator",
          "handoff": "party verdict and sanctions flags (H1) feed the risk rater"
        },
        {
          "tool_id": "110-customer-risk-rating",
          "handoff": "risk rating (H2) feeds the typology scorer"
        },
        {
          "tool_id": "art-10-amla-transaction-typology-risk-scorer",
          "handoff": "Exports composite participant-onboarding artifact with execution_hash (H3) -- final stage",
          "gate": {
            "input": "/overall_risk",
            "rules": [
              {
                "op": "eq",
                "value": "HIGH",
                "next": "end"
              }
            ],
            "default": "end",
            "gate_policy": "escalate"
          }
        }
      ]
    },
    {
      "name": "wholesale-settlement-settlement-asset",
      "domain": "Wholesale Settlement",
      "title": "Settlement-Asset & Legal-Finality Classification",
      "description": "W-C. Settlement-asset class + legal-finality tier + singleness-of-money (ART-59) -> regulatory classification (510) -> on-chain cash-leg finality (506). Determines which settlement asset and which finality regime gate a tokenized settlement.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/wholesale-settlement-settlement-asset.html",
      "steps": [
        {
          "tool_id": "art-59-settlement-asset-finality-classifier",
          "handoff": "finality_tier and singleness_verdict (H1) feed the classifier"
        },
        {
          "tool_id": "510-digital-asset-regulatory-classifier",
          "handoff": "regulatory classification (H2) feeds the finality checker"
        },
        {
          "tool_id": "506-onchain-cash-leg-finality-checker",
          "handoff": "Exports composite settlement-asset artifact with execution_hash (H3) -- final stage"
        }
      ]
    },
    {
      "name": "x402-spend-evidence",
      "domain": "Digital-Asset Rails",
      "title": "x402 Spend Evidence Pack",
      "description": "Linear three-step evidence pipeline recomputing the trust signals behind an x402/EIP-3009 TransferWithAuthorization: EIP-712 digest recomputation, ECDSA signer recovery, and domain/nonce/window verification. Each step's fields compose into the x402_spend_evidence pack that a downstream agent or human uses to decide whether to trust an authorization; this is an evidence bundle, not a settlement proof.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/x402-spend-evidence.html",
      "steps": [
        {
          "tool_id": "art-590-x402-eip712-digest-recomputer",
          "handoff": "recomputes the exact EIP-712 digest bytes that signer recovery verifies against"
        },
        {
          "tool_id": "art-591-x402-signer-recovery-verifier",
          "handoff": "recovers the signer address and reports the claimed_from match, alongside the digest, in the assembled evidence pack"
        },
        {
          "tool_id": "art-592-x402-domain-nonce-window-checker",
          "handoff": "domain/window/nonce verdict is the terminal step, combining with the digest and recovery results into the x402_spend_evidence pack"
        }
      ]
    },
    {
      "name": "y9c-schedule-hc-hcr-capital",
      "domain": "Bank Capital & Credit Risk",
      "title": "FR Y-9C Schedule HC to HC-R Capital Chain",
      "spec_version": "0.8.0",
      "wave": 71,
      "description": "Gated three-step chain for top-tier bank holding companies (Y-9C panel, total consolidated assets >= $3B). Step 1 maps caller-declared Schedule HC balance-sheet line items into Schedule HC totals and checks the balance-sheet identity. Step 2 consumes those totals alongside caller-supplied capital components to compute Schedule HC-R capital ratios and the supplementary leverage ratio, gated dual_control(2) before the capital-adequacy result is treated as final -- any failed capital-ratio or SLR threshold requires two distinct approver sign-offs (recorded, not yet runtime-gated pending HA-RETRO-1 wiring). Step 3, reached only on a passing capital-adequacy result, rolls forward the caller-declared FR Y-14A/Q capital worksheet and cross-checks its ending total capital against Step 2's reported total-capital figure.",
      "composer_url": "https://ainumbers.co/chaingraph/chains/y9c-schedule-hc-hcr-capital.html",
      "regulatory_refs": [
        "FR Y-9C (Financial Statements for Holding Companies) Schedule HC",
        "FR Y-9C Schedule HC-R (Regulatory Capital)",
        "eSLR final rule, published 2025-12-01, effective 2026-04-01"
      ],
      "steps": [
        {
          "tool_id": "art-435-bhc-schedule-hc-balance-sheet",
          "handoff": "Schedule HC totals (total assets, total liabilities, total equity capital) feed Schedule HC-R capital-ratio computation"
        },
        {
          "tool_id": "art-436-bhc-schedule-hcr-capital",
          "handoff": "CET1/Tier1/Total capital ratios and SLR against caller-declared, version-pinned minimums. On pass, reported total capital feeds Stage 3's Y-14 worksheet roll-forward cross-check.",
          "gate": {
            "input": "/ratios/total_capital_pass",
            "rules": [
              {
                "op": "eq",
                "value": false,
                "next": "end"
              }
            ],
            "default": "art-439-y14-capital-worksheet-rollforward",
            "gate_policy": "dual_control",
            "gate_threshold": {
              "role": "approver",
              "threshold": 2
            }
          }
        },
        {
          "tool_id": "art-439-y14-capital-worksheet-rollforward",
          "handoff": "FR Y-14A/Q capital worksheet roll-forward and cross-check against Stage 2's reported total capital. Final stage."
        }
      ]
    }
  ],
  "chains_schema": "https://ainumbers.co/schema/chaingraph-chains-v1.0.json",
  "chains_note": "Named, ordered traversals over nodes[]. Each entry is a ChainGraph chain page at /chaingraph/chains/<chain_id>.html. Populated by the guides→ChainGraph conversion (CONTRACT A3). The worker NAMED_CHAINS is a generated projection of this array — never hand-edit NAMED_CHAINS directly.",
  "mcp_bindings": {
    "note": "MCP tools in the AINumbers MCP Apps server (mcp.ainumbers.co/mcp) that expose ChainGraph capabilities to agents. These are the agent-callable surface of the ChainGraph Standard v0.1.",
    "emit_chaingraph_artifact": {
      "mcp_name": "emit_chaingraph_artifact",
      "description": "Makes all 32 ChainGraph tools agent-callable (ChainGraph Standard v0.1 §3.1). Three modes: (1) pre_computed_artifact validation — validates §4 schema, recomputes execution_hash; (2) tool_id + policy_parameters — returns browser prefill URL for GPU/browser delegation; (3) tool_id only — returns node metadata and artifact schema scaffold.",
      "readOnlyHint": true,
      "wave": 6
    },
    "verify_execution_hash": {
      "mcp_name": "verify_execution_hash",
      "description": "Independently verifies an execution_hash from any ChainGraph §4 artifact by recomputing SHA-256 over cgCanon({policy_parameters, output_payload}). Detects tampering without requiring the original browser tool.",
      "readOnlyHint": true,
      "wave": "A"
    },
    "build_chaingraph": {
      "mcp_name": "build_chaingraph",
      "description": "Wires ChainGraph nodes into a DAG from the agent-commerce-conformance chain and other named chains. Returns ordered step list with prefill URLs and handoff instructions for each node.",
      "readOnlyHint": true,
      "wave": "A"
    }
  },
  "a2a_agent_card": {
    "url": "https://ainumbers.co/.well-known/agent.json",
    "note": "A2A agent card for the AINumbers ChainGraph suite. Exposes emit_chaingraph_artifact, verify_execution_hash, build_chaingraph, and validate_agent_commerce_conformance as agent-discoverable capabilities."
  },
  "wave_summary": {
    "wave_15": {
      "name": "AI Governance & Conformity for Financial Services — EU AI Act High-Risk + Agentic AI Governance",
      "shipped": "2026-06-20",
      "nodes_live": 4,
      "live": [
        "art-64-ai-act-highrisk-fit-diagnostic",
        "art-65-ai-conformity-pack-builder",
        "art-66-fria-postmarket-monitoring-builder",
        "art-67-agentic-ai-risk-classifier"
      ],
      "chains_live": 8,
      "chains": [
        "ai-governance-fit",
        "ai-governance-conformity",
        "ai-governance-fria-monitoring",
        "ai-governance-fairness-bias",
        "ai-governance-gpai-agentic",
        "ai-governance-credit-ai-conformity",
        "ai-governance-resilience-overlap",
        "ai-governance-audit-pack"
      ],
      "mcp_tools_added": [
        "run_ai_act_highrisk_fit",
        "build_ai_conformity_pack",
        "build_fria_monitoring_plan",
        "classify_agentic_ai_risk"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-ai-governance.html",
      "regulatory_refs": [
        "EU AI Act (Reg. 2024/1689) — Arts 4 (literacy, in force 2 Feb 2025), 5 (prohibited, in force 2 Aug 2025), 6 + Annex III (high-risk classification), 9-15 (provider obligations), 27 (FRIA), 50 (transparency), 53-55 (GPAI, in force 2 Aug 2025), 72 (post-market monitoring), 73 (serious-incident reporting). Verify at eur-lex.europa.eu/eli/reg/2024/1689/oj.",
        "Digital Omnibus on AI (provisional agreement 7 May 2026) — Annex III high-risk obligations -> 2 Dec 2027 (legal effect on formal adoption before 2 Aug 2026; else original 2 Aug 2026 applies). GPAI obligations EXPLICITLY UNCHANGED.",
        "DORA (Reg. 2022/2554) — fully enforced 17 Jan 2025; first TLPT notifications late 2026/early 2027.",
        "GPAI Code of Practice — EU AI Office; verify current version.",
        "Art 55 systemic-risk threshold: 10^25 FLOP training compute — verify against consolidated text."
      ],
      "status": "complete — 4 AIG tools (ART-64-67), 8 ai-governance chains, guide hub. GPAI obligations (Arts 53-55) and prohibited practices (Art 5) in force since Aug 2025. Annex III high-risk lifecycle prepare-ahead for 2 Dec 2027 (Digital Omnibus). Reflexive tie to : governs the AI agents that transact on the agent-economy runtime. chaingraph.json v1.20.0."
    },
    "wave_16": {
      "name": "Carbon & Climate Computational Compliance — CBAM Definitive Regime + EU Taxonomy + EU Green Bond Standard + NGFS Climate Scenario",
      "shipped": "2026-06-21",
      "nodes_live": 9,
      "live": [
        "art-68-carbon-compliance-fit-diagnostic",
        "art-69-cbam-embedded-emissions-calculator",
        "art-70-cbam-default-value-resolver",
        "art-71-cbam-certificate-cost-engine",
        "art-72-cbam-precursor-emissions-aggregator",
        "art-73-taxonomy-alignment-scorer",
        "art-74-taxonomy-kpi-gar-aggregator",
        "art-75-eugb-factsheet-validator",
        "art-76-climate-scenario-applicator"
      ],
      "chains_live": 8,
      "chains": [
        "carbon-compliance-fit",
        "carbon-compliance-liability",
        "carbon-compliance-precursor",
        "taxonomy-align",
        "taxonomy-kpi",
        "eugb-conformance",
        "climate-scenario",
        "carbon-audit-pack"
      ],
      "mcp_tools_added": [
        "run_carbon_compliance_fit",
        "calculate_cbam_embedded_emissions",
        "resolve_cbam_default_value",
        "model_cbam_certificate_cost",
        "aggregate_cbam_precursor_emissions",
        "score_taxonomy_alignment",
        "aggregate_taxonomy_kpi_gar",
        "validate_eugb_factsheet",
        "apply_climate_scenario"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-carbon-compliance.html",
      "regulatory_refs": [
        "CBAM Reg. (EU) 2023/956 + Implementing Reg. on default values: definitive period 1 Jan 2026; first declaration + certificate surrender 30 Sep 2027; CBAM factor 2.5% (2026) to 100% (2034); default markup +10/20/30% (2026/27/28+); 50 t/yr threshold; downstream-180 extension Council position 12 Jun 2026, application 1 Jan 2028.",
        "EU Taxonomy Reg. (EU) 2020/852 + Climate/Environmental Delegated Acts (six objectives live 2026; Omnibus I revisions in force 28 Jan 2026).",
        "EU Green Bond Standard Reg. (EU) 2023/2631 (Annexes I/II; applies since 21 Dec 2024; external-reviewer RTS 12 Mar 2026).",
        "NGFS Climate Scenarios Phase V (long-term Nov 2024 / short-term 7 May 2025); reference_version NGFS-Phase-V-2025.",
        "ECB climate and nature stress-testing good-practices (May 2026). Verify current editions."
      ],
      "status": "complete — 9 carbon/climate tools (ART-68–76), 8 carbon-compliance chains, guide hub. CBAM definitive liability in force 1 Jan 2026; first declaration 30 Sep 2027; downstream scope 1 Jan 2028. EU Taxonomy Omnibus I in force 28 Jan 2026. EuGB applies since 21 Dec 2024. NGFS Phase V scenarios (2025). chaingraph.json v1.21.0."
    },
    "wave_17": {
      "name": "EU/UK/CH T+1 & CSDR Settlement Discipline — Fail Prediction + CSDR Penalties + Allocation/Affirmation Conformance + ISO 20022 sese/semt",
      "shipped": "2026-06-21",
      "nodes_live": 8,
      "live": [
        "art-77-t1-settlement-readiness-diagnostic",
        "art-78-csdr-penalty-calculator",
        "art-79-settlement-fail-predictor",
        "art-80-ssi-conformance-checker",
        "art-81-allocation-affirmation-conformance",
        "art-82-securities-settlement-message-linter",
        "art-83-buy-in-exposure-modeler",
        "art-84-settlement-efficiency-kpi"
      ],
      "chains_live": 8,
      "chains": [
        "sd-fit",
        "sd-penalty",
        "sd-failpredict",
        "sd-ssi-hygiene",
        "sd-alloc-affirm",
        "sd-message-conformance",
        "sd-buyin",
        "sd-audit-pack"
      ],
      "mcp_tools_added": [
        "run_t1_readiness_diagnostic",
        "calculate_csdr_penalty",
        "predict_settlement_fail",
        "check_ssi_conformance",
        "check_allocation_affirmation",
        "lint_securities_settlement_message",
        "model_buy_in_exposure",
        "compute_settlement_efficiency_kpi"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-settlement-discipline.html",
      "regulatory_refs": [
        "ESMA CSDR Settlement Discipline RTS — Final Report 13 Oct 2025 (ESMA74-2119945926-3430): penalty-rate increases, same-day allocation/confirmation by 23:00 CET + machine-readable formats from Dec 2026.",
        "EU T+1: CSDR amending text in OJ 14 Oct 2025, application 11 Oct 2027; ESMA high-level roadmap 30 Jun 2025; EU/UK/CH coordinated same date.",
        "CSDR Reg. (EU) 909/2014 Art 7 + Delegated Reg. 2017/389 (penalty mechanism); CSDR Refit Reg. (EU) 2023/2845 (mandatory buy-ins retained as reformed last resort, pending delegated acts).",
        "ISO 20022 securities-settlement messages: sese.023, sese.024, semt.044 (securities family only -- NOT pacs/camt payments).",
        "SSI fail data: ~30% of fails from incorrect/stale SSIs (EquiLend/FinOps; verify current data). Verify all rates and dates."
      ],
      "status": "complete — 8 settlement-discipline tools (ART-77–84), 8 settlement-discipline chains, guide hub. Allocation/confirmation timing rules binding Dec 2026 (23:00 CET, machine-readable). Coordinated EU/UK/CH T+1 go-live 11 Oct 2027. CSDR cash penalties live since 1 Feb 2022. ISO 20022 scope: sese/semt ONLY (not pacs/camt). chaingraph.json v1.22.0."
    },
    "wave_18": {
      "name": "Post-Quantum Cryptography — Protocol Migration (TLS/PKI, SWIFT/ISO 20022, FIDO2/WebAuthn, Blockchain)",
      "shipped": "2026-06-21",
      "nodes_live": 5,
      "live": [
        "art-85-pqc-timeline-fit-diagnostic",
        "art-86-tls-pki-migration-planner",
        "art-87-iso20022-pqc-readiness-checker",
        "art-88-fido-pqc-conformance-checker",
        "art-89-blockchain-quantum-risk-classifier"
      ],
      "reused_catalog_tools": [
        "499-crypto-asset-inventory-classifier",
        "500-hndl-quantum-risk-scorer",
        "501-pqc-migration-roadmap-builder",
        "502-crypto-agility-readiness-scorer"
      ],
      "chains_live": 7,
      "chains": [
        "pqc-fit",
        "pqc-tls-pki",
        "pqc-swift-iso20022",
        "pqc-fido-webauthn",
        "pqc-blockchain-risk",
        "pqc-hndl-protocol-plan",
        "pqc-audit-pack"
      ],
      "mcp_tools_added": [
        "run_pqc_timeline_fit",
        "plan_tls_pki_migration",
        "check_iso20022_pqc_readiness",
        "check_fido_pqc_conformance",
        "classify_blockchain_quantum_risk"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-pqc.html",
      "regulatory_refs": [
        "NIST FIPS 203 (ML-KEM) + FIPS 204 (ML-DSA) + FIPS 205 (SLH-DSA) — finalized Aug 2024; NIST HQC selected Mar 2025; FIPS 206/FN-DSA draft Aug 2025. Verify current NIST CSRC.",
        "EU coordinated PQC roadmap — national cryptographic inventories required by end-2026; finance PQC-secured by 2030; broad migration by 2035. Linked to DORA/NIS2/CRA.",
        "G7 financial-sector PQC roadmap — Jan 2026.",
        "US CNSA 2.0 / NSM-10 — NSS procurement deadline 2027; full migration deadline 2035.",
        "BIS Project Leap Phase 2 (with SWIFT) — tested PQC at ISO 20022 BAH level; ML-DSA signature ~12.9x RSA payload. Verify current BIS report.",
        "PCI DSS 4.0 Req 12.3.3 — crypto inventory + obsolescence plan mandatory after 31 Mar 2025.",
        "FIDO Alliance CTAP2.3 — ML-DSA COSE identifiers; IANA COSE Algorithm Registry. Verify current.",
        "BIP-360 (Bitcoin quantum-safe address), XRPL quantum roadmap, Ethereum quantum roadmap — all verify current status."
      ],
      "status": "complete — 5 protocol-track PQC tools (ART-85-89: timeline-fit router + TLS/PKI, SWIFT/ISO 20022, FIDO2/WebAuthn, blockchain), 7 pqc-* chains, guide hub. Reuses live catalog tools 499/500/501/502 as chain feeders (no duplication, CONTRACT §A3.4). EU crypto-inventory deadline end-2026. CNSA NSS deadline 2027. chaingraph.json v1.23.0."
    },
    "wave_1": {
      "tools": 10,
      "live": 10,
      "planned": 0,
      "hardest_deadline": "2026-08-02",
      "hardest_deadline_tool": "art-05-eu-ai-act-credit-scoring-conformity"
    },
    "wave_2": {
      "tools": 9,
      "live": 9,
      "planned": 0,
      "hardest_deadline": "2026-09-01",
      "hardest_deadline_tool": "art-08-en16931-einvoice-batch-validator",
      "shipped": "2026-06-12"
    },
    "wave_3": {
      "tools_live": 9,
      "live": [
        "rca-02-mica-reserve-stress",
        "pnr-01-dora-ict-cascade-simulator",
        "cry-04-merkle-batch-verifier",
        "qfa-01-options-greeks",
        "mms-03-app-fraud-graph",
        "qfa-04-xva-cva-calculator",
        "rca-01-frtb-ima-pre-validator",
        "ml-01-isolation-forest",
        "sim-07-open-banking-consent-flow-stress"
      ],
      "planned": [],
      "shipped_first": "2026-06-12",
      "shipped_complete": "2026-06-12"
    },
    "wave_4": {
      "tools_live": 4,
      "live": [
        "qfa-03-stress-test-engine",
        "ml-02-credit-default-risk-scorer",
        "ml-03-timeseries-anomaly-detector",
        "art-14-psd3-psr-readiness-checker"
      ],
      "planned": [],
      "shipped_complete": "2026-06-13",
      "hardest_deadline": "2026-08-02",
      "hardest_deadline_tool": "ml-02-credit-default-risk-scorer"
    },
    "wave_A": {
      "nodes_live": 14,
      "live": [
        "art-15-agentic-mandate-sandbox",
        "art-16-google-ap2-mandate-builder",
        "art-17-ap2-mcp-policy-validator",
        "art-18-mcp-developer-readiness-scorecard",
        "art-19-agentic-checkout-protocol-selector",
        "art-20-acp-ucp-product-feed-conformance-auditor",
        "art-21-agent-traffic-acceptance-policy-builder",
        "art-22-agentic-payments-protocol-comparator",
        "art-23-visa-trusted-agent-protocol-inspector",
        "art-24-mastercard-agentic-token-builder",
        "art-25-a2a-agent-card-validator",
        "art-26-x402-payload-decoder-flow-simulator",
        "art-27-agentic-readiness-diagnostic",
        "art-28-mcp-server-deployability-diagnostic"
      ],
      "chains_live": 3,
      "chains": [
        "agentic-checkout",
        "agentic-policy",
        "agentic-rail-standards"
      ],
      "shipped_first": "2026-06-13",
      "status": "Wave A complete — 14 nodes covering agentic mandate drafting, AP2 checkout/payment mandates, and MCP developer readiness scoring; 3 chains shipped"
    },
    "wave_B": {
      "nodes_live": 1,
      "live": [
        "art-29-dora-readiness-diagnostic"
      ],
      "chains_live": 10,
      "chains": [
        "dora-readiness-diagnostic",
        "dora-readiness",
        "instant-payments-vop",
        "aml-consolidation",
        "einvoicing-vida",
        "stablecoin-compliance",
        "eudi-wallet",
        "bank-capital-liquidity",
        "credit-decisioning",
        "fraud-decisioning"
      ],
      "shipped_first": "2026-06-13",
      "in_progress": "Wave B complete — all 10 chains shipped"
    },
    "wave_5_horizon": "Crypto-tax (CARF/DAC8/1099-DA), Basel LCR/NSFR/Pillar3, Pillar Two GloBE (US carve-out noted). See WORKFLOW-COMPOSITION-SPEC-WAVE5_2026-06-08.md.",
    "wave_6": {
      "nodes_live": 5,
      "live": [
        "art-30-agent-commerce-conformance-validator",
        "art-31-a2a-x402-extension-mandate-validator",
        "art-32-a2a-agent-card-trust-chain-validator",
        "cry-05-agent-action-audit-trail-aggregator",
        "art-33-mcp-server-self-attestation-pack"
      ],
      "chains_live": 4,
      "chains": [
        "agent-commerce-conformance",
        "agent-identity-trust",
        "mcp-server-attestation",
        "agent-session-receipt"
      ],
      "mcp_tools_added": [
        "emit_chaingraph_artifact",
        "verify_execution_hash",
        "build_chaingraph",
        "agent_commerce_conformance_workflow",
        "agent_identity_trust_workflow",
        "mcp_server_attestation_workflow",
        "agent_session_receipt_workflow"
      ],
      "a2a_agent_card": "https://ainumbers.co/.well-known/agent-card.json",
      "shipped_first": "2026-06-14",
      "status": "complete — 5 tools, 4 chains, A2A agent card, verify/build/emit MCP bindings. Deferred: section 3.4 async Tasks, section 3.5 server-side composers (post 2026-07-28 MCP final)."
    },
    "wave_8": {
      "name": "Canton / Tokenized Market Infrastructure",
      "shipped": "2026-06-18",
      "nodes_live": 13,
      "live": [
        "503-canton-tokenization-readiness-diagnostic",
        "504-settlement-risk-capital-optimizer",
        "505-tokenized-collateral-eligibility-checker",
        "506-onchain-cash-leg-finality-checker",
        "507-canton-dvp-atomicity-validator",
        "508-repo-haircut-collateral-calculator",
        "509-canton-party-allowlist-validator",
        "510-digital-asset-regulatory-classifier",
        "511-multi-currency-pvp-validator",
        "512-tokenized-security-lifecycle-validator",
        "513-margin-call-collateral-mobilizer",
        "514-tokenized-fund-collateral-validator",
        "515-collateral-swap-eligibility-validator"
      ],
      "tools": [
        "T503",
        "T504",
        "T505",
        "T506",
        "T507",
        "T508",
        "T509",
        "T510",
        "T511",
        "T512",
        "T513",
        "T514",
        "T515"
      ],
      "chains_live": 10,
      "chains": [
        "canton-capital-efficiency",
        "canton-dvp-readiness",
        "canton-repo-mobility",
        "canton-counterparty-onboarding",
        "canton-securities-issuance",
        "canton-margin-call",
        "canton-cash-leg-assurance",
        "canton-deposit-compliance",
        "canton-mmf-collateral",
        "canton-securities-lending"
      ],
      "mcp_tools_added": [
        "diagnose_canton_readiness",
        "optimize_settlement_capital",
        "check_tokenized_collateral_eligibility",
        "check_cash_leg_finality",
        "validate_canton_dvp_atomicity",
        "calculate_repo_haircut",
        "validate_canton_party_allowlist",
        "classify_digital_asset_regulatory",
        "validate_pvp_settlement",
        "validate_tokenized_security_lifecycle",
        "mobilize_margin_collateral",
        "validate_fund_collateral",
        "validate_collateral_swap_eligibility",
        "canton_capital_efficiency_workflow"
      ],
      "status": "complete — 13 Canton/TMI tools (T503–T515), 6 chains, ISO 20022 pacs.008-subset + party-identification profiles. BCBS CRE70/CRE52/d349 capital and collateral citations; GENIUS Act + MiCA + MiFID II + EU DLT Pilot regulatory classification; PFMI P12 atomic DvP + PvP; GMRA/GMSLA/SFTR collateral swap."
    },
    "wave_9": {
      "nodes_live": 8,
      "live": [
        "art-34-tempo-fit-diagnostic",
        "art-35-tempo-payments-business-case",
        "art-36-tempo-mpp-agent-mandate",
        "art-37-tempo-stablecoin-issuance",
        "art-38-tempo-onchain-aml",
        "art-39-tempo-zone-disclosure",
        "art-40-tempo-agentic-checkout",
        "art-41-tempo-validator-readiness"
      ],
      "chains_live": 7,
      "chains": [
        "tempo-fit",
        "tempo-payments",
        "tempo-mpp-agent",
        "tempo-issuance",
        "tempo-onchain-aml",
        "tempo-zone-disclosure",
        "tempo-agentic-checkout"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-tempo.html",
      "mcp_tools_added": [
        "run_tempo_fit_diagnostic",
        "model_tempo_payment_economics",
        "decode_mpp_session",
        "validate_tempo_token_compliance",
        "screen_tip20_transfer_batch",
        "validate_tempo_zone_disclosure",
        "map_tempo_settlement",
        "score_tempo_validator_readiness"
      ],
      "shipped_first": "2026-06-18",
      "status": "complete — 8 Tempo tools (ART-34–ART-41), 7 chains (D0+W-A/B/C/D/E/F), guide hub. OCG v0.3.1; ISO 20022 pacs.008-subset + party-identification profiles; did:key agent identity (W-C); GENIUS Act + GENIUS PPSI AML NPRM + MiCA EMT + FATF Travel Rule citations verified. ART-41 validator readiness scorer added 2026-06-18."
    },
    "wave_10": {
      "name": "Circle Arc Network",
      "shipped": "2026-06-19",
      "nodes_live": 6,
      "live": [
        "art-42-arc-fit-diagnostic",
        "art-43-arc-cpn-model",
        "art-44-arc-stablefx-model",
        "art-45-arc-xreserve-linter",
        "art-46-arc-paymaster-model",
        "art-47-arc-cctp-transfer"
      ],
      "chains_live": 8,
      "chains": [
        "arc-fit",
        "arc-cpn-payment",
        "arc-stablefx",
        "arc-xreserve-issuance",
        "arc-dvp-settlement",
        "arc-agentic-commerce",
        "arc-reserve-compliance",
        "arc-cctp-transfer"
      ],
      "mcp_tools_added": [
        "run_arc_fit_diagnostic",
        "model_arc_cpn_economics",
        "model_arc_stablefx_rfq",
        "lint_arc_xreserve_config",
        "model_arc_paymaster_economics",
        "validate_cctp_v2_transfer"
      ],
      "regulatory_refs": [
        "GENIUS Act §4 eligible-asset backing (1:1, demand deposits, T-bills <93d, overnight repo on T-bills, Fed reserves)",
        "GENIUS Act §4(a)(11) yield prohibition for PPSIs",
        "MiCA Art. 54 EMT reserve requirements",
        "PFMI Principle 12 atomic settlement",
        "BIS FX Global Code Principle 35 (netting/PvP preferred)",
        "BIS Allsopp et al. 1996 Herstatt risk methodology",
        "ERC-4337 account abstraction spec",
        "Circle CCTP v2 documentation — 13 domains, Fast Transfer 30s, v1 sunset 31 Jul 2026",
        "WorldBank Remittance Prices Q4 2024 (SWIFT benchmark)",
        "Nacha 2024 (ACH benchmark)"
      ],
      "status": "complete — 6 Arc tools (ART-42–ART-47), 8 chains (D0+W-A/B/C/D/E/F/G). Circle Arc L1: CPN corridor economics, StableFX Herstatt-risk model, xReserve GENIUS/MiCA linter, ERC-4337 Paymaster model, CCTP v2 transfer validator. CCTP v2 v1-sunset deadline 31 Jul 2026."
    },
    "wave_11": {
      "name": "US Treasury Clearing / FICC",
      "shipped": "2026-06-19",
      "nodes_live": 4,
      "live": [
        "art-48-treasury-clearing-fit-diagnostic",
        "art-49-clearing-access-model-selector",
        "art-50-ficc-margin-netting-estimator",
        "art-51-cross-margining-benefit-estimator"
      ],
      "chains_live": 9,
      "chains": [
        "treasury-clearing-fit",
        "treasury-clearing-member-access",
        "treasury-clearing-margin-netting",
        "treasury-clearing-cross-margin",
        "treasury-clearing-sponsored-repo",
        "treasury-clearing-collateral-mobility",
        "treasury-clearing-intraday-liquidity",
        "treasury-clearing-onboarding",
        "treasury-clearing-audit-pack"
      ],
      "mcp_tools_added": [
        "run_treasury_clearing_fit",
        "model_clearing_access_economics",
        "estimate_ficc_margin_netting",
        "estimate_cross_margin_benefit"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-treasury-clearing.html",
      "status": "complete — 4 TCM tools (ART-48–ART-51), 9 chains, guide hub. FICC GSD/MBSD clearing access, margin netting, cross-margining, sponsored repo, collateral mobility, intraday liquidity, participant onboarding, audit pack. chaingraph.json v1.16.0."
    },
    "wave_12": {
      "name": "Digital Trade / Electronic Trade Documents (MLETR)",
      "shipped": "2026-06-20",
      "nodes_live": 4,
      "live": [
        "art-52-digital-trade-fit-diagnostic",
        "art-53-mletr-ebl-conformance-validator",
        "art-54-digital-trade-rules-checker",
        "art-55-trade-document-provenance-verifier"
      ],
      "chains_live": 8,
      "chains": [
        "dtc-fit",
        "dtc-ebl-enforceability",
        "dtc-digital-lc",
        "dtc-doc-integrity",
        "dtc-counterparty-aml",
        "dtc-trade-finance",
        "dtc-tbml-surveillance",
        "dtc-audit-pack"
      ],
      "mcp_tools_added": [
        "run_digital_trade_fit",
        "validate_mletr_record",
        "check_digital_trade_rules",
        "verify_trade_document_set"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-digital-trade.html",
      "status": "complete — 4 DTC tools (ART-52–ART-55), 8 chains, guide hub. MLETR/eBL, eUCP v2.1/eURC v1.1/URDTT v1.0, TBML surveillance, Merkle provenance. chaingraph.json v1.17.0."
    },
    "wave_13": {
      "name": "Wholesale Tokenized Settlement — Cash & Cross-Network Layer",
      "shipped": "2026-06-20",
      "nodes_live": 4,
      "live": [
        "art-56-tokenized-settlement-fit-diagnostic",
        "art-57-deposit-token-compliance-validator",
        "art-58-cross-network-settlement-validator",
        "art-59-settlement-asset-finality-classifier"
      ],
      "chains_live": 8,
      "chains": [
        "wholesale-settlement-fit",
        "wholesale-settlement-cross-network-dvp",
        "wholesale-settlement-deposit-token",
        "wholesale-settlement-settlement-asset",
        "wholesale-settlement-collateral-mobility",
        "wholesale-settlement-intraday-liquidity",
        "wholesale-settlement-participant-onboarding",
        "wholesale-settlement-audit-pack"
      ],
      "mcp_tools_added": [
        "run_tokenized_settlement_fit",
        "validate_deposit_token_compliance",
        "validate_cross_network_settlement",
        "classify_settlement_asset_finality"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-wholesale-settlement.html",
      "hardest_deadline": "2026-10-01",
      "hardest_deadline_tool": "art-58-cross-network-settlement-validator",
      "hardest_deadline_note": "DTCC Collateral AppChain full production Oct 2026; ECB Pontes pilot end-Q3 2026",
      "regulatory_refs": [
        "EU Settlement Finality Directive 98/26/EC (SFD designation — Tier 1 finality)",
        "UCC Article 12 (controllable electronic records, 2022 amendments)",
        "CPMI-IOSCO PFMI Principle 8 (settlement finality) + Principle 12 (DvP)",
        "BIS Project Agorá (unifying ledger, real-value testing May 2026)",
        "ECB Pontes (TARGET-link DLT settlement pilot, end-Q3 2026)",
        "DTCC Collateral AppChain (SEC pilot Dec 2025; full production Oct 2026)",
        "Kinexys/JPMD on Canton (phased 2026)",
        "UK Regulated Liability Network (tokenised sterling deposits, pilot mid-2026)",
        "MiCA Art. 2(6) deposit carve-out (deposit tokens NOT subject to EMT regime)",
        "BIS singleness of money (par with central bank money)"
      ],
      "status": "complete — 4 WTS tools (ART-56–ART-59), 8 wholesale-settlement chains, guide hub. Cash/settlement layer distinct from Canton asset layer. Deposit-token compliance, settlement-asset finality classification (SFD/PFMI/UCC Art.12), cross-network atomic DvP/PvP (BIS Agorá/ECB Pontes/DTCC pattern), 24/7 collateral mobility. chaingraph.json v1.18.0."
    },
    "wave_14": {
      "name": "Agent Economy Runtime — x402 V2 Batch Settlement · AP2 PaymentReceipt · HNP Autonomy · Agent-Service Metering",
      "shipped": "2026-06-20",
      "nodes_live": 4,
      "live": [
        "art-60-agent-economy-runtime-fit-diagnostic",
        "art-61-x402-batch-settlement-reconciler",
        "art-62-ap2-payment-receipt-verifier",
        "art-63-agent-service-metering-modeler"
      ],
      "chains_live": 8,
      "chains": [
        "agent-economy-fit",
        "agent-economy-batch-settlement",
        "agent-economy-payment-receipt",
        "agent-economy-autonomous-guardrail",
        "agent-economy-metering",
        "agent-economy-fraud-runtime",
        "agent-economy-marketplace",
        "agent-economy-audit-pack"
      ],
      "mcp_tools_added": [
        "run_agent_economy_fit",
        "reconcile_x402_batch_settlement",
        "verify_ap2_payment_receipt",
        "model_agent_service_metering"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-agent-economy-runtime.html",
      "regulatory_refs": [
        "x402 V2 Batch Settlement — Linux Foundation x402 Foundation (launched Apr 2026; Coinbase, Stripe, Cloudflare, Visa, Google, Solana Foundation, Fiserv). Batch settlement (off-chain escrow/vouchers) shipped May 2026.",
        "AP2 v0.2 — Agent Payments Protocol donated to FIDO Alliance Apr 2026 (60+ orgs). Adds PaymentReceipt primitive and Human-Not-Present autonomous payments with guardrails.",
        "W3C Verifiable Credentials — mandate chain and receipt signing.",
        "Juniper Research: agentic commerce TAM $1.5T by 2030; McKinsey: $3-5T."
      ],
      "status": "complete — 4 AER tools (ART-60–ART-63), 8 agent-economy chains, guide hub. Runtime/post-trade layer distinct from pre-trade agentic cluster. x402 V2 batch-settlement reconciliation, AP2 v0.2 PaymentReceipt verification + HNP guardrail, agent-service metering/marketplace economics. chaingraph.json v1.19.0."
    },
    "wave_19": {
      "wave": 19,
      "title": "Sanctions & Export-Control Screening Conformance",
      "tools": [
        "art-90",
        "art-91",
        "art-92",
        "art-93",
        "art-94",
        "art-95",
        "art-96",
        "art-97"
      ],
      "chains": [
        "sanctions-fit",
        "sanctions-ownership",
        "sanctions-list-coverage",
        "sanctions-fuzzy-calibration",
        "ec-eccn-classify",
        "ec-circumvention",
        "sanctions-screening-quality",
        "sanctions-audit-pack"
      ],
      "catalysts": [
        "BIS Affiliates Rule in force 29 Sep 2025",
        "EU 20th sanctions package 23 Apr 2026",
        "OFSI->UK Sanctions List 28 Jan 2026",
        "EU dual-use Annex I update 15 Nov 2025"
      ],
      "description": "8 new tools (ART-90-97): sanctions/export-control screening fit diagnostic, ownership 50%-rule aggregator, list-coverage checker, fuzzy-match calibrator, ECCN/dual-use classifier, circumvention diligence assessor, no-Russia-clause pack builder, screening quality scorer. 8 sanctions/export-control chains. Synthetic entities only. Zero PII."
    },
    "wave_20": {
      "name": "MiCA CASP Lifecycle — Title-V Authorization, Own-Funds, Whitepaper iXBRL, MAR-Crypto, Travel Rule",
      "shipped": "2026-06-22",
      "nodes_live": 8,
      "live": [
        "art-98",
        "art-99",
        "art-100",
        "art-101",
        "art-102",
        "art-103",
        "art-104",
        "art-105"
      ],
      "chains_live": 8,
      "chains": [
        "mica-fit",
        "mica-casp-authorization",
        "mica-transitional",
        "mica-whitepaper",
        "mica-mar-surveillance",
        "mica-travel-rule",
        "mica-token-scoping",
        "mica-audit-pack"
      ],
      "mcp_tools_added": [
        "run_mica_casp_fit",
        "route_mica_transitional_deadline",
        "assess_mica_casp_readiness",
        "calculate_mica_own_funds",
        "lint_crypto_asset_whitepaper",
        "assess_mar_crypto_surveillance",
        "validate_tfr_travel_rule_batch",
        "scope_mica_token_and_service"
      ],
      "guide_hub": "https://ainumbers.co/chaingraph/guide-mica-casp.html",
      "regulatory_refs": [
        "MiCA Reg. (EU) 2023/1114 — Title V CASP provisions (applied 30 Dec 2024)",
        "MiCA Art 143(3) — CASP transitional cliff 30 Jun 2026 (16 EU states)",
        "ESMA MAR-crypto RTS finalised 17 Dec 2024 (ESMA70-472101844-4975)",
        "TFR recast Reg. (EU) 2023/1113 (applied 30 Dec 2024)",
        "ITS (EU) 2024/2984 — iXBRL + ESMA MiCA taxonomy for whitepapers",
        "MiCA Art 67 + Annex IV — CASP own-funds requirements"
      ],
      "catalysts": [
        "MiCA Title V applied 30 Dec 2024",
        "CASP transitional cliff 30 Jun 2026 (16 EU states)",
        "ESMA MAR-crypto RTS Dec 2024",
        "TFR recast applied 30 Dec 2024"
      ],
      "description": "8 new tools (ART-98-105): MiCA CASP fit diagnostic, transitional-deadline router, authorization-readiness assessor, Art 67 own-funds calculator, crypto-asset whitepaper linter (iXBRL), MAR-crypto surveillance assessor, TFR travel-rule batch validator, MiCA token & service scoper. 8 MiCA chains. Synthetic config only. Zero PII."
    },
    "wave_21": {
      "name": "Tempo / Canton / Arc Extension — Subscription Reconciliation, Gas-AMM, Selective-Disclosure, DTC Treasury, Partner Onboarding, Corridor Router",
      "shipped": "2026-06-25",
      "nodes_live": 6,
      "live": [
        "art-106",
        "art-107",
        "art-108",
        "art-109",
        "art-110",
        "art-111"
      ],
      "chains_live": 6,
      "chains": [
        "tempo-subscription-settlement",
        "tempo-gas-economics",
        "canton-selective-disclosure",
        "canton-dtc-treasury",
        "arc-partner-onboarding",
        "arc-multicurrency-corridor"
      ],
      "mcp_tools_added": [
        "reconcile_mpp_subscription",
        "model_tempo_gas_economics",
        "validate_canton_selective_disclosure",
        "validate_dtc_tokenized_treasury",
        "score_partner_stablecoin_readiness",
        "route_partner_stablecoin_jurisdiction"
      ],
      "regulatory_refs": [
        "ISO 20022 pacs.008 MPP session/subscription semantics",
        "PFMI Principle 12 — DvP atomic settlement",
        "DTCC/DTC Rule 43 — custody-linked tokenized securities",
        "ComposerX DAML lifecycle templates for tokenized UST",
        "Circle Partner Stablecoins technical/reserve/risk standards",
        "MiCA Reg. (EU) 2023/1114 Title III/IV — EMT reserve requirements (rca-02 link)",
        "FATF Recommendation 16 / TFR Reg. (EU) 2023/1113 — Travel Rule (art-104 link)"
      ],
      "catalysts": [
        "Tempo MPP streaming subscription adoption — post-execution reconciliation gap",
        "Canton selective privacy — counterparty attestation without cross-leg disclosure",
        "DTCC tokenized UST DLT pilot (ComposerX DAML)",
        "Circle Partner Stablecoins non-USD expansion (EURC, JPYC, BRLA, MXNB)",
        "Arc multi-currency corridors — cross-regime compliance routing"
      ],
      "description": "6 new nodes (art-106–111) + 6 new chains across Tempo, Canton, and Arc hubs. Three §16-signed attestation nodes (art-106/108/110). Server-kernel compute for all six. Zero PII — structural/synthetic inputs only."
    },
    "wave_25": {
      "name": "EU CRA / SBOM / SLSA / OpenVEX — Supply-Chain Software Integrity",
      "shipped": "2026-06-26",
      "nodes_live": 6,
      "live": [
        "art-135-cyclonedx-sbom-validator",
        "art-136-slsa-provenance-verifier",
        "art-137-openvex-statement-validator",
        "art-138-spdx-sbom-validator",
        "art-139-cra-annex1-completeness-checker",
        "art-140-cra-vuln-reporting-readiness"
      ],
      "chains_live": 2,
      "chains": [
        "sbom-provenance-attestation",
        "cra-product-conformance"
      ],
      "mcp_tools_added": [
        "validate_cyclonedx_sbom",
        "verify_slsa_provenance",
        "validate_openvex_statement",
        "validate_spdx_sbom",
        "check_cra_annex1_completeness",
        "assess_cra_vuln_reporting_readiness"
      ],
      "regulatory_refs": [
        "EU CRA (Reg. EU 2024/2847) Annex I Part I — essential cybersecurity requirements incl. machine-readable SBOM; full applicability Dec 2027",
        "EU CRA Art. 14 — actively-exploited vulnerability: 24-hour early warning + 72-hour notification to CSIRT/ENISA; obligation date 11 Sep 2026",
        "CycloneDX SBOM spec 1.4/1.5/1.6 — OWASP; bomFormat, components[].purl, dependencies[]",
        "SPDX SBOM spec 2.x/3.x — Linux Foundation; spdxVersion, packages[].{name,versionInfo,downloadLocation|purl externalRef}, relationships[]",
        "SLSA Supply-chain Levels for Software Artifacts v1 (slsa.dev) — in-toto Statement, builder.id, subject digest, levels 0-3",
        "OpenVEX v0.2.0 (openvex.dev) — @context, statements[].{vulnerability,products[],status,justification}"
      ],
      "catalysts": [
        "EU CRA Art.14 — 11 Sep 2026 hard deadline for vulnerability reporting readiness",
        "EU CRA Annex I SBOM mandate — machine-readable SBOM now a conformity gate",
        "SLSA provenance adoption accelerating via GitHub Actions / Google SLSA Verifier",
        "OpenVEX emerging as EU CRA-compatible disclosure format alongside VEX/CycloneDX",
        "Supply-chain attacks (XZ, 3CX, SolarWinds) driving enterprise SBOM+VEX adoption"
      ],
      "description": "6 new nodes (art-135–140) + 2 new chains. Two parallel 3-step pipelines: SBOM Provenance Attestation (CycloneDX→SLSA→OpenVEX) and CRA Product Conformance (SPDX→Annex I→Art.14). Synchronous server-kernel compute — no crypto, no network. §16 proof OPT-IN default-OFF. export_capability=[json,vc] for art-135-138; [json,pdf,vc] for art-139-140. chaingraph.json v1.29.0 (168 nodes, 216 chains)."
    },
    "wave_26": {
      "name": "NIS2 Cross-Sector Cybersecurity & Operational Resilience",
      "shipped": "2026-06-26",
      "nodes_live": 6,
      "live": [
        "art-141-nis2-entity-scope-classifier",
        "art-142-nis2-art21-gap-checker",
        "art-143-nis2-penalty-exposure-calculator",
        "art-144-nis2-incident-significance-scorer",
        "art-145-nis2-ict-supply-chain-diligence-scorer",
        "art-146-nis2-governance-readiness-checker"
      ],
      "chains_live": 2,
      "chains": [
        "nis2-entity-scope-and-obligations",
        "nis2-incident-and-supply-chain-readiness"
      ],
      "mcp_tools_added": [
        "classify_nis2_entity",
        "check_nis2_art21_measures",
        "calculate_nis2_penalty_exposure",
        "score_nis2_incident_significance",
        "score_nis2_supply_chain_diligence",
        "check_nis2_governance_readiness"
      ],
      "regulatory_refs": [
        "NIS2 Directive EU 2022/2555 — active October 2024; ~160,000 entities in scope across energy, transport, health, banking, digital infrastructure, financial markets",
        "NIS2 Annex I — Essential entities: ≥250 employees OR ≥€50M annual turnover; automatic carve-outs for DNS providers, TLD registries, qualified trust service providers, public electronic comms networks",
        "NIS2 Annex II — Important entities: ≥50 employees OR ≥€10M annual turnover in postal/waste/manufacturing/food/chemicals/digital-services/research sectors",
        "NIS2 Art. 21 — 10 mandatory cybersecurity risk-management measures (a)–(j); board must approve (Art. 20); active Oct 2024",
        "NIS2 Art. 23 — Significant incident: 24h early warning / 72h notification / 30-day final report to national CSIRT",
        "NIS2 Art. 34 — Essential: max(€10M, 2% global turnover); Important: max(€7M, 1.4%)",
        "ENISA Good Practices for ICT Supply Chain Cybersecurity (2024) — Art. 21(2)(d) operationalisation"
      ],
      "catalysts": [
        "NIS2 first enforcement wave 2026 — ~22/27 MS fully transposed; FR/IE/LU/NL/ES in final legislative procedure",
        "NIS2 entity registration deadline June 30 2026 — Essential/Important entity self-identification",
        "EU CRA + NIS2 enforcement convergence: product makers (CRA) and operators (NIS2) both in scope simultaneously from late 2026",
        "ENISA NIS2 supervision guidance published Q1 2026 — enforcement criteria clarified for Art. 21 audits",
        "Board personal liability (Art. 20) driving CISO/board-level NIS2 readiness programmes"
      ],
      "description": "6 new nodes (art-141–146) + 2 new chains. Opens cluster ⑭ Cyber Resilience & Critical Infrastructure. Chain 1: entity scope (art-141) → Art. 21 gap check (art-142) → penalty exposure (art-143). Chain 2: incident significance (art-144) → supply-chain diligence (art-145) → governance readiness (art-146). Synchronous server-kernel compute — pure sector lookups, boolean scoring, threshold comparisons. §16 proof OPT-IN candidate: art-146. export_capability=[json,vc] for art-141/144/145; [json,pdf,vc] for art-142/143/146. chaingraph.json v1.30.0 (174 nodes, 218 chains)."
    },
    "wave_27": {
      "name": "MCP Governance & Agent Authorization Lifecycle",
      "shipped": "2026-06-26",
      "nodes_live": 6,
      "live": [
        "art-147-mcp-server-governance-assessor",
        "art-148-mcp-tool-scope-revocation-auditor",
        "art-149-mcp-oauth-authorization-auditor",
        "art-150-agent-obo-mandate-validator",
        "art-151-agent-authorization-lifecycle-tracker",
        "art-152-mcp-server-registry-entry-checker"
      ],
      "chains_live": 2,
      "chains": [
        "mcp-server-governance-conformance",
        "agent-authorization-lifecycle"
      ],
      "mcp_tools_added": [
        "assess_mcp_server_governance",
        "audit_mcp_tool_scope_revocation",
        "audit_mcp_oauth",
        "validate_agent_obo_mandate",
        "audit_agent_key_rotation",
        "check_mcp_registry_entry"
      ],
      "description": "6 new nodes (art-147–152) + 2 new chains. Cluster ⑬ Machine, AI & Software Integrity. MCP server governance + agent authorization lifecycle pipeline. chaingraph.json v1.31.0 (180 nodes, 220 chains)."
    },
    "wave_28": {
      "name": "EMIR Refit — Trade Reporting & Reconciliation",
      "shipped": "2026-06-26",
      "nodes_live": 6,
      "live": [
        "art-153-emir-trade-report-validator",
        "art-154-emir-uti-completeness-checker",
        "art-155-emir-upi-validator",
        "art-156-emir-counterparty-pairing-reconciler",
        "art-157-emir-lifecycle-event-validator",
        "art-158-emir-reporting-readiness-diagnostic"
      ],
      "chains_live": 2,
      "chains": [
        "emir-trade-report-validation",
        "emir-reconciliation-and-lifecycle"
      ],
      "mcp_tools_added": [
        "validate_emir_trade_report",
        "check_emir_uti_completeness",
        "validate_emir_upi",
        "reconcile_emir_pairing",
        "validate_emir_lifecycle_event",
        "run_emir_reporting_fit"
      ],
      "regulatory_refs": [
        "EMIR Refit EU 2019/834 — trade reporting obligations active April 2024",
        "EMIR Refit delegated regulation — 148 reconciliation fields, UTI sharing SLA 10:00 CET T+1",
        "ANNA DSB — UPI ISO 4914 sourcing for derivatives products",
        "ISO 20022 EMIR format cutover — mandatory from April 2024"
      ],
      "description": "6 new nodes (art-153–158) + 2 new chains. Opens cluster ⑮ Regulatory Trade & Transaction Reporting. Chain 1: trade report (art-153) → UTI completeness (art-154) → UPI validation (art-155). Chain 2: pairing/reconciliation (art-156) → lifecycle event (art-157) → readiness diagnostic (art-158). chaingraph.json v1.32.0 (186 nodes, 222 chains)."
    },
    "wave_29": {
      "name": "ViDA — VAT in the Digital Age: Digital Reporting Requirements & Platform",
      "shipped": "2026-06-26",
      "nodes_live": 6,
      "live": [
        "art-159-vida-einvoice-en16931-conformance-validator",
        "art-160-vida-drr-transaction-reporter",
        "art-161-vida-recapitulative-statement-migration-assessor",
        "art-162-vida-platform-deemed-supplier-classifier",
        "art-163-vida-oss-registration-router",
        "art-164-vida-compliance-readiness-diagnostic"
      ],
      "chains_live": 2,
      "chains": [
        "vida-digital-reporting-requirements",
        "vida-platform-and-registration"
      ],
      "mcp_tools_added": [
        "validate_vida_einvoice_conformance",
        "assess_vida_drr_reporting_obligation",
        "assess_vida_recapitulative_migration",
        "classify_vida_platform_deemed_supplier",
        "route_vida_oss_registration",
        "run_vida_readiness_diagnostic"
      ],
      "regulatory_refs": [
        "EU 2025/516 (ViDA Directive) — amends VAT Directive 2006/112/EC",
        "EN 16931-1:2026 — structured e-invoice semantic data model for DRR",
        "ViDA DRR Art. 264a — intra-EU B2B Digital Reporting Requirements, replaces EC Sales Lists; mandatory 2030-07-01; 10 calendar-day reporting deadline",
        "ViDA Art. 46a — platform deemed-supplier rule: short-term accommodation (≤30 nights) + intra-EU road transport; mandatory 2028-07-01; MS extension option to 2030-01-01",
        "ViDA Single VAT Registration (SVR) — Union OSS extended from 2028-07-01; Non-Union OSS, IOSS, Domestic VAT routing",
        "ViDA legacy regime harmonization deadline — pre-2024 domestic e-invoicing regimes by 2035-01-01; new regimes by 2030-07-01"
      ],
      "catalysts": [
        "ViDA published Official Journal May 2025 — enforcement clock running",
        "2028-07-01: platform deemed-supplier + SVR/OSS extension mandatory",
        "2030-07-01: DRR replaces EC Sales Lists for intra-EU B2B; EN 16931 e-invoice mandatory",
        "2035-01-01: pre-2024 domestic e-invoicing regimes must harmonize to EN 16931",
        "High ERP/EDI investment cycle: all EU B2B issuers must upgrade invoice infrastructure before 2030"
      ],
      "description": "6 new nodes (art-159–164) + 2 new chains. Cluster ⑮ Regulatory Trade & Transaction Reporting. Chain 1: EN 16931 e-invoice conformance (art-159) → DRR scope + deadline (art-160) → ESL migration (art-161). Chain 2: platform deemed-supplier classification (art-162) → OSS routing (art-163) → readiness diagnostic (art-164). chaingraph.json v1.33.0 (192 nodes, 224 chains)."
    },
    "wave_30": {
      "name": "EU Deforestation Regulation (EUDR) — Due Diligence Statement + Supply-Chain Risk",
      "shipped": "2026-06-26",
      "nodes_live": 6,
      "live": [
        "art-165-eudr-dds-field-validator",
        "art-166-eudr-geolocation-plot-validator",
        "art-167-eudr-commodity-scope-classifier",
        "art-168-eudr-country-benchmark-risk-scorer",
        "art-169-eudr-supply-chain-traceability-linker",
        "art-170-eudr-readiness-diagnostic"
      ],
      "chains_live": 2,
      "chains": [
        "eudr-due-diligence-statement-validation",
        "eudr-supply-chain-risk-and-traceability"
      ],
      "mcp_tools_added": [
        "validate_eudr_due_diligence_statement",
        "validate_eudr_geolocation",
        "classify_eudr_commodity_scope",
        "score_eudr_country_risk",
        "link_eudr_supply_chain_traceability",
        "run_eudr_readiness_fit"
      ],
      "regulatory_refs": [
        "Reg. (EU) 2023/1115 (EUDR) — published OJ 9 Jun 2023; entry into force 29 Jun 2023",
        "EUDR Art. 38 — enforcement deadlines: large/medium operators 2026-12-30; micro/SME 2027-06-30",
        "EUDR Art. 9(1)(d) — geolocation requirement: Point for plots <4 ha, Polygon for >=4 ha",
        "EUDR Art. 29 — country benchmark risk classification (low/standard/high); Commission delegated act pending",
        "EUDR Art. 4 — single-DDS upstream rule: first operator files; downstream reference DDS ref number",
        "EUDR Art. 13 — simplified due diligence for low-risk countries (1% inspection rate)",
        "EUDR Annex I — 7 regulated commodities: cattle, cocoa, coffee, oil palm, rubber, soya, wood + derivatives",
        "TRACES NT — EU system for electronic DDS filing"
      ],
      "catalysts": [
        "2026-12-30: EUDR mandatory for large and medium operators — DDS must be filed in TRACES NT before placing on EU market",
        "2027-06-30: EUDR mandatory for micro-enterprises and SMEs",
        "Country benchmark classification delegated act expected H2 2026",
        "Every EU commodity importer of 7 EUDR-covered categories affected (cocoa, coffee, wood, palm oil, soya, rubber, cattle)",
        "DDS = pure schema+geo validation before submission — OCG core lane"
      ],
      "description": "6 new nodes (art-165-170) + 2 new chains. Opens cluster 16 Supply-Chain & Environmental Due Diligence. Chain 1: DDS field validation (art-165) -> geolocation plot validation (art-166) -> commodity scope classification (art-167). Chain 2: country benchmark risk scoring (art-168) -> supply-chain traceability linking (art-169) -> A-F readiness diagnostic (art-170). chaingraph.json v1.34.0 (198 nodes, 226 chains)."
    },
    "wave_32": {
      "name": "Insurance — IFRS 17 + Solvency II",
      "shipped": "2026-06-27",
      "nodes_live": 6,
      "live": [
        "art-177-ifrs17-measurement-model-classifier",
        "art-178-ifrs17-csm-rollforward-validator",
        "art-179-ifrs17-risk-adjustment-checker",
        "art-180-solvency2-scr-ratio-calculator",
        "art-181-sii-ifrs17-reconciliation-bridger",
        "art-182-insurance-reporting-readiness-diagnostic"
      ],
      "chains_live": 2,
      "chains": [
        "ifrs17-measurement-conformance",
        "solvency-ii-reconciliation-and-capital"
      ],
      "mcp_tools_added": [
        "classify_ifrs17_measurement_model",
        "validate_ifrs17_csm_rollforward",
        "check_ifrs17_risk_adjustment",
        "calculate_solvency2_scr_ratio",
        "reconcile_sii_ifrs17",
        "run_insurance_reporting_fit"
      ],
      "regulatory_refs": [
        "IFRS 17 Insurance Contracts — mandatory for IFRS reporters from Jan 1 2023 (IASB issued May 2017, amended Jun 2020)",
        "IFRS 17 para 17-23 — PAA eligibility: coverage period <= 12 months or similar result to GMM",
        "IFRS 17 para 31-36 — VFA eligibility: direct-participating features with investment-linked benefits (not reinsurance held)",
        "IFRS 17 para 44-50 — CSM roll-forward mechanics; no negative CSM — loss component on onerous contracts",
        "IFRS 17 para 56-57, 119b — risk-adjustment disclosure: technique, confidence level (VaR/CTE), onerous-contract loss component",
        "Solvency II Dir. 2009/138/EC — SCR/MCR; Delegated Reg. (EU) 2015/35 Art. 82-85 own-funds tiering limits",
        "Del. Reg. 2015/35 Art. 82(1)(a): Tier-1 unrestricted >= 50% SCR; Art. 82(1)(b): Tier-1 total >= 80% SCR; Art. 82(1)(c): Tier-3 <= 15% SCR",
        "EIOPA FSI Insights 26 — SII risk margin vs IFRS 17 risk adjustment: RA typically 33-44% lower than SII risk margin for life",
        "ICS (Insurance Capital Standard) — fully mandatory for IAIGs from Jan 1 2025 (IAIS)"
      ],
      "catalysts": [
        "IFRS 17 live Jan 1 2023 — every IFRS-reporting insurer in 130+ jurisdictions must apply GMM/VFA/PAA, CSM roll-forward, and RA disclosure",
        "Solvency II Pillar-3 QRT annual filing: tiering limits enforced by NCAs; SCR breach triggers regulatory escalation",
        "SII-IFRS 17 reconciliation is a known industry pain (EIOPA implementation report 2024): RA vs risk margin, CSM as SII bridge item",
        "ICS fully mandatory for IAIGs from Jan 1 2025 — sixth dimension of the readiness diagnostic",
        "Insurance is the suite's first untapped vertical — OCG now covers bank, payments, agentic, and insurance prudential"
      ],
      "description": "6 new nodes (art-177-182) + 2 new chains. Opens cluster 17 Insurance, Actuarial & Prudential — the suite's first insurance vertical. Chain 1: measurement model (art-177) -> CSM roll-forward (art-178) -> risk-adjustment disclosure (art-179). Chain 2: SCR/MCR ratio (art-180) -> SII-IFRS 17 reconciliation (art-181) -> A-F readiness diagnostic (art-182). chaingraph.json v1.37.0 (210 nodes, 230 chains)."
    },
    "wave_33": {
      "name": "IRRBB — Interest Rate Risk in the Banking Book",
      "shipped": "2026-07-01",
      "nodes_live": 6,
      "live": [
        "art-183-irrbb-eve-shock-calculator",
        "art-184-irrbb-sot-eve-evaluator",
        "art-185-irrbb-sot-nii-evaluator",
        "art-186-irrbb-standardised-approach-mapper",
        "art-187-irrbb-csrbb-scope-checker",
        "art-188-irrbb-disclosure-readiness-diagnostic"
      ],
      "chains_live": 2,
      "chains": [
        "irrbb-supervisory-outlier-test",
        "irrbb-measurement-and-disclosure"
      ],
      "mcp_tools_added": [
        "calculate_irrbb_eve_shocks",
        "evaluate_irrbb_sot_eve",
        "evaluate_irrbb_sot_nii",
        "map_irrbb_standardised_approach",
        "check_irrbb_csrbb_scope",
        "run_irrbb_disclosure_fit"
      ],
      "regulatory_refs": [
        "BCBS d368 — Interest Rate Risk in the Banking Book standards (2016, 2024 recalibration of the 6 standardised shock scenarios effective 1 Jan 2026)",
        "BCBS d368 Annex 2 — 6 standardised shock scenarios: parallel up/down, short up/down, steepener, flattener; 200bp reference parallel shock magnitude",
        "BCBS d368 para 87 / Annex 2 — NMD behavioural caps: retail transactional core <=90% / maturity <=5y; retail non-transactional core <=70% / maturity <=4.5y; wholesale core <=50% / maturity <=4y",
        "EBA Guidelines on IRRBB and CSRBB (EBA/GL/2022/14) — SOT calibration, CSRBB scope and materiality, Pillar 2 proportionality",
        "EBA RTS on the Supervisory Outlier Test — EVE leg: delta EVE > 15% of Tier 1 capital is an EU-wide hard outlier threshold; NII leg threshold is competent-authority/institution discretion",
        "EBA RTS on the standardised/simplified-standardised IRRBB approach — EVE and NII measurement, behavioural-option add-ons",
        "Pillar 3 IRRBB1 disclosure template (Basel Framework DIS70)"
      ],
      "catalysts": [
        "Basel recalibrated shock scenarios take effect 1 Jan 2026 — every bank must recompute standardised EVE/NII under the new calibration",
        "EBA SOT is a hard pass/fail gate: an EVE breach of the 15%-of-Tier-1 threshold triggers immediate supervisory dialogue",
        "Distinct from the live trading-book/market-risk nodes (simulate_frtb_es, compute_portfolio_var, compute_rwa_scenarios) — this is banking-book interest-rate risk",
        "Zero PII (bucketed cash flows + capital), fully deterministic EVE/NII shock math and SOT pass/fail evaluation"
      ],
      "description": "6 new nodes (art-183-188) + 2 new chains, extending the prudential/Basel risk cluster. Chain 1: EVE shock calculator (art-183) -> SOT/EVE evaluator (art-184) -> SOT/NII evaluator (art-185). Chain 2: standardised approach mapper (art-186) -> CSRBB scope checker (art-187) -> A-F disclosure readiness diagnostic (art-188). Section 18 zkVM compute-integrity proofs deferred (no GPU/WSL toolchain in this build session); Section 17 kernel-source identity stamped for all 6. chaingraph.json v1.38.0 (216 nodes, 232 chains)."
    },
    "wave_34": {
      "name": "Client-Side Conversions",
      "shipped": "2026-07-02",
      "nodes_live": 6,
      "live": [
        "art-189-markdown-document-converter",
        "art-190-tabular-data-converter",
        "art-191-conversion-receipt-builder",
        "art-192-conversion-receipt-verifier",
        "art-193-metadata-sanitization-prover",
        "art-194-digest-manifest-builder"
      ],
      "chains_live": 2,
      "chains": [
        "document-conversion-verification",
        "document-sanitization-integrity"
      ],
      "mcp_tools_added": [
        "convert_markdown_document",
        "convert_tabular_data",
        "build_conversion_receipt",
        "verify_conversion_receipt",
        "prove_metadata_sanitization",
        "build_digest_manifest"
      ],
      "regulatory_refs": [
        "RFC 4180 — Common Format and MIME Type for CSV Files",
        "GFM (GitHub Flavored Markdown) pipe-table and CommonMark inline syntax",
        "RFC 8785 — JSON Canonicalization Scheme (JCS), used for receipt and manifest binding digests",
        "JPEG (ISO/IEC 10918) APP0/APP1-EXIF/COM segment structure; PNG (ISO/IEC 15948) tEXt/iTXt/zTXt/eXIf chunk structure"
      ],
      "catalysts": [
        "Popular client-side converters (VERT.sh, pdf2md, word2md, BentoPDF, Squoosh-class compressors, metadata strippers) prove privacy but attest nothing about what transformed the file",
        "This wave supplies the missing layer: a verifiable binding of input digest to converter identity to parameters to output digest, re-verifiable by anyone who re-hashes the files",
        "The AINumbers-side landing zone for BrowserChain: receipts and manifests are the artifacts whose execution_hash digests get anchored (anchor CTA ships flag-off)",
        "Zero PII: the kernels compute over text and digests only; the pages add local FileReader intake and crypto.subtle hashing with nothing uploaded"
      ],
      "description": "6 new nodes (art-189-194) + 2 new chains forming cluster 18, Client-Side Conversions. Two real converters (Markdown and tabular data) plus a conversion receipt build/verify pair, a metadata-sanitization prover, and a digest-manifest builder. Chain 1: markdown or tabular converter (art-189/art-190) -> conversion receipt builder (art-191) -> conversion receipt verifier (art-192). Chain 2: metadata sanitization prover (art-193) -> conversion receipt builder (art-191) -> digest manifest builder (art-194). All kernels are Class-A provable; Section 18 zkVM compute-integrity proofs run as a separate slice; Section 17 kernel-source identity stamped for all 6. chaingraph.json v1.39.0 (222 nodes, 234 chains)."
    },
    "wave_37": {
      "name": "US Mortgage Compliance Core",
      "shipped": "2026-07-04",
      "nodes_live": 6,
      "live": [
        "art-215-reg-z-appendix-j-apr",
        "art-216-trid-tolerance-cure",
        "art-217-trid-apr-accuracy",
        "art-218-qm-points-and-fees",
        "art-219-qm-apr-apor-spread",
        "art-220-reg-z-threshold-lookup"
      ],
      "chains_live": 2,
      "chains": [
        "mortgage-compliance-preflight",
        "mortgage-apr-accuracy-and-tolerance-cure"
      ],
      "guide_hub": "chaingraph/guide-mortgage-compliance.html",
      "mcp_tools_added": [
        "compute_reg_z_appendix_j_apr",
        "compute_trid_tolerance_cure",
        "verify_trid_apr_accuracy",
        "check_qm_points_and_fees",
        "classify_qm_apr_apor_spread",
        "lookup_reg_z_thresholds"
      ],
      "regulatory_refs": [
        "Reg Z Appendix J, 12 CFR 1026 Appendix J (actuarial APR general equation)",
        "Reg Z §1026.19(e)(3) TRID fee tolerance buckets and cure",
        "Reg Z §1026.22(a) APR accuracy tolerance (1/8 pp regular; 1/4 pp irregular)",
        "Reg Z §1026.43(e)(3) Qualified Mortgage points-and-fees test",
        "Reg Z §1026.43(e)(2)(vi) QM APR-APOR spread test",
        "Reg Z §1026.43(b)(4) HPCT safe-harbor vs rebuttable presumption",
        "Reg Z §1026.32(a)(1) HOEPA high-cost mortgage thresholds",
        "Reg Z §1026.35(a)(1) HPML higher-priced mortgage thresholds",
        "Reg Z §1026.52(b) CARD Act penalty fee safe harbor (CFPB dollar-eight cap vacated May 2025)",
        "FR 2025-22773 (2026 QM and HOEPA threshold adjustments, effective Jan 1 2026)"
      ],
      "catalysts": [
        "Agents reliably hallucinate current-year QM points-and-fees dollar thresholds; version-pinned tables with FR citations are the moat",
        "Reg Z Appendix J actuarial APR requires pure Newton-Raphson with no floating-point built-ins; browser-safe ECMA-262 implementation",
        "TRID APR accuracy and fee tolerance cure are the two most common remediation triggers in mortgage QC workflows",
        "First live OCG gated chain (mortgage-compliance-preflight): §21.4 decision gates with conditional-presence hash binding, fail-fast on understatement or QM fees failure"
      ],
      "description": "6 new nodes (art-215..220) + 2 chains forming cluster 21 (US Mortgage Compliance). Actuarial APR solver (Reg Z Appendix J, Newton-Raphson, pure ECMA-262), TRID fee tolerance cure (§1026.19(e)(3)), TRID APR accuracy verifier (§1026.22(a)), QM points-and-fees test (§1026.43(e)(3), version-pinned 2021-2026), QM APR-APOR spread classifier (§1026.43(e)(2)(vi), HPCT), and Reg Z threshold lookup service (qm_points_fees/hoepa/hpml/card_penalty). Chain 1: first live OCG gated chain with two §21.4 decision gates. Chain 2: linear APR accuracy and tolerance cure. chaingraph.json v1.46.0 (248 nodes, 239 chains)."
    },
    "wave_38": {
      "name": "US Mortgage Agency and Government Loan Pricing",
      "shipped": "2026-07-04",
      "nodes_live": 6,
      "live": [
        "art-221-llpa-stack",
        "art-222-agency-eligibility-matrix",
        "art-223-conforming-loan-limit",
        "art-224-fha-mip-eligibility",
        "art-225-va-funding-fee-residual",
        "art-226-mismo-uldd-ulad"
      ],
      "chains_live": 2,
      "chains": [
        "mortgage-agency-pricing-and-eligibility",
        "mortgage-government-loan-fit"
      ],
      "guide_hub": "chaingraph/guide-mortgage-compliance.html",
      "mcp_tools_added": [
        "compute_llpa_stack",
        "check_agency_eligibility_matrix",
        "check_conforming_loan_limit",
        "compute_fha_mip_eligibility",
        "compute_va_funding_fee_residual",
        "lint_mismo_uldd_ulad"
      ],
      "regulatory_refs": [
        "Fannie Mae LLPA Matrix effective 2025-11-01 (public, FNM-LLPA-2025-11-01)",
        "Fannie Mae Selling Guide B3-2-01 / B3-3.1-09 (DU/manual UW eligibility)",
        "Freddie Mac Single-Family Guide Ch.5100 (LPA eligibility)",
        "FHFA 2026 Conforming Loan Limits (FullCountyLoanLimitList2026.xlsx, FHFA-CLL-2026)",
        "HUD Handbook 4000.1 §II.A.8.p-q (FHA MIP)",
        "HUD Mortgagee Letter 2023-05 (reduced annual MIP rates effective 2023-03-20)",
        "HUD Mortgagee Letter 2024-01 (MIP rates 2024-2025)",
        "38 USC §3729(a)(2) (VA funding fee statutory table)",
        "VA Circular 26-25-3 (VA-FF-2025-01-01)",
        "VA Pamphlet 26-7 Ch.4 Tables 41A/41B (residual income, VA-PAMPHLET-26-7-CH4-2024)",
        "Fannie Mae ULDD Phase 5 Data Stencil (public, mandate effective 2025-07-28)",
        "Freddie Mac ULAD Data Dictionary v1.3 (public)"
      ],
      "catalysts": [
        "LLPA stack is the highest-table-density build to date: four pinned tables (LLPA, CLL, FHA MIP, VA fee), each version-stamped in output_payload",
        "Agents hallucinate LLPA rates and conforming limits; version-pinned tables with source citations are the moat",
        "ULDD Phase 5 mandate went live 2025-07-28 requiring lender delivery system updates; structural lint gives agents a rerunnable conformance artifact",
        "VA residual income tables are region-and-family-size dependent; deterministic kernel removes manual table lookups from the agent decision path",
        "Government loan routing chain (mortgage-government-loan-fit) uses §21.4 gate to route VA vs FHA programs deterministically",
        "Loan PII (ULDD data) never leaves the browser; all computation is client-side"
      ],
      "description": "6 new nodes (art-221..226) + 2 chains extending cluster 21 (US Mortgage Compliance). Fannie Mae LLPA stack (FICO-LTV grid + feature surcharges + FTHB waiver), DU/LPA agency eligibility matrix (DTI/LTV grids by occupancy/purpose), FHFA conforming loan limit classifier (2026 baseline/high-cost/AK-HI), FHA MIP eligibility (HUD 4000.1 UFMIP 1.75% + annual grid + 31/43 ratios), VA funding fee and residual income (38 USC §3729 + Pamphlet 26-7 Ch.4 tables), and ULDD Phase 5 / ULAD structural linter (public data stencils, bounded inputs). Chain 1 (mortgage-agency-pricing-and-eligibility): conforming limit check -> agency eligibility gate (INELIGIBLE exits; ELIGIBLE continues) -> LLPA pricing. Chain 2 (mortgage-government-loan-fit): program router gate (VA path -> funding fee/residual; FHA/default -> MIP). Both §21.4 gated with mandatory defaults. chaingraph.json v1.47.0 (254 nodes, 241 chains)."
    },
    "wave_39": {
      "name": "Fair Lending & Adverse Action",
      "shipped": "2026-07-04",
      "nodes_live": 7,
      "live": [
        "art-227-validate-adverse-action-notice",
        "art-228-build-adverse-action-notice",
        "art-229-compute-disparity-metrics",
        "art-230-compute-hmda-rate-spread",
        "art-231-compute-mla-mapr",
        "art-232-compute-scra-rate-cap",
        "art-233-check-card-act-ability-to-pay"
      ],
      "chains_live": 4,
      "chains": [
        "adverse-action-notice-compliance",
        "fair-lending-disparity-audit",
        "servicemember-lending-protections",
        "card-act-ability-to-pay"
      ],
      "guide_hub": "chaingraph/guide-fair-lending.html",
      "mcp_tools_added": [
        "validate_adverse_action_notice",
        "build_adverse_action_notice",
        "compute_disparity_metrics",
        "compute_hmda_rate_spread",
        "compute_mla_mapr",
        "compute_scra_rate_cap",
        "check_card_act_ability_to_pay"
      ],
      "regulatory_refs": [
        "12 CFR §1002.9 (Reg B adverse action notice)",
        "15 USC §1691 (ECOA)",
        "15 USC §1681m(a) (FCRA §615(a) credit score disclosure)",
        "CFPB Circular 2022-03 (prohibited vague reason codes)",
        "CFPB Circular 2023-03 (prohibited vague reason codes update)",
        "29 CFR §1607.4(D) (EEOC 4/5ths adverse impact rule)",
        "12 CFR Part 1003 (HMDA/Reg C); FFIEC rate spread methodology",
        "32 CFR Part 232 §232.4(c) (MLA 36% MAPR cap, effective 2016-10-03)",
        "50 USC §3937 (SCRA 6% interest rate cap; excess forgiven not deferred)",
        "15 USC §1665e; 12 CFR §1026.51 (CARD Act ATP)",
        "12 CFR §1026.52(b) (penalty fee safe harbor $32/$43; CFPB $8 rule vacated 2025-01-17, Fifth Circuit No. 24-10266)"
      ],
      "catalysts": [
        "Adverse action notices are the #1 CFPB exam finding; SHAP-ranked factor code resolver closes the gap between ML model output and Reg B notice text",
        "4/5ths rule computation on aggregate counts is zero-PII by construction -- no individual applicant data enters any kernel",
        "MLA MAPR cap is commonly miscalculated because it includes charges Reg Z APR excludes (credit insurance, membership fees); deterministic kernel prevents this",
        "SCRA excess interest is forgiven, not deferred (50 USC §3937(a)(2)); many servicers incorrectly model this as deferred",
        "CFPB $8 late fee rule vacated Jan 17, 2025 -- $32/$43 safe harbor thresholds remain in effect; both values baked into kernel with vacatur notice",
        "3 of 4 chains use §21.4 decision gates for automated branching; adverse-action and card-act chains exit immediately on pass, avoiding unnecessary notice generation"
      ],
      "description": "7 new nodes (art-227..233) + 4 chains forming cluster 22 (Fair Lending & Adverse Action). Adverse action notice validator (Reg B §1002.9, CFPB Circulars 2022-03/2023-03, FCRA §615(a)), SHAP-ranked notice builder (FICO 01-40 + VantageScore VS001-VS015), disparate impact metrics (4/5ths rule + z-stat + SMD, aggregate counts only, ZERO PII), HMDA rate spread (FFIEC methodology, 1.5/3.5/6.5 pp thresholds), MLA MAPR cap (32 CFR §232.4(c), 36% cap, bona fide fee $100/yr), SCRA rate cap (50 USC §3937, 6%, excess always forgiven), CARD Act ATP (§1026.51, DTI 45%, under-21, $32/$43 penalty safe harbor). Proofs deferred with real conformance fixtures. chaingraph.json v1.48.0 (261 nodes, 245 chains)."
    },
    "wave_39b": {
      "name": "US Mortgage Consumer Protection: HOEPA High-Cost and HPML Escrow (cluster 21 tuck-in)",
      "shipped": "2026-07-04",
      "nodes_live": 2,
      "live": [
        "art-234-test-hoepa-high-cost",
        "art-235-test-hpml-escrow"
      ],
      "chains_live": 1,
      "chains": [
        "mortgage-high-cost-and-hpml-screen"
      ],
      "guide_hub": "chaingraph/guide-mortgage-compliance.html",
      "mcp_tools_added": [
        "test_hoepa_high_cost",
        "test_hpml_escrow"
      ],
      "regulatory_refs": [
        "Reg Z §1026.32(a)(1) HOEPA high-cost mortgage triggers (APR, points-and-fees, prepayment penalty)",
        "Reg Z §1026.35(a)(1) HPML definition (APOR+1.5pp/2.5pp/3.5pp Dodd-Frank structural thresholds)",
        "Reg Z §1026.35(b)(1)-(2) HPML escrow requirement and exemptions (rural/underserved small creditor, condo master policy)",
        "FR 2025-22773 (2026 HOEPA points-and-fees threshold: 5% or $1,380 floor, effective Jan 1, 2026)"
      ],
      "catalysts": [
        "HOEPA and HPML are the two most common high-rate mortgage compliance triggers beyond QM; separate from QM ability-to-repay, require distinct regulatory treatment",
        "HOEPA points-and-fees threshold (5%) differs from QM (3%); agents reliably conflate these -- disambiguation enforced in node descriptions",
        "HPML escrow requirement applies to first-lien HPMLs only; rural/underserved small-creditor exemption is the primary carve-out for community banks",
        "Gated chain terminates on HOEPA high-cost (restrictions are terminal) before checking HPML escrow"
      ],
      "description": "2 new nodes (art-234..235) + 1 gated chain completing cluster 21 (US Mortgage Compliance) consumer-protection set. HOEPA three-trigger test (§1026.32(a)(1)): APR trigger (APOR+6.5pp/8.5pp), points-and-fees trigger (5% or $1,380 floor, 2026 FR 2025-22773), prepayment penalty trigger. HPML definition (§1026.35(a)(1), 1.5/2.5/3.5pp structural thresholds) and escrow requirement (§1026.35(b)(1)). Proofs deferred with real conformance fixtures. chaingraph.json v1.49.0 (263 nodes, 246 chains)."
    },
    "wave_40": {
      "name": "AI Decision Log, Agent Audit Trail & Insurance Governance (cluster 13 tuck-in)",
      "shipped": "2026-07-04",
      "nodes_live": 5,
      "live": [
        "art-236-build-ai-decision-log-record",
        "art-237-validate-agent-audit-trail",
        "art-238-classify-annex3-decisioning-obligations",
        "art-239-test-bifsg-bias-thresholds",
        "art-240-assess-naic-ais-program-readiness"
      ],
      "chains_live": 3,
      "chains": [
        "ai-decision-log-conformance",
        "insurance-ai-bias-attestation",
        "agent-audit-trail-conformance"
      ],
      "guide_hub": "chaingraph/guide-ai-governance.html",
      "mcp_tools_added": [
        "build_ai_decision_log_record",
        "validate_agent_audit_trail",
        "classify_annex3_decisioning_obligations",
        "test_bifsg_bias_thresholds",
        "assess_naic_ais_program_readiness"
      ],
      "regulatory_refs": [
        "EU AI Act (Reg. 2024/1689) Art 12(2) (decision logging for high-risk AI systems)",
        "EU AI Act Annex III 5(b)/(5)(c) (creditworthiness and life/health insurance pricing AI)",
        "EU AI Act Art 26(6) (deployer FRIA and human oversight duties)",
        "EU AI Act Art 27(1) (EU AI Act public database registration)",
        "IETF draft-sharif-agent-audit-trail-00 (AAT, expires Sept 2026)",
        "Colorado SB 21-169 (signed 2021-07-06)",
        "Colorado Reg. 10-1-1 (effective 2023-11-14, Colorado Division of Insurance, Market Regulation Branch)",
        "NAIC AI Model Bulletin (adopted Aug 2020, updated 2023)",
        "NAIC AI Systems (AIS) Evaluation Tool (2024 edition)"
      ],
      "catalysts": [
        "EU AI Act Art 12 decision-log records are the paper trail for every automated lending and insurance decision; Art 26(6) FRIA and Art 27(1) DB registration are the deployer-specific Art 12 triggers agents most often miss",
        "IETF AAT draft formalizes agent audit trail structure before EU enforcement; aligning now prevents costly retrofit at 2026-08-02",
        "Colorado SB 21-169 BIFSG attestation is December 1 annual deadline; anchoring the execution_hash via anchor.ainumbers.co/mcp produces the timestamp that IS the attestation evidence",
        "NAIC AIS Evaluation Tool 6-dimension scoring gives insurers a deterministic exam readiness gap list before the 12-state pilot expands",
        "classify_annex3_decisioning_obligations EXTENDS run_ai_act_highrisk_fit (art-64) rather than duplicating it; chain gate on is_high_risk=true prevents OUT_OF_SCOPE records from being logged",
        "art-239 is ZERO PII by construction: only aggregate regression outputs (p-value, marginal effect %, premium delta) enter the kernel -- no individual scores or proxy values"
      ],
      "description": "5 new nodes (art-236..240) + 3 chains folded into cluster 13 (AI Governance). Art 12(2) decision log builder (art-236): chain_position, art12_completeness_score, anchor_surface; IETF AAT validator (art-237): conformance_result, aat_completeness_score, sha256_prev_record chain-link check; Annex III FS obligations classifier (art-238): EXTENDS art-64, scope_verdict (5b creditworthiness / 5c insurance / OUT_OF_SCOPE), Art 12/26/27 obligation map; BIFSG insurance proxy bias test (art-239, CO SB 21-169, ZERO PII): statistical prong p<0.05 AND >=5pp + premium prong >=5% above avg, Dec 1 attestation anchor; NAIC AIS readiness (art-240): 6-dimension 0-3 scoring, GREEN/YELLOW/RED tier, exam gap list. 2 gated chains (ai-decision-log-conformance gates on /is_high_risk=false to end; insurance-ai-bias-attestation gates on /bias_detected=true to art-240) + 1 linear chain. Proofs deferred with real conformance fixtures (15 vectors, 5 nodes). Guide hub: guide-ai-governance.html extended (cluster 13 + cluster 22 cross-link). chaingraph.json v1.50.0 (268 nodes, 249 chains)."
    },
    "wave_42": {
      "name": "Remittance Disclosure and Corridor Economics (Felix)",
      "shipped": "2026-07-05",
      "nodes_live": 3,
      "live": [
        "art-248-compute-remittance-disclosure",
        "art-249-compare-corridor-cost",
        "art-250-model-stablecoin-corridor-economics"
      ],
      "chains_live": 2,
      "chains": [
        "remittance-disclosure-and-corridor-cost",
        "stablecoin-remittance-corridor-economics"
      ],
      "guide_hub": "chaingraph/guide-remittance-corridors.html",
      "mcp_tools_added": [
        "compute_remittance_disclosure",
        "compare_corridor_cost",
        "model_stablecoin_corridor_economics"
      ],
      "regulatory_refs": [
        "12 CFR 1005.31 (CFPB Reg E subpart B, required disclosure fields)",
        "12 CFR 1005.32 (CFPB Reg E, estimate permissibility conditions)",
        "12 CFR 1005.33 (CFPB Reg E, error resolution)",
        "World Bank Remittance Prices Worldwide (RPW) Q1 2026",
        "SDG 10.c <=3% target (UN 2030 Agenda, Target 10.c)",
        "Felix/Circle USDC corridor case study (Stripe, 2024)"
      ],
      "catalysts": [
        "Reg E subpart B disclosure arithmetic (12 CFR 1005.31/1005.32) is required pre-transfer -- gated chain on estimate_permissible mirrors the two statutory disclosure paths exactly",
        "World Bank RPW Q1 2026 global SmaRT average 6.36% vs SDG 10.c 3% target: most corridors exceed the goal by 2x, creating a measurable compliance gap through 2030",
        "Felix/Circle USDC corridor (US-MX) at $2.99 flat on $1000 = 0.65% total cost vs RPW 2.99% benchmark -- stablecoin rails achieve SDG 3% target at $200+ send amounts",
        "FX markup accounts for approximately 35% of traditional corridor cost -- RPW fx_margin_pct field surfaces this on each run",
        "anchor_surface in art-248 output connects to anchor.ainumbers.co/mcp for pre-transfer tamper-evident receipt -- direct 12 CFR 1005.33 error-resolution evidence"
      ],
      "description": "3 new nodes (art-248..250) + 2 chains for remittance/FX-corridor cluster. Reg E disclosure calculator (art-248): 12 CFR 1005.31/1005.32 arithmetic, disclosure_type (EXACT/ESTIMATED), estimate_permissible gate, anchor_surface for pre-transfer CFPB receipt. World Bank RPW comparator (art-249): fee % + FX margin % vs RPW Q1 2026 corridor snapshot, SmaRT global avg 6.36%, SDG 10.c 3% target, meets_sdg_target flag. Stablecoin corridor economics (art-250): USDC corridor all-in cost (on-ramp+chain+off-ramp+FX+float savings), break-even vs traditional MTO, rail-agnostic Felix/Circle case study benchmarks. Gated chain remittance-disclosure-and-corridor-cost gates on estimate_permissible=true to end (ESTIMATED path). Linear chain stablecoin-remittance-corridor-economics: art-250 to art-249 always runs. Proofs deferred with conformance fixtures (9 vectors, 3 nodes). Guide hub: guide-remittance-corridors.html (Felix story). chaingraph.json v1.52.0 (278 nodes, 254 chains)."
    },
    "wave_43": {
      "name": "Insurance Underwriting and Claims STP",
      "shipped": "2026-07-05",
      "nodes_live": 7,
      "live": [
        "art-251-compute-parametric-trigger-payout",
        "art-252-validate-cat-bond-trigger-terms",
        "art-253-run-illustration-selfsupport-test",
        "art-254-compute-rbc-action-level",
        "art-255-compute-lcm-rate-derivation",
        "art-256-validate-openids-homeowners-record",
        "art-257-calculate-claims-stp-economics"
      ],
      "chains_live": 4,
      "chains": [
        "parametric-trigger-adjudication",
        "insurer-rbc-action-level",
        "cat-bond-trigger-validation",
        "life-illustration-self-support-test"
      ],
      "guide_hub": "chaingraph/guide-insurance-stp.html",
      "mcp_tools_added": [
        "compute_parametric_trigger_payout",
        "validate_cat_bond_trigger_terms",
        "run_illustration_selfsupport_test",
        "compute_rbc_action_level",
        "compute_lcm_rate_derivation",
        "validate_openids_homeowners_record",
        "calculate_claims_stp_economics"
      ],
      "regulatory_refs": [
        "ISO 11116:2023 (parametric insurance trigger methodology)",
        "ISDA/IAIS cat bond trigger definitions; Swiss Re sigma 1/2024",
        "NAIC Model Regulation 582 §8C/§8D (Life Insurance Illustrations)",
        "ASOP 24 (Actuarial Standard of Practice for Illustrations)",
        "NAIC RBC Model Laws #312 (life), #315 (P&C), #315H (health)",
        "ASOP 25 (Premium Calculations); SERFF rate filing regulations",
        "openIDS Homeowners Data Standard v1.0 (AAIS/Linux Foundation, Nov 2025)",
        "IAIS ICP 13 (reinsurance), ICP 19 (claims handling)",
        "McKinsey Insurance 2024; Majesco Claims Technology Survey 2024"
      ],
      "catalysts": [
        "Cat bond market at $63.9B outstanding Q1 2026 (record $25.6B issuance 2025) -- parametric trigger adjudication is the highest-value automation target: anchor.ainumbers.co/mcp creates a neutral trigger receipt neither party controls",
        "NAIC Model 582 self-support test is required for all life insurance illustrations in 50 states -- illustration_valid=false is a direct regulatory deficiency",
        "NAIC RBC action levels affect 20% of US P&C insurers in any given year -- gated chain routes only sub-200% ACL carriers to STP investment economics (proportionality)",
        "openIDS Homeowners v1.0 (AAIS/Linux Foundation, Nov 2025) is the first free open insurance data standard -- direct displacement of membership-gated ACORD XML/AL3 for homeowners data exchange",
        "LCM decomposition is the core actuarial pricing step in every US P&C rate filing -- kernel uses user-supplied loss costs exclusively, never ISO/Verisk advisory rates (proprietary)",
        "Claims STP ROI model: industry benchmarks 40-60% cost reduction per claim (McKinsey 2024); NPV positive within 12 months for high-volume insurers"
      ],
      "description": "7 new nodes (art-251..257) + 4 chains for insurance underwriting and claims STP. Parametric trigger payout (art-251): threshold/tiered/linear_index triggers, tamper-evident trigger receipt for anchor.ainumbers.co/mcp dispute adjudication. Cat bond trigger validation (art-252): attachment/exhaustion arithmetic, pro-rata layer computation, ISDA/IAIS terms. NAIC Model 582 illustration self-support (art-253): §8C year-15/20 tests + §8D lapse-support prohibition, ASOP 24. NAIC RBC action level (art-254): 200/150/100/70% ACL ladder, trend test, all insurer types. LCM rate derivation (art-255): user-supplied loss costs ONLY -- never ISO/Verisk (proprietary). openIDS Homeowners v1.0 validation (art-256): first free open insurance data standard, NOT ACORD. Claims STP economics (art-257): NPV/IRR/payback for automation investment. 2 gated chains: parametric-trigger-adjudication (gate trigger_hit=false), insurer-rbc-action-level (gate NO_ACTION). 2 linear chains: cat-bond-trigger-validation, life-illustration-self-support-test. Proofs deferred (baseline 1->8). chaingraph.json v1.53.0."
    },
    "wave_44": {
      "name": "Corporate Treasury STP",
      "shipped": "2026-07-05",
      "nodes_live": 6,
      "live": [
        "art-258-parse-camt053-reconciliation",
        "art-259-compute-multilateral-netting",
        "art-260-allocate-ihb-interest",
        "art-261-test-hedge-effectiveness",
        "art-262-validate-ebam-acmt-flow",
        "art-263-score-cash-forecast-accuracy"
      ],
      "chains_live": 4,
      "chains": [
        "corporate-treasury-statement-reconciliation",
        "multilateral-netting-settlement",
        "hedge-effectiveness-documentation",
        "treasury-account-lifecycle-ebam"
      ],
      "guide_hub": "chaingraph/guide-corporate-treasury-stp.html",
      "mcp_tools_added": [
        "parse_camt053_reconciliation",
        "compute_multilateral_netting",
        "allocate_ihb_interest",
        "test_hedge_effectiveness",
        "validate_ebam_acmt_flow",
        "score_cash_forecast_accuracy"
      ],
      "regulatory_refs": [
        "ISO 20022 ExternalBankTransactionCode1Code registry 2023-03",
        "CGI-MP camt.053 Usage Guide v5.0",
        "BIS CPMI Net Settlement Framework 2012",
        "OECD Transfer Pricing Guidelines 2022 Chapter X (financial transactions, IHB)",
        "ASC 815-20-35 (FASB Codification, hedge effectiveness)",
        "CGI-MP eBAM Usage Guide 2023 (acmt message state machine)",
        "AFP Cash Forecasting Survey 2024 (MAPE tier benchmarks)"
      ],
      "catalysts": [
        "ISO 20022 camt.053 adoption accelerating in CBPR+ corridors -- TMS reconciliation is the last manual step in the statement-to-forecast cycle",
        "In-house bank multilateral netting eliminates 60-80% of gross inter-company wires (BIS CPMI 2012) -- anchor_batch Merkle receipts add neutral settlement proof",
        "ASC 815 hedge effectiveness testing is required for every designated hedging relationship -- deterministic OLS without transcendentals enables zkVM proving for audit evidence",
        "CGI-MP eBAM adoption growing among global corporates -- acmt state machine validation gates IHB pool interest onboarding for new accounts automatically",
        "AFP 2024: only 35% of treasury teams achieve EXCELLENT cash forecast accuracy -- MAPE scoring closes the forecast-vs-actual loop in the TMS STP cycle"
      ],
      "description": "6 new nodes (art-258..263) + 4 chains for corporate treasury STP cluster ㉔. ISO 20022 camt.053 bank statement reconciliation (art-258): BkTxCd Domain/Family/SubFamily classification per CGI-MP v5.0, OPBD+sum=CLBD balance equation, structured-remittance match rate. Multilateral cash netting (art-259): N-entity gross-to-net-to-minimum-settlement-legs, BIS CPMI greedy algorithm, NOT FICC clearing. IHB interest allocation (art-260): OECD TP Guidelines 2022 Ch. X arm's-length rate, notional pool or ZBA sweep, ACT/360/365/30/360 day-count, per-member withholding tax. Hedge effectiveness test (art-261): ASC 815 dollar-offset 80-125% + OLS R-squared >=0.8, pure deterministic arithmetic, RFC 3161 anchor surface. eBAM account flow validation (art-262): CGI-MP eBAM 2023 acmt.007/010/011/017/019 state machine, orphan detection. Cash forecast accuracy scoring (art-263): AFP 2024 MAPE tiers, T+1/7/30/90 horizon buckets, timing bias detection (>75% same-sign). 2 gated chains: hedge-effectiveness-documentation (gate /is_effective=false->END), treasury-account-lifecycle-ebam (gate /acmt_state=OPENING_CONFIRMED->art-260). 2 linear chains: corporate-treasury-statement-reconciliation (art-258->art-263), multilateral-netting-settlement (art-259->art-260). Proofs deferred (baseline 1->7). chaingraph.json v1.54.0 (291 nodes, 262 chains)."
    },
    "wave_45": {
      "name": "Revenue Operations & Bank KYB STP",
      "shipped": "2026-07-05",
      "nodes_live": 6,
      "live": [
        "art-264-validate-commission-hierarchy",
        "art-265-amortize-asc606-commissions",
        "art-266-reconcile-commission-statement",
        "art-267-check-producer-license-reciprocity",
        "art-268-compute-cdd-ownership-25pct",
        "art-269-validate-w8-series-structural"
      ],
      "chains_live": 3,
      "chains": [
        "commission-integrity-and-amortization",
        "producer-license-reciprocity",
        "kyb-beneficial-ownership-attribution"
      ],
      "guide_hub": "chaingraph/guide-revenue-operations.html",
      "mcp_tools_added": [
        "validate_commission_hierarchy",
        "amortize_asc606_commissions",
        "reconcile_commission_statement",
        "check_producer_license_reciprocity",
        "compute_cdd_ownership_25pct",
        "validate_w8_series_structural"
      ],
      "regulatory_refs": [
        "ASC 606 (Revenue from Contracts with Customers)",
        "ASC 340-40-25-4 (FASB incremental costs of obtaining a contract, 12-month practical expedient)",
        "NAIC Producer Licensing Model Act (MDL-218)",
        "NIPR Non-Resident Uniform Application Reciprocity Matrix 2024",
        "FinCEN CDD Rule 31 CFR 1010.230 (Beneficial Ownership of Legal Entity Customers, 25% threshold)",
        "Treas. Reg. 1.1441-1(e)(4)(ii) (W-8 series 3-year validity)",
        "IRS Pub 901 (treaty dividend withholding rates)"
      ],
      "catalysts": [
        "ASC 606/340-40 commission capitalization: FASB 2018 adoption forced multi-level hierarchy validation + amortization tracking; ERP systems still require manual reconciliation for layered multi-tier structures",
        "NAIC reciprocity failures: non-standard state filings (CA/FL/NJ/NY/HI/MN/WI) are the #1 cause of producer license rejections for national carrier expansion; automated reciprocity gating reduces 60-day delay to same-day triage",
        "FinCEN CDD Rule: FinCEN enforcement actions for missing beneficial-ownership collection up $2.1B in 2024; 25% recursive indirect ownership is the computation banks cannot do manually at onboarding volume",
        "W-8 series errors: IRS estimates 40%+ of W-8 forms have structural defects (Ch.3/Ch.4 mismatch, expired dates, treaty rate errors) -- structural pre-validation before withholding agent accepts the form reduces backup withholding exposure"
      ],
      "description": "6 new nodes (art-264..269) + 3 chains for Revenue Operations and Bank KYB STP. Commission hierarchy validator (art-264): BFS orphan/circular/split-sum validation, no NPN/SSN. ASC 340-40 commission amortization (art-265): 12-month practical expedient per ASC 340-40-25-4, capitalized incremental cost schedules. Commission statement reconciler (art-266): variance/discrepancy detection, has_discrepancy gate signal. NAIC producer license reciprocity (art-267): MDL-218 NIPR 2024, non-standard states CA/FL/NJ/NY/HI/MN/WI, no NPN. FinCEN CDD 25% ownership (art-268): recursive indirect ownership per 31 CFR 1010.230 bank KYB -- NOT CTA/BOI (removed by FinCEN IFR 2025-03-21). W-8 series structural validator (art-269): FORM_CH3_MISMATCH, CH3_CH4_INCONSISTENT, FORM_EXPIRED, TREATY_RATE_MISMATCH vs IRS Pub 901. 1 gated chain: commission-integrity-and-amortization (gate /has_discrepancy=true->END). 1 linear chain: producer-license-reciprocity (art-267). 1 gated chain: kyb-beneficial-ownership-attribution (gate /is_beneficial_owner=false->END). Proofs deferred (baseline 1->7). chaingraph.json v1.55.0 (297 nodes, 265 chains)."
    },
    "wave_46": {
      "name": "Onchain Derivatives & DeFi Analytics (AT Reframe Batch 2)",
      "shipped": "2026-07-06",
      "nodes_live": 4,
      "live": [
        "art-270-perp-funding-carry",
        "art-271-defi-lending-health",
        "art-272-restaking-risk",
        "art-273-pendle-yield"
      ],
      "chains_live": 0,
      "chains": [],
      "mcp_tools_added": [
        "compute_perp_funding",
        "assess_defi_lending",
        "assess_restaking_risk",
        "compute_pt_yt_yield"
      ],
      "methodology_refs": [
        "Hyperliquid perpetuals documentation (hourly funding, 4%/hr cap); Binance USD-M 8-hour funding cadence",
        "Aave v3, Morpho Blue, Fluid, Sky (MakerDAO v2), Liquity v2 lending and liquidation mechanics",
        "EigenLayer and Symbiotic restaking, operator delegation, and slashing-waterfall models",
        "Pendle Finance v2 PT/YT yield tokenization mechanics"
      ],
      "description": "4 new nodes (art-270..273) for onchain derivatives and DeFi analytics, platform-neutral reframe of the distilled trading math. Perp funding and carry calculator (art-270): funding APR, cross-venue funding differential, delta-neutral carry with collateral yield, basis analytics. DeFi lending health monitor (art-271): health factor, liquidation price, borrow capacity for Aave v3, Morpho Blue, Fluid, Sky, and Liquity v2. Restaking delegation and slashing risk analyzer (art-272): EigenLayer and Symbiotic slashing-waterfall through a first-loss buffer tranche, probability-weighted expected annual slash cost, insurance economics. Pendle yield tokenization analyzer (art-273): PT implied fixed yield, YT leverage and break-even APY, PT+YT invariant check. Node-only wave, no new chains. Section 18 zkVM compute-integrity proofs real groth16-bn254 (image a1a0bc89), baseline 5 to 1. All output carries a not-financial-advice notice. chaingraph.json v1.56.0 (301 nodes, 265 chains)."
    },
    "wave_47": {
      "name": "Mandate Loop Program -- ML-1 Work Mandate Compiler",
      "shipped": "2026-07-06",
      "nodes_live": 1,
      "live": [
        "art-274-compile-work-mandate"
      ],
      "chains_live": 0,
      "chains": [],
      "mcp_tools_added": [
        "compile_work_mandate"
      ],
      "guide_hub": "chaingraph-hub.html",
      "methodology_refs": [
        "OpenChainGraph SPEC.md §22 Work Mandates (normative, v0.8.1): compile_work_mandate I/O contract, §22.4 compilation rules, §22.3 reserved escalation target",
        "OpenChainGraph SPEC.md §21.4 decision gates: gate:{input, rules:[{op,value,next}], default}",
        "MANDATE-LOOP-PROGRAM-SPEC.md §ML-1: Work Mandate Compiler deliverables"
      ],
      "description": "1 new node (art-274) for the Mandate Loop program ML-1 step. Work Mandate Compiler (art-274): pure structural transform from §22 Work Mandate document to §21.4 gated-chain config. Compiles scope.tool_ids into ordered steps[], maps conditions into gate rules, maps escalation_triggers into rules routing to the reserved 'escalate' target, enforces one-pointer-per-gate discipline (multi_pointer_gate rejection). Deterministic + hash-stable. governance_mandate type. Deferred §18 compute_proof (Opus prover handles). Node-only wave, no new chains. run_chain accepts optional mandate binding: §16 signature verify + conditional-presence mandate_hash fold. chaingraph.json v1.57.0 (302 nodes, 265 chains)."
    },
    "wave_55": {
      "name": "US State AI Compliance Cluster -- TRAIGA + AB 2013 + SB 53",
      "shipped": "2026-07-14",
      "nodes_live": 4,
      "live": [
        "art-313-traiga-exposure-assessor",
        "art-314-traiga-safe-harbor-pack-builder",
        "art-315-ab2013-training-data-disclosure-linter",
        "art-316-sb53-frontier-scope-checker"
      ],
      "chains_live": 3,
      "chains": [
        "traiga-safe-harbor",
        "ca-genai-disclosure",
        "sb53-frontier-scope"
      ],
      "mcp_tools_added": [
        "assess_traiga_exposure",
        "build_traiga_safe_harbor_pack",
        "lint_ab2013_training_data_disclosure",
        "check_sb53_frontier_scope"
      ],
      "guide_hub": "guide-ai-governance.html",
      "methodology_refs": [
        "Tex. Bus. & Com. Code Ch. 552-553 (TRAIGA, HB 149), eff. 2026-01-01",
        "Tex. Bus. & Com. Code §553.106 (NIST AI RMF affirmative defense)",
        "Cal. Bus. & Prof. Code §22757.7 (AB 2013), eff. 2026-01-01 -- DRAFT-PINNED",
        "Cal. SB 53 (Transparency in Frontier Artificial Intelligence Act), eff. 2026-01-01",
        "STATE-AI-WAVE-SPEC.md §D2-D4"
      ],
      "description": "4 new nodes (art-313..316) for the STATE-AI-1 wave, 3 new chains, deferred §18 compute_proof (Opus prover handles). §D1 CAIA (Colorado AI Act, SB 24-205) DROPPED at build time: SB 24-205 was repealed 2026-05-14 by SB 26-189 (a narrower automated-decision-making-technology framework, eff. 2027-01-01) -- building CAIA lint/classify/disclosure kernels against a repealed statute would violate the wave's honesty invariants (STATE-AI-WAVE-SPEC.md, wave-wide: never claim conformance to unconfirmed or dead statutory text). art-310..312 released back to the art-number registry as unused. §D2 TRAIGA (art-313/314): exposure assessor + NIST AI RMF (shipped art-174) + safe-harbor pack builder, gated three-step chain, evidence toward the Tex. Bus. & Com. Code §553.106 affirmative defense. §D3 AB 2013 (art-315): 12-datapoint training-data disclosure linter, DRAFT-PINNED against secondary-source statute summaries. §D3 SB 53 (art-316): frontier-model FLOP/revenue scope router, standalone composer (narrow frontier-lab audience). chaingraph.json v1.64.0 (341 nodes, 290 chains)."
    },
    "version": "1.66.0",
    "wave_56": {
      "name": "Robinhood Chain tokenized-equity verification (RHC-WAVE.a)",
      "shipped": "2026-07-16",
      "nodes_live": 7,
      "live": [
        "art-317-rhc-multiplier-reconciler",
        "art-318-rhc-regime-mapper",
        "art-319-rhc-valuation-linter",
        "art-320-rhc-collateral-haircut",
        "art-321-rhc-bold-finality-classifier",
        "art-322-rhc-ap-redemption-stress",
        "art-323-rhc-fit-diagnostic"
      ],
      "chains_live": 7,
      "chains": [
        "rhc-multiplier-reconciliation",
        "rhc-regime-mapping",
        "rhc-valuation-lint",
        "rhc-collateral-haircut",
        "rhc-bold-finality-classification",
        "rhc-ap-redemption-stress",
        "rhc-fit"
      ],
      "guide_hub": "chaingraph/guide-robinhood.html",
      "mcp_tools_added": [
        "reconcile_erc8056_multiplier",
        "map_robinhood_chain_regime",
        "lint_stock_token_valuation",
        "compute_stock_token_collateral_haircut",
        "classify_bold_challenge_finality",
        "stress_test_ap_redemption_path",
        "run_robinhood_chain_fit_diagnostic"
      ],
      "regulatory_refs": [
        "ERC-8056 (scaled UI amount)",
        "MiCA Art. 2(4)(a) financial-instrument carve-out",
        "MiFID II transferable securities",
        "BCBS d349/SCO60 (HQLA)",
        "Arbitrum BoLD (interactive fraud proofs)"
      ],
      "catalysts": [
        "Robinhood Chain mainnet live 2026-07-01, ~95 tokenized stocks at launch, Robinhood Wallet access in 120+ countries",
        "No tooling anywhere for ERC-8056 multiplier reconciliation before this wave",
        "MiCA carve-out inverts the estate default regime tree for the first time (tokenized debt security, not a crypto-asset)"
      ],
      "description": "7 new nodes (art-317..323) plus 7 chains for Robinhood Chain stock-token verification, shipped across RHC-WAVE.a (the 6 verification workflows: ERC-8056 multiplier reconciliation, financial-instrument regime mapping, valuation double-count linting, halt/staleness collateral haircut, BoLD challenge-window finality classification, AP concentration/redemption-path stress) and RHC-WAVE.b (RHC-0 fit diagnostic entry point + guide-robinhood.html network guide). Proofs deferred pending the section-18 land session for all 7 nodes. chaingraph.json v1.66.0."
    },
    "wave_57": {
      "name": "TVM primitive family (CALC-CORE CC-G)",
      "shipped": "2026-07-16",
      "nodes_live": 8,
      "live": [
        "art-324-tvm-npv",
        "art-325-tvm-irr",
        "art-326-tvm-xirr",
        "art-327-tvm-annuity",
        "art-328-tvm-breakeven",
        "art-329-tvm-bond-duration",
        "art-330-tvm-dv01",
        "art-331-tvm-convexity"
      ],
      "chains_live": 0,
      "chains": [],
      "guide_hub": null,
      "mcp_tools_added": [
        "compute_npv",
        "compute_irr",
        "compute_xirr",
        "compute_annuity",
        "compute_breakeven",
        "compute_bond_duration",
        "compute_dv01",
        "compute_convexity"
      ],
      "regulatory_refs": [
        "Standard NPV/IRR/XIRR/annuity/breakeven/duration/DV01/convexity definitions (Brealey/Myers, Fabozzi Bond Markets)",
        "Excel XIRR/PV/FV/PMT semantics (day-count and due-flag parity)"
      ],
      "catalysts": [
        "CALC-CORE-BAND-SPEC.md: the suite proves decisions but not the numbers feeding them — TVM primitives are the reusable foundation later kernels/chains cite instead of embedding ad-hoc math"
      ],
      "description": "8 new nodes (art-324..331): NPV, IRR, XIRR, annuity PV/FV/PMT solver, breakeven/CVP, bond Macaulay/modified duration, DV01, and convexity. Duration/DV01/convexity form a small consumes/feeds chain (compute_bond_duration feeds the other two). Proofs deferred pending the section-18 land session (CC-G.land). chaingraph.json v1.67.0."
    }
  },
  "mandate_type_registry_ref": "data/ap2-templates.json",
  "llms_txt_note": "This file is linked from llms.txt and embedded as JSON-LD on chaingraph-hub.html. It is the primary LLMEO surface for the suite — an agentic acquirer's engineers should fetch this file first.",
  "@context": {
    "dcat": "http://www.w3.org/ns/dcat#",
    "ocg": "https://ainumbers.co/chaingraph/context/v0.3#",
    "prov": "http://www.w3.org/ns/prov#",
    "dct": "http://purl.org/dc/terms/"
  },
  "@type": "dcat:Catalog",
  "@id": "https://ainumbers.co/chaingraph/chaingraph.json",
  "dct:title": "AINumbers OpenChainGraph Suite",
  "dct:description": "Machine-readable index of the AINumbers ChainGraph suite. Every tool's MCP name, mandate_type, inputSchema pointer, and chain edges (consumes/feeds). Linked from llms.txt and embedded as JSON-LD on the hub. Internal mandate_type taxonomy — not AP2 v0.2 spec vocabulary.",
  "dct:publisher": {
    "@id": "https://postoaklabs.com",
    "dct:title": "Post Oak Labs"
  },
  "ocg:conformance_level": "L4",
  "ocg:mcp_endpoint": "https://mcp.ainumbers.co/mcp",
  "ocg:spec_version": "0.5.0",
  "dcat:dataset": [
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:ptg-01-ap2-prompt-template-generator",
      "dct:title": "AP2 Prompt Template Generator",
      "dct:description": "Transforms any ChainGraph artifact JSON into a structured, regulator-framed prompt for any external LLM. Template registry v1.0.0 — one entry per mandate_type with regulatory citations, audience framing, stochastic-output conventions, escalation conditions.",
      "ocg:mandate_type": "prompt_template",
      "ocg:consumes": [],
      "ocg:feeds": [
        "ALL"
      ],
      "ocg:mcp_tool_name": "compose_ap2_prompt",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-01-ap2-mandate-chain-validator",
      "dct:title": "AP2 Mandate-Chain Validator",
      "dct:description": "Validates AP2 v0.2 Intent→Cart→Payment mandate trio: signature-chain integrity, scope/limit consistency, TTL/expiry, over-spend detection, Human-Not-Present autonomous-agent flows. Publishes conformance test-vector fixtures.",
      "ocg:mandate_type": "payment_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-02-agent-spend-policy-simulator",
        "art-03-x402-settlement-modeler",
        "art-04-agent-identity-attestation-checker",
        "art-12-acp-checkout-conformance-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "validate_ap2_mandate_chain",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-02-agent-spend-policy-simulator",
      "dct:title": "Agent Spend-Policy Simulator",
      "dct:description": "Simulates thousands of synthetic agent transactions against a user-authored spend policy (per-merchant caps, category allow/deny, velocity limits, cumulative ceilings). Flags scope creep and AP2 v0.2 Human-Not-Present policy-bypass paths.",
      "ocg:mandate_type": "payment_policy",
      "ocg:consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-04-agent-identity-attestation-checker"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_spend_policy",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-03-x402-settlement-modeler",
      "dct:title": "x402 Settlement Cost & Finality Modeler",
      "dct:description": "Rail-selection and finality recommendation across x402 (HTTP 402), Stripe USDC, card, ACH, and SWIFT. Per-transaction cost, eligibility scoring, micropayment support, cross-border flags. ~69k active agents / 165M+ x402 txns (2026).",
      "ocg:mandate_type": "settlement_mandate",
      "ocg:consumes": [
        "art-01-ap2-mandate-chain-validator"
      ],
      "ocg:feeds": [
        "cry-04-merkle-batch-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "model_x402_settlement",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      },
      "ocg:semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": [
        "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
        "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld"
      ]
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-04-agent-identity-attestation-checker",
      "dct:title": "Agent Identity & Authorization Attestation Checker",
      "dct:description": "KYA-OS (DIF Trusted AI Agents WG) credential-chain attestation: delegated-authority credential chain, scope limits, validity windows (max 90 days), chain depth cap (4 hops), EU AI Act high-risk scope classification.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-13-eudi-wallet-credential-readiness-checker"
      ],
      "ocg:feeds": [
        "art-02-agent-spend-policy-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "check_agent_attestation",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-05-eu-ai-act-credit-scoring-conformity",
      "dct:title": "EU AI Act Credit-Scoring Conformity Pack",
      "dct:description": "Bias testing across protected characteristics (disparate impact ratios, equalized odds gaps), data-quality attestations, Article 11 technical-documentation skeleton, conformity self-assessment. Hard deadline Aug 2, 2026.",
      "ocg:mandate_type": "model_governance",
      "ocg:consumes": [],
      "ocg:feeds": [
        "ml-01-isolation-forest",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "assess_ai_act_conformity",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-06-genius-act-reserve-attestation",
      "dct:title": "GENIUS Act Reserve Attestation Pre-Check",
      "dct:description": "1:1 reserve coverage, reserve-composition eligibility against GENIUS Act permitted-asset classes, monthly reserve-report figures against AICPA 2025 Criteria for CEO/CFO certification. Distinct from MiCA reserve stress.",
      "ocg:mandate_type": "attestation_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "precheck_reserve_attestation",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-07-basel31-reporting-delta-calculator",
      "dct:title": "Basel 3.1 Reporting Delta Calculator",
      "dct:description": "Per-asset-class RWA delta (current vs Basel 3.1), output-floor binding analysis (72.5%), CET1 before/after, capital shortfall vs 12.5% total requirement. Six asset classes. Tornado chart. UK PRA PS1/26 go-live Jan 1, 2027.",
      "ocg:mandate_type": "capital_assessment",
      "ocg:consumes": [],
      "ocg:feeds": [
        "sim-03-basel-rwa-scenario-modeler",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "compute_basel31_delta",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-08-en16931-einvoice-batch-validator",
      "dct:title": "EN 16931 / Factur-X E-Invoicing Batch Validator",
      "dct:description": "Batch validation of e-invoices against EN 16931 mandatory fields, VAT logic, and country profiles. France mandatory September 2026; SMEs September 2027.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "rca-03-iso20022-address-migration-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "validate_einvoice_batch",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-09-dora-incident-classifier",
      "dct:title": "DORA Major-Incident Reporting Threshold Classifier",
      "dct:description": "DORA Article 19/20 reporting determination and reporting-clock start. Clients affected, transaction value, downtime, geographic spread, cross-border component. Fast, deterministic.",
      "ocg:mandate_type": "infrastructure_mandate",
      "ocg:consumes": [
        "art-29-dora-readiness-diagnostic"
      ],
      "ocg:feeds": [
        "pnr-01-dora-ict-cascade-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "classify_dora_incident",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-29-dora-readiness-diagnostic",
      "dct:title": "DORA Readiness Diagnostic",
      "dct:description": "12-question scored diagnostic across four DORA pillars (ICT risk management, incident classification & reporting, resilience testing, third-party risk). Graded A–F with remediation map. Single-node ChainGraph (chain_depth: 0). Common entry point for the DORA Readiness Chain — diagnostic grade determines scenario routing (A/B/C). Promoted from guides/dora-readiness-diagnostic.html.",
      "ocg:mandate_type": "infrastructure_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-09-dora-incident-classifier",
        "pnr-01-dora-ict-cascade-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "run_dora_readiness_diagnostic",
      "ocg:wave": "B",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-10-amla-transaction-typology-risk-scorer",
      "dct:title": "AMLA Transaction-Typology Risk Scorer",
      "dct:description": "Scores a synthetic transaction graph against AML typologies and FATF Travel Rule predicates; exports an AML risk determination per account/cluster. Chains into CRY-01 for ZK proof of the same predicate — a uniquely coherent two-tool story.",
      "ocg:mandate_type": "risk_control",
      "ocg:consumes": [],
      "ocg:feeds": [
        "cry-01-zk-compliance-proof-generator",
        "art-11-vop-batch-match-rate-analyser",
        "ptg-01-ap2-prompt-template-generator",
        "mms-03-app-fraud-graph",
        "ml-01-isolation-forest"
      ],
      "ocg:mcp_tool_name": "score_aml_typologies",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-11-vop-batch-match-rate-analyser",
      "dct:title": "VoP Batch Match-Rate Analyser",
      "dct:description": "Batch IBAN-name matching: match/close-match/no-match classification, configurable strictness (exact/normalized/fuzzy), false-positive vs false-negative trade-off curves, per-corridor mismatch-rate distribution. Upgrades T289 to full ChainGraph export schema.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [
        "rca-03-iso20022-address-migration-verifier",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_vop_matching",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      },
      "ocg:semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": [
        "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
        "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld"
      ]
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-12-acp-checkout-conformance-validator",
      "dct:title": "ACP Checkout Conformance Validator",
      "dct:description": "OpenAI/Stripe Agentic Commerce Protocol (ACP): CheckoutRequest/Response field conformance (10 required fields each), Shared Payment Token structure, ISO 4217 currency, TTL, signature prefix validation. Suite now covers both AP2 (Google) and ACP (OpenAI/Stripe).",
      "ocg:mandate_type": "payment_mandate",
      "ocg:consumes": [
        "art-01-ap2-mandate-chain-validator"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "validate_acp_checkout",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-13-eudi-wallet-credential-readiness-checker",
      "dct:title": "EUDI Wallet Credential-Acceptance Readiness Checker",
      "dct:description": "eIDAS 2.0 verifiable-credential acceptance readiness against EUDI Wallet ARF v1.4 profiles. PID/QEAA/EAA attribute mapping, relying-party obligations, conformance gaps. Member-state wallet rollout Nov 2026; obliged-entity acceptance Dec 2027.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-04-agent-identity-attestation-checker",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "check_eudi_readiness",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:cry-01-zk-compliance-proof-generator",
      "dct:title": "ZK Compliance Proof Generator",
      "dct:description": "Synthetic ZK compliance proof token for AML/Travel Rule predicates (amount threshold, sanctions clear, KYC complete, velocity normal, source of funds). NTT simulation — models the number-theoretic transform in real ZK-SNARK/STARK backends. GDPR Art. 25 data-minimisation demonstrator. Explicitly educational.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "ocg:feeds": [
        "cry-04-merkle-batch-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "generate_zk_compliance_proof",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:qfa-02-portfolio-var-engine",
      "dct:title": "Portfolio Covariance & VaR Engine",
      "dct:description": "VaR and Expected Shortfall: Historical Simulation, Parametric (variance-covariance), and Monte Carlo with Cholesky 2-factor correlation structure. P&L histogram (30 bins), 8×8 covariance heatmap. 500 assets, seeded LCG RNG. Buy-side zero-egress story.",
      "ocg:mandate_type": "risk_control",
      "ocg:consumes": [
        "sim-03-basel-rwa-scenario-modeler"
      ],
      "ocg:feeds": [
        "qfa-03-stress-test-engine",
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "compute_portfolio_var",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:rca-03-iso20022-address-migration-verifier",
      "dct:title": "ISO 20022 Structured-Address Migration Batch Verifier",
      "dct:description": "GPU-parallel validation of PostalAddress24 fields across pacs.008 messages (up to 500k). Country-specific rules (UK postcode, DE Postleitzahl, US ZIP+4), MT103 :50K: truncation-risk flagging, November-2026 readiness score.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-11-vop-batch-match-rate-analyser",
        "art-08-en16931-einvoice-batch-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "verify_address_migration_batch",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      },
      "ocg:semantic_profile": "iso20022:pacs.008-subset",
      "dct:conformsTo": [
        "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld",
        "https://ainumbers.co/chaingraph/profiles/iso20022/pacs008-subset.jsonld"
      ]
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:sim-01-lcr-nsfr-liquidity-stress-test",
      "dct:title": "Liquidity Stress Test Simulator (LCR/NSFR)",
      "dct:description": "Monte Carlo simulation of LCR and NSFR under Basel III stress (CRR Art. 412/428, EBA GL/2017/01). 1,000 paths × 250 time steps. P5–P95 percentile distribution, breach probability, time-to-breach, sensitivity tornado.",
      "ocg:mandate_type": "liquidity_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "rca-02-mica-reserve-stress",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "run_liquidity_stress_test",
      "ocg:wave": "1",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:sim-03-basel-rwa-scenario-modeler",
      "dct:title": "Basel RWA Scenario Modeler",
      "dct:description": "SA-CR / F-IRB / A-IRB RWA in parallel with output-floor comparison (72.5% §CAP30). BCBS d424 IRB capital formula with Φ⁻¹ rational approximation, LCG Monte Carlo. Percentile table P5–P99. Three portfolio mixes.",
      "ocg:mandate_type": "capital_assessment",
      "ocg:consumes": [
        "art-07-basel31-reporting-delta-calculator"
      ],
      "ocg:feeds": [
        "ml-03-timeseries-anomaly-detector",
        "qfa-02-portfolio-var-engine",
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "compute_rwa_scenarios",
      "ocg:wave": "2",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:rca-02-mica-reserve-stress",
      "dct:title": "MiCA Stablecoin Reserve Stress Simulator",
      "dct:description": "Monte Carlo simulation of stablecoin reserve portfolios under MiCA Article 36 redemption stress and asset price shocks. 1,000 paths × 90-day horizon. Coverage ratio fan chart (P5–P95), breach probability curve, Article 36 liquid buffer analysis, fire-sale contagion estimate. Complements ART-06 (static attestation) with full stochastic dimension.",
      "ocg:mandate_type": "liquidity_mandate",
      "ocg:consumes": [
        "art-06-genius-act-reserve-attestation",
        "sim-01-lcr-nsfr-liquidity-stress-test"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator",
        "cry-04-merkle-batch-verifier"
      ],
      "ocg:mcp_tool_name": "simulate_stablecoin_reserve",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:pnr-01-dora-ict-cascade-simulator",
      "dct:title": "DORA ICT Cascade Simulator",
      "dct:description": "",
      "ocg:mandate_type": "infrastructure_mandate",
      "ocg:consumes": [
        "art-09-dora-incident-classifier"
      ],
      "ocg:feeds": [
        "sim-07-open-banking-consent-flow-stress",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_ict_cascade",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:cry-04-merkle-batch-verifier",
      "dct:title": "Merkle Batch Verifier",
      "dct:description": "",
      "ocg:mandate_type": "cryptographic_mandate",
      "ocg:consumes": [
        "rca-02-mica-reserve-stress",
        "pnr-01-dora-ict-cascade-simulator"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "verify_merkle_batch",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:qfa-01-options-greeks",
      "dct:title": "Options Greeks Calculator",
      "dct:description": "",
      "ocg:mandate_type": "risk_parameter",
      "ocg:consumes": [],
      "ocg:feeds": [
        "qfa-04-xva-cva-calculator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "compute_options_greeks",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:mms-03-app-fraud-graph",
      "dct:title": "APP Fraud Graph Simulator",
      "dct:description": "",
      "ocg:mandate_type": "aml_rule",
      "ocg:consumes": [
        "art-09-dora-incident-classifier",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_app_fraud_graph",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:qfa-04-xva-cva-calculator",
      "dct:title": "XVA / CVA Calculator",
      "dct:description": "",
      "ocg:mandate_type": "risk_parameter",
      "ocg:consumes": [
        "qfa-01-options-greeks"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "calculate_xva",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:rca-01-frtb-ima-pre-validator",
      "dct:title": "FRTB IMA Expected Shortfall Pre-Validator",
      "dct:description": "FRTB IMA Expected Shortfall pre-validation: MC simulation across liquidity horizons LH1–LH5 (10/20/40/60/120 days), NMRF surcharge estimation, PLA Test (green/amber/red), IMA vs SA floor capital comparison. Educational pre-validator ahead of UK IMA go-live January 2028.",
      "ocg:mandate_type": "risk_parameter",
      "ocg:consumes": [
        "qfa-02-portfolio-var-engine",
        "sim-03-basel-rwa-scenario-modeler"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_frtb_es",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:ml-01-isolation-forest",
      "dct:title": "Isolation Forest Transaction Anomaly Detector",
      "dct:description": "Native-JS Isolation Forest anomaly detection on synthetic transaction batches. 10-tree forest, 4-feature scoring (amount, hour, counterparty frequency, recency), anomaly score histogram, flagged transaction table. Zero-egress — no real transaction data transmitted. Chains from ART-05 (EU AI Act credit-scoring) and ART-10 (AMLA typology).",
      "ocg:mandate_type": "risk_control",
      "ocg:consumes": [
        "art-05-eu-ai-act-credit-scoring-conformity",
        "art-10-amla-transaction-typology-risk-scorer"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "detect_transaction_anomalies",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:sim-07-open-banking-consent-flow-stress",
      "dct:title": "Open Banking Consent Flow Stress Simulator",
      "dct:description": "Monte Carlo stress simulation of PSD2/FAPI 2.0/CDR consent lifecycle FSM (INIT→REDIRECT→AUTH→AUTHORIZED→ACTIVE→FAILED/EXPIRED/REVOKED). Configurable failure probabilities per transition stage, terminal state distribution, ASPSP SCA availability compliance check (95% threshold). Chains from PNR-01 (DORA ICT cascade).",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [
        "pnr-01-dora-ict-cascade-simulator"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_consent_stress",
      "ocg:wave": "3",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:qfa-03-stress-test-engine",
      "dct:title": "Stress Test Engine",
      "dct:description": "Multi-scenario stress testing across 6 historical crisis scenarios (GFC 2008, COVID Mar 2020, Dot-com Bust, Lehman Week, Rate Shock 2022, SVB Contagion 2023) with Monte Carlo per scenario. Equity/credit/rate factor decomposition, stressed VaR and ES, stress multiplier, recovery-day estimate. Chains from QFA-02 (VaR Engine). Feeds RCA-01 (FRTB IMA). Basel 3.1 Pillar 2 ICAAP / EBA GL/2018/04 / FRTB MAR30 stress calibration reference.",
      "ocg:mandate_type": "risk_parameter",
      "ocg:consumes": [
        "qfa-02-portfolio-var-engine"
      ],
      "ocg:feeds": [
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "compute_stress_test_scenarios",
      "ocg:wave": "4",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:ml-02-credit-default-risk-scorer",
      "dct:title": "Credit Default Risk Scorer",
      "dct:description": "Logistic regression PD scorer on synthetic loan portfolio with Basel 3.1 F-IRB / A-IRB / SA RWA comparison (BCBS d424 formula, Φ⁻¹ Horner rational approximation). AUC-ROC trapezoid, KS statistic, Gini coefficient (EBA GL/2017/16 model performance thresholds). Chains from ART-05 (EU AI Act conformity). Feeds SIM-03 (Basel RWA Scenario Modeler).",
      "ocg:mandate_type": "credit_assessment",
      "ocg:consumes": [
        "art-05-eu-ai-act-credit-scoring-conformity"
      ],
      "ocg:feeds": [
        "sim-03-basel-rwa-scenario-modeler",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "score_credit_default_risk",
      "ocg:wave": "4",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:ml-03-timeseries-anomaly-detector",
      "dct:title": "Time-Series Anomaly Detector",
      "dct:description": "Rolling-window z-score and STL-style seasonal decomposition anomaly detection on synthetic payment volume time series. Control chart (UCL/LCL 3σ), trend/seasonal/residual panel decomposition, anomaly flag table with severity, naïve ARIMA-lite 30-period forecast. Chains from SIM-03 (Basel RWA Scenario Modeler). Feeds RCA-01 (FRTB IMA). DORA Art.17 monitoring / EBA GL/2021/03 operational risk / PSD2 Art.96 fraud reporting.",
      "ocg:mandate_type": "risk_control",
      "ocg:consumes": [
        "sim-03-basel-rwa-scenario-modeler"
      ],
      "ocg:feeds": [
        "rca-01-frtb-ima-pre-validator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "detect_timeseries_anomalies",
      "ocg:wave": "4",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-14-psd3-psr-readiness-checker",
      "dct:title": "PSD3 / PSR Readiness Checker",
      "dct:description": "Six-domain PSD3/PSR readiness rubric: Open Finance access rights (Art.35/36), TPP categorisation (PISP/AISP/PIISP), SCA exemption alignment (Art.85–90), consent framework maturity, fraud liability model (Art.59–65), and embedded finance/BaaS scope. Radar chart + prioritised gap table. Root node (no upstream dependency). Feeds ART-04 (DORA Mapper) and PTG-01. EU transposition ~2027; UK PSR enacted 2024.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-04-agent-identity-attestation-checker",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "assess_psd3_readiness",
      "ocg:wave": "4",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-19-agentic-checkout-protocol-selector",
      "dct:title": "Agentic Checkout Protocol Selector",
      "dct:description": "Scores ACP, UCP, x402, and Visa TAP against platform profile (buyer type, AOV, geography, stack capabilities) and returns a ranked protocol recommendation with fit scores. Node 1 of 3 in the Agentic Checkout Chain.",
      "ocg:mandate_type": "routing_policy",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-20-acp-ucp-product-feed-conformance-auditor",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "select_agentic_checkout_protocol",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-20-acp-ucp-product-feed-conformance-auditor",
      "dct:title": "ACP/UCP Product-Feed Conformance Auditor",
      "dct:description": "Validates product/checkout/mandate JSON payloads against ACP or UCP field schemas (5 schema arrays). Identifies missing required fields, type mismatches, and unknown fields. Node 2 of 3 in the Agentic Checkout Chain.",
      "ocg:mandate_type": "scheme_rule",
      "ocg:consumes": [
        "art-19-agentic-checkout-protocol-selector"
      ],
      "ocg:feeds": [
        "art-21-agent-traffic-acceptance-policy-builder",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "audit_acp_ucp_product_feed",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-21-agent-traffic-acceptance-policy-builder",
      "dct:title": "Agent-Traffic Acceptance Policy Builder",
      "dct:description": "Builds a policy mandate governing accepted AI agent types, identity verification level, velocity and value caps, payment rails, refund posture, retry policy, and blocking rules. Exports an agent-readable instructions block and a §4 hash-anchored artifact. Node 3 of 3 in the Agentic Checkout Chain.",
      "ocg:mandate_type": "agent_guardrail_mandate",
      "ocg:consumes": [
        "art-20-acp-ucp-product-feed-conformance-auditor"
      ],
      "ocg:feeds": [
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "build_agent_traffic_policy",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-22-agentic-payments-protocol-comparator",
      "dct:title": "Agentic Payments Protocol Comparator",
      "dct:description": "Compares AP2, ACP, x402, Visa TAP, and Mastercard Agentic Token across 8 dimensions (backer, artifact, signing, scope, rail, identity, audit, status) and 5 agentic scenarios. Root node of the Agentic Rail Chain — routing_policy output determines Branch A (AP2/card) or Branch B (A2A/x402). Promoted from T276.",
      "ocg:mandate_type": "routing_policy",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-16-google-ap2-mandate-builder",
        "art-23-visa-trusted-agent-protocol-inspector",
        "art-24-mastercard-agentic-token-builder",
        "art-25-a2a-agent-card-validator",
        "art-26-x402-payload-decoder-flow-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "compare_agentic_rail_protocols",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-23-visa-trusted-agent-protocol-inspector",
      "dct:title": "Visa Trusted Agent Protocol (TAP) Signature Inspector",
      "dct:description": "Parses and scores Visa TAP Signature-Input / Signature header pairs (RFC 9421 HTTP Message Signatures). Runs a 5-question TAP Readiness Assessment. Branch A, node 2 of the Agentic Rail Chain. Promoted from T286.",
      "ocg:mandate_type": "compliance_control",
      "ocg:consumes": [
        "art-22-agentic-payments-protocol-comparator",
        "art-16-google-ap2-mandate-builder"
      ],
      "ocg:feeds": [
        "art-24-mastercard-agentic-token-builder",
        "art-18-mcp-developer-readiness-scorecard",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "inspect_visa_trusted_agent_protocol",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-24-mastercard-agentic-token-builder",
      "dct:title": "Mastercard Agentic Token Scope Builder",
      "dct:description": "Builds or lints a Mastercard Agent Pay Agentic Token scope — agent binding, merchant scope, consent policy (limits, expiry, velocity, MCC). The agent never receives the raw PAN (MDES tokenised). Branch A, node 3 of the Agentic Rail Chain. Promoted from T287.",
      "ocg:mandate_type": "compliance_control",
      "ocg:consumes": [
        "art-22-agentic-payments-protocol-comparator",
        "art-23-visa-trusted-agent-protocol-inspector"
      ],
      "ocg:feeds": [
        "art-18-mcp-developer-readiness-scorecard",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "build_mastercard_agentic_token",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-25-a2a-agent-card-validator",
      "dct:title": "A2A Agent Card Validator & Extension Checker",
      "dct:description": "Validates an A2A agent-card.json against the v1.0 shape — identity fields, capabilities, extensions (AP2/x402), input/output modes, skills, provider, signed-card JWS block. Branch B, node 1 of the Agentic Rail Chain. Promoted from T283.",
      "ocg:mandate_type": "compliance_control",
      "ocg:consumes": [
        "art-22-agentic-payments-protocol-comparator"
      ],
      "ocg:feeds": [
        "art-26-x402-payload-decoder-flow-simulator",
        "art-18-mcp-developer-readiness-scorecard",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "verify_a2a_agent_card",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-26-x402-payload-decoder-flow-simulator",
      "dct:title": "x402 Header Decoder, Payload Linter & 402 Flow Simulator",
      "dct:description": "Decodes base64 PAYMENT-REQUIRED / PAYMENT-SIGNATURE / PAYMENT-RESPONSE headers, lints exact-scheme PaymentPayload (EIP-3009 style authorization fields), walks the HTTP-402 request/verify/settle flow, shows scheme×network matrix. Branch B, node 2 of the Agentic Rail Chain. Promoted from T277.",
      "ocg:mandate_type": "compliance_control",
      "ocg:consumes": [
        "art-22-agentic-payments-protocol-comparator",
        "art-25-a2a-agent-card-validator"
      ],
      "ocg:feeds": [
        "art-03-x402-settlement-modeler",
        "art-18-mcp-developer-readiness-scorecard",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "simulate_x402_flow",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-27-agentic-readiness-diagnostic",
      "dct:title": "Agentic Payments Readiness Diagnostic",
      "dct:description": "12-question scored diagnostic: graded A–F across policy & mandates, protocol formalisation, financial-crime controls, and MCP runtime operations. Single-node ChainGraph (chain_depth: 0). Promoted from guides/agentic-readiness-diagnostic.html.",
      "ocg:mandate_type": "agent_guardrail_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-15-agentic-mandate-sandbox",
        "art-16-google-ap2-mandate-builder",
        "art-17-ap2-mcp-policy-validator",
        "art-18-mcp-developer-readiness-scorecard"
      ],
      "ocg:mcp_tool_name": "run_agentic_readiness_diagnostic",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-28-mcp-server-deployability-diagnostic",
      "dct:title": "MCP Server Deployability Diagnostic",
      "dct:description": "12-question scored diagnostic: graded A–F across tool definitions & schemas, transport & auth, security hygiene, and operations. Single-node ChainGraph (chain_depth: 0). Promoted from guides/mcp-server-deployability-diagnostic.html.",
      "ocg:mandate_type": "agent_guardrail_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-18-mcp-developer-readiness-scorecard"
      ],
      "ocg:mcp_tool_name": "run_mcp_deployability_diagnostic",
      "ocg:wave": "A",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-30-agent-commerce-conformance-validator",
      "dct:title": "Agent Commerce Cross-Protocol Conformance Validator",
      "dct:description": "The synergy flagship. Validates a single agent purchase end-to-end across four protocols: AP2 v0.2 mandate chain (Intent → Cart → Payment), ACP checkout conformance (OpenAI/Stripe), Visa TAP RFC 9421 HTTP Message Signature inspection, and x402 settlement leg. Issues one unified PASS/WARN/FAIL verdict and a single execution_hash receipt (ChainGraph Standard v0.1 §4, chain_depth: 1). Consumes ART-01, ART-12, ART-03. Feeds CRY-05, PTG-01.",
      "ocg:mandate_type": "payment_mandate",
      "ocg:consumes": [
        "art-01-ap2-mandate-chain-validator",
        "art-12-acp-checkout-conformance-validator",
        "art-03-x402-settlement-modeler"
      ],
      "ocg:feeds": [
        "cry-05-agent-action-audit-trail-aggregator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "validate_agent_commerce_conformance",
      "ocg:wave": "6",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-31-a2a-x402-extension-mandate-validator",
      "dct:title": "A2A x402-Extension Mandate Validator",
      "dct:description": "Validates the A2A x402 extension (Coinbase/MetaMask/Ethereum Foundation) that carries crypto-payment authority inside an AP2 mandate: extension declaration in the A2A agent card, payment-authority scope, settlement-rail binding, exact-scheme x402 PaymentPayload lint, and mandate-to-payment-leg consistency. PASS/WARN/FAIL verdict + execution_hash. Educational/simulation.",
      "ocg:mandate_type": "settlement_mandate",
      "ocg:consumes": [
        "art-03-x402-settlement-modeler"
      ],
      "ocg:feeds": [
        "art-30-agent-commerce-conformance-validator",
        "cry-05-agent-action-audit-trail-aggregator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "validate_a2a_x402_mandate",
      "ocg:wave": "6",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-32-a2a-agent-card-trust-chain-validator",
      "dct:title": "A2A Agent-Card Trust-Chain Validator",
      "dct:description": "The horizontal agent-to-agent trust complement. Validates an A2A v1.0 agent card (schema, signature, extension URIs) then assesses the delegated-authority trust chain into KYA-OS attestation + spend policy: chain depth <= 4, no scope escalation, validity windows <= 90 days. Trust PASS/WARN/FAIL determination + execution_hash.",
      "ocg:mandate_type": "compliance_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "art-04-agent-identity-attestation-checker",
        "art-02-agent-spend-policy-simulator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "validate_a2a_trust_chain",
      "ocg:wave": "6",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:cry-05-agent-action-audit-trail-aggregator",
      "dct:title": "Agent-Action Audit-Trail Aggregator",
      "dct:description": "The regulatory receipt. Aggregates N execution_hashes from an agent session into one SHA-256 Merkle-root session receipt with per-leaf inclusion proofs and an ordered chain-depth map. Sets session_receipt_root. The tamper-evident audit object for EU AI Act Art. 12 record-keeping + DORA. Consumes ANY ChainGraph artifact; feeds CRY-04, PTG-01.",
      "ocg:mandate_type": "cryptographic_mandate",
      "ocg:consumes": [
        "art-30-agent-commerce-conformance-validator",
        "art-31-a2a-x402-extension-mandate-validator",
        "art-33-mcp-server-self-attestation-pack"
      ],
      "ocg:feeds": [
        "cry-04-merkle-batch-verifier",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "aggregate_execution_receipts",
      "ocg:wave": "6",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    },
    {
      "@type": [
        "dcat:Dataset",
        "ocg:DecisionTool"
      ],
      "@id": "ain:art-33-mcp-server-self-attestation-pack",
      "dct:title": "MCP Server Self-Attestation Pack",
      "dct:description": "Combines the five MCP-dev checks — tool-definition lint (JSON Schema 2020-12), server.json validation (2025-12-11 schema), OAuth 2.1 audit (RFC 9728 PRM, RFC 8707 audience), tool-poisoning scan, and ops/readiness — into one signed attestation: composite A-F ship-readiness grade + per-domain scores + ordered remediation. Dogfooding: the AINumbers server can attest itself.",
      "ocg:mandate_type": "infrastructure_mandate",
      "ocg:consumes": [],
      "ocg:feeds": [
        "cry-05-agent-action-audit-trail-aggregator",
        "ptg-01-ap2-prompt-template-generator"
      ],
      "ocg:mcp_tool_name": "attest_mcp_server",
      "ocg:wave": "6",
      "ocg:signing_keys": [],
      "dcat:accessService": {
        "@type": "dcat:DataService",
        "dcat:endpointURL": "https://mcp.ainumbers.co/mcp",
        "dct:conformsTo": "https://modelcontextprotocol.io/spec/2025-11-05"
      }
    }
  ],
  "v0_3_1_note": "v0.3.1 (additive): profile conformance migrated to W3C dct:conformsTo + dereferenceable profile URIs (see chaingraph-standard/profiles/registry.json). semantic_profile tokens retained as registered aliases (W3C Content Negotiation by Profile). ISO 20022 profiles applied truthfully — only payment/settlement nodes carry pacs.008-subset; the party-identification profile is published and provisioned for the Tempo wave. Hash preimage and internal IDs unchanged.",
  "v0_4_note": "v0.4.0 (Compute Binding): server-side kernel dispatch for gpu:false nodes. gpu:false tools now return execution_hash + output_payload in one MCP round-trip without browser. compute_capability field per node (server|reduced|browser). build_session_receipt added. chains array migrated from NAMED_CHAINS literal. Artifacts emit chaingraph_version:0.4.0.",
  "v0_5_note": "v0.5.0 (Proof Binding, §16): OPTIONAL W3C Data Integrity proof (cryptosuite eddsa-jcs-2022) at audit_signature.proof, signing the whole artifact via the same §4 JCS canonicalizer. Turns the execution_hash from tamper-evidence into authenticated attestation; fills the §13.11 'no securing proof' gap. Default-off and holder-chosen (signing de-anonymizes). Backward-compatible: hash preimage unchanged, chaingraph_version stays 0.4.0, unsigned artifacts byte-identical to v0.4.1; only spec_version bumps. did:key for ephemeral signing; did:web + server-side HSM/KMS for institutional issuers (§16.4). Gate: proof-binding.test.mjs."
}
