{
  "$comment": "GENERATED FROM api/_tools/<slug>/route.mjs — do not edit by hand",
  "type": "https://eips.ethereum.org/EIPS/eip-8257#tool-manifest-v1",
  "name": "ens-resolver",
  "description": "Batch ENS name/address resolution on Ethereum mainnet. Forward: ENS name (.eth etc) → address (up to 20 names). Reverse: Ethereum address → primary ENS name. Also returns avatar URL when available. Free — no payment required. Handles .eth names and any ENS subdomain.",
  "endpoint": "https://www.clawbots.org/api/tools/ens-resolver",
  "inputs": {
    "type": "object",
    "properties": {
      "items": {
        "type": "array",
        "items": {
          "type": "string",
          "description": "ENS name (e.g. 'vitalik.eth') or Ethereum address (e.g. '0xd8dA6BF...')"
        },
        "maxItems": 20,
        "description": "Array of ENS names and/or Ethereum addresses to resolve. Mix is OK."
      }
    },
    "required": [
      "items"
    ]
  },
  "outputs": {
    "type": "object",
    "properties": {
      "count": {
        "type": "integer",
        "description": "Total items queried"
      },
      "resolved": {
        "type": "integer",
        "description": "Number of items successfully resolved to both name and address"
      },
      "unresolved": {
        "type": "integer",
        "description": "Number of items with no ENS record"
      },
      "results": {
        "type": "array",
        "items": {
          "type": "object",
          "properties": {
            "input": {
              "type": "string",
              "description": "The original input value"
            },
            "name": {
              "type": "string",
              "nullable": true,
              "description": "Resolved ENS primary name, or null if none"
            },
            "address": {
              "type": "string",
              "nullable": true,
              "description": "Resolved Ethereum address (lowercased), or null if not found"
            },
            "avatar": {
              "type": "string",
              "nullable": true,
              "description": "ENS avatar URL, or null if not set"
            },
            "resolved": {
              "type": "boolean",
              "description": "True if both name and address are known"
            },
            "error": {
              "type": "string",
              "nullable": true,
              "description": "Resolution-failure note (no upstream details leaked)"
            }
          }
        }
      },
      "network": {
        "type": "string",
        "description": "Always 'ethereum-mainnet'"
      },
      "cachedFor": {
        "type": "string",
        "description": "Per-item cache TTL"
      }
    }
  },
  "creatorAddress": "0x523eff3db03938eaa31a5a6fbd41e3b9d23edde5",
  "tags": [
    "ens",
    "ethereum",
    "identity",
    "resolver",
    "address",
    "free"
  ],
  "pricing": []
}
