POST /api/ens-bulk-resolveReverse-resolve a batch of Ethereum addresses to ENS primary names + avatar URLs (up to 50 per call). Returns one row per address with name (or null), displayName (with checksum if no name), and avatar URI. Use to label transaction lists, wallet leaderboards, or NFT holder snapshots with human-readable names instead of 0xabc… stubs.
| Field | Type | Description |
|---|---|---|
addresses * | array | 1-50 Ethereum addresses (0x-prefixed 40-hex). |
{
"count": 2,
"namedCount": 1,
"namedPct": 50,
"results": [
{
"address": "0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"name": "vitalik.eth",
"displayName": "vitalik.eth",
"avatar": "https://..."
},
{
"address": "0x000000000000000000000000000000000000dead",
"name": null,
"displayName": "0x0000…dead",
"avatar": null
}
],
"source": "ensideas"
}
curl -i -X POST https://agent402.tools/api/ens-bulk-resolve \
-H "Content-Type: application/json" \
-d '{"addresses":["0xd8da6bf26964af9d7eed9e03e53415d37aa96045","0x000000000000000000000000000000000000dead"]}'
The response is HTTP 402 Payment Required with exact payment requirements. Any x402 v2 client pays automatically and retries:
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);
const res = await payFetch("https://agent402.tools/api/ens-bulk-resolve", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
"addresses": [
"0xd8da6bf26964af9d7eed9e03e53415d37aa96045",
"0x000000000000000000000000000000000000dead"
]
}),
});
Wallet-only. This tool reaches the network/browser/storage, so it is paid in USDC via x402 (no proof-of-work tier).
POST /api/wallet-balanceLook up the native coin balance (ETH/MATIC) plus every ERC-20 holding for a wallet address on Ethereum, Base, Polygon, A…
POST /api/token-metadataResolve an ERC-20 contract address to its on-chain metadata: symbol, decimals, name, and logo URL where available. Use t…
POST /api/token-priceReturn the current USD spot price for an ERC-20 token, identified by its contract address and network. Sourced from Alch…