Introduction

Vote is the base of the democracy

Elections belong to the people. It's their decision. If they decide to turn their back on the fire and burn their behinds, then they will just have to sit on their blisters.

Abraham Lincoln

img

The problem

Giving power on an intermediary to process the votes is a threat in case of malicious actor. Even with electronic voting system, there are not clear proof of frauds but still remain some questions (article here).

Can we leverage the decentralized feature of blockchain to solve the intermediary problem ? It what TzVote claims to provide

Solution

TzVote helps you deploy your own poll on a smart contract and gives you a simple website to interact with it

Flavours

There are different ways to create a poll, so we decided to create template for each particular use cases. First, here are the criteria to consider :

  • question count : how many question on the poll ?
  • option count : how many options on the answer ?
  • votes choices count : only once or multiple answers
  • voting power : how is calculated the end result
  • dates : dates to consider
  • censorship resistant : what is the level of decentralization of your poll ?
  • privacy : does the poll include hidden ballot and preserve anonymity ?

Here are the available templates :

name#questions#options#choicesvoting powerdatescensorship resistantprivacy
permissioned vote1n11 allowed address = 1 votefrom, topoll creator choose votersno
baker vote1n1Tezos baker total stakeTezos voting periodyesno

Next developments

  • bring complete anonymity, ballots might be hidden (to avoid physical threats)
  • bring more templates : Borda, Samarkand
  • Proof of Humanity

User Guide

Login

Login and logout

Connection to TzCommunity backend

Create a poll

Create either :

  • permissioned poll
  • baker poll

Manage a poll (Details & Results)

Manage a poll :

  • See details and change parameters
  • See results

Vote on a poll

Vote and confirm with your wallet

Search options

Share a poll

Share with community

Login

On the Home page you have a login button

Click on it

login

Select your preferred wallet, your account

A second popup will ask you to sign a payload, once done you will be logged on TzCommunity backend and all Tezos addresses will be resolved to human-readable social account aliases (only if you have the right to see it)

search

If you have linked your social account on TzCommunity, your profile will appear on the Logout bottom button and everywhere else on the application. I recommend you to link your account with your tz1 address to make it more friendly, it is totally free and more UX friendly.

Logout

Click on the bottom button LOGOUT

Create a poll

Click on the bottom-right floating button to display the voting templates

create

Create a permissioned poll

Permissioned poll creates a poll with allowed voters. Only the creator of the poll can choose who can vote

permissioned

  1. Add a question
  2. Add dates from and to
  3. Add at minimum 1 option
  4. Add voters :
  • individual voter : add an address, one by one
  • bakers delegatees : add all baker delegatees from a baker address
  • Import CSV file : add all addresses from the CSV (comma separated, only 1 column)
  • add my delegatees (baker only) : import all my delegatees

Once all fields are filled, you can click on top-right CREATE button

Create a baker poll

Anyone can create a baker poll but only bakers will be allowed to vote on it. For the final result, ballot weight is relative to baker's total stake

baker

  1. Add a question
  2. Select a Tezos voting period. Your poll will stick to it, so the end date is an estimation
  3. Add at minimum 1 option

Once all fields are filled, you can click on top-right CREATE button

You don't need to specified bakers addresses, it is automatically filtered by the smart contract in case voter is not a baker

Manage a poll

Each poll has a dedicated page / url for management

manage

Details

You can see here the details of the poll, and you can vote (it is the right time)

details

You can also share the poll (top-right button)

If you are the creator of the poll, you can also manage some settings, like adding or removing voters for example

Results

results

Vote on a poll

Votable poll have a VOTE button

Tips : Filter with Votable to find votable polls faster

vote

Click on the button, to open the choices

voting

Select an option to answer and click on CONFIRM

Confirm the transaction with your wallet

Search

search

Filters

Use top filter to faster search

filter

  • Votable : filter only votable polls
  • Open : filter only open polls. It means that voting time is active. On the contrary, polls in the future or with end date passed are locked
  • Mine : filter only poll where I am the creator
  • Filter by template : by template type, baker or permissioned

Icons

icons

  1. template type : baker or permissioned
  2. status : locked or ongoing
  3. tzkt link : see the poll on an indexer
  4. share button : shortcut to share the poll with someone

Share a poll

share

If you click on the share button :

  • web version : the url link will be copied to your clipboard
  • mobile version : a contextual menu will popup to select the application with which you will share this link

Contributors

Made with love by Marigold team