Skip to main content
Glama
buildwithgrove

Grove's MCP Server for Pocket Network

resolve_domain

Convert blockchain domain names like ENS .eth or Unstoppable Domains into wallet addresses using Grove's multi-chain data endpoints.

Instructions

Resolve a blockchain domain name (ENS .eth or Unstoppable Domains) to an address using Grove endpoints

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
domainYesThe domain name to resolve (e.g., "vitalik.eth", "alice.crypto")

Implementation Reference

  • The handler case in handleDomainTool function that executes the resolve_domain tool by extracting the domain argument and delegating to DomainResolverService.resolveDomain, then formatting the result.
    case 'resolve_domain': { const domain = args?.domain as string; const result = await domainResolver.resolveDomain(domain); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], isError: !result.success, }; }
  • Input schema definition for the resolve_domain tool, including name, description, and JSON schema for parameters.
    { name: 'resolve_domain', description: 'Resolve a blockchain domain name (ENS .eth or Unstoppable Domains) to an address using Pocket Network endpoints', inputSchema: { type: 'object', properties: { domain: { type: 'string', description: 'The domain name to resolve (e.g., "vitalik.eth", "alice.crypto")', }, }, required: ['domain'], }, },
  • src/index.ts:87-106 (registration)
    Tool registration where registerDomainHandlers is called to include resolve_domain in the server's tools list, handled by ListToolsRequestHandler.
    // Register all tools from handlers const tools: Tool[] = [ ...registerBlockchainHandlers(server, blockchainService), ...registerDomainHandlers(server, domainResolver), ...registerTransactionHandlers(server, advancedBlockchain), ...registerTokenHandlers(server, advancedBlockchain), ...registerMultichainHandlers(server, advancedBlockchain), ...registerContractHandlers(server, advancedBlockchain), ...registerUtilityHandlers(server, advancedBlockchain), ...registerEndpointHandlers(server, endpointManager), ...registerSolanaHandlers(server, solanaService), ...registerCosmosHandlers(server, cosmosService), ...registerSuiHandlers(server, suiService), ...registerDocsHandlers(server, docsManager), ]; // Handle tool listing server.setRequestHandler(ListToolsRequestSchema, async () => { return { tools }; });
  • The full handleDomainTool dispatcher function that routes resolve_domain calls to the specific case handler.
    export async function handleDomainTool( name: string, args: any, domainResolver: DomainResolverService ) { switch (name) { case 'resolve_domain': { const domain = args?.domain as string; const result = await domainResolver.resolveDomain(domain); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], isError: !result.success, }; } case 'reverse_resolve_domain': { const address = args?.address as string; const result = await domainResolver.reverseResolve(address); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], isError: !result.success, }; } case 'get_domain_records': { const domain = args?.domain as string; const keys = args?.keys as string[]; const result = await domainResolver.getDomainRecords(domain, keys); return { content: [ { type: 'text', text: JSON.stringify(result, null, 2), }, ], isError: !result.success, }; } default: return null; } }
  • Core helper method in DomainResolverService that implements the domain resolution logic, dispatching to ENS or Unstoppable Domains based on TLD.
    async resolveDomain(domain: string): Promise<EndpointResponse> { const domainLower = domain.toLowerCase().trim(); // Determine domain type if (domainLower.endsWith('.eth')) { return this.resolveENS(domainLower); } else if (this.isUnstoppableDomain(domainLower)) { return this.resolveUnstoppableDomain(domainLower); } else { return { success: false, error: `Unsupported domain type: ${domain}. Supported: .eth (ENS), .crypto, .nft, .blockchain, .bitcoin, .coin, .wallet, .888, .dao, .x, .zil (Unstoppable Domains)`, }; } }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/buildwithgrove/mcp-pocket'

If you have feedback or need assistance with the MCP directory API, please join our Discord server