How to setup the Voting Contract using a Trezor Hardware wallet

In this step by step guide, we are going to talk you through setting up a Voting Contract, which you need to do in order to vote, using a Trezor Hardware Wallet and MetaMask. Locking MKR into a voting contract allows you to keep your MKR stored in your Trezor wallet but make it available to vote with online.

This tutorial uses MetaMask as a hot wallet, so please ensure you have the MetaMask browser extension installed before continuing.

When you first arrive at the Governance Voting Dashboard, you will see a banner at the top to setup a voting contract. Before clicking to set up your contract, we first need to connect our Trezor and a MetaMask account.

For MetaMask, ensure you are logged in and have selected the appropriate account you wish to use as your hot wallet. This should now be shown as one of the available wallets in the account dropdown.

To connect your Trezor, click the ‘Accounts’ dropdown (which may now be filled with your MetaMask and part of your public address), and select ‘Connect to Trezor’. You will need to ensure your Trezor is plugged in for it to show.

When connecting your Trezor, you will be asked to export your public key, and you may also be asked to enter your pin. Complete these steps, and you should then see your Trezor wallet accessible in the accounts dropdown.

Now you’re ready to setup your voting contract. Before you start, ensure your MetaMask account which you want to use as your hot wallet is selected from the accounts dropdown.

The first step is to select ‘Set up now’ from the top banner titled ‘Welcome to the governance voting dashboard’. This will open a window for the first introduction step for setting up your contract. Just hit ‘Great get started’.

The next step on the setup window is selecting your the hot and cold wallets you want to use. If you had your MetaMask account selected from the dashboard, this should be prefilled in the hot wallet dropdown. For your cold wallet, ensure your Trezor wallet, and the correct wallet address, is selected. Once selected, hit ‘Link Wallets’.

Once you have clicked ‘Link Wallets’, you will now see a message asking you to ‘Approve transactions on your Trezor wallet’. At this point, switch to your Trezor wallet and you will need to accept three times. First you need to ‘Confirm Sending a Message’, followed by ‘Confirm Transaction Data’ and finally ‘Confirm Gas Fee’.

Once confirmed, you will see your window change to ‘Transaction Confirmed’. Clicking ‘continue’ will take you to a confirmation screen explaining that you have initiated a link between your hot and cold wallets. To complete the voting contract setup, click ‘Approve’.

This will now create a transaction on your hot wallet (MetaMask) which needs approving. Either click on the MetaMask extension or it should open automatically to approve the transaction. Once approved, you will see the window waiting for the confirmation.

Now you have created the voting contract and the link between your hot and cold wallets, you need to grant the voting contract permission to move your MKR into the voting contracts, a capability you can revoke at any time. Just click ‘Grant’ to continue.

The next step is to lock your MKR. You should now see the screen to lock your MKR. If you have continued to this point with your MetaMask account selected, you may have to close the window and switch to your Trezor account in the top right.

Please note that only MKR that is locked into the voting contract counts towards the vote, and any MKR not locked will not be counted into the final vote count.

Once you’re ready to lock your MKR, hit ‘Lock MKR’ button and again confirm the three transactions on your Trezor.

Once you have completed Locking your MKR, or you decided to skip this step, you should now notice you have a new section of text where the setup banner once was. This is detailing your Voting Contract, how much MKR is in your contract and cold wallet, and a status about your current vote.

If you decided to skip adding MKR straight away or want to increase the amount of MKR in your voting contract, you can move MKR into the voting contract from the new contract header seen above. To add MKR, click ‘Top-up’ alongside the ‘In voting contract’ value on the left-hand side. This will open a new window with an option to set how much of your MKR you want to include similar to before.

Once you have Locked your MKR into the voting contract, you are ready to vote. For instructions on how to vote, and finding your way around the rest of the dashboard, please click here.

If you have any questions, we’re always here to help either on our subreddit or chat.makerdao.com.

Happy voting!