Skip to content
IOIfeanyi O.
← All work

Fintech · Rewards platform · 2026

X2Factor

Client
X2Factor
Role
Lead engineer, full stack
Year
2026
X2Factor dashboard showing wallets, tasks and earnings

Overview

A live rewards platform at x2factor.com. Users complete tasks with proof uploads, earn referral commissions and daily streak bonuses, and withdraw to their bank via Flutterwave. Operators run it from a permissioned admin console.

The challenge

The platform pays out real money, so every naira that enters or leaves a wallet has to be explainable after the fact, by the user and by the operators. Trust in the ledger is the product.

What I built

  • Three wallets per user (account, task earnings, referral) with a transaction ledger that records the balance before and after every movement, a unique reference, and the source of the money.
  • Withdrawal flow with configurable fees and limits: funds are reserved when the user requests, then the transfer goes out through Flutterwave, and failed transfers are refunded automatically.
  • Flutterwave webhooks verified by signature before any state changes; unknown event types are ignored rather than trusted.
  • Admin console with role-based permissions enforced by a guard on every endpoint, covering task review, withdrawals, wallets, plans, support tickets and site content, with an audit log that records old and new values for admin actions.
  • Hardened API: Helmet headers, request throttling, proof uploads to S3, and transactional email via Resend.

Stack

  • Next.js
  • NestJS
  • TypeScript
  • PostgreSQL (Neon)
  • Drizzle ORM
  • Flutterwave
  • AWS S3
  • Resend
  • Turborepo

Results

  • Live, paying out real money through Flutterwave