Resolving an ENS name traditionally means importing a full Web3 library, spinning up an RPC connection, and writing several lines of async code. For most applications — especially backend services, AI agents, and microservices — this overhead is unnecessary. The Resolvio REST API lets you resolve any ENS name with a single HTTP call, from any language or runtime.
The Traditional Approach (and Its Problems)
Using ethers.js v6, resolving a name looks like this:
import { ethers } from 'ethers'
const provider = new ethers.JsonRpcProvider(process.env.RPC_URL)
const address = await provider.resolveName('vitalik.eth')
// "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045"
That works — but it requires: a 300KB+ library, an Ethereum RPC endpoint (and a key to go with it), async/await handling, and it only gives you the address. Getting the avatar or other text records requires additional calls.
Forward Resolution with Resolvio
The Resolvio API exposes a simple REST endpoint. No libraries, no RPC key, no boilerplate:
# Simple address resolution
curl https://api.resolvio.xyz/ens/v2/addresses/vitalik.eth?chain=eth
# Full profile (address + avatar + all text records)
curl https://api.resolvio.xyz/ens/v2/profile/vitalik.eth
# Specific text record
curl https://api.resolvio.xyz/ens/v2/texts/vitalik.eth?keys=com.twitter
In JavaScript/TypeScript, this is just a fetch call:
const res = await fetch('https://api.resolvio.xyz/ens/v2/profile/vitalik.eth')
const profile = await res.json()
console.log(profile.addresses)
console.log(profile.texts)
console.log(profile.contenthash)
Reverse Resolution
Reverse resolution maps a wallet address back to its primary ENS name — essential for displaying human-readable names in transaction histories, leaderboards, and profiles.
curl https://api.resolvio.xyz/ens/v2/reverse/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"hasReverseRecord": true,
"name": "vitalik.eth"
}
Multi-Chain Address Resolution
ENS names can store addresses for hundreds of chains via ENSIP-9. Pass a chains parameter to resolve to any supported network:
# Bitcoin,Optimism and Base addresses for an ENS name
curl "https://api.resolvio.xyz/ens/v2/addresses/vitalik.eth?chains=btc,opt,base"
Rate Limits and Production Use
The public API is free and requires no API key for development and moderate production traffic. Results are cached server-side with TTLs derived from each resolver's onchain ttl() value, which means most responses return in under 50ms.
You can also bypass the cache for a specific request using the noCache=true query parameter — useful when you need the freshest onchain data after a name update.