An exceptionally active week with 93 PRs merged across 6 repos. In rippled, 68 PRs merged to develop — the standout work includes the complete FixedPrecision Vault stack (6 PRs introducing cash-basis accounting for the Lending Protocol), Smart Escrow transaction field handling and fee voting, a large SHAMap robustness stack (8 PRs), the Number type shrinking from 24 to 16 bytes, and the retirement of the fixAMMv1_1 amendment. In Clio, 16 PRs merged including mpt_issuances subscription support and a timeout cancellation bug fix. In xrpl4j, 4 PRs merged fixing ServerSecret byte zeroing and AffectedNode serialization round-tripping. The developer portal merged 4 PRs correcting MPT, Batch, and LoanPay reference docs. xrpl-py published beta v5.3.0b0.
This was one of the most active development weeks for the XRP Ledger, with 93 changes merged across the ecosystem. The biggest story is the complete landing of "FixedPrecision Vaults" — a six-part stack that introduces a new accounting model for the Lending Protocol. In plain terms, when the Lending Protocol eventually goes live, vault operators will be able to use "cash-basis" accounting where interest is recognized only when actually paid, rather than when it accrues. This is important for financial accuracy and regulatory alignment. The full stack — covering vault creation, deposits, withdrawals, loan setup, loan payments, and loan defaults — all merged to the development branch this week.
Smart Escrows (a feature that would let users attach small programs to escrow transactions) made significant progress: the code now validates and prices the three key fields (program code, data, and computational budget) and adds new votable network settings so validators can collectively set limits on contract size and cost. The programs can't actually run yet — the execution engine hasn't been merged to the main development branch — but the transaction structure and fee framework are now in place. Separately, the core data structure that nodes use to synchronize ledger state with each other (called a SHAMap) received eight fixes in a systematic hardening effort: nodes now detect and reject invalid data more reliably during synchronization, prevent race conditions in background threads, and refuse to mark corrupted data as permanent. For node operators, this means better resilience against malformed peer data once a release ships. The Number type used throughout the transaction engine was also shrunk from 24 to 16 bytes by simply reordering its internal fields — a zero-cost memory saving that touches every calculation the server makes. On the SDK side, the Java library (xrpl4j) fixed a bug where a security-related class (ServerSecret) was accidentally zeroing the caller's own secret bytes instead of its own copy, and fixed a serialization round-trip bug with transaction metadata. The Python SDK (xrpl-py) published a beta release (v5.3.0b0) that drops Python 3.8 support and includes earlier fixes. The Clio API server now supports subscribing to MPT issuance events, and the developer portal corrected several reference documentation errors in the MPT, Batch, and Lending Protocol pages.
For the latest updates, follow @XRPLF and @RippleXDev on X, and explore the XRPLF repos directly for full development activity.
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.
feature: LP1.2.EscrowCreate.Bytecode/Data and EscrowFinish.Gas, gated on featureSmartEscrow. This PR does not run WASM bytecode — the engine is not yet on develop.GasLimit, BytecodeSizeLimit, and GasPrice as votable network fee settings, gated on featureSmartEscrow.TransactionProposalCancel transaction type and Ticket reservation for the On-Chain Cosigner feature. (Was "In Progress" last week — now merged.)ValidTransactionProposal, a global invariant enforcing creation/modification/deletion rules for TransactionProposal ledger entries.fixAMMv1_1 to the retired list and deletes its conditional code paths, keeping only the enabled behavior. Net reduction of ~1,000 lines.SHAMapAddNode verdict counts (#8080), opening acquisition test seams (#8081), signaling local InboundLedger failures (#8082), making sync-path state atomic (#8083), reporting invalid addKnownNode verdicts (#8084), refusing invalid immutable maps/ledgers (#8085, +764/−90), refusing walks of invalid maps in getMissingNodes (#8086), and judging header account hashes consistently (#8476). Collectively ~3,000 lines of production fixes and test infrastructure.fixCleanup3_5_0, arithmetic operators now throw std::overflow_error when the result is not representable, instead of invoking undefined behavior. (Was "In Progress" last week — now merged.)consumeOffer exceptions in BookStep and rejects issuer-sourced strands that loop back. (#8211 was "In Progress" last week — now merged.)temMALFORMED instead of charging the fee for bad conditions, gated on fixCleanup3_5_0.AmendmentTable to ensure consistent answers across validators.Number from 24 to 16 bytes by reordering data members. (Was "In Progress" last week — now merged.)account_currencies, account_nfts, account_offers; rippled#8573 (+953/−524) migrated account_info, account_lines, account_channels onto the xrpl-rpc-spec library.TxQ::apply into smaller functions.ledgersByIndex_ on nodes with online_delete and replaces direct mutex access with callbacks.misc-const-correctness (#8546, +4,155/−4,041, 517 files) and readability-trailing-comma (#8545, +15,054/−11,093, 242 files). (Both were "In Progress" last week — now merged.)mpt_issuances subscription support: clio#3253 (+823/−36) — Adds mpt_issuances to transaction subscription. (Was "In Progress" last week — now merged.)withTimeout cancellation race: clio#3252 (+118/−5) — Fixed a test-hanging bug where cancellation was lost between sub-operations. Closes issues #3249, #3250, #3251. (Was "In Progress" last week — now merged.)xrpl-rpc-spec to 0.1.24/0.1.25/0.1.26 (#3267, #3270, #3274), fixed clang-tidy checks (#3271, +247/−271), trailing-comma style (#3269, +3,389/−2,477), const-correctness (#3266, +1,038/−982), redundant lambda parameters (#3265), typedef cleanup (#3272), unified cmake/nix/conan (#3273), CI updates (#3264, #3263, #3259), CI fix for pre-commit (#3275), and reviewer assignment update (#3268).MPTokensV1. Closes #3921.tecEXPIRED and other missing errors to the LoanPay reference page.TransactionMetadata. Closes #750. Merged but pending release.@JsonValue so it serializes as a bare string instead of {"value":"AccountRoot"}. Merged but pending release.ServerSecret.of(byte[]) now defensively copies, and BcDerivedKeySignatureService no longer calls destroy() on shared/cached instances. Merged but pending release.rippled — Performance optimization batch: @mvadari has opened a series of approved performance PRs: avoid re-parsing STTx when relaying (#8593, approved by a core team member and AI reviewer), skip proposed-tx JSON when nobody subscribes (#8592, approved), use memcmp for BaseUInt comparisons (#8591, approved), remove SHAMap hot-path overhead (#8590, approved but has conflicts), make STVar/STObject/STArray moves noexcept (#8584, approved), avoid copying STTx in NetworkOPs (#8582, approved), and build log sinks only for new partitions (#8567, approved).
rippled — RPC-spec migration part E: rippled#8613 (+746/−320) — Migrates deposit_authorized, nft_buy_offers, nft_sell_offers. Early review.
rippled — Smart Escrows full feature PR (XLS-100): rippled#6329 (+46,719/−263, 419 files) — The umbrella PR for the full Smart Escrow feature. Has conflicts.
rippled — SponsoredAccountCreate: rippled#8606 (+1,532/−39) — New transaction for creating sponsored accounts with zero XRP balance.
rippled — Token-Enabled Payment Channels (XLS-93d): rippled#7935 (+7,817/−753) — Extends payment channels to IOUs and MPTs. Has conflicts.
rippled — Split LoanSet and LoanAccept: rippled#7820 (+7,365/−754) — Two-step loan creation. Active review with 209 review entries. Has build errors to resolve.
rippled — Unauthorized trust line enforcement: rippled#8150 (+2,534/−172) — Adds ValidTrustLineAuth invariant and accountHolds changes under fixCleanup3_5_0.
rippled — Increase nodes rescued by node store rotation: rippled#7793 (+187/−65) — Approved by 2 reviewers. Author notes it is "Ready to merge" once approvals are in.
rippled — withLock() helpers: rippled#8605 (+377) — Approved. Simplifies the common lock-copy-unlock pattern.
xrpl4j — Scope ObjectMapperFactory to xrpl4j types: xrpl4j#850 (+439/−32) — Breaking change scoping five Jackson features to org.xrpl.xrpl4j types only. Approved by 2 reviewers.
xrpl4j — Single Asset Vault support: xrpl4j#832 (+783/−4) — Adds LendingProtocolV1_1 vault transaction and ledger-object models. Has outstanding change requests from reviewer.
xrpl-dev-portal — Ruby SDK tutorial: xrpl-dev-portal#3837 (+339/−3) — Foundation-approved. Needs a rebase.
xrpl-dev-portal — Send Trust Line Token tutorial: xrpl-dev-portal#3732 (+1,383/−1,410) — Has outstanding change requests but reviewer noted the new structure is much improved.
Community contributions: @nabe3m contributed three merged documentation fixes to xrpl-dev-portal (#4002, #4003, #4004) and also filed XRPL-Standards#661 documenting an inconsistency where EscrowFinish/EscrowCancel returns tecNO_PERMISSION but the XLS-85 spec says tecNO_ENTRY for missing MPT holdings, and rippled#8587 for the same discrepancy. @agutierrez0 contributed a BouncyCastle version bump in xrpl4j (#845). @kutluhaneth46 opened a PR to return std::filesystem::path from TempDir (rippled#8565), addressing a year-old issue (#8007). @AlexanderBuzz's Ruby SDK tutorial PR (xrpl-dev-portal#3837) has Foundation approval and awaits a rebase. @GautamBytes has an open PR in Clio for subscription event queuing (clio#3245), awaiting conflict resolution and test fixes.
XRPL-Standards proposals: @quantova-inc proposed an Ecosystem XLS for "Qstamp Post-Quantum Evidence Anchor Memo" (discussion #663, PR #665) — a convention for anchoring post-quantum commitments to off-ledger records via transaction Memos, requiring no amendment. @oleks-rip opened XRPL-Standards#666 specifying SponsoredAccountCreate (XLS-68.1).
xrpl.js discussion: @opmonthetrack opened a Q&A discussion about reducing P95 latency in a multi-wallet XRPL scheduler (xrpl.js#3542), receiving architectural guidance from a community member.
Developer portal issues: @mDuo13 filed #4010 noting that the WebSocket tool gives constant error popups while typing invalid JSON.
Compared to last week (October 5–11, 2026):
| Metric | This Week | Last Week | Change |
| Repos with activity | 7 | 8 | ↓1 |
| rippled PRs merged | 68 | 41 | ↑27 |
| rippled PRs opened | 27 | 19 | ↑8 |
| rippled new issues | 6 | 4 | ↑2 |
| rippled closed issues | 1 | 3 | ↓2 |
| rippled releases | 0 | 1 | ↓1 |
| rippled commits | 59 | 39 | ↑20 |
| xrpl.js PRs merged | 0 | 0 | flat |
| xrpl.js PRs opened | 7 | 7 | flat |
| xrpl.js releases | 0 | 1 | ↓1 |
| xrpl.js commits | 0 | 0 | flat |
| xrpl-py PRs merged | 0 | 0 | flat |
| xrpl-py PRs opened | 2 | 6 | ↓4 |
| xrpl-py releases | 1 | 0 | ↑1 |
| xrpl-dev-portal PRs merged | 4 | 9 | ↓5 |
| xrpl-dev-portal PRs opened | 15 | 9 | ↑6 |
| xrpl-dev-portal new issues | 1 | 3 | ↓2 |
| xrpl-dev-portal closed issues | 1 | 4 | ↓3 |
| xrpl-dev-portal commits | 7 | 19 | ↓12 |
| Clio PRs merged | 16 | 5 | ↑11 |
| Clio PRs opened | 2 | 4 | ↓2 |
| Clio new issues | 0 | 3 | ↓3 |
| Clio closed issues | 9 | 4 | ↑5 |
| Clio releases | 1 | 1 | flat |
| Clio commits | 16 | 5 | ↑11 |
| XRPL-Standards PRs merged | 1 | 4 | ↓3 |
| XRPL-Standards PRs opened | 15 | 6 | ↑9 |
| XRPL-Standards new issues | 1 | 0 | ↑1 |
| XRPL-Standards commits | 1 | 4 | ↓3 |
| xrpl4j PRs merged | 4 | 1 | ↑3 |
| xrpl4j PRs opened | 8 | 0 | ↑8 |
| xrpl4j new issues | 2 | 0 | ↑2 |
| xrpl4j closed issues | 1 | 0 | ↑1 |
| xrpl4j commits | 4 | 1 | ↑3 |
| Total PRs merged (all repos) | 93 | 62 | ↑31 |
| Total releases | 2 | 4 | ↓2 |
Carryovers from last week: The Number optimization (rippled#8550), noted as "In Progress" last week with 3 approvals, merged this week. The int64 overflow detection PR (rippled#8453) and MPT/DEX offer fixes (rippled#8211), both in review last week, also merged. The Clio mpt_issuances subscription (clio#3253) and withTimeout cancellation fix (clio#3252) moved from "In Progress" to merged. The large clang-tidy sweeps (rippled#8546, rippled#8545) from last week's "What to Watch" also landed.
Trends: rippled merge volume surged from 41 to 68, the highest this reporting period, driven by the complete FixedPrecision Vault stack landing and the SHAMap robustness series. Clio tripled its merge count (5→16) as code quality alignment with rippled accelerated. xrpl4j went from quiet to very active (1→4 merged, 0→8 opened). No rippled release this week after last week's 3.4.1; all changes are accumulating on develop.