rippled 3.1.1 shipped this week as a security hotfix, disabling the Batch (XLS-56) and fixBatchInnerSigs amendments after a critical signature-validation bug was discovered and publicly disclosed. Alongside the release, the developer documentation site received a major tutorials landing page overhaul and a heap memory optimization landed in the core server to reduce RAM usage on long-running Linux nodes.
This week's most important development was the release of rippled 3.1.1, a security hotfix for the XRP Ledger's reference server software. Researchers discovered a serious flaw in the "Batch" feature — a proposed upgrade that would let users bundle multiple transactions together. The bug meant an attacker could potentially execute transactions on behalf of any account without having that account's private key, which could have enabled theft of funds. Crucially, the Batch feature had not yet been activated on the main network, so no real funds were ever at risk. The fix disables Batch entirely until a corrected version can be built and reviewed. Validators and server operators should upgrade to 3.1.1 immediately. Note that Ripple has also changed the security key used to verify the software package — the blog post linked above explains how to update your verification setup.
A second notable change in 3.1.1 is a memory optimization for nodes running on Linux. Over time, servers can hold on to RAM even after they've finished using it, slowly increasing memory consumption. The update adds an explicit step after each internal cleanup cycle that tells the operating system it can reclaim that unused memory. This means long-running validator and full-history nodes should use less RAM over time, which can reduce hosting costs. The team tested this on Mainnet and a full performance report is being prepared.
On the developer tooling side, the official XRPL documentation site (xrpl.org) received a substantial update this week: a new tutorials landing page that organizes guides by category and automatically detects which programming languages each tutorial supports, plus a new feature that syncs your coding language preference (JavaScript, Python, etc.) across all pages and remembers it for your next visit. The Python SDK (xrpl-py) also dropped support for Python 3.8, which has been past its end-of-life date since October 2024 — developers using xrpl-py should ensure they are on Python 3.9 or newer. For full details, see the 3.1.1 release page, the vulnerability report, and follow @XRPLF and @RippleXDev for ongoing updates.
rippled 3.1.1 was released on 2026-02-23: release notes | blog post
The release marks both Batch (XLS-56) and fixBatchInnerSigs as Supported::no, preventing them from activating on any network. This followed the public Vulnerability Disclosure Report (2026-02-26) confirming that a critical logic flaw in Batch's signature-validation code — identified by Pranamya Keshkamat and Cantina AI on February 19 — could have allowed an attacker to execute inner transactions on behalf of arbitrary accounts without their private keys. The amendment was in its voting phase and had not activated on mainnet; no funds were at risk.
Action required for validators and node operators: Upgrade to 3.1.1. Note that Ripple has also rotated the GPG key used to sign rippled packages — details on the blog.
The hotfix changes were cherry-picked into develop via rippled#6417 to ensure future releases inherit the fix. A corrected replacement amendment (BatchV1_1) is under development; no release timeline has been set.
Devnet reset: Devnet was reset on March 3, 2026 to prevent validators running 3.1.1 from becoming amendment-blocked. The reset deleted all Devnet ledger data (accounts, balances, transactions). Mainnet, Testnet, and other networks were unaffected.
rippled#6022 — Introduces a MallocTrim utility in libxrpl that calls malloc_trim(0) on Linux/glibc systems after each cache sweep, returning freed heap pages to the OS. On non-Linux builds the helper is a no-op. Approved by 2 reviewers; tested internally and on Mainnet. A blog post with full performance results is in progress. (+442 lines in 4 files)
rippled#6440 — The monolithic InvariantCheck.h (733 lines) and InvariantCheck.cpp (3,483 lines) were split into 10 focused header/source pairs under a new invariants/ subdirectory. A shared Privilege enum was extracted into its own header. This makes the invariant system significantly easier to navigate and extend. Approved by 2 reviewers. (+4,423/-4,220 in 23 files)
rippled#6356 — Adds an optional Data (sfMemoData) field to the VaultDelete transaction, allowing vault creators to record a reason for deletion. Spec reference: XRPL-Standards#470. Approved by 1 reviewer. (+80/-16 in 3 files)
The XLS-66 Lending Protocol spec (XRPL-Standards#240) was also merged into the standards repository this week, formalizing the draft spec for on-chain lending.
XRPL-Standards#464 — A new XLS draft covering enhancements to the server_definitions RPC (Formats, Fields, and Flags) was merged and assigned XLS-97. Approved by 2 reviewers. (+6,983 lines in 2 files)
Several significant doc updates shipped this week in xrpl-dev-portal:
Batch and fixBatchInnerSigs now marked as obsolete. Setup scripts migrated from Batch to Tickets.CalloutMediaBanner, Video, SectionHeader), reorganized structure, accessibility improvements. (+1,328/-894 in 121 files)rippleci/rippled:develop tag and updates the container entrypoint to xrpld, fixing integration test failures..envrc removed after reviewer feedback).uint256 const& directly instead of a round-trip through void*, simplifying internal code. Approved by 3 reviewers.InterestUnrealized field to Vault ledger entries for cash-basis share valuation. Changes requested.dangell7/batch-v1 branch (9 commits ahead of develop) is active. Watch for a PR to open with the corrected Batch implementation.perform-vulnerability-scan-for-pull-request branch, 3 commits ahead) — Adds Trivy security scanning to PR workflows; a PR appears imminent.AMMClawback.asset docs incorrectly imply XRP is a valid input. A fix PR is likely.Batch had been disabled as a precaution to ensure fixBatchInnerSigs would activate first.online_delete rotation cycles. Core team members clarified the two-database rotation design. A community validator operator noted this and documented tuning guidance in their own validator dashboard.AMMClawback transaction docs imply XRP is a valid asset field input, but the implementation throws temMALFORMED for XRP. Open for a doc fix.AccountDelete best practices including checking for deletion blockers and using fail_hard.SeedCodec.encode not used (xrpl4j#706) — Potential code duplication in the Java SDK's seed encoding path flagged for investigation.| Metric | Count |
| Repos with activity | 7 |
| rippled PRs merged | 17 |
| rippled PRs opened (new) | 0 (week's open PRs were previously tracked) |
| xrpl-dev-portal PRs merged | 10 |
| xrpl-dev-portal PRs opened | 3 |
| xrpl-py PRs merged | 3 |
| xrpl.js PRs merged | 1 |
| xrpl.js PRs opened | 2 |
| xrpl4j PRs merged | 1 |
| xrpl4j PRs opened | 2 |
| clio PRs merged | 5 |
| clio PRs opened | 1 |
| XRPL-Standards PRs merged | 4 |
| XRPL-Standards PRs opened | 5 |
| Releases | 1 (rippled 3.1.1) |
| New XLS specs assigned | 1 (XLS-97) |
| rippled commits this week | 10 |
| xrpl-dev-portal commits this week | 63 |
| New issues opened (all repos) | 7 |