Skip to main content
Glama

rent_domain

Rent a subdomain, paying per-transaction with USDC on Base (x402). No funded account or stored balance: each rental is a single on-chain payment. Requires agent authentication. Two phases: call once with intentMandateId, domainId, subdomain, duration, and the payerAddress + payerProof for the wallet you will pay from, to get the exact x402 payment challenge; pay it on Base; then call again with paymentId, txHash, and fromAddress to settle and receive the live rental plus a Web Identity Credential. Request an x402 payment challenge to rent a subdomain. Durations PT1H, PT4H, P1D, P7D, P30D. Returns the exact USDC amount and recipient on Base.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
txHashNo(phase 2) The on-chain transaction hash of your USDC payment on Base.
domainIdYesThe unique ID of the domain to rent on
durationYesISO 8601 duration: PT1H (1 hour), PT4H (4 hours), P1D (1 day), P7D (1 week), P30D (30 days)
paymentIdNo(phase 2) The paymentId returned by the phase-1 challenge.
subdomainYesThe subdomain label to rent (e.g., 'myproject' for myproject.example.com)
payerProofNo(phase 1) EIP-191 personal_sign signature proving control of payerAddress. Always required with payerAddress.
fromAddressNo(phase 2) The wallet you paid from (must match the challenge's bound payer).
payerAddressNo(phase 1) The 0x wallet you will pay from. Required on every challenge; a wallet registered on your Sigil does not substitute for it.
intentMandateIdYesThe ID of the active Intent Mandate authorizing this purchase
payerProofIssuedAtNo(phase 1, optional) ISO 8601 timestamp of the payerProof, within 5 minutes of the request.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nextNo
reasonNo
rentalNo
statusNo
paymentNo
rentalIdNo
settleUrlNo
credentialNo
provisioningNo
tierProgressionNoCurrent enforced trust tier and when it is next evaluated. Present only once an identity exists.
sigilEligibilityNoIdentity standing: lifecycle status, canary screen result, and any hard gates.
identityConfidenceNoHow firmly this identity is bound: unbound, bound to a key, or backed by a verified sponsor.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • changedInput schema / properties / payerAddress / description
      Previous value: -"(phase 1, optional) The 0x wallet you will pay from. Required only when your Sigil has no bound x402 wallet."New value: +"(phase 1) The 0x wallet you will pay from. Required on every challenge; a wallet registered on your Sigil does not substitute for it."
    • changedInput schema / properties / payerProof / description
      Previous value: -"(phase 1, optional) EIP-191 personal_sign signature proving control of payerAddress. Required with payerAddress when no wallet is sigil-bound."New value: +"(phase 1) EIP-191 personal_sign signature proving control of payerAddress. Always required with payerAddress."
  2. Changed1 schema field changed
    • addedOutput schema / properties / tierProgression / properties / reason
      Added value: +{
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • changedOutput schema / properties / identityConfidence / description
      Previous value: -"Reserved for a future scoring release. Not returned today."New value: +"How firmly this identity is bound: unbound, bound to a key, or backed by a verified sponsor."
    • changedOutput schema / properties / sigilEligibility / description
      Previous value: -"Reserved for a future scoring release. Not returned today."New value: +"Identity standing: lifecycle status, canary screen result, and any hard gates."
    • changedOutput schema / properties / tierProgression / description
      Previous value: -"Reserved for a future scoring release. Not returned today."New value: +"Current enforced trust tier and when it is next evaluated. Present only once an identity exists."
  4. Changed7 schema fields changed
    • addedOutput schema / properties / identityConfidence
      Added value: +{
      +  "description": "Reserved for a future scoring release. Not returned today.",
      +  "properties": {
      +    "level": {
      +      "enum": [
      +        "unbound",
      +        "key_bound",
      +        "sponsor_verified"
      +      ],
      +      "type": "string"
      +    },
      +    "sponsorVerified": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / payment / properties
      Added value: +{
      +  "amountInSmallestUnit": {
      +    "type": "string"
      +  },
      +  "chainId": {
      +    "type": "number"
      +  },
      +  "expiresAt": {
      +    "type": "string"
      +  },
      +  "memo": {
      +    "type": "string"
      +  },
      +  "paymentId": {
      +    "type": "string"
      +  },
      +  "protocol": {
      +    "type": "string"
      +  },
      +  "recipient": {
      +    "type": "string"
      +  },
      +  "settleUrl": {
      +    "type": "string"
      +  },
      +  "status": {
      +    "type": "string"
      +  },
      +  "tokenAddress": {
      +    "type": "string"
      +  },
      +  "txHash": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / provisioning / properties
      Added value: +{
      +  "message": {
      +    "type": "string"
      +  },
      +  "pollIntervalSeconds": {
      +    "type": "number"
      +  },
      +  "statusUrl": {
      +    "type": "string"
      +  },
      +  "timeoutSeconds": {
      +    "type": "number"
      +  }
      +}
    • addedOutput schema / properties / rental / properties
      Added value: +{
      +  "endTime": {
      +    "type": "string"
      +  },
      +  "fullUrl": {
      +    "type": "string"
      +  },
      +  "id": {
      +    "type": "string"
      +  },
      +  "startTime": {
      +    "type": "string"
      +  },
      +  "status": {
      +    "type": "string"
      +  },
      +  "subdomain": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / settleUrl
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / sigilEligibility
      Added value: +{
      +  "description": "Reserved for a future scoring release. Not returned today.",
      +  "properties": {
      +    "canaryStatus": {
      +      "type": "string"
      +    },
      +    "hardGates": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "enum": [
      +        "eligible",
      +        "awaiting_key_binding",
      +        "active",
      +        "review_required",
      +        "denied",
      +        "suspended",
      +        "revoked"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / tierProgression
      Added value: +{
      +  "description": "Reserved for a future scoring release. Not returned today.",
      +  "properties": {
      +    "currentTier": {
      +      "enum": [
      +        "nascent",
      +        "fledgling",
      +        "established",
      +        "trusted",
      +        "sovereign"
      +      ],
      +      "type": "string"
      +    },
      +    "evidenceConfidence": {
      +      "type": "number"
      +    },
      +    "nextEvaluationAt": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  5. Changed18 schema fields changed
    • addedInput schema / properties / fromAddress
      Added value: +{
      +  "description": "(phase 2) The wallet you paid from (must match the challenge's bound payer).",
      +  "type": "string"
      +}
    • addedInput schema / properties / payerAddress
      Added value: +{
      +  "description": "(phase 1, optional) The 0x wallet you will pay from. Required only when your Sigil has no bound x402 wallet.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payerProof
      Added value: +{
      +  "description": "(phase 1, optional) EIP-191 personal_sign signature proving control of payerAddress. Required with payerAddress when no wallet is sigil-bound.",
      +  "type": "string"
      +}
    • addedInput schema / properties / payerProofIssuedAt
      Added value: +{
      +  "description": "(phase 1, optional) ISO 8601 timestamp of the payerProof, within 5 minutes of the request.",
      +  "type": "string"
      +}
    • addedInput schema / properties / paymentId
      Added value: +{
      +  "description": "(phase 2) The paymentId returned by the phase-1 challenge.",
      +  "type": "string"
      +}
    • addedInput schema / properties / txHash
      Added value: +{
      +  "description": "(phase 2) The on-chain transaction hash of your USDC payment on Base.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / credential
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / documentation
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / estimatedPrice
      Removed value: -{
      -  "type": "object"
      -}
    • removedOutput schema / properties / message
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / next
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / payment
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / provisioning
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / reason
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / rental
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / rentalId
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / steps
      Removed value: -{
      -  "items": {
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • removedOutput schema / required
      Removed value: -[
      -  "status",
      -  "steps"
      -]
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "documentation": {
      +      "type": "string"
      +    },
      +    "estimatedPrice": {
      +      "type": "object"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "steps": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "steps"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Given annotations only signal readOnly=false and idempotent=false, the description supplies the critical behavioral model: a two-phase protocol where the tool returns an x402 payment challenge, the agent pays on Base, and a second call settles. It also discloses that no funded account is needed and that payment is a single on-chain transaction, which is exactly the kind of context annotations cannot convey.

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?

The description is dense and roughly front-loaded, with the core purpose and payment model in the first sentence followed by a scannable phase walkthrough. It contains minor redundancy ('Request an x402 payment challenge' restates the mechanism, and durations repeat the schema enum), but every other sentence earns its place.

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?

For a 10-parameter, two-phase paid operation, the description is remarkably complete: it covers authentication, the exact phase-1 fields, the on-chain payment step, phase-2 settlement fields, and the outputs. It also supplies enough procedural detail for an agent to call it correctly despite the schema's required-field list omitting the phase-1 payer fields.

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?

The schema already documents each parameter at 100% coverage, so the description is not the primary source. It adds useful phase grouping—which parameters belong to the challenge call versus the settlement call—and reinforces that payerProof must accompany payerAddress and fromAddress must match the bound payer. This lifts it above the baseline but relies somewhat on schema-level detail.

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 description opens with a specific verb and resource—'Rent a subdomain'—and immediately distinguishes the tool by payment model: per-transaction USDC on Base via x402, no stored balance. It also clarifies the end state (live rental plus Web Identity Credential), so an agent can tell it apart from sibling lookup/trial/price tools.

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?

It clearly states when to use the tool (to rent a subdomain) and the prerequisites: agent authentication, an active intentMandateId, and a payer wallet. It does not explicitly name alternatives such as try_domain or check_availability, so it stops short of full exclusion-based guidance.

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.