September 12, 2018

EOS Voting Guide

EOS VOTING GUIDE

Aurora EOS is the leading block producer for the informed voter. If you find our work helpful, please vote for our node: auroraeoscom

This voting guide will walk users through the process of voting directly for block producers, as well as delegating votes to a proxy, using several different wallets and tools.

Voting Mechanics

In EOS, any user who has staked EOS tokens can vote. Each user is allowed to vote for up to 30 block producer candidates using the full weight of their stake. For example, if a user has 1000 EOS staked, she can cast 1000 votes each for up to 30 BPs. The top 21 block producer candidates by total number of votes received form the core set of validators. Additional block producers, ranked by total votes, are also compensated by the network to serve as standby block producers.

EOS is a liquid, delegative democracy. Users have the option of voting directly for block producers, but they can also delegate their voting power to another account to vote on their behalf. The delegate account, called a proxy, has no control over the original user’s account— the user can proxy her vote trustlessly without handing over any keys. The proxy simply has the power to direct that user’s voting power towards certain block producers, but the user can revoke her voting power from the proxy at any point.

Aurora EOS operates a proxy account called auroraeosprx

Please feel free to delegate your voting power to our proxy. We vote for block producers that support our vision for EOS, focusing on education, development, transparency, and scalability. We’ll be releasing a blog post soon that outlines our proxy criteria.

EOS Keys

By default, all EOS accounts have two sets of keys: owner and active.

EOS accounts are human-readable names that are stored on the blockchain. Each account can have multiple permissions; by default, owner and active are the initial permissions. Each permission has its own set of public and private keys. Users can change out the key pairs associated with each permission, and they can also create additional permissions.

The owner key controls root access to the account. This key should be kept in cold storage and should only be used in the case that another key is compromised and needs to be changed. Having an owner key in cold storage, and an active key in a hot wallet, allows you to interact with the blockchain while still maintaining full offline ownership of your account.  

Most users will use their active key to vote for block producers or to assign a proxy. Advanced users, however, can create a permission specifically for voting. For more information, see this video by EOS Canada and this guide by Blockgenic.

Voting with the Command Line

For highly technical users, the command line is a great way to interact with the blockchain. We recommend using the EOSC tool from EOS Canada. EOSC is a powerful tool for advanced users that offers several great options, including cold storage and offline voting.

Voting for Block Producers with EOSC:

  1. Install the latest version from Github
  2. Follow the instructions found here to create a vault, import keys, and vote for block producers of your choice.

Assigning a Proxy with EOSC:

  1. Create a vault and import your keys.
  2. Follow the instructions found here under the section “Voting For a Proxy Account”

Voting with Desktop Wallets

For many users, especially those unfamiliar with the command line, desktop wallets are the best option for storing keys, transferring tokens, and voting. There are several great desktop wallets including Scatter Desktop,  SimplEOS by EOS Rio, and eos-voter by Greymass. Each of these wallets is open-source and stores your fully encrypted private keys locally. These wallets are continuously adding new features, so be sure to download the latest version. Finally, these wallets offer easy options to vote for block producers, as well as options to assign a proxy.

We’ll walk you through this process using eos-voter by Greymass.

Voting Directly for Block Producers

1. Download and Install the eos-voter application from Greymass’s Github.

2. Connect to a Block Producer Server

3. Connect Your Account

Enter your account name or public key to connect the account. If you are unsure of your account name, you can look it up by entering the public key into a block explorer.

4. Import Your Keys

Import your keys to access your funds. Make sure that you have a backup of your keys kept elsewhere! Your keys control access to your funds; having proper backups is of utmost importance. Store your backups in a secure location.

5. Set Password

Your password will allow you to unlock your wallet without having to continuously import your private key. Make sure you choose a good password and have it backed up elsewhere. We highly recommend using a password manager like Dashlane or 1Password. If you prefer not to have the wallet store your keys, simply don’t enter a password. Your keys will be forgotten when you quit the application.

6. Stake Tokens

Navigate to “Wallet” in the top menu, then to “Update Staked EOS” in the sidebar. Enter the number of tokens that you wish to stake for CPU and NET.

7. Select Block Producers

Navigate to “Producer Voting” in the top menu, then select the block producers you wish to vote for.

8. Cast Your Vote!

To cast your vote, simply click “Submit votes for selected producers” and confirm to sign and broadcast the transaction to the network. Congratulations, you’ve done your part as a voting member of the EOS community!

Setting a Proxy

1. Follow steps 1-6 from above, importing your private keys, setting up a password, and staking tokens.

2. Navigate to the “Producer Voting” section in the top menu and select “Set Voter Proxy.”

3. Enter the name of the proxy account to whom you wish to delegate your voting power.

4. Confirm and submit the transaction.

Voting with Scatter

Scatter is another great, and extremely easy, option to use for voting. Scatter was formerly a browser extension (similar to Metamask for Ethereum) that allowed you to store your keys securely in the extension and to interact directly with the blockchain through your browser. Scatter is now exclusively available as a desktop app and will soon be available on mobile. The desktop app allows you to interact with the blockchain using any browser.

To install Scatter, follow the directions on the Scatter website or see this tutorial.

Once you have Scatter installed, you can use a number of options to stake tokens, vote for block producers, and assign a proxy.

Stake Tokens

For staking tokens with Scatter, we highly recommend using the Bloks.io wallet (available through any browser or as a desktop app). Simply link your Scatter account, navigate to “Stake CPU/NET” in the sidebar, and stake the number of tokens you wish to use to vote.

Vote for Block Producers

To vote for block producers using Scatter, we recommend using the Bloks.io voting portal.

Link your Scatter, select the block producers you wish to support, click “Vote,” and then confirm the transaction in Scatter by clicking “Accept.”

Set a Proxy

To set a proxy using Scatter, visit EOS Toolkit’s Set Proxy page. After linking your Scatter, simply enter the account name of the proxy, then hit “Set Proxy” and confirm with Scatter.

When you’re finished, you should see a screen like this:

Offline Voting Tools

For many users, the only trusted option for voting is one in which the device that stores the keys and signs the transaction is never connected to the internet. This is, of course, the most secure option, but it’s also the one that requires the most technical expertise.

For a majority of users, voting with an online active key and keeping the owner key offline should offer great security. For users even more concerned about security, setting a permission specifically for voting offers an even better option. For those who demand military-grade security, offline voting tools are needed.

Luckily, there are two great options from respected block producers Tokenika and EOS Canada:

Note: These options are intended for highly technical users who are familiar with the EOS software and the command line interface. Follow the directions closely and reach out to Tokenika and EOS Canada directly with any questions or concerns.

Hardware Wallets

Currently, Ledger is the only hardware wallet that offers support for EOS.

To use EOS with your Ledger, see this official guide. After installing the EOS application within Ledger Live, you can use your Ledger with Fairy Wallet. Follow the directions directly from Github to create an account and vote using this wallet.

Other wallets that support the Ledger include the Bloks.io desktop wallet and Scatter Desktop.

While the Ledger-compatible Fairy Wallet currently offers users the ability to vote for block producers, it doesn’t support proxy voting. Look out for that feature in future releases.

There are several other hardware wallet implementations in the works. Cypherglass has a bounty for Trezor integration (a similar bounty funded the Ledger support).

There are other independent and EOS-specific hardware wallet projects in the works, including EOSBridge from EOS New York and this DIY option from the teams behind Liquid EOS and Scatter.

——————

Aurora EOS is the leading block producer for the informed voter. If you find our work helpful, please vote for our node: auroraeoscom

If you prefer to proxy your vote, our proxy account is auroraeosprx

Find us on Twitter, Medium, Telegram, and Steem

Subscribe to our newsletter for weekly updates on the EOS ecosystem