Skip to content
AbbasFullstackPublic

About

Testnet Web3 wallet with encrypted keystore flows, server-side RPC proxies, and OpenAPI-documented API routes.

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

Header

Typing SVG

Testnet Web3 wallet learning project — create, import, and explore wallet flows across Polygon Amoy, Ethereum Sepolia, and Base Sepolia.

Learning project · Testnet networks only · Never use real funds or production seed phrases.

LIVE DEMO

Next.js TypeScript ethers.js Tailwind CSS Infura Vercel


✨ Features

🎲 Create Wallet 📥 Import Wallet 🔐 Encrypted

⛓️ Multi-Chain 💸 Send TX 📜 Activity

💰 Live Balances 👥 Multi-Account 💎 UI


🏗️ Architecture

Browser ──JSON-RPC──► /api/rpc (proxy) ──► Infura RPC (Amoy/Sepolia/Base)
   │
   ├──REST──► Etherscan V2 API (activity history)
   │
   └──WebSocket──► Binance (live prices)

🛠️ Tech Stack

Next.js 16 ethers.js v6 TypeScript Tailwind CSS Infura Etherscan V2 Binance WebSocket


📦 Installation

git clone https://github.com/AbbasFullstack/vaultx.git
cd vaultx/frontend
npm install
cp .env.example .env.local
# Add INFURA_PROJECT_ID and ETHERSCAN_API_KEY to .env.local
npm run dev

🔑 Provider keys ko sirf .env.local aur Vercel Environment Variables mein rakhein. API keys, private keys, seed phrases aur .env.local ko GitHub par kabhi commit na karein.


📘 OpenAPI Contract

VaultX ke server-side API proxy contract ko OpenAPI 3.0 specification mein document kiya gaya hai:

VaultX dashboard ke RPC aur server-side activity fallback calls generated client methods (proxyJsonRpcRequest aur getWalletActivity) use karte hain. Jab specification change ho, client file ko OpenAPI Forge se regenerate karke update karein.

Provider credentials specification mein intentionally included nahi hain. Document sirf request/response contract aur safe example values describe karta hai.


📁 Project Structure

vaultx/
├── docs/
│   └── openapi/
│       └── vaultx-openapi.yaml     # API contract for OpenAPI Forge
└── frontend/
    ├── app/
    │   ├── api/
    │   │   ├── rpc/route.ts        # RPC proxy (3 testnet networks)
    │   │   └── activity/route.ts   # Activity-history fallback
    │   ├── create/page.tsx         # Wallet creation + mnemonic
    │   ├── import/page.tsx         # Import phrase/key
    │   ├── dashboard/page.tsx      # Testnet balances + send + activity
    │   └── page.tsx                # Landing + unlock / account switch
    ├── lib/
    │   ├── generated/
    │   │   └── vaultx-api-client.ts # Generated OpenAPI client
    │   └── wallet.ts               # Local keystore helpers
    └── .env.example                # Required provider variable names only

⚠️ Security Note

Yeh ek learning project hai. Keys browser mein password-encrypted save hoti hain (industry standard keystore format). Phir bhi: asli funds kabhi test wallets mein na rakhein!

If provider credentials were ever committed or shared, revoke/rotate them in the relevant provider dashboards, replace them in Vercel Environment Variables, and redeploy before treating the project as publicly safe.


👨💻 About the Developer

Abbas Hussain

Abbas Hussain

Full-Stack & Web3 Developer

GitHub Portfolio LinkedIn

🎯 Self-taught full-stack developer building public learning projects across Web3, APIs, and developer tooling. ⛓️ Next.js • TypeScript • ethers.js • Supabase • WebSocket APIs

📊 Development Activity

Contribution Graph


📄 License

MIT License

Made with ❤️ by Abbas Hussain

⭐ Star this repo if you find it helpful!

Footer

About

Testnet Web3 wallet with encrypted keystore flows, server-side RPC proxies, and OpenAPI-documented API routes.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages