Adding an Existing Plugin
In Arc v1, adding plugins to a DAO follows a two step process:
Deploy the plugin contract, for which we will sometimes provide a factory contract.
Propose adding the plugin to the DAO (then pass and execute this proposal).
Multicall Plugin
The multicall plugin allows a DAO to call any set of Ethereum methods in sequence using a single proposal. You optionally may limit the callable methods using a whitelist of addresses.
To add this plugin to an existing DAO:
1. Deploy a new Multicall plugin using the factory contract.
Go to MyCrypto and fill in the factory contract address for your DAO's network:
Network
Address
Mainnet
0x02CF3E5759C9150B65C8476D0121f2BB66BFfFcd
Rinkeby
0x5e758CA1F282502790DcBEC17cBF5Cf8F031752B
xDai
0x99e226ff96C96C9ec8e4908b152fD334B2ABEBCC
Add the factory contract's ABI and click "Access":
Under "Read / Write Contract," select:createGenericSchemeMultiCallSimple
Fill in the inputs:
_avatar address
: your DAO's main address This can be found at alchemy.daostack.io/dao/{your avatar address}._votingMachine address
: your DAO's voting machine address Find your DAO's voting machine address by navigating to the info tab for one of your DAO's existing plugins (alchemy.daostack.io/dao/{your dao address}/scheme/{plugin address}/info):
_voteParamsType uint8
: 0, 1, 2, or 3
Input
Result
0
custom parameters (see _votingParams
)
1
"Fast" preset parameters (easier & faster to pass proposals)
2
"Medium" preset parameters
3
"Slow" preset parameters (slower & harder to pass proposals)
_votingParams uint256[11]
: voting parameters If you've selected "1", "2", or "3" for the_voteParamsType
, just enter an empty array, "[]", here. If you've chosen "0", you will need to provide an 11 number array. An example, along with the corresponding parameter names, is provided here:
_voteOnBehalf address
: 0x0000000000000000000000000000000000000000_contractsWhiteList address[]
: [] (if not whitelisting) If you do wish to use a whitelist, list the addresses you wish to include here: ["address1","address2"...]._descriptionHash string
: 0x
Sign and complete the transaction to deploy your new plugin!
2. Get the address of your new plugin from Etherscan.
Go to Etherscan's record of the transaction. Click "Logs", then switch the Data dropdown from "Hex" to "Address." Copy the address that appears: this is the address of your new plugin.
3. Propose to add this plugin to your DAO.
Now, it's time to add the plugin to your DAO! Navigate to the "Plugin Manager" in your DAO, and create a new proposal. Fill out the form as expected, with these exceptions:
Plugin
: your new plugin's addressParameters Hash
: 0x0000000000000000000000000000000000000000000000000000000000000000Permissions
: check "call genericCall on behalf of"
Click "Submit proposal." If everything was done correctly, when this proposal passes and is executed, your DAO will now have the new plugin!
Last updated