DEV Community

Manpreet Brar
Manpreet Brar

Posted on

I built a free whale tracker for Polymarket — here's what I learned

The problem: I kept missing big moves on Polymarket because I had no way to see what the biggest traders were betting on in real time.

So I built WhaleTrack — a free, no-signup tool that shows you exactly what top Polymarket whales are buying and selling.

What it does

  • Live whale activity feed — see the last 40 trades from top wallets, updated on refresh
  • Whale leaderboard — P&L, win rate, trade count for the biggest accounts
  • No login, no ads, no fluff — just the data

How it works

The whole thing is vanilla HTML/CSS/JS deployed on Vercel with two serverless functions:

/api/whales.js — hits the Polymarket leaderboard API, fetches position stats for each whale, calculates win rates from closed positions

/api/activity.js — pulls recent trades for each whale wallet in parallel, filters out internal combo transactions (no title / zero price), and returns the 40 most recent trades

The serverless layer solves CORS — Polymarket's data API doesn't allow browser requests, so everything goes server-side.

Tech stack

  • Frontend: Vanilla HTML/CSS/JS (zero dependencies)
  • Backend: Vercel serverless functions
  • Data: Polymarket public data API
  • Deploy: Vercel (free tier)

Biggest lesson

Filtering bad data is half the work. The raw API returns combo trades and internal transactions that show up as "Unknown Market @ 0¢" — useless noise. Had to figure out which fields to check (title, price > 0) to strip them.

Also: win rate calculation is tricky when most whales have unrealized profits. Showing "—" instead of 0% is more honest.

Try it

WhaleTrack →

Also launched on Product Hunt today if you want to show some love: Product Hunt

Built this in a weekend. Happy to answer questions about the Polymarket API or Vercel serverless setup.

Top comments (1)

Collapse
 
nazar_boyko profile image
Nazar Boyko

The choice to show a dash instead of a fake 0% win rate is a small thing that made me trust the rest of the numbers more, since most dashboards would just print the misleading zero. One thing that'll bite as the leaderboard grows is the fan-out. Every refresh fires a burst of requests, one per whale, straight at Polymarket's API. A short edge cache on the serverless functions, even 10 or 15 seconds, would smooth that out and barely dent how live it feels, since whale moves aren't changing second to second anyway.