Efficiently call multiple contracts in a single transaction.
Enables "forwarding" of msg.sender
to the contracts called.
Please open an issue if you need help to deploy to an EVM chain of your choice.
- Ethereum
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Goerli
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Sepolia
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Holesky
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Polygon
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Mumbai
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Optimism
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
- Arbitrum
- Multicaller:
0x0000000000002Bdbf1Bf3279983603Ec279CC6dF
- MulticallerWithSender:
0x00000000002Fd5Aeb385D324B580FCa7c83823A0
- MulticallerWithSigner:
0x000000000000D9ECebf3C23529de49815Dac1c4c
- Multicaller:
src
├─ Multicaller.sol — "The multicaller contract"
├─ MulticallerWithSender.sol — "The multicaller with sender contract"
├─ MulticallerWithSigner.sol — "The multicaller with signer contract"
└─ LibMulticaller.sol — "Library to read the multicaller contracts"
You can use the src/LibMulticaller.sol
library in your contracts to query the multicaller with sender contract efficiently.
To install with Foundry:
forge install vectorized/multicaller
To install with Hardhat or Truffle:
npm install multicaller
The contracts are designed with a priority on efficiency and minimalism.
We do not give any warranties and will not be liable for any loss incurred through any use of this codebase.
Please read the API docs / Natspec, test with your code, and get additional security reviews to make sure that any usage is done safely.
Multicaller is inspired by and directly modified from:
This project is a public good initiative of sound.xyz and Solady.
We would like to thank our reviewers and contributors for their invaluable help.