{
  "tool_id": "art-557-record-index-constituents",
  "kernel_id": "art-557-record-index-constituents",
  "display_name": "Record Index Constituents",
  "tool_version": "1.0.0",
  "mandate_type": "attestation_mandate",
  "purpose": "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.",
  "control_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.",
  "declared_inputs": [],
  "declared_outputs": [],
  "kernel_digest": "sha256:9fa0ed744db004c384a593d82dbf01220683bac4c5daef6601790bfb5ffbd175",
  "trust_label": "independently verified: zkVM execution proof (risc0/groth16-bn254)",
  "data_vintage": "2026-08-06",
  "last_validated": "2026-08-06",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "ready",
  "wave": 90,
  "source_url": "https://ainumbers.co/chaingraph/art-557-record-index-constituents.html",
  "generated_at": "2026-08-15T11:12:17.704Z"
}
