About XRPLink
XRPLink verifies XRP Ledger payments through Flare's FDC and produces shareable receipts backed by cryptographic Merkle proofs. It is aimed at compliance, auditing, and merchant reconciliation, with both MCP tools and a REST API.
Key features
- 01FDC attestation of XRP transactions
- 02Receipts with Merkle proofs
- 03REST API for verification and status
- 04Webhooks for attestation updates
- 05Dashboard with usage and receipt history
Use cases
- 01Verify a payment for compliance records
- 02Reconcile merchant XRP transactions
- 03Check attestation status by transaction
- 04Share a verifiable payment receipt
MCP support
The MCP server exposes five tools for submitting XRP transactions for attestation, looking up attestations, and retrieving server and network information. It also provides four prompts and five resources.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://xrp-link.com/mcpclaude mcp add --transport http joverman-xrplink https://xrp-link.com/mcp{"mcpServers":{"joverman-xrplink":{"type":"http","url":"https://xrp-link.com/mcp"}}}Open in Cursor{"servers":{"joverman-xrplink":{"type":"http","url":"https://xrp-link.com/mcp"}}}Open in VS Code{"mcpServers":{"joverman-xrplink":{"type":"http","url":"https://xrp-link.com/mcp"}}}{"mcpServers":{"joverman-xrplink":{"serverUrl":"https://xrp-link.com/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
Tools
Details
From the project READMEXRPLink — Cryptographically Verified XRP Payment Receipts
Generate tamper-proof, independently verifiable receipts for any XRP payment. XRPLink attests XRP transactions through Flare's FDC protocol and provides a shareable receipt with a cryptographic Merkle proof. Built for compliance, audit, and merchant reconciliation.
Live at https://xrp-link.com
Quick Start
# Visit the hosted app
open https://xrp-link.com
# Or run locally
git clone <repo-url>
cd xrplink
npm install
cp .env.example .env
# Edit .env with your private key and API key
npm run start:rest
Project Status
Live on Flare mainnet. End-to-end pipeline validated: XRP tx → verifier API → FdcHub → DA Layer proof → on-chain verification.
| Milestone | Status |
|---|---|
| Mainnet deployment | ✅ Live (PaymentVerifierMainnet at 0xA10034...e14b) |
| End-to-end pipeline validated | ✅ Complete — XRP tx attested on mainnet |
| User auth (signup/login) | ✅ Complete |
| Receipt pages | ✅ Complete — shareable at /receipt/:txHash |
| Dashboard | ✅ Complete — API key, usage stats, receipt history |
| REST API | ✅ Complete — verify, status, webhooks, health |
| API key auth + rate limiting | ✅ Complete |
| Subscription tiers | ✅ Complete — free/paid/pro |
| MCP Server | ✅ Complete — 5 tools, 4 prompts, 5 resources |
| Hardhat test suite | ✅ Complete — 8 tests passing |
| Open source | ✅ BUSL-1.1 (source-available) |
Server Modes
| Command | What starts |
|---|---|
npm start | MCP server (stdio) + REST API |
npm run start:mcp | MCP server only |
npm run start:rest | REST API only |
Tech Stack & Dependencies
| Dep | Version | Purpose |
|---|---|---|
hardhat | ^3.9.1 | Solidity dev environment |
ethers | 5.8.0 | EVM interaction |
tsx | ^4.23.0 | TypeScript script runner |
dotenv | ^17.4.2 | .env config |
express | ^5.2.1 | HTTP API server |
@flarenetwork/flare-periphery-contracts | ^0.1.52 | FDC protocol interfaces |
@modelcontextprotocol/sdk | ^1.29.0 | MCP server framework |
API Endpoints
| Method | Path | Auth | Description |
|---|---|---|---|
POST | /auth/signup | Public | Create account + free API key |
POST | /auth/login | Public | Log in and get a session token |
GET | /me | Bearer token | Current user info and API keys |
GET | /health | Public | Server status and network info |
GET | /dashboard | Public | HTML user dashboard |
GET | /receipt/:txHash | Public | View a receipt (HTML) |
POST | /api/v1/verify/xrp-payment | API key | Attest an XRP tx |
GET | /api/v1/status/:id | API key | Check attestation by UUID |
GET | /api/v1/status-by-tx/:txHash | API key | Check attestation by txHash |
POST | /api/v1/webhooks | API key | Register webhook callback |
POST | /billing/subscribe | Bearer token | Upgrade subscription |
GET | /billing/portal | Bearer token | Manage billing |
GET | /mcp/resources | Public | List MCP resources |
GET | /mcp/prompts | Public | List MCP prompts |
MCP Tools
| Tool | Description |
|---|---|
verify_xrp_payment | Submit txHash for FDC attestation |
get_attestation_status | Check attestation by UUID |
lookup_attestation_by_tx | Find attestation by txHash |
get_attestation_by_round | List attestations by round ID |
get_server_info | Server + network info |
Connect via stdio: npm run start:mcp
Network Configuration
| Param | Coston2 (Testnet) | Flare Mainnet |
|---|---|---|
| RPC | https://coston2-api.flare.network | https://flare-api.flare.network |
| Chain ID | 114 | 14 |
| FdcHub | 0x48aC463d7975828989331F4De43341627b9c5f1D | 0xc25c749DC27Efb1864Cb3DADa8845B7687eB2d44 |
| FdcVerification | 0x906507E0B64bcD494Db73bd0459d1C667e14B933 | 0x9394c7A36b3Da8de1b4F27cdD0a554dA4Fa7132d |
| DA Layer | https://ctn2-data-availability.flare.network | https://flr-data-availability.flare.network |
| Verifier API | https://fdc-verifiers-testnet.flare.network | https://fdc-verifiers-mainnet.flare.network |
| Source ID | testXRP | XRP |
| First Voting Round | 1658430000 | 1658430000 |
| Attestation fee | 1 test FLR | 20 FLR |
Architecture
┌───────────────────────┐
│ User dApp │ (Flare EVM)
│ (PaymentVerifier.sol)│
└────────┬──────────────┘
│ verifyXRPPayment(proof)
▼
┌───────────────────────┐
│ FdcVerification │ (enshrined FDC protocol contract)
│ (via ContractRegistry)│
└────────┬──────────────┘
│
┌────┴────┐
│ DA Layer│──── Proof + response
└────┬────┘
│
┌────┴────┐
│ Verifier│──── ABI-encoded request with MIC
└────┬────┘
│
XRP Testnet / Mainnet
Key data flow:
- XRP tx happens on XRP Ledger
- Verifier API fetches tx details, computes MIC, returns ABI-encoded request
- Request submitted to FdcHub on Flare with FLR fee
- FDC providers independently verify the XRP tx, reach consensus (90s round)
- Merkle root stored onchain via Relay contract
- DA Layer serves attestation response + Merkle proof
- Smart contract verifies proof against onchain Merkle root via FdcVerification
Contributing
See CONTRIBUTING.md. All contributions welcome — bug fixes, feature requests, docs improvements, and test additions.
XRPLink is source-available (BUSL-1.1) and built for the Flare ecosystem. Non-commercial use, evaluation, and personal use are free. Running XRPLink as a commercial service requires a license from the Licensor.
License
BUSL-1.1 — see LICENSE. Converts to MIT after four years.
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.