A Wall Street-style terminal interface for tracking large transactions (whales) on Polymarket.
- Real-time Whale Tracking: Monitors transactions over $10,000
- Classic Terminal UI: Old-school forex/Bloomberg terminal aesthetic
- Market Statistics: Live volume and market data
- Auto-refresh: Updates every 60 seconds
- Direct Links: Click through to Polymarket profiles and markets
- Frontend: Plain HTML, CSS, JavaScript (no frameworks)
- Backend: Python Flask
- Deployment: Netlify (frontend) + Render (backend)
- Create a new Web Service on Render
- Connect your GitHub repository
- Configure:
- Root Directory:
backend - Build Command:
pip install -r requirements.txt - Start Command:
gunicorn app:app - Instance Type: Free tier works fine
- Root Directory:
- Deploy and copy the URL (e.g.,
https://your-app.onrender.com)
- Open
frontend/app.js - Update the
API_URLin the CONFIG object:const CONFIG = { API_URL: 'https://your-backend-url.onrender.com', // Your Render URL here REFRESH_INTERVAL: 60000, POLYMARKET_BASE_URL: 'https://polymarket.com' };
- Deploy to Netlify:
- Drag and drop the
frontendfolder, OR - Connect your GitHub repository
- Publish directory:
frontend - No build command needed
- Drag and drop the
The default whale threshold is $10,000. To change it:
Backend (backend/app.py):
WHALE_THRESHOLD = 10000 # Change this valueFrontend (frontend/app.js):
REFRESH_INTERVAL: 60000, // milliseconds (60000 = 1 minute)Returns recent whale transactions over the threshold.
Response:
[
{
"id": "trade_id",
"timestamp": "2026-01-30T12:00:00",
"account": {
"address": "0x...",
"username": "trader123"
},
"moneyMoved": 15000.00,
"market": {
"title": "Will X happen?",
"slug": "market-slug",
"id": "condition_id"
},
"side": "BUY",
"outcome": "YES",
"price": 0.65,
"size": 23076.92,
"potentialWin": 8076.92,
"impliedOdds": "65.0%"
}
]Returns overall market statistics and top markets.
Response:
{
"totalVolume": 1234567.89,
"activeMarkets": 50,
"topMarkets": [
{
"title": "Market question",
"volume": 100000.00,
"slug": "market-slug"
}
]
}Health check endpoint.
- Polymarket CLOB API:
https://clob.polymarket.com - Polymarket Gamma API:
https://gamma-api.polymarket.com
- Free Tier Limitations: Render free tier spins down after inactivity. First request after inactivity may be slow (30-60 seconds).
- Rate Limiting: The backend implements caching to reduce API calls to Polymarket.
- No API Key Required: The Polymarket public APIs don't require authentication for read operations.
Edit frontend/style.css:
- Green:
#00ff00(profits, live status) - Red:
#ff0000(losses, disconnected) - Yellow:
#ffff00(account names, headers) - Cyan:
#00ccff(prices)
The threshold is displayed in the stats panel. Update in frontend/index.html:
<div class="stat-label">WHALE THRESHOLD</div>
<div class="stat-value">$10,000</div>- Check Render logs
- Verify the backend URL is correct in
app.js - Free tier may need 30-60 seconds to spin up
- Polymarket may have low activity
- Check browser console for errors
- Verify CORS is enabled (already configured in Flask)
- Ensure backend is deployed on Render (has proper HTTPS)
- Check that
flask-corsis installed
MIT