# OneSource ENS Name Resolution

> OneSource ENS Name Resolution is a paid API for AI agents from api.onesource.io, paid per call via x402, $0.005/call, status unknown (last checked 2026-09-08).

Resolves an ENS name (e.g. vitalik.eth) or Ethereum address to its canonical Ethereum address on mainnet or Sepolia testnet

## Facts

- Endpoint: GET https://api.onesource.io/api/chain/ens/%7Binput%7D
- Price: $0.005/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-08
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/onesource-ens-name-resolution-8625e5f6
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_E_dpueNctpimvfZ7L71CM

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 onesource-ens-name-resolution-8625e5f6
```

Example prompt: What Ethereum address does vitalik.eth resolve to on mainnet?

## When to prefer this

Use this endpoint when you need to resolve a human-readable .eth ENS name to its underlying Ethereum wallet address, or when you have an address and need to confirm its ENS mapping. Prefer this over generic Ethereum RPC calls when you want a clean, single-purpose ENS lookup without constructing raw eth_call payloads. Ideal for AI agents that need to translate user-provided ENS identities into addresses before making payments, querying balances, or interacting with contracts.

## Known failure modes

- ENS name does not exist or has no resolver — likely returns null address or error
- Invalid ENS name format — 400 or error response
- Network not supported or node unavailable — 5xx error
- ENS name exists but has no address record set — null or empty address returned
- Payment failure via x402 — 402 response requiring USDC payment
- Rate limit exceeded — 429 response

## How this service works

Two data families for AI agents: live Ethereum mainnet, Sepolia testnet, and Robinhood Chain RPC reads, plus Deepstate on-chain market data (order books, trades, candles, and analytics). Pay per call or use batch/session mode: USDC on Base via x402, or pathUSD/USDC.e on Tempo via MPP. No API key required to start; a flat-rate monthly subscription is also available.

## Output

A JSON object containing the resolved Ethereum address (0x-prefixed hex), the original input (ENS name or address), and the resolution mode used. Example: {mode: 'forward', input: 'vitalik.eth', address: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'}

## Example request

```json
{
 "input": "vitalik.eth"
}
```

## 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"
    },
    "pathParams": {
     "type": "object",
     "required": [
      "input"
     ],
     "properties": {
      "input": {
       "oneOf": [
        {
         "type": "string",
         "pattern": "^0x[a-fA-F0-9]{40}$"
        },
        {
         "type": "string",
         "pattern": "^[^./\\s]+(?:\\.[^./\\s]+)+$"
        }
       ]
      }
     }
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "network": {
       "enum": [
        "ethereum",
        "sepolia",
        "robinhood"
       ],
       "type": "string",
       "default": "ethereum"
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "data",
      "meta"
     ],
     "properties": {
      "data": {
       "type": "object",
       "properties": {
        "name": {
         "type": "string"
        },
        "address": {
         "type": "string"
        },
        "resolver": {
         "type": "string"
        },
        "is_forward": {
         "type": "boolean"
        },
        "is_reverse": {
         "type": "boolean"
        }
       },
       "description": "Endpoint-specific response payload"
      },
      "meta": {
       "type": "object",
       "required": [
        "endpoint",
        "request_id"
       ],
       "properties": {
        "endpoint": {
         "type": "string"
        },
        "cost_usdc": {
         "type": "string"
        },
        "request_id": {
         "type": "string"
        },
        "payment_chain": {
         "type": "string"
        },
        "payment_token": {
         "type": "string"
        }
       }
      },
      "error": {
       "type": [
        "object",
        "null"
       ],
       "properties": {
        "code": {
         "type": "integer"
        },
        "message": {
         "type": "string"
        }
       }
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "data": {
   "name": "vitalik.eth",
   "address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
   "resolver": "0x231b0ee14048e9dccd1d247744d114a4eb5e8e63",
   "is_forward": true,
   "is_reverse": false
  },
  "meta": {
   "endpoint": "/api/chain/ens/{input}",
   "cost_usdc": "0.001",
   "request_id": "00000000abcdef01",
   "payment_chain": "base",
   "payment_token": "USDC"
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/onesource-ens-name-resolution-8625e5f6/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from api.onesource.io](https://www.zero.xyz/host/api.onesource.io/llms.txt)
