A portfolio management dashboard that integrates banks, brokers, CEXes, and chains into a unified platform.
-
Portfolio Tracking
- LIVE NOW: Chain Integrations (Solana, Aptos, Sui)
- LIVE NOW: CEX Integrations (Kraken, Gemini)
- COMING SOON: Broker and Bank Integrations (via Plaid)
-
Portfolio Management
- LIVE NOW: Balance tracking across all assets
- COMING SOON: Aggregated Transaction history
- COMING SOON: Tax documentation automation
- COMING SOON: Transfers, Deposits, Withdrawals, Swaps, etc.
-
Real-Time Data
- LIVE NOW: Live Market Data Integration (via Finnhub & CMC)
- LIVE NOW: Interactive Charts & Graphs
- COMING SOON: Price Alerts & Notifications
- Node.js (v18 or higher)
- npm (comes with Node.js)
- API keys and wallets configured in
.env.local
- Clone the repository:
git clone https://github.com/zacharyr0th/portfolio.git
cd portfolio
- Install dependencies:
npm install
- Copy the environment variables file:
cp .env.example .env.local
-
Configure your environment variables in
.env.local
-
Start the development server:
npm run dev
The following API keys and configurations are required:
- Solana RPC URL - recommended: https://mainnet.helius-rpc.com/?api-key=YOUR_API_KEY
- Aptos RPC URL - recommended: https://fullnode.mainnet.aptoslabs.com/
- Sui RPC URL - recommended: https://fullnode.mainnet.sui.io/443
- Finnhub API Key (Stock Market Data) https://finnhub.io/docs/api/introduction
- CMC API Key (Cryptocurrency Data) https://coinmarketcap.com/api/
- Kraken API Credentials https://docs.kraken.com/api/docs/rest-api/add-order
- Gemini API Credentials https://docs.gemini.com/rest-api/
- SOLANA_WALLET_x=public-key
- APTOS_WALLET_x=public-key
- SUI_WALLET_x=public-key
Each wallet added with the above format will be automatically detected and added to the portfolio.
See .env.example for all required environment variables.
npm run dev
- Start development servernpm run build
- Build production bundlenpm run reset
- Clean install (removes node_modules, clears cache, and reinstalls)
See package.json for all available scripts.
Portfolio is designed to be extensible, with the ability to add as many blockchains and CEXes as possible.
Blockchain Examples:
- Solana Integration - Complete implementation with SPL token support
- Aptos Integration - Move-based chain example
- Sui Integration - Alternative Move-based implementation
Exchange Examples:
- Kraken Integration - Full-featured exchange implementation
- Gemini Integration - Alternative implementation style
Please read Contributing Guidelines for detailed information about our development process, branch structure, and code submission guidelines.
Quick start:
- Fork the repository
- Create your feature branch (
git checkout -b feature/NewFeature
) - Commit your changes (
git commit -m 'Add some NewFeature'
) - Push to the branch (
git push origin feature/NewFeature
) - Open a Pull Request
When adding a new integration:
- Follow the appropriate guide (Chains or CEX)
- Use existing implementations as references
- Ensure all checklist items are completed
A cross-platform portfolio management tool that integrates with various wallets, exchanges, and financial services.
- Multi-chain wallet support (Ethereum, Polygon, Arbitrum, Optimism, Base, Solana, Aptos, Sui)
- Centralized exchange integration (Gemini, etc.)
- Real-time balance tracking
- Portfolio analytics and visualization
- Secure API integration
- Clone the repository
- Install dependencies:
npm install
- Copy
.env.example
to.env.local
and configure your environment variables:
cp .env.example .env.local
To enable Gemini exchange integration:
-
Create an API key on Gemini:
- Log in to your Gemini account
- Go to Account Settings > API
- Create a new API key with "Fund Management" permissions
- Copy the API key and secret
-
Add your Gemini credentials to
.env.local
:
GEMINI_API_KEY=your_gemini_api_key
GEMINI_API_SECRET=your_gemini_api_secret
The integration will automatically fetch your Gemini account balances and update them in real-time.
Run the development server:
npm run dev
Open http://localhost:3000 to view the application.
- API keys are stored securely in environment variables
- All API requests are made server-side to protect credentials
- Rate limiting and error handling are implemented for all API calls
- Sensitive data is never exposed to the client
MIT