dns-of-money

Resolve, discover & pay pay: aliases for AI agents; returns a signed OFAC-screen attestation.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
88%
Naming quality
93%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,105Tokens (tool definitions)
~794 BTypical response size
Moderate attention impact (0.86% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "dns-of-money": {
      "url": "https://api.dnsofmoney.com/mcp/rpc"
    }
  }
}

Remote endpoints

https://api.dnsofmoney.com/mcp/rpcstreamable-http

What it can do

Tool inventory

Tools (6)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟡resolve_alias(alias_uri, amount, currency, preferred_rail)

Resolve a human-readable financial alias (pay: address) to payment endpoints and routing metadata. Call this before initiating any payment to a pay: address. Returns the preferred rail, fallback endpoints, an ISO 20022 hint, and a compliance signal. Anonymous calls return status only; a free API key (no credit card) unlocks the endpoint set — which rails and currencies the alias accepts — via POST /api/v1/access-requests. You do NOT need a key to pay: get_payment_requirements returns a payable address to any caller. Example: resolve_alias('pay:acme.user').

Input Schema

{
  "type": "object",
  "properties": {
    "alias_uri": {
      "type": "string",
      "description": "The pay: address to resolve. E.g. 'pay:acme.user'."
    },
    "amount": {
      "type": "string",
      "description": "Optional payment amount (decimal string) — refines rail scoring."
    },
    "currency": {
      "type": "string",
      "description": "Optional ISO 4217 currency code. Defaults to USD."
    },
    "preferred_rail": {
      "type": "string",
      "description": "Optional rail hint (e.g. 'xrpl', 'fednow'). Advisory only."
    }
  },
  "required": [
    "alias_uri"
  ]
}
🟢discover_agent(alias_uri)

Get the AP2/A2A agent-commerce block for a pay: address — the DNS of Money equivalent of an A2A agent-card lookup. Use this during agent discovery before initiating a mandate flow. Returns agent capabilities only; NO payment credentials. Example: discover_agent('pay:acme.user').

Input Schema

{
  "type": "object",
  "properties": {
    "alias_uri": {
      "type": "string",
      "description": "The pay: address to discover. E.g. 'pay:acme.user'."
    }
  },
  "required": [
    "alias_uri"
  ]
}
🟢check_alias_available(alias_uri)

Check whether a pay: alias can still be claimed. Returns exactly one of three states: 'available' (free to register), 'taken' (already registered), or 'reserved' (protected namespace). When available, also returns the number of founding spots remaining. Public — no API key required. Read-only: this never reserves or registers the name. Example: check_alias_available('pay:acme.user').

Input Schema

{
  "type": "object",
  "properties": {
    "alias_uri": {
      "type": "string",
      "description": "Candidate pay: address, e.g. 'pay:acme.user'. A bare name without the 'pay:' prefix is accepted too."
    }
  },
  "required": [
    "alias_uri"
  ]
}
🟡get_payment_requirements(alias_uri, amount, currency)

Get x402 PaymentRequirements for paying a pay: alias. Returns the 402 `accepts` block (scheme, network, payTo, asset, amount, invoiceId) an x402 agent needs to construct and submit the payment. currency='XRP' settles on the XRP Ledger (amount in drops); currency='USDC' settles USDC on Algorand via the GoPlausible facilitator (amount in atomic micro-USDC, feePayer in `extra`). The deterministic resolver chooses the rail; this tool never moves money. Example: get_payment_requirements('pay:acme.user', amount='1.5').

Input Schema

{
  "type": "object",
  "properties": {
    "alias_uri": {
      "type": "string",
      "description": "The pay: address to pay. E.g. 'pay:acme.user'."
    },
    "amount": {
      "type": "string",
      "description": "Amount to pay — decimal string in the asset's display unit (XRP). Omit it to be quoted the alias's declared price; required for an alias that declares no price."
    },
    "currency": {
      "type": "string",
      "description": "Asset to pay in: 'XRP' (XRPL) or 'USDC' (Algorand). Defaults to XRP."
    }
  },
  "required": [
    "alias_uri"
  ]
}
🟢get_payment_status(request_key)

Check whether a payment you already attempted was recorded, BEFORE you retry and risk spending twice. Pass the request_key you sent as the Idempotency-Key header on the paid request. Returns state 'settled' (we hold a receipt — do NOT pay again) or 'not_found' (we have no record — retrying is safe). Use this when a paid call timed out or its response was lost: on rails where the facilitator broadcasts, you never learn the transaction hash unless our response reaches you, so this key is the only thing that can answer. The key is a bearer secret — whoever presents it gets the receipt.

Input Schema

{
  "type": "object",
  "properties": {
    "request_key": {
      "type": "string",
      "description": "The exact Idempotency-Key you sent with the paid request. 32-128 characters of [A-Za-z0-9_-], generated from a CSPRNG with at least 128 bits of entropy."
    }
  },
  "required": [
    "request_key"
  ]
}
🟡get_agent_registration_info

Learn how to self-register a FREE pay:agent.<label> alias for your agent. Returns the registration endpoint, the AgentAuthorityCredential verifiable-presentation requirements (intent binding + domain), the rate limit, and the Merkle anchor-proof endpoint. Read-only — registration itself is the credential-gated POST this tool points at. Example: get_agent_registration_info().

Input Schema

{
  "type": "object",
  "properties": {}
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded6 tools
verifiedversion not recorded6 tools
verifiedversion not recorded6 tools