XRPL Developments Weekly Summary
October 26 – November 1, 2026

TL;DR

A documentation-heavy week with 23 PRs merged on the developer portal — including content corrections for Permissioned Domains, confidential transfers, retired amendments, and a batch of dependency security patches. In xrpl.js, 3 PRs merged and two beta releases shipped (xrpl@5.4.0-beta.0 and ripple-binary-codec@2.12.0-beta.0) with Batch transaction fixes. In XRPL-Standards, the XLS-85 spec was updated to align MPT escrow error codes with the actual rippled implementation. In rippled, a wave of defensive-coding and robustness PRs were opened targeting SHAMap bounds, node store shutdown, and cache statistics — with only test and CI merges landing so far.

Summary

This week's XRP Ledger development was dominated by documentation improvements and preparation for upcoming changes. The developer website (xrpl.org) received its largest batch of updates in the comparison period — 23 pull requests merged — addressing everything from correcting outdated information to patching security vulnerabilities in the site's underlying software libraries. For anyone building on XRPL, the most notable content change was updating the Permissioned Domains page: it previously said Permissioned DEXes were "in development," but since this feature is now live on Mainnet, the docs now accurately reflect that. Several other corrections landed too, including clarifying that enabling confidential token balances after token creation requires an additional protocol amendment (DynamicMPT), and fixing an incorrect claim that a particular account setting couldn't be turned off.

On the JavaScript SDK side, two beta versions were published — xrpl@5.4.0-beta.0 and ripple-binary-codec@2.12.0-beta.0. The main xrpl package beta fixes issues with Batch transactions (the feature that lets users bundle multiple transactions together): it now correctly allows LastLedgerSequence in inner transactions and properly requires sponsor signatures. These are beta releases, so they're available for testing but not yet recommended for production applications. Separately, the library's WebSocket connection code now protects against a scenario where a server could inject messages that mimic internal events — a defensive improvement that will ship in the next stable npm release.

Behind the scenes in the core server code (rippled), while only two minor PRs merged this week, a wave of 26 new pull requests were opened — most from the same developer working through a systematic robustness review. These changes add safety checks and bounds throughout the system: capping how much data a node sends in peer replies, limiting the size of data structures, ensuring all pending operations complete cleanly during shutdown, and fixing cache statistics that weren't being tracked correctly. None of these change how the network behaves — they make the server software more resilient against edge cases. These will be reviewed and start merging in the coming weeks, eventually reaching node operators in a future release.

For the latest updates, follow @XRPLF and @RippleXDev on X, and explore the XRPLF repos directly for full development activity.


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.

CI & Docs (rippled — merged to develop)

Dependencies & Build (rippled — merged to develop)

Developer Portal (xrpl-dev-portal)

A total of 23 PRs merged — a mix of documentation improvements, new content, and dependency security updates.

Content updates:

New listings:

Dependency security patches (11 PRs): DOMPurify (#4039), electron (#4037), postcss-selector-parser (#4035), undici (#4034), simple-git + @redocly/realm (#4019), follow-redirects (#4015), source-map-js (#3994), brace-expansion (#3992), smol-toml (#3991), and ws in two code-sample directories (#3724, #3722).

JavaScript SDK (xrpl.js — merged to main)

Clio (API Server)

XRPL-Standards


In Progress

rippled — Defensive coding and robustness stack: A core collaborator opened eight PRs targeting SHAMap, node store, and cache internals:

rippled — Authorization and trust line fixes: Two stacked PRs by a contributor address unauthorized trust line bypasses — requiring authorization for both AMM pool assets before acquiring LPTokens (rippled#8648, +716/−18) and closing the zero-balance exemption for unauthorized trust lines (rippled#8650, +948/−57, closes #5450). Both have Copilot-suggested changes.

rippled — Validator key rotation fix: rippled#8540 (+519/−83) — Tracks validators by NodeID instead of signing key so that key rotation doesn't drop them from amendment votes and laggard counts. Closes #8534. Has outstanding change requests from @ximinez with "just a couple more tweaks."

rippled — TaggedCache sweep thread cap: rippled#8243 (+187/−88) — Caps sweep worker threads at 8 instead of spawning one per CPU core. Approved by 3 reviewers including @nbougalis ("a good but partial fix… should go in as-is"). Currently has merge conflicts.

rippled — Batch preflight performance: rippled#8627 (+29/−25) — Eliminates per-insertion heap allocations in Batch (XLS-56) preflight by switching to std::flat_set with inline storage.

rippled — LoadManager fee adjustment fix: rippled#8643 (+253/−23) — Fixes the fee adjustment block executing only on shutdown instead of every second. Closes #8038. By a community member; still has open review findings.

xrpl4j — Three open bug fixes: Defensive UnsignedByte copying (xrpl4j#857, approved, labeled bug), 2-byte variable-length decode fix (xrpl4j#858, labeled bug, companion test PR from maintainer), and XrpCurrencyAmountDeserializer tightening (xrpl4j#860, approved).

xrpl-py — BIP39 mnemonic support: xrpl-py#1069 (+208/−0) — Adds Wallet.from_mnemonic() for deriving wallets from BIP39 phrases using the BIP44 path. Addresses the longstanding #419 request. By a community member.

xrpl-dev-portal — Batch tutorial expansion: xrpl-dev-portal#4038 (+1,594/−564, 18 files) — Adds Python and Go examples to the Batch transaction tutorials.

XRPL-Standards — Two-step loan creation spec: XRPL-Standards#570 (+574/−0, 6 files) — Specifies two-step loan creation under LendingProtocolV1_2, adding Vault.AssetsReserved and a LoanSet/LoanAccept flow to XLS-65 and XLS-66. Approved by AI reviewer across 4 reviews.


What to Watch Next Week


Community & Discussions

Community-contributed PRs: @FawwazLawal opened PRs across three repos this week — moving generateBlindingFactor() from protocol to test utilities in rippled (#8644, closes #7631), adding Wallet.from_mnemonic() to xrpl-py (#1069), fixing 2-byte VL decoding in xrpl4j (#858), and fixing broken links on opensource.ripple.com (#242). @rippleitinnz (community member) opened the LoadManager fee adjustment fix (rippled#8643). @SergeevDmitry (community member) contributed a fix to reject fractional drops in xrpl-py's drops_to_xrp (#1071) and filed a related issue about silent rounding in xrp_to_drops (#1072). @hmalinski (community member) opened a fix for out-of-range MPT amount encoding in xrpl.js (#3554), carrying forward @jarod-vyent's earlier work from #3410. @nabe3m contributed documentation fixes to xrpl-dev-portal (#4028, #4007), and @xVet contributed the Permissioned Domains update (#4031).

New issues: @interc0der reported that historical ledger 625681 returns an empty transaction list despite a non-zero transaction root on a full-history reporting node (rippled#8665). @gamween filed a Vault withdrawal invariant failure where fee-bearing IOU VaultWithdraw to a destination at a coarser scale fails with tecINVARIANT_FAILED on v3.5.0-rc1 (rippled#8664). @ckeshava documented a HashRouter caching bug where Rules-dependent tem results cause temBAD_SIGNATURE on resubmission (rippled#8647, labeled Bug). Automated security scans flagged dependency vulnerabilities in both xrpl@5.4.0-beta.0 (xrpl.js#3558) and ripple-binary-codec@2.12.0-beta.0 (xrpl.js#3559).

Standards discussions: @baali-who proposed a "Collateral Lock for Loans" amendment extending XLS-66 and XLS-85 — letting LoanSet pledge a borrower's token escrow so it cannot be released while a loan is unpaid (XRPL-Standards#676). @BraedonKlock proposed "Asset Spending Bounds" for restricting how accounts or delegated permissions can spend specific assets (XRPL-Standards#675). @Cavey773 proposed "Selective Blocking of NFT Offers" to let accounts block specific addresses from creating buy/sell offers (XRPL-Standards#674).


By the Numbers

Compared to last week (October 19–25, 2026):

MetricThis WeekLast WeekChange
Repos with activity87↑1
rippled PRs merged210↓8
rippled PRs opened2616↑10
rippled new issues31↑2
rippled closed issues11flat
rippled releases00flat
rippled commits210↓8
xrpl.js PRs merged32↑1
xrpl.js PRs opened69↓3
xrpl.js new issues21↑1
xrpl.js closed issues10↑1
xrpl.js releases20↑2
xrpl.js commits32↑1
xrpl-py PRs merged00flat
xrpl-py PRs opened73↑4
xrpl-py new issues10↑1
xrpl-py releases00flat
xrpl-dev-portal PRs merged234↑19
xrpl-dev-portal PRs opened917↓8
xrpl-dev-portal new issues20↑2
xrpl-dev-portal commits256↑19
Clio PRs merged23↓1
Clio PRs opened10↑1
Clio releases11flat
Clio commits23↓1
XRPL-Standards PRs merged21↑1
XRPL-Standards PRs opened45↓1
XRPL-Standards commits21↑1
xrpl4j PRs merged04↓4
xrpl4j PRs opened42↑2
xrpl4j releases01↓1
Total PRs merged (all repos)3224↑8
Total releases32↑1

Carryovers from last week: The XLS-85 error code alignment PR (XRPL-Standards#671), noted as "In Progress" last week, merged on Monday. The Batch preflight performance PR (rippled#8627) and ApplyContext refactoring PR (rippled#8637) remain in progress. The dropsToXrp BigNumber PR (xrpl.js#3341) still has failing browser tests.

Trends: Total merges rose from 24 to 32, driven almost entirely by the developer portal's large batch of dependency security updates and content corrections (23 merges, up from 4). rippled merges dropped to just 2 (CI/test only), but opened PRs surged to 26 — a notable wave of robustness and defensive-coding work now queued for review. xrpl.js shipped its first beta releases since the previous period. The opensource.ripple.com repo appeared in activity for the first time in the comparison window. xrpl-py saw increased community engagement with 7 PRs opened (up from 3), though none merged yet.

Generated on November 1, 2026 at 05:48 AM UTC using claude-opus-4-6