# SIV — the Secure Internet Voting protocol
Internet voting system designed for **government-grade election security**, with mathematically provable privacy & vote verifiability.

## Core Security Goals
- **Authenticated voters:** Only legitimately registered voters are allowed to vote, and only once per person.
- **Verifiable tallies:** For widely accepted results, vote totals must be independently auditable for accuracy.
- **Private voting:** A fair election requires that voters can freely choose without anyone learning how they voted.
## Resources
- Homepage: [siv.org](https://siv.org)
- Documentation: [docs.siv.org](https://docs.siv.org)
- Illustrated Guide to the SIV Protocol: [siv.org/protocol](https://siv.org/protocol)
- SIV compared to other government elections options: [docs.siv.org/compare](https://docs.siv.org/compare)
## License & Restrictions
SIV is designed to [create verifiable proof of accurate election results](https://docs.siv.org/verifiability), without needing to inspect any source code — which is not feasible of remote servers anyway.
Nonetheless, the SIV Source Code is made available for transparency, to enable deep security inspections.
Permission is **_not granted_** for commercial or governmental usage, without first acquiring a separate Commercial or Government License. Contact team@siv.org if interested.
See the [SIV Public License](/LICENSE) for further details.
## Local Development Instructions
### Initial set up
1. Fork the repo
2. Duplicate the file `.env.local.TEMPLATE` into `.env.local`
3. Create (free) accounts with the providers listed in that file, adding your new API keys. [These detailed instructions](/cloud-services.md) can help if stuck.
4. Install local dependencies:
```bash
npm install
```
### Then, to start dev server
```bash
npm run dev
```
And you should see:
> Ready - server started on http://localhost:3000
🎉