@0xinsider/mcp 3.12.0 → 3.13.0
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/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/product-cli/client.js +1 -1
- package/dist/product-cli/operations.d.ts +2 -1
- package/dist/product-cli/operations.d.ts.map +1 -1
- package/dist/product-cli/operations.js +6 -3
- package/dist/product-cli/operations.js.map +1 -1
- package/dist/sdk/client.d.ts +4 -3
- package/dist/sdk/client.d.ts.map +1 -1
- package/dist/sdk/client.js.map +1 -1
- package/dist/sdk/schema.d.ts +150 -12
- package/dist/sdk/schema.d.ts.map +1 -1
- package/dist/sdk/stream.d.ts +18 -2
- package/dist/sdk/stream.d.ts.map +1 -1
- package/dist/sdk/stream.js +5 -1
- package/dist/sdk/stream.js.map +1 -1
- package/dist/tools/get-whale-trades.d.ts.map +1 -1
- package/dist/tools/get-whale-trades.js +9 -4
- package/dist/tools/get-whale-trades.js.map +1 -1
- package/dist/tools/pick-of-the-day.js +6 -6
- package/dist/tools/pick-of-the-day.js.map +1 -1
- package/dist/tools/read-parity.d.ts.map +1 -1
- package/dist/tools/read-parity.js +14 -6
- package/dist/tools/read-parity.js.map +1 -1
- package/package.json +1 -1
package/dist/sdk/schema.d.ts
CHANGED
|
@@ -1001,6 +1001,7 @@ export type EventReplayMeta = {
|
|
|
1001
1001
|
condition_id?: string;
|
|
1002
1002
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
1003
1003
|
min_size?: number;
|
|
1004
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
1004
1005
|
};
|
|
1005
1006
|
/** The expansions applied to every event on this page; empty when none. */
|
|
1006
1007
|
expand: "trade"[];
|
|
@@ -1812,7 +1813,7 @@ export type LargeTradeInsertedV2Data = {
|
|
|
1812
1813
|
trader_id: number;
|
|
1813
1814
|
/** Address of the wallet that made the trade. */
|
|
1814
1815
|
wallet: string;
|
|
1815
|
-
/** The wallet's grade when the event was published; `null` when it has none. */
|
|
1816
|
+
/** The wallet's grade when the event was published; `null` when it has none. A backfilled trade publishes hours after it filled, so this can differ from `grade_at_trade`. `min_grade` filters on this field; `min_grade_at_trade` filters on `grade_at_trade`. */
|
|
1816
1817
|
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
1817
1818
|
/** USD notional of the trade; decimal string. */
|
|
1818
1819
|
size_usd: string;
|
|
@@ -1826,20 +1827,26 @@ export type LargeTradeInsertedV2Data = {
|
|
|
1826
1827
|
/** When the trade filled on Polymarket. The envelope's `created_at` is this instant. */
|
|
1827
1828
|
traded_at: string;
|
|
1828
1829
|
platform: "polymarket";
|
|
1830
|
+
/** The grade the wallet held when the trade filled, the same fact as `trader.grade_at_trade` on `GET /api/v1/large-trades`; `null` unless `grade_at_trade_status` is `graded`. `min_grade_at_trade` filters on it. */
|
|
1831
|
+
grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
1832
|
+
/** `graded` when `grade_at_trade` holds the grade at the fill; `ungraded` when the wallet had no grade then; `unknown` when it cannot be known, for a trade before 2026-09-19 23:00 UTC or while a grade change is unconfirmed. Only `graded` trades match `min_grade_at_trade`. An event published before these fields shipped (November 2026), or a redelivery of one, carries neither. */
|
|
1833
|
+
grade_at_trade_status?: "graded" | "ungraded" | "unknown";
|
|
1829
1834
|
};
|
|
1830
1835
|
/** `large_trades_inserted` data (Pro and Max): new large trades were ingested. It carries a count and no trade; subscribe to `large_trade_inserted_v2` for the trade itself. The deprecated spelling `whale_trades_inserted` delivers the same object until its sunset on 2027-02-01 (#29352). */
|
|
1831
1836
|
export type LargeTradesInsertedData = {
|
|
1832
1837
|
/** Large trades the producing batch admitted. */
|
|
1833
1838
|
count: number;
|
|
1834
1839
|
};
|
|
1835
|
-
/** All present fields narrow large_trade_inserted_v2 delivery.
|
|
1840
|
+
/** All present fields narrow large_trade_inserted_v2 delivery. min_grade reads the payload's grade, observed at publication; min_grade_at_trade reads its grade_at_trade, the grade when the trade filled. Send one of the two, not both (400). An empty object matches every large trade. */
|
|
1836
1841
|
export type LargeTradeSubscriptionFilters = {
|
|
1837
1842
|
/** Raw provider condition ID or mkt_-prefixed market ID. */
|
|
1838
1843
|
condition_id?: string;
|
|
1839
1844
|
/** Polymarket wallet address; matching is case-insensitive. */
|
|
1840
1845
|
wallet?: string;
|
|
1841
|
-
/** S is best; ungraded trades do not match. */
|
|
1846
|
+
/** S is best; ungraded trades do not match. Reads the wallet's grade when the trade was published, which for a backfilled trade can be hours after the fill. */
|
|
1842
1847
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
1848
|
+
/** S is best. Reads grade_at_trade, the grade the trader held when the trade filled; only a trade whose grade_at_trade_status is graded matches. The same basis as min_grade_at_trade on GET /api/v1/large-trades and GET /api/v1/stream. */
|
|
1849
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
1843
1850
|
/** Positive USD notional as an exact decimal string. */
|
|
1844
1851
|
min_size_usd?: string;
|
|
1845
1852
|
};
|
|
@@ -1886,17 +1893,28 @@ export type LeaderboardEntry = {
|
|
|
1886
1893
|
/** When the wallet last traded: its most recent recorded trade, as of the leaderboard row's last refresh, which re-reads it hourly, so a new trade can take about an hour to show. It agrees with the activity filter: every wallet listed under activity=inactive last traded more than 30 days ago. Since 2026-11-02 (#32322); before, it carried the time 0xinsider last synced the wallet, usually within the past week whether or not the wallet traded. Omitted when the wallet has no recorded trade. */
|
|
1887
1894
|
last_active?: string;
|
|
1888
1895
|
};
|
|
1896
|
+
/** Every league with a skill leaderboard, by sport: the league values GET /api/v1/leaderboard/sports/{sport} accepts. */
|
|
1889
1897
|
export type LeaderboardLeagues = {
|
|
1898
|
+
/** Grouped by sport, then most ranked wallets first. */
|
|
1890
1899
|
leagues: {
|
|
1900
|
+
/** The canonical sport, for example Soccer or Esports. */
|
|
1891
1901
|
category: string;
|
|
1902
|
+
/** The league's display name. */
|
|
1892
1903
|
name: string;
|
|
1904
|
+
/** Wallets the league board's edge sort ranks with no hold; at least min_ranked. */
|
|
1893
1905
|
ranked_traders: number;
|
|
1906
|
+
/** The league slug, the board route's league parameter. */
|
|
1894
1907
|
slug: string;
|
|
1908
|
+
/** The sport slug, the board route's {sport}. */
|
|
1895
1909
|
sport: string;
|
|
1910
|
+
/** Wallets with at least min_resolved settled markets in the league and a trade in the last 180 days: the field the league board ranks. */
|
|
1896
1911
|
total_traders: number;
|
|
1897
1912
|
}[];
|
|
1913
|
+
/** Wallets a league board's edge sort must rank, with no hold, for the league to be listed. */
|
|
1898
1914
|
min_ranked: number;
|
|
1915
|
+
/** Settled markets of $20 or more a wallet needs in a league to be on its board. */
|
|
1899
1916
|
min_resolved: number;
|
|
1917
|
+
/** When the league ranking last ran. It runs about once a day. */
|
|
1900
1918
|
refreshed_at: string;
|
|
1901
1919
|
};
|
|
1902
1920
|
/** Edge over the price paid (#32270): how often the side a wallet bought won, minus the average price it paid, over its settled sports and esports markets of $20 or more at a known entry price. Probabilities throughout: edge 0.12 is 12 percentage points. A wallet buying at 99 cents that wins every market has an edge of about 0.01. A market bought on both sides counts by its shares: the winning side's share of the shares bought is its hit, the cost over those shares its price. */
|
|
@@ -3004,6 +3022,8 @@ export type PickOfTheDayLedgerOpenedEntry = {
|
|
|
3004
3022
|
supersedes_pick_id: string | null;
|
|
3005
3023
|
/** Explicit proof provenance: 1 retains historic eight-field canonical JSON; 2 binds stable pick_id and version without pick_rank. */
|
|
3006
3024
|
commitment_version: 1 | 2;
|
|
3025
|
+
/** How the pick was chosen: auto by the selection algorithm, manual by an operator (102 published picks from 2026-06-23 to 2026-10-15; none since). Outside the hashed payload, so it moves no commitment. */
|
|
3026
|
+
selected_by: "auto" | "manual";
|
|
3007
3027
|
};
|
|
3008
3028
|
/** An unresolved published pick. Carries only date, rank, hash, algorithm, seal instant and permalink. Kickoff and game identity are withheld; seal time remains public commitment provenance. */
|
|
3009
3029
|
export type PickOfTheDayLedgerSealedEntry = {
|
|
@@ -3036,6 +3056,8 @@ export type PickOfTheDayLedgerSealedEntry = {
|
|
|
3036
3056
|
supersedes_pick_id: string | null;
|
|
3037
3057
|
/** Explicit proof provenance: 1 retains historic eight-field canonical JSON; 2 binds stable pick_id and version without pick_rank. */
|
|
3038
3058
|
commitment_version: 1 | 2;
|
|
3059
|
+
/** How the pick was chosen: auto by the selection algorithm, manual by an operator (102 published picks from 2026-06-23 to 2026-10-15; none since). Outside the hashed payload, so it moves no commitment. */
|
|
3060
|
+
selected_by: "auto" | "manual";
|
|
3039
3061
|
};
|
|
3040
3062
|
/** A pick without a commitment, retained so the record cannot omit unprovable entries. Unresolved entries omit game identity; once resolved, matchup, category and payload become public. Existing opened canonical payload bytes and hashes are unchanged. */
|
|
3041
3063
|
export type PickOfTheDayLedgerUncommittedEntry = {
|
|
@@ -3074,6 +3096,8 @@ export type PickOfTheDayLedgerUncommittedEntry = {
|
|
|
3074
3096
|
* @deprecated
|
|
3075
3097
|
*/
|
|
3076
3098
|
supersedes_pick_id: string | null;
|
|
3099
|
+
/** How the pick was chosen: auto by the selection algorithm, manual by an operator (102 published picks from 2026-06-23 to 2026-10-15; none since). Outside the hashed payload, so it moves no commitment. */
|
|
3100
|
+
selected_by: "auto" | "manual";
|
|
3077
3101
|
};
|
|
3078
3102
|
/** A successful current-day entitlement response when only unauthorized ranks have published. It carries an empty pick set, identity-free locked ranks and an upgrade message. Selection IDs, game identity, prices and unauthorized clocks are absent. Any scheduled or proof-pending rows are entitled rows. */
|
|
3079
3103
|
export type PickOfTheDayNoEntitledPicks = {
|
|
@@ -3498,6 +3522,37 @@ export type PickOfTheDayStats = {
|
|
|
3498
3522
|
pick_id: string;
|
|
3499
3523
|
pick_rank: number;
|
|
3500
3524
|
}[];
|
|
3525
|
+
selections: {
|
|
3526
|
+
canonical_category?: string;
|
|
3527
|
+
clv_avg_display?: string;
|
|
3528
|
+
clv_avg_pct?: number;
|
|
3529
|
+
clv_avg_pp?: number;
|
|
3530
|
+
clv_avg_pp_display?: string;
|
|
3531
|
+
clv_measured: number;
|
|
3532
|
+
edge_display?: string;
|
|
3533
|
+
edge_pp?: number;
|
|
3534
|
+
key: string;
|
|
3535
|
+
label: string;
|
|
3536
|
+
losses: number;
|
|
3537
|
+
net_profit_display?: string;
|
|
3538
|
+
net_profit_usd?: number;
|
|
3539
|
+
pending: number;
|
|
3540
|
+
picks: number;
|
|
3541
|
+
priced_decided: number;
|
|
3542
|
+
priced_in_display?: string;
|
|
3543
|
+
priced_in_pct?: number;
|
|
3544
|
+
roi_display?: string;
|
|
3545
|
+
roi_pct?: number;
|
|
3546
|
+
settled: number;
|
|
3547
|
+
small_sample: boolean;
|
|
3548
|
+
staked_usd: number;
|
|
3549
|
+
unit_score?: number;
|
|
3550
|
+
unit_score_display?: string;
|
|
3551
|
+
void: number;
|
|
3552
|
+
win_rate_display?: string;
|
|
3553
|
+
win_rate_pct?: number;
|
|
3554
|
+
wins: number;
|
|
3555
|
+
}[];
|
|
3501
3556
|
};
|
|
3502
3557
|
/** The stats with `view=summary` or `sections`: only the named sections, listed in `sections`. `view=summary` names every section except `series`, `days`, `categories`, `months` and `voids`. */
|
|
3503
3558
|
export type PickOfTheDayStatsSections = {
|
|
@@ -3938,6 +3993,37 @@ export type PickOfTheDayStatsSections = {
|
|
|
3938
3993
|
pick_id: string;
|
|
3939
3994
|
pick_rank: number;
|
|
3940
3995
|
}[];
|
|
3996
|
+
selections?: {
|
|
3997
|
+
canonical_category?: string;
|
|
3998
|
+
clv_avg_display?: string;
|
|
3999
|
+
clv_avg_pct?: number;
|
|
4000
|
+
clv_avg_pp?: number;
|
|
4001
|
+
clv_avg_pp_display?: string;
|
|
4002
|
+
clv_measured: number;
|
|
4003
|
+
edge_display?: string;
|
|
4004
|
+
edge_pp?: number;
|
|
4005
|
+
key: string;
|
|
4006
|
+
label: string;
|
|
4007
|
+
losses: number;
|
|
4008
|
+
net_profit_display?: string;
|
|
4009
|
+
net_profit_usd?: number;
|
|
4010
|
+
pending: number;
|
|
4011
|
+
picks: number;
|
|
4012
|
+
priced_decided: number;
|
|
4013
|
+
priced_in_display?: string;
|
|
4014
|
+
priced_in_pct?: number;
|
|
4015
|
+
roi_display?: string;
|
|
4016
|
+
roi_pct?: number;
|
|
4017
|
+
settled: number;
|
|
4018
|
+
small_sample: boolean;
|
|
4019
|
+
staked_usd: number;
|
|
4020
|
+
unit_score?: number;
|
|
4021
|
+
unit_score_display?: string;
|
|
4022
|
+
void: number;
|
|
4023
|
+
win_rate_display?: string;
|
|
4024
|
+
win_rate_pct?: number;
|
|
4025
|
+
wins: number;
|
|
4026
|
+
}[];
|
|
3941
4027
|
};
|
|
3942
4028
|
/** A settled uncommitted pick's market, side and price. The same eight fields as PickOfTheDayCommitmentPayload, in the same key order, so a settled pick's side and price sit under payload whatever the entry's state. It is NOT a commitment: no hash was taken over it before the game, and it proves nothing about when the pick was made. */
|
|
3943
4029
|
export type PickOfTheDayUncommittedPayload = {
|
|
@@ -4525,48 +4611,88 @@ export type SnapshotState = {
|
|
|
4525
4611
|
/** When this body's source read started, the clock finality is judged on. null for a body stored before that clock was recorded. */
|
|
4526
4612
|
source_read_started_at: string | null;
|
|
4527
4613
|
};
|
|
4614
|
+
/** One sport's skill leaderboard, or one league's. Every figure on a row is the wallet's record in this sport or league, except grade, the wallet's all-time grade, and volume (see volume_scope). */
|
|
4528
4615
|
export type SportLeaderboard = {
|
|
4616
|
+
/** The latest time any wallet's record on this board was recomputed. The sport ranking reruns hourly, a league ranking about once a day. null when the board has no rows. */
|
|
4529
4617
|
as_of: string | null;
|
|
4618
|
+
/** The canonical sport the slug resolved to, for example Soccer or Basketball. null when no wallet has a record under it; rows is then empty. */
|
|
4530
4619
|
category: string | null;
|
|
4620
|
+
/** The mean edge over every wallet in the field whose price_edge.status is ranked, held ones included: the value each row's edge_skill is pulled toward. null when no wallet's edge is ranked. */
|
|
4531
4621
|
edge_average: number | null;
|
|
4622
|
+
/** The league this board ranks; null on a sport board. */
|
|
4532
4623
|
league: {
|
|
4624
|
+
/** The league's display name. */
|
|
4533
4625
|
name: string;
|
|
4626
|
+
/** Wallets the league board's edge sort ranks with no hold. */
|
|
4534
4627
|
ranked_traders: number;
|
|
4628
|
+
/** The league's slug under its sport, for example premier-league or cs2. */
|
|
4535
4629
|
slug: string;
|
|
4536
4630
|
} | null;
|
|
4631
|
+
/** The requested limit after clamping to 1..100 (default 20). rows holds fewer when the board has fewer wallets. */
|
|
4537
4632
|
limit: number;
|
|
4633
|
+
/** Settled markets of $20 or more a wallet needs in the sport or league to be on the board. */
|
|
4538
4634
|
min_resolved: number;
|
|
4635
|
+
/** The head of the board, in sort order. Every figure is the wallet's record in this sport or league, except grade (all-time) and volume (see volume_scope). */
|
|
4539
4636
|
rows: ({
|
|
4637
|
+
/** Lowercase proxy wallet. */
|
|
4540
4638
|
address: string;
|
|
4639
|
+
/** What the wallet paid, USD, for the settled markets pnl counts. null when any of them has no stored cost, never a partial sum. */
|
|
4541
4640
|
cost: number | null;
|
|
4641
|
+
/** Why sort=edge sets aside an edge whose status is ranked. category_loss: the wallet's realized P&L in this sport or league is zero or below. record_incomplete: the wallet's stored sports and esports P&L runs more than 5% of its cost ahead of Polymarket's own figure, so settled losing markets are likely missing from its record. A held row keeps its price_edge and edge_skill and sorts after the ranked rows on sort=edge. null when nothing holds the edge, and always null unless price_edge.status is ranked. */
|
|
4542
4642
|
edge_hold: "category_loss" | "record_incomplete" | null;
|
|
4643
|
+
/** price_edge.edge pulled toward edge_average by the share of the record that is noise: a short record moves most of the way to the average, a long one keeps nearly all of its own edge. The value sort=edge orders by when edge_hold is null. null unless price_edge.status is ranked. */
|
|
4543
4644
|
edge_skill: number | null;
|
|
4645
|
+
/** The wallet's all-time grade, S to F, the one every route serves. It is led by realized profit across all of the wallet's sports and esports markets, not this sport's or league's, so a wallet can lead a board on in-sport P&L and still grade F. Every letter is listed: the board ranks the in-sport record and does not filter on the grade. null when the wallet has no grade. */
|
|
4544
4646
|
grade: "S" | "A" | "B" | "C" | "D" | "F" | null;
|
|
4647
|
+
/** trd_0x..., the id the trader routes accept. */
|
|
4545
4648
|
id: string;
|
|
4649
|
+
/** The wallet's last trade on a settled market of $20 or more in this sport or league. */
|
|
4546
4650
|
last_category_trade_at: string | null;
|
|
4651
|
+
/** Markets n_resolved counts that settled at a realized loss. A market that broke even counts in neither wins nor losses. */
|
|
4547
4652
|
losses: number;
|
|
4653
|
+
/** The wallet's settled markets of $20 or more in this sport or league; at least min_resolved. */
|
|
4548
4654
|
n_resolved: number;
|
|
4655
|
+
/** Provider platform. Always polymarket. */
|
|
4549
4656
|
platform: "polymarket";
|
|
4657
|
+
/** Realized P&L, USD, across the markets n_resolved counts: this sport or league only, not the wallet's whole record. The value sort=pnl orders by. */
|
|
4550
4658
|
pnl: number | null;
|
|
4659
|
+
/** Edge over the price paid in this sport or league: how often the side the wallet bought won, minus the average price it paid. Probabilities throughout: edge 0.03 is 3 percentage points. A market bought on both sides counts by its shares. null when the wallet has no priced settled market here. */
|
|
4551
4660
|
price_edge: {
|
|
4661
|
+
/** Mean entry price paid, 0-1. */
|
|
4552
4662
|
avg_price: number;
|
|
4663
|
+
/** hit_rate minus avg_price, full precision, before any shrink. edge_skill is the shrunk value. */
|
|
4553
4664
|
edge: number;
|
|
4665
|
+
/** The low end of edge's 95% range: edge minus 1.96 times the square root of avg_price * (1 - avg_price) / markets. Not a sort key: sort=edge orders by edge_skill. */
|
|
4554
4666
|
edge_lower: number;
|
|
4667
|
+
/** Share of those markets whose bought side won, 0-1. A market bought on both sides adds the winning side's share of the shares bought. */
|
|
4555
4668
|
hit_rate: number;
|
|
4669
|
+
/** Settled markets of $20 or more in this sport or league at a known entry price that the edge is measured over. */
|
|
4556
4670
|
markets: number;
|
|
4671
|
+
/** Whether the edge ranks. ranked: at least 30 such markets, and the share of the decided ones that made money at settlement within 10 points of the win rate here. too_few_markets: fewer than 30. sample_mismatch: that share is more than 10 points away, so these markets do not describe the wallet's record. Only a ranked edge with a null edge_hold orders on sort=edge. */
|
|
4557
4672
|
status: "ranked" | "too_few_markets" | "sample_mismatch";
|
|
4558
4673
|
} | null;
|
|
4674
|
+
/** 1-based position on this board under sort. A page of limit rows is the head of the board. */
|
|
4559
4675
|
rank: number;
|
|
4676
|
+
/** pnl / cost, a fraction: 0.12 is 12%. null when cost is null. */
|
|
4560
4677
|
roi: number | null;
|
|
4678
|
+
/** The wallet's Polymarket username; null when it has none. */
|
|
4561
4679
|
username: string | null;
|
|
4680
|
+
/** USD, measured as volume_scope says. On a sport board: the wallet's volume across all its sports and esports markets, the profile's Volume traded, not this sport's alone. null on every league board row: no per-league volume is stored. */
|
|
4562
4681
|
volume: number | null;
|
|
4682
|
+
/** wins / (wins + losses) in this sport or league, 0-1: 0.6 is 60%. null when no market was decided. */
|
|
4563
4683
|
win_rate: number | null;
|
|
4684
|
+
/** The lower bound of the 95% Wilson interval on win_rate, 0-1: the value sort=win_rate orders by, so a short perfect record does not outrank a long strong one. null with win_rate. */
|
|
4564
4685
|
win_rate_wilson_lb: number | null;
|
|
4686
|
+
/** Markets n_resolved counts that settled at a realized profit. */
|
|
4565
4687
|
wins: number;
|
|
4566
4688
|
})[];
|
|
4689
|
+
/** The order rows are in. edge: by edge_skill, with every wallet whose edge is not ranked, or is held, after the ranked ones. pnl: by realized P&L in the sport or league. win_rate: by the Wilson lower bound of the win rate. */
|
|
4567
4690
|
sort: "edge" | "pnl" | "win_rate";
|
|
4691
|
+
/** The board's sport slug, for example soccer, basketball or esports. An alias in the path, such as nba or cs2, reads as its sport's slug. */
|
|
4568
4692
|
sport: string;
|
|
4693
|
+
/** Wallets with at least min_resolved settled markets in the sport or league and a trade, in any market, in the last 180 days: the field rows is the head of. */
|
|
4569
4694
|
total_traders: number;
|
|
4695
|
+
/** What each row's volume measures. sports_and_esports: the wallet's volume across all its sports and esports markets, not this sport's or league's alone. */
|
|
4570
4696
|
volume_scope: "sports_and_esports";
|
|
4571
4697
|
};
|
|
4572
4698
|
export type SuspiciousTrade = {
|
|
@@ -6421,8 +6547,10 @@ export interface OperationQuery {
|
|
|
6421
6547
|
trader?: string;
|
|
6422
6548
|
/** Only trades on this market: the raw provider condition_id or its mkt_-prefixed id. Bound to the cursor. */
|
|
6423
6549
|
condition_id?: string;
|
|
6424
|
-
/** Only trades by wallets at this grade or better (S best), read from the wallet's newest ranking at request time; a wallet with no grade never passes. Bound to the cursor. */
|
|
6550
|
+
/** Only trades by wallets at this grade or better (S best), read from the wallet's newest ranking at request time; a wallet with no grade never passes. For the grade the wallet held when the trade filled, send min_grade_at_trade instead. Bound to the cursor. */
|
|
6425
6551
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6552
|
+
/** Only trades whose grade_at_trade, the grade the wallet held when the trade filled, is at this grade or better (S best). Only a trade whose grade at the fill is graded passes, so a trade before 2026-09-19T23:00Z, or one made while the wallet's grade was changing, never does. The same basis as min_grade_at_trade on GET /api/v1/large-trades, GET /api/v1/stream and webhook trade_filters. Bound to the cursor: switching between min_grade and min_grade_at_trade is a filter change and answers cursor_expired. Sending it with min_grade, or an invalid grade, returns HTTP 400. */
|
|
6553
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6426
6554
|
/** Only trades of at least this USD amount. Decimal and scientific query spellings normalize exactly to cents, rounding half away from zero; maximum 1e15 USD. Pass the dataset continuation decimal string unchanged to preserve the bound. Bound to the cursor. */
|
|
6427
6555
|
min_size?: number | string;
|
|
6428
6556
|
/** Backward-compatible alias for expand. Repeatable: trade. */
|
|
@@ -6491,7 +6619,7 @@ export interface OperationQuery {
|
|
|
6491
6619
|
date?: string;
|
|
6492
6620
|
/** full (default) is the whole recorded set: every pick with its holders, lead backer, sports context, thesis and entry_authorization, and the top-level copy of the first pick. summary returns pick_date, pick_count, the disclaimer once, and each entitled pick's identity, side, price, result, return and grade (pick_id, publication_order, is_free_selection, matchup, category, display_category, event_slug, polymarket_url, token_id, pick_outcome_label, outcome, backed_price, stake_usd, return_usd, unit_score, top_grade, holder_count, clv_status, clv_pct, release_at, game_started, game_ended), with the same scheduled_picks, proof_pending_picks and locked_picks. The locked-only state=none body is the same in both views. Any other value returns 400 bad_request with error.param=view. */
|
|
6493
6621
|
view?: "full" | "summary";
|
|
6494
|
-
/** One entitled published pick of the day, by its stable decimal-string pick_id. The body
|
|
6622
|
+
/** One entitled published pick of the day, by its stable decimal-string pick_id. The body carries that pick once, as picks[0], beside state, pick_date and pick_count=1. It leaves out the top-level copy of the first pick that a set read without pick_id repeats, and scheduled_picks, proof_pending_picks and locked_picks. Pair it with date for a past day's pick. A pick_id that is not among the day's entitled published picks returns 404 not_found with error.param=pick_id; one whose holder proof is not readable yet returns 503 read_model_warming with Retry-After; a value that is not a positive canonical decimal returns 400 bad_request with error.param=pick_id. */
|
|
6495
6623
|
pick_id?: string;
|
|
6496
6624
|
};
|
|
6497
6625
|
getPickOfTheDayArchive: {
|
|
@@ -6507,10 +6635,10 @@ export interface OperationQuery {
|
|
|
6507
6635
|
getPickOfTheDayStats: {
|
|
6508
6636
|
/** full (default) is every section. summary returns view, sections and every section except the five that grow with the record: series, days, categories, months and voids. In summary and sections bodies hit_rate carries no series; series is its own top-level section. Ignored when sections is sent. Any other value returns 400 bad_request with error.param=view. */
|
|
6509
6637
|
view?: "full" | "summary";
|
|
6510
|
-
/** Exactly the sections to return, in the body's order whatever the request order. Repeatable and comma-separated: hit_rate, series, market_expectations, outcome_stats, days, categories, sports, tiers, months, price_bands, market_types, total_sides, streaks, records, voids. The body names them in sections and carries view=sections. An unrecognized name returns 400 bad_request with error.param=sections rather than being ignored. */
|
|
6511
|
-
sections?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "days" | "categories" | "sports" | "tiers" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
6638
|
+
/** Exactly the sections to return, in the body's order whatever the request order. Repeatable and comma-separated: hit_rate, series, market_expectations, outcome_stats, days, categories, sports, tiers, selections, months, price_bands, market_types, total_sides, streaks, records, voids. The body names them in sections and carries view=sections. An unrecognized name returns 400 bad_request with error.param=sections rather than being ignored. */
|
|
6639
|
+
sections?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "days" | "categories" | "sports" | "tiers" | "selections" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
6512
6640
|
/** Backward-compatible bracket alias for sections, for clients that emit array keys. Repeatable and comma-separated, with the same names. */
|
|
6513
|
-
"sections[]"?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "days" | "categories" | "sports" | "tiers" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
6641
|
+
"sections[]"?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "days" | "categories" | "sports" | "tiers" | "selections" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
6514
6642
|
};
|
|
6515
6643
|
getPlatforms: Record<string, never>;
|
|
6516
6644
|
getPositionTimeline: {
|
|
@@ -6558,8 +6686,10 @@ export interface OperationQuery {
|
|
|
6558
6686
|
event?: string;
|
|
6559
6687
|
/** Optional per-connection subscribe-time filter. Raw provider condition_id or mkt_-prefixed market id (normalized the same way the other v1 market endpoints normalize). A frame passes only when it carries a matching condition_id field; frames that carry no condition_id (e.g. whale-pulse events) are EXCLUDED while this is set. An empty value after normalization returns HTTP 400. Combines with event and min_grade as a logical AND; an absent param adds no constraint. */
|
|
6560
6688
|
condition_id?: string;
|
|
6561
|
-
/** Optional per-connection subscribe-time filter. A frame passes only when it carries a grade field whose grade is better-or-equal to this minimum (S is best). Frames without a grade (every frame except wallet_grade_changed and LargeTradeInsertedV2) are excluded. An invalid grade returns HTTP 400. Combines with the other filters as a logical AND. */
|
|
6689
|
+
/** Optional per-connection subscribe-time filter. A frame passes only when it carries a grade field whose grade is better-or-equal to this minimum (S is best). On a LargeTradeInsertedV2 frame that field is grade, the wallet's grade when the trade was published: seconds after the fill for a live trade, hours after it for a backfilled one, so it is not always the grade the trade filled under. For that, send min_grade_at_trade instead. Frames without a grade (every frame except wallet_grade_changed and LargeTradeInsertedV2) are excluded. An invalid grade returns HTTP 400. Combines with the other filters as a logical AND. */
|
|
6562
6690
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6691
|
+
/** Filter LargeTradeInsertedV2 frames to trades whose grade_at_trade, the grade the trader held when the trade filled, is at or above this minimum (S is best). Only a frame whose grade_at_trade_status is graded can match. The same basis as min_grade_at_trade on GET /api/v1/large-trades and on webhook trade_filters. Other event types are excluded when set. Sending it with min_grade, or an invalid grade, returns HTTP 400. */
|
|
6692
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6563
6693
|
/** Filter LargeTradeInsertedV2 frames to this Polymarket wallet. Other event types have no wallet and are excluded when set. Applied to live and retained Redis frames after privacy checks. */
|
|
6564
6694
|
wallet?: string;
|
|
6565
6695
|
/** Filter LargeTradeInsertedV2 frames to trades at or above this USD notional. Positive decimal with at most six places; other event types are excluded when set. */
|
|
@@ -6732,8 +6862,10 @@ export interface OperationQuery {
|
|
|
6732
6862
|
trader?: string;
|
|
6733
6863
|
/** Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket. Sports and esports only (#27430): a category outside them returns 400 bad_request with param category and names the accepted buckets. The word sports, in any casing, matches every sport but Esports, the provider's catch-all Sports category (cycling, lacrosse) included: use esports for Esports alone, or omit category for both (#32657). */
|
|
6734
6864
|
category?: string;
|
|
6735
|
-
/** Minimum trader grade as of today (trader.grade), not at trade time. On a historical window it selects wallets by a grade they may have earned after the trade; for a point-in-time rule
|
|
6865
|
+
/** Minimum trader grade as of today (trader.grade), not at trade time. On a historical window it selects wallets by a grade they may have earned after the trade; for a point-in-time rule send min_grade_at_trade instead, which filters on trader.grade_at_trade. A means S or A, B means S, A or B. */
|
|
6736
6866
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6867
|
+
/** Minimum grade the trader held when the trade filled (trader.grade_at_trade). Only rows whose trader.grade_at_trade_status is graded can match, so a trade before 2026-09-19T23:00Z, or one made while the wallet's grade was changing, never does. The same basis as min_grade_at_trade on GET /api/v1/large-trades, GET /api/v1/stream and webhook trade_filters, so a history read and a stream with the same floor agree. Applies to both sorts and beside condition_id, event_slug, trader and from/to. Sending it with min_grade is 400. A means S or A, B means S, A or B. */
|
|
6868
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6737
6869
|
/** When true, return only rows with persisted suspicion_score >= 60. The filter is applied before SQL-backed limit + 1 pagination. */
|
|
6738
6870
|
suspicious_only?: boolean;
|
|
6739
6871
|
/** Filter by whale_alerts.platform. all is equivalent to omitted. */
|
|
@@ -6758,8 +6890,10 @@ export interface OperationQuery {
|
|
|
6758
6890
|
min_size?: number;
|
|
6759
6891
|
/** Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket. Sports and esports only (#27430): a category outside them returns 400 bad_request with param category and names the accepted buckets. The word sports, in any casing, matches every sport but Esports, the provider's catch-all Sports category (cycling, lacrosse) included: use esports for Esports alone, or omit category for both (#32657). */
|
|
6760
6892
|
category?: string;
|
|
6761
|
-
/** Minimum trader grade. */
|
|
6893
|
+
/** Minimum trader grade now (trader.grade), the wallet's grade when this page is read, not when the trade filled. A wallet re-graded after a trade enters or leaves the result, so a catch-up read can disagree with GET /api/v1/stream and webhooks. For the grade at the fill, send min_grade_at_trade instead. A means S or A, B means S, A or B. */
|
|
6762
6894
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6895
|
+
/** Minimum grade the trader held when the trade filled (trader.grade_at_trade). Only rows whose trader.grade_at_trade_status is graded can match, so a trade before 2026-09-19T23:00Z, or one made while the wallet's grade was changing, never does. The same basis as min_grade_at_trade on GET /api/v1/stream and on webhook trade_filters, so a client that catches up here and then streams gets one answer. Applies to every path: recent, since, sort=market_volume_share, condition_id and event_slug. Sending it with min_grade is 400. A means S or A, B means S, A or B. */
|
|
6896
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6763
6897
|
/** When true, return only rows with persisted suspicion_score >= 60. The filter is applied before SQL-backed limit + 1 pagination. */
|
|
6764
6898
|
suspicious_only?: boolean;
|
|
6765
6899
|
/** Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never returned by a non-zero value, because an unavailable share cannot be said to clear a floor. */
|
|
@@ -6911,6 +7045,8 @@ export interface OperationQuery {
|
|
|
6911
7045
|
category?: string;
|
|
6912
7046
|
/** Minimum trader grade. */
|
|
6913
7047
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
7048
|
+
/** Minimum grade the trader held when the trade filled (trader.grade_at_trade). Only rows whose trader.grade_at_trade_status is graded can match, so a trade before 2026-09-19T23:00Z, or one made while the wallet's grade was changing, never does. The same basis as min_grade_at_trade on GET /api/v1/large-trades, GET /api/v1/stream and webhook trade_filters, so a history read and a stream with the same floor agree. Applies to both sorts and beside condition_id, event_slug, trader and from/to. Sending it with min_grade is 400. A means S or A, B means S, A or B. */
|
|
7049
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6914
7050
|
/** When true, return only rows with persisted suspicion_score >= 60. The filter is applied before SQL-backed limit + 1 pagination. */
|
|
6915
7051
|
suspicious_only?: boolean;
|
|
6916
7052
|
/** Filter by whale_alerts.platform. all is equivalent to omitted. */
|
|
@@ -6935,8 +7071,10 @@ export interface OperationQuery {
|
|
|
6935
7071
|
min_size?: number;
|
|
6936
7072
|
/** Filter by market category (case-insensitive). A canonical bucket name (e.g. Basketball) matches every provider member that folds into it (NBA, WNBA, NCAAB); a raw provider value also resolves to its bucket. Sports and esports only (#27430): a category outside them returns 400 bad_request with param category and names the accepted buckets. The word sports, in any casing, matches every sport but Esports, the provider's catch-all Sports category (cycling, lacrosse) included: use esports for Esports alone, or omit category for both (#32657). */
|
|
6937
7073
|
category?: string;
|
|
6938
|
-
/** Minimum trader grade
|
|
7074
|
+
/** Minimum trader grade now (trader.grade), the wallet's grade when this page is read, not when the trade filled. A wallet re-graded after a trade enters or leaves the result, so a catch-up read can disagree with GET /api/v1/stream and webhooks. For the grade at the fill, send min_grade_at_trade instead. A means S or A, B means S, A or B. */
|
|
6939
7075
|
min_grade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
7076
|
+
/** Minimum grade the trader held when the trade filled (trader.grade_at_trade). Only rows whose trader.grade_at_trade_status is graded can match, so a trade before 2026-09-19T23:00Z, or one made while the wallet's grade was changing, never does. The same basis as min_grade_at_trade on GET /api/v1/stream and on webhook trade_filters, so a client that catches up here and then streams gets one answer. Applies to every path: recent, since, sort=market_volume_share, condition_id and event_slug. Sending it with min_grade is 400. A means S or A, B means S, A or B. */
|
|
7077
|
+
min_grade_at_trade?: "S" | "A" | "B" | "C" | "D" | "F";
|
|
6940
7078
|
/** When true, return only rows with persisted suspicion_score >= 60. The filter is applied before SQL-backed limit + 1 pagination. */
|
|
6941
7079
|
suspicious_only?: boolean;
|
|
6942
7080
|
/** Keep only trades whose market_volume_share is known and at least this. A fraction, not a percent: 0.01 is one percent of the market's traded volume. A trade whose share is unavailable is never returned by a non-zero value, because an unavailable share cannot be said to clear a floor. */
|