Insights

XRPL Developer Resources: APIs, SDKs & Tools

Building on the XRP Ledger means talking to two layers: the ledger itself, through a server and a client library, and an index that has already read every ledger, for anything with history. This is what each layer offers, which library fits which language, and where to test for free.

Your app
The ledger: servers and a client library
  • Read an account, its lines, offers and objects now
  • Sign and submit transactions
  • Subscribe to new ledgers and transactions
xrpl.js, xrpl-py, xrpl4j, xrpl-go against any XRP Ledger server
An index: a data API
  • Prices, candles and volume over time
  • Holders, rankings, search across all tokens
  • NFT collections, pools, trader histories
xrpl.to’s API: 339 endpoints, free to start
The ledger answers what is true now and takes your transactions; an index answers anything that needs history or a view across many accounts. Most apps use both.

Client libraries

LanguageLibraryMaintained byInstallVersion
JavaScript / TypeScriptxrpl.jsXRPL Foundationnpm install xrpl5.3.0
Pythonxrpl-pyXRPL Foundationpip install xrpl-py5.2.0
Javaxrpl4jXRPL Foundationorg.xrpl:xrpl4j-core (Maven)3.3.0
Goxrpl-goPeersystgo get github.com/Peersyst/xrpl-go0.3.1
C++libxrplXRPL Foundation (part of rippled)built with rippled—
Rustxrpl-rustXRPL Foundation; not yet on xrpl.org’s listcargo add xrpl-rust1.3.0
From xrpl.org’s list, which also names community libraries for PHP and Ruby and two lighter JavaScript ones (xrpl-client, xrpl-accountlib). Versions as published on 16 October 2026.

One trap in every language: a secret key’s algorithm. A seed starting with sEd is ed25519, any other s… seed is secp256k1. Code that forces one algorithm onto every seed derives a different, wrong address for the other kind, with no error. Let the library read the algorithm from the seed, and check the address it gives you.

Servers

A client library talks to an XRP Ledger server over WebSocket or JSON-RPC. Public servers run by Ripple and the community answer anyone for free and are the place to start (xrpl.org: public servers). They keep only recent history unless they are full-history servers, and they limit how much one client may ask. xrpl.to also passes the ledger’s read commands through its API at POST /v1/rpc, so one base URL covers both layers (API guide).

Data

The ledger has no price history, no rankings and no search. xrpl.to’s API (339 endpoints) keeps all of that: token prices and candles, holders, trades, AMM pools, NFT collections and trader histories, with live updates over WebSocket. Guides: tokens, price history, DEX, AMM, NFTs, WebSocket.

Letting users sign

An app that moves a user’s funds should never hold the user’s key. It builds the transaction and hands it to the user’s wallet to sign: Xaman on a phone through its own SDK and a QR code, a browser extension such as Crossmark or GemWallet, or any wallet that speaks WalletConnect, such as Joey. The wallet guide compares them.

Testing for free

  • Testnet. A full copy of the XRP Ledger whose XRP has no value; its faucets hand it out free (xrpl.org: faucets, or xrpl.to’s faucet).
  • The xrpl.to Testnet sandbox. Ready-made transactions of every type against tokens, pools and NFT collections kept alive on Testnet, signed in the browser: xrpl.to/testnet.
  • A dry run on Mainnet. POST /v1/submit/preview takes a transaction and returns what the ledger would do with it, without submitting it.

Questions

Which programming languages can I use with the XRP Ledger?
xrpl.org lists libraries for JavaScript and TypeScript, Python, Java, Go, C++, PHP and Ruby, and a Rust library is maintained under the XRPL Foundation too.
Do I need to run my own XRP Ledger server?
No. Public servers answer requests for free and are fine to start with; for production, run your own or use a provider, since public servers limit how much one client may ask.
How do I test without real XRP?
Use the XRP Ledger Testnet: its faucet gives free test XRP, and the xrpl.to Testnet sandbox signs and submits transactions in the browser against a populated network.