XRPLink

io.github.jovermanPublished by GitHub account jovermanv0.3.0Updated Oct 26, 2026

Verify XRP payments on Flare FDC. Agents subscribe or pay per attestation via x402 on XRPL.

VerifiedStreamable HTTPWeb executableFinanceSecurity & Monitoring

Overview

AI-generated overview

Attests XRP payments on Flare's FDC and returns verifiable receipts, so an assistant can submit a transaction hash and check attestation status.

What you can do
  • Submit an XRP transaction hash for FDC attestation on Flare
  • Check an attestation's status by UUID or by transaction hash
  • Read server and network information
  • Use bundled prompts and resources for receipt and verification workflows
When to use it
Useful when you need cryptographic proof that an XRP payment happened, for compliance, audit or merchant reconciliation, and want an assistant to trigger attestations and poll their status.
Requirements
A remote endpoint at xrp-link.com, or a local Node.js install with npm and a .env file. The hosted service uses account signup/login and API keys for attestation calls; the local setup expects a private key and API key in .env. Attestations cost FLR on Flare mainnet (20 FLR per attestation) or test FLR on Coston2.
Before you install
Attestations spend FLR fees on Flare mainnet and paid subscription tiers exist. The local setup asks for a private key in .env, so use a dedicated low-value key. Submitting a transaction hash creates an attestation record, and webhooks can be registered to receive results. Only native XRP payments from the last 14 days can be proven.

Installation

In SourceWeft

  1. Open XRPLink in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.joverman%2Fxrplink/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "xrplink": {
      "type": "http",
      "url": "https://xrp-link.com/mcp"
    }
  }
}

README

XRPLink — Cryptographically Verified XRP Payment Receipts

[License: BUSL-1.1]

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

bash
# Visit the hosted appopen https://xrp-link.com
# Or run locallygit clone <repo-url>cd xrplinknpm installcp .env.example .env# Edit .env with your private key and API keynpm 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.

MilestoneStatus
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

CommandWhat starts
npm startMCP server (stdio) + REST API
npm run start:mcpMCP server only
npm run start:restREST API only

Tech Stack & Dependencies

DepVersionPurpose
hardhat^3.9.1Solidity dev environment
ethers5.8.0EVM interaction
tsx^4.23.0TypeScript script runner
dotenv^17.4.2.env config
express^5.2.1HTTP API server
@flarenetwork/flare-periphery-contracts^0.1.52FDC protocol interfaces
@modelcontextprotocol/sdk^1.29.0MCP server framework

API Endpoints

MethodPathAuthDescription
POST/auth/signupPublicCreate account + free API key
POST/auth/loginPublicLog in and get a session token
GET/meBearer tokenCurrent user info and API keys
GET/healthPublicLiveness ({"status":"ok"})
GET/dashboardPublicHTML user dashboard
GET/receipt/:txHashPublicView a receipt (HTML)
POST/api/v1/verify/xrp-paymentAPI keyAttest an XRP tx
GET/api/v1/status/:idAPI keyCheck attestation by UUID
GET/api/v1/status-by-tx/:txHashAPI keyCheck attestation by txHash
POST/api/v1/webhooksAPI keyRegister HTTPS webhook for an attestation this key owns
POST/billing/subscribeBearer tokenUpgrade subscription
GET/billing/portalBearer tokenManage billing
GET/mcp/resourcesPublicList MCP resource metadata (no bodies)
GET/mcp/promptsPublicList MCP prompts
POST/api/v1/keys/rotateSession cookieRegenerate the signed-in user's API key
POST/api/v1/dashboard/verifySession cookieAttest from the dashboard without pasting a key
GET/api/v1/dashboard/status/:idSessionPoll a dashboard attestation the user owns
GET/PUT/POST/DELETE/api/v1/admin/*X-Admin-KeyOperator-only (disabled if ADMIN_API_KEY is unset)

MCP Tools

ToolDescription
verify_xrp_paymentSubmit txHash for FDC attestation
get_attestation_statusCheck attestation by UUID (public subset unless owning key)
lookup_attestation_by_txFind attestation by txHash (public subset unless owning key)
get_server_infoServer + network info

Connect via stdio: npm run start:mcp

Network Configuration

ParamCoston2 (Testnet)Flare Mainnet
RPChttps://coston2-api.flare.networkhttps://flare-api.flare.network
Chain ID11414
FdcHub0x48aC463d7975828989331F4De43341627b9c5f1D0xc25c749DC27Efb1864Cb3DADa8845B7687eB2d44
FdcVerification0x906507E0B64bcD494Db73bd0459d1C667e14B9330x9394c7A36b3Da8de1b4F27cdD0a554dA4Fa7132d
DA Layerhttps://ctn2-data-availability.flare.networkhttps://flr-data-availability.flare.network
Verifier APIhttps://fdc-verifiers-testnet.flare.networkhttps://fdc-verifiers-mainnet.flare.network
Source IDtestXRPXRP
First Voting Round16584300001658430000
Attestation fee1 test FLR20 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

Lookback: Flare's XRPPayment attestation (IXRPPayment lutlimit 0x127500) can only prove native XRP Payments from the last 14 days. Older hashes still exist on XRPL, but the hosted verifier returns INVALID: TRANSACTION DOES NOT EXIST. XRPLink preflights the ledger and returns TX_TOO_OLD instead of a misleading FdcHub error. Failed prepares do not consume monthly quota.

Key data flow:

  1. XRP tx happens on XRP Ledger
  2. Verifier API fetches tx details, computes MIC, returns ABI-encoded request
  3. Request submitted to FdcHub on Flare with FLR fee
  4. FDC providers independently verify the XRP tx, reach consensus (90s round)
  5. Merkle root stored onchain via Relay contract
  6. DA Layer serves attestation response + Merkle proof
  7. 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.

Source: README.md at commit 8578281

Tools

0
SourceWeft has not read this server's tools yet.

Version history

1
  1. v0.3.0LatestOct 26, 2026

Score

75% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts

    Declare a license in the repository or the registry entry.