XRP native
Priced straight from the XRPName tier for the name length and TLD. The facilitator re-checks the amount, so the agent just pays what the 402 quotes.
e.g.
alice.xrp → 7.00 XRP
One prompt to your agent. It signs the XRPL payment itself — XRP or RLUSD — mints the domain, and takes custody. No browser, no human click. The server holds zero keys.
2
assetsv2
x402T54
mainnet0
server
Register alice.xrp for me.
Pay in XRP if it’s under 20.
Checking the price and buying it.
Payment with agent wallet.
alice.xrp minted · offer
E7F….
NFTokenAcceptOffer signed. In your
wallet.
Done in ~11s. View tx →
The agent owns the keys. The server prices, verifies, mints, and returns the offer. Five moves — front to back.
Agent POSTs
{ "domain": "alice.xrp" }.
Server replies 402 Payment Required with
every accepted asset in accepts[].
Nothing is charged — this is a price quote.
Agent picks an option and signs an XRPL
Payment for the exact amount,
invoice-bound and source-tagged.
Re-send with a PAYMENT-SIGNATURE
header. Server verifies + settles through the
T54 facilitator. Neither party ever holds
the key.
On settlement the backend mints the domain NFT and
returns offer_id plus an
accept_offer_template.
Agent signs NFTokenAcceptOffer with
its own wallet. Domain lands. tesSUCCESS
ends the flow. Two signatures inherent to XRPL,
both by the agent.
One URL. POST to buy,
GET to peek. Discoverable, no auth.
POST /mcp/x402/registerexactxrpl:0 · mainnet/.well-known/x402.jsonEvery 402 lists both when RLUSD is enabled. The agent picks.
Priced straight from the XRPName tier for the name length and TLD. The facilitator re-checks the amount, so the agent just pays what the 402 quotes.
e.g.
alice.xrp → 7.00 XRP
Ripple’s USD stablecoin. Priced as XRP price × live XRP/USD, locked per invoice. Wallet needs a trustline; the client refuses to sign if it’s missing.
e.g.
alice.xrp → 2.75 RLUSD
XRPName ships a drop-in skill that runs the whole turn shown above. Or implement the HTTP contract against your own x402 client.
buy.mjs, ready for Claude Code,
Cursor, or any MCP client.
git clone https://github.com/XRPDomains/xrpname-mcp-server cd xrpname-mcp-server/skills/xrpname-register npm install cp .env.example .env # set XRPL_BUYER_SEED # pay in XRP node buy.mjs alice.xrp # pay in RLUSD (needs trustline) PAY_CURRENCY=RLUSD node buy.mjs alice.xrp
Once the skill is wired, natural sentences drive the whole flow. The agent handles pricing, currency, and on-chain accept.
alice.xrp for me and pay in
RLUSD.
mybrand.xrpl, settle with XRP.
fund.xrpfi available? If it’s
under 20 XRP, register it.
a.xrp,
b.xrpl.
The safety story in the answers to what people ask first.
Nobody but the agent. XRPName’s server and the T54 facilitator hold no private keys. The agent signs both the Payment and the AcceptOffer with its own wallet.
No. The price comes from public XRPName tiers and the facilitator re-verifies the settled amount. A mismatched payment fails.
Yes — x402 is for agents that already control a funded wallet. The read tools on /agent need nothing; x402 is the autonomous purchase path.
The domain is likely minted with a pending offer for the payer. Re-poll pending offers and sign the AcceptOffer. Never pay twice.
Yes. Subnames are minted by the parent owner through a different path.
The wallet needs a trustline to the RLUSD issuer and a balance. The client preflights this and refuses to sign if it is missing.
ready to build
Autonomous XRPL domain registration in one HTTP call. Non-custodial, mainnet, real value.