XRPL Developments Weekly Summary
July 20–26, 2026

TL;DR

A high-volume week with 75 PRs merged across 8 repos. In rippled, 33 PRs merged to develop — headlined by the new Cosign and fixCleanup3_4_0 amendments, a PermissionedDEX invariant fix, two large test migrations (Peerfinder and consensus suites from Beast to GTest), and extensive Nix/CI tooling improvements. Clio shipped three releases including the production 2.7.1 with fixCleanup3_2_0 support and release candidate 2.8.0-rc3, plus merged Confidential Transfer field support and an MPToken serialization fix. The developer portal merged 27 PRs including Dynamic MPT documentation, a new TypeScript tutorial, the Permissioned Domains tutorial rewrite, and amendment component UX fixes. In xrpl4j, Batch V1.1 (XLS-56) and Dynamic MPT flag updates merged to main — both pending release.

Summary

This was one of the bigger weeks across the XRPL ecosystem, with 75 pull requests merged across eight repositories. The headline for anyone running infrastructure is the release of Clio 2.7.1 — the API server that many services use to query the XRP Ledger. This update adds support for the fixCleanup3_2_0 amendment, which means if that amendment is enabled on the network and you haven't upgraded, your Clio instance will stop processing new ledgers. Operators running Clio should plan to upgrade. A release candidate for Clio 2.8.0 (rc3) was also published for testing.

On the developer experience side, there was a lot of documentation work. The developer portal (xrpl.org) now has a TypeScript getting-started tutorial — contributed by community member @naavyas — filling a gap that had been open for years. Documentation for Dynamic Multi-Purpose Tokens was migrated to xrpl.org, reflecting an important design change: MPTs are now mutable by default, with immutability as an opt-in choice. This is the opposite of the original design and affects how token issuers set up their tokens. The Java SDK (xrpl4j) merged support for Batch V1.1 transactions, which let developers bundle multiple transactions together and submit them atomically — though this won't be installable from Maven Central until xrpl4j publishes its next release. A new protocol feature called Cosign was proposed, which would allow multi-signature transactions to be coordinated directly on the ledger rather than requiring off-chain communication between signers. The amendment was registered in the server code and a formal specification was submitted for community review.

Under the hood, the server software (rippled) saw significant build system modernization — the Nix-based development environment is being refined so that developers on Linux get the same toolchain as the CI system, reducing "works on my machine" issues. Two large test migrations moved the Peerfinder and consensus test suites from the legacy Beast framework to Google Test, making them easier to maintain and extend.

For the latest updates, follow @XRPLF and @RippleXDev on X, or check the Clio 2.7.1 release notes and the XRPLF repos directly.


What Merged

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). If no corresponding SDK release appears in the data, treat the feature as merged-but-pending-release and phrase availability accordingly.

Protocol & Feature Work (rippled — merged to develop)

Bug Fixes & Stability (rippled — merged to develop)

Refactoring & Architecture (rippled — merged to develop)

Dependencies & Build (rippled — merged to develop)

CI & Docs (rippled — merged to develop)

Clio (API Server)

Developer Portal (xrpl-dev-portal)

XRPL-Standards

Java SDK (xrpl4j — merged to main)

JavaScript SDK (xrpl.js — merged to main)

Python SDK (xrpl-py — merged to main)

opensource.ripple.com


In Progress

rippled — Performance fix for extreme exponents (rippled#7825, +110/−55) — Addresses a report that a JSON string with an out-of-range exponent (e.g. 1e2000000000) could tie up a node for 1–2 seconds in a digit-dropping loop. Short-circuits when the smaller value has no remaining significant digits. Approved by 4 reviewers — very close to merging.

rippled — AMM trading fee suppression fix (rippled#7867, +149/−0) — Newly opened PR to prevent an attacker from suppressing AMM trading fees indefinitely and extracting value from liquidity providers. No reviews yet.

rippled — VaultInvariant lower bound check (rippled#7863, +21/−0) — Adds a defense-in-depth check that lossUnrealized >= 0 in the VaultInvariant. Approved by AI reviewer. Submitted by community member @tyalymov.

rippled — LoanPay fund conservation fix (rippled#7843, +139/−49) — Fixes a fund conservation assertion failure when a LoanPay broker fee payee is below reserve. Approved by @gregtatcam.

rippled — Split LoanSet and LoanAccept (rippled#7820, +3427/−873 across 26 files) — Splits the LoanSet transaction into separate LoanSet and LoanAccept transactions. Has changes requested by @gregtatcam for missing test coverage.

rippled — Trivial GTest migrations (rippled#7865, +372/−276) — Migrates ApiVersion, Serializer, Zero, and varint tests from Beast to GTest.

rippled — Protocol version 2.3 (LedgerNodeDepth) (rippled#6353, +835/−181 across 21 files) — Long-running PR (172 reviews) replacing 32-byte node IDs with 2-byte depth values in TMLedgerNode messages. Has outstanding change requests from AI reviewer.

rippled — Prevent silent zero AMM clawbacks (rippled#7704, +191/−1) — Fixes a rounding issue where clawing back a fractional amount of an integer-based MPT could silently result in zero tokens recovered while still burning LP tokens. Approved by @gregtatcam.

rippled — Apply asfDisallowIncomingTrustline to OfferCreate (rippled#6307, +175/−4) — Enforces the asfDisallowIncomingTrustline flag in OfferCreate transactions to prevent unwanted trustline auto-creation when offers cross. Approved by @gregtatcam. Labeled Amendment.

Clio — Accounts filter for mpt_holders (clio#3154, +684/−54) — Adds an optional accounts parameter to mpt_holders for direct account lookups by key, skipping the full holder-index scan.

Clio — Filter transactions by mpt_id (clio#3153, +362/−1) — Adds an optional mpt_id field to account_tx to filter account transactions by a specific MPT.

xrpl.js — DynamicMPT (XLS-94) updates (xrpl.js#3417, +447/−369) — Updates DynamicMPT support to reflect the spec change that MPTs are now mutable by default.

xrpl.js — Confidential MPT (XLS-96) (xrpl.js#3364, +5736/−24 across 74 files) — Wire-format definitions, transaction and ledger models for Confidential MPT.

xrpl.js — Transaction model validation cleanup (xrpl.js#2895, +1568/−1379 across 133 files) — Approved by @achowdhry-ripple, cleans up validation functions using newer helpers. 98 reviews.

xrpl-py — XLS-68 Sponsored Fees and Reserves (xrpl-py#1020, +3654/−44 across 34 files) — Takes over previous work for Sponsored Fees support.

xrpl4j — Rework DynamicMPT to opt-in-immutable (xrpl4j#814, +1339/−1443 across 20 files) — Adds ImmutableFlags replacing MutableFlags to match the new default-mutable model.

xrpl-dev-portal — Sponsored Fees and Reserves docs (xrpl-dev-portal#3798, +651/−3 across 18 files) — Concept and reference documentation.

xrpl-dev-portal — Known Amendments updates (xrpl-dev-portal#3785, +49/−2) — Adds BatchV1_1, LendingProtocolV1_1, and fixCleanup3_3_0 to "Amendments in Development."

XRPL-Standards — Cosign spec (XRPL-Standards#586, +1083 lines) — Proposes native on-ledger proposal and multi-signature collection.

XRPL-Standards — Term Vault spec (XRPL-Standards#587, +274 lines) — New spec proposal.

XRPL-Standards — XLS-65 Vault spec suite — Seven PRs from @Tapanito syncing the Single Asset Vault spec with current implementation: VaultCreate (#549), VaultSet (#550), VaultDelete (#551), VaultDeposit (#552), VaultWithdraw (#553), VaultClawback (#554), and global invariants (#555). VaultDelete and VaultSet are approved by @tyalymov.


What to Watch Next Week


Community & Discussions

Community member @naavyas contributed the Get Started Using TypeScript tutorial (xrpl-dev-portal#3749), closing a long-standing documentation request (#1208).

Community member @tyalymov (authorAssociation: NONE) submitted two rippled PRs: a VaultInvariant lower-bound check (rippled#7863) and LoanPay regression tests for impaired overdue loans (rippled#7839). They also provided detailed reviews across seven Vault spec PRs on XRPL-Standards.

Community member @Platonenkov (authorAssociation: NONE) proposed adding an optional expanded response format to account_currencies (rippled#7829), which would return full issuer and capacity details instead of plain currency codes.

Community member @joshuahamsa (authorAssociation: NONE) opened a PR to add BatchV1_1, LendingProtocolV1_1, and fixCleanup3_3_0 to the Known Amendments page (xrpl-dev-portal#3785). They also continued iterating on custom HTTP header support for xrpl-py (xrpl-py#828).

Community member @akshitj11 contributed the channel_authorize documentation move to admin-only methods (xrpl-dev-portal#3708).

New discussion — On-Chain Cosigner (XRPL-Standards#589): A new XLS proposal for native on-ledger proposal and multi-signature collection for XRPL transactions, requiring XLS-49 (Multiple Signer Lists).

New issue — Stub landing pages (xrpl-dev-portal#3796): Identifying that certain "folder" pages like Use Cases are extremely barebones and need better UX.

New issue — xrp-ledger.toml checker error handling (xrpl-dev-portal#3793): The dev tool currently errors out instead of displaying a message when no valid TOML file is found.

New issue — SHAMap canonicalization discards linked children (rippled#7870): Contributor @sublimator identified that SHAMap::canonicalize discards linked children when two same-hash inner nodes meet in the TreeNodeCache, requiring resynthesization by hash.


By the Numbers

Compared to last week (July 13–19, 2026):

MetricThis WeekLast WeekChange
Repos with activity88flat
rippled PRs merged3329↑4
rippled PRs opened1526↓11
rippled new issues21↑1
rippled releases00flat
rippled commits2529↓4
xrpl.js PRs merged12↓1
xrpl.js PRs opened143↑11
xrpl-py PRs merged11flat
xrpl-py PRs opened64↑2
xrpl4j PRs merged21↑1
xrpl4j PRs opened47↓3
xrpl4j new issues20↑2
xrpl-dev-portal PRs merged276↑21
xrpl-dev-portal PRs opened1012↓2
xrpl-dev-portal new issues30↑3
xrpl-dev-portal closed issues30↑3
xrpl-dev-portal commits517↑44
Clio PRs merged91↑8
Clio PRs opened42↑2
Clio releases31↑2
Clio closed issues20↑2
XRPL-Standards PRs merged15↓4
XRPL-Standards PRs opened169↑7
opensource.ripple.com PRs merged11flat
opensource.ripple.com PRs opened21↑1
Total PRs merged (all repos)7546↑29
Releases (total)31↑2

The developer portal saw a dramatic increase in merges (6→27), driven largely by the batch of 16 Go dependency bumps plus substantive content merges including the TypeScript tutorial, Dynamic MPT docs, and Permissioned Domains rewrite. Clio rebounded strongly (1→9 merges) with the 2.7.1 release, 2.8.0-rc3, and several feature/fix merges. rippled merged slightly more (29→33) with continued emphasis on Nix/CI tooling and GTest migrations. XRPL-Standards opened 16 PRs (up from 9) reflecting the Vault spec synchronization effort and new Cosign/Term Vault proposals. Items tracked as "In Progress" last week that merged this week include the Clio MPToken serialization fix (clio#3139), the Clio 2.7.1 release blog post (xrpl-dev-portal#3783), and the TypeScript tutorial (xrpl-dev-portal#3749). The xrpl4j Batch V1.1 PR (xrpl4j#808), noted as a draft last week, also merged.

Generated on July 26, 2026 at 03:46 AM UTC using claude-opus-4-6