Developers

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. 

Contribute to ElectionGuard

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: 

Post questions or ideas on the ElectionGuard discussion board

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. 

Develop on issues in the repositories with the tags “good first issue” or “help wanted”

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. 

Add to and improve documentation. Use Plain English and include helpful images

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. 

Develop an independent verifier

Developers can build an independent verifier to confirm that the results of an ElectionGuard-supported election are accurate. Existing verifiers include:  

  • Go Verifier by Andreas Nielsen, Niklas Bille, and Hans-Christian Kjeldsen 

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. 

Resources

  • Implementing ElectionGuard for Precinct Scan: Developer Toolkit 
  • ElectionGuard Specification 

Practical ElectionGuard Verifier Implementation

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. 

EAC Perspectives on Accessibility, End-to-End Verifiability, and VVSG 2.0

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. 

Secure Accessible Voting with ElectionGuard

In this video, Aaron Wilson discusses how Enhanced Voting incorporated ElectionGuard into their accessible vote-by-mail solution, Enhanced Ballot, by pre-encrypting ballots. 

Implementing End-to-end Verifiability for Vote by Mail

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. 

What’s Next? ElectionGuard 2.0

In this video, Michael Naerhig of Microsoft discusses improvements to ElectionGuard 2.0 including compact proofs and the decryption process. 

ElectionGuard Integrated Election Setup (Demonstration)

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. 

Generating the Election Record(Demonstration)

This video demonstrates how to generate a vote tally using decrypted ElectionGuard ballot files. 

Confirmation Code Lookup Site (Demonstration)

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.