Skip to content

About

MoMoTrack is an open-source oracle that enables developers to push Mobile Money transactions on-chain for instant verification on Safrochain. No more screenshots, no more disputes. Payments become transparent, traceable, and immutable.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

MoMoTrack Oracle
On-chain Mobile Money verification for Africa

License: MIT CI Built on Safrochain


MoMoTrack is a lightweight, open-source oracle that brings Mobile Money (MoMo) transactions on-chain. It is a verification and provenance layer on top of licensed aggregators (PowerPay, Cotanipay, and others), not a financial intermediary. P2P apps, remittance platforms, tontines, and DeFi protocols get immutable payment proofs on Safrochain without screenshots, disputes, or manual reconciliation.

Read the full explanation: docs/HOW_IT_WORKS.md

Why MoMoTrack

Problem MoMoTrack solution
"I sent but it didn't arrive" disputes Cryptographic on-chain proof anyone can verify
Screenshot-based proof of payment Immutable attestation with amount, time, and reference
Phone numbers exposed to third parties Zero-knowledge proofs generated on the client device
Manual back-office reconciliation Automatic recording after each successful payment
Fragmented Mobile Money APIs One SDK layer across major African aggregators

How it works

Developer's Application
        │
        ▼
MoMoTrack SDK (client-side)     ← ZK-proof + signed payload
        │
        ▼
MoMoTrack Oracle (off-chain)    ← validation + relay
        │
        ▼
Safrochain (on-chain)           ← immutable record + events
sequenceDiagram
    participant App as Your App
    participant MoMo as Mobile Money Provider
    participant SDK as MoMoTrack SDK
    participant Oracle as MoMoTrack Oracle
    participant Chain as Safrochain

    App->>MoMo: Initiate payment (your API keys)
    MoMo-->>App: Transaction result
    App->>SDK: Forward success result
    SDK->>SDK: ZK proof + sign payload
    SDK->>Oracle: Submit attestation
    Oracle->>Oracle: Validate signature + proof
    Oracle->>Chain: Record minimal proof
    Chain-->>App: Verifiable on-chain receipt
Loading
  1. Integrate your aggregator: PowerPay, Cotanipay, or another provider with your own API keys and compliance.
  2. Add the MoMoTrack SDK: Lightweight client for mobile or web.
  3. Attest on success: SDK masks sensitive data with ZK, oracle validates, Safrochain stores the proof.
  4. Verify anywhere: Query or subscribe to on-chain events; no manual proof steps for recipients.
Document Contents
HOW_IT_WORKS.md Full 6-step flow, components, benefits
ARCHITECTURE.md Layers, deployment, extensibility
DATA_SCHEMA.md Payload and on-chain record formats
SECURITY_MODEL.md Threat model and privacy guarantees
ROADMAP.md Implementation phases

Features

  • Verification, not custody: MoMoTrack never touches funds
  • Aggregator support: PowerPay, Cotanipay, and extensible provider adapters
  • Privacy-first: Client-side ZK; phone numbers never leave the device in plaintext
  • On-chain receipts: Transaction reference, amount, timestamp, and anonymized parties
  • Opt-in: Only SDK-routed successful transactions are recorded
  • Multi-platform SDK: TypeScript, React Native, and Flutter (roadmap)
  • Open source: MIT licensed, auditable, community-driven

Quick start

SDK packages are being published. Follow this repo for release announcements.

Install (Node.js / TypeScript)

npm install @safrochain/momotrack

Basic usage

import { MoMoTrack } from "@safrochain/momotrack";

const momotrack = new MoMoTrack({
  network: "safrochain-testnet",
  provider: "powerpay",
});

await momotrack.attest({
  transactionId: "txn_abc123",
  amount: 5000,
  currency: "CDF",
  status: "success",
});

See docs/GETTING_STARTED.md for environment setup, provider configuration, and testnet deployment.

Repository layout

MoMoTrack-Oracle/
├── docs/
│   ├── HOW_IT_WORKS.md    # End-to-end flow (start here)
│   ├── ARCHITECTURE.md    # Technical components
│   ├── DATA_SCHEMA.md     # Payload schemas
│   ├── SECURITY_MODEL.md  # Threat model
│   └── ROADMAP.md         # Implementation plan
├── .github/               # Issue/PR templates and CI
├── LICENSE                # MIT
├── CONTRIBUTING.md
├── SECURITY.md
└── CHANGELOG.md

Supported providers

Provider Status Region
PowerPay Planned DRC
Cotanipay Planned Central Africa
Custom adapter Open an issue -

Want your aggregator listed? Use the provider request template.

Development

git clone https://github.com/Safrochain-Org/MoMoTrack-Oracle.git
cd MoMoTrack-Oracle
nvm use
npm install
npm run verify    # lint, typecheck, and tests

Read CONTRIBUTING.md before opening a pull request.

Security

Report vulnerabilities privately. Do not open a public GitHub issue for security findings.

See SECURITY.md for our disclosure policy and contact details.

Community

Channel Link
Documentation docs.safrochain.com
Discord discord.gg/safrochain
GitHub Issues Report bugs & request features
X (Twitter) @safrochain

License

This project is licensed under the MIT License.

Copyright (c) 2026 Safrochain.

About

MoMoTrack is an open-source oracle that enables developers to push Mobile Money transactions on-chain for instant verification on Safrochain. No more screenshots, no more disputes. Payments become transparent, traceable, and immutable.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages