Step 1: find poll id

Step 2: find option id

Step 3: vote!

If you already know the poll id and option id, you can skip straight to step 3.

  1. Find the poll id:

    1. Polls are initialized when the createPoll function is called on the v1 polling contract (https://etherscan.io/address/0xF9be8F0945acDdeeDaA64DFCA5Fe9629D0CF8E5D). If you look at the transaction list of this contract, you’ll see the recent Create Poll calls

      Screen Shot 2023-03-08 at 5.42.28 PM.png

    To find the transaction that created the poll you’re looking for, you can search through the above transaction list.

    b. You’ll want to verify that the poll meets a few criteria:

    1. the poll was created by one of GovAlpha’s addresses. Currently, GovAlpha has two addresses: 0xf3ED2bdeBa77940E6759B806cd55CE20cAE369BE and 0x06ADa798f9323392cA30C755383Af879bd853168
    2. The address that created the poll has not subsequently called the Withdraw Poll function for the given poll id. You can verify this by going back to the above transaction list.

    c. Click on the transaction hash to pull up the transaction page, then click on Logs at the top to bring up this page:

    Screen Shot 2023-03-08 at 2.56.13 PM.png

    We can see that the poll id is 958, by looking in Topics next to 2.

  2. Find option id:

    1. We can also see that the markdown file that describes this poll is https://raw.githubusercontent.com/makerdao/community/master/governance/polls/Decrease the RETH-A Dust Parameter - March 6%2C 2023.md by looking at the url in Data (see above image)
    2. Pasting this url in our browser, we can view the markdown content and see which option id corresponds to which vote choice here:

    Screen Shot 2023-03-08 at 3.11.18 PM.png

    c. We can also verify that the poll is an active poll by verifying that the startDate is in the past, and the endDate is in the future. Unix timestamps are used for this, so 1678118400 corresponds to Mon Mar 06 2023 16:00:00 GMT+0000 for example. Use this link to convert unix timestamps.

    d. Verify that this poll is not a ranked choice poll, by checking that the the input_format is single-choice. If it is rank-free or choose-free or something else, then you will need to convert your rank of options into the correct format. This guide may be updated in the future to describe how to do that.

    Screen Shot 2023-03-08 at 6.07.05 PM.png

  3. Vote!

  4. If you are voting directly from your wallet (not using a delegate contract), visit the write contract tab of the same v1 polling contract here: https://etherscan.io/address/0xF9be8F0945acDdeeDaA64DFCA5Fe9629D0CF8E5D#writeContract . If you are using a delegate contract, skip this section and jump to section c.

    Polling contract

    Polling contract

  5. To vote Yes in the poll that we found in step 1 above, we input 958 (poll id) and 1 (option id that corresponds to Yes) into the vote function like so:

Screen Shot 2023-03-08 at 3.20.24 PM.png

c. If you are using a delegate contract, visit the write contract tab of your delegate contract. For example:

Example delegate contract. https://etherscan.io/address/0x222d46d1229036c7bb6ea3f453406792ca3c3ea2#writeContract

Example delegate contract. https://etherscan.io/address/0x222d46d1229036c7bb6ea3f453406792ca3c3ea2#writeContract

On the delegate contract, the function we use is called votePoll. The same parameters are passed in as described in section b. You’ll notice that there are two votePoll functions. The first one allows for voting in multiple polls in one transaction, while the second function only handles one poll per transaction. See this FAQ answer to use the first votePoll function, otherwise use the second function to vote in one poll.

d. Click the Connect to Web3 button to connect your wallet:

Screen Shot 2023-03-08 at 3.21.32 PM.png

Etherscan supports Metamask, WalletConnect and Coinbase Wallet. Gnosis safe users can select WalletConnect to copy the QR code into Safe’s WalletConnect app, as described here.

Screen Shot 2023-03-08 at 11.06.55 PM.png