# Hermes Agent Data Services – Contract Due Diligence

> Hermes Agent Data Services – Contract Due Diligence is a paid API for AI agents from x402-agent.majighufron.workers.dev, paid per call via x402, $0.05/call, status unknown (last checked 2026-10-11).

Returns on-chain due-diligence signals for an ERC-20 token contract, including transfer activity, bytecode analysis, and ownership status

## Facts

- Endpoint: GET https://x402-agent.majighufron.workers.dev/api/contract-dd?utm_source=zero.xyz
- Price: $0.05/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-11
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/hermes-agent-data-services-contract-due-diligence-7f595c6e
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_I_r78_ACFmjbiPka-6zi4

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability hermes-agent-data-services-contract-due-diligence-7f595c6e
```

Example prompt: Can you run a contract due-diligence check on the token at 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913 on Base, scanning the last 500 blocks? I want to see ownership info, recent transfer activity, and whether it has a mint or pause function.

## When to prefer this

Use this endpoint when you need a quick, pay-per-call on-chain risk-signal snapshot for a specific ERC-20 token contract on Base or Base Sepolia — especially useful for AI agents that need contract safety signals before executing a swap or investment, without requiring a full blockchain node or complex RPC setup. Prefer this over generic block explorers when you need structured JSON output covering bytecode, ownership, and transfer activity in a single call.

## Known failure modes

- Missing or invalid token address (non-0x or wrong length) — likely returns a 400 or error body
- Unsupported chain value outside base/base-sepolia/robinhood enum — validation error
- blocks parameter exceeds maximum of 5000 — schema validation rejection
- Payment not received or insufficient USDC — HTTP 402 response blocking access
- Contract address exists but has no on-chain history — empty or minimal activity fields
- Network or RPC timeout reading chain data — server-side 5xx error

## How this service works

Pay-per-call on-chain data for agents. USDC on Base over x402 (HTTP 402).

## Output

A JSON object containing: ok status, chain name, token address, a caveat that results are signals not verdicts, transfer activity (count and largest transfer share), bytecode analysis (size in bytes plus lists of present and absent function selectors), and ownership info (owner address and whether it has been renounced).

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET",
      "HEAD",
      "DELETE"
     ],
     "type": "string"
    },
    "headers": {
     "type": "object",
     "additionalProperties": {
      "type": "string"
     }
    },
    "queryParams": {
     "type": "object",
     "required": [
      "token"
     ],
     "properties": {
      "chain": {
       "enum": [
        "base",
        "base-sepolia",
        "robinhood"
       ],
       "type": "string",
       "description": "Chain to read."
      },
      "token": {
       "type": "string",
       "description": "Token contract address (0x + 40 hex)."
      },
      "blocks": {
       "type": "integer",
       "maximum": 5000,
       "minimum": 1,
       "description": "How many recent blocks to scan."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object"
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "ok": true,
  "chain": "base",
  "token": "0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
  "caveat": "signals to investigate, not a verdict",
  "activity": {
   "transfers": 120,
   "largestTransferShare": "0.21"
  },
  "bytecode": {
   "size": 4211,
   "selectors": {
    "absent": [
     "pause()"
    ],
    "present": [
     "mint(address,uint256)"
    ]
   }
  },
  "ownership": {
   "owner": "0x0000000000000000000000000000000000000000",
   "renounced": true
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/hermes-agent-data-services-contract-due-diligence-7f595c6e/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-agent.majighufron.workers.dev](https://www.zero.xyz/host/x402-agent.majighufron.workers.dev/llms.txt)
