vike

Recipe 4 of 30

Is this Polymarket wallet's profit real? Check realized PnL against on-chain settlements

Take the wallet's markets from /wallets/{address} and check each resolved one against /settlements/{condition_id}, the on-chain winner and resolution time.

GET /v1/polymarket/wallets/{address} gives the wallet's realized P&L and its 30 largest markets in one call, each with resolved, winning_outcome, resolved_at and realized_pnl. Check each resolved market with GET /v1/polymarket/settlements/{condition_id}, which reads the resolution from the chain: when the winner and the time agree, the P&L of that market rests on a real settlement. The full parameter list is on Trader profile.

Quick answer

Pass the proxy wallet with window=all.

cURL
# the wallet's lifetime P&L and the 30 markets it traded most
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/wallets/0xde7be6d489bce070a959e0cb813128ae659b5f4b?window=all"

Example response

Captured from the live API on 2026-10-24 at 17:15 UTC, abridged to the header and 3 of the 30 markets. The wallet realized $1,043,529.84 over 478 resolved markets of 546. Each market row carries the winner and resolved_at to set against the chain. realized_pnl and the headline are USD; resolved_at is UTC.

Example response
{
  "proxy_wallet": "0xde7be6d489bce070a959e0cb813128ae659b5f4b",
  "window": "all",
  "trades_all": 22588,
  "volume_all_usd": 19067483.106795996,
  "markets_count": 546,
  "realized_pnl_usd": 1043529.8429950002,
  "resolved_markets": 478,
  "hit_rate": 0.6067110506666478,
  "markets": [
    {
      "condition_id": "0xd4bbf7f6707c67beb736135ad32a41f6db41f8ae52d3ac4919650de9eeb94ed8",
      "title": "khamenei out as supreme leader of iran by february 28",
      "volume_usd": 1604073.411817,
      "resolved": true,
      "invalid": false,
      "winning_outcome": "Yes",
      "resolved_at": "2026-03-04T01:05:25",
      "realized_pnl": 197573.91791499936
    },
    {
      "condition_id": "0x0e4a0c937b8934c2475613b6322b3f8edc8dedc24762e01e42b0e6f87424a089",
      "title": "US x Iran permanent peace deal by May 31, 2026?",
      "volume_usd": 653908.5310659996,
      "resolved": true,
      "invalid": false,
      "winning_outcome": "No",
      "resolved_at": "2026-06-01T12:17:00",
      "realized_pnl": -371408.1464659996
    },
    {
      "condition_id": "0xa3b36b2d6104d34af4e6c6215fc818e43352e78a748fbfb0b85e3a35f71dec9a",
      "title": "Will there be no change in Fed interest rates after the September 2026 meeting?",
      "volume_usd": 637886.344079,
      "resolved": true,
      "invalid": false,
      "winning_outcome": "No",
      "resolved_at": "2026-09-16T20:02:43",
      "realized_pnl": 171891.2043399999
    }
  ]
}

Variations

Then each resolved market on chain. Once per resolved market, ask for its settlement. For the first market, resolved_ts_ms 1772586325000 is 2026-03-04 01:05:25 UTC, the profile's resolved_at to the second, and the chain's winner is Yes, as the profile says. The other two markets matched the same way (No at 2026-06-01 12:17:00 and No at 2026-09-16 20:02:43).

cURL — on chain
# once per resolved market: the winner and resolution time from the chain
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/settlements/0xd4bbf7f6707c67beb736135ad32a41f6db41f8ae52d3ac4919650de9eeb94ed8"
Response — on chain
[
  {
    "condition_id": "0xd4bbf7f6707c67beb736135ad32a41f6db41f8ae52d3ac4919650de9eeb94ed8",
    "market_known": true,
    "outcomes": ["Yes", "No"],
    "payouts": [1, 0],
    "question": "Khamenei out as Supreme Leader of Iran by February 28?",
    "resolved_block": 83733147,
    "resolved_ts_ms": 1772586325000,
    "slug": "khamenei-out-as-supreme-leader-of-iran-by-february-28",
    "token_ids": ["39317885422026394259056328144566743331998444273202427934141325790266108570112", "37975265083682450969967223199653164268542375291978582835346444673615244164455"],
    "winning_index": 0,
    "winning_outcome": "Yes",
    "winning_token_id": "39317885422026394259056328144566743331998444273202427934141325790266108570112"
  }
]

Only what resolved in the last 30 days. window moves the headline P&L, the resolved count and the hit rate by resolution time. The markets list does not change.

cURL — 30 days
# P&L of the markets that resolved in the last 30 days
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/wallets/0xde7be6d489bce070a959e0cb813128ae659b5f4b?window=30d"

The resolved markets to check. Save the profile once and list the markets to send to step 2.

cURL — markets to check
# condition ids of the resolved markets among the 30 largest
curl -s -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/wallets/0xde7be6d489bce070a959e0cb813128ae659b5f4b?window=all" | jq -r '.markets[] | select(.resolved) | .condition_id'

The same wallet on the leaderboard. The board ranks it first in Politics with $1,752,533.66: that is Politics markets only. The profile's category_breakdown says $1,752,528.66 for Politics, and the headline $1,043,529.84 is every category.

cURL — leaderboard
# the Politics board, where this wallet ranks first
curl -H "X-API-Key: $VIKE_API_KEY" \
  "https://data.vike.io/v1/polymarket/leaderboard?category=Politics&sort=realized_pnl&limit=3"

Before you rely on it

You can check 30 markets, not every dollar

Pass the proxy wallet: an address with no recorded trades answers 400, and the address that signs a wallet's orders is usually one. markets holds only the 30 largest markets by volume (here 30 of 546), and the profile carries no per-outcome cost, so you can check which markets the P&L rests on and how they settled, not recompute the dollars. The headline realized_pnl_usd counts a market once Polymarket's own resolution of it has been collected, while a markets row also falls back to the on-chain one, so a market settled on chain today can show realized_pnl before the headline counts it. A market that resolved invalid is left out of the headline.

Ask your agent

Connected to the Vike MCP server (https://vike.io/mcp) in Claude, ChatGPT or Cursor, ask it in plain words. The polymarket_wallet tool answers, at 2 credits a call, with polymarket_settlement for each market at 1 credit a call.

Ask your agent
Profile Polymarket wallet 0xde7be6d489bce070a959e0cb813128ae659b5f4b and check its three largest resolved markets against their on-chain settlements
Example response
{  "proxy_wallet": "0xde7be6d489bce070a959e0cb813128ae659b5f4b",  "window": "all",  "trades_all": 22588,  "volume_all_usd": 19067483.106795996,  "markets_count": 546,  "realized_pnl_usd": 1043529.8429950002,  "resolved_markets": 478,  "hit_rate": 0.6067110506666478,  "markets": [    {      "condition_id": "0xd4bbf7f6707c67beb736135ad32a41f6db41f8ae52d3ac4919650de9eeb94ed8",      "title": "khamenei out as supreme leader of iran by february 28",      "volume_usd": 1604073.411817,      "resolved": true,      "invalid": false,      "winning_outcome": "Yes",      "resolved_at": "2026-03-04T01:05:25",      "realized_pnl": 197573.91791499936    },    {      "condition_id": "0x0e4a0c937b8934c2475613b6322b3f8edc8dedc24762e01e42b0e6f87424a089",      "title": "US x Iran permanent peace deal by May 31, 2026?",      "volume_usd": 653908.5310659996,      "resolved": true,      "invalid": false,      "winning_outcome": "No",      "resolved_at": "2026-06-01T12:17:00",      "realized_pnl": -371408.1464659996    },    {      "condition_id": "0xa3b36b2d6104d34af4e6c6215fc818e43352e78a748fbfb0b85e3a35f71dec9a",      "title": "Will there be no change in Fed interest rates after the September 2026 meeting?",      "volume_usd": 637886.344079,      "resolved": true,      "invalid": false,      "winning_outcome": "No",      "resolved_at": "2026-09-16T20:02:43",      "realized_pnl": 171891.2043399999    }  ]}