Simple Base SwapSimple Base SwapOpen app
← All articles
Aug 21, 2026·5 min read

Batch Transactions Explained: How EIP-5792 Lets Your Wallet Combine Multiple Steps Into One

basewalletseip-5792smart-walletseducation
base

If you have used a token swap before, you already know the two-step dance. First you approve the app to spend your token, confirm that in your wallet, wait for it to land, then approve the swap itself and confirm again. Two signatures, two waits, sometimes two separate gas payments. On some newer Base wallets, that dance is disappearing. You approve once, and both steps execute together. This is called a batch transaction, and it is made possible by a standard called EIP-5792.

What a batch transaction actually is

Every action you take onchain, an approval, a swap, a deposit, is normally its own separate transaction with its own signature and its own place in a block. A batch groups several of these calls together and sends them to the network as one unit. Instead of "sign this, wait, sign that," you get "review this list of actions, sign once."

The important word is atomically. When a wallet executes a batch atomically, all the calls in it succeed together or fail together. There is no state where your approval went through but the swap did not. That matters because the in-between state, an approval sitting there without the action it was meant for, is exactly the kind of loose end that token approval risks are about. A well-built batch closes that gap rather than leaving it open.

Where EIP-5792 fits in

EIP-5792 is an Ethereum standard, technically titled the Wallet Call API, that gives apps and wallets a shared language for batching. Before it existed, every wallet that wanted to offer batching had to invent its own way of doing it, and apps had no reliable way to ask for it. EIP-5792 standardizes the request so any compatible app can ask any compatible wallet to batch calls, and get a predictable answer back.

It defines a small set of methods that apps and wallets speak to each other:

  • wallet_sendCalls is the request an app sends when it wants your wallet to process a group of calls together. This is what triggers the single confirmation screen you see instead of several.
  • wallet_getCallsStatus lets the app check in on a batch after it has been sent, so it can show you whether everything went through, is still pending, or failed.
  • wallet_getCapabilities lets the app ask your wallet ahead of time what it actually supports, since not every wallet handles batching, or handles it the same way.

None of this changes what a transaction is at the protocol level. It changes how your wallet packages and presents transactions to you, and how clearly an app can ask for that packaging in advance.

Why this needs a smart wallet

A traditional wallet, the kind controlled by a single private key, can only produce one signature over one transaction at a time. There is no built in concept of "these three actions are actually one unit." Smart wallets, the kind that run on account abstraction instead of a bare private key, are programmable, which is what makes batching possible in the first place. This is the same underlying shift covered in our ERC-4337 explainer: once your account is a small program rather than just a key, that program can define what counts as a valid group of actions, not just a valid single one.

In practice on Base today, this shows up most visibly in Coinbase's Smart Wallet, which was an early adopter of EIP-5792, and in a growing number of apps that build their swap or checkout flows around it. If you are using a standard externally owned wallet without smart account features, you will still see the familiar two-step approve-then-swap flow, and that is completely normal. Batching is an added capability some wallets offer, not a requirement every wallet must meet.

What changes for you, practically

A few things line up:

Fewer confirmations. Instead of clicking through separate approve and swap prompts, you review one screen that lists everything the batch will do, then sign once.

Potentially lower gas. Bundling calls into one transaction can save on the overhead of processing multiple separate transactions, though the exact savings depend on the wallet and the calls involved.

No stuck-in-between state. Since an atomic batch either completes fully or not at all, you avoid ending up with a live approval and no swap to show for it, or a swap that silently failed because a prior step in a manual sequence did not go through.

Read what you are signing. A batch confirmation screen is still just a summary of several separate actions. The same rule that applies to any wallet signature request applies here: read what the batch actually contains before you approve it, especially the approval amount if one is included, rather than treating a single click as automatically safe just because it replaced two clicks.

The short version

Batch transactions let a wallet bundle several onchain actions into one atomic unit instead of asking you to sign each one separately. EIP-5792 is the standard that lets apps request this from a wallet and check on the result, and it depends on smart account wallets that can process programmable logic rather than a single fixed signature. The transactions underneath have not changed, only how many times you are asked to approve them, and it is still worth reading what a batch contains before you confirm it.

Sources: EIP-5792: Wallet Call API, Base Documentation: Batch Transactions, Coinbase: A New Era in Crypto Wallets

Ready to try it yourself?

Create a non-custodial wallet on Base in seconds. No account, no sign-up.

Open the web app