A high-volume week headlined by 34 rippled PRs merged to develop — dominated by bug fixes across vault/lending accounting, AMM, Permissioned DEX, and MPT/DEX pathfinding. In xrpl4j, Single Asset Vault (XLS-65) support was merged to main as a +6,351-line addition (pending a Maven Central release). The xrpl.js library merged two fixes to main addressing a cross-network replay risk and an Amount.toJSON() buffer mutation bug (pending an npm release). On the developer portal, a revamped transaction types landing page, improved faucet page, and home page refactor all merged. Clio published release candidate 2.8.0-rc1 and merged 11 CI/tooling PRs upgrading to LLVM 21.
This was one of the busier weeks for the XRP Ledger's core server software (rippled), with 34 changes merged — up from 26 last week. The dominant theme was fixing edge cases in the vault, lending, and trading features that are being prepared for future releases. Several fixes addressed situations where internal math could lose precision — imagine calculating a loan payment and the rounding being off by a tiny amount, but that tiny amount causing the system to reject the transaction entirely. These fixes ensure the math stays accurate even at extreme values. Other fixes addressed the decentralized exchange (DEX) code: making sure trade permissions are properly checked, frozen assets correctly block trading, and expired credentials trigger proper cleanup. None of these changes are live yet — they're all on the development branch and will require a formal release before they reach the network.
For developers building on XRPL, there was notable progress across multiple tools — but with an important caveat: SDK changes this week were merged to each library's main branch and have not yet been published as installable releases. The Java SDK (xrpl4j) merged full support for the Single Asset Vault feature (XLS-65); once xrpl4j cuts a Maven Central release, Java developers will be able to build applications that create, manage, and interact with tokenized vaults — a building block for DeFi applications on XRPL. The JavaScript library (xrpl.js) merged two fixes (pending an npm release): one where calling a function twice on the same transaction amount could give different results (a data corruption risk), and another where a failed server connection could silently drop network identification from transactions, potentially making them valid on the wrong network. On the documentation side at xrpl.org, the transaction types reference page was redesigned with category-based navigation so developers can find the right transaction type more easily, and the testnet faucet page now lets you refill an existing test wallet address and request a specific amount of test XRP instead of only creating new wallets. Clio, the API server that many applications use to query the ledger, published a release candidate for version 2.8.0 and also added the option to disable automatic log file rotation — useful for operators who manage logs through external tools.
For ongoing updates, follow @XRPLF and @RippleXDev on X, or check the XRPLF GitHub repos directly.
Note: All rippled changes below were merged to the develop branch and are not yet live on the network. A tagged release is required for any change to reach production.
Note: SDK PRs below were merged to each library's main branch. They become available to application developers only after a tagged release is published (npm for xrpl.js, Maven Central for xrpl4j, PyPI for xrpl-py). No SDK releases appear in this week's data, so all SDK items are merged-but-pending-release.
fixCleanup3_2_0 amendment entry for the upcoming release. rippled#7037 (+1/−0, trivial).NoModifiedUnmodifiableFields to handle all ledger entries using a new SOEConstant annotation in SOTemplate. Gated behind InvariantsV1_1. rippled#7029 (+571/−420, 7 files).weakInvariantCheck from the global AMMInvariant into per-transaction logic. rippled#7032 (+103/−8, 8 files).Delegate object stored in both directories — Delegate objects are now discoverable from both delegating and authorized account directories for proper deletion. Part of PermissionDelegationV1_1 (not yet voting). rippled#6681 (+296/−36, 8 files).TxTest — Introduces a new test framework for transactors, intended to eventually replace beast-based transaction tests. Contributed by community member @a1q123456. rippled#6537 (+2,177/−2, 12 files).fixCleanup3_2_0. rippled#7057 (+2,843/−136, 17 files).canTrade() checks in BookStep, MPTAmount overflow guard, valid STPathSet decoding enforcement, AMM pseudo-account implicit authorization, ValidClawback fix for MPToken, and allowing AMMWithdraw when CanTrade/Transfer is disabled. rippled#7040 (+1,550/−384, 42 files).(1+r)^n − 1 — Fixes catastrophic cancellation in computePaymentFactor at near-zero periodic rates that caused debug-build crashes. Gated behind fixCleanup3_2_0. rippled#7033 (+615/−84, 5 files).checkExtraFeatures for sfCredentialIDs, closing #6912. rippled#7041 (+149/−675, 3 files).account_channels now validates destination_account as string, account_info gravatar URL uses HTTPS, ledger fields validate boolean types. Labeled API Change. Closes #6759 and #6762. rippled#6529 (+328/−71, 17 files).fixCleanup3_2_0. rippled#7050 (+243/−103, 3 files).AMMClawback can now override individual/deep freeze on AMM trust lines. rippled#6959 (+177/−9, 3 files).CreateOffer/Payment now properly deletes expired credentials. rippled#6827 (+301/−8, 3 files).AMMWithdraw — rippled#6989 (+76/−40, 2 files).ValidPermissionedDEX invariant for fully consumed offers — rippled#6736 (+73/−8, 3 files).visitEntry calls. Labeled Amendment. rippled#6609 (+240/−53, 10 files).LoanPay — rippled#6970 (+118/−37, 2 files).readability-identifier-naming clang-tidy check — Massive codebase-wide naming convention enforcement. Contributed by @godexsoft. rippled#6571 (+58,982/−59,038, 1,498 files).keylet::line → rippleState, keylet::fees → feeSettings, keylet::payChan → payChannel, and more. rippled#7059 (+764/−722, 107 files).Throws to LogicErrors — Reverts replacements in code paths outside try-catch protection (Ledger::rawErase, rawInsert, rawReplace, rawTxInsert). rippled#7036 (+5/−41, 2 files).authorized_credentials validation and ExpiredNFTokenOfferRemoval fix amendment rename. rippled#7045 (+31/−39, 7 files).Expected dereference. rippled#6963 (+17/−14, 3 files).boost::coroutine2 cleanup — Replaces deprecated API usage and sanitizer-related build fixes. Contributed by @pratikmankawde. rippled#6977 (+14/−12, 4 files).bugprone-capturing-this-in-member-variable, cppcoreguidelines-use-enum-class, modernize-use-scoped-lock, and more. rippled#7031 (+2,194/−1,889, 259 files).-mcmodel flags to x86_64 in sanitizer builds — Fixes ARM64 ASAN/TSAN CI builds. Contributed by @pratikmankawde. rippled#7049 (+15/−6, 2 files).print-env from XRPLF/actions — Centralizes CI environment printing. rippled#7052 (+4/−58, 6 files).print-env → print-build-env — rippled#7061 (+3/−3, trivial).make_address() calls — Replaces exception-throwing IP parsing with error code handling. clio#3044 (+191/−55, 9 files)..value() to *opt for performance in many places. clio#3054 (+1,148/−731, 239 files).print-env from XRPLF/actions (clio#3053), clang-tidy diff upload (clio#3050), print-env → print-build-env rename (clio#3056), pre-commit hooks update (clio#3057), and automated clang-tidy fix (clio#3047).nightly-20260501 published (development only).TxCategory component and {% tx-category %} markdoc tag. Closes #3339. xrpl-dev-portal#3626 (+1,167/−389, 161 files).python-dotenv 1.2.1→1.2.2 (xrpl-dev-portal#3619).Issue refactor — Refactors Issue from a single immutable into XrpIssue, IouIssue, and MptIssue subtypes with type-safe dispatch. xrpl4j#771 (+1,343/−158, 34 files).Amount type for NUMBER — Models rippled's NUMBER as a Java Amount type. xrpl4j#774 (+638/−0, 6 files).Amount.toJSON() buffer mutation — Consecutive calls on native XRP amounts previously produced different results due to in-place bit mask operations. Now clones the buffer first. Closes #3319. xrpl.js#3330 (+61/−1, 3 files).getServerInfo() swallowing errors — Previously logged errors to console and left networkID undefined, enabling cross-network replay. Now propagates errors and throws on missing network_id. Closes #3321. xrpl.js#3331 (+189/−10, 3 files).rippled: Fix multisign/signfor delegate check (rippled#7064, +144/−3) — Prevents a delegate from signing the transaction it submits on behalf of another account. Newly opened; no reviews yet.
rippled: Rename keylet functions (refactor) (rippled#7059, +764/−722) — Also merged this week (see above), but a related open PR rewrites clang-tidy workflows in a reusable manner (rippled#7062, +190/−216) with comments from Copilot reviews.
rippled: Do not duplicate sanitizer flags (rippled#7058, +174/−302) — Centralizes sanitizer parsing in the Conan profile. Under review with positive initial feedback from @bthomee.
rippled: GTest migration — consensus tests (rippled#7046, +6,267/−835, 41 files) — Large test migration. Currently has merge conflicts and unsigned commit warnings.
rippled: Catch silent IOU precision loss (rippled#7057) — Merged this week, but a related open branch gregtatcam/mpt/assorted-fixes-dev (26 commits ahead) suggests further MPT/DEX fixes are being prepared.
xrpl.js: Better error handling in connections (xrpl.js#3182, +47/−2) — Fixes client hanging when edge-case errors like jsonInvalid are received. Three review rounds.
xrpl-py: Collection of bug fixes (xrpl-py#993, +310/−18, 11 files) — Four security-hardening fixes: redacts sensitive fields in model reprs, prevents seed leakage in Wallet exceptions, fixes IOU underflow serialization, and strengthens validation. Addresses five open issues. Under active development (34 review rounds).
xrpl-py: Confidential MPT support (XLS-96) (xrpl-py#919, +11,199/−648, 47 files) — Draft PR, early exploratory.
xrpl4j: Lending Protocol (XLS-66) (xrpl4j#719, +10,776/−36, 88 files) — Adds LoanBrokerSet, LoanSet, LoanPay, and related transactions. 47 review rounds with active review comments.
xrpl4j: Account permission delegation (XLS-75) (xrpl4j#689, +5,336/−9, 47 files) — 89 review rounds.
xrpl4j: MPT-DEX support (XLS-82) (xrpl4j#704, +6,822/−1,174, 57 files) — Build currently broken; waiting on updated rippled Docker image. 74 review rounds.
xrpl4j: Dynamic MPT (XLS-94) (xrpl4j#780, +2,050/−2, 11 files) — Newly opened.
xrpl-dev-portal: MPT DEX Integration docs (XLS-82) (xrpl-dev-portal#3537, +562/−123, 33 files) — Updates concept and reference docs. Partial review by @mDuo13.
xrpl-dev-portal: Fix amm_info missing request fields (xrpl-dev-portal#3620, +14/−9) — Approved, awaiting merge.
XRPL-Standards: Float host functions and versioning (XRPL-Standards#504, +308/−15) — Adds six new host functions and versioning rules to XLS-0102. 45 review rounds with active discussion.
XRPL-Standards: Host function renames (XRPL-Standards#531) and WASM VM limits (XRPL-Standards#532) — Both targeting XLS-0102.
XRPL-Standards: Reformat XLS-65 specification (XRPL-Standards#463, +690/−509) — Structural cleanup, 22 review rounds.
opensource.ripple.com: Sponsored fees tutorials (opensource.ripple.com#214, +1,860/−4, 18 files) — Python tutorials. Feature not yet on Devnet; currently works with local rippled only.
opensource.ripple.com: ZKP and transfer fee docs (opensource.ripple.com#215, +32/−16) — Documents that transfer fee must be 0 for confidential transfers.
gregtatcam/mpt/assorted-fixes-dev is 26 commits ahead of develop, and multiple MPT/DEX PRs merged this week. More fixes may surface as PRs next week.Rust integration proposal — A new XRPL-Standards discussion proposes incremental Rust integration into xrpld, citing memory safety, thread safety, and compile-time data race prevention as motivations. The proposal describes a phased adoption strategy. Discussion #533
Community contributions in rippled — @pratikmankawde contributed three merged PRs this week: ARM64 sanitizer build fix (rippled#7049), UBSan issue fixes (rippled#6151), and boost::coroutine2 cleanup (rippled#6977). @a1q123456 contributed the new TxTest framework (rippled#6537). @godexsoft contributed the massive readability-identifier-naming enforcement (rippled#6571). Community member @xVet contributed the default reserve update (rippled#6382).
Confidential MPT audit issues closed — 20 issues from an attackathon/audit of confidential MPT functionality (XLS-96) were closed this week after triage. Most were confirmed as non-bugs or already-addressed defensive improvements; several resulted in merged PRs (rippled#7030, rippled#7048).
Clio performance issue filed — A community member reported that account_objects in Clio unconditionally walks NFT pages even when a type filter excludes NFTokenPage, resulting in up to 400 wasted backend reads per request. clio#3060
xrpl4j: Community-contributed alphabetization — Community member @VincenzoRocchi opened xrpl4j#772 to alphabetize the transaction type map. Awaiting conflict resolution.
Compared to last week (April 20–26, 2026):
| Metric | This Week | Last Week | Change |
| Repos with activity | 8 | 8 | flat |
| rippled PRs merged | 34 | 26 | ↑8 |
| rippled PRs opened | 7 | 15 | ↓8 |
| rippled commits | 13 | 17 | ↓4 |
| xrpl.js PRs merged | 2 | 12 | ↓10 |
| xrpl.js PRs opened | 2 | 5 | ↓3 |
| xrpl.js commits | 2 | 5 | ↓3 |
| xrpl-py PRs merged | 1 | 0 | ↑1 |
| xrpl-py PRs opened | 5 | 1 | ↑4 |
| xrpl4j PRs merged | 4 | 1 | ↑3 |
| xrpl4j PRs opened | 7 | 3 | ↑4 |
| xrpl-dev-portal PRs merged | 7 | 4 | ↑3 |
| xrpl-dev-portal PRs opened | 5 | 7 | ↓2 |
| xrpl-dev-portal commits | 30 | 8 | ↑22 |
| XRPL-Standards PRs merged | 11 | 1 | ↑10 |
| XRPL-Standards discussions | 1 | 3 | ↓2 |
| clio PRs merged | 11 | 3 | ↑8 |
| clio PRs opened | 2 | 2 | flat |
| clio commits | 11 | 3 | ↑8 |
| opensource.ripple.com PRs opened | 2 | 1 | ↑1 |
| Releases | 2 | 2 | flat |
Notable carryovers from last week: The xrpl4j XLS-65 Vault support PR (xrpl4j#713) — flagged as "In Progress" last week at 45 review rounds — merged on Wednesday. The Clio make_address() refactor (clio#3044), also flagged last week as approved and close to merging, landed on Monday. The xrpl-dev-portal faucet improvements (xrpl-dev-portal#3622) and Java code samples for credentials (xrpl-dev-portal#3618), both in progress last week, also merged. Rippled saw a significant jump from 26 to 34 merges, driven largely by a wave of vault/lending and MPT/DEX bug fixes. The XRPL-Standards repo went from 1 merge to 11, though most were dependency bumps and CI infrastructure.