I am in the process of updating a DAPP so that it requires a 2/3-multisig address in order to call some functions, but I fail to find information about how to verify that an address is of this type or not, or how to do this in a different way if the aforementioned approach is not the appropiate.

Any ideas/resources on how to do this?

1 Answer 1


The best you can probably do is check the code size to see if it's a contract or an EOA (external owned account) address:

uint size;
assembly {
    size := extcodesize(_address)

This will be zero if it's an EOA and non-zero if it's a contract. There isn't a way to check if a contract is a multi-sig because there's no standard around multi-sig contracts.

  • A workaround to make a EOA address pass by that check is to just create a contract that calls the function that checks this right? Given that there is no standard, would it be a good approach to simply program a contract that somehow implements the same 3/2-multisig functionality within the program itself, until there is a standard around it?
    – ranchalp
    Nov 21, 2017 at 21:44

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.