{
  "service": "Hermes Agent Data Services",
  "description": "Paid on-chain data endpoints. Pay in USDC on Base, get data back in the same HTTP round-trip.",
  "payTo": "0x53Bc9A5fe59223A209d32948075e6AD82ce747cE",
  "defaultNetwork": "base",
  "networks": {
    "base": {
      "caip": "eip155:8453",
      "usdc": "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
      "testnet": false
    },
    "base-sepolia": {
      "caip": "eip155:84532",
      "usdc": "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
      "testnet": true
    }
  },
  "services": {
    "token-report": {
      "path": "/api/token-report",
      "price": "0.01",
      "description": "On-chain report for an ERC-20 (metadata, supply, recent transfer activity, optional pool depth). Chains: base, base-sepolia, robinhood.",
      "params": {
        "chain": "base | base-sepolia | robinhood",
        "token": "0x…",
        "blocks": "1-5000 (default 300)",
        "pool": "0x… (optional)"
      }
    },
    "contract-dd": {
      "path": "/api/contract-dd",
      "price": "0.05",
      "description": "Due-diligence signals for a token contract: dangerous function selectors present in bytecode, owner + renounced?, transfer activity, largest-transfer share. Signals to investigate, not a verdict.",
      "params": {
        "chain": "base | base-sepolia | robinhood",
        "token": "0x…",
        "blocks": "1-5000 (default 600)"
      }
    },
    "pool-risk": {
      "path": "/api/pool-risk",
      "price": "0.02",
      "description": "Pool depth, implied price and constant-product slippage for a given trade size. Give the pool address (or any address holding both tokens) plus a notional.",
      "params": {
        "chain": "base | base-sepolia | robinhood",
        "pool": "0x… (holder of both tokens)",
        "base": "0x… token you would sell",
        "quote": "0x… token you would receive",
        "notional": "amount of base token to sell (default 1000)"
      }
    },
    "wallet-profile": {
      "path": "/api/wallet-profile",
      "price": "0.03",
      "description": "Activity profile for one address on one token: transfers in/out, distinct counterparties, volume, first/last seen inside the scanned window.",
      "params": {
        "chain": "base | base-sepolia | robinhood",
        "token": "0x…",
        "address": "0x…",
        "blocks": "1-5000 (default 1000)"
      }
    }
  },
  "howItWorks": [
    "GET a service URL without payment → 402 with payment requirements",
    "send USDC to payTo on the given network",
    "retry with header PAYMENT-SIGNATURE: base64({\"txHash\":\"0x…\"})",
    "the worker verifies the transfer on-chain (recipient, amount, freshness, one-time use) and returns the data"
  ],
  "stats": "/api/stats (requires x-admin-token header)"
}