Verifiable online voting system

To set up an election, you may simply use our voting platform.

Belenios aims at providing an easy to use voting system, guaranteeing state-of-the-art security, namely vote privacy and verifiability. It can be used in many types of elections (including referendums), ranging from scientific councils to sport associations.

  • Vote privacy: no one can learn the vote of a voter. Vote privacy relies on the encryption of the votes.
  • Verifiablity: Every voter can check that her vote has been counted and only eligible voters may vote. Verifiablity relies on the fact that the ballot box is public (voters can check that their ballots have been received) and on the fact that the tally is publicly verifiable (anyone can recount the votes). Moreover, ballots are signed by the voter credential (only eligible voters are able vote).

Release of Belenios 2.5.1


The main goal of this release is to correct an issue raised by Olivier Pereira regarding the implementation of the Distributed Key Generation (DKG) scheme in the threshold mode, that is when the election key is distributed among n trustees, with a threshold of k trustees to decrypt the election. This is now fixed by adding an extra signature field. As a side effect, new elections should be monitored with this additional signature check and our verification tools have been updated accordingly. We are very grateful to Olivier Pereira for reporting this issue.

Release of Belenios 2.5


This release includes a restricted mode, that enforces all the security options (e.g. external credential authority, external decrytion authorities) needed to comply with the security requirements of a security target, in view of a CSPN evaluation. This restricted mode can be activated when installing an instance of Belenios on a server.

Release of Belenios 2.4


Voters no longer have to enter their credential, since it is now included in the (private) link to the election that is sent to them. Moreover, to comply with best-practice recommendations, the length of the credentials has been increased.

The experience for the election administrator has been improved with slight changes.

Release of Belenios 2.3


The main visible change is that the format of private credentials has changed, to include individual salts in credential derivation, for more security. The old format is still supported for existing elections, but new ones will use the new format.

Following requests from election administrators, private credentials are now sent later one, once the election is ready. This allows election administrators to entirely set up an election without sending the credentials (yet).

Release of Belenios 2.2


Belenios now features a new admin interface to set up elections, in an experimental mode for the moment. This interface is more intuitive and easy to use. Feel free to try this new interface and report your feedback on

We have also added support for STV elections in preferential voting. Other changes encompass e.g. various optimizations for handling elections with around 30k voters.

Release of Belenios 2.1


Belenios now supports and uses elliptic curves (Ed25519). Several changes have also been made on the web platform:

  • Decryption trustee can know check that they correctly save their private key. There is no need to organize a mock election.
  • Voters no longer need to enter their email address when casting their vote.
  • Voter list can be added in JSON format.
  • It is possible to use basic < i > and < b > markup (GitHub issue #66).

Release of Belenios 2.0


A major evolution of Belenios has just been released. While the main changes are not visible to end users, this new version introduces a new election format where election events (e.g. ballots submission) are chained to each other. This prepares a next version where the server will be able to commit to the current content of an election.

The main visible change is the fact that the last confirmation step of the voting phase has been removed. @election admin: make sure you inform your voters that this is perfectly normal. You may also want to update your documentation accordingly.

From a protocol point of view and for more robustness, the credential authority now sends to the server, during the setup, the correspondence between public credentials and voters.

The API support has also been improved in order to support a future new version of the administration interface.

Release of Belenios 1.20


The new release includes various improvements and fixes. The html tag <br> in election metadata is handled in more places. The monitoring has been improved with random orders of HTTP requests. A bug has been fixed in the computation of the Condorcet winners.

Release of Belenios 1.19


In order to facilitate monitoring elections, pages served to credential authority and trustees are now constant. The instructions for the authorities have been updated and reinforced.

Belenios 1.19 also solves several issues raised on GitHub, in particular regarding the mailto links. New languages have been added: Lithuanian, Spanish (Latin America).

New Belenios server


We have deployed a new Belenios public server, hosted at OVH, which should (hopefully) offer better availability. New elections should now preferably be created on this server. Accounts and elections on the old server will not be automatically migrated to the new server. You will have to create a new account.

The old server will remain online for a while but progressively, account creation and election creation will be disabled.

Release of Belenios 1.18


Belenios 1.18 now proposes the new voting booth by default. The new booth is prettier and more responsive, but may lack some translations; we invite administrators to use the booth preview feature to see if the new booth fits their needs. The old booth can still be selected on the question edition page.

The new release also includes several bug fixes (e.g. case sensitivity issues in logins) and supports new operations on the REST API (under development).

Release of Belenios 1.17


One of the main changes in Belenios 1.17 is actually invisible to its users: the cryptographic operations have been modified to avoid (theoretical) weaknesses. In particular, the link between a ballot and the corresponding election has been strengthened.

Moreover, Belenios now fully supports preferential elections tallied with the Condorcet-Schulze method. A new, user-friendly, voting interface has been developed to rank candidates. More information here.

Finally, administrators accounts are now associated with a profile. As a consequence, administrators will be asked an e-mail address on first login if the system cannot determine one. This e-mail address is used to initialize the contact for new elections. The default public name of the administrator for new elections can also be modified.

Release of Belenios 1.16


Belenios now includes several new features.

  • A new voting interface has been introduced both for standard elections (where voters select candidates among a list) and Majority Judgement (where voters rank candidates).
  • The default authentication for voters is now with an email with a short code during the voting process. The previous default (an email with a complex password sent in advance) is still available, but needs an explicit action to be used.
  • Due to several requests, <br> are now interpreted in the classical voting interface as line breaks in election names, descriptions, questions and answers.

Donations are welcome


We now welcome donations, in the first place to support our infrastructure costs and also to partly cover our development costs. You will find here more information on how to donate and how donations are used.

Release of Belenios 1.15


The new release of Belenios includes several features requested by users.

  • Belenios now officially support weighted votes. In other words, voters may have several votes, according to the rules of the election. You just have to indicate the number of votes of each voter (her "weight") in the electoral list, in the form mail,login,weight or mail,,weight.
  • Credentials and passwords now have a different format to avoid confusion.
  • So many elections were deleted by mistake ... we removed the misleading "archive" button in most cases.
Moreover, thanks to the translation effort, new languages have been introduced, namely Greek (el), Dutch (nl), Slovak (sk), Finnish (fi), Polish (pl).

Release of Belenios 1.13


The new release of Belenios suports two main new features:

  • The aministrator interface is available in several languages and new languages have been introduced at least for the voter interface: Norwegian Bokmål (nb), Spanish (es), Ukrainian (uk), Czech (cs), Occitan (oc). Your help for translation is still welcome since several languages are incomplete and we continuously introduce new parts.
  • If you wish to use alternative voting methods, our server now supports Condorcet-Schulze, Majority Judgment and Single Transferable Vote. More information can be found here. Note that you can still apply any other method using your own algorithm applied to the raw ballots produced from the tally.
Some more technical changes have also been made in the key management. In particular, now the key of the server is always needed to decrypt, even in the threshold mode.

Multi-languages hosted on Weblate


Belenios is available in a few languages for voters and for the administrator of the election. We need you help to pursue this effort. We have hosted our translation files on weblate. You can easily create an account and contribute. We have written a few guidelines on how to best translate Belenios. Your help will be very valuable to our project!

Release of Belenios 1.12


The main change is a bug fix: some users reported that they were blocked when voting. This was due to a bad interaction with some browser extensions. This is now corrected.

Security analysis of Belenios (in French)


We provide a security analysis of Belenios, mainly w.r.t. the criteria defined by the CNIL (Commission Nationale de l'Informatique et des Libertés). Since these criteria are somewhat specific to French regulations, the document is written in French. It can be found here.

Release of Belenios 1.11


One important feature of the new release is that the main page of the election now includes verification material for election authorities and voters. In particular, the number and names of decryption trustees are displayed as well as a hash of the voter list and all public and verification keys. The instructions on what to check and how are spelled out here (or here for the French version) for each party (trustees, electoral commission, credential authority, administrator, voters).
Moreover, in case no credential authority is used in an election (which reduces the security level of the election), then the administrator can now save the list of private credentials before starting the election. This allows the administrator to resend a credential to a voter that has lost it.

Release of Belenios 1.10


We have added mixnets to Belenios. What does this mean? You can now organize any type of elections, e.g. where voters rank candidates by order of preference or provide a grade. In the mixnet mode (still experimental), the raw ballots are provided at the end of the election, in a random order, to protect privacy. You can then apply your favorite counting methods (e.g. STV, Condorcet, or majority judgement) to compute the winner. More information on how to use Belenios for alternative voting can be found here. Note that Belenos still supports the previous homomorphic mode, which is more convenient (and efficient) in case of elections where voters simply select some number of candidates among a list.
The new version also includes minor changes in the administration interface, to help setting up an election with trustees.

Release of Belenios 1.9


Belenios 1.9 now includes the possibility to temporarily hide the result from the public (e.g. to delay the announcement of the winner). We have also fixed some bugs.

Release of Belenios 1.8


The new version 1.8 of Belenios includes two main changes.

  • To use our platform as an election administrator, you may now create an account online (select public mode).
  • The threshold encryption mode is now fully integrated to our platform. For example, the decryption key may be split among 3 authorities such that 2 suffice for decryption, as recommanded by the CNIL. Any other combination can be chosen of course.

Release of Belenios 1.7


The main visible change of Belenios 1.7 is that elections can now be archived and/or deleted, according to our policy regarding data management (click here for the French version). In particular, all elections will be deleted after one year. An archive of the election may be previously saved by the administrator of the election.

Release of Belenios 1.6


This new version of Belenios includes changes mandated by the new GDPR regulation.
The explanations given on the web interface for setting an election have been improved thanks to users comments.

Release of Belenios 1.5


Belenios 1.5 has been released and integrated to our voting platform. It is now possible to set the server as one of the trustees in charge of the decryption keys. Note that supported languages are now English, French, German, Italian, and Romanian.
Since its launch, Belenios has been used to organize about 200 elections and more than 6000 ballots have been cast.

Fully open voting platform


Our on-line voting platform can now be easily used to set up an election by login using your Google account (or the INRIA CAS server).

Multi language available


Voters can now vote in their favorite language (among English, French, and German). More languages to come soon! If you need another language for an important election, you may also contact us.

Code release


The latest version of our Belenios software is available. With this sofware, you may run an election on your own server. Belenios is distributed under the terms of the GNU Affero General Public License version 3.

Online platform


The first release of our on-line platform is up. No need to install software anymore. You can set up an election simply through our interface. Note however that this interface is still under development. Therefore the access is granted through the INRIA CAS server or on request. Stay tuned for the release of our fully open voting platform! To learn about the new developments of Belenios, you may subscribe to our mailing-list.