This is a decentralized cross-border web application that allows users from different countries to send and receive money in their preferred currencies (USD, NGN), using Ethereum (ETH) as the base currency. It leverages blockchain technology for transparency, immutability, and secure financial transactions.
- Send and receive money across borders
- Choose preferred currency (USD or NGN)
- Ethereum used as the base currency
- Wallet integration via MetaMask
- Email receipt on withdrawal (simulated)
- Uses Ganache for local Ethereum blockchain
- Full-stack DApp integration (Solidity + Web3.js + Node.js)
- Backend: Node.js, Express.js, Nodemailer
- Blockchain: Ethereum, Solidity, Truffle, Ganache, Web3.js
- Frontend: HTML, CSS, JavaScript
- Wallet: MetaMask
- Download Node.js (Ensure it's added to your system PATH)
- Download Ganache
- Install MetaMask Chrome Extension
git clone https://github.com/your-username/your-repo-name.git
cd your-repo-name- Open Ganache
- Click "New Workspace"
- (Optional) Rename the workspace
- Click "Add Project", then locate and select
truffle-config.jsinsmart-contract/ - Click "Save" and then "Start" (top-right)
Open two terminal windows/tabs:
Terminal 1
cd smart-contract
truffle migrateCopy the deployed contract address shown in the terminal output.
- Open
backend/server.js - Replace the existing contract address with the new one from the previous step:
const contractAddress = "0xYourNewContractAddressHere";Terminal 2
cd backend
npm install
npm startServer will run on
http://localhost:3000
Open your browser and navigate to:
http://localhost:3000
- Open MetaMask
- Click network dropdown → Add Network
- Fill in:
| Field | Value |
|---|---|
| Network Name | Localhost 8545 |
| RPC URL | http://127.0.0.1:7545 |
| Chain ID | 1337 |
| Currency Symbol | ETH |
- Save and switch to Localhost 8545
- In Ganache, click the 🔑 key icon beside any address
- Copy the private key
- In MetaMask, click the profile icon → Import Account
- Select Private Key, paste it, and import
- You’ll now have a test account with 100 ETH
Repeat the process to create additional accounts
- Click "Connect MetaMask"
- Fill out your profile info and Save
- MetaMask will prompt a confirmation → Accept it
- You’ll see your balance and profile on the app
- Create another test account and connect it via MetaMask
- Use the form to transfer ETH between users
- Click "Withdraw Funds"
- Enter a valid email address
- You’ll receive a simulated withdrawal receipt via email
- Withdrawal is simulated using Nodemailer (email receipt only)
- Only use the private key import method with test accounts
- Ensure Ganache is running while using the app
Pull requests are welcome! If you'd like to suggest improvements, please fork the repo and submit a PR.
Nduoma Chinomso Christian
AKA Buzz Brain
This project is licensed under the MIT License.