A comprehensive stablecoin payment platform that enables both businesses and individuals to send, receive, manage, and convert cryptocurrency payments with ease. Built for the modern economy, NedaPay bridges the gap between traditional finance and decentralized currencies through an intuitive, user-friendly interface.
NedaPay is a payment platform designed for merchants, businesses, and individual users who want to transact with stablecoins globally. The platform provides a complete suite of tools for payment processing, invoice management, compliance, and fiat conversion - all through a single, comprehensive dashboard that serves both business and personal use cases.
💳 Payment Solutions for Everyone
- Create instant payment links with customizable amounts and currencies
- Generate professional invoices with automatic payment tracking
- Send and receive payments in multiple stablecoins (USDC, USDT, cNGN, ZARP, EURC, and more)
- Real-time payment notifications and status updates
💰 Multi-Currency Stablecoin Support
- Support for 10+ regional stablecoins across different countries
- Automatic balance tracking across Base, Arbitrum, Polygon, and other networks
- Built-in token swapping through Aerodrome DEX integration
- Real-time exchange rates and conversion tools
🌍 Global Fiat Offramping
- Convert stablecoins directly to local fiat currencies
- Support for multiple countries including Nigeria, Indonesia, Tanzania, Kenya, and more
- Bank account and mobile money integration
- Competitive exchange rates with transparent fee structure
📊 Dashboard & Analytics
- Comprehensive transaction history and reporting
- Revenue and spending tracking with growth metrics
- Payment link management and performance analytics
- Personal and business financial insights
🔐 Enterprise-Grade Security & Compliance
- Integrated KYC/KYB verification through Sumsub
- Multi-step business verification process
- Document management and audit trails
- Regulatory compliance for financial services
🔗 Flexible Authentication
- Privy-powered authentication with embedded wallets
- Support for external wallets (MetaMask, Coinbase Wallet, WalletConnect)
- Social login options (Farcaster, email)
- ENS and Base Name resolution for user-friendly addresses
- Instant Payment Links: Generate secure payment links in seconds with optional amount and currency specification
- Professional Invoicing: Create, send, and track invoices with automatic payment processing
- QR Code Generation: Automatic QR code creation for easy mobile payments
- Multi-Network Support: Accept payments across Base, Arbitrum, Polygon, and other EVM networks
- Real-Time Balances: Live tracking of stablecoin balances across multiple networks
- Token Swapping: Integrated DEX functionality for instant token conversions
- Multi-Currency Display: Support for regional stablecoins including cNGN (Nigeria), ZARP (South Africa), IDRX (Indonesia)
- Network Detection: Automatic network switching and balance synchronization
- Direct Offramping: Convert stablecoins to local fiat currencies
- Regional Support: Tailored solutions for different countries and payment methods
- Bank Integration: Direct bank account deposits and mobile money transfers
- Competitive Rates: Real-time exchange rates with transparent pricing
- Transaction Analytics: Detailed reporting
- Financial Tracking: Monitor personal spending and business performance with growth metrics
- Export Capabilities: Download transaction data and generate reports
- USDC (USD Coin) - United States Dollar
- USDT (Tether USD) - United States Dollar
- EURC (Euro Coin) - European Euro
- cNGN - Nigerian Naira (Nigeria)
- ZARP - South African Rand (South Africa)
- IDRX - Indonesian Rupiah (Indonesia)
- CADC - Canadian Dollar (Canada)
- BRL - Brazilian Real (Brazil)
- TRYB - Turkish Lira (Turkey)
- NZDD - New Zealand Dollar (New Zealand)
- MXNe - Mexican Peso (Mexico)
- Base Mainnet (Primary)
- Arbitrum One
- Polygon Mainnet
- Optimism
- BNB Smart Chain
- Scroll Mainnet
- Celo Mainnet
Frontend Framework
- Next.js 15 with App Router
- React 19 with TypeScript
- Tailwind CSS for styling
- Framer Motion for animations
Blockchain Integration
- Wagmi for wallet connections
- Ethers.js for contract interactions
- Coinbase OnchainKit for enhanced functionality
- Viem for modern Ethereum interactions
Authentication & Security
- Privy for wallet and social authentication
- Sumsub for KYC/KYB verification
- End-to-end encryption for sensitive data
Database & Backend
- Prisma ORM with SQLite/PostgreSQL
- RESTful API architecture
- Real-time notifications system
Payment Processing
- Multi-chain stablecoin support
- Aerodrome DEX integration
- Automated payment verification
- Cross-border fiat conversion
- Node.js 18.x or higher
- npm or yarn or pnpm
- PostgreSQL database (local or cloud)
- Git
-
Clone the repository
git clone https://github.com/your-org/nedapay-merchant.git cd nedapay-merchant -
Install dependencies
npm install # or yarn install # or pnpm install
-
Set up environment variables
cp .env.example .env
Edit
.envand fill in the required values:DATABASE_URL- Your PostgreSQL connection stringNEXT_PUBLIC_PRIVY_APP_ID- Get from Privy DashboardPRIVY_APP_SECRET- Get from Privy DashboardJWT_SECRET- Generate withopenssl rand -hex 32ENCRYPTION_KEY- Generate withopenssl rand -hex 32
-
Set up the database
# Generate Prisma client npx prisma generate # Run migrations npx prisma migrate dev # (Optional) Seed the database npx prisma db seed
-
Run the development server
npm run dev # or yarn dev # or pnpm dev
-
Open the application
Navigate to http://localhost:3000 in your browser.
For basic local development, you need at minimum:
# Database
DATABASE_URL="postgresql://user:password@localhost:5432/nedapay"
# Authentication (get from Privy)
NEXT_PUBLIC_PRIVY_APP_ID=your_privy_app_id
PRIVY_APP_SECRET=your_privy_app_secret
# Security (generate these)
JWT_SECRET=your_jwt_secret
ENCRYPTION_KEY=your_encryption_key
# App URLs
NEXT_PUBLIC_APP_URL=http://localhost:3000
NEXT_PUBLIC_API_URL=http://localhost:3000/apiapp/
├── components/ # Reusable UI components
│ ├── ui/ # Base UI components (shadcn/ui)
│ ├── common/ # Shared components (Header, Footer, etc.)
│ ├── wallet/ # Wallet-related components
│ ├── ens/ # ENS/subname components
│ └── landing/ # Landing page sections
├── hooks/ # React hooks
│ ├── common/ # General-purpose hooks
│ ├── auth/ # Authentication hooks
│ ├── ens/ # ENS-related hooks
│ ├── wallet/ # Wallet hooks
│ └── referral/ # Referral system hooks
├── lib/ # Utility functions and helpers
├── services/ # Service layer (API integrations)
├── providers/ # Third-party provider integrations
├── config/ # Configuration files
├── contracts/ # Smart contract ABIs
├── contexts/ # React contexts
├── styles/ # Global CSS styles
├── types/ # TypeScript type definitions
│
├── api/ # API routes
├── dashboard/ # Dashboard pages
├── ramps/ # On/off-ramp provider pages
├── settings/ # User settings pages
├── invoice/ # Invoice management
└── ...other routes
# Development
npm run dev # Start development server
npm run build # Build for production
npm run start # Start production server
npm run lint # Run ESLint
# Database
npx prisma generate # Generate Prisma client
npx prisma migrate dev # Run migrations (dev)
npx prisma migrate deploy # Run migrations (prod)
npx prisma studio # Open Prisma Studio GUI
# Type checking
npx tsc --noEmit # Check TypeScript types- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Use TypeScript for all new files
- Follow the existing code patterns
- Use absolute imports with
@/prefix - Components go in
app/components/ - Hooks go in
app/hooks/ - API integrations go in
app/services/