# ENS Name/Address Resolution via EVM Public Node

> ENS Name/Address Resolution via EVM Public Node is a paid API for AI agents from x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev, paid per call via x402, $0.002/call, status unknown (last checked 2026-10-21).

Resolves an ENS name to its EVM address (forward lookup) or an EVM address to its primary ENS name (reverse lookup), reading directly from a public node with no caching.

## Facts

- Endpoint: GET https://x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/evm/ens?utm_source=zero.xyz
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-10-21
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/ens-name-address-resolution-via-evm-public-node-b918178b
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_mL15OKTc2fv0s476wU06o

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 ens-name-address-resolution-via-evm-public-node-b918178b
```

Example prompt: Can you resolve vitalik.eth to its Ethereum address using a live public node — forward lookup, no cache?

## When to prefer this

Choose this endpoint when you need a live, uncached, on-chain ENS resolution (forward or reverse) directly from a public EVM node, especially when freshness and block-level provenance matter. It is ideal for verifying counterparty identity before sending assets, enriching agent wallets with human-readable names, or confirming that an ENS name's forward and reverse records agree. Prefer alternatives if you need bulk resolution, cached/fast-path lookups where staleness is acceptable, or resolution across non-EVM naming systems.

## Known failure modes

- ENS name not registered or has no resolver — found: false with reason explaining why
- Node did not return certain fields — those fields are null and listed in errors array
- Invalid 0x address format — rejected by input schema validation
- Name not found on the specified chain — found: false
- Public node timeout or unavailability — errors may list failed calls

## How this service works

An open index of the machine-to-machine (agent) economy. x402 routes: ranked discovery over the live x402 service market, every indexed service scored by real 30-day calls and paying-wallet bounds, with a receipt naming the snapshot hash and scoring revision. /economy routes, for Tempo MPP, Virtuals ACP, Olas, Masumi, ERC-8004 agent registries, Solana agent registries, Base agent contracts and MCP servers (Official MCP Registry): each protocol's published figures (agent or server counts, transactions or payment events; payers and USD volume only where the source publishes them: payers for x402 and Tempo MPP, USD volume for x402 and Virtuals ACP), each with its unit, window and source; units differ, so totals are not summed. L402 and per-service MPP listings are not covered.

## Output

A JSON object with the resolved ENS name or address, whether the record was found, the block number at resolution time, chain and chainId, the resolver contract address, lookup direction, verified_forward flag (for reverse lookups), the public node host that answered, and an errors array listing any fields the node did not return. No USD pricing or cached data is included.

## 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"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "required": [],
     "properties": {
      "name": {
       "type": "string",
       "maxLength": 100,
       "description": "ENS name (lowercase labels), e.g. vitalik.eth"
      },
      "address": {
       "type": "string",
       "pattern": "^0x[0-9a-fA-F]{40}$",
       "description": "0x address for the reverse (primary name) lookup instead of name"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "chain",
      "chainId",
      "block",
      "as_of",
      "errors",
      "note",
      "direction",
      "found",
      "name",
      "address"
     ],
     "properties": {
      "name": {
       "type": [
        "string",
        "null"
       ]
      },
      "note": {
       "type": "string",
       "description": "Fixed text: read from a public node, no USD prices"
      },
      "as_of": {
       "type": "string",
       "description": "ISO 8601 UTC time of the reply"
      },
      "block": {
       "type": [
        "integer",
        "null"
       ],
       "description": "Latest block at the node when it answered"
      },
      "chain": {
       "enum": [
        "ethereum",
        "base",
        "arbitrum",
        "polygon",
        "optimism"
       ],
       "type": "string",
       "description": "Chain key"
      },
      "found": {
       "type": "boolean"
      },
      "errors": {
       "type": "array",
       "items": {
        "type": "string"
       },
       "description": "Calls or fields the node did not return"
      },
      "reason": {
       "type": [
        "string",
        "null"
       ],
       "description": "Why nothing was found"
      },
      "source": {
       "type": [
        "string",
        "null"
       ],
       "description": "Public node host that answered"
      },
      "address": {
       "type": [
        "string",
        "null"
       ]
      },
      "chainI
… (truncated)
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "name": "vitalik.eth",
  "note": "Read directly from a public node at the block shown; nothing is cached, estimated or priced in USD. A field the node did not return is null and named in errors.",
  "as_of": "2026-10-19T12:00:00.000Z",
  "block": 23456789,
  "chain": "ethereum",
  "found": true,
  "errors": [],
  "reason": null,
  "source": "eth.drpc.org",
  "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
  "chainId": 1,
  "resolver": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63",
  "direction": "forward",
  "verified_forward": true
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/ens-name-address-resolution-via-evm-public-node-b918178b/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev](https://www.zero.xyz/host/x402-bazaar-rank.x402-bazaar-rank-worker.workers.dev/llms.txt)
