rippled: The C++ Node Software for the XRP Ledger
Decentralized cryptocurrency blockchain daemon implementing the XRP Ledger protocol in C++
At a glance
- What is it?
- rippled (also called xrpld) is the open-source C++ server software that runs the XRP Ledger network. Operators run it to participate in consensus, serve API requests, or provide full history. It is maintained by Ripple and the XRPLF open-source community under the ISC license.
- Who is it for?
- rippled is the reference implementation for running an XRP Ledger node. It is appropriate for operators who need to validate transactions, serve API requests at high volume, or provide full ledger history.
- Can I use it commercially?
- Yes. ISC is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly C++, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What xrpld Does and Who Runs It
The XRP Ledger is a decentralized payment network. The server software that powers it is named `xrpld`, built from the `rippled` repository. The README describes three operator roles. Validators participate in consensus and vote on which transactions get included in each ledger. API servers answer queries from applications. Full history servers store the complete ledger history rather than only recent data.
The README notes a fourth mode that no longer exists in rippled itself: Reporting Mode has been replaced by Clio, a separate server designed for high-throughput API serving. Operators who were running rippled in reporting mode should migrate to Clio.
The consensus algorithm the network uses is described in the README as Byzantine Fault Tolerant. It settles transactions in 4 to 5 seconds at up to 1500 transactions per second, according to the README. These properties are what distinguish the XRP Ledger from proof-of-work networks, where finality takes minutes.
Building rippled from Source
The README points to `BUILD.md` for the full build instructions rather than reproducing them inline. The repository provides multiple build paths. A CMake-based build is the standard method. Nix flake support is also provided for reproducible builds.
The repository layout documents the relevant directories:
./bin Scripts and data files for XRPL developers
./Builds Platform-specific guides for building xrpld
./docs Source documentation files and doxygen config
./cfg Example configuration files
./src Source code
./crates Rust source codeThe presence of a `./crates` directory with a `rust-toolchain.toml` file indicates that some components are written in Rust alongside the primary C++ codebase. The `conanfile.py` and `conan.lock` files show that C++ dependency management uses Conan.
An OpenSUSE security engineer performed a public code review in 2025, finding two CVEs. The full review is linked from the README at security.opensuse.org. Configuring connection limits, which the README treats as a required step for production deployments, is documented in `doc/max_connections.md`.
XRP Supply, Transaction Fees, and the Consensus Model
The README states that 100 billion XRP were created when the ledger began, and no more will ever be created. The available supply decreases over time as small amounts are destroyed to pay transaction fees.
This design contrasts with proof-of-work networks like Bitcoin, where new supply is created on a schedule through block rewards. The XRP Ledger has no mining. Consensus is reached by a set of validators that each maintain their own Unique Node List (UNL). The README does not document the UNL configuration in detail; that is covered in the external documentation at xrpl.org.
Cryptographic signing supports both ECDSA (the same scheme used by Bitcoin) and Ed25519. The README notes the extensible design allows adding or disabling algorithms as cryptographic standards evolve.
On-Ledger Features Beyond Basic Payments
The README documents several payment primitives available as first-class protocol features. Escrow holds XRP until a time condition or cryptographic condition is met. Checks work like traditional paper checks: the recipient must claim them. Payment Channels allow high-frequency micropayments off-chain with periodic settlement.
The protocol also includes a decentralized exchange built into the ledger itself. The README describes it as able to 'settle long, cross-currency payment paths and exchanges of multiple currencies in atomic transactions'. This is relevant for developers building currency bridge applications on the ledger, since the exchange is a protocol primitive rather than a smart contract layer.
There is no Turing-complete smart contract system in rippled. The README does not mention smart contracts; the feature set is a defined set of transaction types rather than a programmable execution environment.
Clio as the API Layer and Where rippled Fits
The README explicitly recommends Clio for operators who want to run an API server or full history server. Clio replaced the reporting mode that was previously part of rippled. This split is a significant architectural decision: the consensus-participating node and the API-serving node are now separate software.
For developers building applications on the XRP Ledger, this means they typically interact with a Clio server rather than rippled directly. rippled is the infrastructure layer; Clio is the query layer. Running both gives full capability, but the README says to 'take a look at Clio' when the goal is API serving.
The ISC license permits commercial use and modification with minimal restrictions. The license is more permissive than GPL and closer to MIT in practical terms.
The last push to the repository was on 2026-09-27, and the most recent release is 3.4.0, published on 2026-09-17.
Source Code Layout and Contributor Starting Points
The README suggests several entry points for contributors learning the codebase. The markdown files under `src/xrpld/**/*.md` explain subsystems. The levelization document at `.github/scripts/levelization` shows the internal dependency graph between components.
The application's architecture centers on an `ApplicationImp` class that implements an `Application` interface. Almost every component receives an `Application&` reference in its constructor and stores it as `app_`. This is the dependency injection spine of the entire application.
The repository uses several external codebases included via `git-subtree` in subdirectories under `src/`. Each such directory has its own README. Doxygen configuration is in `docs/` and the generated documentation is published at `xrplf.github.io/rippled`.
Editorial conclusion
rippled is the reference implementation for running an XRP Ledger node. It is appropriate for operators who need to validate transactions, serve API requests at high volume, or provide full ledger history. Developers who only need to query ledger data or build on top of the API should look at Clio, the separate API server that replaced xrpld's reporting mode. Before deploying rippled, read the build instructions in BUILD.md and the security review at security.opensuse.org that identified two CVEs, since connection limit configuration is a required hardening step.
Frequently asked questions
What is the difference between rippled and Clio for the XRP Ledger?
rippled (xrpld) is the core node software that participates in consensus and maintains the ledger. Clio is a separate API server that replaced xrpld's reporting mode and is recommended for operators who need to serve API requests or provide full ledger history without running a validator.
What license does rippled use?
rippled is released under the ISC license, which is a permissive open-source license similar to MIT that permits commercial use, modification, and redistribution.
Are there known security vulnerabilities in rippled?
The README references a public code review by an OpenSUSE security engineer in 2025 that found two CVEs. The full review is linked from the README at security.opensuse.org. The README states that configuring connection limits is a required hardening step, documented in doc/max_connections.md.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/xrplf-rippled)
Community notes