Resolvio API Skill
This skill enables AI agents to interact with Resolvio, an ENS (Ethereum Name Service) resolution API.
What is Resolvio?
Resolvio is a REST API dedicated to ENS resolution only. It provides:
- Forward resolution: ENS name → addresses, texts, contenthash
- Reverse resolution: Ethereum address → primary ENS name
- Multi-chain support: ETH, BTC, SOL, OP, Base, ARB addresses via coin types
- Profile data: Complete ENS profiles with all records
Production API
- Base URL:
https://resolvio.namespace.ninja - Documentation: https://docs.namespace.ninja/api-reference/resolvio/
- Swagger: https://resolvio.namespace.ninja/api/docs
Core Capabilities
1. Get ENS Profile
Fetch complete ENS profile including addresses, text records, and contenthash.
Endpoint: GET /ens/v1/profile/:name
Example:
curl https://resolvio.namespace.ninja/ens/v1/profile/vitalik.eth
Response:
{
"name": "vitalik.eth",
"addresses": [
{ "coin": 60, "name": "eth", "address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045" }
],
"texts": [
{ "key": "avatar", "value": "..." },
{ "key": "com.twitter", "value": "..." }
],
"contenthash": "ipfs://...",
"resolver": "0x..."
}
2. Get Specific Addresses
Fetch cryptocurrency addresses for specific coin types.
Endpoint: GET /ens/v1/addresses/:name?coins[]=60&coins[]=0
Common Coin Types:
60= Ethereum (ETH)0= Bitcoin (BTC)501= Solana (SOL)2147483658= Optimism (OP)2147492101= Base2147525809= Arbitrum (ARB)
Example:
curl "https://resolvio.namespace.ninja/ens/v1/addresses/vitalik.eth?coins[]=60&coins[]=501"
3. Get Text Records
Fetch specific text records (social links, avatar, etc.).
Endpoint: GET /ens/v1/texts/:name?keys[]=avatar&keys[]=com.twitter
Common Text Keys:
avatar- Profile picturedescription- Bio/descriptioncom.twitter- Twitter handlecom.github- GitHub usernamecom.discord- Discord usernameurl- Website URLemail- Email address
Example:
curl "https://resolvio.namespace.ninja/ens/v1/texts/vitalik.eth?keys[]=avatar&keys[]=com.twitter"
4. Reverse Resolution (Bulk)
Convert multiple Ethereum addresses to their primary ENS names.
Endpoint: POST /ens/v1/reverse/bulk
Example:
curl -X POST https://resolvio.namespace.ninja/ens/v1/reverse/bulk \
-H "Content-Type: application/json" \
-d '{
"addresses": [
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"0x225f137127d9067788314bc7fcc1f36746a3c3B5"
]
}'
Response:
{
"result": [
{
"address": "0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"name": "vitalik.eth",
"hasReverseRecord": true
}
]
}
5. Reverse Resolution (Single)
Resolve a single Ethereum address to its primary ENS name.
Endpoint: POST /ens/v1/reverse/single/:address
Example:
curl -X POST https://resolvio.namespace.ninja/ens/v1/reverse/single/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
Common Use Cases
Use Case 1: Display User Profile
When you need to show a complete ENS profile:
GET /ens/v1/profile/vitalik.eth
Use Case 2: Get Ethereum Address from Name
When you need to resolve a name to an ETH address:
GET /ens/v1/addresses/vitalik.eth?coins[]=60
Extract addresses[0].address from response.
Use Case 3: Show ENS Name for Address
When you have an address and want to display the ENS name:
POST /ens/v1/reverse/single/0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045
Use Case 4: Get Social Links
When you want to fetch social media handles:
GET /ens/v1/texts/vitalik.eth?keys[]=com.twitter&keys[]=com.github&keys[]=url
Use Case 5: Multi-Chain Address Resolution
When you need addresses for multiple blockchains:
GET /ens/v1/addresses/vitalik.eth?coins[]=60&coins[]=0&coins[]=501
Returns ETH, BTC, and SOL addresses.
Use Case 6: Dashboard UX - Display Human-Readable Names
When building a dashboard that shows multiple addresses and you want to display ENS names for better UX:
POST /ens/v1/reverse/bulk
{
"addresses": [
"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045",
"0x225f137127d9067788314bc7fcc1f36746a3c3B5",
...
]
}
Tip: Always use bulk resolution instead of individual calls when displaying multiple addresses - it's much more efficient and reduces API load.
Query Parameters
Cache Control
Add noCache=true to any GET endpoint to bypass cache:
GET /ens/v1/profile/vitalik.eth?noCache=true
Chain ID (for reverse resolution)
Specify chain for reverse resolution (defaults to mainnet):
{
"addresses": ["0x..."],
"chain_id": 1
}
API Limitations
Bulk Resolution Limits
- Maximum addresses per request: 20 (hard limit enforced)
- Error on excess: Returns 400 error if >20 addresses provided
- Best practice: For >20 addresses, split into batches of 20
Rate Limiting
- Current status: No rate limiting enforced
- Fair use policy: Please avoid excessive requests that may impact service availability
- Future: Rate limits may be added; will be documented when implemented
Caching
- Default cache TTL: 5 minutes
- Bypass cache: Use
noCache=truequery parameter - Cache type: In-memory (resets on service restart)
Chain Support
- Forward resolution: Ethereum mainnet only (other chains via coin types)
- Reverse resolution: Ethereum mainnet (chain_id: 1)
- Multi-chain addresses: Via coin type parameter (see coin types list)
Known Limitations
- ENS-only (other naming services not yet supported)
- No WebSocket/real-time updates
- No API key authentication (public access)
- No persistent storage (cache is ephemeral)
Error Handling
- 404: ENS name doesn't exist or has no resolver
- 400: Invalid request (malformed address, invalid coin type)
- Empty arrays: ENS name exists but no records set for requested types
Tips for Agents
- Always use production URL for live queries:
https://resolvio.namespace.ninja - Default coin type is 60 (ETH) - if user asks for "the address", use coin 60
- Cache is enabled by default - responses are cached for 5 minutes
- Bulk operations are more efficient - use
/reverse/bulkwhen resolving multiple addresses - Check
hasReverseRecordin reverse resolution - not all addresses have ENS names set
Full API Reference
For complete API documentation with all parameters and responses, visit: