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.
- Read an account, its lines, offers and objects now
- Sign and submit transactions
- Subscribe to new ledgers and transactions
- Prices, candles and volume over time
- Holders, rankings, search across all tokens
- NFT collections, pools, trader histories
Client libraries
| Language | Library | Maintained by | Install | Version |
|---|---|---|---|---|
| JavaScript / TypeScript | xrpl.js | XRPL Foundation | npm install xrpl | 5.3.0 |
| Python | xrpl-py | XRPL Foundation | pip install xrpl-py | 5.2.0 |
| Java | xrpl4j | XRPL Foundation | org.xrpl:xrpl4j-core (Maven) | 3.3.0 |
| Go | xrpl-go | Peersyst | go get github.com/Peersyst/xrpl-go | 0.3.1 |
| C++ | libxrpl | XRPL Foundation (part of rippled) | built with rippled | — |
| Rust | xrpl-rust | XRPL Foundation; not yet on xrpl.org’s list | cargo add xrpl-rust | 1.3.0 |
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
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/previewtakes 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.