{
  "tool_id": "art-578-etf-pcf-basket-verification",
  "kernel_id": "art-578-etf-pcf-basket-verification",
  "display_name": "ETF PCF Create/Redeem Basket Verification",
  "tool_version": "1.0.0",
  "mandate_type": "compliance_control",
  "purpose": "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.",
  "control_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.",
  "declared_inputs": [],
  "declared_outputs": [],
  "kernel_digest": "sha256:8490d544bbc1bcf3f211e1b3e65eb5f0d9d5e83522bb6baba6486139e802d40d",
  "trust_label": "independently verified: zkVM execution proof (risc0/groth16-bn254)",
  "data_vintage": "2026-08-07",
  "last_validated": "2026-08-07",
  "conformance_fixtures_vendored": true,
  "compute_proof_ready": "ready",
  "wave": 94,
  "source_url": "https://ainumbers.co/chaingraph/art-578-etf-pcf-basket-verification.html",
  "generated_at": "2026-08-15T11:12:17.704Z"
}
