Wallet Scanner is a full-stack crypto wallet analytics dashboard that lets you paste a public wallet address and inspect its balance, token exposure, transaction activity, and market context across supported chains.
The app is built with a React frontend and an Express API backend, and it pulls live market and wallet data from Alchemy and CoinGecko.
- Scan an Ethereum or Polygon wallet by address
- Inspect native balance and token balances
- Detect and flag likely spam or low-quality token entries
- Show token USD value summaries and portfolio totals
- View token and market price history charts
- Review recent wallet transactions with explorer links
- Toggle light/dark mode in the UI
- Frontend: React + TypeScript + Vite
- UI styling: custom theme system with CSS
- Charts: Recharts
- Backend: Node.js + Express + TypeScript
- Data sources: Alchemy, CoinGecko
wallet-scanner/
├── client/ # React frontend
│ ├── src/
│ ├── package.json
│ └── vite.config.ts
├── server/ # Express API backend
│ ├── src/
│ ├── package.json
│ └── tsconfig.json
├── .gitignore
├── README.md
└── package-lock.json
Before running the project, install:
- Node.js 18+
- npm
- A valid Alchemy API key
Create a .env file inside the server folder with the required keys:
ALCHEMY_API_KEY=your_alchemy_api_key_here
COINGECKO_API_KEY=your_coingecko_api_key_here
PORT=3001If you do not have a CoinGecko demo key, the app can still attempt requests without it, but some endpoints may be rate-limited or fail depending on your setup.
From the project root:
cd client
npm install
cd ../server
npm installcd server
npm run devThe API runs at:
http://localhost:3001
Open a second terminal and run:
cd client
npm run devThe frontend runs at:
http://localhost:5173
- Open the frontend in the browser.
- Paste a wallet address.
- Select the chain.
- Press search.
- Review the wallet totals, asset breakdown, history, and transactions.
- The backend currently supports Ethereum and Polygon EVM wallets, plus Solana wallet scanning.
- Some features depend on live API availability and may return empty results when providers rate-limit or reject requests.
- This project is intended as a wallet-analysis prototype and is still evolving.
This project is currently unlicensed unless you add one explicitly.
Pull requests are welcome. If you want to improve the wallet scanner, add parsing logic, better filtering, or new chains, open an issue or send a PR.