Rippled saw 27 PRs merge to develop — headlined by vault bug fixes (stuck depositor, IOU scale boundary precision), a Number rounding correction, the fixCleanup3_2_0 amendment enabled for voting, and version bumps to 3.2.0-rc1 and rc2. On the developer portal, XLS-82 MPT DEX docs, a new "Blackholed Accounts" concept page, an expanded Use Tickets tutorial (now with Python and Go), and a Redocly platform upgrade all merged. XRPL-Standards landed 12 PRs syncing the XLS-65 Single Asset Vault spec with implementation code. In xrpl-py, a fix for IOU trailing-zero stripping merged to main (pending PyPI release).
This was a dense week for the XRP Ledger, with major progress on multiple fronts. The core server (rippled) continued building toward its 3.2.0 release — version numbers were bumped to "release candidate 1" and then "release candidate 2," and a cleanup amendment called fixCleanup3_2_0 was enabled so validators can begin voting on it once the release ships. Several important bug fixes also merged: one prevents a situation where the last person with shares in a vault could get permanently stuck and unable to withdraw, another fixes math precision errors that occurred when vault transactions crossed certain number boundaries, and two fixes address rounding issues in the server's internal number system that could cause tiny calculation errors to accumulate.
The developer documentation site saw its most active week recently. The MPT DEX documentation — explaining how Multi-Purpose Tokens can be traded on the XRP Ledger's built-in exchange — was published. A new educational page explaining "blackholed" accounts (accounts intentionally made unusable, often done by token issuers to prove they can't interfere with the token supply) went live. The Use Tickets tutorial, which teaches developers how to pre-reserve transaction sequence numbers, was expanded from JavaScript-only to include Python and Go implementations. On the standards side, the XLS-65 Single Asset Vault specification received a thorough update: twelve separate changes brought the written spec in line with how the code actually works, filling in previously undefined error conditions and correcting mistakes in the documentation.
In the Python SDK (xrpl-py), a fix merged that prevents certain token amounts from silently losing significant digits when converted to JSON — for example, a value like "1.0000" could previously be corrupted to "1" during serialization. This fix is merged to main but will reach Python developers once a new version is published to PyPI. The Java SDK (xrpl4j) has eight open bug-fix PRs covering issues like incorrect sign handling in multiplication and key derivation errors, which should provide meaningful reliability improvements once they merge and a Maven Central release follows.
For the latest, 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). If no corresponding SDK release appears in the data, treat the feature as merged-but-pending-release and phrase availability accordingly.
fixCleanup3_2_0 amendment for voting: Marks the amendment as Supported::Yes so validators running 3.2.0 can vote on it. rippled#7347 (+1/−1).DomainID check for Permissioned Domains: Transactions (OfferCreate, Payment) now return temMALFORMED when given a zero DomainID, preventing a debug-mode assertion failure. rippled#7362 (+58/−0).book_offers RPC and fixes missing type tags in cross-type book hashing. rippled#7334 (+617/−69).VaultInvariant and VaultDeposit precision at IOU scale boundaries: Corrects DeltaInfo::makeDelta which picked the wrong scale when transactions crossed a power-of-10 boundary, causing false invariant failures on deposits, withdrawals, and loan payments. rippled#7272 (+820/−181).Number::maxRep cusp (labeled Bug): Corrects a case where the mantissa rounds down instead of up when it equals maxRep. rippled#7051 (+640/−355).Number::operator/=: Prevents extreme dust rounding from being silently lost. rippled#7328 (+507/−98).SHAMapMissingNode errors when data passed to the node store was dropped without being written. rippled#7359 (+181/−28).requirements.in with pinned dependencies for deterministic builds. rippled#7329 (+118/−13).xrpl_tests: Consolidates gtest suites into one binary. rippled#7327 (+41/−67).shfmt on workflows, actions, and markdown bash code (+536/−119) — rippled#7333. Switches from bashate to shfmt — rippled#7326.clang-tidy to include src/tests headers: rippled#7307 (+26/−31).shfmt: Unifies bash style across workflows/actions. clio#3085 (+157/−157).lsfMPTCanLock corrected to lsfMPTCanClawback).InterestUnrealized field for cash-basis accounting, updates exchange rate formulas. XRPL-Standards#485 (+764/−538). Has outstanding CHANGES_REQUESTED from @ximinez (minor).tfVaultDonate flag. XRPL-Standards#469 (+717/−507). Has outstanding CHANGES_REQUESTED from @ximinez.definitions.json with latest server_definitions: Prep work for the ReferenceHolding field. xrpl4j#794 (+3,263/−224). Merged — pending Maven Central release.Amount.to_json: Corrects silent data corruption where significant trailing zeros were stripped from IOU values with integer-form or scientific-notation Decimals. xrpl-py#1001 (+82/−1). Merged — pending PyPI release.rippleci/xrpld:develop image layout. xrpl-py#1003 (+4/−4).rippled — Avoid throwing in visitNodes during cache rotation (rippled#7361, +7/−4) — Changes fetchNode to fetchNodeNT so a node evicted between freshenCaches() and dbRotating_->rotate() no longer crashes the server. Approved by the AI reviewer. Targets a known SHAMapMissingNode crash path.
rippled — Pin overpayment principal reduction to exact on-grid value (rippled#7360, +240/−25) — Fixes a lending assertion failure from a (P * factor) / factor round-trip that isn't exact in Number arithmetic. Has CHANGES_REQUESTED from @a1q123456.
rippled — Amendment retirement series — A community member opened six PRs retiring old amendments whose guard code is no longer needed: AMM & AMMOverflowOffer (#7357), Clawback (#7353), XRPFees (#7349), DisallowIncomingV1 (#7364), FillOrKill (#7366), NFTokenReserve (#7367), InnerObjTemplate (#7368), and fixUniversalNumber (#5962).
rippled — XLS-68 Sponsored Fees and Reserves (rippled#7350, +13,891/−1,142 across 190 files) — Full implementation of the Sponsor feature allowing any account to pay fee and reserve costs for another. Early stage, has conflicts.
rippled — Config section constants refactor (rippled#7095, +1,248/−1,020 across 82 files) — Replaces string literals with constants. Approved by 3 reviewers but has merge conflicts.
xrpl.js — Seed prefix algorithm inference (xrpl.js#3337, +45/−14) — Fixes Wallet.fromSeed silently defaulting secp256k1 seeds to ed25519, which caused users to derive the wrong account. Approved by one reviewer. Pending further review.
xrpl.js — XLS-82 MPT-DEX support (xrpl.js#3214, +2,534/−88 across 44 files) — Adds MPTAmount to models and updates the binary codec. 45 review rounds, active development.
xrpl-py — Definitions generation overhaul (xrpl-py#1002, +3,826/−598) — Replaces regex-based definitions.json generation with an artifact-based approach downloading directly from rippled CI. Has review comments from the CodeRabbit bot.
xrpl4j — Multiple bug fix PRs: XrpCurrencyAmount.equals/hashCode sign fix (#800), HopType.toJson() field fix (#799), Math.abs(Long.MIN_VALUE) overflow guard (#798), AffectedNodeDeserializer NPE fix (#797), XrpCurrencyAmount.times() sign logic fix (#796), ReferenceHolding field (#795), secp256k1 deriveScalar fix (#801), XLS-68 Sponsored Fees support (#720), and XLS-82 MPT-DEX support (#704).
xrpl-dev-portal — Agentic transactions section (xrpl-dev-portal#3663, +3,340 lines across 18 files) — New documentation section covering agentic payments with x402 and agent wallet skills.
xrpl-dev-portal — rippled 3.2.0 doc staging (xrpl-dev-portal#3665, +495 lines) — Staging branch for all 3.2.0 release documentation.
xrpl-dev-portal — Selenium link checker (xrpl-dev-portal#3658, +776/−121) — Thorough browser-based link checker for CI.
XRPL-Standards — Global Vault invariants (XRPL-Standards#555, +402/−394) — Adds 12 formal invariants to §3.1.10 of the XLS-65 spec, derived from VaultInvariant.cpp.
opensource.ripple.com — Sponsored Fees tutorials (opensource.ripple.com#214, +1,860 lines across 18 files) — Python tutorials covering co-signing, pre-funded pools, reserve transfers, and pool management. Feature not yet on Devnet.
opensource.ripple.com — Confidential Transfer tutorials (opensource.ripple.com#208, +723 lines) — Blocked on SDK changes.
fixCleanup3_2_0 enabled for voting, and the 3.2.0 doc staging branch open on the developer portal, a release candidate tag could appear soon. Validators and operators should prepare to evaluate the release — it includes vault fixes, rounding corrections, and the fixCleanup3_2_0 amendment.visitNodes crash fix (rippled#7361) — Already approved, addresses a SHAMapMissingNode crash during cache rotation. Likely to merge early next week, and may be targeted for 3.2.0.AMM Swappable Curves proposal: Community contributor @dangell7 proposed extending XLS-30 AMM with pluggable invariant functions selectable at pool creation — Discussion #547. The discussion drew substantive feedback from 7 participants on topics including spot-price selection logic (a zero-fee pool always winning), the case for skipping protocol curves and going directly to a "Smart AMM" approach, and permissioned domain integration for institutional use.
AMM Invalid State Recovery proposal: Community member @shortthefomo proposed extending LedgerStateFix to handle AMMs in invalid states and return remaining assets to liquidity providers — Discussion #556.
Dynamic Amendment Activation idea: A community member proposed per-amendment configurable activation windows (0–14 days) to enable faster response to critical issues — Discussion #546. @tequdev suggested specifying time strings directly rather than predefined tags.
Amendment retirement contributions: A community member (@TimothyBanks, authorAssociation: NONE) opened seven PRs in rippled to retire long-activated amendments (AMM, Clawback, XRPFees, DisallowIncomingV1, FillOrKill, NFTokenReserve, InnerObjTemplate), removing legacy guard code that is no longer needed.
rippled feature request — Extend server_definitions: Contributor @donovanhide filed rippled#7352 requesting inner object formats and human-readable transaction result descriptions in the server_definitions API response, to help third-party client library builders update their code faster.
New bug reports filed: Multiple triage-tagged issues opened in rippled covering paginated RPC marker binding (#7345), unsigned overflow on negative ledger_index (#7344), uncapped base fee post-XRPFees (#7343), unburnable NFTs from deleted issuers (#7342), stale AMM vote entries (#7341), silent URI removal in NFTokenModify (#7340), and trust line persistence after clawback (#7339).
Compared to last week (May 18–24, 2026):
| Metric | This Week | Last Week | Change |
| Repos with activity | 8 | 7 | ↑1 |
| rippled PRs merged | 27 | 26 | ↑1 |
| rippled PRs opened | 20 | 4 | ↑16 |
| rippled new issues | 9 | 0 | ↑9 |
| xrpl.js PRs merged | 0 | 0 | flat |
| xrpl.js PRs opened | 4 | 8 | ↓4 |
| xrpl-py PRs merged | 2 | 0 | ↑2 |
| xrpl-py PRs opened | 1 | 4 | ↓3 |
| xrpl4j PRs merged | 1 | 7 | ↓6 |
| xrpl4j PRs opened | 8 | 3 | ↑5 |
| xrpl-dev-portal PRs merged | 12 | 3 | ↑9 |
| xrpl-dev-portal PRs opened | 7 | 10 | ↓3 |
| xrpl-dev-portal commits | 10 | 4 | ↑6 |
| XRPL-Standards PRs merged | 12 | 0 | ↑12 |
| XRPL-Standards PRs opened | 4 | 2 | ↑2 |
| Clio PRs merged | 10 | 1 | ↑9 |
| Clio commits | 10 | 1 | ↑9 |
| opensource.ripple.com PRs opened | 3 | 0 | ↑3 |
| Releases | 1 | 1 | flat |
This week maintained rippled's high merge cadence (27 vs 26 last week), while the developer portal and XRPL-Standards both surged dramatically. The portal went from 3 to 12 merges, driven by doc improvements, dependency bumps, and the XLS-82 MPT DEX content. XRPL-Standards rebounded from 0 to 12 merges — almost entirely XLS-65 vault spec synchronization. Several items flagged as "In Progress" last week landed: xrpl-py's trailing-zero fix (#1001) and the developer portal's blackholed accounts doc (#3652) and Use Tickets expansion (#3657) all merged. Notably, rippled saw 9 new issues filed (vs 0 last week), reflecting a batch of audit-derived bug reports. The single release was a Clio nightly build.