Accept x402 payments on the XRP Ledger with Solvador
If you want to accept x402 payments on the XRP Ledger, you need a facilitator to verify and settle them. Solvador is that facilitator.
You point your x402 middleware at Solvador and we handle verification and on chain settlement on XRPL. The same integration also covers every other network we support, so you write it once and reuse it everywhere.
The exact scheme on the XRP Ledger
Solvador supports the x402 exact scheme on XRPL:
- exact. Charge a precise, fixed amount per request. Ideal for flat priced endpoints, one off unlocks, and simple pay per call APIs.
The upto and batch-settlement schemes rely on EVM primitives such as Permit2, so they run on Solvador’s EVM networks. On XRPL you use exact, and the rest of the integration is identical to every other network Solvador supports.
One XRPL-specific note for the sake of honesty: on the XRP Ledger the payer signs the complete Payment transaction, including its own network fee — a fraction of a cent, embedded in the signed transaction. Solvador verifies the signed payment offline, simulates it, and submits it for validated settlement; your server still never touches keys, fees, or RPC plumbing.
One integration, every network
The real cost of going multichain is not the payment, it is the infrastructure behind it. Solvador collapses that:
- Integrate once and cover the XRP Ledger plus 14 other networks through the same facilitator.
- No per network facilitator to run, monitor, or maintain.
- Adding XRPL to an app that already uses Solvador is a config value, not a rewrite.
- Identical developer experience across every supported network, so your team learns it once.
- XRPL settlements are unlimited on every plan — including Free. Because the facilitator is keyless on XRPL, settlement costs us nothing, and we pass that on: XRPL settles never count against your monthly quota.
You can charge in native XRP or in issued currencies such as RLUSD, Ripple’s USD stablecoin, and Solvador settles on the XRP Ledger.
From zero to first payment in under 3 minutes
Frictionless onboarding is the point. Here is the whole path from nothing to a live 402 payment on XRPL.
1. Grab your Solvador API key.
Create a key in your Solvador dashboard and keep it in an environment variable. You will pass it to the facilitator on every verify and settle call.
export SOLVADOR_API_KEY="your_api_key"
2. Add the x402 middleware to your server.
npm install @x402/express @x402/core
The
@x402/xrplscheme package is not on npm yet — it ships from the x402 repo (PR #2801). Build it from that branch and add it as afile:dependency until it lands on the registry.
3. Point it at Solvador and pick the XRP Ledger.
XRPL prices are explicit asset amounts — native XRP is denominated in drops (1 XRP = 1,000,000 drops):
import express from "express";
import { paymentMiddleware, x402ResourceServer } from "@x402/express";
import { HTTPFacilitatorClient } from "@x402/core/server";
import { ExactXrplScheme } from "@x402/xrpl/exact/server";
const app = express();
const facilitator = new HTTPFacilitatorClient({
url: "https://api.solvador.com",
createAuthHeaders: async () => {
const auth = { "X-API-Key": process.env.SOLVADOR_API_KEY };
return { verify: auth, settle: auth, supported: {} }; // /supported is public
},
});
app.use(
paymentMiddleware(
{
"GET /api/premium": {
accepts: [
{
scheme: "exact",
price: {
amount: "50000", // 0.05 XRP in drops
asset: "XRP",
},
network: "xrpl:0", // XRP Ledger mainnet
payTo: "rYourXrplClassicAddress", // XRPL classic address
},
],
},
},
new x402ResourceServer(facilitator)
.register("xrpl:0", new ExactXrplScheme())
)
);
app.get("/api/premium", (req, res) => {
res.json({ data: "paid content on the XRP Ledger" });
});
app.listen(3000);
To charge in RLUSD instead, set asset to the RLUSD currency code and add the issuer: price: { amount: "0.05", asset: "524C555344000000000000000000000000000000", extra: { issuer: "rMxCKbEDwqr76QuheSUMdEGf4B9xJ8m5De" } }.
4. Make a paid request from any x402 client.
import { wrapFetchWithPayment } from "@x402/fetch";
import { x402Client } from "@x402/core/client";
import { ExactXrplScheme } from "@x402/xrpl/exact/client";
// signer wraps an xrpl.js Wallet
const client = new x402Client();
client.register("xrpl:0", new ExactXrplScheme(signer));
const fetchWithPay = wrapFetchWithPayment(fetch, client);
const res = await fetchWithPay("http://localhost:3000/api/premium");
That is it. Your endpoint now returns 402 Payment Required, the client signs an XRPL payment, Solvador verifies and settles it on the XRP Ledger, and your content is served. No per network glue code, no facilitator to operate.
Why the XRP Ledger
The XRP Ledger is one of the longest-running L1s in production — live since 2012 — with 3 to 5 second finality and fees around a fraction of a cent. It was built for payments first: deterministic settlement, no mempool games, and human-manageable account features like regular keys and destination tags. RLUSD brings a natively-issued USD stablecoin to the ledger, and XRPL’s ticket mechanism lets a single account keep multiple x402 payments in flight concurrently — a natural fit for agent-driven, pay-per-call workloads.
Whatever brought you to the XRP Ledger, Solvador makes it a payment ready network from day one, with the exact same developer experience you get everywhere else we support.
FAQ
Which x402 schemes does Solvador support on XRPL? Solvador supports the exact scheme on the XRP Ledger. The upto and batch-settlement schemes rely on EVM primitives such as Permit2, so they are available on the EVM networks Solvador supports.
What can I charge in on XRPL? Native XRP (denominated in drops) or issued currencies (IOUs) such as RLUSD, specified with their issuer address. Confirm the current asset list for XRPL in the Solvador docs before launch.
Who pays the XRPL network fee? The payer — it is embedded in the transaction they sign, and it is a fraction of a cent. Your resource server never holds XRP or touches keys.
Do XRPL settlements count against my monthly quota? No. XRPL settlements are unlimited on every plan, including Free. The facilitator is keyless on XRPL, so settlement costs nothing to operate — your quota is only consumed by networks where Solvador sponsors the gas.
Can multiple payments from one account be pending at once? Yes. The default sequence method allows one pending payment per account; the ticketSequence method uses XRPL tickets so one account can keep many payments in flight concurrently.
Can I use the same code on other networks? Yes. Switching networks is a config change. The same Solvador integration covers every supported network.
Start building on the XRP Ledger
Ship your first x402 payment on XRPL today. Read the docs and grab your facilitator endpoint at solvador.com.