I have a list of owners in a smart contract and would like to require a minimum number of their approvals in order to execute some administrative functions. What's the simplest way to implement it? I am between using Gnosis Safe + Ownable but I would rather find a simpler and cheaper (in terms of gas costs) solution (preferable already audited). Do you know of any examples? Thanks!


For the problem given, a simple governance contract would be the best, where there should be a function to propose (only by owners), vote (only by owners), and execute/cancel (only by owners). Execution of proposal itself should be very simple, checking if proposal is already executed, and execution of submitted target, value, method signature, and calldata.

For reference check:


Gnosis Safe + Ownable

This is the easiest and most robust way. The fees on Gnosis Safe 2.0 are not that massive, as you pay only once at the transaction execution.

Gas fees as what they are and they are outside of your control.

  • Thanks! Could you link a simple example of this implementation?
    – Patricio
    Mar 23 at 12:34
  • I see it uses Ownable and that the owner can be a multisig, but coudln't find where it is actually deploying the multisig or any examples of that. Do you know if I can use GnosisSafe without their UI and in Ropsten? And if there is any documentation of a simple example of how to use it, sign messages, etc? Thanks!
    – Patricio
    Mar 23 at 15:27
  • You can deploy a new contract from Gnosis Safe UI itself. If not then you deploy the contract by hand or in a test suite as well. They might not support Ropsten, but they supported some test networks in the past. Mar 24 at 0:15
  • Using the Gnosis Safe is so simple that it does not need documentation. Mar 24 at 0:15

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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