You have five contributors to pay this week. Sent one at a time, that's five signatures, five nonces, and five separate rolls of the base-fee dice. Sent as one call to a batch contract, it's one of each. That gap is what "batching transactions to save gas basics" really comes down to, and it's worth understanding before you sign anything.
What batching actually does
Every transaction on Ethereum and similar chains carries a floor cost: the base fee plus intrinsic gas, the 21,000 gas a plain ETH transfer consumes just for existing. That floor does not care how much work sits inside the transaction. One transfer pays it once. Five separate transfers pay it five times. Batching combines several actions into fewer on-chain operations so you pay that floor less often.
It does not make gas free, and it does nothing for you if you only have one action to run. It trims the wrapper around the work, not the work itself.
The overhead people forget
The base fee is only the visible part. Each separate transaction also needs its own signature and nonce, and each is another chance to overpay because you set a gas limit carelessly. Fewer transactions means fewer of those small leaks.
What batching cannot fix
If your actions write to expensive storage, batching won't rescue you. Writing a fresh storage slot costs what it costs, bundled or not. Batching reduces repetition, not the price of the underlying operations.
Three ways people batch in practice
Multisend contracts
A multisend contract takes a list of recipients and amounts and executes them in one call. This is the classic case: paying contributors, distributing tokens, sending refunds. You still pay per-transfer gas inside the contract, but you pay the base fee and produce a signature once.
Smart account batch execution
Smart contract wallets and account abstraction setups let you queue several calls and execute them together. Approving a token and swapping it becomes one flow instead of two confirmations. Here batching is as much about convenience as cost.
Protocol-level batching
Rollups post many users' transactions to the underlying chain as one batch, which is a large part of why fees on those networks tend to run lower. You do nothing; the network handles it.
A worked example
Say you need to send ETH to five people and a plain transfer costs roughly 21,000 gas. Sent separately, that's about 105,000 gas in intrinsic cost alone, before any per-transfer overhead inside a contract. Bundle them through a multisend and you pay that floor once.
I learned this the hard way. I paid four contributors in four separate transactions during a busy period, and the base fee spiked between the second and third. Two of those payments cost noticeably more than the first. Batched, I'd have locked in one fee environment instead of gambling four times. The lesson wasn't that batching is magic. It was that every extra transaction is another roll of the dice on timing.
| Approach | Base fee paid | Signatures | Best for |
|---|---|---|---|
| Separate transactions | Once per action | One per action | Unrelated, one-off actions |
| Multisend / batch contract | Once total | One total | Paying or sending to many addresses |
| Smart account batch | Once total | One total | Multi-step DeFi flows |
Where batching backfires
Batching concentrates risk. If one action reverts and the batch is atomic, everything fails together and you've paid gas for a transaction that did nothing. Timing is another constraint: a batch is one shot, so if you'd rather spread payments across days to manage cash flow, batching forces your hand.
There's also a security angle. Batch contracts and smart accounts are code, and code gets exploited. Before you approve a batch of transfers through an unfamiliar contract, check what it can do with your tokens. Platforms that surface full transaction details are worth using for exactly this reason: you want to see the complete call before you sign, not after.
Checklist before you batch
- Are the actions genuinely related, or am I forcing them together?
- Does the batch contract have a clean, audited history?
- Am I okay with all-or-nothing failure?
- Is the per-action gas inside the contract actually cheaper than separate sends?
That last point deserves emphasis. A poorly optimized batch contract can cost more per recipient than a plain transfer, so do the math on a small test batch first.
Frequently asked questions
Does batching always save gas?
No. It saves the fixed overhead of repeated transactions, but the underlying work still costs what it costs. An inefficient batch contract can leave you paying more than separate transfers would. Test small and compare actual gas used before committing to a large batch.
What happens if one transaction in a batch fails?
It depends on how the batch is built. Many batch contracts are atomic: if one call reverts, the whole batch reverts and you lose the gas spent. Others allow partial success. Know which type you're using before sending anything important through it.
Is batching only for sending payments?
No. Approvals, swaps, and multi-step DeFi interactions are common batch candidates, especially through smart accounts. The principle holds: fewer transactions, less repeated overhead. Just confirm every step is something you actually want executed together.
Before your next multi-recipient payout, run one small batch through the contract and compare the gas used against what separate sends would have cost. If the numbers don't clearly favor batching, send them separately.