Inspiration
In many African communities, people rely on group savings systems like stokvels, ROSCAs, or chamas to support each other financially. These systems are built on trust, but they can be slow, difficult to manage, and sometimes unreliable.
We wanted to fix that by building UnityLedger, a platform that helps communities save, borrow, and earn together in a transparent and automated way. Our goal was to take something that already works in everyday life and make it smarter, safer, and more rewarding using blockchain technology.
What it does
UnityLedger lets users form digital savings circles where everyone contributes money on a schedule, takes turns receiving payouts, and earns yield while funds are locked in the pool.
Everything is powered by Starknet Cairo smart contracts, which automate the process and remove the need for a middleman.
Users can sign up with social logins, get invisible wallets, and interact with the app like a regular finance platform without needing to understand Web3.
How we built it
Tech Stack
Frontend: React + TypeScript + Vite + Tailwind CSS for a modern, responsive UI
Blockchain: Starknet with Cairo smart contracts for trustless execution
Database: Bolt Database (PostgreSQL) for off-chain data and user management
Wallet: Cavos Aegis SDK for gasless, self-custodial wallets (no seed phrases)
Core Architecture
Smart Contracts (Cairo):
USDC Token Contract: 0x053c91253bc9682c04929ca02ed00b3e423f6710d2ee7e0d5ebb06f3ecf368a8r
Pool Factory Contract: 0x03cf83b7eb76caa6ade3bb0716281511d4b655409f1a537591ad1e659883d30e
Pool Class Hash: 0x02fec1e8822f7b52cffea8554b6d7dad72796ed2e1c370c94a
Contract Roles:
- PoolFactory: Deploys and manages pool instances
- Pool: Handles contributions, payouts, and cycle progression
All deployed on Sepolia testnet using USDC.
Database Schema
- Users
- Pools
- Pool members
- Contributions
- Payouts
- Activity feeds
- Reputation tracking
- Disputes
Row-level security policies are applied for data protection.
Key Features Implemented
- Email-based authentication with automatic wallet creation
- Pool creation with customizable parameters (size, amount, frequency)
- Member invitation via shareable links
- Automatic pool activation when full
- USDC contribution flow with approval
- Payout distribution system
- Reputation scoring
- Transaction status tracking
- Activity feeds and notifications
Development Process
We built UnityLedger incrementally:
- Set up React app with Supabase integration
- Created authentication flow with Aegis wallet integration
- Designed and migrated the database schema
- Built UI components for pools, contributions, and payouts
- Integrated Starknet.js for blockchain interactions
- Added smart contract logic for savings cycles and payouts
- Implemented wallet session management for transactions
The app enables communities to create transparent savings circles where members contribute regularly and receive payouts in turns — all enforced by smart contracts on Starknet.
Challenges we ran into
- Integrating invisible wallets while keeping the user experience simple
- Designing flexible and efficient savings cycles in Cairo
- Making yield generation both secure and transparent
- Testing across different Starknet tools that are still evolving
Accomplishments that we're proud of
- Deployed working ROCSA contracts on Starknet testnet
- Onboarded users with invisible wallets and no gas fees
- Designed a smooth and simple user experience
- Automated savings, payouts, and yield distribution in real time
What we learned
We learned how to build for users who may never have used crypto before.
We saw how account abstraction and gasless transactions can make blockchain apps feel just like regular financial apps.
We also discovered how scalable Starknet is and how its technology can make community finance faster, safer, and more inclusive.
What's next for UnityLedger
- Add multi-chain yield options and cross-border savings pools
- Launch a mobile version with biometric sign-in
- Partner with real savings groups in South Africa and Kenya
- Introduce on-chain credit scoring and micro-loans
- Build an AI assistant called Remi to help users manage savings and pools with voice commands
Example Formula
$$ Payout\ Share = \frac{Total\ Pool\ Balance}{Number\ of\ Members} $$
Built With
- aegis
- autoprefixer
- bolt
- cairo
- database
- deno
- eslint
- lucide
- npm
- postcss
- postgresql
- react
- rpc
- scarb
- sepolia
- sql
- starknet
- tailwind
- typescript
- usdc
- vite
Log in or sign up for Devpost to join the conversation.