Inspiration
While cities spend millions on sanitation, everyday litter often goes unnoticed. We were inspired to build a solution that directly incentivizes citizens to take action. By combining Web3 and community trust, we wanted to create a decentralized system where people are rewarded for cleaning public spaces — without relying on centralized authorities.
What it does
CleanChain-V2 is a decentralized application (dApp) that verifies and rewards real-world cleanups using a community-driven voting system and on-chain token incentives. Users upload geotagged “before” and “after” photos of cleaned areas. Other users then vote to validate the effort. Once a threshold is met, the cleanup is verified and rewarded with ECO tokens via smart contract. The system includes:
- Wallet-based authentication (Metamask)
- Geolocation + photo uploads
- Voting system for verification
- ERC-20 token rewards
- Admin dashboard & user profiles
How we built it
We used a full-stack Web3 architecture:
- Frontend: React (Vite) + TailwindCSS for UI
- Backend: Node.js + Express.js for API routing
- Database: Firebase Firestore for user/location/vote storage
- Blockchain: Solidity smart contracts deployed using Hardhat
- Wallet integration: Ethers.js for blockchain interaction
- Smart Contract: Custom ERC-20 ECO token with reward transfer logic
We followed a modular folder structure with routes for auth, voting, uploads, and smart contract interaction.
Challenges we ran into
- Designing a trustless verification mechanism without oracles or AI
- Preventing abuse (e.g., self-voting or duplicate cleanups)
- Getting Firebase and smart contract logic to sync without race conditions
- Managing environment variables securely for backend deployment
- Time constraints in building an entire reward flow from scratch (upload → vote → token transfer)
Accomplishments that we're proud of
- Built and deployed a working token economy with real-time reward flow
- Created a clean and intuitive UI for wallet-based interactions
- Integrated Web2 (Firebase) and Web3 (Solidity) smoothly
- Designed a project that solves a real-world sustainability problem
- Learned how to make something that feels like a real Web3 product, not just a demo
What we learned
- Deepened our understanding of smart contract development and deployment
- How to build secure Web3 APIs while managing off-chain data
- Balancing decentralization with usability — especially in voting and validation mechanisms
- The importance of thoughtful UX in Web3 projects
- How to debug complex systems with multiple moving parts (DB, wallet, blockchain)
What's next for CleanChain
- Add on-chain voting using ZK proofs or token-weighted governance
- Expand to mobile (React Native or Expo) for easy field reporting
- Gamify the system: leaderboards, streaks, NFT badges
- Partner with local NGOs or municipalities to run real-world pilot programs
- Enable token redemption for eco products or event access
- Build a DAO to manage ecosystem governance and sustainability
Built With
- ethereum
- ethers.js
- express.js
- firebase
- google-maps-javascript-api
- hardhat
- javascript
- metamask
- node.js
- react
- solidity
- tailwind
Log in or sign up for Devpost to join the conversation.