Moloch Contract Deployment Walk through

So, you want your own Moloch DAO… Yum! :yum:

Here is a walkthrough of the initial configurations for the DAO deployment that you need to figure out and decide on before you do anything else.

summoner (address)
The DAO contract initially has one member with 1 share that allows that initial user or ‘summoner’ to summon the next members or add new proposals. This initial summoner account is no different from any other DAO member once voted in. No special privileges. 1 Shares = 1 Share.

_approvedToken: (address)
The DAO contract takes in any ERC-20 for pledges. Currently, the contracts only can use only one selected token. You input the token address of the token you want to be used as the DAO pledge.

Moloch & MetaCartel both use WETH

_periodDuration (uint256)
Period duration is the smallest unit account of time for the DAO and is measured as seconds. Eg. If you specify the period duration as 3600 (60 x 60 seconds) then the period duration would be an hour. This is important as this is the ‘lego’ brick that you use to set and account for your DAO’s voting period.

Moloch & MetaCartel both use 17280 as the period duration (4.8 hours)

Both DAOs, then both respective have 1 week voting periods and 1 week grace periods - hence the voting period and grace periods are 35 periods each.

  • 1 DAY = 4.8hrs x 5 (5 periods)
  • 1 WEEK = 4.8hrs x 5 x 7 (35 periods)

_votingPeriodLength (uint256)
How long you want to let members vote on proposals for.

Moloch & MetaCartel both use 35 periods (1 week)

_gracePeriodLength (uint256)
After a proposal is voted on and the verdict is decided upon, the DAO members are given a grace period - a period of time in which they can rage quit/leave the DAO without being diluted and ultimately affected by the proposal’s acceptance into the DAO.

Moloch & MetaCartel both use 35 periods (1 week)

Finally, there is the risk of capture. For example, while we’re all at Burning Man, everyone who isn’t attending decides to submit a proposal to give themselves all the ether in the Guild Bank. If the attackers submit this proposal before Burning Man, then the Burners will still be able to vote NO before they leave. If the attackers submit immediately after we leave for Burning Man, then then Burners will still have, after ~10 days of festivities, another 4 days of the grace period to ragequit and withdraw their funds. I think the combination of the 7 day voting period and 7 day grace period is enough to protect members from the risk of capture.

_abortWindow (uint256)
The period of time, a proposal can be immediately be canceled with funds immediately refunded.

Moloch & MetaCartel both use 1 period (4.8hrs)

_proposalDeposit (uint256)
Members need to stake a deposit into the DAO when submitting a proposal.

MetaCartel uses 1 WETH. Input = 1000000000000000000

_dilutionBound (uint256)
A “dilution bound” with the intention to protect members from excessive dilution in case of a mass ragequit.

Moloch & MetaCartel uses 3

When proposals are accepted and finish the grace period, someone needs to execute a transaction to finalize the proposal where the proposer gets their proposal deposit back and the shares are issued.

MetaCartel uses 0.1 ETH as the reward. Input = 100000000000000000


Launch using this contract factory

1 Like

Once you deploy, how do you interact with the DAO?

Is there a front-end that members can interact with?

Hi I am looking to replicate the Moloch DAO for learning prepuce and be more familiar with the components of the Moloch DAO. Can you suggest me what steps should I follow?
My final purpose is to create a tutorial that it will make easier to people to create their DAO just for fun and who knows what else.

If anyone whats to do this together please contact me, I would be happy to have someone else share the experience!

@Npizza check out this

The Odyssy team built a Moloch DAO contract factory front end and should help you deploy one yourself.


1 Like

@pet3rpan I am trying to summon a test DAO just for fun but I get this message:

I have Eth to my account to do the transaction and I get that the transaction is completed.

Am I doing something wrong? Do I need to have peth? Or is just a bug?