rippled 3.2.1 hotfix shipped to address a manifest propagation regression that was causing peer connectivity issues on 3.2.0 — operators should upgrade immediately. In rippled, 20 PRs merged to develop including LendingProtocolV1_1 cash-basis accounting (+1749 lines), a protocol optimization replacing 32-byte node IDs with 2-byte depth in peer messages, and the fixDisallowIncomingV1_1 amendment closing a trustline bypass via OfferCreate. The xrpl-dev-portal merged 7 PRs including major new documentation for Confidential Transfers, Sponsored Fees and Reserves (XLS-68), BatchV1_1, and PermissionDelegationV1_1. Clio released 2.8.0-rc4 and merged 3 PRs including a libxrpl upgrade to 3.3.0-rc1.
The biggest news this week is the rippled 3.2.1 hotfix release. If you run an XRP Ledger node or validator on version 3.2.0, you should upgrade as soon as possible. The 3.2.0 release had a bug in how nodes share validator identity information ("manifests") with each other, which was causing connections between nodes to drop and churn. Community members reported their peer counts falling from a stable 35 down to single digits. The 3.2.1 fix addresses this, and at least one operator confirmed that upgrading immediately restored stable connectivity. A separate report notes that non-default-UNL validators may still have their manifests fail to propagate after the fix — the team is tracking this.
On the development side, the core server merged a new accounting model for the lending protocol: "cash-basis accounting" means that when someone borrows tokens through a vault, the interest on that loan only counts as income when it's actually paid — not when the loan is first created. This is a common accounting approach in traditional finance and gives vault operators a more conservative view of their actual earnings. Another significant merge optimizes peer-to-peer communication by shrinking a particular data field from 32 bytes to just 2 bytes, reducing the amount of data nodes need to exchange when syncing ledger state. A third notable merge closes a loophole where someone could receive tokens from an issuer that had explicitly blocked incoming trust lines — by placing a trade order that would automatically create the trust line when it filled.
The documentation site (xrpl.org) had a productive week adding major new sections for features headed toward the 3.3.0 release: Confidential Transfers (which allow token balances and transfer amounts to be hidden using cryptographic proofs), Sponsored Fees and Reserves (which let one account pay transaction fees and reserve requirements on behalf of another), and updates to the Batch and Permission Delegation features. These docs help developers understand and prepare for upcoming capabilities before they go live.
For the latest updates, follow @XRPLF and @RippleXDev on X, or check the rippled 3.2.1 release notes and the XRPLF 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). If no corresponding SDK release appears in the data, treat the feature as merged-but-pending-release and phrase availability accordingly.
featureLendingProtocolV1_1. Under cash-basis, Vault.AssetsTotal and LoanBroker.DebtTotal track principal only — interest is recognized as income only when actually paid, rather than at loan origination. Approved by @gregtatcam and @a1q123456.TMLedgerNode peer messages with a 2-byte node depth for leaf nodes. This reduces bandwidth per ledger sync message and closes an earlier vector where a compromised UNL validator could send mismatched node IDs. A long-running PR that was "In Progress" last week.fixDisallowIncomingV1_1 amendment — trustline bypass via OfferCreate: rippled#6307 (+175/−4) enforces the asfDisallowIncomingTrustline flag in OfferCreate transactions, closing a loophole where accounts could receive tokens from issuers with this flag set by creating crossing offers that auto-created trustlines. Closes rippled#5089. Labeled Amendment.TransactionProposal ledger entry format, hash index, and fields — the data model underpinning the proposed Cosign feature.ripple/smart-escrow branch current with base, prepping for devnet release.LoanPay. Submitted by community member @tyalymov.testLimit case in ServerStatus_test.cpp that assumed a fixed starting connection occupancy. Confirmed passing 200 consecutive runs. By contributor @andrzej-neti.ApiVersion, Serializer, Zero, and varint tests.server_definitions uploads after rippled#7689 changed which jobs run per PR..clang-format rules, reducing churn.Batch amendment, documenting the new sorted-BatchSigners requirement.account_tx delegate filter, pseudo-account rejection, and queue limitations.tecBAD_PROOF, temBAD_CIPHERTEXT, terNO_PERMISSION, tefBAD_PATH_COUNT, and tefNO_DST_PARTIAL to the central reference.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. Approved by 5 reviewers with no outstanding changes. Tracked as "In Progress" last week; still open.
rippled — Closed-ended Vault (rippled#7921, +1473/−10, 22 files) — New feature extending Single Asset Vault (XLS-65) with a date-driven lifecycle: Subscription → Investment → Redemption. Companion spec at XRPL-Standards#587. No reviews yet.
rippled — Key rotation amendment and fields (rippled#7915, +5/−0) — Adds amendment and fields for key rotation. No reviews yet.
rippled — SLE wrapper classes for all ledger entries (rippled#7886, +1423/−0, 32 files) — Initial typed wrappers intended to replace raw SLE usage. Has outstanding change requests from AI reviewer. Active review with 36 review events.
rippled — SeqProxy refactor (rippled#7890, +1001/−662, 58 files) — Replaces uint32_t with SeqProxy for all sequence-based keylets. Has comments from AI reviewer about ticket sequence validation.
rippled — MPT balance invariants under fixCleanup3_4_0 (rippled#7889, +262/−42) — Makes MPT balance invariant checks actually enforce (they were advisory under the unshipped featureMPTokensV2). No reviews yet.
rippled — MPT/DEX audit fixes (Phase 2) (rippled#7537, +558/−61) — Fixes from audit/attackathon reports including CheckCash MPT cap and AMMDeposit overflow guard. Approved by @vlntb.
rippled — Pause online delete during ledger gaps (rippled#5531, +424/−51) — Prevents ledger gaps from persisting when online delete runs during sync issues. Approved by 3 reviewers including community contributor @dangell7 who ran A/B testing.
rippled — Lending protocol sign-check wording fix (rippled#7913, +8/−8) — Diagnostic-only text correction. Approved by both AI reviewer and @Tapanito. Trivial.
rippled — Missing value_type in JSON iterators (rippled#7907, +2/−0) — Fixes C++20 std::iterator_traits compatibility. Approved by AI reviewer. Trivial.
Clio — server_info timestamp fix (clio#3156, +87/−44) — Fixes a flaky test caused by sampling system_clock twice. Approved by @godexsoft, likely to merge soon.
Clio — MPT issuance ID filter for account_tx (clio#3153, +365/−1) — Adds optional filtering by MPT issuance ID in account_tx.
Clio — MPT book_offers support (clio#3127, +1258/−96) — Adds MPTokensV2 support to book_offers. Approved by @godexsoft.
xrpl.js — DynamicMPT (XLS-94) updates (xrpl.js#3417, +448/−370) — Updates DynamicMPT support to reflect the mutable-by-default spec change.
xrpl.js — Confidential MPT (XLS-96) (xrpl.js#3364, +5736/−24, 74 files) — Wire-format definitions, transaction and ledger models.
xrpl-py — XLS-68 Sponsored Fees and Reserves (xrpl-py#1020, +5067/−44, 43 files) — New transaction types and sponsor signing.
xrpl4j — DynamicMPT opt-in-immutable rework (xrpl4j#814, +1456/−1448, 21 files) — Replaces MutableFlags with ImmutableFlags.
xrpl4j — XLS-68 Sponsored Fees support (xrpl4j#720, +7943/−32, 97 files) — Full sponsorship support for Java.
xrpl-dev-portal — xrpld 3.3.0 release notes draft (xrpl-dev-portal#3803, +255/−0) — Generated from rc1 tag, has TODOs for GA values.
xrpl-dev-portal — NFT flags prefix fix (xrpl-dev-portal#3781, +51/−57, 15 files) — Renames NFT flags to match flag prefix in code. Approved after review iterations.
XRPL-Standards — XLS-65 Vault spec sync — Six PRs from @Tapanito syncing Vault transactor specs with current implementation: VaultCreate (#549), VaultSet (#550), VaultDelete (#551), VaultDeposit (#552), VaultWithdraw (#553), VaultClawback (#554). VaultSet and VaultDelete are approved by @tyalymov.
XRPL-Standards — Cosign spec (XRPL-Standards#586, +1100 lines) — On-ledger multi-signature proposal collection.
opensource.ripple.com — simpleXRPL SDK documentation (opensource.ripple.com#224, +4600/−7, 79 files) — Landing page, get-started guide, tutorials, and references for a new SDK.
server_info timestamp fix (clio#3156) and MPT book_offers support (clio#3127) are both approved and could land.Community member @tyalymov submitted LoanPay regression tests for impaired overdue loans (rippled#7839, merged this week), a lending protocol diagnostic wording fix (rippled#7913, approved), and a fix to reject credentials on pseudo-accounts (rippled#7877). They also continued reviewing Vault spec PRs on XRPL-Standards.
Community member @svirdi-ripple opened a fix for explicit mtSQUELCH classification in the message compression switch (rippled#7879), addressing a maintenance hazard flagged by clang-tidy.
Community member @rippleitinnz reported that the 3.2.1 manifest flood fix introduced a relay regression preventing non-default-UNL validator manifests from propagating (rippled#7926). Their validator shows correct agreement but appears as "Master Key: Unknown" on explorers.
Community member @coderipper1011 reported peer churn on xrpld 3.2.0 (rippled#7924) and confirmed that the 3.2.1 hotfix resolved the issue.
Community member @RaymondSeven filed two Clio issues: accountHolds missing isDeepFrozen check (clio#3159) and CTID encoder truncating network_id values above 65535 (clio#3158).
New discussion — Closed-ended Vault (XRPL-Standards#590): Proposes a fixed-term fund extension to Single Asset Vaults with defined collection, deployment, and wind-down phases. Companion spec PR (XRPL-Standards#587) and rippled implementation (rippled#7921) also opened this week.
Compared to last week (July 20–26, 2026):
| Metric | This Week | Last Week | Change |
| Repos with activity | 8 | 8 | flat |
| rippled PRs merged | 20 | 33 | ↓13 |
| rippled PRs opened | 19 | 15 | ↑4 |
| rippled new issues | 2 | 2 | flat |
| rippled releases | 1 | 0 | ↑1 |
| rippled commits | 16 | 25 | ↓9 |
| xrpl.js PRs merged | 0 | 1 | ↓1 |
| xrpl.js PRs opened | 7 | 14 | ↓7 |
| xrpl-py PRs merged | 1 | 1 | flat |
| xrpl-py PRs opened | 5 | 6 | ↓1 |
| xrpl4j PRs merged | 1 | 2 | ↓1 |
| xrpl4j PRs opened | 5 | 4 | ↑1 |
| xrpl-dev-portal PRs merged | 7 | 27 | ↓20 |
| xrpl-dev-portal PRs opened | 9 | 10 | ↓1 |
| xrpl-dev-portal closed issues | 1 | 3 | ↓2 |
| xrpl-dev-portal commits | 1 | 51 | ↓50 |
| Clio PRs merged | 3 | 9 | ↓6 |
| Clio PRs opened | 8 | 4 | ↑4 |
| Clio releases | 2 | 3 | ↓1 |
| Clio new issues | 3 | 0 | ↑3 |
| Clio closed issues | 2 | 2 | flat |
| XRPL-Standards PRs merged | 0 | 1 | ↓1 |
| XRPL-Standards PRs opened | 11 | 16 | ↓5 |
| opensource.ripple.com PRs merged | 0 | 1 | ↓1 |
| opensource.ripple.com PRs opened | 1 | 2 | ↓1 |
| Total PRs merged (all repos) | 32 | 75 | ↓43 |
| Releases (total) | 3 | 3 | flat |
Merge volume dropped significantly from last week's exceptionally high 75 to a more typical 32, with most of the decline in the developer portal (27→7, as last week's batch of Go dependency bumps and large content pushes didn't repeat) and rippled (33→20). The key shift this week was in releases: rippled shipped the 3.2.1 hotfix (no rippled releases last week), and Clio advanced to 2.8.0-rc4. Carryovers from last week that merged this week include the LedgerNodeDepth protocol optimization (rippled#6353), the nodestore GTest migration (rippled#7292), and the asfDisallowIncomingTrustline OfferCreate fix (rippled#6307). Clio saw an uptick in opened PRs (4→8) and new issues (0→3), driven by community-filed parity and encoding bugs.