This is the homepage. To connect with a wallet, you can click the “Connect Your Wallet” button or the “Connect” button.

First, you need to add the Base Sepolia Network to your wallet. If the Base Sepolia Network is not available in your wallet, you can manually add it by using the network information provided in the Base documentation: https://docs.base.org/docs/network-information

There are several options for connecting your wallet to the application. The first is by using a wallet extension within the web browser. If the extension is recognized in the browser, the identified wallet will automatically be called and will prompt for permission.

If there is no wallet extension in the browser, it is also possible to scan a QR code with a mobile phone and connect to the wallet available on the mobile device.

Finally, for those using the application on a mobile device, it is possible to connect the wallet directly from the mobile. From the menu, you can select the wallet you are using, and the application will guide you to your wallet. After granting permission, you will be prompted to return to the application, where you will need to wait a few seconds for the connection to be established.

The initial screen of the application after a successful login looks like this. Here, the user can join a voting session by entering the session ID. After clicking “Go to Session,” if the ID is valid and the user is part of that session (i.e., if the voting administrator has approved their participation), they will be redirected to the voting page. On the other hand, if the user is someone who wants to start their own voting session, for example, a manager in a company who wants to initiate a decision-making process on a particular issue, they will click “Click here” and become the administrator of their own session.

First, we will address the case where the user wants to create a new voting session, i.e., become an administrator. After clicking “Click Here,” the wallet will display the transaction being prepared and once again request approval. Creating a session costs a certain amount of Ethereum, which covers the network’s transaction processing fee.

After the transaction is processed, the user, now the administrator, will automatically be redirected to the admin panel of the session they created and now manage as the administrator.

The first input field is intended for entering the topic on which the vote or decision is being made. Following that are fields where candidates or items to be voted on are entered. Candidate fields can also be deleted by clicking the trash icon, and when one field is filled, a new one is automatically added below, making the input process very quick.

Below the section for entering the voting title and items, there is a part of the application that allows the entry of public addresses for the users who will have the right to vote on the topic. Next to each address, there is also a field to assign the weight of their vote. In this example, three addresses have been entered, meaning that only three voters will be able to participate in the vote, with vote weights of 27, 32, and 41 points, respectively.

These weights can, for example, represent the ownership share in a company where shareholders are voting on a specific decision. If the voting topic requires equal votes for all participants, you can simply enter 1 or leave the field blank.

Below the section for entering voters’ wallet addresses and vote weights, there is a setting for how long the voting session will remain open. The value is in minutes, with a slider up to 100, but you can manually enter a higher number if needed. Voting can stay open for days to accommodate different time zones.

There is also an option for the administrator to control whether the voting results are visible during the session. In some cases, hiding results prevents influencing voters’ decisions, though it reduces transparency. Voters will be notified if result visibility is disabled.

Once the administrator has filled in the necessary details, the session can be started by clicking “Start Voting.” After that, the administrator will need to approve the transaction in the wallet again.

This operation incurs a cost in Ethereum due to the transaction and interaction with the smart contract. Additionally, using the SolidVote application requires a certain amount of SolidVote (SOV) tokens. You can find more details about SOV tokens and claim free promo tokens on the SOV token page.

After clicking “Start Voting,” another important operation occurs: a small amount of Ethereum is automatically sent to the voters so they can participate, even if they don’t have funds in their wallets. This simplifies the process for voters, but the administrator covers the costs. There are plans to add an option for administrators to decide whether this is necessary, especially when voters are already part of the crypto community.

Once the voting session begins, a notification appears, and a table with voting information and session duration is shown at the bottom. This is the same view the voters will see, allowing the administrator to double-check voting details and monitor results in real time. The voting session can be stopped by clicking the “Stop Voting” button, after which wallet confirmation is required again.

Below the voting information table, there’s a QR code linking to the session. The administrator can share it with voters for easier access, or they can manually enter the session ID on the homepage.

We will now view the application from the voters’ perspective. On the homepage, users can enter the session ID. After clicking ‘Go to Session’, if the logged-in wallet address matches one of the previously authorized ones in the admin panel, the voter will be redirected to the voting page. The same applies when using a QR code instead of manually entering the ID. If the wallet address is authorized, the voting page will be displayed.

The displayed table contains the voting topic, the options to vote for, as well as the remaining time. The voter selects the option they want to vote for, and confirms their choice by clicking VOTE.

For the vote to be valid and recorded on the network, the voter must also approve the transaction in their wallet. Once the transaction is complete, the voter will see that their vote has been added. Previously, we assigned this voter, i.e., their address, a weight of 27, as shown in the following image.