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.
Find the poll id:
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
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:
c. Click on the transaction hash to pull up the transaction page, then click on Logs at the top to bring up this page:
We can see that the poll id is 958, by looking in
Topics next to
Find option id:
Data(see above image)
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.
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.
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:
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
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:
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.