Skip to main content
Glama

Name Whisper — ENS Intelligence Layer

mint_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 transaction (the mainnet NameWrapper has no multicall), so N subnames need N signatures. Records bundle into ONE Resolver.multicall transaction, but only for subnames minted to the calling wallet: the resolver lets only a subname's owner write its records, so subnames minted to other wallets are listed in recordsSkipped and their owners set records themselves. If the parent is unwrapped, the recipe prepends a one-time wrap setup (approve + wrapETH2LD) that keeps the parent's current resolver.

Returns a flat steps[] array — each step is one wallet signature, in order. Subnames are free to create; only gas costs apply.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
subnamesYesArray of subnames to create (max 50 per batch)
parentNameYesParent ENS name (e.g. "company.eth")
walletAddressYesWallet address that owns the parent name
allowOverwriteNoDefault false. If false, throws when any subname already exists. Set true to overwrite existing subnames (destructive — replaces current owner).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / subnames / description
      Previous value: -"Array of subnames to create (max 150 per batch — capped by Ethereum block gas limit, not by this tool)"New value: +"Array of subnames to create (max 50 per batch)"
  2. Changed1 schema field changed
    • changedInput schema / properties / subnames / description
      Previous value: -"Array of subnames to create (max 50 per batch)"New value: +"Array of subnames to create (max 150 per batch — capped by Ethereum block gas limit, not by this tool)"
  3. Changed2 schema fields changed
    • addedInput schema / properties / allowOverwrite
      Added value: +{
      +  "description": "Default false. If false, throws when any subname already exists. Set true to overwrite existing subnames (destructive — replaces current owner).",
      +  "type": "boolean"
      +}
    • changedInput schema / properties / subnames / description
      Previous value: -"Array of subnames to create"New value: +"Array of subnames to create (max 50 per batch)"
  4. First observed

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Far exceeds the annotation baseline (readOnlyHint=false, destructiveHint=false): it discloses that each subname needs its own signature, that records bundle into one multicall but only for caller-owned subnames, that non-owned subnames appear in recordsSkipped, that an unwrapped parent triggers a prepended wrap setup, and that creation is free except gas. This is exactly the operational detail an agent needs before invoking.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, and the dense paragraphs on transaction/signature mechanics and the return shape all carry real information. It runs long, but every sentence (multicall limits, recordsSkipped, wrap prepend) earns its place; only minor tightening is possible.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, the description explains the return value (a flat ordered steps[] array where each step is a wallet signature). Combined with the transaction-model details and full schema coverage, an agent has everything needed to call and interpret this complex mutation tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the parameter definitions are already complete. The description still adds meaning by explaining the runtime interaction between the owner and records fields (records are only written for subnames minted to the calling wallet), which the schema alone does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence states a specific verb (bulk-create) and resource (subnames under a parent ENS name), and the 'agent fleet deployment' framing plus the agent001.company.eth example makes the scope immediately concrete. It is clearly distinguishable from single-name siblings like bulk_register or set_ens_records.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description establishes a clear use context ('Designed for agent fleet deployment') and implies bulk creation of many subnames at once. However, it never names an alternative (e.g. bulk_register, provision_agent_identity, manage_ens_name) or states when NOT to use it, so the routing guidance is contextual rather than explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.