@0xinsider/mcp 2.14.4 → 2.14.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/sdk/client.d.ts +24 -0
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js +25 -0
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/errors.d.ts +3 -2
- package/dist/sdk/errors.d.ts.map +1 -1
- package/dist/sdk/errors.js +3 -2
- package/dist/sdk/errors.js.map +1 -1
- package/dist/sdk/index.d.ts +2 -2
- package/dist/sdk/index.d.ts.map +1 -1
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/schema.d.ts +262 -21
- package/dist/sdk/schema.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/sdk/schema.d.ts
CHANGED
|
@@ -171,6 +171,196 @@ export type CategorySkillV2 = {
|
|
|
171
171
|
edge_lower_95: number | null;
|
|
172
172
|
brier_event_avg: number | null;
|
|
173
173
|
};
|
|
174
|
+
export type Combo = {
|
|
175
|
+
/** Combo identifier: 0x followed by 62 lowercase hex characters. This differs from a binary market condition ID. */
|
|
176
|
+
condition_id: string;
|
|
177
|
+
leg_count: number | null;
|
|
178
|
+
prepared_at: string | null;
|
|
179
|
+
/** Whether the preparation event has been indexed. */
|
|
180
|
+
legs_known: boolean;
|
|
181
|
+
legs: ComboLeg[];
|
|
182
|
+
window: ComboWindowStats | null;
|
|
183
|
+
totals: ComboTotals | null;
|
|
184
|
+
/** Result of the YES conjunction, independent of the wallet side or its P&L. */
|
|
185
|
+
status: "pending" | "won" | "lost" | "unknown";
|
|
186
|
+
/** Reason the conjunction result cannot be verified, when unknown. */
|
|
187
|
+
status_reason: string | null;
|
|
188
|
+
};
|
|
189
|
+
export type ComboCoverage = {
|
|
190
|
+
state: "paused" | "uninitialized" | "stale" | "backfilling" | "live";
|
|
191
|
+
ingest_enabled: boolean;
|
|
192
|
+
cursors: ComboCoverageCursor[];
|
|
193
|
+
max_lag_blocks: number | null;
|
|
194
|
+
oldest_cursor_update: string | null;
|
|
195
|
+
lifecycle_lag_blocks: number | null;
|
|
196
|
+
lifecycle_backfilling: boolean;
|
|
197
|
+
/** Time the coverage state was evaluated; not a market-price timestamp. */
|
|
198
|
+
computed_at: string;
|
|
199
|
+
};
|
|
200
|
+
export type ComboCoverageCursor = {
|
|
201
|
+
/** Indexed contract. */
|
|
202
|
+
contract: string;
|
|
203
|
+
last_block: number;
|
|
204
|
+
seed_block: number;
|
|
205
|
+
seed_origin: string;
|
|
206
|
+
chain_finalized_block: number | null;
|
|
207
|
+
lag_blocks: number | null;
|
|
208
|
+
updated_at: string;
|
|
209
|
+
};
|
|
210
|
+
/** One combo with its newest 100 fills and all-time lifecycle totals. Paid API callers receive full access. */
|
|
211
|
+
export type ComboDetail = {
|
|
212
|
+
access: "full";
|
|
213
|
+
combo: Combo;
|
|
214
|
+
fills: ComboFill[];
|
|
215
|
+
lifecycle: ComboLifecycleStats | null;
|
|
216
|
+
coverage: ComboCoverage;
|
|
217
|
+
};
|
|
218
|
+
export type ComboFill = {
|
|
219
|
+
/** Stable fill identity. */
|
|
220
|
+
id: string;
|
|
221
|
+
block_number: number;
|
|
222
|
+
log_index: number;
|
|
223
|
+
block_timestamp: string;
|
|
224
|
+
tx_hash: string;
|
|
225
|
+
/** Taker wallet address. */
|
|
226
|
+
trader: string | null;
|
|
227
|
+
trader_name: string | null;
|
|
228
|
+
trader_grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
229
|
+
/** Recorded wallet-wide trade time. */
|
|
230
|
+
last_traded_at: string | null;
|
|
231
|
+
action: "buy" | "sell";
|
|
232
|
+
/** Combo identifier: 0x followed by 62 lowercase hex characters. This differs from a binary market condition ID. */
|
|
233
|
+
condition_id: string;
|
|
234
|
+
/** 0 is YES, 1 is NO. */
|
|
235
|
+
outcome_index: number;
|
|
236
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
237
|
+
shares: string;
|
|
238
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
239
|
+
collateral_usdc: string;
|
|
240
|
+
/** Execution price for the traded outcome; null for a zero-share event. */
|
|
241
|
+
price: string | null;
|
|
242
|
+
/** Execution price normalized to YES. */
|
|
243
|
+
price_yes: string | null;
|
|
244
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
245
|
+
fee_usdc: string;
|
|
246
|
+
leg_count: number | null;
|
|
247
|
+
/** Result of the YES conjunction, independent of the wallet side or its P&L. */
|
|
248
|
+
status: "pending" | "won" | "lost" | "unknown";
|
|
249
|
+
status_reason: string | null;
|
|
250
|
+
won_legs: number;
|
|
251
|
+
/** Shares per dollar at execution; not a forecast or guaranteed return. */
|
|
252
|
+
payout_multiplier: string | null;
|
|
253
|
+
legs: ComboLeg[];
|
|
254
|
+
};
|
|
255
|
+
export type ComboFillsResponse = {
|
|
256
|
+
object: "list";
|
|
257
|
+
data: ComboFill[];
|
|
258
|
+
sort: "recent" | "largest" | "payout";
|
|
259
|
+
window: "24h" | "7d" | "all";
|
|
260
|
+
limit: number;
|
|
261
|
+
coverage: ComboCoverage;
|
|
262
|
+
/** A continuation is available based on page fullness. Its next page may be empty. */
|
|
263
|
+
has_more: boolean;
|
|
264
|
+
/** Exclusive block_number:log_index continuation for recent ordering. */
|
|
265
|
+
next_cursor?: string;
|
|
266
|
+
/** Continuation offset for largest or payout ordering. */
|
|
267
|
+
next_offset?: number;
|
|
268
|
+
meta: ResponseMeta;
|
|
269
|
+
/** Not computed for combo fill pages; omitted. */
|
|
270
|
+
total?: number;
|
|
271
|
+
};
|
|
272
|
+
export type ComboLeg = {
|
|
273
|
+
leg_index: number;
|
|
274
|
+
outcome_index: number;
|
|
275
|
+
module_id: number;
|
|
276
|
+
state: "pending" | "won" | "lost" | "void" | "unknown";
|
|
277
|
+
market: ComboLegMarket | null;
|
|
278
|
+
};
|
|
279
|
+
export type ComboLegMarket = {
|
|
280
|
+
/** Source of the leg facts. */
|
|
281
|
+
source: "markets" | "provider";
|
|
282
|
+
/** Full binary CTF condition ID for this leg. */
|
|
283
|
+
condition_id: string;
|
|
284
|
+
title: string | null;
|
|
285
|
+
slug: string | null;
|
|
286
|
+
event_slug: string | null;
|
|
287
|
+
/** Provider-resolved URL including the referral tag. */
|
|
288
|
+
polymarket_url?: string;
|
|
289
|
+
outcome_label: string | null;
|
|
290
|
+
image: string | null;
|
|
291
|
+
category: string | null;
|
|
292
|
+
/** Provider outcome index; negative sentinels describe void or unresolved states. */
|
|
293
|
+
winning_outcome: number | null;
|
|
294
|
+
resolved_at: string | null;
|
|
295
|
+
/** A closed market may still have no terminal outcome. */
|
|
296
|
+
market_closed: boolean | null;
|
|
297
|
+
/** Stored daily price for this leg outcome token; not a live quote. */
|
|
298
|
+
pick_price_daily: number | null;
|
|
299
|
+
/** Observation time of the stored daily price. */
|
|
300
|
+
pick_price_as_of: string | null;
|
|
301
|
+
/** Whole days since the stored daily bucket. */
|
|
302
|
+
pick_price_age_days: number | null;
|
|
303
|
+
/** Unmodified provider leg status when available. */
|
|
304
|
+
provider_leg_status: string | null;
|
|
305
|
+
};
|
|
306
|
+
export type ComboLifecycleStats = {
|
|
307
|
+
splits: number;
|
|
308
|
+
merges: number;
|
|
309
|
+
redeems: number;
|
|
310
|
+
compresses: number;
|
|
311
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
312
|
+
split_usdc: string;
|
|
313
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
314
|
+
merge_usdc: string;
|
|
315
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
316
|
+
redeemed_shares: string;
|
|
317
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
318
|
+
redeemed_usdc: string;
|
|
319
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
320
|
+
compressed_usdc: string;
|
|
321
|
+
last_event_at: string;
|
|
322
|
+
};
|
|
323
|
+
export type ComboLiveCount = {
|
|
324
|
+
/** Traded combos whose YES conjunction remains pending. */
|
|
325
|
+
count: number;
|
|
326
|
+
/** Time the count was computed; check its age before using it. */
|
|
327
|
+
computed_at: string;
|
|
328
|
+
};
|
|
329
|
+
export type ComboResponse = {
|
|
330
|
+
object: "combo";
|
|
331
|
+
data: ComboDetail;
|
|
332
|
+
meta: ResponseMeta;
|
|
333
|
+
};
|
|
334
|
+
/** Stored live combo count. Null means the first count is unavailable, never zero. */
|
|
335
|
+
export type CombosSummary = {
|
|
336
|
+
live: ComboLiveCount | null;
|
|
337
|
+
};
|
|
338
|
+
export type CombosSummaryResponse = {
|
|
339
|
+
object: "combos_summary";
|
|
340
|
+
data: CombosSummary;
|
|
341
|
+
meta: ResponseMeta;
|
|
342
|
+
};
|
|
343
|
+
export type ComboTotals = {
|
|
344
|
+
fills: number;
|
|
345
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
346
|
+
volume_usdc: string;
|
|
347
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
348
|
+
largest_fill_usdc: string;
|
|
349
|
+
first_fill_at: string;
|
|
350
|
+
last_fill_at: string;
|
|
351
|
+
/** Last taker execution normalized to YES; not a current quote. */
|
|
352
|
+
last_fill_price_yes: string | null;
|
|
353
|
+
last_fill_outcome_index: number;
|
|
354
|
+
last_fill_action: "buy" | "sell";
|
|
355
|
+
};
|
|
356
|
+
export type ComboWindowStats = {
|
|
357
|
+
fills: number;
|
|
358
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
359
|
+
volume_usdc: string;
|
|
360
|
+
distinct_traders: number;
|
|
361
|
+
/** Exact decimal string from the stored chain or SQL value; preserve precision until display. */
|
|
362
|
+
largest_fill_usdc: string;
|
|
363
|
+
};
|
|
174
364
|
export type ContentSearchResult = {
|
|
175
365
|
/** Backend-owned stable editorial content identifier. */
|
|
176
366
|
content_id: string;
|
|
@@ -391,6 +581,7 @@ export type ExploreGroup = {
|
|
|
391
581
|
category: string | null;
|
|
392
582
|
/** Markets in the event cluster, ranked by volume with condition_id as the tie-breaker. The selected representative is retained within the 12-market cap. */
|
|
393
583
|
markets: ExploreMarket[];
|
|
584
|
+
/** The volume of the group's highest-volume market, which is markets[0]: the same figure as that market's volume, Polymarket's cumulative taker volume in shares rather than cash. Null when unavailable. */
|
|
394
585
|
rep_volume: number | null;
|
|
395
586
|
/** Canonical key since #16304; rep_whales is its deprecated spelling, emitted beside it with the same value. */
|
|
396
587
|
rep_large_trades: number | null;
|
|
@@ -412,6 +603,7 @@ export type ExploreMarket = {
|
|
|
412
603
|
platform: "polymarket" | null;
|
|
413
604
|
/** closed once Polymarket has closed trading or the market has resolved; active otherwise. The same rule labels a market on markets/search, markets/explore and market/{condition_id}/snapshot. */
|
|
414
605
|
status: "active" | "closed";
|
|
606
|
+
/** Polymarket's traded-volume figure for the market, as last stored: cumulative taker volume in shares, each counted at its $1 settlement value, not the cash that changed hands (100 shares bought at $0.40 add 100, not 40). It can lag Polymarket's current figure. sort=volume orders by it. Null when unavailable. */
|
|
415
607
|
volume: number | null;
|
|
416
608
|
liquidity: number | null;
|
|
417
609
|
/** Canonical key since #16304 (Polymarket's noun is large trade); whale_trade_count is its deprecated spelling, emitted beside it with the same value. */
|
|
@@ -672,7 +864,7 @@ export type GameMarketProviderPrices = GameMarketPricePaired | GameMarketPriceIn
|
|
|
672
864
|
export type GamesCoverage = {
|
|
673
865
|
/** Canonical sport buckets served, sorted. */
|
|
674
866
|
sports: string[];
|
|
675
|
-
/** League tags served, sorted. */
|
|
867
|
+
/** League tags served, sorted. EuroLeague is euroleague under the Basketball sport bucket. */
|
|
676
868
|
leagues: string[];
|
|
677
869
|
/** Scopes whose source half was unavailable for this read, as <sport>:<half>. Empty means every scope answered. */
|
|
678
870
|
sources_unavailable: string[];
|
|
@@ -781,7 +973,7 @@ export type LargePosition = {
|
|
|
781
973
|
username?: string;
|
|
782
974
|
grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
783
975
|
win_rate?: number;
|
|
784
|
-
/**
|
|
976
|
+
/** The wallet's Total P&L in USD, the figure its 0xinsider profile shows: native Polymarket position P&L across all markets, fees included, plus credited maker and taker rebates. Distinct from this position's position_unrealized_pnl. Omitted when the wallet has no native accounting snapshot. */
|
|
785
977
|
pnl?: number;
|
|
786
978
|
markets_traded?: number;
|
|
787
979
|
};
|
|
@@ -824,7 +1016,7 @@ export type LargeTrade = {
|
|
|
824
1016
|
suspicion_score: number | null;
|
|
825
1017
|
/** Persisted scorer track. Null when a legacy row has no stored track label. */
|
|
826
1018
|
suspicion_track: "whale" | "fresh_conviction" | "sliced_position" | null;
|
|
827
|
-
/** This fill's size relative to its market: size_usd divided by
|
|
1019
|
+
/** This fill's size relative to its market: its share count (size_usd / price) divided by the shares the market has traded, Polymarket's recorded volume, which counts shares rather than dollars, as observed at or after the trade, so the value always falls between 0 and 1 inclusive. A 20,000-share fill is 0.00005 of a market that has traded 400M shares and 0.125 of one that has traded 160,000, which size_usd alone cannot distinguish. Absent when no volume figure recorded at or after the trade is available, or when that figure is smaller than the fill; never 0 as a stand-in and never capped at 1, because a denominator we cannot trust publishes nothing rather than a trimmed number. A market's volume keeps growing, so the same trade reports a smaller share as the market trades on. */
|
|
828
1020
|
market_volume_share?: number;
|
|
829
1021
|
trader: {
|
|
830
1022
|
id: string;
|
|
@@ -885,7 +1077,7 @@ export type LeaderboardEntry = {
|
|
|
885
1077
|
/** Hot-streak tier (trailing-7d cross-sectional percentile); a separate axis from the all-time grade. Omitted when there is no recent activity. */
|
|
886
1078
|
streak_tier?: "hot" | "rising" | "neutral" | "cooling" | "cold";
|
|
887
1079
|
score?: number;
|
|
888
|
-
/**
|
|
1080
|
+
/** Polymarket's all-time leaderboard P&L in USD, from Polymarket's latest observation of this wallet on its all-time leaderboard (dated by the leaderboard_pnl data_quality group). Omitted when that leaderboard has no current observation ranking the wallet; 0xinsider requests one, and never serves an older stored figure in its place. Includes unrealized open positions. Kept for back-compat. Not the profile's Total P&L, which GET /api/v1/trader/{address} serves as pnl.net_total; the two can differ by a wide margin. Prefer realized_pnl for the banked figure. */
|
|
889
1081
|
pnl?: number;
|
|
890
1082
|
/** Native realized P&L plus credited maker and taker rebates in USD, with fees already included. The exact numeric value is truncated toward zero to cents before JSON conversion. Wallets without a native snapshot retain their historical stored realized P&L. Omitted when the native snapshot has no net realized value. */
|
|
891
1083
|
realized_pnl?: number;
|
|
@@ -1109,9 +1301,13 @@ export type MarketSnapshot = {
|
|
|
1109
1301
|
})[];
|
|
1110
1302
|
liquidity: {
|
|
1111
1303
|
source: string;
|
|
1304
|
+
/** Polymarket's traded-volume figure for the market, as last stored: cumulative taker volume in shares, each counted at its $1 settlement value, not the cash that changed hands (100 shares bought at $0.40 add 100, not 40). It can lag Polymarket's current figure. The name ends in _usd because Polymarket prints this figure with a dollar sign; it is a share count. Null when unavailable. */
|
|
1112
1305
|
volume_usd: number | null;
|
|
1113
1306
|
liquidity_usd: number | null;
|
|
1307
|
+
/** Polymarket's taker volume over the 24 hours before volume_24h_as_of, in shares, each counted at its $1 settlement value, not the cash that changed hands (100 shares bought at $0.40 add 100, not 40). The name ends in _usd because Polymarket prints volume with a dollar sign; it is a share count. Null when Polymarket does not report one: it omits the figure on closed markets and on open markets with no trades in the last 24 hours. */
|
|
1114
1308
|
volume_24h_usd: number | null;
|
|
1309
|
+
/** When 0xinsider read volume_24h_usd from Polymarket; the figure covers the 24 hours before this time. Null exactly when volume_24h_usd is null. */
|
|
1310
|
+
volume_24h_as_of: string | null;
|
|
1115
1311
|
/** Always null. Polymarket snapshot prices come from outcome top-of-book midpoints. */
|
|
1116
1312
|
last_price: number | null;
|
|
1117
1313
|
};
|
|
@@ -1264,7 +1460,7 @@ export type PickOfTheDay = {
|
|
|
1264
1460
|
matchup?: string;
|
|
1265
1461
|
/** Recorded canonical sport category. Prefer display_category for the public competition label. */
|
|
1266
1462
|
category?: string;
|
|
1267
|
-
/** Frozen public presentation category
|
|
1463
|
+
/** Frozen public presentation category. Tennis uses the provider-verified ATP or WTA tour, including Wimbledon and doubles; unknown tours retain Tennis. Every men's and women's cricket competition uses Cricket. Other sports use the curated league, esports title or soccer competition label, then the provider series name without its season year, then category when no competition is known. The canonical category and measured cohort are unchanged: an esports title still uses the pooled Esports category. Optional for mixed-version client compatibility. */
|
|
1268
1464
|
display_category?: string;
|
|
1269
1465
|
/** Provider platform. Always polymarket. */
|
|
1270
1466
|
platform?: "polymarket";
|
|
@@ -1369,8 +1565,6 @@ export type PickOfTheDay = {
|
|
|
1369
1565
|
display_holders?: PickHolder[];
|
|
1370
1566
|
/** S/A holder count for the public V1 compatibility projection. display_holders can include additional grades. */
|
|
1371
1567
|
holder_count?: number;
|
|
1372
|
-
/** Optional editorial note attached to the pick. */
|
|
1373
|
-
editorial_note?: string;
|
|
1374
1568
|
/** Required truthful thesis. With at least one profitable-wallet holder: Profitable wallets hold {pick_outcome_label}[, led by a grade-{top_grade} trader]. Without holder backing: 0xInsider's Pick of the Day is {pick_outcome_label}. Wallet counts are not appended. */
|
|
1375
1569
|
thesis?: string;
|
|
1376
1570
|
/** Canonical web market URL. */
|
|
@@ -1448,7 +1642,7 @@ export type PickOfTheDayArchiveEntry = {
|
|
|
1448
1642
|
matchup?: string;
|
|
1449
1643
|
/** Frozen canonical calibration/report bucket (e.g. "Basketball", "MMA", or "Soccer"). Existing semantics are unchanged; presentation consumers should prefer display_category when present. */
|
|
1450
1644
|
category?: string;
|
|
1451
|
-
/** Frozen public presentation category
|
|
1645
|
+
/** Frozen public presentation category. Tennis uses the provider-verified ATP or WTA tour, including Wimbledon and doubles; unknown tours retain Tennis. Every men's and women's cricket competition uses Cricket. Other sports use the curated league, esports title or soccer competition label, then the provider series name without its season year, then category when no competition is known. The canonical category and measured cohort are unchanged: an esports title still uses the pooled Esports category. Optional for mixed-version client compatibility. */
|
|
1452
1646
|
display_category?: string;
|
|
1453
1647
|
/** Provider (Polymarket Gamma) market thumbnail URL (markets.image); omitted (not null) when the market has no image. Public regardless of the backed-side gate, so present for pending rows too. */
|
|
1454
1648
|
image_url?: string;
|
|
@@ -1891,8 +2085,9 @@ export type Position = {
|
|
|
1891
2085
|
address: string;
|
|
1892
2086
|
username?: string;
|
|
1893
2087
|
grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
1894
|
-
/**
|
|
2088
|
+
/** Win rate as a ratio from 0 to 1 (0.62 means 62%), the same scale as stats.win_rate on GET /api/v1/trader/{address}. Absent when unknown. */
|
|
1895
2089
|
win_rate?: number;
|
|
2090
|
+
/** The wallet's Total P&L in USD, the figure its 0xinsider profile shows: native Polymarket position P&L across all markets, fees included, plus credited maker and taker rebates (trader_trading_pnl.net_total_pnl). Not the Polymarket leaderboard figure, which GET /api/v1/trader/{address} still serves as pnl.total. Omitted when the wallet has no native accounting snapshot; the leaderboard figure is never substituted. */
|
|
1896
2091
|
pnl?: number;
|
|
1897
2092
|
markets?: number;
|
|
1898
2093
|
wallet_age_days?: number;
|
|
@@ -1929,7 +2124,7 @@ export type PositionTimelineEvent = {
|
|
|
1929
2124
|
id: string;
|
|
1930
2125
|
/** ISO 8601 timestamp of the on-chain fill. */
|
|
1931
2126
|
event_timestamp: string;
|
|
1932
|
-
/**
|
|
2127
|
+
/** The wallet's own side of this fill: buy or sell. */
|
|
1933
2128
|
action: "buy" | "sell";
|
|
1934
2129
|
outcome_side: "yes" | "no";
|
|
1935
2130
|
/** The Polymarket CLOB token id (ERC1155 asset id, decimal string) for this outcome; null when unavailable (e.g. unsynced markets). */
|
|
@@ -1970,7 +2165,7 @@ export type PotdEntryAuthorization = {
|
|
|
1970
2165
|
/** Original authorization expiry at the earlier requested or provider kickoff; never extended. An expired authorization cannot authorize a new automated entry. */
|
|
1971
2166
|
expires_at: string;
|
|
1972
2167
|
};
|
|
1973
|
-
/** One ranked pre-game sports market where graded sharp money is piled on one side, with required-status
|
|
2168
|
+
/** One ranked pre-game sports market where graded sharp money is piled on one side, with required-status category evidence from partial forward-observed Polymarket fills. */
|
|
1974
2169
|
export type PreGameSide = {
|
|
1975
2170
|
/** The side profitable wallets hold, as a provider-backed display label. Canonical spelling of piled_side (#16310), same value: when provider group context is unavailable it may remain a bare Yes/No/Over/Under, so do not use it alone as participant identity. */
|
|
1976
2171
|
side: string | null;
|
|
@@ -2023,7 +2218,7 @@ export type PreGameSide = {
|
|
|
2023
2218
|
* @deprecated
|
|
2024
2219
|
*/
|
|
2025
2220
|
smart_score: number | null;
|
|
2026
|
-
/**
|
|
2221
|
+
/** Polymarket's traded-volume figure for the market: cumulative taker volume in shares, the number Polymarket's market pages print with a dollar sign. Each share counts at its $1 settlement value, so this is not the cash that changed hands: 100 shares bought at $0.40 add 100, not 40. Null when unavailable. */
|
|
2027
2222
|
volume: number | null;
|
|
2028
2223
|
/** Aggregate recent flow direction on the market; null when unavailable. */
|
|
2029
2224
|
net_side: "BUY" | "SELL" | null;
|
|
@@ -2046,7 +2241,7 @@ export type PreGameSide = {
|
|
|
2046
2241
|
/** 1-based rank within the (min_grade-filtered) ranked result. */
|
|
2047
2242
|
rank: number;
|
|
2048
2243
|
};
|
|
2049
|
-
/**
|
|
2244
|
+
/** Category evidence over the full uncapped piled-side S/A/B holder allocation. It never changes signal membership, ordering, routing, or sizing. */
|
|
2050
2245
|
export type PreGameSideCategorySkill = {
|
|
2051
2246
|
status: "live" | "insufficient" | "stale" | "unknown" | "degraded";
|
|
2052
2247
|
model_version: string;
|
|
@@ -2128,7 +2323,7 @@ export type PreGameSideObservation = {
|
|
|
2128
2323
|
* @deprecated
|
|
2129
2324
|
*/
|
|
2130
2325
|
smart_score: number;
|
|
2131
|
-
/** Strictly positive stored market volume in
|
|
2326
|
+
/** Strictly positive stored market volume: Polymarket's cumulative taker volume in shares, each counted at its $1 settlement value rather than the cash that changed hands (the same figure as volume on GET /api/v1/sports/pre-game-sides). Missing, zero, or non-finite volume terminates as invalid_market and is never emitted as an observation. */
|
|
2132
2327
|
volume: number;
|
|
2133
2328
|
/**
|
|
2134
2329
|
* Recorded conviction score; higher values indicate stronger conviction.
|
|
@@ -2167,8 +2362,8 @@ export type PreGameSideSportFunnelReport = {
|
|
|
2167
2362
|
board_upcoming_available: boolean;
|
|
2168
2363
|
/** Why the upcoming-board source is (un)available. Board supply is one canonical-sport union: the bare category owns live truth and every configured composed league scope contributes upcoming rows; folded leagues without a configured board (currently NCAAB and CFL) are not in the upcoming union. available: every configured scope completed truthfully (a successful empty schedule still counts). capacity_limited: provider pagination or a configured upcoming cache published an intentionally bounded complete-event prefix; those rows are excluded from diagnostic-universe input and must not be treated as a complete upcoming universe. Cache-bound prefixes are limited to 3,000 rows or an exact 5,000,000-byte final envelope. source_unavailable: composition failed before a truthful union; resolved scope readers turn half failures into cold_unavailable, so fresh producers are whole-union identity reconciliation or a registry contract failure and carry zero rows. cold_unavailable: every scope completed but at least one reported its upcoming half unavailable because no servable entry was inside the stale-serve bound and the background warm did not land in time; it is not by itself proof of a provider outage. deadline_unavailable: an internal configured-scope deadline or the outer bounded fair wave expired. An internal deadline may retain healthy bare-category or sibling-scope rows; the outer wave records zero rows. These upcoming fields do not describe league live-membership availability. If the bare-category live scope fails, all live rows are dropped even when a league scope completed, because the bare category is the sole live-truth owner. not_configured: no upcoming scope applies to the sport. unknown: exactly one cause -- a snapshot cached before this field existed whose legacy flags recorded an unavailable-but-configured half without saying why. Every freshly computed snapshot reports a concrete status, and a legacy available or not-configured row is reconstructed exactly, so unknown self-clears within one TTL. board_upcoming_available is exactly board_upcoming_status == available. */
|
|
2169
2364
|
board_upcoming_status: "unknown" | "not_configured" | "available" | "capacity_limited" | "source_unavailable" | "cold_unavailable" | "deadline_unavailable";
|
|
2170
|
-
/** Configured upcoming scopes that did not complete as available. Values are category, a provider league tag slug (nfl, cfb, nba, wnba, nhl, mls, valorant, league-of-legends, counter-strike-2, or dota-2), registry when the compiled scope/projection contract drifted, union when cross-scope identity reconciliation failed, or wave when the outer fair-wave deadline expired before scope-level evidence returned. Empty means no unavailable upcoming scope was identified; this includes healthy/not-configured rows and a legacy cached row. Observation league scopes are upcoming-only and perform no live-membership read. */
|
|
2171
|
-
board_upcoming_unavailable_scopes: ("category" | "nfl" | "cfb" | "nba" | "wnba" | "nhl" | "mls" | "valorant" | "league-of-legends" | "counter-strike-2" | "dota-2" | "registry" | "union" | "wave")[];
|
|
2365
|
+
/** Configured upcoming scopes that did not complete as available. Values are category, a provider league tag slug (nfl, cfb, nba, wnba, euroleague-basketball, nhl, mls, valorant, league-of-legends, counter-strike-2, or dota-2), registry when the compiled scope/projection contract drifted, union when cross-scope identity reconciliation failed, or wave when the outer fair-wave deadline expired before scope-level evidence returned. Empty means no unavailable upcoming scope was identified; this includes healthy/not-configured rows and a legacy cached row. Observation league scopes are upcoming-only and perform no live-membership read. */
|
|
2366
|
+
board_upcoming_unavailable_scopes: ("category" | "nfl" | "cfb" | "nba" | "wnba" | "euroleague-basketball" | "nhl" | "mls" | "valorant" | "league-of-legends" | "counter-strike-2" | "dota-2" | "registry" | "union" | "wave")[];
|
|
2172
2367
|
/** Stored-universe rows plus provider-board rows missing from storage. */
|
|
2173
2368
|
input: number;
|
|
2174
2369
|
/** Sparse counts over the closed 25-value terminal vocabulary: outside_horizon, resolved, provider_closed, provider_excluded, invalid_market, missing_token, missing_stored_market, not_provider_live, board_source_unavailable, board_deadline_unavailable, primary_slate_candidate, zero_indexed_holder_research, capacity_limited, provider_unavailable, holder_deadline_unavailable, holder_computation_unavailable, holder_scan_incomplete, no_current_graded_holder, split_holder_pile, price_unavailable, wider_holder_emitted, in_play_emitted, in_play_stale_observed, in_play_directional_unavailable, or internal_unclassified. primary_slate_candidate means exact admission by the funded route's raw shared signals query before provider/holder enrichment; recent-flow rows rejected by its event, bucket, or total caps remain eligible for wider_holder measurement. capacity_limited is intentional bounded provider-work admission, is fully accounted here, and does not itself set degraded=true. board_source_unavailable means a completed board source was unavailable; board_deadline_unavailable means live-board work missed either an internal configured-scope deadline or the outer fair-wave deadline; provider_unavailable means an attempted holder-provider read failed; holder_deadline_unavailable means holder cache/provider work missed the absolute request deadline; holder_computation_unavailable means post-holder provider or DB-backed price/metadata evaluation was unavailable. */
|
|
@@ -2325,7 +2520,7 @@ export type ResponseMeta = {
|
|
|
2325
2520
|
};
|
|
2326
2521
|
/** SHA-256 of the funded signal membership/order/rank/cursor vector immediately before category-skill enrichment. Sports-edge-signals only. */
|
|
2327
2522
|
category_skill_base_payload_hash?: string;
|
|
2328
|
-
/** Independent SHA-256 recomputation over the same base fields immediately after category-skill enrichment. Equality with category_skill_base_payload_hash proves
|
|
2523
|
+
/** Independent SHA-256 recomputation over the same base fields immediately after category-skill enrichment. Equality with category_skill_base_payload_hash proves category-skill enrichment did not change funded inputs. Sports-edge-signals only. */
|
|
2329
2524
|
category_skill_enriched_base_payload_hash?: string;
|
|
2330
2525
|
};
|
|
2331
2526
|
/** An entitled same-day pick selected but not yet released: stable rank and backend-owned release/kickoff instants. No matchup, category, platform, side, price, or holder fields appear before release. Unauthorized scheduled ranks appear only in locked_picks. */
|
|
@@ -2505,7 +2700,10 @@ export type Trader = {
|
|
|
2505
2700
|
forecast_evidence?: number;
|
|
2506
2701
|
rank?: number;
|
|
2507
2702
|
pnl: {
|
|
2703
|
+
/** Polymarket's all-time leaderboard P&L in USD, from Polymarket's latest observation of this wallet on its all-time leaderboard (dated by the leaderboard_pnl data_quality group). Omitted when that leaderboard has no current observation ranking the wallet; 0xinsider requests one, and never serves an older stored figure in its place. Kept for provider parity and back-compat. Not the profile's Total P&L and not realized plus unrealized: it can differ from net_total by a wide margin. Read net_total for the figure the 0xinsider profile shows. */
|
|
2508
2704
|
total?: number;
|
|
2705
|
+
/** The profile's Total P&L in USD: native Polymarket position P&L, with fees already included, plus credited maker and taker rebates (trader_trading_pnl.net_total_pnl). The same figure the 0xinsider profile, search, live feed, portfolio and watchlist show. Truncated toward zero to cents before conversion to a JSON number. Omitted when the wallet has no native accounting snapshot; pnl.total is never substituted. */
|
|
2706
|
+
net_total?: number;
|
|
2509
2707
|
/** For pnl.realized, expand=trust marks a matching native accounting snapshot as computed: native Polymarket realized P&L plus credited maker and taker rebates, with fees already included. The exact numeric value is truncated toward zero to cents before conversion to a JSON number. Without a matching native accounting snapshot, pnl.realized is omitted and its trust metadata is unavailable. Raw total P&L is never substituted for realized P&L. */
|
|
2510
2708
|
realized?: number;
|
|
2511
2709
|
unrealized?: number;
|
|
@@ -2537,7 +2735,7 @@ export type Trader = {
|
|
|
2537
2735
|
quant_metrics?: {
|
|
2538
2736
|
/** Trader smart score on a 0..100 display scale; higher is stronger. Null when unavailable. */
|
|
2539
2737
|
smart_score: number | null;
|
|
2540
|
-
/** Copyability score, 0-100. Same base as smart_score minus penalties for traits that make a strategy hard to replicate: -20 if fewer than 50 markets traded, -15 if positions are highly concentrated, -15 if position sizing exceeds about 2x Kelly, -10 if the
|
|
2738
|
+
/** Copyability score, 0-100. Same base as smart_score minus penalties for traits that make a strategy hard to replicate: -20 if fewer than 50 markets traded, -15 if positions are highly concentrated, -15 if position sizing exceeds about 2x Kelly, -10 if the largest loss on one settled market exceeds 30% of the capital the wallet deployed across all its positions, -10 if edge is inconsistent; result clamped to 0-100. Higher means easier to follow. null when insufficient history. */
|
|
2541
2739
|
copy_score: number | null;
|
|
2542
2740
|
/** Sharpe ratio over the trailing 30 days (risk-adjusted return; higher is better). Magnitude can be large for small samples. null when insufficient history. */
|
|
2543
2741
|
sharpe_30d: number | null;
|
|
@@ -2558,7 +2756,7 @@ export type Trader = {
|
|
|
2558
2756
|
synced_at?: string;
|
|
2559
2757
|
/** synced, unknown, or pending. */
|
|
2560
2758
|
sync_status?: string;
|
|
2561
|
-
/** Data age and coverage for this trader body. Always present. Its
|
|
2759
|
+
/** Data age and coverage for this trader body. Always present. Its six groups are sync (traders.last_synced, covering pnl.net_total, pnl.realized, stats.markets_traded, stats.win_rate, stats.daily_win_rate, last_active, synced_at and sync_status), ranking (trader_rankings.computed_at, covering grade, score, streak_tier, forecast_score and forecast_evidence), leaderboard_rank (leaderboard_rank_refresh_state.completed_at, the completion time of the latest fully completed global rank refresh, covering rank), volume (trader_usd_volume.observed_at, covering stats.total_volume) and positions (trader_position_snapshots.last_refreshed_at with traders.last_synced as fallback, covering pnl.unrealized, the open-position aggregate) and leaderboard_pnl (trader_profile_provider_snapshots.observed_at, covering pnl.total: unavailable when Polymarket's all-time leaderboard has no current observation ranking the wallet). The positions clock is the latest successful /positions snapshot when one exists, otherwise the last completed trader sync; it does not date closed or native accounting values. A rank or position value remains unknown or unavailable when its clock or value is absent. For an unknown wallet every group is unavailable. If the open-position read itself fails, positions is unavailable with a reason that says so, pnl.unrealized is absent, and the body is answered fresh (meta.cached false) and is not kept for later callers. */
|
|
2562
2760
|
data_quality: DataQuality;
|
|
2563
2761
|
/** Field-level trust metadata. Present only when expand=trust or expand[]=trust is requested. */
|
|
2564
2762
|
trust?: TraderTrust;
|
|
@@ -2921,6 +3119,7 @@ export type TraderStatsExact = {
|
|
|
2921
3119
|
export type TraderTrust = {
|
|
2922
3120
|
total_pnl: TrustMetadata;
|
|
2923
3121
|
realized_pnl: TrustMetadata;
|
|
3122
|
+
net_total_pnl: TrustMetadata;
|
|
2924
3123
|
unrealized_pnl: TrustMetadata;
|
|
2925
3124
|
markets_traded: TrustMetadata;
|
|
2926
3125
|
win_rate: TrustMetadata;
|
|
@@ -2965,6 +3164,7 @@ export type TrendingWallet = {
|
|
|
2965
3164
|
grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
2966
3165
|
/** Hot-streak tier (trailing-7d cross-sectional percentile). Omitted when there is no recent activity. */
|
|
2967
3166
|
streak_tier?: "hot" | "rising" | "neutral" | "cooling" | "cold";
|
|
3167
|
+
/** The wallet's all-time Total P&L in USD, the figure its 0xinsider profile shows: native Polymarket position P&L across all markets, fees included, plus credited maker and taker rebates (trader_trading_pnl.net_total_pnl). Context only: it does not affect the ranking, which follows trending_pnl_usd. Omitted when the wallet is not in the 0xinsider database or has no native accounting snapshot; the Polymarket leaderboard all-time figure is never substituted. */
|
|
2968
3168
|
all_time_pnl_usd?: number;
|
|
2969
3169
|
all_time_score?: number;
|
|
2970
3170
|
last_synced?: string;
|
|
@@ -3421,6 +3621,8 @@ export interface OperationData {
|
|
|
3421
3621
|
scopes: string[] | null;
|
|
3422
3622
|
};
|
|
3423
3623
|
getApiDiscovery: ApiDiscovery;
|
|
3624
|
+
getCombo: ComboDetail;
|
|
3625
|
+
getCombosSummary: CombosSummary;
|
|
3424
3626
|
getCoverage: Platforms;
|
|
3425
3627
|
getDailyReportSnapshot: ReportSnapshot;
|
|
3426
3628
|
getEventReplaySince: EventReplayEvent[];
|
|
@@ -3613,6 +3815,7 @@ export interface OperationData {
|
|
|
3613
3815
|
filters: WhaleDatasetFilters;
|
|
3614
3816
|
};
|
|
3615
3817
|
getWhaleTrade: LargeTradeDetail;
|
|
3818
|
+
listComboFills: ComboFill[];
|
|
3616
3819
|
listGames: Game[];
|
|
3617
3820
|
listInsiderRadar: SuspiciousTrade[];
|
|
3618
3821
|
listLargePositions: LargePosition[];
|
|
@@ -3779,6 +3982,8 @@ export interface OperationQuery {
|
|
|
3779
3982
|
};
|
|
3780
3983
|
getAccountIdentity: Record<string, never>;
|
|
3781
3984
|
getApiDiscovery: Record<string, never>;
|
|
3985
|
+
getCombo: Record<string, never>;
|
|
3986
|
+
getCombosSummary: Record<string, never>;
|
|
3782
3987
|
getCoverage: Record<string, never>;
|
|
3783
3988
|
getDailyReportSnapshot: {
|
|
3784
3989
|
/** UTC report date in YYYY-MM-DD format, from 2024-03-01 (the first day report data covers) through tomorrow UTC. Any other date returns 400 bad_request with error.param=date. */
|
|
@@ -3933,10 +4138,34 @@ export interface OperationQuery {
|
|
|
3933
4138
|
};
|
|
3934
4139
|
getWhaleDatasetStatus: Record<string, never>;
|
|
3935
4140
|
getWhaleTrade: Record<string, never>;
|
|
4141
|
+
listComboFills: {
|
|
4142
|
+
/** CSV of pending, won, or lost; all clears the filter. Unknown results appear only in unfiltered lists. */
|
|
4143
|
+
result?: string;
|
|
4144
|
+
/** CSV of 2, 3, 4, or 5+; all clears the filter. A combo matches any named pick count. */
|
|
4145
|
+
legs?: string;
|
|
4146
|
+
/** Minimum collateral in whole USDC. */
|
|
4147
|
+
min_stake?: number;
|
|
4148
|
+
/** 0 disables the filter; otherwise use 2..1000000. Minimum shares per dollar at execution. */
|
|
4149
|
+
min_multiplier?: number;
|
|
4150
|
+
/** CSV of S, A, B, C, D, F; all clears the filter. Ungraded wallets do not match. */
|
|
4151
|
+
grades?: string;
|
|
4152
|
+
/** CSV of nfl, ncaaf, nba, wnba, baseball, hockey, soccer, tennis, table-tennis, esports, mma, boxing, golf, cricket, f1, pickleball; all clears the filter. Matches when any leg belongs to a selected sport. */
|
|
4153
|
+
sports?: string;
|
|
4154
|
+
/** Recent is newest first; largest ranks collateral; payout ranks buy-fill shares and excludes sells. */
|
|
4155
|
+
sort?: "recent" | "largest" | "payout";
|
|
4156
|
+
/** Defaults to all for recent and 24h for largest or payout. */
|
|
4157
|
+
window?: "24h" | "7d" | "all";
|
|
4158
|
+
/** Page size. Integer values outside the range are clamped to 1..200. */
|
|
4159
|
+
limit?: number;
|
|
4160
|
+
/** Exclusive block_number:log_index cursor for recent only; send the returned next_cursor unchanged. */
|
|
4161
|
+
cursor?: string;
|
|
4162
|
+
/** Offset for ranked largest or payout ordering; use returned next_offset. */
|
|
4163
|
+
offset?: number;
|
|
4164
|
+
};
|
|
3936
4165
|
listGames: {
|
|
3937
4166
|
/** Canonical sport bucket, case-insensitive, with - and _ read as a space: table-tennis and Table Tennis are the same bucket. Omit for every covered sport. A bucket this deployment does not serve returns an empty page. */
|
|
3938
4167
|
sport?: string;
|
|
3939
|
-
/** League tag, case-insensitive, as coverage.leagues spells it: nfl, epl, cs2. Omit for every league inside the selected sports. */
|
|
4168
|
+
/** League tag, case-insensitive, as coverage.leagues spells it: nfl, epl, cs2, euroleague. EuroLeague games use sport=Basketball and league=euroleague. Omit for every league inside the selected sports. */
|
|
3940
4169
|
league?: string;
|
|
3941
4170
|
/** Keep only games in this state. A value outside the enum returns an empty page. */
|
|
3942
4171
|
status?: "scheduled" | "live" | "paused" | "ended" | "postponed" | "cancelled" | "suspended" | "delayed" | "unknown";
|
|
@@ -4060,7 +4289,7 @@ export interface OperationQuery {
|
|
|
4060
4289
|
min_size?: number;
|
|
4061
4290
|
/** Exact match against provider-backed market_canonical.category. */
|
|
4062
4291
|
category?: string;
|
|
4063
|
-
/** Scope to one market. Accepts the raw provider condition_id or the mkt_-prefixed market id emitted by V1 responses. Combine with min_size=0 for every reconciled position in that market; an unknown id returns []. */
|
|
4292
|
+
/** Scope to one market. Accepts the raw provider condition_id or the mkt_-prefixed market id emitted by V1 responses. Combine with min_size=0 for every reconciled position in that market; an unknown id or a resolved market returns []. */
|
|
4064
4293
|
condition_id?: string;
|
|
4065
4294
|
/** Scope to one wallet or a book of wallets (repeatable, up to 25 per request; comma-separated values inside one occurrence also work). Each value is a wallet address, a known username, or a trd_-prefixed trader id, resolved like /api/v1/trader/{address}. The response keeps the board's order and cursor, so pages of a book interleave wallets by current_value_usd. An address this API has never tracked returns its mirror rows or an empty list; a username or trader id that resolves to nothing is a 404 naming wallet; more than 25 values is a 400. min_size defaults to 0 when wallet is present. */
|
|
4066
4295
|
wallet?: string[];
|
|
@@ -4302,6 +4531,11 @@ export interface OperationPath {
|
|
|
4302
4531
|
exploreMarkets: Record<string, never>;
|
|
4303
4532
|
getAccountIdentity: Record<string, never>;
|
|
4304
4533
|
getApiDiscovery: Record<string, never>;
|
|
4534
|
+
getCombo: {
|
|
4535
|
+
/** Combo identifier: 0x followed by 62 lowercase hex characters. This differs from a binary market condition ID. */
|
|
4536
|
+
condition_id: string;
|
|
4537
|
+
};
|
|
4538
|
+
getCombosSummary: Record<string, never>;
|
|
4305
4539
|
getCoverage: Record<string, never>;
|
|
4306
4540
|
getDailyReportSnapshot: Record<string, never>;
|
|
4307
4541
|
getEventReplaySince: Record<string, never>;
|
|
@@ -4417,6 +4651,7 @@ export interface OperationPath {
|
|
|
4417
4651
|
/** Raw whale_alerts.id or wt_-prefixed whale trade id. */
|
|
4418
4652
|
id: string;
|
|
4419
4653
|
};
|
|
4654
|
+
listComboFills: Record<string, never>;
|
|
4420
4655
|
listGames: Record<string, never>;
|
|
4421
4656
|
listInsiderRadar: Record<string, never>;
|
|
4422
4657
|
listLargePositions: Record<string, never>;
|
|
@@ -4534,6 +4769,8 @@ export interface OperationBody {
|
|
|
4534
4769
|
exploreMarkets: never;
|
|
4535
4770
|
getAccountIdentity: never;
|
|
4536
4771
|
getApiDiscovery: never;
|
|
4772
|
+
getCombo: never;
|
|
4773
|
+
getCombosSummary: never;
|
|
4537
4774
|
getCoverage: never;
|
|
4538
4775
|
getDailyReportSnapshot: never;
|
|
4539
4776
|
getEventReplaySince: never;
|
|
@@ -4572,6 +4809,7 @@ export interface OperationBody {
|
|
|
4572
4809
|
getWeeklyReportSnapshot: never;
|
|
4573
4810
|
getWhaleDatasetStatus: never;
|
|
4574
4811
|
getWhaleTrade: never;
|
|
4812
|
+
listComboFills: never;
|
|
4575
4813
|
listGames: never;
|
|
4576
4814
|
listInsiderRadar: never;
|
|
4577
4815
|
listLargePositions: never;
|
|
@@ -4687,6 +4925,8 @@ export interface OperationResponse {
|
|
|
4687
4925
|
data: OperationData["getApiDiscovery"];
|
|
4688
4926
|
meta: ResponseMeta;
|
|
4689
4927
|
};
|
|
4928
|
+
getCombo: ComboResponse;
|
|
4929
|
+
getCombosSummary: CombosSummaryResponse;
|
|
4690
4930
|
getCoverage: {
|
|
4691
4931
|
object: "platforms";
|
|
4692
4932
|
data: OperationData["getCoverage"];
|
|
@@ -4873,6 +5113,7 @@ export interface OperationResponse {
|
|
|
4873
5113
|
data: OperationData["getWhaleTrade"];
|
|
4874
5114
|
meta: ResponseMeta;
|
|
4875
5115
|
};
|
|
5116
|
+
listComboFills: ComboFillsResponse;
|
|
4876
5117
|
listGames: {
|
|
4877
5118
|
object: "list";
|
|
4878
5119
|
data: OperationData["listGames"];
|