A modern, data-focused dashboard for tracking top-performing Polymarket accounts by win rate and ROI. Features real-time data synchronization with Google Sheets.
-
Dual View Pages
- Page 1: Highest Win Rate accounts
- Page 2: Best ROI (Return on Investment) accounts
-
Rich Account Stats
- Win Rate percentage
- ROI percentage
- Total volume traded
- Number of trades
- Weekly P&L with visual indicators (green up arrows for profit, red down arrows for loss)
-
Interactive Grid
- Sort by: Win Rate, ROI, Weekly P&L, or Volume
- Click any account card to open their Polymarket profile in a new tab
- Responsive grid layout
-
Google Sheets Integration
- Export all tracked accounts to Google Sheets
- Automatic formatting with conditional colors
- Timestamp tracking
-
Auto-Refresh
- Data refreshes every 5 minutes when tab is active
- Local caching for faster load times
- Open
index.htmlin a web browser - The site works entirely client-side - no server required!
The current implementation uses mock data. To connect to the real Polymarket API:
- Open
script.js - Find the
fetchTopAccountsByWinRate()andfetchTopAccountsByROI()functions - Replace the mock data generation with actual API calls:
async function fetchTopAccountsByWinRate() {
const response = await fetch(`${CONFIG.POLYMARKET_API}/leaderboard?sortBy=winrate&limit=50`);
const data = await response.json();
return data.accounts; // Adjust based on actual API response structure
}Note: You'll need to:
- Review Polymarket's API documentation for the correct endpoints
- Handle authentication if required
- Adjust the data mapping to match the API response format
- Go to Google Sheets
- Create a new spreadsheet
- Copy the spreadsheet ID from the URL (the long string between
/d/and/edit)
- In your Google Sheet, go to Extensions > Apps Script
- Delete any existing code
- Copy the entire contents of
google-apps-script.gsinto the script editor - At the top of the script, add your spreadsheet ID:
const SPREADSHEET_ID = 'YOUR_SPREADSHEET_ID_HERE';
- Save the script (💾 icon or Ctrl+S)
- Click Deploy > New deployment
- Click the gear icon ⚙️ next to "Select type"
- Choose Web app
- Configure:
- Description: "Polymarket Tracker API"
- Execute as: Me
- Who has access: Anyone
- Click Deploy
- Copy the Web app URL (it will look like:
https://script.google.com/macros/s/...)
- Open
script.js - Find the
CONFIGobject at the top - Add your Web App URL:
const CONFIG = { POLYMARKET_API: 'https://gamma-api.polymarket.com', GOOGLE_SHEETS_SCRIPT_URL: 'YOUR_WEB_APP_URL_HERE', CACHE_DURATION: 5 * 60 * 1000, };
- Open
index.htmlin your browser - Click "Fetch & Sync Data" to load account data
- Click "Export to Sheets" to send data to Google Sheets
- Check your Google Sheet - data should appear with formatting!
polymarket-tracker/
├── index.html # Main HTML file
├── styles.css # Dark dashboard styling
├── script.js # Frontend logic & API integration
├── google-apps-script.gs # Google Sheets backend
└── README.md # This file
Edit the CSS variables in styles.css:
:root {
--bg-primary: #0a0e14; /* Main background */
--accent-primary: #00ff88; /* Primary accent (green) */
--accent-secondary: #0099ff; /* Secondary accent (blue) */
--accent-danger: #ff3366; /* Negative values (red) */
}In script.js, modify:
const CONFIG = {
CACHE_DURATION: 5 * 60 * 1000, // Change to desired milliseconds
};- Update the account data structure in
script.js - Modify the
createAccountCard()function to display new stats - Update Google Sheets headers in
google-apps-script.gs
- ✅ Chrome/Edge (recommended)
- ✅ Firefox
- ✅ Safari
- ✅ Opera
- Check browser console for specific error messages
- Verify the Polymarket API endpoint is correct
- Check for CORS issues (may need a backend proxy)
- Ensure the Web App URL is correct in
CONFIG - Verify the Apps Script deployment is set to "Anyone"
- Check the Apps Script execution log for errors
- Open browser console (F12)
- Check for JavaScript errors
- Verify data structure matches expected format
- Real-time WebSocket updates
- Historical performance charts
- Filter by date range
- Email alerts for top performers
- CSV export option
- Dark/Light theme toggle
MIT License - feel free to use and modify!
Built with vanilla HTML, CSS, and JavaScript - no frameworks required!