* Update definitions.json * add new st types * add tests * add XChainClaim tx * add XChainCommit tx * add XChainCreateBridge tx * add XChainCreateClaimID tx * update definitions.json * rename Bridge -> XChainBridge in binary codec, fix tests * rename Bridge -> XChainBridge in models * add codec support for XChainAddAttestation * add XChainAddAttestation model * undo debugging change * fix linting issues * update definitions.json for new rippled code, add new tests/update old tests * add/update models * update history * update binary-codec * add XChainModifyBridge model * update RPCs * update to latest rippled * more fixes * fix definitions.json * fix spacing * update definitions.json to avoid conflict with amm * update definitions.json to resolve amm conflicts * audit code * more updates * update rpcs * switch to beta version * add destination tag to XChainClaim * rename IssuedCurrency -> Issue to match rippled * update Issue form * fix account object filters * fix issue from typing * fix LedgerEntry types * fix attestation destination type * Update definitions.json * rename XChainAddAttestation -> XChainAddAttestationBatch * add XChainAddClaimAttestation * add XChainAddAccountCreateAttestation * remove XChainAddAttestationBatch * update definitions * fix attestation txns * fix attestation object * add validate for new txs * add Bridge ledger object * add XChainOwnedClaimID ledger object * add XChainOwnedCreateAccountClaimID ledger object * update account_objects * update models to latest rippled * fix minor issues * fix bridge ledger_entry * add XChainModifyBridge flag * Update definitions.json * add rbc tests for the new txs * update validateXChainModifyBridge * add validate methods to other xchain txs * fix isXChainBridge * fix isIssue typing * fix model types * update changelog * switch prepare to prepublishOnly * add docs * fix AccountObjectsType filter * export common types * fix account_objects filter * update LedgerEntry * add sidechain faucet info * add snippet * improve snippet * fix spacing issues * update ledger_entry * remove AMMDelete tests for now * Update definitions.json * fix unit tests * convert createValidate script to JS * remove unneeded linter ignores * respond to comments * more snippet fixes * make validate functions more readable * add getXChainClaimID method to parse metadata * re-add linter rules * clean up common * fix getXChainClaimID test * return undefined for failed tx * test: add model tests for new sidechain transactions (#2059) * add XChainAddAttestation tests, fix model * add XChainClaim model tests * add XChainCommit model tests, fix typo * add XChainCreateBridge model tests * add XChainCreateClaimID model tests * add XChainModifyBridge tests * update to most recent version of code * remove XChainAddAttestationBatch tests * add more validation tests * switch createValidateTests to JS
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 v14+) & web browsers (tested for Chrome).
Quickstart
Requirements
- Node.js v16 is recommended. We also support v14, 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.
