Platform capabilities
Every service, explained.
CircleSave is not just a savings app โ it is a full financial infrastructure stack for cooperative savings groups, peer-to-peer lending, and blockchain payments.
Core Product
BorrowMeFirst
Peer-to-peer financial help โ from your network, directly to your account
Create a financial help request in minutes. Ask your network for general help, a loan with a repayment date, or split a bill among multiple contributors. Everyone pays via a secure Paystack link and funds land directly in your bank account.
- โThree request types: General Help, Loan, Bill Split
- โUnique payment link shared with contributors
- โContributions go directly to creator's bank account via Paystack
- โLoan type includes repayment date and amount tracking
- โBill split: set a target amount and split among contributors
- โLive contribution tracking โ see who has paid in real time
Savings Circles (ROSCA)
The digital reinvention of Esusu, Ajo, and Susu
Create rotating savings and credit associations (ROSCAs) with your community. Every member contributes a fixed amount each cycle; members take turns receiving the full pool.
- โMinimum 5 members โ maximum flexibility on group size
- โConfigurable cycles: weekly, every 2 weeks, or monthly
- โPayout order set at creation, tracked immutably on the ledger
- โFund stays in pending_start until 5+ active members join
- โCircle activates automatically when the quorum is reached
- โFund admin controls: invite members, manage defaults, monitor balances
Payments In
Multi-channel Contributions
Accept money from anywhere โ including the blockchain
Members can contribute via bank transfer, debit card, mobile money wallet, or cryptocurrency. Every payment โ regardless of channel โ creates identical double-entry ledger postings.
- โBank transfer (NIPS/NIP gateway integration)
- โDebit card (Mastercard, Visa)
- โMobile wallet (OPay, PalmPay, Kuda)
- โCryptocurrency (Polygon, Ethereum, Solana)
- โIdempotency keys prevent double-charging on retry
- โ24-hour payment window with automatic expiry
Payments Out
Automated Payouts
Guaranteed once, never twice โ to any destination
When it is a member's turn to receive the pool, CircleSave disburses to their chosen destination: bank account, mobile money number, or crypto wallet. Payout idempotency is enforced at the database level.
- โBank account disbursement (Nigerian banks via Paystack Transfer)
- โMobile money (USSD-linked, operator-agnostic)
- โCrypto wallet (Polygon, ETH, Solana) with 12-block confirmation requirement
- โSHA-256 idempotency key guarantees each payout executes exactly once
- โFraud hold status for suspicious payout requests
- โRetry-safe: replaying the same payout request is a safe no-op
Risk & Compliance
KYC / AML Compliance
Know your member. Block the bad actors.
Full Know Your Customer and Anti-Money Laundering stack built in. Members are verified before they can contribute, with ongoing monitoring throughout their membership.
- โBVN (Bank Verification Number) โ encrypted at the application layer
- โNIN (National Identity Number) โ encrypted at the application layer
- โBiometric photo verification via Prembly
- โSanctions screening: OFAC, EU Consolidated, UK Consolidated lists
- โAML risk score (0โ100) with configurable thresholds
- โAutomated SAR (Suspicious Activity Report) generation
Financial Infrastructure
Double-Entry Ledger
The single source of truth โ immutable by design
Every naira that enters or exits a circle is tracked in a professional-grade double-entry accounting ledger. No balance is ever stored โ balances are always derived from settled ledger entries.
- โEvery transaction creates exactly one DEBIT and one CREDIT posting
- โImmutability enforced by database trigger (not application code)
- โPostings are append-only โ DELETE is blocked at the DB level
- โOnly permitted mutation: status transition pending โ settled
- โSeven posting accounts across SAVINGS, INSURANCE, TREASURY, and more
- โBalance views derived from ledger โ never from a cached column
Real-time Reconciliation Engine
Five reconciliation types โ zero unexplained variances
The reconciliation engine continuously verifies the platform's financial state across five dimensions. Any discrepancy โ even โฆ1 โ triggers an automated alert and creates an immutable reconciliation report.
- โIntra-ledger: total debits must equal total credits at all times
- โBank balance reconciliation: ledger vs actual bank statement
- โBlockchain balance: on-chain balance vs ledger CRYPTO posting accounts
- โPayout queue: pending payouts vs PENDING_PAYOUT treasury balance
- โInsurance reserve: INSURANCE_RESERVE balance vs 5% of total contributions
- โDiscrepancy alerts with severity levels and resolution workflow
Insurance Reserve
5% of every contribution โ ring-fenced and protected
An insurance reserve is built automatically from every contribution. This pool protects the circle against member defaults and is tracked separately in the ledger with its own reconciliation check.
- โ5% of every settled contribution auto-allocated to INSURANCE_RESERVE
- โAllocation happens in the same DB transaction as the contribution
- โReserve balance derived from ledger โ never a stored column
- โDedicated reconciliation type monitors reserve health
- โConfigurable reserve percentage per fund (1โ20%)
- โReserve movements require maker-checker approval to disburse
Treasury Management
Multiple pools, automatic thresholds, instant alerts
Each savings circle has a fully managed treasury with multiple segregated pools. Treasury accounts monitor minimum and maximum balance thresholds and alert administrators before a problem occurs.
- โSegregated pools: PENDING_PAYOUT, INSURANCE_RESERVE, TREASURY_LIQUIDITY
- โPer-account minimum and maximum balance thresholds
- โAutomated imbalance alerts when thresholds are breached
- โTreasury views derived from ledger โ never from a stored balance
- โAll treasury movements require a corresponding ledger entry
- โImmutable treasury account record โ created once, never modified
Blockchain
Multi-chain Blockchain Integration
Native support for Polygon, Ethereum, and Solana
Members can link crypto wallets, receive payouts in cryptocurrency, and contribute from on-chain balances. Blockchain transactions require minimum confirmations before settlement to prevent reorg fraud.
- โWallet address verification via cryptographic ownership proof
- โSupport for Polygon (MATIC), Ethereum (ETH), Solana (SOL)
- โMinimum 12 block confirmations before settlement
- โBlockchain balance reconciliation against ledger entries
- โOn-chain transaction hash stored immutably per ledger posting
- โPrimary wallet flag โ each member can designate one primary address
Compliance & Governance
Forensic Audit Trail
Every action recorded โ timestamped, actor-tagged, immutable
An immutable audit trail captures every significant action on the platform: member changes, fund state transitions, admin decisions, and all financial events. Built for regulatory inspection and forensic analysis.
- โAudit trail entries are immutable (UPDATE blocked by trigger)
- โEvery entry captures: entity type, entity ID, action, actor, timestamp
- โChanged fields logged as JSONB diff for complete change history
- โActor type recorded: system, admin, or member
- โEncrypted IP address and user agent per action
- โFinancial events stored in append-only event stream with correlation IDs
Maker-Checker Workflows
Four-eyes approval for all critical admin actions
All administrative actions โ fund transfers, payout reversals, member suspensions, reserve disbursements โ require a second authorized administrator to approve before execution.
- โAdmin action types: transfer_funds, reverse_payout, member_suspension, reserve_disburse
- โStatus states: pending โ approved/rejected โ executed
- โApproval must come from a different admin than the initiator
- โApproval comment and timestamp recorded immutably
- โExecution only allowed in approved state โ rejected actions cannot proceed
- โAll maker-checker decisions logged in the audit trail
Engineering
Event-Driven Architecture
Transactional outbox โ zero event loss, guaranteed delivery
CircleSave uses the transactional outbox pattern to ensure financial events are never lost. Every outbox entry is written in the same database transaction as the financial operation it represents.
- โFinancial events stored in append-only event stream
- โOutbox pattern: event written in same DB transaction as financial operation
- โInbox deduplication prevents replaying external events
- โCorrelation IDs trace events across all related operations
- โAggregate IDs link events back to contributions, payouts, and funds
- โEvent versioning for backward-compatible schema evolution
Ready to start?
All of the above, in one platform.
Create your circle or BorrowMeFirst request in under 2 minutes.