Inspiration

As a developer deeply passionate about decentralized finance, I created DeFi EasySave to tackle one of the biggest hurdles in the space: accessibility. Despite the explosion of DeFi protocols like Aave and Compound, the average person—especially in underbanked regions—still struggles to participate. Whether it’s complex UIs, gas-heavy interactions, or the absence of guided financial planning, current tools often alienate the very people DeFi aims to empower.

My inspiration came from the idea of combining personal savings, community-driven finance, and goal tracking, all while wrapping it in a UI simple enough for anyone to use—even without technical knowledge. I wanted to make saving in crypto as easy as using a bank, but without the middlemen.

What It Does

DeFi EasySave is a decentralized savings dApp that helps users:

  • Earn APY by depositing stablecoins like mUSDC (5%), mDAI (4%), and mUSDT (3%)
  • Boost returns by locking funds for 1–365 days (+2% APY incentive)
  • Set personal goals (e.g., “save 100 mUSDC in 30 days”) and track them on a real-time dashboard
  • Join social savings pools where multiple users contribute toward a shared target
  • Visualize their entire history, balances, interest earnings, and market data (via a mock Chainlink Oracle)

Everything happens on-chain via smart contracts deployed on the Ethereum Sepolia testnet. Users keep full custody of their funds through MetaMask.

How I Built It

🛠 Smart Contracts

  • Language & Framework: Solidity ^0.8.20 with the Foundry framework
  • Contracts:

    • SavingsPool.sol: Core logic for deposits, withdrawals, lockups, goal setting, and pool contributions.
    • Mock ERC20 tokens (MockUSDC, MockDAI, MockUSDT) for testing.
    • MockV3Aggregator: Simulates Chainlink price feeds.
  • Security: Used OpenZeppelin’s ReentrancyGuard, ERC20, and Math for precision and protection.

  • Deployment:

  forge script script/Deploy.sol --rpc-url $SEPOLIA_RPC --private-key $PRIVATE_KEY --broadcast

🌐 Frontend

  • Built with React + TailwindCSS for a blockchain-themed look
  • Connected via ethers.js (v6+)
  • Features:

    • Dashboard.jsx: Shows balances, APY, locked funds, goals
    • DepositForm, LockForm, GoalForm, SocialPools: All logic tied to contract methods
    • Analytics.jsx: Displays APY rates, USDC/ETH prices, user history
    • Learn.jsx: Educates users on DeFi EasySave’s mission and features
  • Design Enhancements:

    • Animated GIFs (deposit.gif, padlock.gif, target.png)
    • Token logos (USDC, DAI, USDT) with hover/spin animations
    • Light error messages for non-technical users

🧠 AI Tools (Used & Planned)

To make onboarding and support easier, I plan to integrate:

  • Gemini AI (Google): Chat-based guidance for explaining savings terms or actions
  • OpenAI’s GPT-4: Natural language support for in-app Q&A and error resolution
  • Grok 3 (xAI): For voice-mode mobile UX where users can say, “Save 50 USDC for 30 days” and it does it

Challenges I Faced

  1. CALL_EXCEPTION Errors in MetaMask
  • Fix: Improved ABI matching, added fallback logs, and verified with cast call.
  1. Circuit Breaker RPC Failures
  • Fix: Set manual gas limits (e.g., 300000 for deposits) and guided users to switch RPC endpoints.
  1. Token Image/Animation Integration
  • Fix: Sized all images properly (32x32px), added spin-y CSS animation, and toggled state in React.
  1. Testing with Limited Sepolia ETH
  • Fix: Used Alchemy faucet, grouped calls into batch functions to reduce costs.
  1. Simplifying UX
  • Fix: Built clean, form-based components with tooltips, error handling, and a Learn.jsx section to onboard new users.

Accomplishments

  • Fully working DeFi savings platform on Sepolia with stablecoins, locking, goals, and social pools
  • Clean, responsive frontend with React + Tailwind and MetaMask support
  • Advanced contract testing using SavingsPoolTest.sol with vm.prank, fuzzing, and time travel
  • Live analytics using mock Chainlink oracle and history rendering in real-time
  • Goal tracking + visual dashboards for individual savings plans
  • User-friendly experience that feels more like a Web2 fintech app than a raw Web3 tool

What I Learned

  • Smart Contracts: Precision is critical—especially with interest calculation and timestamp-based logic.
  • Gas Optimization: Learned how to batch transactions and reduce unnecessary storage writes.
  • Web3 UX Design: It's not enough for the dApp to work—it has to feel intuitive for users who’ve never touched crypto.
  • Foundry: Gained deep confidence using Foundry for unit testing, scripting, and mocking Chainlink data.
  • DeFi Education: Realized the need to build in education for people unfamiliar with APY, locking, or even MetaMask.

What’s Next

  1. Mainnet or Layer 2 Migration
  • Deploy to Optimism or Arbitrum to slash gas fees
  • Update .env with new addresses
  1. Replace Mock Tokens
  • Integrate real USDC, DAI, USDT
  • Swap MockV3Aggregator with live Chainlink price feeds
  1. Smart Contract Audits
  • Get a formal audit from OpenZeppelin or Hacken before mainnet rollout
  1. AI Integration
  • Gemini or OpenAI in-chat assistant for explaining savings actions
  • Grok 3 integration for voice-controlled savings on mobile
  1. Governance
  • DAO-based voting on interest rates, new tokens, or social pool features
  1. Insurance
  • Partner with Nexus Mutual or similar to offer optional coverage for user funds
  1. Mobile App
  • Flutter or React Native version with embedded Grok-style voice interaction
  1. Localization + Tutorials
  • Multi-language support
  • Add video walkthroughs in Learn.jsx for onboarding

Built With

Share this project:

Updates