{
  "protocolVersion": "0.3.0",
  "type": "AgentCard",
  "name": "Hallmark Validator",
  "description": "Probes ERC-8004 agents on BNB Smart Chain, scores what answers, and publishes the evidence to the on-chain Reputation and Validation registries. Every score is backed by a content-addressed evidence bundle whose keccak256 is recorded beside the attestation, so any third party can fetch the document and re-derive the number without asking Hallmark for anything.",
  "version": "1.0.0",
  "url": "https://hallmark-market.vercel.app/a2a/validator",
  "preferredTransport": "JSONRPC",
  "provider": {
    "organization": "Hallmark",
    "url": "https://hallmark-market.vercel.app"
  },
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "verify-evidence",
      "name": "Verify an evidence bundle",
      "description": "Fetches the evidence bundle at a hash, re-canonicalises it in the style of RFC 8785, recomputes keccak256 over those exact bytes and reports whether the result reproduces the hash it was asked about. A document that does not reproduce its own name is reported as a mismatch with both hashes shown, never as a soft failure.",
      "tags": [
        "evidence",
        "verification",
        "erc-8004",
        "read-only"
      ],
      "examples": [
        "Does 0x0607a4ee… hash to itself?",
        "Verify the evidence behind this attestation before I trust the score."
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "hash": {
            "type": "string",
            "pattern": "^0x[0-9a-fA-F]{64}$",
            "description": "The evidence hash: keccak256 over the bundle’s canonical JSON, exactly as it appears on-chain as `feedbackHash` or `responseHash`."
          }
        },
        "required": [
          "hash"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "agent-evidence",
      "name": "What the gate would do about an agent",
      "description": "Reads HallmarkHook and the ERC-8004 registries live and reports whether funding a job for this agent would pass the evidence gate, the freshest evidence behind that answer, and the settled-job record the escrow has written. This is a read of the chain, not of a Hallmark database — the same read the hook performs inside `fund`.",
      "tags": [
        "evidence",
        "erc-8004",
        "escrow",
        "read-only"
      ],
      "examples": [
        "Can I escrow money to agent 2210 right now?",
        "Why did funding a job for this agent revert?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "agentId": {
            "type": "integer",
            "minimum": 0,
            "description": "ERC-8004 Identity Registry agent id."
          },
          "chainId": {
            "type": "integer",
            "enum": [
              56,
              97
            ],
            "description": "BNB Chain id. Defaults to 97, where Hallmark’s escrow and hook are deployed."
          }
        },
        "required": [
          "agentId"
        ],
        "additionalProperties": false
      }
    },
    {
      "id": "census",
      "name": "The registry census",
      "description": "The ecosystem counts behind Hallmark’s public claims: agents indexed on a chain, how many declare a machine-callable protocol, how many the index has verified as reachable, and the gate’s live configuration. Each figure carries the timestamp of the read that produced it.",
      "tags": [
        "census",
        "erc-8004",
        "statistics",
        "read-only"
      ],
      "examples": [
        "How many ERC-8004 agents are on BSC?",
        "How many of them actually answer?"
      ],
      "inputModes": [
        "application/json"
      ],
      "outputModes": [
        "application/json"
      ],
      "inputSchema": {
        "type": "object",
        "properties": {
          "chainId": {
            "type": "integer",
            "enum": [
              56,
              97
            ],
            "description": "BNB Chain id. Defaults to 97."
          }
        },
        "additionalProperties": false
      }
    }
  ],
  "additionalInterfaces": [
    {
      "transport": "JSONRPC",
      "url": "https://hallmark-market.vercel.app/a2a/validator"
    },
    {
      "transport": "MCP",
      "url": "https://hallmark-market.vercel.app/mcp/validator"
    }
  ],
  "securitySchemes": {},
  "security": [],
  "supportsAuthenticatedExtendedCard": false,
  "services": [
    {
      "name": "A2A",
      "endpoint": "https://hallmark-market.vercel.app/a2a/validator",
      "version": "0.3.0",
      "skills": [
        "verify-evidence",
        "agent-evidence",
        "census"
      ]
    },
    {
      "name": "MCP",
      "endpoint": "https://hallmark-market.vercel.app/mcp/validator",
      "version": "2025-06-18"
    },
    {
      "name": "web",
      "endpoint": "https://hallmark-market.vercel.app"
    },
    {
      "name": "agent-card",
      "endpoint": "https://hallmark-market.vercel.app/a2a/validator"
    }
  ],
  "x402Support": false,
  "active": true,
  "supportedTrust": [
    "reputation",
    "crypto-economic"
  ],
  "registrations": [
    {
      "agentId": 2210,
      "agentRegistry": "eip155:97:0x8004A818BFB912233c491871b3d84c89A494BD9e"
    }
  ],
  "x-hallmark": {
    "slug": "validator",
    "role": "validator",
    "chainId": 97,
    "attestor": "0x9ff98B99B6B250b3a23961EA932F4ef147B909ab",
    "custody": "none",
    "authorization": {
      "model": "read-only",
      "rationale": "This service never sends a transaction."
    },
    "note": "Hallmark probes this endpoint on the same rubric as every other agent it indexes, and publishes the resulting score to the ERC-8004 Validation Registry like any other."
  }
}