A web application for tracking Ethereum wallet portfolios, including ETH balance and NFT collections with real-time valuation.
⚠️ Note: This project uses outdated dependencies and is no longer actively maintained.
Pocket Watcher allows you to monitor any Ethereum wallet's portfolio by simply entering the wallet address. The app fetches:
- ETH balance and current USD value
- All NFT collections owned by the wallet
- Floor prices for each NFT collection
- Total net worth calculation (ETH + NFTs)
- React 17.0.2 - UI framework
- React Router v6 - Client-side routing
- Create React App - Build tooling
- CSS3 - Custom styling
- Node.js - JavaScript runtime (v14.4.0)
- Express.js - Web server framework
- CORS - Cross-origin resource sharing
- Got - HTTP request library
- OpenSea API - NFT collection data and floor prices
- Etherscan API - Ethereum balance queries
- CoinMarketCap API - ETH/USD price conversion
- 🔍 Wallet Search - Enter any Ethereum address to view portfolio
- 💰 ETH Balance - See current ETH holdings and USD value
- 🖼️ NFT Collections - View all NFT collections with images
- 📊 Floor Price Tracking - Real-time floor prices for each collection
- 💎 Net Worth Calculator - Total portfolio value in ETH and USD
- 🔗 OpenSea Integration - Direct links to collection pages
- ⚡ Real-time Data - Live API calls for up-to-date information
Pocket-Watcher-Web-App/
├── client/ # React frontend
│ ├── public/ # Static assets
│ └── src/
│ ├── components/ # React components
│ │ ├── HomePage.js
│ │ ├── SearchAddress.js
│ │ ├── InformationPage.js
│ │ ├── RetrievingInfo.js
│ │ ├── Inventory.js
│ │ ├── LoadingScreen.js
│ │ └── Footer.js
│ ├── assets/ # Images
│ └── App.js # Main app component
├── server/
│ └── index.js # Express API server
└── package.json # Backend dependencies
- Node.js v14.4.0 or higher
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/Pocket-Watcher-Web-App.git
cd Pocket-Watcher-Web-App- Install backend dependencies:
npm install- Install frontend dependencies:
cd client
npm install
cd ..- Start the backend server:
npm start- In a separate terminal, start the frontend development server:
cd client
npm startThe app will open at http://localhost:3000 and the API will run on http://localhost:5000.
Build the React frontend:
npm run buildThis command installs client dependencies and creates an optimized production build in client/build.
Fetches portfolio data for a given Ethereum address.
Parameters:
address- Valid Ethereum wallet address (required)
Response:
{
"ethBalance": "1.234",
"ethPrice": 2500.0,
"collections": [
{
"name": "Collection Name",
"count": 5,
"floorPrice": 0.5,
"image": "https://...",
"slug": "collection-slug"
}
],
"totalNftValue": 2.5,
"totalValue": 3.734
}The app is configured for Heroku deployment:
- The
startscript runs the Express server - The
buildscript prepares the React frontend - Node version is locked to v14.4.0 in
engines
- User enters an Ethereum wallet address
- Frontend routes to the information page with the address
- Backend API endpoint fetches data from multiple sources:
- Etherscan for ETH balance
- CoinMarketCap for current ETH/USD price
- OpenSea for NFT collections and floor prices
- Server aggregates data and calculates total portfolio value
- Frontend displays the results with collection cards and net worth summary
- Loading times vary based on the number of NFTs in a wallet
- Larger wallets may take longer to process
- A loading screen with disclaimer is shown during data fetching
Disclaimer: This tool is for informational purposes only. Floor prices are estimates and actual NFT values may vary based on individual traits and market conditions.