You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add live demo poll, wallet callout, and deploy section
- Try It Live: fetches active polls and renders inline voting widget
- Why ZK Voting: expanded to 3 columns with Wallet-Native Auth card
- Deploy to Your Chain: Foundry bundle download with 3-command workflow
- CSS for demo poll widget, deploy code blocks, inline code in cards
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: public/index.html
+78-3Lines changed: 78 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -104,23 +104,66 @@ <h3>Tally</h3>
104
104
</div>
105
105
</section>
106
106
107
+
<sectionclass="section" id="try-it">
108
+
<h2>Try It Live</h2>
109
+
<pclass="section-sub">Cast a vote on an active poll. Your choice stays hidden until the poll closes.</p>
110
+
<divid="demo-poll" class="demo-poll">
111
+
<divclass="demo-poll-loading">Loading active polls…</div>
112
+
</div>
113
+
<divstyle="text-align:center; margin-top: 24px;">
114
+
<aclass="btn-secondary" href="/poll" style="font-size:0.9rem; padding:10px 24px;">View All Polls</a>
115
+
</div>
116
+
</section>
117
+
107
118
<sectionclass="section section-dark">
108
119
<h2>Why ZK Voting?</h2>
109
-
<divclass="grid-2">
120
+
<divclass="grid-3">
110
121
<divclass="angle-card">
111
122
<h3>Voter Privacy</h3>
112
123
<p>Nullifiers link each ballot to a registered voter without revealing who voted for what. The proof confirms eligibility; the choice stays hidden.</p>
113
124
</div>
125
+
<divclass="angle-card">
126
+
<h3>Wallet-Native Auth</h3>
127
+
<p>Connect MetaMask to create polls and derive voting secrets from wallet signatures. No accounts, no passwords — your key is your identity.</p>
128
+
</div>
114
129
<divclass="angle-card">
115
130
<h3>Verifiable Results</h3>
116
131
<p>Every vote carries a Groth16 proof that the on-chain verifier checks. No trusted tallier, no back-room count — the math is the audit.</p>
117
132
</div>
118
133
</div>
119
134
</section>
120
135
121
-
<sectionclass="section">
136
+
<sectionclass="section" id="deploy">
137
+
<h2>Deploy to Your Chain</h2>
138
+
<pclass="section-sub">Download a complete Foundry project. Deploy the ZK poll contract to any EVM chain in minutes.</p>
139
+
<divclass="grid-2">
140
+
<divclass="angle-card">
141
+
<h3>What You Get</h3>
142
+
<p><code>BitwrapZKPoll.sol</code> — governance contract with nullifier-based double-vote prevention and voter registry Merkle root verification.</p>
143
+
<pstyle="margin-top:12px;"><code>Verifier.sol</code> — auto-generated Groth16 verifier for the voteCast circuit. Deployed alongside the poll contract.</p>
144
+
<pstyle="margin-top:12px;"><code>Deploy.s.sol</code> — Foundry deployment script with sample initialization.</p>
145
+
</div>
146
+
<divclass="angle-card">
147
+
<h3>Three Commands</h3>
148
+
<preclass="deploy-code"><spanclass="comment"># Download the bundle</span>
<pclass="section-sub">The voting protocol is one application of a general-purpose ZK state machine. The same framework powers token standards.</p>
166
+
<pclass="section-sub"style="max-width:900px; margin-left:auto; margin-right:auto;">The voting protocol is one application of a general-purpose ZK state machine. The same framework powers token standards.</p>
0 commit comments