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.
# 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.
{
"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).
# 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"[
{
"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.
# 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.
# 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.
# 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.
Profile Polymarket wallet 0xde7be6d489bce070a959e0cb813128ae659b5f4b and check its three largest resolved markets against their on-chain settlements