Skip to content

superdev947/Hedera-Wallet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Hedera Wallet

A comprehensive Web3 wallet application built for the Hedera network, featuring a React-based browser extension frontend and a Node.js/Express backend API.

Hedera TypeScript React License

πŸ“‹ Overview

Hedera Wallet is a feature-rich cryptocurrency wallet designed specifically for the Hedera network. It provides users with a secure and intuitive interface to manage their digital assets, interact with domains, NFTs, and explore the Web3 ecosystem.

Key Features

  • πŸ” Secure Wallet Management - Create and manage multiple wallets with mnemonic phrase backup
  • πŸ’° Token Support - Send, receive, and manage HBAR and other Hedera tokens
  • 🎨 NFT Gallery - View and manage your NFT collection
  • 🌐 Domain Management - Register and manage Web3 domains
  • πŸ“Š Transaction History - Track all your wallet activities
  • 🌍 Multi-language Support - Available in 10+ languages
  • 🎨 Customizable UI - Personalize your wallet experience with color themes
  • πŸ”Œ Browser Extension - Chrome extension for seamless Web3 integration

πŸ—οΈ Project Structure

Hedera-Wallet/
β”œβ”€β”€ Hedera-Wallet-App/     # React Frontend (Browser Extension)
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ components/    # Reusable UI components
β”‚   β”‚   β”œβ”€β”€ pages/         # Application pages
β”‚   β”‚   β”œβ”€β”€ utility/       # Helper functions and contexts
β”‚   β”‚   β”œβ”€β”€ i18n/          # Internationalization
β”‚   β”‚   └── config/        # Configuration files
β”‚   └── public/            # Static assets and manifest
β”‚
└── Hedera-Wallet-Node/    # Node.js Backend API
    β”œβ”€β”€ src/
    β”‚   β”œβ”€β”€ controllers/   # API endpoint handlers
    β”‚   β”œβ”€β”€ models/        # Database models
    β”‚   β”œβ”€β”€ routes/        # API routes
    β”‚   β”œβ”€β”€ middleware/    # Request middleware
    β”‚   └── utils/         # Utility functions
    └── tests/             # Test suites

πŸš€ Getting Started

Prerequisites

  • Node.js (v16 or higher)
  • npm or yarn
  • MongoDB (for backend)
  • Chrome/Chromium browser (for extension)

Installation

1. Clone the Repository

git clone https://github.com/superdev947/Hedera-Wallet.git
cd Hedera-Wallet

2. Setup Frontend (Browser Extension)

cd Hedera-Wallet-App

# Install dependencies
npm install

# Create environment file
cp template.env .env

# Update .env with your API endpoint
# REACT_APP_API_ENDPOINT=http://your-api-endpoint

# Start development server
npm start

# Build for production
npm run build

3. Setup Backend (API Server)

cd Hedera-Wallet-Node

# Install dependencies
npm install

# Create environment file and configure
# Add your MongoDB URI, JWT secret, Hedera credentials, etc.

# Run database migrations
npm run migration:up

# Start development server
npm run dev

# Build for production
npm run build
npm start

Loading the Extension

  1. Build the frontend application: npm run build in Hedera-Wallet-App
  2. Open Chrome and navigate to chrome://extensions/
  3. Enable "Developer mode"
  4. Click "Load unpacked"
  5. Select the Hedera-Wallet-App/build directory

πŸ”§ Configuration

Frontend Environment Variables

Create a .env file in Hedera-Wallet-App/:

REACT_APP_API_ENDPOINT=http://localhost:3000/api/

Backend Environment Variables

Configure your backend environment with:

  • MongoDB connection URI
  • JWT secret for authentication
  • Hedera network credentials
  • CORS origins
  • Port configuration

πŸ› οΈ Tech Stack

Frontend

  • React 18.2 - UI library
  • TypeScript - Type safety
  • Tailwind CSS - Styling
  • Framer Motion - Animations
  • React i18next - Internationalization
  • Formik & Yup - Form handling and validation
  • Axios - HTTP client
  • @hashgraph/sdk - Hedera integration

Backend

  • Node.js & Express - Server framework
  • TypeScript - Type safety
  • MongoDB & Mongoose - Database
  • JWT - Authentication
  • @hashgraph/sdk - Hedera integration
  • Jest - Testing framework

πŸ“± Features

Wallet Management

  • Create new wallets with secure mnemonic generation
  • Import existing wallets
  • Multi-wallet support
  • Wallet backup and recovery

Transaction Features

  • Send and receive HBAR
  • Token transfers
  • Transaction history tracking
  • Real-time balance updates

NFT Support

  • View NFT collections
  • NFT details and metadata
  • Transfer NFTs

Domain Services

  • Domain registration
  • Domain management
  • Domain ticker display

Security

  • Encrypted storage
  • Secure authentication
  • JWT-based sessions
  • Request validation middleware

πŸ§ͺ Testing

Frontend Tests

cd Hedera-Wallet-App
npm test

Backend Tests

cd Hedera-Wallet-Node
npm test
npm run test:watch  # Watch mode

πŸ“¦ Building for Production

Frontend

cd Hedera-Wallet-App
npm run build

The build artifacts will be in the build/ directory, ready to be loaded as a Chrome extension.

Backend

cd Hedera-Wallet-Node
npm run build

The compiled JavaScript will be in the dist/ directory.

🐳 Docker Support

The backend includes Docker support:

cd Hedera-Wallet-Node
docker build -t hedera-wallet-node .
docker run -p 3000:3000 hedera-wallet-node

🌍 Supported Languages

  • English
  • Spanish (EspaΓ±ol)
  • French (FranΓ§ais)
  • German (Deutsch)
  • Italian (Italiano)
  • Polish (Polski)
  • Arabic (Ψ§Ω„ΨΉΨ±Ψ¨ΩŠΨ©)
  • Hindi (ΰ€Ήΰ€Ώΰ€¨ΰ₯ΰ€¦ΰ₯€)
  • Mandarin Chinese (δΈ­ζ–‡)
  • Japanese (ζ—₯本θͺž)

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages