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