Voice-powered crypto remittances for Africa
Built at ETH Accra 2024 β’ Ghana first, Nigeria next
"Making crypto remittances as natural as conversation"
Nuru transforms the way Africans send money across borders. Instead of complex wallet addresses, just say "Send 50 cedis to mama.family.eth" and it's done. We're bridging voice-first Africa with crypto-powered finance.
- π€ Voice-First Interface: Real voice recording with MediaRecorder API and Web Speech recognition
- π ENS Integration: Send to human-readable names, not 0x addresses
- β‘ Base L2: Real USDC payments on BASE Mainnet with actual blockchain transactions
- π± Mobile Native: Built for Africa's smartphone-first population
- πΎ Voice Receipts: Immutable proof stored on Filecoin with real CID generation
- π Social Verification: EFP integration for trust and identity
- π Production Ready: No demo mode - all transactions are real and verifiable on Basescan
$50B African remittance market faces major friction:
- Complex crypto addresses (0x1234...abcd)
- High fees from traditional providers
- Poor UX for non-technical users
- No voice-optimized interfaces
Nuru's Solution: "Send money to mama" instead of "Send to 0x742d35Cc6634C0532925a3b8D35Cc6634C0532925"
- Frontend: Next.js 15 (App Router), React, TailwindCSS
- Web3: Wagmi, Viem, Reown AppKit (WalletConnect)
- Voice: OpenAI Whisper + GPT-4 for natural language processing
- Storage: Filecoin for immutable voice receipt storage
- Identity: ENS for human-readable addresses, EFP for social graphs
- Network: Base L2 (Sepolia testnet) + Ethereum Mainnet
Before you begin, you need to install the following tools:
- Node (>= v20.18.3)
- Yarn (v1 or v2+)
- Git
git clone https://github.com/gboigwe/nuru.git
cd nuru
yarn installCreate a .env file in packages/nextjs/:
# Required: Reown AppKit for wallet connections
NEXT_PUBLIC_REOWN_PROJECT_ID=your_project_id_here
# Required: Alchemy for RPC
NEXT_PUBLIC_ALCHEMY_API_KEY=your_alchemy_key_here
# Required for voice features: OpenAI API
OPENAI_API_KEY=your_openai_key_here
# Optional: Filecoin for voice receipts
FILECOIN_SERVICE_PRIVATE_KEY=your_filecoin_key_hereGet your Reown Project ID:
- Visit cloud.reown.com
- Sign in or create an account
- Create a new project
- Copy your Project ID
Get your Alchemy API Key:
- Visit alchemy.com
- Create a free account
- Create a new app (select Base Sepolia network)
- Copy your API key
# Terminal 1: Start local blockchain (optional for testing)
yarn chain
# Terminal 2: Deploy contracts (optional)
yarn deploy
# Terminal 3: Start Next.js app
yarn startVisit your app at http://localhost:3000
- Connect Wallet: Click "Connect Wallet" and choose from 300+ supported wallets
- Switch Network: Select Base Sepolia for testing or Mainnet for ENS
- Voice Payment: Click the microphone and say "Send 10 USDC to mama.family.eth"
- Confirm: Review the transaction and approve
Nuru uses Reown AppKit (formerly WalletConnect) which automatically supports:
- MetaMask
- Coinbase Wallet
- Trust Wallet
- Ledger Live
- Safe Wallet
- Rainbow Wallet
- 300+ WalletConnect-compatible wallets
No manual configuration needed!
- Testing Guide - Comprehensive testing documentation and best practices
- Voice Recognition - Multi-tier voice recognition with Web Speech API and Whisper
- Reown Migration Guide - Complete guide for the RainbowKit to Reown AppKit migration
- VoicePay Components - Real payment component documentation
- Scaffold-ETH 2 Docs - Technical details and guides
- Reown AppKit Docs - Wallet connection documentation
Nuru has comprehensive test coverage across smart contracts and frontend:
# Run all tests
yarn test
# Run contract tests
cd packages/hardhat && yarn test
# Run frontend tests
cd packages/nextjs && yarn test
# Generate coverage report
yarn test:coverageTest Coverage:
- β Smart Contract Tests (VoiceRemittance, USDC payments, security)
- β Voice Command Processing (multi-language, error correction)
- β USDC Payment Handler (balance checks, approvals, execution)
- β ENS Resolution (forward/reverse, validation)
- β Currency Conversion (GHS/NGN to USDC)
- β CI/CD Integration (GitHub Actions, Codecov)
See Testing Guide for detailed information.
nuru/
βββ packages/
β βββ nextjs/ # Next.js frontend app
β β βββ app/ # Next.js 15 App Router pages
β β βββ components/ # React components
β β βββ hooks/ # Custom React hooks
β β βββ services/ # Web3 configuration & voice processing
β β βββ utils/ # Helper functions
β βββ hardhat/ # Smart contracts & deployment scripts
βββ docs/ # Documentation
βββ voicepay/ # Voice payment core logic
We welcome contributions to Nuru! To get started:
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (use conventional commits)
- Push to your branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Ensure
NEXT_PUBLIC_REOWN_PROJECT_IDis set in your.env - Check browser console for errors
- Try clearing browser cache and reconnecting
- Run
yarn cleanandyarn installto refresh dependencies - Ensure Node version >= 20.18.3
- Check that all environment variables are set
- Verify
OPENAI_API_KEYis set - Check microphone permissions in browser
- Ensure HTTPS connection (required for microphone access)
For more issues, see the Reown Migration Guide
This project is built on Scaffold-ETH 2 and inherits its MIT License.
- Built with Scaffold-ETH 2
- Powered by Reown AppKit (formerly WalletConnect)
- Voice processing by OpenAI
- Storage on Filecoin
- Identity via ENS and EFP
Built with β€οΈ for Africa at ETH Accra 2024