@0xinsider/mcp 3.19.0 → 3.20.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/README.md +9 -0
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/sdk/schema.d.ts +49 -11
- package/dist/sdk/schema.d.ts.map +1 -1
- package/dist/tools/pick-of-the-day.js +7 -7
- package/dist/tools/pick-of-the-day.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -55,6 +55,15 @@ received, followed by the hex-decoded nonce, with SHA-256 and compare the result
|
|
|
55
55
|
`commitment_hash`. `0xinsider pick ledger` prints every published commitment in one
|
|
56
56
|
document. Both reads are public and need no login or key.
|
|
57
57
|
|
|
58
|
+
## Upgrade to 3.20.0
|
|
59
|
+
|
|
60
|
+
Version 3.20 adds the record at the ask. `pick stats` and the `get_pick_of_the_day_stats`
|
|
61
|
+
tool now return `ask_comparison`: the settled picks that recorded the best ask at
|
|
62
|
+
publication (since 2026-10-17), valued at the midpoint the record uses and at that ask,
|
|
63
|
+
each with units and ROI, before fees. It is in the default summary, and `sections`
|
|
64
|
+
accepts `ask_comparison`. The record itself stays at the midpoint. Every other field,
|
|
65
|
+
command, exit code and tool is unchanged.
|
|
66
|
+
|
|
58
67
|
## Upgrade to 3.19.0
|
|
59
68
|
|
|
60
69
|
Version 3.19 treats wallet names the way the remote MCP server does. Tool results and
|
package/dist/constants.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const API_BASE_URL = "https://api.0xinsider.com";
|
|
2
2
|
export declare const SITE_URL = "https://0xinsider.com";
|
|
3
3
|
export declare const DEVELOPERS_URL = "https://0xinsider.com/developers";
|
|
4
|
-
export declare const VERSION = "3.
|
|
4
|
+
export declare const VERSION = "3.20.0";
|
|
5
5
|
export declare const PACKAGE_NAME = "@0xinsider/mcp";
|
|
6
6
|
export declare const SERVER_NAME = "0xinsider";
|
|
7
7
|
export declare const API_KEY_ENV_VAR = "OXINSIDER_API_KEY";
|
package/dist/constants.js
CHANGED
|
@@ -14,7 +14,7 @@ export const DEVELOPERS_URL = `${SITE_URL}/developers`;
|
|
|
14
14
|
// flow runs `cd mcp && npm ci` from a clean checkout, where `web/node_modules` need not
|
|
15
15
|
// exist.
|
|
16
16
|
// generated-package-version:start
|
|
17
|
-
export const VERSION = "3.
|
|
17
|
+
export const VERSION = "3.20.0";
|
|
18
18
|
// generated-package-version:end
|
|
19
19
|
export const PACKAGE_NAME = "@0xinsider/mcp";
|
|
20
20
|
export const SERVER_NAME = "0xinsider";
|
package/dist/sdk/schema.d.ts
CHANGED
|
@@ -2814,11 +2814,11 @@ export type PickOfTheDay = {
|
|
|
2814
2814
|
outcome?: "pending" | "win" | "loss" | "void";
|
|
2815
2815
|
/** Pre-formatted SETTLEMENT STATUS for display: "Win" / "Loss" / "Void" / "Pending" -- the outcome enum above as a label. Convenience only; outcome is the source value. NOTE: this is the win/loss STATUS, not the backed side. The backed side is pick_outcome_label ("Belgium (-2.5)") -- a different field answering a different question. */
|
|
2816
2816
|
outcome_display?: string;
|
|
2817
|
-
/** The backed side
|
|
2817
|
+
/** The backed side as a short label: a team for a moneyline (e.g. "Bengals"), the team and handicap for a spread (e.g. "Seahawks (-14.5)"), the line and side for a total (e.g. "O/U 38.5 (Under)"), or "{team} to advance" for a knockout advancement market (e.g. "Spain to advance"). */
|
|
2818
2818
|
pick_outcome_label?: string;
|
|
2819
2819
|
/** The Polymarket CLOB token id (ERC1155 asset id, decimal string) for the backed outcome; omitted when unavailable (e.g. unsynced markets). */
|
|
2820
2820
|
token_id?: string;
|
|
2821
|
-
/** The backed side
|
|
2821
|
+
/** The backed side as the pick's headline reads it (e.g. "Bengals to win", "Seahawks (-14.5)", "O/U 38.5 (Under)"). */
|
|
2822
2822
|
position?: string;
|
|
2823
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 the pick lists 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 list can leave out wallets that hold the side. The site's "profitable wallets" counts the S, A and B grade wallets the pick lists, 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. */
|
|
2824
2824
|
side_summary?: string;
|
|
@@ -2919,7 +2919,7 @@ export type PickOfTheDay = {
|
|
|
2919
2919
|
disclaimer?: string;
|
|
2920
2920
|
/** Entitled published picks whose holder proof is unreadable, ordered by rank. Unauthorized ranks appear only in locked_picks and cannot trigger proof warming. Read retry_at for the next read. */
|
|
2921
2921
|
proof_pending_picks?: ProofPendingPickSlot[];
|
|
2922
|
-
/** Optional full-response entry authorization. Missing or expired authorization cannot authorize an automated entry. */
|
|
2922
|
+
/** Optional full-response entry authorization. The pick's release issues it once, only when a fresh check then finds the pick meets the selection standard in force at release and its current price still allows an entry. A pick released without one never gains one later, so read its absence as no automated entry for this pick, not as pending. Missing or expired authorization cannot authorize an automated entry. */
|
|
2923
2923
|
entry_authorization?: PotdEntryAuthorization;
|
|
2924
2924
|
/** Unauthorized unresolved published or scheduled ranks. Contains no game, provider identity, price, or identifying clock. Pro may upgrade to Max to open these ranks. */
|
|
2925
2925
|
locked_picks?: {
|
|
@@ -2939,7 +2939,7 @@ export type PickOfTheDay = {
|
|
|
2939
2939
|
* @deprecated
|
|
2940
2940
|
*/
|
|
2941
2941
|
supersedes_pick_id: string | null;
|
|
2942
|
-
/** Optional full-only lead wallet publication facts.
|
|
2942
|
+
/** Optional full-only lead wallet publication facts: the profitable wallet whose position and record certified the pick when it was released. Many picks have no certified lead, and a pick released without one never gains one later. Also omitted on legacy picks or when the recorded evidence is unavailable in this response. */
|
|
2943
2943
|
lead_backer?: PickLeadBacker;
|
|
2944
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
2945
|
more_picks_until?: string;
|
|
@@ -3006,6 +3006,8 @@ export type PickOfTheDay = {
|
|
|
3006
3006
|
};
|
|
3007
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
3008
|
published_at?: string;
|
|
3009
|
+
/** When outcome was LAST written to a settled value (RFC3339 UTC), the same instant the archive and the commitment ledger return for the pick. It moves with a corrected market re-mapping an already-settled pick. Omitted (not null) for a pending pick and for a pick that settled before the instant was recorded, so absence means the instant is unknown, never that the pick is unsettled -- outcome answers that. Additive and optional for mixed-version client compatibility. */
|
|
3010
|
+
resolved_at?: string;
|
|
3009
3011
|
};
|
|
3010
3012
|
export type PickOfTheDayArchive = {
|
|
3011
3013
|
/** 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. */
|
|
@@ -3849,6 +3851,23 @@ export type PickOfTheDayStats = {
|
|
|
3849
3851
|
pick_id: string;
|
|
3850
3852
|
pick_rank: number;
|
|
3851
3853
|
}[];
|
|
3854
|
+
ask_comparison: {
|
|
3855
|
+
ask: {
|
|
3856
|
+
roi_display: string | null;
|
|
3857
|
+
roi_pct: number | null;
|
|
3858
|
+
units: number | null;
|
|
3859
|
+
units_display: string | null;
|
|
3860
|
+
};
|
|
3861
|
+
from_date: string | null;
|
|
3862
|
+
from_date_display: string | null;
|
|
3863
|
+
midpoint: {
|
|
3864
|
+
roi_display: string | null;
|
|
3865
|
+
roi_pct: number | null;
|
|
3866
|
+
units: number | null;
|
|
3867
|
+
units_display: string | null;
|
|
3868
|
+
};
|
|
3869
|
+
valued_decided: number;
|
|
3870
|
+
};
|
|
3852
3871
|
};
|
|
3853
3872
|
/** 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`. */
|
|
3854
3873
|
export type PickOfTheDayStatsSections = {
|
|
@@ -4289,6 +4308,23 @@ export type PickOfTheDayStatsSections = {
|
|
|
4289
4308
|
pick_id: string;
|
|
4290
4309
|
pick_rank: number;
|
|
4291
4310
|
}[];
|
|
4311
|
+
ask_comparison?: {
|
|
4312
|
+
ask: {
|
|
4313
|
+
roi_display: string | null;
|
|
4314
|
+
roi_pct: number | null;
|
|
4315
|
+
units: number | null;
|
|
4316
|
+
units_display: string | null;
|
|
4317
|
+
};
|
|
4318
|
+
from_date: string | null;
|
|
4319
|
+
from_date_display: string | null;
|
|
4320
|
+
midpoint: {
|
|
4321
|
+
roi_display: string | null;
|
|
4322
|
+
roi_pct: number | null;
|
|
4323
|
+
units: number | null;
|
|
4324
|
+
units_display: string | null;
|
|
4325
|
+
};
|
|
4326
|
+
valued_decided: number;
|
|
4327
|
+
};
|
|
4292
4328
|
};
|
|
4293
4329
|
/** 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. */
|
|
4294
4330
|
export type PickOfTheDayUncommittedPayload = {
|
|
@@ -4317,9 +4353,9 @@ export type PickSportsContext = {
|
|
|
4317
4353
|
competition_label?: string;
|
|
4318
4354
|
/** League logo URL (provider-owned). */
|
|
4319
4355
|
league_logo: string | null;
|
|
4320
|
-
/** The team mapped to the market's YES outcome, or the
|
|
4356
|
+
/** The team mapped to the market's YES outcome, or the game's first team when event_matchup is true. To lay the two teams out in the game's order, read side_order. */
|
|
4321
4357
|
yes_team: PickSportsTeam | null;
|
|
4322
|
-
/** The team mapped to the market's NO outcome, or the
|
|
4358
|
+
/** The team mapped to the market's NO outcome, or the game's second team when event_matchup is true. */
|
|
4323
4359
|
no_team: PickSportsTeam | null;
|
|
4324
4360
|
/** Provider game identifier (Polymarket Gamma gameId); omitted when the provider supplies none. */
|
|
4325
4361
|
game_id?: number;
|
|
@@ -4327,14 +4363,16 @@ export type PickSportsContext = {
|
|
|
4327
4363
|
event_matchup: boolean;
|
|
4328
4364
|
/** Present only alongside event_matchup: the event team the binary leg is about (provider group_item_title matched to a matchup team, e.g. Belgium for "Will Belgium win?"), i.e. the winner on a Yes resolution. Omitted for teamless legs (draw, totals, prop). */
|
|
4329
4365
|
event_subject_team?: PickSportsTeam;
|
|
4330
|
-
/**
|
|
4366
|
+
/** Which of yes_team and no_team the game lists first, in Polymarket's order for the event (the order of its title: the away team first in US leagues, the home team first in soccer). yes_first when yes_team is the first team, no_first when no_team is. A spread's Yes side is the favorite, so it is often the game's second team. Lay the teams out in this order to show every pick on one game the same way; yes_team and no_team keep their Yes and No meaning. Omitted when the order is unknown: lay out yes_team first. */
|
|
4367
|
+
side_order?: "yes_first" | "no_first";
|
|
4368
|
+
/** The two teams as a single whole-game label, joined "<first> – <second>" (en-dash) in the game's order, the order side_order names (e.g. "LA Clippers – Phoenix Suns"), so every pick on one game carries the same title. Composed server-side from the provider team names (no title/slug parsing). Present when both teams resolve a name; omitted for single-subject, teamless, or non-two-team contexts. */
|
|
4331
4369
|
matchup_title?: string;
|
|
4332
4370
|
};
|
|
4333
4371
|
/** A single sports team or competitor in a Pick of the Day market's sports context. Identity and score fields are provider-owned and nullable. The structured score fields (`sets`, `format`, `sets_won`) and the tennis fields (`headshot`, `headshot_revision`, `tour`) are backend-owned and are OMITTED rather than null when they do not apply, so a consumer must treat an absent key and a null the same way. */
|
|
4334
4372
|
export type PickSportsTeam = {
|
|
4335
4373
|
/** Team display label as it appears on the market outcome (e.g. "Portugal"). */
|
|
4336
4374
|
label: string | null;
|
|
4337
|
-
/**
|
|
4375
|
+
/** The team's abbreviation in upper case (e.g. "POR"), the same on every market of the game. A competitor Polymarket gives no abbreviation can carry its name here instead. */
|
|
4338
4376
|
short_label: string | null;
|
|
4339
4377
|
/** The name to show for this team or competitor, the same on every surface (e.g. "UCF Knights", "Oklahoma City Thunder", "Portugal"). `label` keeps the market outcome's own spelling. */
|
|
4340
4378
|
full_name: string | null;
|
|
@@ -7125,10 +7163,10 @@ export interface OperationQuery {
|
|
|
7125
7163
|
getPickOfTheDayStats: {
|
|
7126
7164
|
/** 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. */
|
|
7127
7165
|
view?: "full" | "summary";
|
|
7128
|
-
/** 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. */
|
|
7129
|
-
sections?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "days" | "categories" | "sports" | "tiers" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
7166
|
+
/** 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, ask_comparison, 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. */
|
|
7167
|
+
sections?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "ask_comparison" | "days" | "categories" | "sports" | "tiers" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
7130
7168
|
/** Backward-compatible bracket alias for sections, for clients that emit array keys. Repeatable and comma-separated, with the same names. */
|
|
7131
|
-
"sections[]"?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "days" | "categories" | "sports" | "tiers" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
7169
|
+
"sections[]"?: ("hit_rate" | "series" | "market_expectations" | "outcome_stats" | "ask_comparison" | "days" | "categories" | "sports" | "tiers" | "months" | "price_bands" | "market_types" | "total_sides" | "streaks" | "records" | "voids")[];
|
|
7132
7170
|
};
|
|
7133
7171
|
getPlatforms: Record<string, never>;
|
|
7134
7172
|
getPositionTimeline: {
|