A simulated Web3 wallet app that uses ECDSA cryptographic signatures for secure transactions between addresses. Built for educational and portfolio purposes using React, TailwindCSS, and a custom backend powered by Express and LowDB.
ECDSA-Wallet allows users to generate wallets (public/private key pairs), view balances, and send signed transactions to other wallets using elliptic curve cryptography. All data is persisted on the backend using a simple JSON-based database (LowDB), simulating real-world blockchain mechanics without needing an actual blockchain.
๐ The app is deployed on:
- Frontend (Vercel): https://ecdsa-wallet.vercel.app
- Backend (Render): https://ecdsa-wallet-backend.onrender.com
- ๐ Generate public/private key pairs using ECDSA (secp256k1)
- ๐พ Persist wallets in browser's
localStorage - ๐ฅ Check balance of any address
- ๐ Sign and verify transactions using private key (never exposed)
- โ๏ธ Prevent transfers to self or with invalid signatures
- ๐ View transaction history (stored via LowDB)
- ๐งน Delete wallets and update UI in real-time
- ๐จ Stylish interface built with Tailwind CSS
| Frontend | Backend | Crypto & DB |
|---|---|---|
| React | Express.js | ethereum-cryptography |
| Tailwind CSS | LowDB | secp256k1 (ECDSA) |
| Axios | Node.js | JSON persistence |
# 1. Clone the repo
git clone https://github.com/Hayk-1315/ECDSA_Wallet.git
cd ecdsa-wallet
# 2. Install backend dependencies
cd server
npm install
# 3. Install frontend dependencies
cd ../client
npm install
# 4. Start backend server
cd ../server
npm start
# 5. Start frontend (in another terminal)
cd ../client
npm run dev
๐ Educational Value:
What youโll learn:
๐ Asymmetric cryptography using ECDSA
๐ฉ Message signing & verification
๐งญ Secure transaction flow with hash validation
๐ก Designing a full-stack dApp architecture
๐ Persisting data using LowDB as a lightweight backend
Perfect for newcomers who want to understand Web3 without diving straight into Solidity or deploying smart contracts.
๐ฎ Future Improvements:
๐ Encrypt private keys in localStorage (AES)
๐ฆ MetaMask integration with ethers.js
๐ฆ Migrate from LowDB to MongoDB or PostgreSQL
๐งช Add full unit & integration tests
๐งโ๐ป Author:
Made with โค๏ธ by Albert Khudaverdyan
Feel free to reach out or contribute!
๐ License:
This project is licensed under the MIT License.
You are free to fork, modify, and share for educational or personal use.