* add apiVersion support to requests and AccountInfoResponse v1/v2 types * fix submitAndWait signature * update docker container README * update tests * fix apiVersion param in wrong position of Client.request * add integ tests * update HISTORY.md * fix request.api_version * update RIPPLED_DOCKER_IMAGE to use v2.1.0 * refactor Client.request signature * update rippled docker image * fix Client.requestAll * update rippled docker image to use v2.1.1 * update README * use import type * fix faucet; unrelated to PR * add api_version v2 support and set as default while providing support for v1 * refactor: add apiVersion to Client * resolve errors * use DeliverMax for isPartialPayment check * update fixtures * resolve lint errors * add API v1 support for isPartialPayment * update CONTRIBUTING * update accountTx JSDoc * revert deleted JSDoc comments in accountTx * update JSDoc for account_info response * only use client.apiVersion in Client.request() * add ledger_hash * remove API v1 comment from v2 model * update meta_blob JSDoc * delete second AccountTxRequest matching * add close_time_iso * set close_time_iso as optional field * add meta_blob to BaseResponse * Revert "add meta_blob to BaseResponse" This reverts commit 89794c629dc515915e28752d7c2552bfeab266a3. * use DEFAULT_API_VERSION throughout call stack * improve JSDoc explanation of ledger_index * remove this.apiVersion from getLedgerIndex * refactor Client.request() * refactor RequestManger.resolve() * add TODO to fix TxResponse type assertion * use @category ResponsesV1 for API v1 types * refactor accountTxHasPartialPayment() * remove TODO
xrpl.js
A JavaScript/TypeScript library for interacting with the XRP Ledger
This is the recommended library for integrating a JavaScript/TypeScript app with the XRP Ledger, especially if you intend to use advanced functionality such as IOUs, payment paths, the decentralized exchange, account settings, payment channels, escrows, multi-signing, and more.
➡️ Reference Documentation
See the full reference documentation for all classes, methods, and utilities.
Features
- Managing keys & creating test credentials (
Wallet&&Client.fundWallet()) - Submitting transactions to the XRP Ledger (
Client.submit(...)& transaction types) - Sending requests to observe the ledger (
Client.request(...)using public API methods) - Subscribing to changes in the ledger (Ex. ledger, transactions, & more...)
 - Parsing ledger data into more convenient formats (
xrpToDropsandrippleTimeToISOTime) 
All of which works in Node.js (tested for v16+) & web browsers (tested for Chrome).
Quickstart
Requirements
- Node.js v16 is recommended. We also support v18 and v20. Other versions may work but are not frequently tested.
 
Installing xrpl.js
In an existing project (with package.json), install xrpl.js with:
$ npm install --save xrpl
Or with yarn:
$ yarn add xrpl
Example usage:
const xrpl = require("xrpl");
async function main() {
  const client = new xrpl.Client("wss://s.altnet.rippletest.net:51233");
  await client.connect();
  const response = await client.request({
    command: "account_info",
    account: "rPT1Sjq2YGrBMTttX4GZHjKu9dyfzbpAYe",
    ledger_index: "validated",
  });
  console.log(response);
  client.disconnect();
}
main();
For a more in-depth example, you can copy/forking this Code Sandbox template!
https://codesandbox.io/s/xrpl-intro-pxgdjr?file=/src/App.js
It goes through:
- Creating a new test account
 - Sending a payment transaction
 - And sending requests to see your account balance!
 
Case by Case Setup Steps
If you're using xrpl.js with React or Deno, you'll need to do a couple extra steps to set it up:
- Using xrpl.js with a CDN
 - Using xrpl.js with 
create-react-app - Using xrpl.js with 
React Native - Using xrpl.js with 
Vite React - Using xrpl.js with 
Deno 
Documentation
As you develop with xrpl.js, there's two sites you'll use extensively:
- xrpl.org is the primary source for:
- How the ledger works (See Concepts)
 - What kinds of transactions there are (Transaction Types)
 - Requests you can send (Public API Methods)
 - Tutorials for interacting with various features of the ledger (Tutorials)
 
 - js.xrpl.org has the reference docs for this library
 
Mailing Lists
If you want to hear when we release new versions of xrpl.js, you can join our low-traffic mailing list (About 1 email per week):
If you're using the XRP Ledger in production, you should run a rippled server and subscribe to the ripple-server mailing list as well.
Asking for help
One of the best spots to ask for help is in the XRPL Developer Discord - There's a channel for xrpl.js where other community members can help you figure out how to accomplish your goals.
You are also welcome to create an issue here and we'll do our best to respond within 3 days.
