{"id":26859956,"url":"https://github.com/okolievans/sigma_stark","last_synced_at":"2025-03-31T01:30:44.172Z","repository":{"id":209834705,"uuid":"719982013","full_name":"OkoliEvans/Sigma_stark","owner":"OkoliEvans","description":"On-chain voting engine with real time collation.","archived":false,"fork":false,"pushed_at":"2023-12-11T10:17:14.000Z","size":13672,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2023-12-12T10:27:35.481Z","etag":null,"topics":["blockchain","decentralized","distributed-systems","voting","voting-system"],"latest_commit_sha":null,"homepage":"https://sigma-starks.vercel.app","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OkoliEvans.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-11-17T10:18:57.000Z","updated_at":"2023-12-11T10:59:09.000Z","dependencies_parsed_at":"2023-12-08T10:38:14.252Z","dependency_job_id":null,"html_url":"https://github.com/OkoliEvans/Sigma_stark","commit_stats":null,"previous_names":["okolievans/sigma_stark"],"tags_count":0,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OkoliEvans%2FSigma_stark","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OkoliEvans%2FSigma_stark/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OkoliEvans%2FSigma_stark/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OkoliEvans%2FSigma_stark/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OkoliEvans","download_url":"https://codeload.github.com/OkoliEvans/Sigma_stark/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246404004,"owners_count":20771526,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["blockchain","decentralized","distributed-systems","voting","voting-system"],"created_at":"2025-03-31T01:30:43.286Z","updated_at":"2025-03-31T01:30:44.051Z","avatar_url":"https://github.com/OkoliEvans.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Sigma Stark\nDecentralized voting engine for creating and hosting elections. Anyone can create and hold elections, in an open, transparent and trustless manner. \n\n**How the system works**\n## Create election\nAn election overseer or administrator can create an election easily by simply passing in the following: \n\ni. An election id \u003cbr/\u003e\nii. Token name for vote tag \u003cbr/\u003e\niii. Token symbol \u003cbr/\u003e\niv. Election title \u003cbr/\u003e\nv. Date and time for start of election **in unix time** \u003cbr/\u003e\n\nWhen the needed data are provided, a new voting instance is created for that election. The details of the election are recorded and accessible. But no voting can hold just yet until the contesting candidates are added and the start election button clicked. The technical parts have been perfectly abstracted out for easy use of the newest web3 user.\n\u003c/br\u003e\n\u003c/br\u003e\n## Next steps:\n\n## Add Candidates\nOnly an election administrator or the overseer can add candidates. Candidates refer to the persons that will be contesting for positions in the election. These candidates will be displayed on that particular election instance where they are added.\nEach candidate will be displayed on the election page with the following params:\n\ni. age \u003cbr/\u003e\nii. wallet address \u003cbr/\u003e\niii. full name \u003cbr/\u003e\niv. position \u003cbr/\u003e\nv. brief description of the person \u003cbr/\u003e\n\nCandidates already added can be **disqualified** from contesting by calling the 'remove_candidate' function which is available as a button in the admin page.\n\n**Control election flow**\n\n**start vote:** This function kicks off the voting process. It is only after the administrator starts the process that verified voters can cast their votes. To start the process the administrator will need to pass the time when the voting will end. This is to enable the system to track the duration and capture moments during the voting process.\n\n**end vote:** This signals the end of the voting process. At the click of this button, no one can cast votes anymore, and the election is basically complete. Therefore this button is only available to the election administrator.\n\n\n## For Voters\n\nThe Sigma voting engine by design is built to resolve the problem of multiple registration by an individual, and by extension, multiple voting. The design thinking was to eliminate voting fraud totally, while keeping the entire process open, transparent and credible. We also plan to add features that will enable diaspora voting too. Voter **registration** on Sigma begins with verification.\n\n**Verification** \u003cbr/\u003e\n\nVerification on the platform was concieved to start as an offchain process that ensures that the voter seeking to get verified is truly a bonafide citizen of the country, club or group hosting the election. We plan to make the system robust that every administrator that set verification parameters and conditions, but for now no such checks have been implemented. For now we make do with this, while we continue to release new updates and also wait for approval from the NCC ministry for access to endpoints for validation using BVN, NIN, Passport and Drivers license.\n\n**How to:** \u003cbr/\u003e\nSimply click on the particular election to open up the election page, then click on the \"verify\" button. A wallet modal that pops up select the wallet you have, then sign the verification message. This will get you verified onchain and you are eligible to vote in that election, you will get a non-transferable token which will serve as your voting pass. \n\n\n**Voting**\n\nAll verified voters for every election instance are eligible to vote in that election. On an election page, simply tap on **vote** button and then sign the transaction in your wallet. If the process is successful you'll see an update on the election display banner, after the transaction has been confirmed on chain, the number of votes for each candidate will be updated and the winner will be updated in real time.\nIn the next release, we are working on a proof of participation NFT. After voting you get a \"voted\" NFT minted to your wallet which serves as a proof that you participated in the election.\n\n\n## Automatic collation\n\nVoting on Sigma is as open as daylight. Once a voter successfully casts a vote, the election core functions are invoked to update the leaderboard. It's safe to say that winner emerges in real time as the voting proceeds, and whoever is on top at the end becomes the winner of the contest. There's no need for personnels to count or collate elections manually. \n\nWe will keep building and updating the algorithms of the system as we monitor how elections are being conducted and managed by the administrators. If the systems gets abused or if administrators starts playing shady games, we will implement features that will give more administrators power to oversee the process and make decisions based on a consensus. (For now moderator do not interfer in the processes).\n\n\n## Developers\n\nIn the hallowed spirit of open source that is the tradition of web3 builders, the Sigma team is making this entire codebase open source. \n\nMake sure you have scarb and other necessary tools installed. If you are new to Starknet, you can get started with the tools here: https://book.starknet.io/ch02-01-basic-installation.html  \n\ni. Clone this repository into your local machine: ```git clone https://github.com/OkoliEvans/Sigma_stark.git \u0026\u0026 cd Sigma_stark```\n\nii. Run ```scarb build``` to build the program, and then you can continue on your machine.\n\n\nWe highly appreciate and welcome pull requests or issues from everyone that will help to improve the system, we apreciate especially PRs that will pinpoint bugs in the smart contracts, and of course in the other codes as well :)\n\n\u003cbr/\u003e\n\n*Factory Contract deployed on Starknet:* **0x03d499bbe9a1f95e49c03275dd772b84f6aa41d529a4e931c449999e65e58789** \u003c/br\u003e\n*SMX token deployed on Starknet:* **0x062df1f543b13e0da5abd2a90910fa7a2fe44c6a5f70849b298c6b2a219783a1**\n\n**Note:** SMX token is a limited transaction token only meant for gatekeeping on voting systems, and as such does not have any monetary value.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fokolievans%2Fsigma_stark","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fokolievans%2Fsigma_stark","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fokolievans%2Fsigma_stark/lists"}