⚠ System Health
Loading…
Fixes holder_hash mismatches · Verifies all agent floats · Returns reconciliation report
Total Users
—
Loading...
👥
Agent Float
—
Across all agents
💰
Coins Issued
—
—
🪙
Fraud Events
—
Unresolved flags
🚨
Merchants
—
Registered
🛒
PWA Customers
—
Registered devices
📱
Transactions
—
Registry settled
📋
Active Agents
—
Of 5 pilot
🏪
Live Activity
Latest platform events
Loading...
Volume (14 days)
Daily Zil transfer activity
Loading...
User Breakdown
Loading...
Coin Status
Loading...
Pilot Progress
Agents onboarded5/5
Merchants0
PWA customers0
Transactions0/1,000
All PWA Customers
All PWA-registered customer devices
| Device ID | Phone Hash | Status | Registered | Last Active | Balance | Sent | Received | Tx Count | Fraud | |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||||
Total Merchants
—
Registered
🛒
Active
—
Transacting
✅
Total Payments
—
QR claims
📲
Total Volume
—
All-time
₦
All Merchants
Register at: zillion.ng/merchant/ — Run merchants.sql in Supabase if first time
Click Refresh to load merchants
Merchant Registry
| Merchant ID | Owner | Business | Type | Location | Phone | Registered | Payments | Volume | Status | Action |
|---|---|---|---|---|---|---|---|---|---|---|
| Click Refresh to load | ||||||||||
Cooperatives
A cooperative is a group of farmers selling together — members are existing wallet users assigned by an admin.
Loading...
Ecosystem Finance
Subscription revenue across every society, and reconciliation against real Flutterwave settlements.
Loading...
Society Collections (Flutterwave)
What Flutterwave has collected for each society's members: waiting to settle, owed on by Zillion, and which societies need attention. Open a society's own Accounting for its full ledger.
Loading...
Payouts to Societies
Bank-transfer money Zillion holds for societies is paid out here. Every payout is approved by people before any money moves, and approving needs a fresh authenticator code.
Loading...
Add-on Modules
Set pricing here — nowhere else in the codebase hardcodes an add-on price. An add-on can't be activated (selectable at signup) until it has a real price above ₦0.
| Module | Price (₦/mo) | Active | |
|---|---|---|---|
| Loading... | |||
Thrift & Loan Societies
A cooperative savings & loan society — members are existing wallet users the admin activates and manages.
| Name | Status | Plan | Subscription | Trial Ends | Action |
|---|---|---|---|---|---|
| Loading... | |||||
Backup Health
Loading...
Platform Backup
A full dump of every table, for disaster recovery. Can only be restored via scripts/backup_tool.js into an empty database — never as a live action here.
| Date | Kind | Status | Size | Rows |
|---|---|---|---|---|
| Loading... | ||||
Society Backups
Look up a society by its coop_id to see, take, or restore its backups on its behalf.
| Date | Kind | Status | Size | Rows | |
|---|---|---|---|---|---|
| Enter a coop_id above. | |||||
NIN Verification Pricing
What every society is charged per member NIN check (billed on every attempt sent to Dojah, matched or not). Only affects verifications recorded after a change — nothing already billed is rewritten.
₦
Last 90 Days
Loading...
Usage Invoices
| Society | Month | Checks | Amount | Status | Due |
|---|---|---|---|---|---|
| Loading... | |||||
Archived Societies
Trials that ended with no payment are moved here automatically. Restore one back to the active list, or delete it permanently — deletion is blocked by the database itself if the society still has any real members, loans, or transactions attached.
| Society | Owner | Reason | Archived | |
|---|---|---|---|---|
| Loading... | ||||
Zillion Ajo — Platform Overview
Every Ajo group on the platform — a standalone product, separate from Cooperative societies above.
Loading...
Ajo Fee Configuration
Platform-wide contribution and payout fee rates — set here, not by individual group admins. A new rate never reprices a cycle already in progress; it applies to new cycles going forward.
Loading...
Set a new rate
Rate history
| Applies to | Type | Value | Effective from | Set by |
|---|---|---|---|---|
| Loading... | ||||
Per-scheme fee override
Overrides the platform default for one specific scheme only — a pricing decision, so this stays here, never something a scheme's own group admin can set for themselves.
Agent Recruitment
Share this link or QR code with anyone interested in becoming a Coop agent. No fee to apply — they fill in their details, you review and approve or reject, and the decision is emailed to them automatically (with their referral code, if approved).
Bundle sign-up links (Micro & Starter)
The Micro Bundle (1-50 members, ₦100,000/year) and Starter Bundle (51-100 members, ₦180,000/year) include the core modules, Accounting & Finance, Bank Reconciliation and Shares & Dividends. They are not on the public page: when an agent asks for one, create a link here and send it. Each link signs up one society, works for 30 days, and gives the society the normal 14-day trial.
Loading...
Pending Agent Applications
Full detail submitted by each applicant. Approving creates their agent record, generates their referral code, and emails them the decision — rejecting just emails a reason.
Loading...
Coop Agents
Each agent earns a share of the subscription revenue generated by whatever cooperative society they referred, capped at 24 months per referral from that society's signup date. The cap ends the agent's commission on that referral — never the society's own subscription. An agent can have one parent (two tiers only) who earns an additional override on that agent's own commission, on top of it, never deducted from it.
| Agent | Rate | Hierarchy | Societies referred | Within window | Accrued | Paid | Outstanding | Status | |
|---|---|---|---|---|---|---|---|---|---|
| Loading... | |||||||||
Prospect Pipeline
Every cooperative society any agent is pursuing, rolled up from the engagement reports they log after each meeting or demo. Classify a lead (A–D) and assign an account manager from the list below to get it followed up.
Top requested features
Top pain points
Per-agent performance
| Agent | Prospects | Hot | Qualified | Onboarded | Members repr. | Meetings (mo.) | Pending follow-up |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
Needs follow-up
| Cooperative | Agent | Status | Next meeting was due |
|---|---|---|---|
| Loading... | |||
All prospects
| Cooperative | Agent | Status | Grade | Account manager | |
|---|---|---|---|---|---|
| Loading... | |||||
How someone becomes a collector
Collectors work for Zillion Ajo platform-wide — an Ajo group admin can only pick from the pool of already-approved collectors below, never recruit or set terms for one themselves. This fee is collector-only, never charged to an ordinary Ajo saver — regular group members join free, straight from a link the Ajo admin sends them. Share the link or QR code below with anyone interested in becoming a collector. They pay the fee, submit their name/phone and escrow bank details, and land in the table below. Approve their bank details, then set their commission rate — a percentage of what they collect, or a fixed amount — before they can start.
Collector Recruitment
One fee for the whole platform — every prospect pays the same amount to apply, regardless of which group they end up collecting for.
Pending Escrow Verifications
A collector submitted KYC and is waiting on manual confirmation with the bank — Wema has no live API yet, so this is the real, usable path today. Approving activates every scheme assignment this person is pending on, and sets their commission rate for every scheme they'll ever collect for.
| Name submitted | Submitted | |
|---|---|---|
| Loading... | ||
Collector Compliance
Every verified collector, their commission rate, live compliance score, and standing. A score that drops to 50 or below auto-delists the person across every scheme they collect for.
| Collector | Status | Commission | Score | Standing | |
|---|---|---|---|---|---|
| Loading... | |||||
Escrow Disbursements
Money released from a collector's escrow. Confirm each one against the bank's own withdrawal notice — a match costs nothing, a mismatch feeds the collector's compliance score directly.
| Collector | Reason | Intended | Confirmed | Status | |
|---|---|---|---|---|---|
| Loading... | |||||
Coop Analytics
Aggregated across every society — data foundation for future credit scoring, not a scoring system itself.
Loading...
Zillion Identity Lookup
Search by phone number to see the unified identity and every role (wallet, merchant, agent) linked to it — one person, one Zillion ID, regardless of how many roles they hold.
💰 Float Top-Up
Mint coins = cash deposited by agent
This is the only way value enters the Zillion ecosystem. Every coin minted is backed 1:1 by physical cash held by admin.
Agent Management
All registered pilot agents. Use Tokens tab to generate JWT.
Loading...
Agent Activity
| Agent ID | Name | Location | Float | Issued | Redeemed | Last Login | Status |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
Total Issued
—
Currently Held
—
Redeemed
—
Coin Registry
| Coin ID | Amount | Issued By | Issued At | Expires | Status | Holder | |
|---|---|---|---|---|---|---|---|
| Loading... | |||||||
🔍 Coin Lookup
Find full coin ID by partial match
The merchant vault display truncates coin IDs to 28 chars. Use this to find the full ID before reconciling.
🔧 Force Reconcile Stuck Coin
Admin override for stuck PENDING_CASHOUT coins
Use when a merchant's coin shows "Sent to agent — awaiting confirmation" but agent never redeemed. Enter the full Coin ID from the merchant's vault.
Platform Transactions
| TX ID | Type | Coin | Amount | From | To | MFB | TX Time | Status |
|---|---|---|---|---|---|---|---|---|
| Loading... | ||||||||
Generate Agent Token
Activate any agent by generating their JWT.
🔐 New Agent Token
Select agent and generate their 1-year JWT token.
JWT Token (click to select)
Agent
—
Expires
—
Token History (session)
No tokens generated yet
📒 Account Ledger
Full double-entry style ledger — Customers, Merchants & Agents. Running balance after every transaction.
Quick open:
👥 Admin Users
Role-based access control — manage admin credentials, roles and account status. All actions are immutably logged.
SUPER_ADMIN — Full access
COMPLIANCE — Freeze + audit
OPERATIONS — Float + reconcile
SUPPORT — View only
AUDITOR — Export + audit log
VIEWER — Dashboard only
Loading...
Open Fraud Events
—
High-Risk Devices
—
Fraud Registry
| Event ID | Type | Device | Coin ID | Detected | Severity | Resolved |
|---|---|---|---|---|---|---|
| 🛡️ No fraud events | ||||||
🧊 Freeze / Unfreeze Coin
Admin override — requires reason
📋 Currency Transaction Reports (CTR)
CBN: transactions ≥₦1,000,000
Enter date range and click Pull CTRs
| Date | TX ID | Amount | Type | Agent |
|---|
⚠ Suspicious Transaction Reports (STR)
CBN AML/CFT requirement
Enter date range and click Pull STRs
| Date | Device | Reason | TX Count | Total |
|---|
KYC / NIN Verification Status
Tier 1 (Unverified)
—
Limit: ₦50,000/day
Tier 2 (NIN Verified)
—
Limit: ₦200,000/day
Verification rate
—
KYC verification upgrades customers from Tier 1 (₦50k/day limit) to Tier 2 (₦200k/day) via NIN check through Paystack Identity API. Route: POST /api/v1/kyc/verify-nin
🔐 Two-Factor Authentication Setup
Protect the admin dashboard with Google Authenticator (TOTP / RFC 6238).
Once configured, every login requires your secret plus a 6-digit code from your phone.
Step-by-step setup:
- Click Generate Secret below
- Copy the secret shown
- Go to Netlify → Site → Environment Variables
- Add
ADMIN_TOTP_SECRET= the secret - Redeploy the site
- Scan the QR code in Google Authenticator or Authy
- Test with a 6-digit code before logging out
System Health
Netlify Functions
Deployed
LIVE
Supabase Registry
Checking...
CHECK
Mint / Ed25519
Checking...
CHECK
PWA Wallet
Checking...
CHECK
Merchant Portal
Checking...
CHECK
Coin Lookup
Statutory Deduction Rates
Platform-wide rates used by every society's HR & Payroll add-on — not a per-society setting, since PAYE, pension, and NHF are set by Nigerian law uniformly. A change here takes effect on the very next payroll run any society processes, anywhere on the platform.
Loading…
PAYE Bands
Nigeria's progressive income tax bands, applied in order to taxable annual income (gross minus CRA, pension, and NHF). The final band's size is left blank on purpose — it covers everything remaining, however much that is.
Loading…
MFB Dashboard
Per-MFB metrics · Corrected double-entry proof · Coins ↔ Transactions audit
Total Minted
—
In Circulation (HELD)
—
Undelivered (ISSUED)
—
Redeemed
—
Float Obligation
—
Recon Status
—
Accounting Formulas
Conservation law
ISSUED + HELD + REDEEMED = MINTED
Float obligation = SUM(HELD coins)
Available = COUNT(status=ISSUED)
Float obligation = SUM(HELD coins)
Available = COUNT(status=ISSUED)
Double-entry proof
ISSUE: DR MFB Float / CR Circulation
REDEEM: DR Circulation / CR Agent Float
P2P: DR Sender / CR Receiver (float neutral)
REDEEM: DR Circulation / CR Agent Float
P2P: DR Sender / CR Receiver (float neutral)
Double-Entry Reconciliation
| MFB | DR MFB Float | CR Circulation | DR Circulation | CR Agent Float | Float Obligation | Issue | Redeem | Conservation | Note |
|---|
Click MFB Dashboard to load
Coins ↔ Transactions Audit
—
Coins with TX
—
Coins missing TX
—
Orphaned TXs
—
Per-MFB Breakdown
| MFB | Minted | Circulation | Undelivered | Redeemed | Float Oblig. | P2P Velocity | Cash-Ins | Cash-Outs | Self-Loads | MFB Comm. | Balanced |
|---|
Click MFB Dashboard to load
🏦 Register MFB Partner
Run migration_mfb_partners.sql in Supabase first
MFB Partners
—
Total Minted
—
In Circulation
—
Redeemed
—
Float Obligation
—
MFB Commission
—
Coins Minted
—
In Circulation
—
Undelivered
—
Total Redeemed
—
Float Obligation
—
Recon Status
—
Double-Entry Reconciliation
| MFB | DR MFB Float | CR Circulation | DR Circulation | CR Agent Float | Float Oblig. | Issue | Redeem | Conservation | Note |
|---|
Loads automatically when MFB Partners opens
Coins with TX
—
Coins missing TX
—
Orphaned TXs
—
Agent MFB Change Requests
Agents requesting to switch their assigned MFB — review before approving.
| Agent | Current MFB | Requested MFB | Reason | Requested | Action |
|---|---|---|---|---|---|
| Loading… | |||||
All MFB Partners
| MFB ID | Name | State | Agents | Minted | Circulation | Redeemed | Float Oblig. | Cash-Ins | Cash-Outs | Self-Loads | P2P | MFB Comm. | CIF Ratio | Balanced |
|---|
Loading...
Commission Configuration
Rates apply at 3 levels — most specific wins: Agent > MFB Partner > Global. Changes take effect immediately on next transaction.
Today Fees
—
Zillion Cut
—
MFB Cut
—
Agent Earnings
—
Add / Update Rate
Agent share: 50% (automatically = 100% minus MFB minus Zillion)
Active Rate Configurations
| Type | Scope | ID | Fee% | Min | Max | MFB% | Zil% | Agt% | Note |
|---|
Click Commissions to load
Commission Events
| Date | Type | Agent | Txn | Fee | MFB | Zillion | Agent | Status |
|---|
📶 Bluetooth Transfer Diagnostics
Real-time SPP/BLE discovery and transfer event monitor
Sessions
0
total scans
Devices Found
0
unique MACs
Transfers OK
0
successful
Errors
0
recorded
Last Method
—
SPP or BLE
Live Status
Waiting
current state
🧪 Simulate BT Events — test diagnostic display without real devices
Filter:
No active session