Skip to content
Back to DNS of Money — Financial Address Resolution Agent

Card snapshot

api.dnsofmoney.com · 2026-07-21 06:20:53 UTC · 8ed415e3b56b8bb49a4a0db45c4e3277a9fbf8d68c607e294e07ecac3248d092

This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.

{
  "name": "DNS of Money \u2014 Financial Address Resolution Agent",
  "description": "Deterministic financial address resolution for AI agents: resolve pay: aliases to payment endpoints, discover agent-commerce capabilities, and quote x402 payment requirements. Read-only and non-custodial \u2014 the intelligence lives in the calling agent; this agent serves verifiable, deterministic answers and never moves money. Send a message whose data part is {\"tool\": <skill id>, \"arguments\": {...}}.",
  "version": "1.0.0",
  "protocolVersion": "0.3.0",
  "url": "https://api.dnsofmoney.com/a2a/v1",
  "preferredTransport": "JSONRPC",
  "supportedInterfaces": [
    {
      "url": "https://api.dnsofmoney.com/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "1.0"
    },
    {
      "url": "https://api.dnsofmoney.com/a2a/v1",
      "protocolBinding": "JSONRPC",
      "protocolVersion": "0.3.0"
    }
  ],
  "provider": {
    "organization": "DNS of Money",
    "url": "https://dnsofmoney.com"
  },
  "documentationUrl": "https://github.com/sparkmastergrape/ucap/blob/main/docs/mcp-quickstart.md",
  "capabilities": {
    "streaming": false,
    "pushNotifications": false,
    "stateTransitionHistory": false
  },
  "securitySchemes": {
    "apiKey": {
      "type": "apiKey",
      "in": "header",
      "name": "X-API-Key",
      "description": "Optional. Anonymous callers get tier-redacted resolution results; keyed callers see the fields their tier allows."
    }
  },
  "security": [],
  "defaultInputModes": [
    "application/json",
    "text/plain"
  ],
  "defaultOutputModes": [
    "application/json"
  ],
  "skills": [
    {
      "id": "resolve_alias",
      "name": "resolve_alias",
      "description": "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. Field visibility depends on the caller's API-key tier (anonymous callers see status only). Example: resolve_alias('pay:acme.user').",
      "tags": [
        "resolution",
        "discovery",
        "payments"
      ],
      "examples": [
        "{\"tool\": \"resolve_alias\", \"arguments\": {\"alias_uri\": \"pay:acme.user\"}}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "discover_agent",
      "name": "discover_agent",
      "description": "Get the AP2/A2A agent-commerce block for a pay: address \u2014 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').",
      "tags": [
        "discovery",
        "agent-commerce"
      ],
      "examples": [
        "{\"tool\": \"discover_agent\", \"arguments\": {\"alias_uri\": \"pay:acme.user\"}}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_payment_requirements",
      "name": "get_payment_requirements",
      "description": "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').",
      "tags": [
        "payments",
        "x402",
        "quoting"
      ],
      "examples": [
        "{\"tool\": \"get_payment_requirements\", \"arguments\": {\"alias_uri\": \"pay:acme.user\", \"currency\": \"USDC\"}}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    },
    {
      "id": "get_agent_registration_info",
      "name": "get_agent_registration_info",
      "description": "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 \u2014 registration itself is the credential-gated POST this tool points at. Example: get_agent_registration_info().",
      "tags": [
        "registration",
        "onboarding"
      ],
      "examples": [
        "{\"tool\": \"get_agent_registration_info\", \"arguments\": {}}"
      ],
      "inputModes": [
        "application/json",
        "text/plain"
      ],
      "outputModes": [
        "application/json"
      ]
    }
  ]
}