###### 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.