A responsive React dashboard for a crypto wallet identity and portfolio overview.
npm install
npm --prefix backend install
npm run devIn a second terminal:
npm --prefix backend run devCopy .env.example and backend/.env.example to local .env files and set
the required provider credentials. Never commit secrets.
Rotate provider credentials immediately if an .env file is ever shared,
logged, or exposed outside the machine that runs the service.
Required backend variables:
NODE_ENV=productionETHERSCAN_API_KEYFRONTEND_URLcontaining the allowed frontend origin or comma-separated origins
Optional integrations and tuning are documented in backend/.env.example.
The dashboard uses Etherscan only. ETH balance and price come from Etherscan, while ERC-20 balances are estimated from transfers during the selected analysis period. USD values are available only for ETH, a small hardcoded list of USD-pegged tokens, and ETH-equivalent tokens.
The dashboard labels this result as estimated priced assets. It does not include NFTs, DeFi positions, debt, related addresses, unpriced tokens, or token balances whose relevant transfers happened before the selected period. High-activity wallets may hit the 5,000-record token-transfer cap; those results are marked as partial.
Before deploying, run:
npm run checkFor local development, leave VITE_API_URL empty. Vite proxies /api
requests to http://localhost:5000.
Production uses two Vercel projects from this repository:
- Frontend project: repository root
- Backend project:
backend
The frontend keeps requests same-origin, for example
https://mywallet360.vercel.app/api/wallet/.... Explicit root API functions
forward wallet and resolution requests to https://mywallet360-backend.vercel.app.
Configure the backend Vercel project with:
- Root Directory:
backend - Framework Preset:
Other - Build Command: leave empty
- Output Directory: leave empty
- Install Command:
npm install
Vercel uses backend/api/index.js as the serverless Express entrypoint. Add
the required variables from backend/.env.example to the backend project:
NODE_ENV=productionETHERSCAN_API_KEYFRONTEND_URL=https://mywallet360.vercel.app
Do not set VITE_API_URL for the standard deployment. The frontend API proxy
keeps the backend URL and provider credentials out of browser code.
The public wallet API returns only dashboard-required summaries. Large raw asset and NFT collections remain internal to the backend calculations.
npm run build
npm run previewWallet search accepts Ethereum addresses and ENS .eth names. ENS names are
resolved before the existing wallet analytics request runs.
Wallet analytics can be requested for 1, 7, 30, or 365 days using the dashboard period selector or the API query parameter:
GET /api/wallet/:address?days=7