Introduction
The Single Asset Vault (SAV, XLS-65) and Lending Protocol (XLS-66) together introduce the foundational infrastructure for on-ledger liquidity aggregation and lending within the XRPL ecosystem.
The SAV enables depositors to aggregate XRP, IOU, or MPT assets into a shared vault represented by Multi-Purpose Token (MPT) ownership shares.
The Lending Protocol, built atop these vaults, allows creation of loans, repayments, and deletions tied to vault liquidity through LoanSet, LoanPay, and LoanDelete transactions.
This report summarizes a comprehensive performance evaluation of both amendments under high-load scenarios. Tests were executed in RippleX’s private performance network to quantify throughput, consensus latency, CPU/memory utilization, and ledger growth impacts.
The results demonstrate that the SAV and Lending amendments are performant and stable, with predictable memory growth linked to ledger object expansion, and that both features can be safely activated without compromising the 5-second consensus target.
Testing Objectives
The primary objective of this testing was to assess the performance of lending protocol transactions and their impact on consensus processing, particularly under high-load conditions. Specifically, we aimed to:
- Evaluate the capacity limits of the XRPL when processing lending protocol transactions alongside existing payment transactions.
- Validate SAV and Lending transaction throughput across XRP, IOU, and MPT asset types.
- Measure CPU and memory overhead introduced by new ledger objects (
Vault,Loan,LoanBroker,Vault pseudo-account). - Identify potential bottlenecks or performance degradation caused by lending protocol related operations.
- Ensure that the network maintains a 5-second consensus latency threshold, even under the most demanding scenarios.
Testing Methodology
Capacity Planning
To measure the maximum performance impact of integrating lending protocol transactions, we used the 5-second consensus latency limit as the benchmark for network capacity. This threshold ensures that the network remains in optimal condition while processing a mix of lending protocol, single asset vault and standard payment transactions. During testing, we monitored both ledger and consensus performance to determine whether the network load exceeded this latency criterion. Instances where the network surpassed this limit are referred to as “overvalidation” in the results below.
Test Environment
Our testing infrastructure simulated a private XRPL environment with 9 nodes, matching Ripple's MainNet in terms of hardware specifications. The key features of this environment are the following.
-
Network Setup
- 5 function as validator nodes
- 4 serve as client P2P nodes, interfacing with load generators
- Uniform System Specifications: Each system mirrors the hardware specifications found in Ripple’s MainNet rippled infrastructure. Specifically, they are hosted on AWS's EC2 instance type, z1d.2xlarge, boasting 8 CPU cores, 64GB RAM, and 300GB NVMe SSD storage, dedicated to the rippled database.
- Network Configuration: All nodes operate within the same AWS region and are interconnected through a shared LAN.
- Load Submission: Between 1 and 4 load servers are actively engaged in transmitting transactions to the 4 P2P nodes.
- Account Setup: A total of 250K synthetic accounts were established, built atop a public ledger synchronized from the MainNet as of Mar 11th, 2025. Provisions were made in the simulation logic to ensure the uniqueness of source and destination accounts for every consensus cycle.
- Configuration Continuity: The rippled configuration file was sourced directly from a Ripple MainNet validator. While the core configurations remained unchanged, requisite modifications were made to align with the specific needs of our environment.
Test Data Setup
Permissioned Domain
To simulate the most computationally intensive ledger path, all lending activities were executed within a permissioned domain environment, ensuring every transaction incurred credential verification and domain access checks at runtime.
A synthetic dataset was constructed to model large-scale permissioned lending behavior:
-
Credential Issuers – A pool of domain-authority accounts issued credentials through
CredentialCreatetransactions. -
Subjects (Participants) – All participating accounts accepted credentials via
CredentialAccept, establishing verified identities under their respective domains. -
Permissioned Domains – Domain-owner accounts created
PermissionedDomainSetledger entries, each configured to authorize up to 10 unique credentials (the protocol’s maximum).
As a result, every Vault, Broker, and Borrower operated under enforced domain constraints. Each loan transaction therefore required on-ledger verification of PermissionedDomain and Credential objects, — amplifying computational and I/O load during consensus.
Multi-Purpose Token
To support MPT-backed vault testing, the environment was pre-initialized with Multi-Purpose Token (MPT) objects following the XLS-33 specification.
A subset of accounts acted as MPT issuers, each creating several token issuances with authorization and transfer flags enabled to simulate real-world tokenization complexity. After creation, all remaining accounts were authorized as holders and received distributed token balances through MPT-based Payment transactions. This process populated the ledger with a large number of active MPTokenIssuance and MPToken objects, ensuring realistic token distribution and directory-node activity across the network.
In summary, MPT generation followed this sequence:
-
Select issuer accounts to create new MPT issuances (
MPTokenIssuanceCreate). -
Enable authorization (
lsfMPTRequireAuth) to require holder registration. -
Authorize holders using
MPTokenAuthorizetransactions. Distribute tokens via standard
Paymentoperations referencingmpt_issuance_id.Populate ledger with MPT balances to be used by vault depositors and borrowers in lending operations.
Lending Protocol
To comprehensively evaluate the Lending Protocol’s performance, a high-complexity, mixed-role dataset was created to emulate realistic cross-flows between depositors and borrowers.
The database comprised 250,000 total accounts, distributed across four load servers.
| Role | Count | Notes |
|---|---|---|
| Vault Owners (also LoanBrokers) | 8,000 | Each account owns one or more Vaults and acts as the associated LoanBroker. |
| Depositors | 130,000 | Provide liquidity through VaultDeposit; some also serve as borrowers (dual-role). |
| Borrowers | 130,000 | Create loans via LoanSet and make repayments via LoanPay. |
| Dual-role overlap (Depositor ∩ Borrower) | 18,000 | Participate in both sides of lending, creating circular fund flows that increase ledger contention. |
Each Vault services 15–30 depositors and 10–15 borrowers, deliberately maximizing DirectoryNode update and SHAMap node insertion.
Vault Setup
- Vault Types – Three asset configurations were deployed:
- XRP-based, IOU-based, and MPT-based Vaults.
- Privacy – All Vaults were flagged as Private, inheriting the domain’s permission rules.
- Precision – Asset scales were configured to their spec defaults (
scale = 0for XRP/MPT,scale = 6for IOU). - Liquidity Initialization – Vault owners funded liquidity pools via
VaultDeposit; depositors received MPT share tokens representing proportional ownership. - Cross-Vault Distribution – Depositors diversified across vaults to trigger higher inter-vault transaction frequency and hash-tree activity.
Loan Setup
To exercise all high-cost code paths in the protocol, loans were generated to reflect the most computation-heavy configuration supported by the spec:
- Multisign Loan Creation Each loan was established through LoanSet, signed by the LoanBroker (Vault Owner) and Borrower, validating both Credential and domain access permissions.
-
Sample Complex Loan Terms with overpayment flags
- InterestRate: 6 %
- LateInterestRate: 8 %
- OverpaymentInterestRate: 2 %
- CloseInterestRate: 1 % (prepayment penalty)
- OverpaymentFee: 0.1 %
- ServiceFeeRate: 0.2 %
- ManagementFeeRate: 15 %
- PaymentInterval: 10000000
- PaymentTotal: 1000
-
Overpayment Coverage
- All loans were configured with both
lsfLoanOverpayment(Loan flag) andtfLoanOverpayment(LoanPay flag) set, forcing every payment to execute the overpayment branch of the protocol. - Each transaction recalculates the overpayment interest, deducts fees, applies the remaining amount to principal, and re-amortizes the remaining loan schedule—representing a computationally intensive path in the Lending Protocol.
- All loans were configured with both
Load Modeling
#1 Payment Baseline
- A mixed load of standard payment transactions involving both the AMM-based and LOB-based decentralized exchanges (DEX).
- This scenario establishes a baseline for network performance under typical MainNet conditions.
We integrated a realistic payment distribution, encompassing various transaction types:
- XRP-XRP Transaction
- IOU-Direct Transaction
- LOB 1path1step transaction
- LOB 3path3step transaction
- LOB 6path8step transaction
| Scenario | Ledger throughput per second | Mean Ledger Publishing Latency (s) | Response Time (ms) | Over Validation | CPU Utilization (%) | Memory Usage (GB / Total) |
|---|---|---|---|---|---|---|
| Payment Mixload | 159.31 | 3.96 | 9.79 | 9 out of 924 | 12 | 16/64 GB |
#2 Lending Protocol and Single Asset Vault Transactions
- This test phase focused on evaluating the end-to-end performance of all core transaction types introduced by the Single Asset Vault (SAV, XLS-65) and Lending Protocol (XLS-66) amendments.
XRP
| Transaction Type | Ledger throughput per second | Mean Ledger Publishing Latency (s) | Response Time (ms) | Over Validation | CPU Utilization (%) | Memory Usage (GB / Total) |
|---|---|---|---|---|---|---|
| VaultDeposit | 328.35 | 3.30 | 4.07 | 1 out of 925 | 16 | 23/64GB |
| VaultWithdraw | 303.56 | 3.96 | 4.21 | 1 out of 924 | 17 | 23/64GB |
| VaultCreate | 255.52 | 3.92 | 4.56 | 1 out of 935 | 14 | 24/64GB |
| LoanPay | 242.53 | 3.90 | 3.67 | 1 out of 940 | 16 | 25/64 GB |
| LoanSet | 210.36 | 3.98 | 5.34 | 3 out of 920 | 16 | 26/64 GB |
| LoanDelete | 185.42 | 4.02 | 5.67 | 3 out of 905 | 17 | 26/64 GB |
IOU
| Transaction Type | Ledger throughput per second | Mean Ledger Publishing Latency (s) | Response Time (ms) | Over Validation | CPU Utilization (%) | Memory Usage (GB / Total) |
|---|---|---|---|---|---|---|
| VaultDeposit | 268.33 | 4.08 | 5.36 | 9 out of 897 | 16.5 | 26/64 GB |
| VaultWithdraw | 238.77 | 3.95 | 4.64 | 4 out of 926 | 16 | 27/64 GB |
| VaultCreate | 230.06 | 3.11 | 6.51 | 4 out of 1176 | 16 | 27/64 GB |
| LoanPay | 170.70 | 3.82 | 3.63 | 1 out of 957 | 14 | 26/64 GB |
| LoanSet | 166.57 | 3.97 | 5.59 | 9 out of 920 | 16 | 28/64 GB |
| LoanDelete | 150.64 | 4.18 | 5.88 | 5 out of 900 | 17 | 27/64 GB |
MPT
| Transaction Type | Ledger throughput per second | Mean Ledger Publishing Latency (s) | Response Time (ms) | Over Validation | CPU Utilization (%) | Memory Usage (GB / Total) |
|---|---|---|---|---|---|---|
| VaultDeposit | 269.98 | 4.00 | 5.28 | 2 out of 914 | 16 | 24/64 GB |
| VaultWithdraw | 205.96 | 3.83 | 3.94 | 2 out of 957 | 14 | 25/64GB |
| VaultCreate | 236.68 | 3.94 | 4.16 | 1 out of 928 | 16 | 25/64GB |
| LoanPay | 178.12 | 3.70 | 3.45 | 1 out of 987 | 13 | 25/64GB |
| LoanSet | 207.51 | 3.94 | 5.27 | 4 out of 928 | 15 | 27/64GB |
| LoanDelete | 165.21 | 4.05 | 5.45 | 3 out of 910 | 16 | 26/64 GB |
#3 Lending + Payment Mixload capacity
- Simulated a realistic maximum load scenario combining standard payment and lending protocol transactions.
- Replaced 60% of baseline payment throughput with lending-heavy operations (LoanSet and LoanPay) across XRP, IOU, and MPT assets.
- Mixed remaining 40% with payment, AMM, and DEX transactions to emulate mainnet traffic diversity.
- Conducted 1-hour preliminary testing to benchmark throughput and latency under blended load.
- Performed extended longevity testing to monitor system stability, CPU utilization, and memory growth trends.
Transaction Execution Realistic Percentage:
- 9.72% XRP-XRP Payment
- 9.72% IOU Direct Payment
- 9.72% AMM/LOB 1path1step Payment
- 0.66% AMM/LOB 3path3step Payment
- 9.89% AMM/LOB 6path8step Payment
- 12.5% AMM/LOB IOU Direct Payment
- 10% XRP LoanSet Transaction
- 10% XRP LoanPay Transaction
- 10% IOU LoanSet Transaction
- 10% IOU LoanPay Transaction
- 10% MPT LoanSet Transaction
- 10% MPT LoanPay Transaction
| Scenario | Ledger throughput per second | Mean Ledger Publishing Latency (s) | Response Time (ms) | Over Validation | CPU Utilization (%) | Memory Usage (GB / Total) |
|---|---|---|---|---|---|---|
| Lending Mixload - 1h | 147.99 | 3.97 | 14.99 | 4 out of 921 | 15 | 22/64GB |
| Lending Mixload - 12h | 152.83 | 3.92 | 12.03 | 19 out of 11023 | 15 | 26/64GB |
| Lending Mixload - 12h continued | 154.92 | 3.87 | 10.56 | 12 out of 11154 | 15 | 32/64GB |
#4 LoanSet Mixload capacity
| Scenario | Ledger throughput per second | Mean Ledger Publishing Latency (s) | Response Time (ms) | Over Validation | CPU Utilization (%) | Memory Usage (GB / Total) | Average Node Memory Growth |
|---|---|---|---|---|---|---|---|
| LoanSet 1h Target 45 TPS | 46.13 | 3.56 | 3.45 | 0 out of 1027 | 9 | 19/64GB | 4.43GB |
| LoanSet 1h Target 90 TPS | 90.95 | 3.62 | 3.62 | 1 out of 1011 | 10 | 21/64GB | 4.95GB |
| LoanSet 1h Target 135 TPS | 132.10 | 3.67 | 2.19 | 0 out of 998 | 11 | 23/64GB | 5.53GB |
| LoanSet 1h Target 180 TPS | 180.83 | 3.78 | 4.24 | 1 out of 968 | 12 | 24/64GB | 5.61GB |
| LoanSet 1h Target 200 TPS | 193.83 | 3.90 | 4.97 | 1 out of 938 | 13 | 24/64GB | 5.77GB |
| LoanSet 1h Target 225 TPS | 227.23 | 4.16 | 5.84 | 21 out of 880 | 18 | 25/64GB | 6.74GB |
LoanSet Memory Growth Graph
The figure below illustrates the memory growth trend observed during continuous LoanSet transaction execution at increasing throughput targets.

Lending Mixload System Utilization Graph
CPU Usage
RAM Usage
Conclusion
The performance evaluation of the Lending Protocol (XLS-66) and Single Asset Vault (XLS-65) demonstrates that both amendments deliver high throughput across XRP, IOU, and MPT asset types while consistently maintaining consensus stability within the 5-second ledger target.
However, memory growth remains the primary long-term risk factor under sustained lending workloads. During extended 24-hour Lending Mixload performance tests, RAM utilization exceeded 30 GB, driven by the cumulative expansion of SHAMap nodes from continuous LoanSet transactions. Although this remains below the 64 GB capacity of our test nodes, it raises potential concerns for validators operating with 32 GB RAM, where prolonged high-volume lending activity could approach system limits.
To mitigate these risks, SHAMap node optimization and ledger object pruning should be prioritized in future rippled initiatives. These improvements will curb in-memory state growth and enhance long-term sustainability as new high-complexity features are introduced.
From a deployment perspective, the current Lending Mixload throughput of ~152 TPS is sufficient to support near-term production needs and customer-scale adoption. Continued optimization efforts will further strengthen the ledger’s ability to sustain heavy workloads such as lending, AMM operations, and multi-asset payments.


Top comments (0)