Voting system
Introduction
The Nxt Voting System enables any account to create a poll with one question and up to 100 answers. Accounts are eligible to vote in the poll based on a minimum required balance of NXT, an asset or a currency. Voting consists of selecting an integer range value to associate with one or more answers as specified during poll creation.
An answer is given weight based on one of four voting models and then its weight is multiplied by the associated range value to compute a corresponding result. The four voting models specify weight as: one per voting account, or equal to the balance per voting account of NXT, an asset or a currency.
An aggregate weight for each answer is computed as the sum of all individual vote weights; likewise an aggregate result is computed. Individual votes are saved until at least 1441 blocks after the poll completes, typically more than a day. After this time, votes are deleted and only aggregate weights and results remain available.
This guide describes the Monetary System active on the Testnet as of Nxt software release 1.5.1e. Usage examples apply to the Nxt Client Interface.
Voting System Menu
The Voting System is accessed by clicking on Voting in the left-pane menu area of the Nxt Client Interface, causing a submenu to appear:
Voting: This item expands or contracts the submenu below and opens the Active Polls screen. |
Active Polls: This item displays a list of all active (unfinished) polls and their properties as shown in the Active Polls screen, where polls can be voted in and followed. |
Followed Polls: This item displays a list of all polls followed (monitored) by the logged-in account as shown in the Followed Polls screen, where where polls can be voted in and ongoing aggregate results viewed. |
My Votes: This item displays a list of all polls already voted in by the logged-in account; from this screen polls can be followed and the results viewed when finished. |
My Polls: This item displays a list of all polls created by the logged-in account; from this screen polls can be followed and either voted in while still active or the results viewed when finished. |
Create Poll: This item opens a pop-up entry form for creating a poll. |
Active Polls Screen
- The poll list is in order of most recently created polls.
- Clicking on the Title of a poll opens a detail pop-up window showing the values of all parameters specified during the creation of the poll.
- The Description column gives the purpose of the poll, often worded as a question.
- The Sender column gives the account ID of the poll creator. Clicking on the ID gives details about the account.
- The Start Date column gives the date/time when the poll opened for voting.
- The Blocks Left column gives the number of blocks remaining until completion of the poll. A block is added to the blockchain approximately every minute or two.
- Clicking on a highlighted Vote button in the Actions column opens a pop-up window to cast a vote in the poll.
- Clicking on a highlighted Follow button in the Actions column adds the poll to the Followed Polls screen, where the ongoing aggregate results can be viewed.
- If a poll has already been voted in or followed, the corresponding button fades and deactivates.
- Clicking on the Create Poll button in the upper right of the screen opens a pop-up window for creating a poll.
Followed Polls Screen
- The left column is a list of followed (monitored) polls with their status in alphabetical order. Polls still active (incomplete) show the number of blocks left for voting. Clicking on one of the followed polls displays ongoing poll results in the pane to the right.
- On the left side of the pane, the Result and Weight are displayed for each poll Option (answer).
- The Weight associated with each option is the combined weight of all votes for that option, with the weight of each vote determined by the voting model selected during poll creation: One Vote Per Account, Vote By NXT Balance, Vote By Asset and Vote By Currency. In the example shown above, the voting model is One Vote Per Account and so the weight of each vote cast is 1.
- The Result associated with each option is the sum over all votes for that option of the weight of each vote multiplied by an integer range value selected when the vote was cast. In the example shown above, the only range value allowed for a vote is 1 and so the Result and Weight columns match.
- On the right side of the pane, a pie chart of the results is displayed.
- On the bottom of the pane, the votes cast in the poll are displayed while they are still available. For each voting account the account ID is shown along with the integer range value associated with each option voted for.
- Clicking on the Add Poll button in the upper right of the screen opens a pop-up window for following a poll by specifying its poll ID.
- If the poll is still active (unfinished), a Vote in Poll button appears above the chart. Clicking on it opens a pop-up window for casting a vote. If a vote has already been cast, the button is faded and deactivated.
Create A Poll
A poll can be created by clicking on the Create Poll menu item or on the Create Poll button on the Active Polls screen. A Create Poll pop-up window is opened as shown below.
- Enter a Name or title of the poll.
- Enter a Description for the poll; this is the purpose of the poll and is often worded as a question.
- Select a voting model for the poll from the Poll By drop-down list. Your choice affects some of the next fields/controls. For details on the four voting models and the affected controls, refer to the sections below: Vote By Account, Vote By Account Balance, Vote By Asset Balance and Vote By Currency Balance.
- Enter a Finish Height in the box on the left, the height of the blockchain when the poll completes and voting ends. For convenience, an estimated date and time corresponding to the finish height is provided, and three buttons are provided to set the finish height to the current height, then adjust it in increments of 500.
- Enter Answers (options) in the fields provided, clicking on Add Answer or - (minus sign) as necessary to adjust the number of answers.
- Enter the minimum and maximum number of answers (options) that must and can be voted for in the Minimum Nr Of Choices and Maximum Nr of Choices fields.
- Enter the minimum and maximum integer range values to be assigned to answers when votes are cast in the Minimum Range Value and Maximum Range Value fields. Note that a range value of 0 is treated by the Nxt Client as a nonvote and so doesn't count toward the Nr of Choice fields.
- Note that if the minimum range value is greater than 0, a non-vote is interpreted as a minimum range value vote and so Maximum Nr of Choices must be equal to the number of answers (options).
- Click on the Create Poll button in the lower right of the window to create a transaction, the transaction ID of which becomes the poll ID if it is accepted into the blockchain. If there is an error in the poll specification, it will appear at the top of the window and the window will remain open.
Vote By Account
This voting model assigns a weight of 1 to each vote cast.
- Select Vote by Account from the Poll By drop-down list.
- Select the Min Balance Type. The default selection None means that all accounts are eligible to vote. The other three choices prevent accounts from voting that do not meet the minimum NXT, asset or currency balance requirement.
- If Min Balance Type is set to Account Balance, enter the minimum required account balance in the Min Voting Balance (NXT) field, in units of NXT.
- If Min Balance Type is set to Asset Balance, an Asset field appears on the next line. Enter the asset ID in the left box; the right box will then display the name of the asset. Enter the minimum required asset balance in the Min Voting Balance (Asset) field on the next line, in standard asset units.
- If Min Balance Type is set to Currency Balance, a Currency field appears on the next line. Enter the currency code in the left box; the right box will then display the ID of the currency. Enter the minimum required currency balance in the Min Voting Balance (Currency) field on the next line, in standard currency units.
Vote By Account Balance
This voting model assigns a weight equal to each voting account's balance of NXT (in NQT).
- Enter the minimum required account balance in the Min Voting Balance (NXT) field, in units of NXT.
Vote By Asset Balance
This voting model assigns a weight equal to each voting account's balance of a specified asset (in QNT).
- Enter the asset ID in the Asset field (left box); the right box will then display the name of the asset.
- Enter the minimum required asset balance in the Min Voting Balance (Asset) field in standard asset units.
Vote By Currency Balance
This voting model assigns a weight equal to each voting account's balance of a specified currency (in QNT).
- Enter the currency code in the Currency field (left box); the right box will then display the ID of the currency.
- Enter the minimum required currency balance in the Min Voting Balance (Currency) field in standard currency units.
Cast A Vote
A vote can be cast in an active (unfinished) poll in by clicking on the appropriate button or link on the Active Polls screen, the Followed Polls screen, or the My Polls screen. The button or link is only visible while the poll is still active. Vote buttons are only highlighted and active if a vote has not yet been cast. Clicking on the button or link opens a Cast Vote pop-up window as shown below.
- The Description is the purpose of the poll, often worded as a question.
- The Range section begins with an instruction followed by the poll options (answers).
- The instruction specifies the number of answers that may be voted for, which can be as few as one and as many as all, as specified during poll creation.
- Voting for an option (answer) consists of clicking on the checkbox to the left of the answer or dragging the slider below the answer to select an integer value, depending on the range specified during poll creation.
- In the example above, the Minimum Range Value is 0 and the Maximum Range Value is 1, and so a checkbox is provided for voting and checking the checkbox is equivalent to choosing a range value of 1. Leaving a checkbox unchecked corresponds to a range value of 0, but the Nxt Client treats this case as a nonvote; it does not count it toward the Nr of Choices restrictions expressed as Select 1 option from below (Minimum Nr of Choices and Maximum Nr of Choices are both 1).
- Click on the Cast Vote button in the lower right of the window to create a transaction. If there is an error, it will appear at the top of the window and the window will remain open.
View Poll Results
Poll results can be viewed both while polls are still active and after their completion on the Followed Polls screen. Only finished poll results can be viewed on the My Votes screen or the My Polls screen by clicking on a Results button or link, respectively. Clicking on Results, once available, opens a Poll Results pop-up window with two tabs as shown below. The Poll Results tab displays the final aggregate results and the Votes Cast tab displays the individual votes that contributed to the results while the votes are still available in the database. Refer to the Followed Polls Screen section for explanations of the information displayed.