A local-first, privacy-focused EVM portfolio tracker that gets data exclusively from user-provided RPC endpoints.
EVM.Portfolio.Demo.mp4
Uses the 1inch Spot Price Aggregator to get asset values from onchain data.
The application explicitly doesn't care about transaction history to reduce complexity and maximize privacy. For more precise accounting, use Rotki.
- Add/edit accounts
- Add/edit chains
- Add/edit tokens
- Add/edit manual balances for tracking assets on exchanges
- View token balances
- View token/portfolio value in USD/EUR/ETH
- View portfolio value over time (chart appears after 3 days)
This is intended to be run on a private home server with access to an Ethereum node. There is no additional user auth.
Use the following Docker Compose file to expose the web client on port 8580
.
services:
evm-portfolio:
image: ghcr.io/gskril/evm-portfolio:latest
container_name: evm-portfolio
ports:
- 8580:8580
environment:
- REDIS_URL=redis://redis:6379
# Use this if you visit your local server from a different hostname
# - __VITE_ADDITIONAL_SERVER_ALLOWED_HOSTS=
depends_on:
- redis
volumes:
- evm-portfolio_data:/app/data
restart: unless-stopped
redis:
image: redis:latest
container_name: redis
restart: unless-stopped
volumes:
evm-portfolio_data:
Redis is used with BullMQ to manage background jobs. I don't like using Docker for local development, so you'll need to install and run redis-server
separately on your machine.
# Install dependencies for all workspaces
bun install
# Run everything
bun run dev
# Or run individual parts
bun run dev:server
bun run dev:client