{"id":8094,"name":"DNS of Money — 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 — 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\": {...}}.","card_url":"https://api.dnsofmoney.com/.well-known/agent-card.json","endpoint":"https://api.dnsofmoney.com/a2a/v1","protocol_version":"1.0","first_seen":"2026-10-10T06:53:54.702284+00:00","last_verified":"2026-10-10T07:59:04.343210+00:00","card":{"url":"https://api.dnsofmoney.com/a2a/v1","name":"DNS of Money — Financial Address Resolution Agent","skills":[{"id":"resolve_alias","name":"resolve_alias","tags":["resolution","discovery","payments"],"examples":["{\"tool\": \"resolve_alias\", \"arguments\": {\"alias_uri\": \"pay:acme.user\"}}"],"inputModes":["application/json","text/plain"],"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. 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').","outputModes":["application/json"]},{"id":"discover_agent","name":"discover_agent","tags":["discovery","agent-commerce"],"examples":["{\"tool\": \"discover_agent\", \"arguments\": {\"alias_uri\": \"pay:acme.user\"}}"],"inputModes":["application/json","text/plain"],"description":"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').","outputModes":["application/json"]},{"id":"check_alias_available","name":"check_alias_available","tags":["payments"],"examples":[],"inputModes":["application/json","text/plain"],"description":"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').","outputModes":["application/json"]},{"id":"get_payment_requirements","name":"get_payment_requirements","tags":["payments","x402","quoting"],"examples":["{\"tool\": \"get_payment_requirements\", \"arguments\": {\"alias_uri\": \"pay:acme.user\", \"currency\": \"USDC\"}}"],"inputModes":["application/json","text/plain"],"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').","outputModes":["application/json"]},{"id":"get_payment_status","name":"get_payment_status","tags":["payments"],"examples":[],"inputModes":["application/json","text/plain"],"description":"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.","outputModes":["application/json"]},{"id":"get_agent_registration_info","name":"get_agent_registration_info","tags":["registration","onboarding"],"examples":["{\"tool\": \"get_agent_registration_info\", \"arguments\": {}}"],"inputModes":["application/json","text/plain"],"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 — registration itself is the credential-gated POST this tool points at. Example: get_agent_registration_info().","outputModes":["application/json"]}],"version":"1.0.0","provider":{"url":"https://dnsofmoney.com","organization":"DNS of Money"},"security":[],"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 — 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\": {...}}.","capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"protocolVersion":"0.3.0","securitySchemes":{"apiKey":{"in":"header","name":"X-API-Key","type":"apiKey","description":"Optional. Anonymous callers get tier-redacted resolution results; keyed callers see the fields their tier allows."}},"documentationUrl":"https://github.com/sparkmastergrape/ucap/blob/main/docs/mcp-quickstart.md","defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json"],"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"}]},"signature_status":"unsigned","signature_detail":"No card signature supplied","signature_key_url":null,"signature_checked_at":"2026-10-10T07:59:04.343210+00:00","domain_claimed_at":null,"domain_proof_checked_at":null,"source_name":"Agenstry federation","source_url":"https://agenstry.com/docs","last_check":{"checked_at":"2026-10-10T07:59:04.34321+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"also_published_at":[],"history_urls":["https://api.dnsofmoney.com/.well-known/agent-card.json"],"skills":[{"skill_id":"check_alias_available","name":"check_alias_available","description":"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').","tags":["payments"],"quality_warning":false},{"skill_id":"discover_agent","name":"discover_agent","description":"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').","tags":["discovery","agent-commerce"],"quality_warning":false},{"skill_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 — registration itself is the credential-gated POST this tool points at. Example: get_agent_registration_info().","tags":["registration","onboarding"],"quality_warning":false},{"skill_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"],"quality_warning":false},{"skill_id":"get_payment_status","name":"get_payment_status","description":"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.","tags":["payments"],"quality_warning":false},{"skill_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. 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').","tags":["resolution","discovery","payments"],"quality_warning":false}],"quality_flags":[],"check_history":{"checks":4,"passed":4},"recent_checks":[{"card_url":"https://api.dnsofmoney.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:59:04.343210+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://api.dnsofmoney.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:52:42.923525+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://api.dnsofmoney.com/.well-known/agent-card.json","checked_at":"2026-10-10T07:13:37.815862+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},{"card_url":"https://api.dnsofmoney.com/.well-known/agent-card.json","checked_at":"2026-10-10T06:53:54.702284+00:00","success":true,"http_status":200,"detail":"Agent Card validated"}],"endpoint_tls_check":{"checked_at":"2026-10-10T07:59:04.343210+00:00","success":true,"detail":"Valid TLS connection to advertised endpoint host; no A2A request sent"},"protocol_check":{"checked_at":"2026-10-10T07:13:37.815862+00:00","state":"a2a_response","http_status":200,"detail":"A2A task-not-found response to a read-only task lookup"},"events":[],"relationships":[],"verification":{"agent_card_url":"https://api.dnsofmoney.com/.well-known/agent-card.json","last_successful_card_check":"2026-10-10T07:59:04.343210+00:00","latest_card_check":{"checked_at":"2026-10-10T07:59:04.34321+00:00","success":true,"http_status":200,"detail":"Agent Card validated"},"signature_status":"unsigned","signature_checked_at":"2026-10-10T07:59:04.343210+00:00","task_endpoint_tested":true,"task_execution_tested":false,"endpoint_tls_checked_at":"2026-10-10T07:59:04.343210+00:00","endpoint_tls_reachable":true,"protocol_check_state":"a2a_response","protocol_checked_at":"2026-10-10T07:13:37.815862+00:00","provider_identity_verified":false,"domain_claimed_at":null,"domain_proof_checked_at":null}}