This week saw a significant API enhancement land in rippled — the server_definitions RPC now includes transaction and ledger entry formats and flags, closing a long-requested feature. Meanwhile, xrpl-py received a correctness fix for binary codec field definitions for DynamicMPT and Lending Protocol, and the dev portal shipped a major tutorial restructure covering 423 files.
The biggest shipped change this week is an expansion to the server_definitions API endpoint in rippled. Previously, this endpoint only gave developers information about individual data fields. Now it also includes the full list of valid transaction types, ledger object types, and their associated flags. In practical terms, this means wallet applications, block explorers, and developer tools can ask a running node what transactions are valid and what options they support — without needing a separate hard-coded lookup table. This was one of the most requested developer features and has been tracked since 2024.
A quieter but important fix landed in the Python SDK (xrpl-py): two data field definitions used by the DynamicMPT and Lending Protocol features had incorrect internal numbering. When applications used xrpl-py to build or serialize transactions involving these features, the wrong field code was written into the binary transaction — meaning the data could be misread or misrouted by nodes. The fix corrects the field codes in the codec definition file. If you use xrpl-py with DynamicMPT or Lending Protocol transactions on a test network, updating to the latest version is recommended.
On the infrastructure side, Clio (the API server layer many explorers and apps rely on) fixed a regression that prevented it from starting at all if no cache file existed on disk. Nine Clio PRs merged this week, mostly focused on code quality and tooling modernization. The developer portal also received a large tutorial reorganization and new step-by-step guides for deleting XRPL accounts, including updated requirements around NFT-related deletion blockers.
For ongoing updates, follow @XRPLF and @RippleXDev on X.
server_definitions now exposes formats, fields, and flags — rippled#6321 (+1169/-503, 29 files) merges the work tracked by #5151, adding full transaction and ledger entry format definitions — including flags — to the server_definitions RPC response. This is a labelled API Change and directly enables client libraries and tooling to introspect ledger structure without hard-coding formats. Closes a feature request open since 2024. Related: issue #5506 on DeliverMax was also closed this week as out of scope for server_definitions.
Gateway balance now handles MPT correctly — rippled#6143 (+44/-1, labelled API Change, approved by reviewer) fixes the gateway_balances RPC to skip MPT entries rather than failing. The RPC is IOU-specific; the fix ensures MPT token types don't produce incorrect responses.
Vault invariants now tolerate IOU rounding — rippled#6217 (+506/-74) relaxes the invariant checks for Vault Deposit, Withdraw, and Clawback operations on IOUs, allowing a relative tolerance of 1×10⁻¹³ to account for minimal floating-point discrepancy. XRP and MPT tolerances remain zero.
Defensive data length check for WASM output — rippled#6449 adds a size check in EscrowFinish::doApply() ensuring WASM-produced sfData cannot exceed the protocol's maximum allowed length before being written to the ledger.
Confidential MPT equality proof now uses shared r — rippled#6496 (+50/-52) reduces proof size for ConfidentialMPTSend by adopting a shared r parameter for the equality proof. Spec: XLS-0096.
Corrected SField definitions for DynamicMPT and Lending Protocol — xrpl-py#918 (+33/-16) fixes two incorrect field entries in definitions.json: sfMutableFlags was mapped to nth=54 instead of the correct nth=53, causing serialization collisions with sfStartDate, and PreviousPaymentDate was renamed to PreviousPaymentDueDate. These were silent data corruption issues on the write path for anyone using xrpl-py with these features.
Start-without-cache-file bug fixed — clio#2976 (+435/-201, approved after changes) fixes a regression introduced in #2830 that prevented Clio from starting when no cache file was present.
Tutorial information architecture overhaul — xrpl-dev-portal#3245 (+5921/-18560 across 423 files, approved) is a major restructure of the developer portal's tutorial section, resolving the small-window tab selection bug (#3513) in the process.
Account deletion docs updated with new tutorial — xrpl-dev-portal#3529 (+786/-15, 13 files) adds a new tutorial for deleting XRPL accounts with JavaScript and Python code samples, and updates the requirements documentation to cover NFT-related deletion blockers and newer blocker types.
Dev portal devnet entry updates — xrpl-dev-portal#3533 adds entries for Loan, LoanBroker, PermissionedDomain, and Vault to the devnet reset blog and removes the not-enabled tag from PermissionedDomain.
Transactor folder structure reorganized — rippled#6483 (+222/-222, 165 files, approved) renames all tx/transactors subdirectories to lowercase/snake_case and consolidates AMM/Offer directories. Pure refactor, no behavioral changes.
CMake formatter migrated from cmake-format to gersemi — rippled#6486 and rippled#6491 replace the legacy cmake-format tool with gersemi across 28 files in rippled. Clio received the same treatment via clio#2980 and clio#2983.
Build-time acceleration: Git info isolated to single file — rippled#6464 (+131/-59, approved by 2 reviewers) ensures compile-time Git metadata is compiled into only one translation unit, reducing unnecessary recompilation and speeding up incremental builds.
Multiple clang-tidy checks enabled — rippled#6419, #6457, #6459, #6466 and others enable bugprone-empty-catch, bugprone-move-forwarding-reference, bugprone-return-const-ref-from-parameter, and bugprone-sizeof-expression checks, with corresponding code fixes.
WASM module modularized — rippled#6441 (+22/-36, 20 files) cleanly separates the WASM subsystem into its own module.
ripplerpc parameter — rippled#6498 (+58/-324) removes the legacy ripplerpc JSON field from the RPC layer as part of the XLS-0095 rename initiative. Under review.DID, Escrow, and other multi-class files into one-class-per-file. No behavioral changes.View.h/View.cpp into dedicated per-entry-type files, a preparatory step for the Typed Ledger Entry Views proposal.Transactor template method; rippled#6478 introduces getFeePayer, removes mSourceBalance, and renames mPriorBalance to preFeeBalance across 30 files.VaultList RPC for the Lending Protocol.parseTransactionFlags with string overload (#3224), currency name↔code conversion utilities (#3223), improved validation error messages (#3222), and a Wallet.algorithm property (#3220).ripplerpc parameter removal (XLS-0095) is close to ready; watch for merge as it's a small but targeted API surface change.NotDelegable changes are approved; merge likely soon and will affect delegation behavior for those transaction types.Path limits question — Community member @shortthefomo opened a discussion (#6499) asking why XRPL's payment path limits (MaxPathSize=6, MaxPathLength=8) are set to their current values and whether they warrant documentation or revisiting given modern AMM pool complexity.
Blackholed accounts & Token Escrow — XRPL-Standards discussion #488 explores whether blackholed accounts could ever use Token Escrow through a future fix amendment or Smart Escrow. Core contributors noted this would require a new amendment.
Trust-line eligibility for commerce — A developer posted xrpl.js discussion #3219 describing an approach for issuer-aware trust-line threshold verification (RLUSD example), proposing standardized attestation objects for commerce use cases.
LoanPay delivered_amount — Community member @zgrguric opened rippled#6500 requesting a synthetic delivered_amount field in LoanPay transaction metadata, analogous to the existing field in Payment transactions, to prevent confusion when the applied amount differs from the requested amount.
External contributor burst — Community contributor @slurpyone (not a first-time contributor per the data) submitted four xrpl.js PRs in a single week addressing multiple long-open issues (#1903, #2185, #2698, #3190).
| Metric | Count |
| Repos with activity | 6 |
| rippled PRs merged | 22 |
| rippled PRs opened | 26 |
| xrpl.js PRs merged | 2 |
| xrpl.js PRs opened | 5 |
| xrpl-py PRs merged | 1 |
| xrpl-py PRs opened | 1 |
| xrpl-dev-portal PRs merged | 4 |
| xrpl-dev-portal PRs opened | 6 |
| clio PRs merged | 9 |
| clio PRs opened | 5 |
| XRPL-Standards PRs merged | 4 |
| XRPL-Standards PRs opened | 2 |
| Clio releases | 1 |
| rippled commits this week | 17 |
| xrpl.js commits this week | 2 |
| xrpl-py commits this week | 1 |
| xrpl-dev-portal commits this week | 10 |
| clio commits this week | 11 |
| XRPL-Standards commits this week | 4 |