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 分