enter image description here

Good day to all, I know that msg.sender is eoa if multicall delegate some function to (this), but what if we will pass in callData selector of Multicall with params of other function? So eoa->multicall->multicall->other function. Who will be msg.sender when calling other function? The same issue was in ethernaut puzzle wallet, but it was about avoid mapping addition info. Thank you!

1 Answer 1


As long as all the calls are delegatecalls throughout the entire execution, then msg.sender will be the EOA that submitted the transaction.

Unless one of the multicalls or the other function calls (not delegatecalls) another contract, all execution will be performed in the context of the first contract that you called which in this case should be the multicall contract.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.