ZK-Vote is a privacy-preserving and auditable voting platform built on World ID and Polygon.
Voting data will be published on-chain to promote transparency, auditability and real-time tracking, adding trust and reliability to the voting process.
This is a template repository for creating a new project using Next.js and the World ID SDK. This template isn't intended for use cases that require on-chain verification, but rather for use cases that require off-chain web backend verification.
Check out the live voting results on Polygon to see if A or B wins - https://mumbai.polygonscan.com/address/0x7dd3be682c7e33abc723bd470b7c5256ba7613cf
Check out ZK-Vote - https://eth-global-world-id.vercel.app
First, run the development server:
yarn install && yarn dev
Open http://localhost:3000 with your browser to see the result.
Copy .env.example
to .env.local
and add your World ID App ID and Action Name to the appropriate variables.
This template includes an API route to verify the proof returned by the IDKit widget at /api/verify
. Edit src/pages/api/verify.ts
to handle any backend functions you need to perform.
You can start editing the page by modifying src/pages/index.tsx
. The page auto-updates as you edit the file. Edit the onSuccess
function to define frontend behavior once the proof has been verified.
The src/pages/api
directory is mapped to /api/*
. Files in this directory are treated as API routes instead of React pages.
To learn more about Next.js and World ID, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
- World ID Documentation - learn about World ID features and API.
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.