{
  "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)"
      }
    },
    "rh-token": {
      "path": "/api/rh-token",
      "price": "0.05",
      "description": "Robinhood Chain (4663) token dossier: ERC-20 metadata, supply, its Uniswap v4 pool, the launch block, the deployer wallet and how many tokens that deployer has launched, plus early-buyer concentration. Built for chains where nobody else sells data.",
      "params": {
        "address": "0x… token on Robinhood Chain",
        "blocks": "1-20000 (default 8000, how far back to scan)",
        "pool": "0x… optional, skip the pool lookup"
      }
    },
    "rh-dev": {
      "path": "/api/rh-dev",
      "price": "0.05",
      "description": "Robinhood Chain (4663) deployer history: every token this wallet has launched inside the scanned window, with each token's symbol, supply, pool and launch block. Use it to judge whether the wallet launching the token you are looking at has a record.",
      "params": {
        "address": "0x… deployer wallet on Robinhood Chain",
        "blocks": "1-400000 (default 60000)",
        "limit": "1-100 (default 50)"
      }
    },
    "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)"
}