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 arbitrum polling contract (https://arbiscan.io/address/0x4f4e551b4920a5417F8d4e7f8f099660dAdadcEC). If you look at the transaction list of this contract, you’ll see the recent Create Poll calls

      Screenshot 2025-04-10 at 1.46.02 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 governance facilitators’ addresses. Currently, they have three addresses: 0xdc7ee5da5d011bc98cf030968659f3ee92232843 and 0x8541ccfc6e7eacebd233c6789a0fbf7c708b0e68, and 0x777cc2b5ec4c50b5aec0c0d9f8d1b8599ef2a54c
    2. The address that created the poll has not subsequently called the Withdraw Poll function for the given poll id.

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

    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 mainnet polling contract: https://etherscan.io/address/0xF9be8F0945acDdeeDaA64DFCA5Fe9629D0CF8E5D#writeContract . If you are using a delegate contract, skip this section and jump to section c.

  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:

    Screenshot 2025-04-10 at 1.55.31 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 is called votePoll. The same parameters are passed in as described in section b.

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

e. Then click Write, sign and send the transaction in your wallet, and you’re done!