Search projects, hackathons, sponsors and tech

    ← All projects

    Demo

    About

    The problem it solves Krono Finance makes decentralized finance (DeFi) simple, accessible, and practical — especially for users in emerging markets like Indonesia. Today, using DeFi requires jumping between 4–5 different apps just to lend, borrow, stake, or swap. This fragmentation leads to confusion, higher risk of error, and poor user experience — particularly for non-technical users. Krono solves this by bringing all essential DeFi functions into one platform with a clean, familiar interface. Users can lend assets like IDRX and earn passive yield, or borrow without needing banks or credit checks — all with just a few clicks. By integrating with the Xellar Kit Wallet, users can onboard into Web3 instantly without dealing with seed phrases or complex wallet extensions. And because it’s built on Lisk’s Ethereum Layer 2, Krono offers fast, low-cost transactions ideal for mobile-first and cost-sensitive users. Krono also improves security through overcollateralized loans and dynamic risk management. With local stablecoin support (IDRX), users get access to a familiar currency with stable value — reducing the volatility barrier that limits DeFi adoption in emerging markets. In short, Krono Finance helps everyday users unlock the real value of DeFi — without needing to be crypto experts.

    How it's made

    Challenges we ran into We faced three major challenges while building Krono Finance: 1. DeFi Math & Interest Rate Calculations Building accurate, real-time lending logic required precise math for interest accrual, utilization rate, and dynamic APRs. Even small mistakes led to compounding errors. We solved this by extensively testing edge cases with Foundry and referencing proven DeFi protocols like Aave and Compound for formulas and design patterns. 2. Upgradeable Contract Initialization Bugs As we used upgradeable contracts for flexibility, we initially ran into issues where the initializer logic was either skipped or misfired, causing contract state to remain unset. We resolved this by switching to Initializable from OpenZeppelin, carefully ordering the constructor logic, and writing specific tests just for the init functions. 3. Frontend Data Sync & Web3 Integration Mapping smart contract state to clean frontend UI was harder than expected, especially with lending positions and interest rates that changed every block. We overcame this by implementing custom hooks, caching read calls, and improving error handling for better dev experience. These challenges helped us better understand the complexity behind building secure, user-friendly DeFi apps — and made the product more robust.