{
  "tool_id": "art-604-erc8004-registry-entry-verifier",
  "tool_version": "1.0.0",
  "display_name": "ERC-8004 Registry Entry Verifier",
  "mcp_name": "verify_erc8004_registry_entry",
  "mandate_type": "compliance_control",
  "wave": 99,
  "gpu": false,
  "url": "https://ainumbers.co/chaingraph/art-604-erc8004-registry-entry-verifier.html",
  "description": "Checks whether a caller-supplied claimed ERC-8004 agent registry entry (Identity, Reputation, or Validation registry) and a caller-supplied on-chain record, independently read by the caller from the registry contract, agree field-by-field, and separately whether any address-shaped field in the on-chain record is EIP-55 checksum-valid. Zero network calls; this tool never queries a registry contract itself, so it makes no claim about the current on-chain state, only that the two supplied records are consistent with each other at the time supplied. Generic schema only, no per-registry-type adapter code -- the caller supplies both records as arbitrary key-value pairs. agent_id is compared as an opaque literal string throughout: never parsed as a number, never resolved against an Agent Card or A2A endpoint, never cached, and never cross-referenced against another registry. Two independently reported findings, never fused into one boolean.",
  "input_schema_ref": "chaingraph/art-604-erc8004-registry-entry-verifier.html#manifest",
  "consumes": [],
  "feeds": [],
  "status": "live",
  "conformance_fixtures": true,
  "compute_capability": "server",
  "compute_proof_ready": "ready",
  "compute_images": [
    {
      "system": "sha256-source",
      "image_id": "sha256:1da61365399f5cf6ccd435e837f00981a4c6f9ebd9264d0d0641bda3f38091bc",
      "valid_from": "2026-07-10"
    },
    {
      "system": "risc0",
      "image_id": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
      "valid_from": "2026-08-11"
    }
  ],
  "compute_proof": {
    "type": "ZkVmReceipt",
    "system": "risc0",
    "receiptFormat": "groth16-bn254",
    "imageId": "sha256:a1a0bc89b5b1febaeda3519f6dbade0fa5ac16beeb143c4e1b01689573567bc6",
    "seal": "JZlQ8BOYlVo8nDePAIktCFmHLPYjRdzK04jGeDiQg3QEymdyv9DBRdpoWbutO000lmn+mY3g1cqNH+syaqdhmC5YGSE1aE4ywxdB4yOVqF5sW/7uLmKZiwbgcNABXh5LE91FJBi5T6RZwNxwjn68O/r3Q0xFgCbrdLJVNd6hMKcOTiDAd09WKuegQrUboRhDKubep4lmeRsHqeGWgQK5KQ4+uEDw+EGqai2Str428NVk9On3SlO1wHhvK4+UfW2MGW09ueMJky5MmmHzTIo0s4ggStOtN8kFUHgxtNXRFr4O9/cJfVFaoF1TAk2lEwjzx+ZMmq1lWUnwiFgq1yKdfA==",
    "journal": {
      "chaingraph_version": "0.4.0",
      "kernel_digest": "sha256:1da61365399f5cf6ccd435e837f00981a4c6f9ebd9264d0d0641bda3f38091bc",
      "output": {
        "address_checksum_findings": [
          {
            "checksum_verdict": "VALID",
            "detail": "Mixed-case address matches its EIP-55 checksum encoding.",
            "expected_checksum": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
            "field": "agentAddress",
            "value": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4"
          }
        ],
        "agent_id_handling": "agent_id (any key matching /agent[_-]?id/i) is compared as an opaque literal string only -- never parsed as a number, never resolved against an Agent Card, A2A endpoint, or any other registry, and never cached. This tool makes no identity-resolution claim (ERC8004-VERIFY-1 fence).",
        "chain_id": "1",
        "field_comparison": [
          {
            "claimed": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
            "field": "agentAddress",
            "match": true,
            "onchain": "0x5B38Da6a701c568545dCfcB03FcB875f56beddC4",
            "opaque_identifier": false,
            "present_in_claimed": true,
            "present_in_onchain": true
          },
          {
            "claimed": "agent.example.com",
            "field": "agentDomain",
            "match": true,
            "onchain": "agent.example.com",
            "opaque_identifier": false,
            "present_in_claimed": true,
            "present_in_onchain": true
          },
          {
            "claimed": "42",
            "field": "agentId",
            "match": true,
            "onchain": "42",
            "opaque_identifier": true,
            "present_in_claimed": true,
            "present_in_onchain": true
          }
        ],
        "findings": [
          {
            "check": "entry_field_consistency",
            "detail": "3 field(s) compared, all match between claimed_entry and onchain_record.",
            "verdict": "CONSISTENT"
          },
          {
            "check": "address_checksum_validity",
            "detail": "agentAddress:VALID",
            "verdict": "CONSISTENT"
          }
        ],
        "not_proven": [
          {
            "detail": "The on-chain_record is caller-supplied, not fetched by this tool. It may be stale relative to the registry contract's current state at verification time.",
            "item": "Current on-chain state"
          },
          {
            "detail": "agent_id is compared as an opaque literal only. This tool never resolves it against an Agent Card, A2A endpoint, or any other registry, and performs no cross-registry identity linking.",
            "item": "Agent identity resolution"
          },
          {
            "detail": "A consistent registry entry says nothing about whether the agent behaves honestly, whether reputation feedback is truthful, or whether a validation response is correct.",
            "item": "Agent trustworthiness / reputation validity"
          },
          {
            "detail": "This tool does not audit or attest to the ERC-8004 registry contract's own implementation; it only compares two caller-supplied records.",
            "item": "Registry contract correctness"
          }
        ],
        "overall_determination": "CONSISTENT",
        "registry_address": "0x5FbDB2315678afecb367f032d93F642f64180aa",
        "registry_type": "identity",
        "scope_note": "Checks whether a caller-supplied claimed registry entry and a caller-supplied on-chain record (independently read by the caller from the ERC-8004 registry contract) agree field-by-field, and separately whether any address-shaped field in the on-chain record is EIP-55 checksum-valid. Zero network calls -- this tool never queries a registry contract itself and makes no claim about the CURRENT on-chain state (the supplied on-chain record may be stale by the time it is read), agent trustworthiness, reputation validity, or validation-response correctness. Generic schema only: no per-registry-type or per-deployment adapter code, since the Identity/Reputation/Validation registries' exact field layouts are an external surface this tool does not control."
      }
    }
  },
  "export_capability": [
    "json"
  ]
}
