@0xinsider/mcp 3.16.1 → 3.17.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.
@@ -2381,6 +2381,8 @@ export type MarketSettledData = {
2381
2381
  winning_outcome_index: number | null;
2382
2382
  oracle_updated_at: string | null;
2383
2383
  };
2384
+ /** The Polymarket protocol the market settles and redeems on, Gamma's market version: v1 (ConditionalTokens) or v2 (the Protocol V2 modules: the new markets from 2026-11-09 and the polyv2 copies). Read from the condition id, the same value on the webhook, the MarketSettled stream frame and GET /api/v1/markets/settled. A redelivery resends its event as first delivered, so one first delivered before the field shipped lacks it. */
2385
+ protocol_version: "v1" | "v2";
2384
2386
  };
2385
2387
  export type MarketSnapshot = {
2386
2388
  market: {
@@ -2708,7 +2710,7 @@ export type PickHolder = {
2708
2710
  category_win_rate_game?: string;
2709
2711
  /** Why `category_win_rate` is present or absent on a `display_holders` entry: `measured` (rate present), `not_enough_data` (the wallet is below the settled-market floor of 5 in the category), or `unavailable` (the annotation read failed; retry later). Never `untracked`: every recorded holder is a graded wallet 0xinsider has on file. Absent entirely on `holders` entries, legacy rows, and payloads predating the field -- absence means the roster was never annotated, not a small sample. */
2710
2712
  category_win_rate_status?: "measured" | "not_enough_data" | "unavailable" | "untracked";
2711
- /** Whole UTC calendar days since this wallet's first trade: the number of UTC dates from the first trade's date to today, so a first trade at 23:00 UTC reads 1 an hour later. Every wallet's age changes at 00:00 UTC, once a day, not on every request, and the pick's ETag holds between requests. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped. */
2713
+ /** Whole UTC calendar days since this wallet's first trade, as an integer (271, not 271.0): the number of UTC dates from the first trade's date to today, so a first trade at 23:00 UTC reads 1 an hour later. Every wallet's age changes at 00:00 UTC, once a day, not on every request, and the pick's ETag holds between requests. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped. */
2712
2714
  wallet_age_days?: number | null;
2713
2715
  /** True when the wallet's first trade was under 30 days ago. Stamped at serve time from the wallet's current trader record, never frozen with the pick. The five badge fields are present together, and only for a wallet that carries at least one badge; all absent means no badge, or a body cached before the fields shipped. */
2714
2716
  is_new_wallet?: boolean;
@@ -2818,7 +2820,7 @@ export type PickOfTheDay = {
2818
2820
  token_id?: string;
2819
2821
  /** The backed side phrased as a bet (e.g. "Portugal to win"). */
2820
2822
  position?: string;
2821
- /** One-line summary of which side sharp money is backing. Required on every item in `picks`: a current-day published pick whose required holder proof is not safely readable is listed in `proof_pending_picks` instead of being served with a partial success shape or a synthetic zero, and the route returns 503 read_model_warming only when no published pick has readable proof. */
2823
+ /** One-line summary of which side sharp money is backing. On a pick dated 2026-08-12 or later it counts the S and A grade wallets on the backed side, the sharp_wallet_count value, and names those grades: "26 S and A grade wallets on Alexander Shevchenko", or "1 S or A grade wallet on ...". The site's "profitable wallets" counts S, A and B grade wallets, so its number can be larger for the same pick. A pick whose only recorded backing is its lead wallet reads "Recorded lead wallet on ...". Earlier picks, and a pick recorded without graded holders, keep the sentence recorded with them. Required on every item in `picks`: a current-day published pick whose required holder proof is not safely readable is listed in `proof_pending_picks` instead of being served with a partial success shape or a synthetic zero, and the route returns 503 read_model_warming only when no published pick has readable proof. */
2822
2824
  side_summary?: string;
2823
2825
  /** S/A wallet count on the backed side in the public V1 compatibility projection. */
2824
2826
  sharp_wallet_count?: number;
@@ -2829,7 +2831,7 @@ export type PickOfTheDay = {
2829
2831
  smart_wallet_count?: number;
2830
2832
  /** Best recorded S/A grade in the public V1 compatibility projection. */
2831
2833
  top_grade?: string;
2832
- /** Recorded sharp-money magnitude in USD when available. */
2834
+ /** Recorded graded-flow magnitude in USD on the backed side. Absent when the recorded value is zero, and on every pick that carries lead_backer. */
2833
2835
  sharp_usd?: number;
2834
2836
  /**
2835
2837
  * Deprecated spelling of sharp_usd with the same value.
@@ -2866,7 +2868,7 @@ export type PickOfTheDay = {
2866
2868
  unit_score?: number;
2867
2869
  /** Backend-formatted signed unit score, present exactly when unit_score is present. */
2868
2870
  unit_score_display?: string;
2869
- /** Recorded sharp-money share as a 0..1 fraction when available. This is not a winning probability. */
2871
+ /** Recorded sharp-money share as a 0..1 fraction. This is not a winning probability. Absent on every pick dated 2026-08-12 or later: from that date the recorded share includes B grade wallets, which this S and A projection does not count. Earlier picks carry it when it was recorded. */
2870
2872
  sharp_pct?: number;
2871
2873
  /** Recorded market-implied probability as a 0..1 fraction when available. */
2872
2874
  market_pct?: number;
@@ -2893,7 +2895,7 @@ export type PickOfTheDay = {
2893
2895
  };
2894
2896
  /** Public V1 S/A wallet count on the backed side, equal to sharp_wallet_count. */
2895
2897
  traders?: number;
2896
- /** Recorded aggregate backed-side position value in USD when available, not a live balance or entry cost. The display_holders roster can include additional wallets; use the returned aggregate rather than summing that roster. */
2898
+ /** Recorded aggregate backed-side position value in USD, not a live balance or entry cost. Absent on every pick dated 2026-08-12 or later: from that date the recorded value includes B grade wallets, which this S and A projection does not count. Earlier picks carry it when it was recorded. The display_holders roster can include additional wallets; use the returned aggregate rather than summing that roster. */
2897
2899
  backed_sharp_usd?: number;
2898
2900
  /** Bounded S/A holder display projection from the recorded snapshot. Historical rows retain their recorded display shape. */
2899
2901
  holders?: PickHolder[];
@@ -2939,6 +2941,71 @@ export type PickOfTheDay = {
2939
2941
  supersedes_pick_id: string | null;
2940
2942
  /** Optional full-only lead wallet publication facts. Omitted on legacy picks or when the recorded evidence is unavailable. */
2941
2943
  lead_backer?: PickLeadBacker;
2944
+ /** On the top level of today's set read. The instant until which today's list of published picks can still grow: present while another pick can still be added to the day, absent once the day is final. Absent for a past `date`, on `picks` items and on a `pick_id` read. A later pick is possible, not promised; schedule one read before this instant instead of polling. */
2945
+ more_picks_until?: string;
2946
+ /** Display identity for the pick's game: the league and the two sides, with names, crests and records, and for a tennis player the headshot, tour and ranking. Sent on a pick whose sports identity resolved; absent otherwise. It carries no market, event or provider identifier. An image value that starts with / is a path relative to https://0xinsider.com. */
2947
+ public_sports_identity?: {
2948
+ /** True when yes_team and no_team are the parent game's two sides in display order, on a Yes/No market whose own outcomes name no team (a draw, a total, a prop); they then say nothing about which side Yes backs. False when the market's outcomes chose the sides, so Yes resolving means yes_team won. */
2949
+ event_matchup: boolean;
2950
+ /** League crest: an absolute https URL, or a path relative to https://0xinsider.com for a crest 0xinsider serves. */
2951
+ league_logo?: string;
2952
+ /** League or competition name. */
2953
+ league_name?: string;
2954
+ /** The side the market's No outcome names; when event_matchup is true, the parent game's second side in display order. */
2955
+ no_team?: {
2956
+ /** Full display name of the team or player. */
2957
+ full_name?: string;
2958
+ /** Tennis player photo as a path relative to https://0xinsider.com, for example /api/tennis/headshots/...; prefix that origin to fetch it. Absent when no photo is on file. */
2959
+ headshot?: string;
2960
+ /** Revision of the headshot image; it changes when the photo changes. Present only with headshot. */
2961
+ headshot_revision?: number;
2962
+ /** Display name of the team or player. */
2963
+ label?: string;
2964
+ /** Team crest: an absolute https URL, or a path relative to https://0xinsider.com for a crest 0xinsider serves. Absent when no specific crest is on file. */
2965
+ logo?: string;
2966
+ /** True when the logo artwork disappears on a dark background. Sent only when true. */
2967
+ logo_mark_dark?: boolean;
2968
+ /** True when the logo artwork disappears on a light background. Sent only when true. */
2969
+ logo_mark_light?: boolean;
2970
+ /** True when logo_mark_dark and logo_mark_light were measured from this logo. Sent only when true; when absent, their absence makes no claim about the artwork. */
2971
+ logo_mark_measured?: boolean;
2972
+ ranking?: TennisRanking;
2973
+ /** Win-loss record as the provider reports it. */
2974
+ record?: string;
2975
+ /** Short display name, such as an abbreviation. */
2976
+ short_label?: string;
2977
+ /** Tennis tour of the player: atp, wta or itf. Sent for a tennis player whether or not a headshot is on file. */
2978
+ tour?: string;
2979
+ };
2980
+ /** The side the market's Yes outcome names; when event_matchup is true, the parent game's first side in display order. */
2981
+ yes_team?: {
2982
+ /** Full display name of the team or player. */
2983
+ full_name?: string;
2984
+ /** Tennis player photo as a path relative to https://0xinsider.com, for example /api/tennis/headshots/...; prefix that origin to fetch it. Absent when no photo is on file. */
2985
+ headshot?: string;
2986
+ /** Revision of the headshot image; it changes when the photo changes. Present only with headshot. */
2987
+ headshot_revision?: number;
2988
+ /** Display name of the team or player. */
2989
+ label?: string;
2990
+ /** Team crest: an absolute https URL, or a path relative to https://0xinsider.com for a crest 0xinsider serves. Absent when no specific crest is on file. */
2991
+ logo?: string;
2992
+ /** True when the logo artwork disappears on a dark background. Sent only when true. */
2993
+ logo_mark_dark?: boolean;
2994
+ /** True when the logo artwork disappears on a light background. Sent only when true. */
2995
+ logo_mark_light?: boolean;
2996
+ /** True when logo_mark_dark and logo_mark_light were measured from this logo. Sent only when true; when absent, their absence makes no claim about the artwork. */
2997
+ logo_mark_measured?: boolean;
2998
+ ranking?: TennisRanking;
2999
+ /** Win-loss record as the provider reports it. */
3000
+ record?: string;
3001
+ /** Short display name, such as an abbreviation. */
3002
+ short_label?: string;
3003
+ /** Tennis tour of the player: atp, wta or itf. Sent for a tennis player whether or not a headshot is on file. */
3004
+ tour?: string;
3005
+ };
3006
+ };
3007
+ /** When the pick was published: the recorded instant, the same one the archive returns for it. release_at is the scheduled release. Sent on every pick; absent with the other pick fields on a state=none body. */
3008
+ published_at?: string;
2942
3009
  };
2943
3010
  export type PickOfTheDayArchive = {
2944
3011
  /** Published Pick of the Day selections that have not been withdrawn, newest first by pick_date and then pick_rank within each product day. Withdrawn rows stay excluded after settlement. */
@@ -3381,6 +3448,8 @@ export type PickOfTheDayNoEntitledPicks = {
3381
3448
  * @deprecated
3382
3449
  */
3383
3450
  supersedes_pick_id: string | null;
3451
+ /** The instant until which today's list of published picks can still grow: present while another pick can still be added to the day, absent once the day is final. A later pick is possible, not promised. */
3452
+ more_picks_until?: string;
3384
3453
  };
3385
3454
  export type PickOfTheDayStats = {
3386
3455
  categories: {
@@ -4734,6 +4803,8 @@ export type ScoreCell = {
4734
4803
  };
4735
4804
  /** Shape the provider score string was parsed into. `two_side` is one aggregate per side (basketball `105-98`), `multi_set` is per-set columns (tennis `6-7(5-7), 6-0, 1-0`), `esports_series` is a maps/sets/format triplet (`000-000|2-0|Bo3`). Omitted when the score could not be parsed. */
4736
4805
  export type ScoreFormat = "two_side" | "multi_set" | "esports_series";
4806
+ /** One GET /api/v1/markets/settled row: the market_settled webhook's data, MarketSettledData, protocol_version included. Kept as its own name for clients generated since SDK 0.45.0. */
4807
+ export type SettledMarketData = MarketSettledData;
4737
4808
  /** Settings for market_settled; every set field must match. Optional: subscribing without it stores {"sports_market_types": ["moneyline"]}, every market Polymarket labels moneyline, and sending it without the event is refused (400). That label is each head-to-head game's winner market, but in golf and other field events Polymarket labels every player market moneyline (winner, make the cut, round leader), so one tournament can send hundreds of states. Narrow it with leagues, which no market outside the list matches, including one whose league is null (a golf event slug that starts with a year, such as 2026-world-wide-technology-championship), or with condition_ids. A PATCH without it keeps the stored settings while the event stays subscribed; removing the event clears them. Stored as the API normalized it: trimmed and deduplicated, leagues, market types and condition IDs lowercased, and sports_market_types filled in when omitted. */
4738
4809
  export type SettlementSubscriptionFilters = {
4739
4810
  /** Event slug league prefixes such as nba or epl, matched case-insensitively; any one matches. A polyv2 copy's league is read after its polyv2 prefix. PGA Tour golf, whose event slugs start with the year, is pga. */
@@ -6447,6 +6518,7 @@ export interface OperationData {
6447
6518
  })[];
6448
6519
  state: string;
6449
6520
  view: string;
6521
+ more_picks_until?: string;
6450
6522
  };
6451
6523
  getPickOfTheDayArchive: PickOfTheDayArchive | PickOfTheDayArchiveSummary;
6452
6524
  getPickOfTheDayLedger: PickOfTheDayLedger;
@@ -6749,7 +6821,7 @@ export interface OperationData {
6749
6821
  player_unavailable_reason: "missing_provider_title" | null;
6750
6822
  resolved_at: string | null;
6751
6823
  })[];
6752
- listSettledMarkets: MarketSettledData[];
6824
+ listSettledMarkets: SettledMarketData[];
6753
6825
  listSharpMoneyFlows: SmartMoneyFlowMarket[];
6754
6826
  listSmartMoneyFlows: SmartMoneyFlowMarket[];
6755
6827
  listSuspiciousTrades: SuspiciousTrade[];
@@ -7035,9 +7107,9 @@ export interface OperationQuery {
7035
7107
  getPickOfTheDay: {
7036
7108
  /** A product day (America/New_York) in YYYY-MM-DD format, on or before today. Omit it, or send today, for the current read. A past day with no published pick returns 404 not_found with error.param=date; a date after today, or a value that is not a date, returns 400 bad_request with error.param=date. */
7037
7109
  date?: string;
7038
- /** 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. */
7110
+ /** full (default) is the whole recorded set: every pick with its thesis, and its holders, lead backer, sports context and entry_authorization when recorded, 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, locked_picks and more_picks_until. The locked-only state=none body is the same in both views. Any other value returns 400 bad_request with error.param=view. */
7039
7111
  view?: "full" | "summary";
7040
- /** 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. */
7112
+ /** 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, locked_picks and more_picks_until. 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. */
7041
7113
  pick_id?: string;
7042
7114
  };
7043
7115
  getPickOfTheDayArchive: {
@@ -7425,9 +7497,13 @@ export interface OperationQuery {
7425
7497
  sports_market_type?: string;
7426
7498
  /** Comma-separated leagues to keep, as the rows' league reports them (nba, epl, or pga for PGA Tour golf); at most 32, each starting with a letter and holding no hyphen. Omitted: every league, or with cursor the cursor's filter. */
7427
7499
  league?: string;
7500
+ /** Comma-separated market condition ids to keep (0x and 64 hex digits, case-insensitive); at most 20. A polyv2 copy of a game is listed when its own condition id is named. With condition_id, an omitted sports_market_type keeps every type. Omitted: every market, or with cursor the cursor's filter. */
7501
+ condition_id?: string;
7502
+ /** Comma-separated event slugs to keep, matched exactly; at most 10. A polyv2 copy has its own slug (polyv2-nba-phi-chi-2026-11-08), and naming it lists the copy. Omitted: every event, or with cursor the cursor's filter. */
7503
+ event_slug?: string;
7428
7504
  /** Page size. Out-of-range values are clamped to 1..100. */
7429
7505
  limit?: number;
7430
- /** Opaque stl_v1_ cursor from next_cursor. It replaces since and keeps the filters it was issued for: a sports_market_type or league sent with it must match them, or the read answers 400 with error.reason cursor_expired. A cursor this endpoint did not issue returns 400 with error.param=cursor. */
7506
+ /** Opaque stl_v1_ cursor from next_cursor. It replaces since and keeps the filters it was issued for: a sports_market_type, league, condition_id or event_slug sent with it must match them, or the read answers 400 with error.reason cursor_expired. A cursor this endpoint did not issue returns 400 with error.param=cursor. */
7431
7507
  cursor?: string;
7432
7508
  };
7433
7509
  listSharpMoneyFlows: {