A high-velocity week with 91 PRs merged across 8 repos. In rippled, 40 PRs merged to develop — headlined by enabling the LendingProtocolV1_1 amendment, a wave of vault precision and correctness fixes under fixCleanup3_4_0, MPT/DEX audit fixes (Phase 1), vault invariant enforcement, and a major Wasm VM redesign. xrpl.js released xrpl@5.1.0, ripple-binary-codec@2.10.0, and mpt-crypto@0.1.1 with BatchV1_1, Dynamic MPT, Confidential Transfer, and Sponsored Fees support now available on npm. Clio released three 2.8.1 release candidates with bug fixes for subscriptions, pseudo-account handling, and new MPTokensV2 book_offers support. xrpl4j released v7.0.0-rc.1 and v6.1.0-rc.2, with Confidential Transfer (XLS-96) client support merged. The developer portal merged 21 PRs including new Sponsored Fees tutorials, Confidential Transfers tutorials, StatsD metrics documentation, and site-wide UI/accessibility improvements.
This was one of the most productive weeks in recent memory across the XRP Ledger ecosystem, with 91 changes merged across eight repositories. The core server software (rippled) saw 40 changes land on its development branch, highlighted by enabling the LendingProtocolV1_1 amendment — a signal that the next tagged release will include node voting support for an upgraded version of the lending protocol, which allows vaults (pooled asset containers) and loan brokers to operate on the ledger. Alongside this, a large batch of fixes addressed subtle rounding issues in vault operations: when a vault tracks assets using three related numbers (total assets, available assets, and a depositor's balance), each number gets rounded slightly differently because they operate at different scales. The fixes ensure all three stay in lockstep so that deposits, withdrawals, and clawbacks never deliver more or fewer assets than intended. Other important fixes closed findings from a security audit and bug bounty program, including preventing MPT (Multi-Purpose Token) liquidity from being inflated in order book queries and stopping loan brokers from manipulating due dates to block loan defaults.
For application developers, it was a release-heavy week. The JavaScript SDK published version 5.1.0 on npm, meaning developers building with JavaScript can now use Batch transactions (bundling multiple operations into one), Dynamic MPTs (tokens whose properties can change after issuance), Confidential Transfers (sending token payments where the amount is cryptographically hidden), and Sponsored Fees (letting one account pay transaction costs for another). The Java SDK shipped two release candidates with Confidential Transfer support — once a final release is published to Maven Central, Java developers will have access too. The Clio API server, which developers use to query the ledger without running a full node, published three release candidates for version 2.8.1 with fixes for a subscription deadlock, a crash in retry logic, and new support for querying MPT order books. On the developer portal, new step-by-step tutorials for Sponsored Fees and Confidential Transfers were published in both JavaScript and Python, and documentation was added for monitoring node health via StatsD metrics — useful for anyone operating XRPL infrastructure.
The community was particularly active around the Confidential MPT specification (XLS-96), with a community member filing four detailed issues identifying mismatches between the spec and the implementation, including how failed confidential transactions still get applied to the ledger (potentially revealing encrypted amounts) and how confidential tokens don't compose with vaults as one might expect. Several of these reports included self-corrections after further review — a valuable pattern for spec maturation.
For the latest updates, follow @XRPLF and @RippleXDev on X, and explore the repos directly at github.com/XRPLF. The xrpl.js 5.1.0 release notes are here, and Clio 2.8.1-rc3 is available here.
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.
LendingProtocolV1_1 from Supported::No to Supported::Yes, meaning nodes running a future release containing this change will vote in favor of the amendment. Validators should be aware this amendment will enter the voting pipeline once a tagged release ships.featureLendingProtocolV1_1. Was in progress last week with outstanding change requests; now merged.SField::kSmdPseudoAccount metadata.Vault precision and correctness (fixCleanup3_4_0): A coordinated stack of fixes addressing rounding divergence across vault ledger fields — all were in progress last week and merged this week:
sfAssetsTotal's own rounding grid before applying, preventing one-unit divergence between sfAssetsTotal, sfAssetsAvailable, and trust line balances.ValidVault's strict-equality checks to a one-unit tolerance for IOU assets, correctly gated on Asset::integral() so XRP/MPT keep strict equality.VaultClawback and VaultWithdraw so the delivered amount never exceeds the request.tecPSEUDO_ACCOUNT in preclaim instead of silently accepting a request that could never move anything.tecNO_PERMISSION. Was in progress last week with conflicts; now resolved and merged.tecPSEUDO_ACCOUNT. Carried over from last week's "Ready to merge" status.requireAuth now treats trust lines owned by pseudo-accounts as authorized, fixing repayment failures on RequireAuth issuers.impairLoan/unimpairLoan from rewriting sfNextPaymentDueDate, preventing a colluding broker from pushing the due date forward indefinitely. Was in progress last week; now merged.book_offers, missing type tags in cross-type book hashing, flawed pathfinding constraints blocking DEX trades for MPT holders, and arithmetic overflow on extreme amounts. Was in progress last week; now merged.verifyProofPath: rippled#7940 (+183/−7) — Prevents an out-of-bounds read from a malicious proof path with 65 hash-chained inner nodes.xrpl-wasm-testkit crate and xrpl-wasm-vm-ffi crate.RealHostFixture/WasmHost design.explicit from hash specialization default constructors: rippled#8100 (+6/−6) — Fixes five std::hash/boost::hash specializations.allow_start_fn(false) to reject start sections at compile time.Three release candidates published this week: 2.8.1-rc1, 2.8.1-rc2, and 2.8.1-rc3 (none recommended for production). A nightly build was also published. 17 PRs merged:
book_offers (MPTokensV2): clio#3190 (+1,268/−108) — taker_gets/taker_pays can now specify an asset via mpt_issuance_id.account_tx RPC: clio#2827 (+819/−9, 18 files) — Filter results by transaction delegation (actor/authorizor).mptoken_issuance_history RPC: clio#3188 (+2,876 lines) — Restoring the feature reverted from 2.8.0.account_info with pseudo account: clio#3196 (+75/−1).xrpl-rpc-spec 0.1.6 dependency: clio#3171 — First step in RPC spec migration.21 PRs merged covering tutorials, documentation, and site-wide design improvements:
transaction_proposal RPC (XLS-0103): XRPL-Standards#603 (+163/−33) — Replaces the flat response with per-account signing status so clients can see how far a proposal is from submission.xrpl@5.1.0 released (release notes) — JavaScript developers can now install via npm with support for BatchV1_1, Dynamic MPT, Confidential Transfer, and Sponsored Fees. Also released: ripple-binary-codec@2.10.0 with Sponsorship (XLS-68) serialization support, and mpt-crypto@0.1.1 with browser-specific WASM glue.
v7.0.0-rc.1 released and v6.1.0-rc.2 released (release candidates, not final).
UnsignedLong during binary-to-JSON deserialization.rippled — Skip AccountTxnID update for Batch wrappers (rippled#8134, +193/−1) — Addresses Attackathon finding F121: the Batch wrapper stamps the account root's sfAccountTxnID with its own hash, which inner transactions can never match. Approved by 2 reviewers, with outstanding comments from a core team member.
rippled — Validate visitEntry SLE nullability via InvariantEntry (rippled#8133, +435/−329, 31 files) — Refactors invariant checking to use a validated wrapper instead of loose arguments. Approved, but has merge conflicts.
rippled — Align CheckCash, AMM/Vault deposits with freeze and deep-freeze rules (rippled#8129, +192/−24, 10 files) — In early review, no approvals yet.
rippled — Replace node_size with memory_limit (rippled#7965, +641/−208, 17 files) — Replaces the config-driven [node_size] with a memory budget in GB that auto-detects physical RAM and respects cgroup limits. Approved by 2 reviewers. Operators take note: existing [node_size] configs will continue to work as a deprecated alias.
rippled — Decouple LedgerHistory from TaggedCache internals (rippled#5874, +444/−120) — Fixes a leak in ledgersByIndex_. Approved by 3 reviewers, but has recurring merge conflicts.
rippled — Modernize CountedObject infrastructure (rippled#8095, +239/−182) — Replaces lazy singleton with constinit registry, fixes a concurrency bug, tracks max counts.
rippled — Flaky online delete tests (rippled#8137, +920/−31) — Follow-up to the just-merged #5531, fixing test races. Approved by 4 reviewers.
rippled — SHAMap improvement stack — @bthomee has 6 active branches (parts 4–9 of a 16-part stack) covering SHAMapNodeID refactoring, traversal node ID derivation, NodePathStack safety, and visitDifferences tests. No PRs opened yet.
xrpl4j — Transaction fee calculation refactoring (xrpl4j#830, +1,423/−565, WIP) — Replaces per-amendment fee methods with a single computeFee(FeeParams) API. Approved by 2 reviewers.
xrpl4j — Make ValidatedLedger#age() optional (xrpl4j#825, +127/−3) — Fixes deserialization failure when rippled omits age during sync. Approved.
Clio — Use shared ledger and tx type tables from rpcspec (clio#3174, +269/−748) — Continues the RPC spec migration, deleting ~480 lines of duplicated code.
Clio — VaultList for Lending Protocol (clio#2972, +1,100 lines) — In active review.
xrpl-py — Support LendingProtocolV1_1 (xrpl-py#1034, +761/−309, draft) — Adds Python models for LendingProtocolV1_1 transaction types.
xrpl-dev-portal — FX/payments migration guide (xrpl-dev-portal#3787, +671 lines) — Seven-step migration guide under Payments Use Cases.
xrpl-dev-portal — xrpl-trading skill and OWS signing path (xrpl-dev-portal#3886, +2,087 lines) — Has outstanding change requests.
XRPL-Standards — Onchain Cosigner spec (XRPL-Standards#613, +1,177 lines) — New spec from @shawnxie999. Has change requests from the AI reviewer regarding enum mismatches.
XRPL-Standards — Update and finalize XLS-96 (XRPL-Standards#604, +250/−184) — Moving XLS-96 from Draft to Final status. Has change requests from @mvadari noting discrepancies between spec and source code.
AccountTxnID chaining unusable inside Batch transactions. Likely to merge soon.XLS-96 spec scrutiny — Community member @nandanito filed four detailed issues against the XLS-96 (Confidential MPT) specification in XRPL-Standards: spec-implementation mismatches in MPToken deletion invariants (#610), privacy implications of failed confidential transactions being applied to the ledger (#609), errata including a non-existent field name and contradicted clawback destination (#608), and non-composability between XLS-96 and the vault/lending specs (#611). Several of these include self-corrections after further review — a model of responsible issue filing.
Ephemeral Data Blobs proposal — A new discussion proposes a deliberately conditional amendment for carrying bulk data on-ledger. The author notes the case against it is strong and explicitly includes that argument in section 4.
xrpl.js — VaultCreate autofill fee fix — Community member @JasonColapietro opened xrpl.js#3430 to remove VaultCreate from the transaction types that receive the special 2-XRP fee during autofill, since VaultCreate no longer requires an elevated fee.
xrpl-py — Odd-length hex rejection — Community member @rioyu123 opened xrpl-py#1035 to reject incomplete hex bytes in MPT metadata at the format boundary rather than letting a ValueError escape validation.
xrpl-dev-portal — PHP sample updates — Contributor @AlexanderBuzz opened xrpl-dev-portal#3881 to update PHP code samples for the XRPL_PHP library's 2.x namespace change.
xrpl.js automated security scans — Three automated vulnerability issues were opened for the newly released packages: xrpl@5.1.0, ripple-binary-codec@2.10.0, and mpt-crypto@0.1.1. These are pipeline-generated and under review.
Compared to last week (August 17–23, 2026):
| Metric | This Week | Last Week | Change |
| Repos with activity | 8 | 8 | flat |
| rippled PRs merged | 40 | 36 | ↑4 |
| rippled PRs opened | 12 | 18 | ↓6 |
| rippled new issues | 0 | 4 | ↓4 |
| rippled closed issues | 1 | 2 | ↓1 |
| rippled releases | 0 | 0 | flat |
| rippled commits | 31 | 35 | ↓4 |
| xrpl.js PRs merged | 4 | 3 | ↑1 |
| xrpl.js PRs opened | 8 | 30 | ↓22 |
| xrpl.js new issues | 3 | 2 | ↑1 |
| xrpl.js releases | 3 | 0 | ↑3 |
| xrpl-py PRs merged | 1 | 3 | ↓2 |
| xrpl-py PRs opened | 2 | 3 | ↓1 |
| xrpl-py new issues | 0 | 1 | ↓1 |
| xrpl-py releases | 0 | 1 | ↓1 |
| xrpl4j PRs merged | 3 | 0 | ↑3 |
| xrpl4j PRs opened | 6 | 3 | ↑3 |
| xrpl4j new issues | 2 | 3 | ↓1 |
| xrpl4j releases | 2 | 0 | ↑2 |
| xrpl-dev-portal PRs merged | 21 | 19 | ↑2 |
| xrpl-dev-portal PRs opened | 15 | 14 | ↑1 |
| xrpl-dev-portal new issues | 1 | 0 | ↑1 |
| xrpl-dev-portal commits | 4 | 26 | ↓22 |
| Clio PRs merged | 17 | 5 | ↑12 |
| Clio PRs opened | 5 | 10 | ↓5 |
| Clio releases | 4 | 2 | ↑2 |
| Clio commits | 17 | N/A | — |
| XRPL-Standards PRs merged | 1 | 1 | flat |
| XRPL-Standards PRs opened | 6 | 6 | flat |
| XRPL-Standards new issues | 4 | 0 | ↑4 |
| opensource.ripple.com PRs merged | 4 | 1 | ↑3 |
| opensource.ripple.com PRs opened | 1 | N/A | — |
| opensource.ripple.com new issues | 1 | N/A | — |
| opensource.ripple.com commits | 9 | N/A | — |
| Total PRs merged (all repos) | 91 | 68 | ↑23 |
| Total releases | 9 | 3 | ↑6 |
Carryovers from last week: The vault precision stack (rippled#8057, #8055, #8075), vault destination checks (#7977), MPT/DEX audit fixes (#7334), online delete circuit breaker (#5531), vault invariants (#7732), loan impairment fix (#6557), and xrpl4j Confidential Transfer (xrpl4j#810) all transitioned from "In Progress" last week to merged this week. This drove the total merged count from 68 to 91 — a 34% increase. Clio had a particularly strong week with 17 merges (up from 5) as multiple bug fixes and features accumulated for the 2.8.1 release candidates. xrpl.js landed 3 releases after shipping none last week.