ENS and Basenames resolver (forward and reverse) API

ENS and Basenames lookup: name to address, or address to primary name with forward verification. Returns the ETH address, resolver contract, text records (url, avatar, description, Twitter, GitHub, Telegram, and email when set on-chain) and decoded contenthash (IPFS, IPNS, Swarm, Arweave). Sources: ENS Universal Resolver on Ethereum and the Basenames registry on Base, read via PublicNode JSON-RPC; offchain (CCIP-read) names are reported, not followed.

$0.002 per call  USDC over x402 v2 on Base, Polygon, Arbitrum, Avalanche or Sei. No signup, no API key. Requests that fail or match nothing are not charged.

Endpoint

GET https://chain.kit-rx.com/v1/chain/ens

Parameters

NameTypeRequiredDescription
namestringnoASCII ENS name (vitalik.eth) or Basename (jesse.base.eth) for a forward lookup. Mutually exclusive with address. e.g. vitalik.eth
addressstringno0x EVM address for a reverse lookup: its primary name on Ethereum (ENS) and Base (Basenames), checked by forward resolution, plus that name's records. e.g. 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045

Example request

https://chain.kit-rx.com/v1/chain/ens?name=vitalik.eth

Without payment the server answers 402 Payment Required with the price (2000 atomic USDC) in the PAYMENT-REQUIRED header. Any x402 v2 client pays and retries automatically. A request with no parameters runs this example.

curl -i "https://chain.kit-rx.com/v1/chain/ens?name=vitalik.eth"

Pay from an agent

AgentCash: fetch the URL. OpenDexter MCP: x402_fetch. Kit Rx MCP server: https://chain.kit-rx.com/mcp. Code:

import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.BUYER_KEY) });
const pay = wrapFetchWithPayment(fetch, client);
const res = await pay("https://chain.kit-rx.com/v1/chain/ens?name=vitalik.eth");
console.log(await res.json());

Example response

{
  "query": {
    "name": "vitalik.eth"
  },
  "result": {
    "lookup": "forward",
    "name": "vitalik.eth",
    "network": "ethereum",
    "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
    "resolver": "0x394D8EB4a4fDF599384DeAb25F31d111d755c398",
    "is_offchain": false,
    "wildcard": false,
    "text": {
      "url": "https://vitalik.ca",
      "avatar": "https://euc.li/vitalik.eth",
      "description": "mi pinxe lo crino tcati",
      "com.twitter": "VitalikButerin",
      "com.github": "vbuterin",
      "org.telegram": null,
      "email": null
    },
    "contenthash": {
      "protocol": "ipfs",
      "uri": "ipfs://bafybeia5eyombgegdwmvfzwisveadaaok2vdjkv5rklfdmcljysjrjc4km"
    },
    "forward_verified": null
  },
  "sources": [
    {
      "name": "Ethereum JSON-RPC via PublicNode",
      "url": "https://ethereum-rpc.publicnode.com"
    }
  ],
  "notes": [
    "Text records are public on-chain values set by the name's owner; empty records are null."
  ],
  "generated_at": "2026-11-15T00:45:43.981Z"
}

Kit Rx EVM Gas, Token Scan & Tx Decode: Onchain tools for AI agents: multi-chain gas prices, token risk scan and DEX price, calldata and EIP-712 signature safety checks, transaction decoding, ABIs, wallet balances and ENS, paid per call over x402. Machine-readable: OpenAPI, llms.txt, /.well-known/x402, agent skills.