ai.namewhisper/ens-tools · v1.2.0 · agents-and-memory
Name Whisper — ENS Intelligence Layer is healthy: it completed an MCP handshake in 1827 ms and exposes 44 tools. It scores 60/100.
44 MCP tools to search, value, register, trade, and manage ENS names. AI-powered intelligence layer.
Add to my toolfindr inventory →
Healthy · last checked 2026-10-14T09:01:01.796Z UTC
| Checked (UTC) | Status | Latency |
|---|---|---|
| 2026-10-14T09:01:01.796Z | ok | 1827 ms |
| health | 18.7 / 25 |
| authEase | 15 / 15 |
| toolQuality | 13.5 / 15 |
| maintenance | 5 / 15 |
| adoption | 0 / 10 |
| usage | 0 / 10 |
| security | 8 / 10 |
search_ens_names Search ENS names using natural language. Supports all query types:
- Filtered search: "4-letter words under 0.1 ETH"
- Concept search: "ocean themed names" (semantic similarity across 3.5M indexed ENS names)
- Creative search: "names for a coffee brand" (AI-generated suggestions)
- Collection searchenumerate_entities Enumerate ENS-friendly labels for a finite real-world entity category and report which are available vs registered.
USE THIS for ANY finite set of real-world people, companies, teams, or works — including queries that name a ROLE or PROFESSION rather than a league, e.g. "which tech founders have anget_name_details Get full details for a specific ENS name including owner, expiry, creation date, tags, active listings (with prices in ETH and USD), active offers, ENSIP-25 agent identity bindings, and ENSIP-26 agent context records. creationDate is always populated — for Vickrey-era names (isVickreyEra=true) it recheck_availability Check availability of one or more ENS names the user named, or labels returned by enumerate_entities. Do NOT feed it names you invented/typed yourself (especially real-world people, teams, brands, or films — models misspell those); get verified labels from enumerate_entities first. Returns status (Aget_similar_names Find ENS names semantically similar to a given name using vector embeddings across 3.5M indexed ENS names. Returns similar names with similarity scores, status (REGISTERED / GRACE_PERIOD / PREMIUM_AUCTION / AVAILABLE), and live marketplace data. Names in GRACE_PERIOD are NOT registerable by anyone bget_valuation Get a confidence-rated valuation for an ENS name based on comparable sales, entity recognition (Wikipedia/Wikidata), search interest, word frequency, and fame-scaled pricing. Returns estimated value range, background context on the name (person/place/brand/concept), comparable sales data, and a narrget_market_activity Get recent ENS marketplace activity. Covers exactly three event types — SALE, PREMIUM_REGISTRATION and SWAP — and nothing else: it does NOT report listings, standing offers, mints, transfers, renewals or burns, so never conclude from an empty result that none of those occurred. Returns event detailsget_expiring_names List ENS names by lifecycle window across the WHOLE market — THE tool for "which names are in premium / on Dutch auction", "names in grace period", "what's expiring soon / about to drop". NOT for the user's own names: it has no wallet filter, so "my names close to premium / in grace / expiring" mustwash_check Assess whether an ENS name's sale(s) are WASH TRADING / fake / self-dealt / manipulated volume. THE tool for any "is this wash trading?", "is the sale history of X suspicious/fake/real?", "are these trades legit?", "is someone wash-trading this name?" question — route straight here, do NOT use get_nget_wallet_portfolio Get all ENS names owned by a wallet address. Returns each name with label, tags, expiry, lifecycle status, registration date, and active listing/offer prices. Useful for portfolio analysis and wallet profiling.
THE tool for any question about the connected wallet's OWN names by lifecycle window ("myfind_alpha Scan the ENS marketplace for alpha — names listed below their valuation. Returns ranked opportunities with a discount %, fair-value range, confidence rating, and comparable data. Candidates are selected by DESIRABILITY (real curated collections, short, accessibly priced above a floor that excludes 0get_primary_name Check what primary ENS name is set for a wallet address (reverse resolution).
Returns the ENS name that this address resolves to, or null if no primary name is set.
This verifies both directions:
- Reverse: address → name (the reverse record)
- Forward: name → address (confirms the name actually pprovision_agent_identity Provision a complete ENS identity for an AI agent in one call. Describe your agent's purpose and budget — get back recommended available names, a multi-step registration recipe (commit → register → set agent records), and ready-to-sign transaction data.
The registration recipe includes agent identimake_offer Place an offer (bid) on a registered ENS name on NameWhisper via Seaport 1.6.
Returns an unsigned Seaport OrderComponents payload (plus EIP-712 domain/types) that the caller's wallet signs. The buyer offers WETH and receives the name on acceptance. After signing, POST { orderComponents, signature, purchase_name Purchase an ENS name — either buy a listed name from a marketplace or register an available name directly on-chain.
For AVAILABLE names: Returns a complete registration recipe with contract address, ABI, step-by-step instructions, and a pre-generated secret. Your wallet signs and submits the transabulk_register Register multiple ENS names in bulk — total 2 transactions (multiCommit + multiRegister) via NWBulkRegistrar.
Much cheaper and faster than registering names one at a time. Supports up to 20 names per batch.
Flow: multiCommit (1 tx, all N commitments) → wait 60 seconds → multiRegister (1 tx with tocreate_listing List an ENS name for sale on NameWhisper's marketplace via Seaport 1.6.
Returns an unsigned Seaport OrderComponents payload (plus EIP-712 domain/types) that the caller's wallet signs. After signing, POST the { orderComponents, signature, label, orderType: 'listing' } payload to https://namewhisper.cancel_listing Cancel an active ENS name listing by submitting Seaport's cancel() on-chain.
Returns the unsigned Seaport cancel() transaction calldata. Your wallet signs and submits; once mined, Seaport marks the order invalid and no marketplace (NW, Grails, OpenSea) can fulfill it anymore.
Only the original selcancel_offer Cancel an active offer you made on an ENS name. Returns unsigned Seaport cancel() calldata.
Only the bidder (the order's offerer) can cancel. If the offer was cross-posted to OpenSea, you signed a second 'opensea' variant — pass BOTH order hashes as alsoCancel so one tx kills both. alsoCancel takesaccept_offer Accept a standing offer on an ENS name you own. Returns unsigned Seaport fulfillOrder() calldata.
When you submit this transaction, Seaport atomically:
- Pulls the offered WETH from the buyer's wallet
- Transfers the ENS name from your wallet to the buyer
- Pays the fees the offer was signed with obatch_purchase Buy up to 20 SPECIFIC listed ENS names in a SINGLE Seaport transaction, across NameWhisper, OpenSea, AND Grails listings.
Use this when the user names the exact names to buy. To buy the cheapest N names in a category/collection (a floor sweep), use the 'sweep' tool instead.
It's one signature and sweep Floor-sweep: buy the CHEAPEST N listed ENS names in a category/collection (or matching a filter) in ONE Seaport transaction.
Use this when the user wants "the cheapest N", "sweep the floor", or "buy up to X ETH of" a cohort — rather than naming specific names (that's batch_purchase).
Pick the cohobatch_create_listings Bulk-list up to 500 ENS names for sale on NameWhisper in one signing flow.
Returns an array of unsigned Seaport OrderComponents payloads. The caller's wallet signs them all in one EIP-712 bulk signature (SIP-6), then POSTs the signed orders back to https://namewhisper.ai/api/orderbook/submit-bulk (renew_ens_name Renew an ENS name or batch of names. Returns the transaction data needed to extend registration.
Unlike registration, renewal is simple — just one transaction with payment. No commit/reveal needed.
Accepts any duration from 1 day up — days, weeks, months, years. ENS protocol has no minimum renewaltransfer_ens_name Transfer ownership of an ENS name to another wallet. Call this tool IMMEDIATELY — as your first and only action — whenever the user asks to transfer/send/move/give a name to someone: "transfer coffee.eth to vitalik.eth", "send myname.eth to 0xabc...". That message is complete: name + connected walleset_ens_records Set ENS resolver records for a name you own. Returns encoded transaction calldata ready to sign and broadcast.
Supports: address records — ETH as a plain 0x address, non-ETH coins (BTC, SOL, LTC, DOGE, …) as the raw wallet-format address (bc1…, base58, …) which is ENSIP-9-encoded automatically; texbulk_set_records Set ENS resolver records for multiple names in a single transaction — bulk record editing.
All record updates across all names are batched into one resolver.multicall() call. Much cheaper than setting records one name at a time.
Supports the same record types as set_ens_records: address records (Ebulk_transfer_ens_names Transfer multiple ENS names in one batch — bulk send.
Wrapped names going to the same recipient move in one transaction; each unwrapped name and unwrapped subname takes its own. Supports up to 20 names per batch.
Automatically detects whether each name is wrapped (NameWrapper/ERC-1155) or unwrappeset_primary_name Set the primary ENS name (reverse resolution) for a wallet address.
This controls what name is displayed when someone looks up your Ethereum address. For example, instead of seeing "0x1234...abcd", they'd see "myname.eth".
Requirements:
- You must own or control the ENS name
- The name's ETH addreset_resolver Change the resolver contract for an ENS name.
The resolver is where a name's records live (ETH address, text records, content hash, etc.). Changing the resolver points the name at a different contract.
Common use cases:
- Migrating to the latest ENS Public Resolver
- Pointing to a custom resolver manage_ens_name One-shot management report for an ENS name. This is the ONLY tool you need to answer "management report", "full overview", "health check", "status check", "what should I do about X", or "tell me what to do with X" queries. Prefer this over calling get_name_details + get_valuation separately — this twrap_name Wrap an unwrapped .eth name into the ENS NameWrapper contract.
Wrapping converts the name from an ERC-721 token (BaseRegistrar) to an ERC-1155 token (NameWrapper). This enables:
- Fuse permissions (restrict what can be done with the name)
- Protected subnames (subnames with guaranteed permissions)
unwrap_name Unwrap a .eth name from the ENS NameWrapper back to BaseRegistrar.
This converts the name from an ERC-1155 token back to an ERC-721 token. All fuses are cleared upon unwrapping.
Will fail if the CANNOT_UNWRAP fuse has been burned — that restriction is permanent.
Use cases:
- Reverting a wrapped nmanage_fuses Manage fuses on a wrapped ENS name. Fuses are permission bits that can be permanently burned to restrict what can be done with a name.
Three modes:
1. **read** — Check which fuses are currently burned on a name
2. **burn_owner_fuses** — Burn fuses on a name you own (CANNOT_UNWRAP must be burned firmint_subnames Bulk-create subnames under a parent ENS name. Designed for agent fleet deployment — create identities like agent001.company.eth, agent002.company.eth, etc. Each subname can have its own owner and records (addresses, text records).
Each subname mints in its own NameWrapper.setSubnodeRecord transactiextend_subname_expiry Extend the expiry of an ENS subname in the NameWrapper.
Subnames have their own expiry that cannot exceed the parent name's expiry. This tool extends a subname's expiry.
Who can call this:
- The parent name owner (always)
- The subname owner (only if CAN_EXTEND_EXPIRY fuse is burned on the subnameapprove_operator Approve or revoke an operator for ENS contract interactions.
An approved operator can transfer ANY token owned by the approver on the specified contract. This is setApprovalForAll — it covers all tokens, not just one.
Contracts:
- **base_registrar** — ERC-721 tokens (unwrapped .eth names)
- **namereclaim_name Reclaim ENS Registry ownership of a .eth name.
This syncs the ENS Registry owner to match the BaseRegistrar token owner. Used when:
- A name was transferred via direct safeTransferFrom (bypassed ENS routing)
- ENS Registry ownership is out of sync with token ownership
- Recovery after a contract miregister_agent Register an ENS name as an ERC-8004 agent identity on Ethereum mainnet. Returns a ready-to-sign transaction.
Default route binds the agent to the name itself (ERC-8217 via Adapter8004): whoever holds the name controls the agent, OpenSea shows the agent identity on the name's page, and the agent traget_agent_reputation Check if an ENS name or wallet is a registered AI agent. Returns ENSIP-25 agent-registration verification (text record bindings between ENS names and on-chain agent registries), AI metadata from text records, ERC-8004 identity + reputation data, and ERC-8217 binding status (whether the agent identitsearch_agent_directory Search the AI agent directory — find registered agents by name, capability, protocol support, or reputation. Powered by the live ERC-8004 registry via 8004scan (110,000+ agents indexed across 50+ chains).
Returns agent identity, owner wallet/ENS, reputation scores, supported protocols (MCP/A2A/OASFget_caller_identity Returns the authenticated identity of the calling agent. If you connected with ERC-8128 signed requests, this resolves your wallet address to your ENS name, agent metadata, and portfolio summary. Call this first to confirm your identity is recognized.
Requires ERC-8128 authentication (signed HTTP rsearch_knowledge Search the ENS knowledge base — governance proposals, protocol documentation, developer insights, blog posts, forum discussions, and Farcaster casts from key ENS figures (Vitalik, Nick Johnson, etc.). Powered by semantic search over curated ENS sources.
USE THIS (don't answer from memory) for any "get_usage_stats Get usage statistics for this MCP server session. Returns tool call counts, success rates, and average latency.