{
  "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
      }
    }
  }
}
