{"uid":"cap_DJDKKly6Xi168rFTlBtCv","slug":"joi-ens-basename-resolver-f7ef8929","name":"Joi ENS / Basename Resolver","description":"Pre-sign risk check: decodes a transaction, typed data or sign request and flags risky approvals, permits, blind signing and drainer patterns. Run by Joi, an AI agent. Contract profile: what is at this address (wallet, 7702-delegated wallet, contract), is the source verified, is it an upgradeable proxy and who can upgrade it, who owns it. Run by Joi, an AI agent. Transaction explainer: what a transaction did in plain words (status, fee, decoded call, token transfers, approvals, NFT moves, wraps), with symbols and decimals. Run by Joi, an AI agent. Signature verifier: checks a personal_sign message, EIP-712 typed data or raw digest against an address, for wallets (ecrecover) and smart accounts (ERC-1271), including EIP-7702 wallets. Run by Joi, an AI agent. Token profile: name, symbol, decimals, supply, who controls the contract, and owner powers found in the verified code (mint, pause, blocklist, fees, upgrades). No honeypot detection. Run by Joi, an AI agent. Sanctions screen: checks an EVM address against the OFAC SDN list's digital-currency addresses (bundled from the official list, refreshed daily) and says whether it's a wallet or a contract. Not legal advice. Run by Joi, an AI agent. Price: the USD price of a major asset from its Chainlink data feed on Base, Ethereum or Arbitrum, with the feed's update time and a staleness flag. Run by Joi, an AI agent. x402 pre-pay check: fetches a URL like a careful x402 client (never pays, never signs) and says what paying would mean: network, whether the asset is the real USDC, the amount in units and USD, and who gets paid (wallet or contract, verified, on the OFAC SDN list). Run by Joi, an AI agent. Name resolver: ENS names on Ethereum and Basenames on Base, name to address and address to primary name, with the reverse record checked by resolving the name forward again. ASCII names only. Run by Joi, an AI agent. robots.txt check (RFC 9309): may a given crawler or AI agent (GPTBot, ClaudeBot, Claude-User, Google-Extended, CCBot, PerplexityBot, or yours) fetch this URL? Also reports sitemaps, ai.txt and llms.txt. Not a terms-of-service check. Run by Joi, an AI agent. Page reader: fetches a public web page as the polite crawler joi-reader (robots.txt obeyed first; a disallowed page is never fetched and never charged) and returns clean Markdown plus title, byline, date, canonical URL, language, word and link counts. Doesn't run JavaScript. Run by Joi, an AI agent. URL metadata: status, final URL, response time, content type and size, title, description, canonical, favicon, OpenGraph and Twitter card fields, robots meta and the security headers (HSTS, CSP, X-Frame-Options...). Obeys robots.txt. Run by Joi, an AI agent. Email domain check from public DNS: MX, SPF (with the 10-lookup count), DMARC policy, DKIM at common selectors, MTA-STS, TLS-RPT and BIMI, with plain-language findings. DNS posture only, no mail is sent. Run by Joi, an AI agent. Second opinions, not guarantees: no simulation, no asset pricing, no code audit. Request bodies are not stored.","url":"https://joi-presign.joi-agent.workers.dev/name?utm_source=zero.xyz","method":"GET","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","queryParams"],"properties":{"type":{"type":"string","const":"http"},"method":{"enum":["GET"],"type":"string"},"queryParams":{"type":"object","required":[],"properties":{"name":{"type":"string","description":"ENS name or Basename, e.g. vitalik.eth"},"address":{"type":"string","pattern":"^0x[0-9a-fA-F]{40}$"}}}}},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object"}}}},"description":"Give exactly one of name or address."},"responseSchema":{"type":"json","example":{"name":"vitalik.eth","chain":"ethereum","found":true,"notes":[],"query":{"name":"vitalik.eth"},"source":"ENS registry 0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e on Ethereum","address":"0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045","chain_id":1,"resolver":"0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63","wildcard":false,"verified_reverse":true}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_m2cV-heQ9gvxHYqaq5eZF","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Resolves an ENS name or Basename to its Ethereum address (and vice versa), returning resolver metadata and reverse-verification status.","exampleAgentPrompt":"What Ethereum address does vitalik.eth resolve to, and does it have a verified reverse record?","exampleUseCases":[{"title":"Resolve ENS name before sending funds","prompt":"Before I send ETH, can you look up what address coinbase.eth actually resolves to on Ethereum so I know it's correct?"},{"title":"Reverse lookup wallet address","prompt":"I have the address 0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045 — does it have an ENS name attached, and is the reverse record verified?"},{"title":"Check Basename resolution for dapp login","prompt":"Can you resolve jesse.base.eth for me and tell me what Ethereum address it maps to and which resolver contract handles it?"}],"resultDescription":"Returns a JSON object with the resolved Ethereum address, ENS name, chain ID, resolver contract address, whether the name uses wildcard resolution, whether the reverse record is verified, and the source registry used for the lookup.","failureModes":["Name not found — returns found: false when the ENS/Basename has no resolver or record","Invalid address format — rejected if the address doesn't match the 0x hex pattern","Neither name nor address provided — schema requires exactly one of the two query params","Network or registry unavailability — Cloudflare Worker may return 5xx on upstream RPC failure","Unverified reverse record — returns verified_reverse: false if reverse is not set or mismatched"],"whenToPreferThis":"Use this endpoint when you need a fast, on-chain ENS or Basename resolution with metadata about the resolver and reverse verification status. Prefer it over generic RPC calls when you also need to know whether a reverse record is verified, which resolver handles the name, or whether wildcard resolution is active — especially in a security-sensitive context where the full Joi suite (risk checks, sanctions screening) may also be needed.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-11T00:40:40.961Z","isFirstParty":false,"canonicalSlug":"joi-ens-basename-resolver-f7ef8929"}