Record and batch-send transactions to save time & gas!

The problem SafeBatch solves

How many times have you executed N-transactions in a row to make the Dapps do something? (Approve ERC20, Swap, Stake, Unstake, Claim, etc). We know it's a bit annoying, but it becomes WAYYY MORE annoying in the case of multi-sigs!

Imagine calling the Safe signers after pressing Approve button on a Dapp because the Add Liquidity button won't be unlocked for you until sufficient signers sign and execute the approval transaction. And then waiting to receive the LP tokens the same way, and finally waiting for the staking transaction to go through.

The community has built batching solutions to this but all of them either require a change in the frontend code of the Dapp, or some sort of wrapping smart contract. We realised it's just a UX problem, which can be mostly solved with some simulation and clever hacking :)

What does it look like for the users?
Open the SafeBatcher UI, enter the walletconnect URL and "Start Recording". After that, they can execute the transactions as if they already had sufficient signatures for multi-sigs. So YES, they don't have to wait for others to sign to unlock UI interactions likes Swap Button, Stake button, or Claim button!. Once done with recording transactions, click "Stop Recording". That's pretty much it.

How does it work?
In short, SafeBatcher acts like a middleware which simulates the transactions on a fork (that's initiated when start recorded is clicked) by patching the multi-sig logic, returning the new state to the Dapp so that all the UX interactions can be unlocked. And more importantly, even not-so-tech-savvy users will be able to get those benefits.

In long, check this diagram :)


All that's cool, but why use SafeBatcher?

Our solution will be able to reduce the number of UI interactions needed by a factor of N! and the base gas cost by a factor of N-1

Challenges we ran into

Coming up with approaches to simulate a multi-sig transaction on a fork without having all the signatures.