Zkool Documentation
  • Guides

    • Getting Started
    • Account Manager
    • Synchronization
    • Account
    • Addresses
    • Payments
    • Other features
    • Building Zkool from source
  • Recipes

    • Edit an Account
    • Supported Key Types
    • Cold Wallet
    • Ledger
    • Troubleshooting Synchronization Issues
    • Folders
    • Database/Wallet Files
    • Using TOR
    • Security
    • Kiosk Zkool
    • Mempool
    • Payment URI
    • Locking Notes
    • Mainnet, Testnet, Regtest
    • Export to CSV
  • Categories / Reports

    • Overview
    • Examples
    • Categories
    • ZEC Price
    • Charts
  • MultiSig Accounts / FROST

    • Overview
    • Key Generation
    • Signing a Transaction
  • GraphQL

    • GraphQL API
    • Build
    • GraphIQL
    • Account Management
    • Synchronization
    • Balance
    • Transaction History
    • Receiving Funds
    • Sending Funds
    • Unconfirmed Funds
    • Notifications / Subscriptions
  • Coin Weighted Voting

    • How to Vote
  • Zcash tech

    • Shielded Pools
    • Bitcoin Data Model
    • Transaction Graph
    • Privacy

Summary

  • Download & Run Zkool
  • Import your wallet
  • Synchronize
  • Connect to the Election
  • Fill your Ballot
  • Submit
  • Receipt
  • Close

Download Zkool

Find Zkool on the mobile stores (Google Play Store and Apple AppStore) under the name zkool.

Or, for a desktop version, on Github: Releases

Import your Wallet

Open Zkool, and create a new account. From the accout manager page, add a new account, choose a name and check the Use Internal Change option if your wallet was created in ZODL/Zashi. Leave unchecked, if it is from YWallet.

Check Restore Account, enter a seed phrase[1] and a birth height. The birth height saves you from having to synchronize from the activation of the Orchard pool.

It should look like this:

Import
Import

Then click on the save icon on the app bar to continue.

Skip the scanning of additional transparent addresses, since voting uses only Orchard funds (tap on Close)

The app should show your account on the main page. Tap on its name and continue to the Account page.

Synchronize

At this point, your account is restored but isn't synchronized yet. Therefore the balance shows as 0.000 ZEC and the transaction history is empty.

Let's synchronize by tapping on the sync button.

Sync
Sync

Synchronization may take a while if there are a lot of blocks to process.

Sync Progress
Sync Progress

At the end, you should see your current wallet balance and your transaction history.

Connect to the Election

To start voting, choose the Vote option in the App Menu (...)

Vote Menu
Vote Menu

You will be asked for a URL. This is given by the organization that sets up the election/poll.

For example, the test election is hosted on https://vote.methyl.cc

Vote URL
Vote URL

Then tap "Next".

After a short wait, you will see the Ballot Page.

Fill your Ballot

On the ballot page, choose the amount of ZEC that you want to vote with. By default, it is the total amount of ZEC that you have in your Orchard pool at the snapshot height. This may not be your current balance if you have made transactions after that time.

Fill the rest of the ballot, and then press the Submit button.

Ballot
Ballot

Ballot Submission

Once you confirm your submission, the app will compute a digital ballot and send it to the server.

On success, you receive a ballot ID and your voting balance gets updated.

Important

Computing a ballot may take a few minutes. Please leave the app running and unlocked.

Submit
Submit

Receipt

Receipt
Receipt

Thanks for voting!

Close

When you are finished voting, you can delete all of its data from the app with the Close button.

Close
Close

Important

You can only vote from one account at a time. If you have multiple wallets you want to vote with, you need to repeat this process and close the election between each wallet.


  1. Optionally an account derivation index and passphrase if you have one. ↩︎

Last Updated: 4/22/26, 6:12 PM
Contributors: Hanh Huynh Huu