XRPL Batch Transactions in 2026: Atomicity, Fees, Failure Modes, and Scale
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.
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:
- All or Nothing: every inner transaction must return
tesSUCCESS, otherwise none of their state changes apply. - Only One: the first transaction that succeeds is the only success; later entries are not applied.
- Until Failure: successful entries apply in order until the first failure, then the remaining entries are skipped.
- Independent: all entries are attempted, and one failure does not prevent other successful entries from applying.
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.
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.
| Operations | Full Batches | Batch fee | Separate fee | Batch overhead |
|---|---|---|---|---|
| 8 | 1 | 100 drops 0.0001 XRP | 80 drops 0.00008 XRP | 20 drops 25% |
| 80 | 10 | 1,000 drops 0.001 XRP | 800 drops 0.0008 XRP | 200 drops 25% |
| 800 | 100 | 10,000 drops 0.01 XRP | 8,000 drops 0.008 XRP | 2,000 drops 25% |
| 8,000 | 1,000 | 100,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.
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
- XRP Ledger, Batch Transactions, four modes, metadata, signing model, limitations, and integration guidance
- XRP Ledger, Batch transaction reference, 2-to-8 inner limit, flags, fields, fee components, and error cases
- XRP Ledger, Transaction Cost, 10-drop reference fee, Batch formula, load scaling, and fee destruction
- XRP Ledger, Known Amendments, original Batch retirement and BatchV1_1 replacement
- XRP Ledger, xrpld 3.3.0 release, BatchV1_1 implementation and eight-inner limit
- XRP Ledger, Batch vulnerability disclosure, dates, Mainnet non-activation, impact, and remediation
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.