
Ronda Web3
Democratizing access to community-based finance 🚀
Demo
About
The problem it solves RONDA Web3 brings the power of decentralized finance to a traditional, globally practiced system of community savings known as "tandas" or ROSCAs. These informal rotating savings groups are widely used across Latin America, Africa, and Asia—but are often plagued by trust issues, fraud, or lack of transparency. **RONDA solves this by:** * 🛡️ **Eliminating Trust Issues**: Funds and rules are managed entirely by smart contracts, removing the need for a central authority. * 🔐 **Enhancing Security**: Automated rules prevent fraud, defaults are penalized on-chain, and participation is gated by proof-of-humanity. * 🌍 **Enabling Global Access**: Anyone with a wallet and verified identity can join, regardless of geography or banking access. * 🔁 **Bringing Real Yield to Savings**: Later participants can earn yield from tokenized real-world assets, while early participants access funds through fair auctions. * 🔗 **Cross-Chain Participation**: Thanks to Chainlink CCIP, users can participate from different blockchains and still interact with the same savings pool. Whether you're unbanked or seeking fair community-based finance, RONDA Web3 provides a **trustless, transparent, and inclusive alternative** to traditional savings groups.
How it's made
Challenges we ran into Building RONDA Web3 for a hackathon with advanced Chainlink integrations was ambitious, and we ran into multiple real-world hurdles: ### 🎲 Chainlink VRF Integration (Random Slot Allocation) * **Challenge**: Integrating Chainlink VRF required managing a subscription system using VRFCoordinatorV2Plus. This added complexity around permissioning (subscription ownership vs. contract caller) and delayed testing since randomness requests were not fulfilling correctly. * **Solution**: We wrote a separate script to **transfer subscription ownership** and set our deployed Ronda Factory contract as subscription admin in order to add subscriptions consumers. Once permissions were properly configured, randomness flows worked as expected in testnets. ### 🔀 Chainlink CCIP (Cross-Chain Deposits) * **Challenge**: Sending USDC across chains using CCIP was tricky. Early attempts failed silently due to incorrect encoding in the message payload and mismatches in token mapping. * **Solution**: We built custom **debug logs and a `CCIPChainManagement.t.sol` test** suite to simulate cross-chain behavior locally. This helped us fix message formats, match token addresses correctly across chains, and successfully process deposits on the destination chain. Both of these services—VRF and CCIP—required diving deep into Chainlink’s docs, subscription architecture, and Foundry test debugging to get things working in time.