On-chain rotating savings clubs (ROSCAs) on Stellar Soroban — Built for Africa 🚀
Chama Chain brings the traditional African chama (rotating savings club) fully on-chain. Members contribute a fixed amount each cycle; the smart contract automatically rotates the full pot to one member per round — trustless, transparent, unstoppable.
ROSCAs power a $100B+ informal savings economy across Africa. Chama Chain makes them trustless.
- Create a Chama — Set member wallets, contribution amount, and cycle duration
- On-chain Contributions — Members contribute each cycle via Soroban token transfers
- Automatic Rotation — Contract enforces payout order and auto-distributes the pot
- Cycle Tracking — Full on-chain history of every cycle, contribution, and payout
- Trustless — No admin can steal funds; the contract enforces every rule
chama-chain/
├── contracts/
│ └── chama_core/ # ROSCA logic — create, contribute, rotate, withdraw
├── frontend/ # Next.js 14 app
│ └── src/
│ ├── app/ # Pages: home, create, club detail, dashboard
│ ├── components/ # UI components
│ ├── hooks/ # Stellar/Freighter hooks
│ └── lib/ # Contract client, network config
├── .github/workflows/ # CI/CD
└── docker-compose.yml
- Rust +
wasm32-unknown-unknowntarget - Stellar CLI
- Node.js 20+ and pnpm 9+
git clone https://github.com/Sammy-Samy/chama-chain.git
cd chama-chain
cp .env.example .envcd contracts
cargo build --target wasm32-unknown-unknown --release
bash deploy.shcd frontend
pnpm install
pnpm devOpen http://localhost:3000.
| Variable | Description |
|---|---|
NEXT_PUBLIC_STELLAR_NETWORK |
testnet or mainnet |
NEXT_PUBLIC_CHAMA_CONTRACT_ID |
Deployed chama_core contract address |
NEXT_PUBLIC_HORIZON_URL |
Horizon server URL |
NEXT_PUBLIC_SOROBAN_RPC_URL |
Soroban RPC endpoint |
cd contracts && cargo test
cd frontend && pnpm testRead CONTRIBUTING.md first. PRs welcome!
MIT © 2026 Chama Chain Contributors