Live
← All posts

I connected Claude Code to a database of 1.3B Polymarket trades with an MCP. Here's what it found.

I had the full on-chain Polymarket ledger in Postgres, but answering questions meant hand-writing SQL across 1.3B rows. So I gave Claude Code a Postgres MCP and just asked it questions in plain English — the build, the exact config, and what it found about who actually makes money.

Asked Claude CodePostgres MCP1.3B on-chain trades
fig.01

79 of 100 Polymarket
traders never make money

› I gave Claude an MCP into 1,560,894 wallets and asked. It wrote the query.
79 not profitable21 profitable
Source: on-chain · Polygon · n = 1,560,894net +1 in 5 · 20.6% positive
Asked Claude Code via a Postgres MCP: 4 out of 5 Polymarket traders never make money overall — only ~1 in 5 wallets is net positive.

I run CrowdIntel, an on-chain analytics platform for prediction markets. Under the hood there's a custom indexer that pulls every Polymarket contract on Polygon into a Postgres database — about 1.3 billion trades across 1.56 million wallets.

The data was all there. The problem was getting answers out of it: every question meant hand-writing SQL against a 1.3B-row table, remembering which columns were trustworthy, and not accidentally scanning the whole thing.

So I gave Claude Code a Postgres MCP pointed at that database, and started just… asking it questions in plain English.

01 — The build

The setup

custom indexerPostgres · 1.3B tradesPostgres MCPClaude Code

For this exploration I used the community Postgres MCP — the generic one — wired into Claude Code's .mcp.json. The entire config is this:

.mcp.json
{
  "mcpServers": {
    "postgres": {
      "command": "npx",
      "args": [
        "-y",
        "@modelcontextprotocol/server-postgres",
        "postgresql://USER:PASS@HOST:5432/db"
      ]
    }
  }
}

Once it's connected, Claude can run read-only queries against the live ledger itself — no copy-pasting result sets, no me writing the SQL. Then I just asked.

02 — The findings

What Claude found

I started with the obvious one, typed exactly like this:

"how many Polymarket traders actually make money?"

Claude wrote the aggregate, knew to use the pre-aggregated wallet_stats table instead of scanning 1.3B raw trades, handled the PnL-coalescing quirk, and came back with the headline:

Profitable
1 in 5
20.6% of 1.56M wallets
Top 0.1% captured
~50%
of all profit
Biggest winner
$16.6M
single top wallet

Only ~20% — about 1 in 5 — of all 1,560,894 wallets are net positive. The other ~80% never made money overall.

Then I kept pulling the thread, one plain-English question at a time:

  • The $1,000 club is tiny. Only 37,628 wallets (2.4%) have ever cleared $1,000 in profit. By $100k, you're down to ~1,200.
  • The money is brutally concentrated. The top 0.1% of wallets captured roughly half of the ~$968 million in total profit. The single biggest verified wallet cleared about $16.6M.
  • A lot of the winners aren't human. Classified by behavior, ~23,600 wallets are bots, and a cluster of ~3,100 whale wallets captured a disproportionate share of the profit between them.

Each of those was one question. Claude wrote the SQL, caught the gotchas, and returned a number I could trust. Here's one of the biggest verified winners it surfaced — 60% accuracy across 4,695 resolved bets, live from the database:

swisstony 0x204f…5e14 VERIFIED
View full dossier →
Trades
15,450
Volume
$846M
Win rate
60%
PnL
$9.4M

One of the biggest consistent winners in the dataset — 60% across 4,695 resolved bets. This card is live: click through for the full dossier.

That community Postgres MCP is perfect for ad-hoc exploration. For repeatable research we wrapped the whole ledger into CrowdIntel's own MCP — 12 named read-only methods like get_wallet_dossier, scan_insider_signals and get_cluster, not raw SQL. The model calls a purpose-built tool instead of writing a query — and it's pointed at our ledger, not yours.

Quant · Terminal Live ledger
Insider intel, piped into your model.

One API key. Plug the CrowdIntel MCP into Claude, Cursor, or Zed and pull this same data — the exact 1.3B-trade ledger Claude was querying.

$79/ mo$99Founding · while in beta
Get Terminal · $79 founding →
  • REST API over the full 1.3B-trade ledger
  • Terminal MCP · 12 custom methods (get_wallet_dossier, scan_insider_signals…) — not raw SQL
  • Live insider feed, wallet dossiers & cluster intel
  • Unlimited investigations + full archive
  • Data export · CSV / JSON on every surface
  • Everything in Pro — real-time feed, the Agent
03 — The takeaway

Why this worked better than a dashboard

I've built dashboards. They answer the questions you anticipated when you built them. The MCP + Claude Code setup answers the questions you think of now — including the follow-ups ("ok, but how many of those winners are bots?") that you'd never pre-build a chart for. It's the difference between a fixed report and a conversation with your own data.

The agentic part matters: Claude didn't just translate English to SQL. It knew not to COUNT(*) a 1.3B-row table, picked the right pre-aggregated source, scoped the claim correctly when a raw-SQL number differed from the UI, and flagged its own assumptions. That's the part a naive text-to-SQL tool gets wrong.

04 — Do it yourself

How to do this yourself

If you're sitting on a database you can't get answers out of, the setup takes about five minutes:

  • Add the Postgres MCP server. Drop the @modelcontextprotocol/server-postgres entry above into Claude Code's .mcp.json with your connection string. Use a read-only role if you can.
  • Restart Claude Code. It picks up the new server and exposes a read-only query tool.
  • Ask in plain English. "How many rows match X?", "what's the distribution of Y?", "find the outliers in Z." Claude writes the SQL, picks the right tables, and returns the answer — then you ask the follow-up.

It's the most useful thing I've done with Claude on this codebase. And if you'd rather skip the indexer entirely and query our ledger — that's the Terminal plan above.

CrowdIntel Terminal · MCP-native

Wire it into your stack.

One API key. Plug the CrowdIntel MCP into Claude Desktop, Cursor, or Zed and let the model do the research — 12 read-only tools and a REST API over the same 1.3B-trade ledger Claude was querying here.

12 read-only tools Cancel anytime Founding pricing · $79/mo
FAQ

The numbers, and the setup.

About 1 in 5. Of 1,560,894 wallets, only ~20.6% (322,288) are net profitable. The other ~80% are net negative overall.
Extremely. The top 0.1% of all wallets captured roughly half of the ~$968M in total positive profit. The single biggest verified winner cleared about $16.6M.
Only 37,628 — about 2.4%. By $100k you are down to roughly 1,200 wallets.
Classified by on-chain behavior, about 23,600 wallets are bots and ~3,100 are whales. A large share of the consistent winners are not human.
Add the community Postgres MCP server to Claude Code's .mcp.json with your connection string, restart, and ask questions in plain English. To skip the indexer and query our 1.3B-trade ledger directly, the Quant plan ships a hosted Terminal MCP plus a REST API.
CrowdIntel
Every Polymarket trade. On-chain, scored, reproducible from Polygon.
© 2026 CrowdIntel · Built on Polygon · Polymarket data.Kalshi on the research roadmap.
Quant — $79$99
REST API + Terminal MCP · founding
Get access →
Live
Beta
···v0.1.0
CrowdIntel needs a newer browser

Your device is on iOS 15 or older. CrowdIntel uses features (color-mix, WebGL2, modern auth) that require iOS 16+ / Safari 16+.

iPhone 7 maxes out at iOS 15, so the site can't render here. Open CrowdIntel on a desktop browser or a newer phone.

crowdintel.xyz

◆ legacy browser fallback