Dns Of Money

io.github.sparkmastergrape由 GitHub 账号 sparkmastergrape 发布v1.1.0更新于 Nov 5, 2026

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

已验证Streamable HTTP可网页运行金融商业与电商AI 与机器学习

概览

AI 生成的概览

把 pay: 金融别名解析为支付端点、代理商务元数据和 x402 支付要求,供 AI 代理使用。

可以做什么
  • 将 pay: 别名解析为首选通道、备用端点、ISO 20022 提示与合规信号
  • 查询别名的 AP2/A2A 代理商务信息块
  • 检查别名是可注册、已占用还是保留,并查看创始名额剩余数
  • 获取支付别名所需的 x402 PaymentRequirements(方案、网络、收款地址、资产、金额、发票号)
  • 在重试前确认此前发起的支付是否已被记录
  • 了解如何自助注册免费的 pay:agent 别名
适用场景
当助手需要把人类可读的 pay: 标识转换为具体支付路由信息、发现某个代理的商务能力,或准备并核对 x402 支付以避免重复付款时适用。
运行要求
使用 api.dnsofmoney.com 上的远程 streamable HTTP 端点,无需本地安装。清单未声明认证,但 README 说明写操作需要 X-API-Key 请求头,匿名解析仅返回状态,可申请免费 API 密钥。需要网络访问。
安装前请注意
该服务涉及真实资金流转:会返回支付端点、钱包地址和 x402 支付要求,README 还描述了以 XRP 计价的付费别名注册。完整解析和写操作需要 API 密钥。重试前应先核对支付状态以免重复付款;部分通道被描述为模拟,且目前没有已上线的银行合作方。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Dns Of Money,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Web executable,通过 Streamable HTTP。 远程服务在工作区中配置后即可从网页运行时运行。

交给智能体安装

把这段提示词粘贴到 Claude Code、Codex、Cursor 等智能体,或 SourceWeft 对话中。智能体会读取该服务器的安装指南,先向你展示发布者、端点和登录方式,经你同意后再把它添加到你的客户端。密钥不会写进任何命令。

阅读 https://sourceweft.com/mcp/io.github.sparkmastergrape%2Fdns-of-money/install.md,并按其中说明把这个 MCP 服务器接入我的客户端。修改任何配置之前,先告诉我它的发布者、端点和登录方式,等我确认。不要把 API 密钥写进命令或我会提交的文件;问我密钥应从哪里获取。

查看智能体所依据的安装指南

其他 MCP 客户端

把它添加到你客户端的 mcpServers 配置中。

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

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 entitypay:agent.compute         # agent namespace, compute servicepay:contractor.jay        # contractor namespace, individualpay: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

json
{  "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

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

Register a pay: alias (founding tier)

bash
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

bash
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.

python
# A2A-031 binding patternagent_card = {    "agent_id": "AGT-COMPUTE-001",    "payment_alias": "pay:agent.compute"}
# Caller resolves before paymentresolution = await resolve("pay:agent.compute")# → { rail, address, iso20022_hint }

Python

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

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 mainnetpay:agent.*       — March 17, 2026 — agent namespace rootpay:swift         pay:fednow        pay:fedreservepay:iso20022      pay:cbdc          pay:treasurypay:bis           pay:imf           pay:worldbankpay:correspondent pay:nostro        pay:vostropay:fedwire       pay:chips         pay:chapspay:target2       pay:cips          pay:ripplenetpay:odl           pay:swift.usd     pay:swift.eur

All memo transactions use the FAS-1 format:

json
{  "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.

python
from dnsofmoney import resolve
result = resolve("pay:vendor.alpha")print(result.endpoints[0].rail)
typescript
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


Financial orchestration infrastructure for the machine economy.
Payments. AI agents. Autonomous commerce.
We are not a bank. We are the layer above it.


"If you plant ice, you're gonna harvest wind."

来源:README.md,提交 a7f609b

工具

6

resolve_alias

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').

输入参数amountcurrencyalias_uri必填preferred_rail

discover_agent

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').

输入参数alias_uri必填

check_alias_available

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').

输入参数alias_uri必填

get_payment_requirements

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').

输入参数amountcurrencyalias_uri必填

get_payment_status

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.

输入参数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().

无需输入参数。

版本历史

2
  1. v1.1.0最新Nov 5, 2026
  2. v1.0.0Sep 16, 2026

评分

已满足适用检查项的 100%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通必需25 分
  • 已声明认证方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分