Skip to content
/ nuru Public

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.

License

Notifications You must be signed in to change notification settings

gboigwe/nuru

Repository files navigation

✨ Nuru - Light up your payments

Voice-powered crypto remittances for Africa
Built at ETH Accra 2024 β€’ Ghana first, Nigeria next

Nuru Logo

Tests Coverage License: MIT

🌍 The Vision

"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.

✨ Key Features

  • 🎀 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

🎯 Problem We're Solving

$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"

πŸ› οΈ Tech Stack

  • 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

πŸ“‹ Requirements

Before you begin, you need to install the following tools:

πŸš€ Quickstart

1. Clone and Install

git clone https://github.com/gboigwe/nuru.git
cd nuru
yarn install

2. Environment Setup

Create 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_here

Get your Reown Project ID:

  1. Visit cloud.reown.com
  2. Sign in or create an account
  3. Create a new project
  4. Copy your Project ID

Get your Alchemy API Key:

  1. Visit alchemy.com
  2. Create a free account
  3. Create a new app (select Base Sepolia network)
  4. Copy your API key

3. Run Local Development

# Terminal 1: Start local blockchain (optional for testing)
yarn chain

# Terminal 2: Deploy contracts (optional)
yarn deploy

# Terminal 3: Start Next.js app
yarn start

Visit your app at http://localhost:3000

4. Using Nuru

  1. Connect Wallet: Click "Connect Wallet" and choose from 300+ supported wallets
  2. Switch Network: Select Base Sepolia for testing or Mainnet for ENS
  3. Voice Payment: Click the microphone and say "Send 10 USDC to mama.family.eth"
  4. Confirm: Review the transaction and approve

πŸ”— Supported Wallets

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!

πŸ“š Documentation

πŸ§ͺ Testing

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:coverage

Test 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.

πŸ—οΈ Project Structure

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

🀝 Contributing

We welcome contributions to Nuru! To get started:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (use conventional commits)
  4. Push to your branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ› Troubleshooting

Wallet Connection Issues

  • Ensure NEXT_PUBLIC_REOWN_PROJECT_ID is set in your .env
  • Check browser console for errors
  • Try clearing browser cache and reconnecting

Build Errors

  • Run yarn clean and yarn install to refresh dependencies
  • Ensure Node version >= 20.18.3
  • Check that all environment variables are set

Voice Feature Not Working

  • Verify OPENAI_API_KEY is set
  • Check microphone permissions in browser
  • Ensure HTTPS connection (required for microphone access)

For more issues, see the Reown Migration Guide

πŸ“„ License

This project is built on Scaffold-ETH 2 and inherits its MIT License.

πŸ™ Acknowledgments


Built with ❀️ for Africa at ETH Accra 2024

About

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.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 5