CircleUp puts rotating savings clubs (Ajo, Esusu, Tanda, Chama) on Stellar Soroban. Members contribute each round; the contract auto-pays the recipient — no organizer can run off with the pot. Miss a round, lose collateral. Complete a circle, earn on-chain reputation.
# 🔄 CircleUp
> **The savings club a billion people already use — made trustless.**
CircleUp brings Rotating Savings & Credit Associations (ROSCAs) — known as **Ajo** in Nigeria, **Esusu** across West Africa, **Tanda** in Latin America, and **Chama** in Kenya — onto **Stellar Soroban**. The notebook-and-trust model is replaced by a tamper-proof smart contract: every member contributes each round, and the pot auto-pays the scheduled recipient. The organizer can never run off with the money.
---
## Table of Contents
- How It Works
- Architecture
- Project Structure
- Data Flow
- Quick Start
- Environment Variables
- Contracts Reference
- API Reference
- Demo Flow
- Tech Stack
- Contributing
---
## How It Works
```
1. Organizer creates a circle → sets members, $amount/round, rotation order, schedule
2. All members lock collateral (1× round amount) to join
3. Each round: every member contributes → contract holds the pot
4. Contract auto-pays the scheduled recipient (no intermediary)
5. Miss a round → 20% collateral penalty + default flag on your record
6. Complete a full circle → your on-chain reputation score increments
```
**Example:** 4 members, $100/round, monthly schedule
| Round | Pot | Recipient |
|-------|--------|-----------|
| 1 | $400 | Alice |
| 2 | $400 | Bob |
| 3 | $400 | Carol |
| 4 | $400 | Dave |
Each member contributes $400 total, receives $400 once. Zero interest. Zero trust required.
---
## Architecture
```
┌─────────────────────────────────────────────────────────────┐
│ Stellar Testnet │
│ │
│ ┌──────────────────┐ deploys ┌────────────────────┐ │
│ │ circle_factory │────────────▶│ circle (instance) │ │
│ └──────────────────┘ └────────────────────┘ │
│ │ │ │
│ registers call …