###### tags: `development` # Poll for hic et nunc # Introduction This document briefly sets out a plan for a poll for Hic et Nunc. The poll does not attempt to solve any grand problems and is intended as a temporary measure. The poll will take the form of a smart contract running on the Tezos blockchain mainnet. Tz Connect will develop the contract, and some example Python code to exercise it. All code will be open-source, and we welcome enhancements etc. from the community. ## Roles _Administrator_ is the account which can set up and end polls _Voter_ is anyone permitted to vote in the poll by virtue of having a particular FA2 token _Non-voter_ is anyone else, not permitted to vote in the poll ## Rules Polls are created by the Administrator. A poll consists of - the hash of an IPFS document describing the poll - an *end date*, after which no new votes will be accepted - a number, which describes how many options the poll has. Numbers start at 0 and go up to (number of options - 1) Each Voter may record a maximum of one vote. If the same voter records multiple votes, only the last one will be recorded. Votes from Non-voters have no effect. The rules for the poll should be set out clearly in the IPFS document linked in the smart contract. The information should include - The purpose of the poll - the number of answers permitted, and what each number represents - whether the poll is advisory or binding - thresholds for a vote to be considered passed - number of voters necessary (quorum) The IPFS document should not contain the end date of the poll, as the date set in the contract is binding. After the *end date*, no further votes will be accepted. No action needs be taken to close the poll, and the contract will not determine the winner. ## On-chain, off-chain Our goal at the beginning is to deliver something quick, reliable and transparent. Hence voting shall happen on-chain, in order that the results can be verified by anyone who cares to do so. However we will not necessarily be checking that accounts are allowed to vote on-chain, as keeping things simple at this stage is a priority. However it will be possible to verify the correctness of all results, using information only information from the blockchain. ## Actions Create a list of hen.vote dApp events and the corresponding smart contract actions.