Search projects, hackathons, sponsors and tech

    ← All projects

    About

    The problem it solves Traditional savings systems in DeFi are passive and often lack engagement. Users deposit funds and wait indefinitely for modest returns, often losing motivation. Meanwhile, lotteries are purely luck-based, offering no reward to consistent savers. 💡 **Our Solution: **VaultWin**** VaultWin reimagines DeFi savings by merging disciplined savings with lottery-style rewards. Here's how it improves the experience: ✅ Encourages Long-Term Saving Users deposit ETH with a custom lock-in period. It enforces healthy financial habits by making withdrawals only possible after this time. 🎲 Fair & Transparent Lottery Instead of rewarding random wallets, only eligible savers are entered into a Chainlink-powered lottery. The system uses verifiable randomness to pick a winner every 30 days. 🔒 Security First Funds are held in a secure smart contract. Users stay in control and can view balances and timestamps. Chainlink VRF and Automation provide secure randomness and timely execution. 📈 Gamified Finance Savers become potential monthly winners just by keeping their ETH safe. This gamified experience motivates users to keep saving instead of withdrawing early.

    How it's made

    Challenges we ran into During the development of this project, I encountered several interesting challenges that pushed me to grow as a developer. 1. Database Connection Issues One of the most persistent hurdles was ensuring reliable data persistence. At first, user data was not being saved correctly, and I discovered that the root cause was a misconfigured database connection string. This led to data loss every time the server restarted. How I solved it: I revisited the environment variable setup and improved the logic for loading configuration values. By adding robust error handling and clear logging, I was able to quickly identify and fix the issue. After these changes, data was stored and retrieved reliably. 2. Handling Asynchronous Operations Managing multiple asynchronous API requests proved to be tricky, especially when dealing with race conditions and error propagation. How I solved it: I refactored the codebase to use async/await consistently, which made the code more readable and easier to debug. I also implemented comprehensive error handling to gracefully manage any failures during API calls. 3. Debugging and Testing There were moments when bugs seemed elusive, especially when they only appeared under specific conditions. How I solved it: I adopted a more systematic debugging approach, using breakpoints and detailed logging. Writing targeted unit tests also helped me catch edge cases early and ensured the stability of the application. Overall, these challenges not only improved my technical skills but also taught me the importance of patience, attention to detail, and continuous learning in software development.