← All posts
14 SEPTEMBER 2026 · 12 MIN READ · XRPL RESEARCH

XRPL Batch Transactions in 2026: Atomicity, Fees, Failure Modes, and Scale

By XORA · Published

TL;DR: XRPL Batch transactions package 2 to 8 inner transactions under one outer transaction, with four modes controlling whether zero, one, a prefix, or independently successful operations apply. The corrected BatchV1_1 amendment is supported in xrpld 3.3.0 but was not enabled on Mainnet when checked on 14 September 2026, so this is integration planning, not a claim of live Mainnet availability. At a 10-drop base fee, eight ordinary single-account operations would cost 100 drops as one full Batch versus 80 drops separately: a 20-drop atomicity wrapper, not a fee discount.

See the 8,000-operation math → Understand XRPL fees →

Status first: BatchV1_1 was not live on Mainnet

The word “supported” is not the same as “enabled.” The official xrpld 3.3.0 release notes introduced the corrected BatchV1_1 amendment in August 2026. However, a direct feature query to Ripple's public Mainnet server on 14 September returned supported: true and enabled: false at validated ledger 106,980,376. Production systems should query current amendment state rather than infer availability from a server release.

That distinction matters because the original Batch amendment never activated on Mainnet. A critical authorization flaw was reported on 19 February 2026. The official vulnerability disclosure says no Mainnet funds were at risk, validators were advised to vote no, and xrpld 3.1.1 marked the original amendment unsupported. BatchV1_1 replaces it with corrected signing checks. The known amendments registry preserves that replacement history.

Deployment rule: do not send Batch transactions to Mainnet while BatchV1_1 remains disabled. Build behind a feature check, test on a network where the amendment is enabled, and keep a non-Batch fallback until the Mainnet response changes.

What is actually atomic?

A Batch has one outer transaction and an ordered RawTransactions array. According to the protocol reference, the array must contain at least two and no more than eight inner transactions. Each inner transaction sets tfInnerBatchTxn, uses Fee: "0", carries no direct signature, and identifies its sequence or Ticket. A nested Batch is invalid.

“Atomic” does not always mean all or nothing here. It means the ledger processes the package as one coordinated unit under the selected mode. Exactly one mode flag is required:

State-change outcomes for the four XRPL Batch modes when operation three fails With eight operations where operation three fails and all other attempted operations would succeed, All or Nothing applies zero, Only One applies one, Until Failure applies two, and Independent applies seven. 8 inner operations · operation 3 fails · all other attempts succeed ALL OR NOTHING 0 applied · entire set rolled back ONLY ONE 1 applied · first success only UNTIL FAILURE 2 applied · stop at failed op 3 INDEPENDENT 1, 23 fails4, 5, 6, 7, 8 Applied state changes: 0 · 1 · 2 · 7 Illustrative outcome, not a prediction of which transaction will fail
Failure mode changes the business result. In this eight-operation example, the same failure at position three produces zero, one, two, or seven applied state changes depending on the selected flag.

Why outer tesSUCCESS is not enough

The outer transaction handles its own sequence and fee. The official Batch integration guide warns that its result can be tesSUCCESS even when one or more inner transactions fail. Each committed inner transaction has separate metadata and a ParentBatchID pointer back to the wrapper. Inner transactions that validate do so in the same ledger as the outer one.

This creates a precise monitoring requirement: validate the outer hash, fetch every committed inner result, reconcile the count against the selected mode, and update each business operation separately. Never turn one outer success into eight customer success receipts. In particular, a tec result can be committed while representing a failed operation and can still consume that account's sequence or Ticket. Its inner Fee is zero because the outer transaction has already paid the package cost. A malformed tem result rejects the construction before it can become a successful ledger action.

Sequence accounting also depends on what actually validates. Wallets should wait for the validated outer result and inspect inner metadata before advancing local sequence assumptions. For multi-account packages, every participating account must authorize the collection, not just its own isolated line item. A signer is approving the mode and complete bundle.

The exact fee formula

The XRPL transaction-cost documentation gives Batch a special formula. Before load scaling, the outer fee is two base fees, plus the sum of the normal fees for all inner transactions, plus one base fee for each additional signature such as a BatchSigner. The inner JSON fields show zero because their costs are collected by the outer transaction, not because their work is free.

Use a transparent baseline: base fee 10 drops, eight ordinary inner transactions at 10 drops each, one account, and no additional BatchSigners. The result is 20 + (8 × 10) = 100 drops, or 0.0001 XRP. Eight separate ordinary transactions cost 80 drops, so Batch adds 20 drops, a 25% fee overhead for a full eight-operation package. The value purchased is coordinated execution, not cheaper computation.

Fee composition of one eight-operation XRPL Batch At a 10-drop base fee, eight standard inner transactions contribute 80 drops and the Batch wrapper contributes 20 drops, totaling 100 drops, versus 80 drops if sent separately. One full 8-operation Batch · 10-drop base-fee assumption BATCH 80 drops · 8 inner fees 20 drops wrapper SEPARATE 80 drops · 8 standalone fees 0 40 drops 80 drops 100 drops Batch total: 100 drops = 0.0001 XRP · overhead: 20 drops = 25% Additional signatures, special inner fees, and network load increase the real fee
A full Batch is 20 drops more expensive than eight standalone reference transactions under the stated assumptions. Its benefit is an execution guarantee chosen by mode, not a lower minimum fee.

The 8, 80, 800, and 8,000-operation calculation

The eight-inner ceiling makes scale linear and auditable. For any operation count divisible by eight, full Batches required equal operations ÷ 8. Under the same 10-drop, ordinary-operation assumption, total Batch fees equal operations × 10 + batches × 20 drops. That simplifies to 12.5 drops per operation when every Batch is full.

OperationsFull BatchesBatch feeSeparate feeBatch overhead
81100 drops
0.0001 XRP
80 drops
0.00008 XRP
20 drops
25%
80101,000 drops
0.001 XRP
800 drops
0.0008 XRP
200 drops
25%
80010010,000 drops
0.01 XRP
8,000 drops
0.008 XRP
2,000 drops
25%
8,0001,000100,000 drops
0.1 XRP
80,000 drops
0.08 XRP
20,000 drops
0.02 XRP, 25%

At 8,000 operations, batching reduces the number of outer submission envelopes from 8,000 to 1,000, an 8× reduction. It does not erase the 8,000 inner operations from ledger processing or metadata. The total minimum fee becomes 0.1 XRP instead of 0.08 XRP, so the execution packaging adds 0.02 XRP. That is the useful trade: fewer coordinated submissions and explicit failure semantics in exchange for 20 drops per wrapper.

Full XRPL Batches and total fees for 8 through 8,000 operations Eight operations require one Batch and 0.0001 XRP; 80 require 10 and 0.001 XRP; 800 require 100 and 0.01 XRP; 8,000 require 1,000 and 0.1 XRP, using full eight-operation Batches at the stated fee assumptions. Scale ladder · every Batch filled with 8 standard operations 8 OPERATIONS 1 Batch 0.0001 XRP 100 drops 80 OPERATIONS 10 Batches 0.001 XRP 1,000 drops 800 OPERATIONS 100 Batches 0.01 XRP 10,000 drops 8,000 OPERATIONS 1,000 Batches 0.1 XRP 100,000 drops 8,000 operations: 1,000 outer submissions · 8× fewer envelopes Fee total scales 10× at each step because operations and wrappers both scale 10×
Original XORA calculation using the documented eight-inner limit and fee formula. Filling every Batch keeps the wrapper cost fixed at 2.5 drops per operation above the 10-drop inner baseline.

Where Batch is useful, and where it is not

The strongest use case is a dependency that must have an explicit failure contract: a token transfer plus platform fee, an NFT mint plus offer, or a two-party swap. All or Nothing prevents one leg from remaining after another fails. Only One can encode ordered fallbacks. Until Failure fits a deliberately sequential workflow. Independent consolidates coordination while preserving per-operation outcomes.

Batch does not increase consensus capacity, guarantee lower fees, or make business logic automatically safe. A large operator still needs idempotency, per-inner-transaction reconciliation, fee caps, LastLedgerSequence handling, and a rollback plan outside the ledger for downstream systems. The current simulate method is also incompatible with Batch, according to the official integration guide, so test coverage and preflight validation matter more.

Security review should cover the entire signed package. Multi-account participants authorize a shared result, while the original 2026 bug demonstrated why signer-loop correctness was critical. Treat amendment enablement, client-library support, explorer rendering, and wallet review UX as separate launch gates. Read XORA's security and custody model for the same principle applied to asset operations: protocol guarantees and operational controls are different layers.

FAQ

Are XRPL Batch transactions live on Mainnet?

No. On 14 September 2026, Ripple's public Mainnet server reported BatchV1_1 as supported but not enabled at validated ledger 106,980,376. The corrected amendment is available in xrpld 3.3.0, but validators must enable it before Mainnet can accept Batch transactions.

How many transactions fit inside one XRPL Batch?

A Batch requires at least two and allows at most eight inner transactions. Batches cannot be nested. Processing 8,000 operations at full capacity would therefore require 1,000 outer Batch transactions.

How much does an eight-operation Batch cost?

Under the standard 10-drop base-fee assumption, with eight ordinary 10-drop inner transactions and no additional BatchSigners, the minimum is 100 drops: 20 drops of wrapper overhead plus 80 drops for the inner transactions. Load scaling, special transaction types, and extra signatures can raise it.

Does an outer tesSUCCESS mean every inner transaction succeeded?

No. The outer result covers outer sequence and fee processing. Integrations must inspect each committed inner transaction's metadata and result code, linked through ParentBatchID, before marking individual operations complete.

Which Batch mode is atomic?

All or Nothing provides the strictest atomic outcome: every inner transaction must succeed or none of their state changes apply. Only One, Until Failure, and Independent deliberately permit different partial-execution patterns, so the selected mode must be displayed clearly before signing.

Related reading

Sources checked

Mainnet status was checked directly through Ripple's public feature API on 14 September 2026 at validated ledger 106,980,376. It returned BatchV1_1 supported: true, enabled: false. Amendment state, network load, and base fees can change after publication. All scaling figures are XORA calculations from the explicit assumptions shown above.

Put XRP to work, not idle on an exchange

Batch is coordination infrastructure, not an XRP yield source. XORA's separate offering is up to 22% APY value (15% native XRP yield, treasury-subsidised during a disclosed bootstrap, plus estimated XORA reward value). Returns are variable and never guaranteed; custody, liquidity, counterparty, operational, market, and reward-value risks remain.

xora.finance is where to put your XRP to work, earning up to 22% instead of leaving it idle on an exchange. Test the numbers with the XRP yield calculator, read how XRP yield works, and review security before choosing an amount that fits your risk tolerance.

Put your XRP to work → Review the risks →