DAO Functions

How to use DAO model using mitumjs SDK.

  1. Create a contract-account first using function of contract class. The account must be deployed on the Mitum network. (Create an operation with contract.createAccount() or contract.createWallet(), and use operation.sign() and operation.send(), or use contract.touch() to sign and send at once.)

  2. Create a new dao model using the registerModel() function.

    Depending on whether the value of the option is 'crypto' or 'biz', the form of the proposal for subsequent execution of the Propose function is different.

    Crypto Proposal - 2 different type of proposal exist : proposal for token transfer, proposal for policy changes on voting Biz Proposal - proposal for voting among multiple options

    Also there are differences in how proposals are processed when implemented.

    Crypto Dao - the proposal contains content to be executed on-chain and is automatically executed according to the results of the vote. Biz Dao - Only the voting results indicating that the proposal has passed are recorded on-chain.

    The active value of the proposers determines whether the proposal permission is granted to specific people or to all members of the governance. (not available yet, now only whitelist can propose)

  3. The proposer runs the propose() function to create the proposal. The proposal can be canceled by the proposer through cancel() function.

  4. People with voting rights can decide during the 'registration' period whether they want to vote themselves or delegate their voting rights to someone else by using reigster() function.

  5. Run the preSnap() function before the 'voting' period to block double voting from the system, ensuring fair and transparent voting. (anyone can execute)

  6. People who register to vote during the 'registration' period, or who have been delegated the right to vote, can vote during the 'voting' period.

  7. Run the postSnap() function and after the 'voting' period to block double voting from the system, ensuring fair and transparent voting. (anyone can execute)

  8. Once voting is over and the turnout and quorum are satisfied, run the execute() function to execute the proposal. (anyone can execute)

Last updated