Your Vote.
Your Secret.
Public token votes expose who voted what, let whales dominate, and invite censorship. SIGIL fixes it for communities, DAOs, and public goods.
Open source · Free on testnet
Core Features
Private Votes
Individual votes stay private. Only totals are published.
Bribe-Resistant
Change your key and re-vote. Bribers can't verify compliance.
More Fair
Quadratic voting makes extra influence cost more.
ZK Verified
On-chain ZK proofs verify the tally.
How Privacy Is Guaranteed
Encrypt
Votes are encrypted in the browser before they go on-chain.
Re‑Vote
If pressured, change your key and re‑vote. Bribers can’t tell.
Verify
Tally results ship with a ZK proof. Manipulation fails verification.
What Is Visible On the Blockchain?
Publicly Visible
Encrypted Messages
Ciphertext posted on-chain (meaningless number sequences).
Aggregate Results
Total For / Against published after tallying.
ZK Proofs
Cryptographic evidence that the tally is correct.
Never Exposed
Individual Vote Choices
No on-chain record of who voted what.
Who Voted Which Way
Identity and choice are never linked publicly.
Who Changed Their Key and Re‑Voted
Key-change history is not publicly distinguishable.
The Coordinator's Role
The coordinator decrypts votes during tallying. It cannot manipulate results (ZK proof would fail) and cannot prove anyone's final vote to a third party (voters can change keys).
Why SIGIL?
Private votes, bribe-resistance, and quadratic fairness — in a single protocol your community can use today.
Use Your Token
Vote with the governance token you already hold. No wrapping or migration needed.
No App to Install
Vote directly from your browser. Connect your wallet and you're ready.
Low Cost Options
Also runs on L2 networks like Base and Arbitrum for lower transaction fees.
Token-Gated Proposals
Token holders above the threshold can create proposals. Governance stays in the hands of stakeholders.
Embed Anywhere
Add SIGIL voting to any website or app with a simple embed.
Automatic Results
Results are tallied and published automatically when voting ends. No manual steps.
Delegate Your Vote
Can't participate in every vote? Delegate your voting power to someone you trust.
Decisions Take Effect
Passed proposals can automatically execute on-chain after a safety delay.
For Developers
Add private, coercion-resistant voting with a lightweight SDK. No app backend required.
Open Source
auditable code
Ethereum Native
On-chain ZK verification
PSE MACI
Built on Ethereum Foundation research
maciAddress: '0x...',
provider: yourProvider
});
await sigil.vote(pollId, 'for', 3);