Thanks to visit codestin.com
Credit goes to github.com

Skip to content

emiridbest/esusu

Repository files navigation

Esusu: Decentralised Community Savings on Celo

Esusu Logo

Proof of Ship 9

  • Commence viral app invite campaign: New user and inviter get G$2000 each.
  • Add airtime freebies: Prices are subsidised at over 20x.
  • Track tx hashes: This is for dispute resolution and activity monitoring.
  • Improve UI: Making it look cleaner and more professional.
  • Grow DAU to >650: The actual value at the time of report is 685
  • Commence G$ only daily claims: Making Esusu attractive to users who do not want subsidised airtimr or data topups.

Proof of Ship 7

  • Implemented robust user management and profile service (wallet-based identity, email/phone linking, MongoDB integration)
  • Centralised transaction management for savings, withdrawals, utility payments, group contributions, and payouts with blockchain tracking
  • Developed group thrift and rotating savings service (5-member groups, automated scheduling, strong validation)
  • Built a utility and electricity payment service with secure API integration and auditable flows
  • Added notification and multi-channel alert service (email, SMS, push) for key user and group events

Proof of Ship 6

  • Made smart contracts upgradable
  • Added test suite with above 85% coverage
  • Implemented G$ face verification on Farcaster
  • Onboard additional users, increasing the community base by over 150%
  • Ran a monthly community giveaway scheme
  • Launched referral campaign for early community members with rewards payout of over $250 so far
  • Ensured GitOps pipeline is functional

Overview

Esusu is a decentralised application (DApp) built on the Celo Mainnet that modernises traditional community savings systems. It enables financial inclusion through a 3-in-1 solution that combines collaborative savings, personal finance management, and bill payment capabilities.

Features

1. Thrift Contribution System

  • Users join campaigns where they contribute funds monthly
  • Each month, one participant receives the pooled contributions
  • Provides access to bulk capital without traditional borrowing
  • Smart contracts ensure transparency and secure fund distribution

2. MiniSafe Box (Time-locked Savings)

  • Personal savings with customizable time-locking
  • Earn MST (MiniSafe Tokens) as rewards for maintaining locked savings
  • Incentivises financial discipline and long-term planning

3. Bill Payment System

  • Pay utility bills directly through the platform
  • Make charitable donations to various projects
  • Low-cost transactions using Celo's efficient blockchain

Problem Statement

Financial exclusion remains a significant challenge across developing economies, particularly in Africa. Limited banking access and weakening savings culture, exacerbated by economic pressures and increased impulse spending, have created barriers to financial stability. Traditional community savings systems (like Esusu) face trust and efficiency challenges, while formal banking remains inaccessible to many.

Our Solution

Esusu bridges traditional community savings practices with blockchain technology to create a secure, transparent financial platform that:

  • Preserves cultural financial traditions while eliminating trust issues
  • Enables financial discipline through smart contract enforcement
  • Provides accessible financial tools via mobile devices with minimal bandwidth requirements
  • Promotes community cooperation through decentralised technology

Technology Stack

  • Frontend: Next.js, Tailwind CSS, Shadcn UI components, TypeScript
  • Blockchain: Celo Mainnet
  • Smart Contracts: Solidity, Foundry
  • Development Framework: Celo Composer
  • Data Storage: MongoDB
  • SDK: Goat SDK

Contract Information

The Esusu protocol has been deployed to the following contracts:

Network Contract Address
Celo MiniSafeAave 0x9fAB2C3310a906f9306ACaA76303BcEb46cA5478
Celo MiniSafeAaveIntegration 0xB58c8917eD9e2ba632f6f446cA0509781dd676B2
Celo MiniSafeAave 0x67fDEC406b8d3bABaf4D59627aCde3C5cD4BA90A
Full Contract Repo: https://github.com/emiridbest/esusu-contracts/
esusu/
├── farcaster/           # Next.js 15 frontend application for Farcaster 
├── frontend/            # Next.js 15 frontend application for MiniPay
│   ├── app/             # App Router components and routes
│   ├── components/      # Reusable React components
│   ├── public/          # Static assets
│   └── ...
├── backend/             # Next.js 15 backend API server
│   ├── app/             # API routes
│   └── ...
└── ...

Features

  • Mini Safe: Secure savings feature
  • Thrift: Group savings feature
  • Chat Assistant: AI-powered assistant for performing on-chain transactions

Getting Started

Prerequisites

  • Node.js 18.17.0 or later
  • npm or yarn

Installation

  1. Install dependencies for both frontend and backend:
npm run install:all

Running the Application

To run both the frontend and backend simultaneously:

npm run dev

This will start:

Environment Setup

  1. Configure your frontend environment variables in frontend/.env:
NEXT_PUBLIC_BACKEND_URL=http://localhost:3001
NEXT_PUBLIC_APP_URL=http://localhost:3000
  1. Configure your backend environment variables in backend/.env:
PORT=3001
OPENAI_API_KEY=your_openai_api_key_here
WALLET_PRIVATE_KEY=your_wallet_private_key_here
RPC_PROVIDER_URL=your_rpc_provider_url_here

Building for Production

To build both production applications:

npm run build

To start the production builds:

npm run start

Technologies Used

  • Next.js 15
  • React 18
  • TypeScript
  • Tailwind CSS
  • OpenAI SDK
  • Viem for Blockchain Interactions
  • GOAT SDK for Web3 Integration

Mobile Access

To access the app via the Celo MiniPay wallet:

  1. Open the MiniPay app
  2. Navigate to the site tester feature
  3. Enter http://esusu-one.vercel.app

Screenshots

Dashboard Savings Interface Campaign Creation Transaction History User Profile Bill Payment

Team

Emiri Udogwu - Lead Developer - GitHub

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

License

This project is licensed under the MIT License.

About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages