{
  "tool_id": "art-659-publish-fund-nav-head",
  "tool_version": "1.0.0",
  "display_name": "Publish Fund NAV Head",
  "mcp_name": "publish_fund_nav_head",
  "mandate_type": "attestation_mandate",
  "wave": 111,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-659-publish-fund-nav-head.html",
  "description": "Publishes one SPEC.md §HEAD-1 head-commit publication event for a tokenized fund's daily-NAV stream, so a fund's NAV-per-share history (art-373-recompute-fund-nav results) becomes a sequence-numbered, signer-continuous chain instead of a series of unlinked artifacts a reviewer must independently discover and order, per NAV-LINEAGE-BUILD-SPEC.md §3. Existing NAV oracles attest transport of an opaque number, not computation; this head-commit tip IS that opaque-number transport layer, but every tip's root is a full OCG NAV receipt (art-373's own execution_hash), not a bare figure. 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 the sibling art-649-publish-model-risk-head's own caller-verification-claim convention, 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; a head-file tip proves the signer's claimed daily-NAV tip, it does not itself detect equivocation (needs ocg-head-tlog@1, a later WU) and does not attest anything about the tokenized fund's on-chain share representation, which is out of scope here. 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 fund-NAV stream and makes no claim under any fund-administration, custody, or NAV-error disclosure regime itself.",
  "input_schema_ref": "chaingraph/art-659-publish-fund-nav-head.html#manifest",
  "consumes": [
    "art-373-recompute-fund-nav"
  ],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:1cd183efa21280ceaa0367c7ba45c67583630689b6666de5e668953baf3c37b4",
      "valid_from": "2026-08-27"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-09-04"
    }
  ],
  "export_capability": [
    "json"
  ],
  "standards_basis": "not_applicable",
  "cited_clause_digest": [],
  "compute_proof_ready": "ready",
  "cycle_preflight": "FAST — 5,706,668 user_cycles max across all 15 fixture vectors (argmax v12), measured exec-only 2026-09-04 against landed origin/main bytes; 0.19x the 30,000,000 line.",
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "ELC8Q/6AB1aZM4zjY1ZzEVy1TzAF4GgEI3UKreJPJWceWUKZVIeOhC75fFMWkOKXlrSBVl7jE6oj1FAORR7RWhbuzizMaeDuW4JrTi1L0s52f3F7CFoVrib1/jle/lPBGT6x1BW1ZPtfNX3I7Raml6hX7umUtQ62nkTFCLn4dOsHfktmnejj2C4AvdgSIiogPFdAHIVBtGqR4xJnLozQahsVdopcXuu1HPttFea3u6DaQ9w1v7uJZjxHc01XqRqVAIwggy3elZsEvv27hmNiv6xiuhvsA3bHNdHago+qxAwPxIMInPQndKVJvFFo9mH0qXaoy5Gzt2nA6JLyMxtOGA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:1cd183efa21280ceaa0367c7ba45c67583630689b6666de5e668953baf3c37b4",
      "output": {
        "chain_errors": [],
        "chain_valid": null,
        "chain_verified_by": null,
        "errors": [
          "head is required."
        ],
        "fence": "This node never accepts or handles private key material and never itself runs an Ed25519 verify. signature_valid/chain_valid are the CALLER's own verification claim, asserted and digested into this receipt, never independently re-derived. head_hash is the one field this node DOES independently recompute (pure SHA-256 over the caller-supplied head, never trusted as a caller-asserted value).",
        "head_hash": null,
        "is_genesis": false,
        "not_proven": [
          {
            "detail": "signature_valid and chain_valid are the CALLER's own verification claim (e.g. from running _head.mjs's verifyHeadProof/verifyChain, or chaingraph/standard/head-commit.test.mjs, off-node before calling this node), asserted and digested into this receipt -- exactly like art-649's own caller-verification-claim convention. This node does not itself execute Ed25519 verification (the real zkVM guest has no WebCrypto at all; an in-kernel verify() result would not be reproducible across this repo's required execution environments).",
            "item": "Signature / chain verification"
          },
          {
            "detail": "A head-file tip proves the signer's claimed daily-NAV tip at this seq; it does not itself detect the same signer publishing a different, conflicting NAV for the same day elsewhere. That needs the ocg-head-tlog@1 witness backing (a later WU per NAV-LINEAGE-BUILD-SPEC.md §3), not this node.",
            "item": "Equivocation detection"
          },
          {
            "detail": "root is a caller-supplied execution_hash citing the day's art-373-recompute-fund-nav receipt, asserted and digested into this receipt. This node performs no lookup against a live artifact store and does not itself verify that the cited hash corresponds to a real, still-valid upstream NAV computation, nor that the computation was accurate.",
            "item": "Daily NAV computation accuracy"
          },
          {
            "detail": "This receipt attests a signed publication event over a declared NAV-per-share figure. It makes no claim about the tokenized fund's on-chain share representation, token supply, or transfer mechanics -- those are out of scope for this node.",
            "item": "Tokenized-fund on-chain share representation"
          },
          {
            "detail": "This receipt evidences one head-commit publication event. It has no bearing on whether the underlying NAV calculation was accurate and does not itself satisfy any fund-administration, custody, or NAV-error disclosure regime (e.g. CSSF 24/856-shaped disclosure) -- those obligations live with the fund administrator and with the art-373/art-374/nav-error-evidence-pack chain this stream cites, never with this node.",
            "item": "NAV-error / fund-administration compliance"
          }
        ],
        "prev_head_hash": null,
        "regulatory_framework": "SPEC.md §HEAD-1 (this estate's own head-commit primitive, PROV-HEAD-1, DONE/merged) applied to a tokenized fund's daily-NAV stream per NAV-LINEAGE-BUILD-SPEC.md §3; not itself a fund-administration, custody, or NAV-error disclosure requirement.",
        "root": null,
        "rotates_to": null,
        "seq": null,
        "signature_valid": null,
        "signature_verified_by": null,
        "signer": null,
        "stream": null,
        "structural_error": "head is required.",
        "timestamp": null
      }
    }
  }
}
