Back to Browse

Dns Of Money MCP Server

Developer ToolsUse Caution4.9MCP RegistryLocalRemote
Free

Server data from the Official MCP Registry

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

About

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

Remote endpoints: streamable-http: https://api.dnsofmoney.com/mcp/rpc

Security Report

4.9
Use Caution4.9High Risk

This is a financial address resolution SDK and payment client for DNS of Money, with API key authentication for write and send operations and non-custodial signing performed locally. The code I reviewed is well structured, with no exfiltration, obfuscation, or hardcoded secrets; the main caveats are the sensitivity of wallet seeds and mnemonics passed as function arguments, the use of a `require` call inside an ES-style TypeScript module, and that parts of the codebase were truncated so the full picture is incomplete. Network and wallet permissions match the stated purpose of a payment resolution server and SDK. Supply chain analysis found 5 known vulnerabilities in dependencies (0 critical, 1 high severity).

9 files analyzed · 10 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

network_websocket

Check that this permission is expected for this type of plugin.

env_vars

Check that this permission is expected for this type of plugin.

process_spawn

Check that this permission is expected for this type of plugin.

How to Install & Connect

Available as Local & Remote

This plugin can run on your machine or connect to a hosted endpoint. during install.

Documentation

View on GitHub

From the project's GitHub README.

dns://money — Financial Address Resolution for the Machine Economy

"In another time's forgotten space"

License: MIT FAS-1 Spec XRPL Mainnet Genesis TX CC BY 4.0

Live: dnsofmoney.com · Spec: dnsofmoney.com/fas-1/ · API: api.dnsofmoney.com · Free API key: request access

We are not a bank. We are the layer above it.

DNS of Money is a financial address resolution protocol and payment orchestration infrastructure for the machine economy. It resolves human-readable pay: identifiers to payment endpoints across multiple rails — without touching funds, holding deposits, or requiring a banking license.


What This Is

Just as DNS resolves example.com → IP address, FAS-1 resolves pay:vendor.alpha → complete payment instruction.

pay:agent.compute  →  { rail: "XRPL", address: "rXXX...", iso_hint: "pacs.008.001.08" }
pay:vendor.alpha   →  { rail: "FedNow", address: "021000021:1234567890", fee_estimate: "0.045" }
pay:contractor.jay →  { rail: "ACH", routing: "...", account: "..." }

No raw wallet addresses. No routing numbers in UX. One identifier that works everywhere.


Why This Exists

The agent address resolution gap. AI agents can now transact autonomously — but there is no standard way to name them, register them, and convert those names into payment endpoints. As we read AP2, A2A and MCP, none of them defines how to name a payee and resolve that name to a payment endpoint. FAS-1 fills that gap.

DNS of Money is the naming and resolution layer for agentic commerce.


Architecture

┌─────────────────────────────────────────────────────────────┐
│                    DNS of Money                              │
│                  pay: Namespace Layer                        │
│                                                             │
│   pay:agent.compute  →  Resolver  →  ResolutionResponse     │
│                              │                              │
│         ┌────────────────────┼────────────────────┐         │
│         ▼                    ▼                    ▼         │
│    XRPL Adapter         FedNow Adapter       ACH Adapter    │
│    (mainnet, live)      (mock)               (mock)        │
└─────────────────────────────────────────────────────────────┘
                              │
                              ▼
          ┌───────────────────────────────────────┐
          │         Financial Autonomy Stack       │
          │           (execution layer)            │
          │  Payment routing · ISO 20022 · OFAC   │
          │  Agent wallets · Policy engine         │
          └───────────────────────────────────────┘

Four-Layer Stack

LayerNamePurpose
1DNS of Moneypay: alias registration and resolution
2AI Orchestration LayerRouting decisions, cost optimization, rail scoring
3Multi-Rail Payment RouterSettlement execution (ACH, FedNow, XRPL, SWIFT)
4Autonomous Agent NetworkM2M commerce, agent-to-agent payment hooks

MVP flow: alias → resolve → route → ISO 20022 hint → simulate settlement


The pay: URI Scheme

FAS-1 (Financial Address Standard 1) defines the pay: URI scheme for human-readable financial addresses.

pay:vendor.alpha          # vendor namespace, alpha entity
pay:agent.compute         # agent namespace, compute service
pay:contractor.jay        # contractor namespace, individual
pay:bank.settlement       # institutional namespace

Format

pay-uri  = "pay:" label *("." label)
label    = 1*63( ALPHA / DIGIT / "-" )

Rules:

  • Lowercase only; NFC + Punycode for non-ASCII labels
  • Dots are hierarchy separators, not name separators
  • Max 63 characters per label, 128 total; min 3 total
  • No leading/trailing hyphens; no consecutive dots
  • v0.1 (current): at least one dot required — pay:namespace.label
  • v0.2 (draft): single-label addresses for people and brands — pay:elonmusk
  • Regex (v0.1): ^pay:[a-z0-9][a-z0-9\-]*(\.[a-z0-9][a-z0-9\-]*)+$
  • Regex (v0.2 draft): ^pay:[a-z0-9][a-z0-9\-]*(\.[a-z0-9][a-z0-9\-]*)*$

Full spec: docs/FAS-1-spec.md · License: CC BY 4.0


Resolution Response

{
  "alias": "pay:vendor.alpha",
  "preferred_rail": "XRPL",
  "endpoints": [
    {
      "rail": "XRPL",
      "currency": "USD",
      "address": "rXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
      "routing_metadata": { "destination_tag": 12345 },
      "settlement_latency": "3-5s",
      "fee_estimate": "0.0001"
    },
    {
      "rail": "FedNow",
      "currency": "USD",
      "address": "021000021:1234567890",
      "routing_metadata": { "routing_number": "021000021" },
      "settlement_latency": "instant",
      "fee_estimate": "0.045"
    }
  ],
  "iso20022_hint": "pacs.008.001.08",
  "iso20022_map": { "cdtr_nm": "Alpha Vendors LLC", "cdtr_acct_tp": "CACC", "ccy": "USD" },
  "compliance": { "sanctions_checked": true, "fatf_risk_rating": "low", "requires_purpose_code": false },
  "ttl_seconds": 300,
  "resolved_at": "2026-03-20T00:00:00Z"
}

Account and routing numbers are never returned at authorization levels 0–1. Full field list, authorization levels, and error codes: docs/FAS-1-spec.md.


Quick Start

Resolve a pay: alias

curl https://api.dnsofmoney.com/api/v1/resolve/pay:vendor.alpha \
  -H "X-API-Key: your_key"

Register a pay: alias (founding tier)

curl -X POST https://api.dnsofmoney.com/api/v1/aliases/register \
  -H "X-API-Key: your_key" \
  -H "Content-Type: application/json" \
  -d '{
    "alias": "pay:yourname.here",
    "xrpl_address": "rYourXRPLAddress",
    "payment_tx_hash": "VERIFIED_5XRP_TX_HASH",
    "tier": "founding"
  }'

Check availability

curl https://api.dnsofmoney.com/api/v1/aliases/available/yourname.here
# → { "status": "available" | "taken" | "reserved" }

Agent Integration

MCP / A2A

DNS of Money fills the agent payment discoverability gap described in FAS-1 spec §9.1. Any agent can advertise a pay: alias; any caller can resolve it to a ranked list of payment endpoints without prior knowledge of the agent's banking infrastructure.

# A2A-031 binding pattern
agent_card = {
    "agent_id": "AGT-COMPUTE-001",
    "payment_alias": "pay:agent.compute"
}

# Caller resolves before payment
resolution = await resolve("pay:agent.compute")
# → { rail, address, iso20022_hint }

Python

import httpx

async def resolve_payment_alias(alias: str, api_key: str) -> dict:
    async with httpx.AsyncClient() as client:
        r = await client.get(
            f"https://api.dnsofmoney.com/api/v1/resolve/{alias}",
            headers={"X-API-Key": api_key}
        )
        return r.json()

result = await resolve_payment_alias("pay:vendor.alpha", "your_key")
print(result["preferred_rail"])   # "XRPL"
print(result["iso20022_hint"])    # "pacs.008.001.08"

JavaScript / TypeScript

const resolve = async (alias: string): Promise<ResolutionResponse> => {
  const res = await fetch(`https://api.dnsofmoney.com/api/v1/resolve/${alias}`, {
    headers: { "X-API-Key": process.env.DNS_MONEY_API_KEY! }
  });
  return res.json();
};

const { preferred_rail, endpoints, iso20022_hint } = await resolve("pay:agent.compute");

Supported Payment Rails

RailTypeLatencyCurrency
XRPLBlockchain3–5 secondsXRP, IOUs
FedNowInstant ACHInstantUSD
ACHBank transfer1–3 daysUSD
SWIFTWire1–5 daysMulti-currency
Solana/USDCBlockchain<1 secondUSDC

On-Chain Namespace Anchors

All root namespaces are immutably anchored on XRPL mainnet via FAS-1 memo transactions before publication of this spec. This is the moat: namespaces cannot be forked once registered on-chain.

Confirmed on-chain (March 2026):

Genesis TX        — March 13, 2026 — first inter-AI payment on XRPL mainnet
pay:agent.*       — March 17, 2026 — agent namespace root
pay:swift         pay:fednow        pay:fedreserve
pay:iso20022      pay:cbdc          pay:treasury
pay:bis           pay:imf           pay:worldbank
pay:correspondent pay:nostro        pay:vostro
pay:fedwire       pay:chips         pay:chaps
pay:target2       pay:cips          pay:ripplenet
pay:odl           pay:swift.usd     pay:swift.eur

All memo transactions use the FAS-1 format:

{
  "p": "FAS-1",
  "v": "0.1",
  "a": "pay:agent.*",
  "t": "root_namespace",
  "o": "dnsofmoney.com",
  "d": "2026-03-17"
}

Founding Tier

The first 600 pay: names are priced by claim order, graduated from 0 up to 5 XRP, and permanently grandfathered at the price paid. The current band is served live by GET /api/v1/founding/status. One name per XRPL wallet. On-chain proof issued at registration.

Each founding name includes:

  • A permanent pay: alias on XRPL mainnet
  • A unique generative fractal flame identity NFT (XLS-20)
  • IPFS-pinned art and metadata that outlives every server
  • On-chain proof via FAS-1 memo protocol

33 minted. 567 remaining. Mint yours at dnsofmoney.com

  • Founding tier encoded on XRPL mainnet via FAS-1 memo
  • Permanent — cannot be revoked
  • Hard cap enforced atomically: SELECT ... FOR UPDATE inside the registration transaction

Check remaining spots: GET /api/v1/founding/status


Proof of Work

This is not vaporware. The transactions below are real. The XRPL ones are publicly verifiable by anyone — no login, no trust required.

XRPL Mainnet — Publicly Verifiable On-Chain

TXTime (UTC)DirectionAmountLedgerHash
TX109:16:40 Mar 13 2026Claude → GPT-4$0.69 USD (0.482517 XRP)102837427B92C23BA...
TX220:20:10 Mar 13 2026GPT-4 → Claude$4.20 USD (3.0 XRP)102849264EB8F2C20...

Click either hash. It's on the ledger. Permanent.

Bidirectional AI payment rail: proven on XRPL mainnet — publicly verifiable on-chain.

Agent Verification — AI-to-API Resolution Proven

StepResultDate
Resolve pay:genesis at tier 3Full response: entity_id, compliance, ISO hint, agent_commerce, identity blockMar 24, 2026
Verify NFT on-chainNFTokenID confirmed, taxon 420069 (founding), IPFS metadata verifiedMar 24, 2026
Witness 1 XRP paymentpay:architect → pay:genesis with memo DNS-OF-MONEY-PROOFMar 24, 2026

First external AI agent (Perplexity) to resolve a pay: alias, verify on-chain identity, and witness a real payment — end-to-end.


ISO 20022 Compatibility

All payment models are ISO 20022 compatible. The resolver returns iso20022_hint on every resolution response, enabling downstream systems to generate standards-compliant payment messages without any mapping work.

MessageUsage
pacs.008Credit transfer initiation
pacs.002Payment status report
pain.001Customer credit transfer
camt.053Account statement
camt.054Debit/credit notification

What We Are Not

This protocol is explicit about scope:

✅ Payment address resolution
✅ Payment orchestration infrastructure
✅ Financial metadata layer
✅ Routing intelligence layer
✅ API gateway pattern for licensed banking infrastructure
   (adapter interfaces only. No bank partner is live today.)

❌ Not a bank
❌ Not a deposit holder
❌ Not a settlement institution
❌ Not a card issuer
❌ Not a clearing network

No banking license required to use this protocol.


SDK

Official client libraries for the DNS of Money API. No external dependencies — stdlib only.

from dnsofmoney import resolve

result = resolve("pay:vendor.alpha")
print(result.endpoints[0].rail)
import { resolve } from "dnsofmoney";

const result = await resolve("pay:vendor.alpha");
console.log(result.endpoints[0].rail);

Repository Structure

dns-of-money/
├── docs/
│   ├── FAS-1-spec.md          # Financial Address Standard 1 (CC BY 4.0)
│   ├── architecture.md        # Full system architecture
│   └── integration-guide.md   # Integration patterns (MCP, A2A, REST)
├── examples/
│   ├── python/                # Python integration examples
│   ├── typescript/            # TypeScript/JavaScript examples
│   └── curl/                  # REST API examples
├── schemas/
│   ├── resolution-response.json   # JSON Schema for resolution response
│   └── registration-request.json  # JSON Schema for registration
├── sdk/
│   ├── python/                # Python SDK (pip install dnsofmoney)
│   └── typescript/            # TypeScript SDK (npm install dnsofmoney)
└── CHANGELOG.md

Related Repositories

RepoPurposeLicense
dnsofmoney/dns-of-moneyFAS-1 spec, integration docs, schemas (this repo)CC BY 4.0 (docs/), Apache-2.0 (sdk/), MIT (other code, schemas)
dnsofmoney/a2a-protocol-coreA2A protocol core — agent-to-agent commerceApache 2.0

API Reference

Base URL: https://api.dnsofmoney.com

MethodEndpointDescription
GET/api/v1/resolve/{alias}Resolve a pay: alias to payment endpoints
GET/api/v1/aliases/available/{name}Check alias availability
POST/api/v1/aliases/registerRegister a new pay: alias
GET/api/v1/aliases/founding/remainingFounding tier spots remaining
GET/healthAPI health check

Full API docs: api.dnsofmoney.com/docs

Authentication: X-API-Key header required for all write operations.


Current State vs. Roadmap

Live Today ✅

  • pay: alias registration and resolution (7-stage pipeline with identity evolution)
  • NFT identity system: generative fractal flame art per alias, IPFS-pinned
  • Identity block in resolve response (image, metadata, explorer link)
  • Founding mint page with live counter at dnsofmoney.com
  • Claim page: wallet connect via Xaman, burn option
  • XRPL payment rail (mainnet, proven)
  • ACH adapter (mock / not yet live — no real ACH settlement to date)
  • OFAC sanctions screening
  • ISO 20022 hint generation
  • Founding tier (600-name hard cap, 33 minted, on-chain proof)
  • 41 root namespaces anchored on XRPL mainnet
  • Agent verification: first AI agent resolved + verified + witnessed payment
  • Marketing site live at dnsofmoney.com with SSL
  • Rate limiting + IPFS proxy at the edge
  • Managed secrets + HTTPS API live (api.dnsofmoney.com)
  • MCP server (remote, streamable HTTP) listed in the official MCP registry
  • x402 agent payments: multi-network challenge, paid counterparty screening, discovery manifest at /.well-known/x402
  • 4,297 tests passing in CI on the reference implementation (2026-11-02)

Roadmap 🗺️

  • FedNow and ACH production integration (pending a banking partner. Both are mock today.)
  • AP2 mandate layer on the public API (mapping published in spec §9.6)
  • SDK packages (Python, TypeScript, Go)
  • LangChain / CrewAI / AutoGPT integration modules
  • Subdomain delegation (hierarchical namespace tree)
  • Resolution fee pricing
  • Token economics and governance

FAS-1 Spec

The Financial Address Standard 1 (FAS-1) is the open protocol specification underlying pay: URIs. It is licensed under CC BY 4.0 — free to implement, extend, and build on.

Key properties:

  • Rail-agnostic: one alias resolves to N endpoints, ordered by policy
  • ISO 20022 aligned: every resolution carries a message family hint
  • On-chain anchored: namespace ownership is verifiable on XRPL mainnet
  • A2A, MCP and x402: live surfaces, not aspirations (see the spec, §9.4 and §9.5)
  • AP2: the three-mandate mapping is published in §9.6. Implemented as a spike, not yet exposed on the public API

Read the spec: docs/FAS-1-spec.md


Contributing

This repo is the public home of the FAS-1 specification and integration documentation. We welcome:

  • Issues: spec clarifications, edge cases, implementation questions
  • PRs: integration examples, documentation improvements, schema refinements
  • Discussions: use cases, protocol extensions, competing approaches

For protocol-level proposals, open an issue with the [RFC] prefix.


License

  • Protocol specification and documentation (docs/): CC BY 4.0. The root MIT License does not apply to docs/.
  • SDKs (sdk/): Apache-2.0.
  • Other code, code examples and schemas: MIT, except where a directory has its own license file.

Community



Reviews

No reviews yet

Be the first to review this server!