Polly is a wallet-connected voting dApp for creating polls, collecting one vote per account, and revealing vote totals after a poll closes. I implemented the Solidity contract, Next.js frontend and wallet integration, Foundry unit tests, and deployment scripts. I also deployed the contract to Scroll Sepolia and published the frontend
Overview
Polly lets users connect a crypto wallet, create polls with a closing time, vote, and view results after the poll ends. The application uses a Solidity contract as its data source, with a Next.js frontend for wallet connection and poll interactions.
My Contributions
I implemented the application code across the smart contract, frontend, tests, and deployment scripts. I integrated the frontend with Reown AppKit and Wagmi, deployed the contract to Scroll Sepolia, and published the frontend.
Technical Highlights
- Built contract functions for poll creation and deletion, vote registration, poll status, and result retrieval.
- Restricted result retrieval until a poll’s end time. This delays access to the totals; votes themselves are visible in public on-chain transaction data.
- Connected the frontend to contract reads and writes, with wallet transaction prompts, balance checks, confirmation dialogs, and success and error notifications.
- Wrote Foundry unit tests for poll lifecycle behavior, vote tracking, and result availability.
Technologies
Solidity 0.8.20, Foundry, OpenZeppelin, Next.js, React, TypeScript, Wagmi, Viem, Reown AppKit, Scroll Sepolia.
Outcome
The contract is deployed on Scroll Sepolia and the frontend is available as a live demo. No usage or performance metrics were available in the project evidence.



