Developers play an active role in maintaining and improving ElectionGuard as well as integrating the ElectionGuard E2E-V technology into a voting solution. Developers can learn more about ElectionGuard by reading the implementation toolkits provided on this page and by watching the informational videos linked below.
The evolution of the ElectionGuard software development kit is driven by the priorities and use cases of the elections community and in service of best-practice implementations of real-world, secret-ballot public elections. We highly value the contributions of developers.
Developers can contribute to ElectionGuard in the following ways:
The ElectionGuard discussion board is an open space for developers to engage with the community, ask technical questions and collaborate on improving ElectionGuard. A member of the Election Technology Initiative team or one of our partners will answer developer questions as soon as possible.
Developers who are familiar with ElectionGuard and have a bug or idea they’d like to share can open a new issue in the ElectionGuard repository on GitHub. They can also work on open issues in the repository with the tags “good first issue” or “help wanted”. Please read the contributing guidelines before opening or addressing an issue.
Developers who are familiar with ElectionGuard can contribute to and improve the code’s documentation. Clear and well-structured documentation is essential for helping developers understand, implement, and contribute to ElectionGuard effectively. Please use plain English and helpful images to ensure accessibility.
Developers can build an independent verifier to confirm that the results of an ElectionGuard-supported election are accurate. Existing verifiers include:
Developers can find the official versions of the ElectionGuard Specifications are at XXX. The resource titled XXX outlines key steps in making an independent verifier for ElectionGuard.
In this video, Moses Liskov and John Ramsdell of MITRE provide an overview of the ElectionGuard verifier that can be used to validate the specification.
In this video, John Pannick of the U.S. Election Assistance Commission provides an overview of VVSG 2.0 requirements as they relate to end-to-end verifiability and end-to-end verifiable voting systems.
In this video, Aaron Wilson discusses how Enhanced Voting incorporated ElectionGuard into their accessible vote-by-mail solution, Enhanced Ballot, by pre-encrypting ballots.
In this video, Braden Crimmins of the University of Michigan highlights potential approaches for implementing end-to-end verifiability for vote-by-mail. This includes an overview of RemoteVote, a proposed solution for implementing Josh Benaloh’s STROBE approach.
In this video, Michael Naerhig of Microsoft discusses improvements to ElectionGuard 2.0 including compact proofs and the decryption process.
This video provides an overview of the key ceremony process, including how to create the key, join the key to the election manifest (e.g., ballot definition file) and download the encryption package.
This video demonstrates how to generate a vote tally using decrypted ElectionGuard ballot files.
This video demonstrates how Enhanced Voting generates the confirmation code lookup site and how voters can utilize the site to verify that their ballot was counted and included in the final results of the election.
Led by state officials, the Election Technology Initiative is facilitated by The Turnout and The Council of State Governments.
CONTACT
Jared Marcotte
President, The Turnout
jared@turnout.rocks
Casandra Hockenberry
Project Manager, The Council of State Governments
chockenberry@csg.org