MorphCash: A Smarter Way to Access Digital Cash in Africa

🌍 Motivation

Here in Africa, having access to digital cash is not always easy. A few years ago, telecom providers introduced mobile money (mobile cash) wallets linked to users' mobile numbers. While transformative for local transactions, mobile money is not widely accepted by global websites and digital services.

In countries like Ghana, credit card systems are still not fully rolled out. To obtain a Visa or debit card — which are globally accepted — individuals often need to open a traditional bank account. This adds another barrier, especially for those without formal banking access.

MorphCash aims to change that. It allows users to transform the form of cash they have — whether it's mobile money, cryptocurrency, or others — into a format that can be used for global payments. All without needing a bank account.

Though still in development, this project simulates the future goals and vision for MorphCash — a more inclusive, flexible, and digital way to manage and use money across Africa.


âś… Implemented Functionality

Please select a billing package before creating a card

User Authentication & Profiles

  • User sign-up and login via email and password.
  • User profiles (user_profiles table) are created and can be updated with personal and address information.
  • Authentication is handled through Supabase, with session management.
  • User settings (profile, security, notifications, preferences) are implemented and manageable.
  • Password change functionality is present (logic simulated).
  • Avatar upload implemented (client-side preview, server-side upload is a placeholder).
  • “Built with Bolt.new” sections added to:
    • src/App.tsx
    • src/components/Dashboard.tsx
    • src/components/Settings.tsx
    • src/components/KYCVerification.tsx

Landing Page

  • Responsive landing page (src/App.tsx) showcasing:
    • Features
    • Pricing
    • Testimonials
    • FAQs
  • Navigation links ("Home", "Features", "Pricing") scroll to respective sections.
  • “Sign In” and “Start Now” buttons trigger authentication modal.

Dashboard

  • Displays:
    • Total
    • Available
    • Pending balances
  • Shows recent transactions and active virtual cards.
  • Quick actions: Add funds, send money, create new cards.
  • Sidebar navigation:
    • Overview
    • Virtual Cards
    • Transactions
    • Add Funds
    • Send Money
    • KYC Verification
    • Admin KYC
    • Settings
    • Help & Support
  • Displays user’s name, plan type, and avatar in sidebar/header.
  • KYC status and plan upgrade alerts shown on overview.

Virtual Card Management

  • Users can create new virtual cards:
    • Custom names
    • Spending limits
    • Currencies
    • Expiry dates
  • Integration with simulated Visa API:
    • src/lib/visaCardService.ts
    • supabase/functions/visa-integration/index.ts
  • Cards can be:
    • Frozen/unfrozen
    • Deleted
  • Detailed card display:
    • Masked numbers
    • Balance
    • Spending limits
  • Add funds to a virtual card from simulated sources:
    • Mobile Money
    • Bank Transfer
    • Credit/Debit Card
    • Cryptocurrency
  • Simulated payments to merchants from virtual card.
  • View transaction history per card with filtering/export.

Transactions

  • List of all transactions with:
    • Type
    • Amount
    • Description
    • Category
    • Status
  • Categorized transactions (e.g., Food & Dining, Shopping).
  • Basic filtering and export options available.

KYC Verification

  • Multi-step KYC:
    • Personal info
    • Address
    • Document upload
  • Simulated document upload (Data URL).
  • Status tracking (pending, approved, rejected).
  • Verification progress and status displayed.
  • Admin KYC dashboard (mock data).

Billing & Subscriptions

  • Shows:
    • Subscription status
    • Plans
    • Payment methods
    • Invoices
    • Usage data
  • Simulated:
    • Plan upgrade/downgrade
    • Payment method management

⏳ Remaining to Be Implemented and Tested

Full Supabase Integration

  • Many interactions like db.createTransaction, db.updateVirtualCard use mock data.
  • Full implementation needed for Supabase functions:
    • on_user_profile_created
    • update_updated_at_column
    • create_kyc_verification_for_user
    • auto_approve_kyc
    • on_document_status_updated
    • on_document_uploaded
    • update_user_kyc_status
  • db.getAccountBalance depends on account_balances view — needs proper integration/testing.

Visa Integration

  • visa-integration Supabase Edge Function uses mock data.
  • Needs real Visa API integration with:
    • x-pay-token generation
    • Certificate-based auth
    • Real card data
  • Required ENV variables to configure:
    • VISA_API_KEY
    • VISA_SHARED_SECRET
    • VISA_USER_ID
    • VISA_BASE_URL
    • VISA_CERT_PATH
    • VISA_KEY_PATH
    • VISA_PROGRAM_ID

Payment Processing

  • “Add Funds” and “Make Payment” functionalities are simulated.
  • Real integration with gateways (e.g., Stripe, Mobile Money).
  • funding_sources and payment_methods tables need full integration.

KYC Verification

  • fileToDataUrl used for demo — replace with Supabase Storage for real file handling.
  • Replace kycService.triggerVerification and kycService.validateDocument with real KYC engine.
  • Admin KYC Dashboard should connect with adminKycService.

Dashboard Features

  • “Send Money” quick action pending implementation.
  • Sidebar sections for:
    • “Analytics”
    • “Team”
    • “Help & Support” are placeholders.
  • Mobile drawer for tablets needs fixing.

Error Handling and Edge Cases

  • Needs:
    • More robust error handling
    • Better user feedback
  • Must test:
    • Insufficient funds
    • Transaction limits
    • Network errors

Security

  • encryptCardData and decryptCardData are placeholders — need real secure encryption.
  • Simulated password change should link to Supabase Auth.

UI/UX Refinements

  • Fix mobile drawer for tablet-sized screens.
  • Refine "Built with Bolt.new" section design/placement.

Built With

Share this project:

Updates