# 402utils Basename/ENS Name Resolver

> 402utils Basename/ENS Name Resolver is a paid API for AI agents from 402utils.com, paid per call via x402, $0.002/call, status unknown (last checked 2026-09-13).

Resolves Basename or ENS names to Ethereum addresses, or reverse-resolves addresses to their primary on-chain name, with forward-verification.

## Facts

- Endpoint: GET https://402utils.com/v1/wallet-name
- Price: $0.002/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-13
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/402utils-basename-ens-name-resolver-81851868
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_Ga5OjfDYnrb_NW3qxNWvC

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 402utils-basename-ens-name-resolver-81851868
```

Example prompt: What Ethereum address does myname.base.eth resolve to? Also, what's the primary Basename or ENS name for 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045?

## When to prefer this

Use this endpoint when you need to resolve ENS or Basename (Base L2) identifiers to Ethereum addresses or vice versa. Prefer this over generic RPC calls when you want a simple HTTP-based lookup with forward-verification of reverse results, especially for Basenames on Base L2. Note it does not support offchain CCIP-read resolvers like cb.id.

## Known failure modes

- Name not registered or has no address record → resolved:false, reason:not_found or no_address_record
- Address has no primary name set → resolved:false, reason:no_primary_name
- Offchain (CCIP-read) names like cb.id not supported → resolved:false, reason:offchain_unsupported
- Reverse result fails forward verification → resolved:false, reason:unverified
- Non-ASCII or malformed name input → resolved:false, reason:invalid_input
- Neither name nor address query param provided → error response

## How this service works

Resolve a Basename or ENS name to an address, or an address to its primary name. Pass ?name=402utils.base.eth (name→address) or ?address=0x… (address→primary name). Basenames resolve on Base L2, other .eth names on Ethereum mainnet. Reverse results are forward-verified. ASCII names only; offchain (CCIP-read) resolvers like cb.id are not supported.

## Output

Returns a JSON object with a resolved boolean, the direction (forward or reverse), the chain used (base or ethereum), and either the resolved address (EIP-55 checksummed) or the primary name. On failure, includes a reason field explaining why resolution failed (e.g. not_found, no_address_record, offchain_unsupported, unverified, invalid_input).

## 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"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "name": {
       "type": "string",
       "description": "An ENS or Basename, e.g. 402utils.base.eth or vitalik.eth."
      },
      "address": {
       "type": "string",
       "description": "A 0x-prefixed 20-byte address."
      }
     },
     "description": "Exactly one query param: name (ENS/Basename) or address (0x…)."
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "resolved"
     ],
     "properties": {
      "name": {
       "type": "string"
      },
      "chain": {
       "enum": [
        "base",
        "ethereum"
       ],
       "type": "string"
      },
      "reason": {
       "type": "string",
       "description": "When resolved=false: not_found, no_address_record, no_primary_name, offchain_unsupported, unverified, invalid_input."
      },
      "address": {
       "type": "string",
       "description": "EIP-55 checksummed."
      },
      "resolved": {
       "type": "boolean"
      },
      "direction": {
       "enum": [
        "forward",
        "reverse"
       ],
       "type": "string"
      }
     }
    }
   }
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "json",
 "example": {
  "name": "vitalik.eth",
  "chain": "ethereum",
  "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
  "resolved": true,
  "direction": "forward"
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/402utils-basename-ens-name-resolver-81851868/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402utils.com](https://www.zero.xyz/host/402utils.com/llms.txt)
