Decentralized ROSCA (Rotating Savings and Credit Association) on Ethereum. Traditional community savings re-imagined for Web3.
A group savings system where members contribute periodically and take turns receiving the pool. Known globally as Tandas 🇲🇽, Susu 🌍, Kameti 🇵🇰, Hui 🇨🇳, Chit Fund 🇮🇳.
- 🔐 Trustless: Smart contracts ensure fair distribution
- 🌐 Global: Permissionless participation
- 🔍 Transparent: On-chain verification
- 🤝 Decentralized: No intermediaries
- Smart Contracts: Solidity 0.8.x
- Development Framework: Hardhat 👷
- Security: Slither Analyzer 🐍
- Deployment: Hardhat Ignition 👷
- Network: Ethereum (Compatible with all EVM networks)
- Web Interface: "Vibe coding" based on Lovable 🪄
-
Setup
- ROSCA Creator (Admin):
- Set participant count & total pool amount
- Pays initial contribution
- ROSCA Creator (Admin):
-
Participation
- Participants join an existing ROSCA contract
- Each participant contributes an equal amount
-
Rounds
- Each round has one designated recipient
- All participants must contribute before pool distribution
- Recipients rotate in order of registration
- Contract manages contribution tracking and distribution
- ✅ Fixed number of participants
- ✅ Equal contribution amounts
- ✅ Automatic recipient rotation
- ✅ Contribution tracking
- ✅ Secure pool distribution
- ✅ View functions for contract status
-
Prerequisites
npm install
-
Compile Contracts
npx hardhat compile
-
Run Tests
npx hardhat test
-
Local Development
# Start local node npx hardhat node # Deploy contract npx hardhat ignition deploy ./ignition/modules/Rosca.ts --network localhost
-
Testing Networks
# Deploy to testnet (e.g., Sepolia) npx hardhat ignition deploy ./ignition/modules/Rosca.ts --network sepolia
- Make sure Slither is installed
pip3 install slither-analyzer
- Run Slither
slither .
- Usage Guide - Guide for Smart contract interaction
- Web Interface - Web interface (Coming Soon)
This project is licensed under the MIT License - see the LICENSE file for details.