Skip to content

Hayk-1315/ECDSA_Wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

14 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ” ECDSA-Wallet

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.


๐Ÿง  Summary

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.


๐Ÿš€ Live Demo

๐Ÿ”— The app is deployed on:


๐Ÿ” Features:

  • ๐Ÿ”‘ 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

๐Ÿš€ Tech Stack:

Frontend Backend Crypto & DB
React Express.js ethereum-cryptography
Tailwind CSS LowDB secp256k1 (ECDSA)
Axios Node.js JSON persistence

๐Ÿ“ฆ Installation:

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





About

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published