When a smart wallet batch transaction fails, the parts that were already successful do not roll back. Actually, for a standard smart wallet batch transaction, it's all-or-nothing: either every operation succeeds or every operation fails, so there is no partial success situation where some succeed and some fail, because the underlying mechanism guarantees atomicity. However, if you are using certain custom wallets or specific protocol interfaces, things can be different.
Case A: Standard ERC-4337 Smart Wallet Batch Transactions
This is the default behavior for mainstream smart wallets (like those created via Alchemy). The wallet calls the executeBatch() function to bundle multiple operations into a single on-chain transaction.
Mechanism:
executeBatch()is designed as an atomic operation. During on-chain execution, if any sub-operation fails (reverts), the entire batch transaction rolls back at that point, and no operation takes effect.Completion standard: On a block explorer, if the transaction status is "Success," all operations succeeded; if it is "Failed," none went through.
Case B: Batch Transactions Using Custom flowControl with EIP-5792
Some wallets and DApps have started adopting the newer EIP-5792 standard, which lets the frontend specify what to do when a failure occurs—roll back everything, stop, or ignore the failure and continue executing.
How it works: When sending the transaction, the DApp labels each sub-operation via the
wallet_sendCallsmethod. If it marksonFailure: "continue", that sub-operation will not trigger a rollback if it fails; execution moves on to the next operation.Completion standard: In this mode, you might see "first succeeds, second fails, third succeeds." Check the wallet's signature confirmation screen—it will clearly state that this batch transaction has "loose atomicity," and failures won't roll back.
High risk: Some wallets or chains, aiming for performance, do an "optimistic estimation" during the simulation phase, mistakenly assuming the balance will cover all operations. Only midway through do they discover insufficient funds, causing later operations to fail. But the ones already executed are on-chain and cannot be undone. If you see "allow partial success" or a similar warning on the confirmation screen, check every amount carefully—failed later steps will not reverse the earlier transfers.
Case C: Regular EOA Wallet Manual Batch Sending
If you use an EOA wallet like MetaMask and send transactions one after another, that's a completely different story.
Mechanism: Each transaction has its own nonce and is completely independent. If the third transaction fails, the first two are already confirmed on-chain, and there is no rollback mechanism.
Completion standard: This is the common "two transactions go out, third gets stuck" scenario. Check nonce order on a block explorer: after the failed transaction's nonce, if that nonce isn't consumed, later transactions will be stuck.
After the Operation
Verification: Go to Etherscan or the relevant chain explorer and look up the hash of that "batch transaction." If the transaction status is
Success, all sub-operations inside it succeeded. If it'sFail, all sub-operations rolled back—as if nothing happened.Next steps: If you encounter the "partial success" from Case B, immediately check your wallet's history for each sub-operation's hash and amount. Find the failed sub-operation and send a separate transaction to make up for it. Do not retry the whole batch using the batch function, or you'll repeat the ones that already succeeded.


