@0xinsider/sdk 0.14.0 → 0.16.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 +14 -0
- package/dist/client.d.ts +16 -73
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +12 -3
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/provenance.d.ts +2 -2
- package/dist/provenance.js +3 -3
- package/dist/schema.d.ts +166 -90
- package/dist/schema.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/schema.d.ts
CHANGED
|
@@ -802,10 +802,10 @@ export type LargeTrade = {
|
|
|
802
802
|
/** The Polymarket CLOB token id (ERC1155 asset id, decimal string) for the traded outcome; null when unavailable (e.g. unsynced markets) and for a Polymarket trade recorded before 2026-04-02T00:00:00Z, where the traded side is unknown. */
|
|
803
803
|
token_id: string | null;
|
|
804
804
|
price: number;
|
|
805
|
-
/** Current
|
|
805
|
+
/** Current trade review score on a 0..1 scale; higher values indicate a stronger review signal. This is the current response value and can differ from the recorded score. Missing measurements remain unavailable. */
|
|
806
806
|
review_score: number;
|
|
807
807
|
/**
|
|
808
|
-
*
|
|
808
|
+
* Deprecated alias of review_score with the same current value and 0..1 scale.
|
|
809
809
|
* @deprecated
|
|
810
810
|
*/
|
|
811
811
|
signal_score: number;
|
|
@@ -1205,16 +1205,18 @@ export type PickHolder = {
|
|
|
1205
1205
|
is_bot?: boolean;
|
|
1206
1206
|
/** The wallet's X handle from its Polymarket profile, normalized to 1-15 characters of [A-Za-z0-9_] with no `@`. Link it as `https://x.com/<handle>`. 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. */
|
|
1207
1207
|
x_username?: string | null;
|
|
1208
|
-
category_evidence?: HolderCategoryEvidence;
|
|
1209
1208
|
};
|
|
1210
1209
|
export type PickOfTheDay = {
|
|
1211
1210
|
/** Always 'full' for an authenticated Pro key. */
|
|
1212
1211
|
state: "full";
|
|
1213
1212
|
/** The pick's local publication date (YYYY-MM-DD). */
|
|
1214
1213
|
pick_date?: string;
|
|
1215
|
-
/**
|
|
1214
|
+
/**
|
|
1215
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
1216
|
+
* @deprecated
|
|
1217
|
+
*/
|
|
1216
1218
|
pick_rank?: number;
|
|
1217
|
-
/**
|
|
1219
|
+
/** Published picks for this product day in the returned display order. Use pick_id for identity. */
|
|
1218
1220
|
picks?: PickOfTheDay[];
|
|
1219
1221
|
/** Number of items in `picks`: the proof-readable picks. Picks held in `proof_pending_picks` are not counted. */
|
|
1220
1222
|
pick_count?: number;
|
|
@@ -1222,7 +1224,7 @@ export type PickOfTheDay = {
|
|
|
1222
1224
|
scheduled_picks?: ScheduledPickSlot[];
|
|
1223
1225
|
/** Human-readable matchup (e.g. "Portugal vs. Uzbekistan"). */
|
|
1224
1226
|
matchup?: string;
|
|
1225
|
-
/**
|
|
1227
|
+
/** Recorded canonical sport category. Prefer display_category for the public competition label. */
|
|
1226
1228
|
category?: string;
|
|
1227
1229
|
/** Frozen public presentation category: the competition the Polymarket event belongs to. A curated label comes first -- an official league (e.g. "WNBA" or "UFC"), the esports title (e.g. "CS2", "LoL", "Dota 2" or "Valorant"), or a soccer competition (e.g. "LaLiga", "Premier League", "Serie A" or "UEFA Champions League"); any other competition carries the provider's own competition name without its season year (e.g. "UEFA Nations League", "ATP" or "Wimbledon"). It equals category only when the provider names no competition. An esports pick keeps the pooled "Esports" bucket in category, so a per-title label never implies a per-title measured cohort. Additive and optional for mixed-version client compatibility. */
|
|
1228
1230
|
display_category?: string;
|
|
@@ -1248,23 +1250,19 @@ export type PickOfTheDay = {
|
|
|
1248
1250
|
position?: string;
|
|
1249
1251
|
/** 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. */
|
|
1250
1252
|
side_summary?: string;
|
|
1251
|
-
/**
|
|
1253
|
+
/** S/A wallet count on the backed side in the public V1 compatibility projection. */
|
|
1252
1254
|
sharp_wallet_count?: number;
|
|
1253
1255
|
/**
|
|
1254
|
-
* Deprecated spelling of sharp_wallet_count
|
|
1256
|
+
* Deprecated spelling of sharp_wallet_count with the same value.
|
|
1255
1257
|
* @deprecated
|
|
1256
1258
|
*/
|
|
1257
1259
|
smart_wallet_count?: number;
|
|
1258
|
-
/** Best
|
|
1260
|
+
/** Best recorded S/A grade in the public V1 compatibility projection. */
|
|
1259
1261
|
top_grade?: string;
|
|
1260
|
-
/**
|
|
1261
|
-
category_edge_pct?: number;
|
|
1262
|
-
/** Deprecated (#7170): no longer populated for picks selected on/after the calibration-edge change; omitted (absent) for new picks (the field uses skip_serializing_if, so a null value is dropped from the JSON rather than serialized as null). Permanently frozen-legacy -- retained for historical picks, with no removal or replacement planned, so no v2 is implied. Historical picks may still carry a value. Legacy meaning: pooled count of resolved markets behind category_edge_pct (the headline's n). */
|
|
1263
|
-
category_edge_sample?: number;
|
|
1264
|
-
/** Recency-weighted graded-flow magnitude in USD; omitted when <= 0. Canonical key since #16308; smart_usd is its deprecated spelling, emitted beside it with the same value. */
|
|
1262
|
+
/** Recorded sharp-money magnitude in USD when available. */
|
|
1265
1263
|
sharp_usd?: number;
|
|
1266
1264
|
/**
|
|
1267
|
-
* Deprecated spelling of sharp_usd
|
|
1265
|
+
* Deprecated spelling of sharp_usd with the same value.
|
|
1268
1266
|
* @deprecated
|
|
1269
1267
|
*/
|
|
1270
1268
|
smart_usd?: number;
|
|
@@ -1298,67 +1296,40 @@ export type PickOfTheDay = {
|
|
|
1298
1296
|
unit_score?: number;
|
|
1299
1297
|
/** Backend-formatted signed unit score, present exactly when unit_score is present. */
|
|
1300
1298
|
unit_score_display?: string;
|
|
1301
|
-
/**
|
|
1299
|
+
/** Recorded sharp-money share as a 0..1 fraction when available. This is not a winning probability. */
|
|
1302
1300
|
sharp_pct?: number;
|
|
1303
|
-
/**
|
|
1301
|
+
/** Recorded market-implied probability as a 0..1 fraction when available. */
|
|
1304
1302
|
market_pct?: number;
|
|
1305
|
-
/**
|
|
1306
|
-
consensus_edge_pct?: number;
|
|
1307
|
-
/** First-party/internal team-directional commitment read at selection time: the fraction (0..1) of the backed side's current-policy graded sharp-money DOLLARS held by wallets read one-way rather than hedged: no opposite leg on this market worth at least 10% of the backed leg (Polymarket's own currentValue pair), and no opposing team across the game's markets where the wallet's synced legs are fresh. Current public V1 rows omit this B-inclusive read because its historical S/A equivalent is not reconstructed. A high value means the graded pile is really committed to this side; a low one means much of it is hedged or unreadable. Omitted when the read was not computed (a pick selected before the field existed, an ungroupable game, an empty graded pile, or a pile where no holder carried usable evidence) -- which is NOT the same as 0.0, a computed reading that classified holders and found none one-way. */
|
|
1308
|
-
directional_confidence?: number;
|
|
1309
|
-
/** Graded backed-side holders read as one-way-committed on this game. */
|
|
1310
|
-
one_way_holder_count?: number;
|
|
1311
|
-
/** Graded backed-side holders read as HEDGED across the game's markets. */
|
|
1312
|
-
hedged_holder_count?: number;
|
|
1313
|
-
/** The one-way holders' share of the backed-side graded dollars (the confidence's numerator). */
|
|
1314
|
-
one_way_graded_usd?: number;
|
|
1315
|
-
/** Backed-side graded dollars the confidence is measured against (its denominator). */
|
|
1316
|
-
total_graded_usd?: number;
|
|
1317
|
-
/** The qualifying category expert whose sport-specific record and real position earned this pick its top selection tier. The first-party/internal current policy admits S/A/B; public V1 exposes a compatible S/A expert and omits a current-policy B-grade expert: a candidate backed by one outranks every candidate without one. Present only on the full payload. Omitted when no wallet qualified on the backed side, on picks generated before the field existed, and on the first-party web teaser, which withholds all backed-side evidence. Frozen at SELECTION time — the wallet's position can move before the pick renders. */
|
|
1303
|
+
/** Optional recorded specialist facts. These describe the trader and do not disclose selection decisions. Present only on a full response when available. */
|
|
1318
1304
|
qualifying_expert?: {
|
|
1319
|
-
/**
|
|
1305
|
+
/** Trader wallet address. */
|
|
1320
1306
|
address: string;
|
|
1321
1307
|
/** Provider display name, or null for an unnamed wallet. */
|
|
1322
1308
|
name: string | null;
|
|
1323
|
-
/**
|
|
1309
|
+
/** Recorded trader grade. Public V1 preserves its S/A compatibility projection. */
|
|
1324
1310
|
grade: string | null;
|
|
1325
1311
|
/** The canonical sport bucket the win rate was measured over (for example Basketball). Can be BROADER than the pick's display_category, which names an exact league such as NBA — label the rate with this field, never with display_category. */
|
|
1326
1312
|
canonical_category: string;
|
|
1327
|
-
/** Share of
|
|
1313
|
+
/** Share of the trader’s resolved markets in canonical_category with positive realized P&L, as a 0..1 fraction. Null when not measured. This is a trader statistic, not the pick’s probability of winning. */
|
|
1328
1314
|
win_rate: number | null;
|
|
1329
|
-
/**
|
|
1315
|
+
/** Number of resolved markets behind win_rate; null when not measured. */
|
|
1330
1316
|
n_resolved: number | null;
|
|
1331
|
-
/**
|
|
1332
|
-
source?: "v1" | "v2";
|
|
1333
|
-
/** 95% lower bound of the wallet's mean calibration edge over the market price in canonical_category, in probability units (0.08 is 8 points). Positive by construction for a v2 expert; present on a v1 expert only when the wallet also holds a live v2 row. */
|
|
1334
|
-
edge_lower_95?: number;
|
|
1335
|
-
/** Point estimate behind edge_lower_95. */
|
|
1336
|
-
edge_mean?: number;
|
|
1337
|
-
/** Independent canonical events behind the edge. At least 10 by construction for a v2 expert. */
|
|
1338
|
-
independent_event_count?: number;
|
|
1339
|
-
/** Polymarket's own currentValue for this wallet on the backed outcome, in USD, as of selection. At least 1000 by construction through gate policy v7; the standard floor is 500 from v8. From gate policy v5 the floor is read on the net: position_usd minus opposite_position_usd is at least that floor, and the pick re-verifies that net against the live holder snapshot when it is released. */
|
|
1317
|
+
/** Recorded Polymarket position value on the backed outcome, in USD. It can change after this snapshot. */
|
|
1340
1318
|
position_usd: number;
|
|
1341
|
-
/**
|
|
1319
|
+
/** Recorded position value on the other outcome of this market, in USD. Omitted when not recorded; zero is a measured value. */
|
|
1342
1320
|
opposite_position_usd?: number;
|
|
1343
|
-
/**
|
|
1321
|
+
/** Timestamp of the recorded trader statistics. */
|
|
1344
1322
|
stats_computed_at: string;
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
/** Answered, spread-gated, index-scoped backed probability frozen only on a specialist exception. */
|
|
1348
|
-
lane_probability?: number;
|
|
1349
|
-
/** Canonical provider probability pair branch; absent on standard experts. */
|
|
1350
|
-
lane_probability_source?: "p";
|
|
1351
|
-
};
|
|
1352
|
-
trust?: PickTrust;
|
|
1353
|
-
/** Public V1 S/A compatibility count on the backed side (equals the adapted sharp_wallet_count). The first-party/internal current policy counts S/A/B. Historical rows retain their frozen policy's count. */
|
|
1323
|
+
};
|
|
1324
|
+
/** Public V1 S/A wallet count on the backed side, equal to sharp_wallet_count. */
|
|
1354
1325
|
traders?: number;
|
|
1355
|
-
/**
|
|
1326
|
+
/** Recorded backed-side sharp-money value in USD when available. */
|
|
1356
1327
|
backed_sharp_usd?: number;
|
|
1357
|
-
/** Bounded S/A
|
|
1328
|
+
/** Bounded S/A holder display projection. Historical rows retain their recorded display shape. */
|
|
1358
1329
|
holders?: PickHolder[];
|
|
1359
|
-
/**
|
|
1330
|
+
/** Optional complete holder display roster. Each entry carries ordinary trader and recorded position facts. */
|
|
1360
1331
|
display_holders?: PickHolder[];
|
|
1361
|
-
/**
|
|
1332
|
+
/** S/A holder count for the public V1 compatibility projection. display_holders can include additional grades. */
|
|
1362
1333
|
holder_count?: number;
|
|
1363
1334
|
/** Optional editorial note attached to the pick. */
|
|
1364
1335
|
editorial_note?: string;
|
|
@@ -1370,18 +1341,24 @@ export type PickOfTheDay = {
|
|
|
1370
1341
|
polymarket_url?: string;
|
|
1371
1342
|
/** The canonical /event game-page slug (one neutral page per game); omitted when the game has no neutral event page. */
|
|
1372
1343
|
event_slug?: string;
|
|
1373
|
-
/** Backend-resolved /event destination slug for
|
|
1374
|
-
event_link_slug?: string;
|
|
1344
|
+
/** Backend-resolved /event destination slug for the source market. Omitted outside full responses; null is an authoritative no-link decision. */
|
|
1345
|
+
event_link_slug?: string | null;
|
|
1375
1346
|
/** Provider-first sports context for the pick's market (team logos, league branding, live score). Full-state only; omitted when the pick is not a team-sports market. */
|
|
1376
1347
|
sports_context?: PickSportsContext;
|
|
1377
1348
|
/** Risk disclaimer shown with every pick. */
|
|
1378
1349
|
disclaimer?: string;
|
|
1379
1350
|
/** Published same-day picks whose holder proof is not readable yet, ordered by pick_rank. Additive and optional: present only while at least one such pick exists. While present, `picks` carries only the proof-readable picks and `pick_count` counts them. Schedule the next read from the earliest retry_at instead of polling. The route returns 503 read_model_warming only when no published pick has readable proof. */
|
|
1380
1351
|
proof_pending_picks?: ProofPendingPickSlot[];
|
|
1381
|
-
/**
|
|
1382
|
-
selection_lane?: "standard" | "longshot_specialist";
|
|
1383
|
-
/** Optional full-only authorization for newly issued policy-7 picks; omitted for legacy or unissued picks and teasers. It remains historical after expiry. */
|
|
1352
|
+
/** Optional full-response entry authorization. Missing or expired authorization cannot authorize an automated entry. */
|
|
1384
1353
|
entry_authorization?: PotdEntryAuthorization;
|
|
1354
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
1355
|
+
pick_id?: string;
|
|
1356
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
1357
|
+
publication_order?: number;
|
|
1358
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
1359
|
+
is_free_selection?: boolean;
|
|
1360
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
1361
|
+
supersedes_pick_id: string | null;
|
|
1385
1362
|
};
|
|
1386
1363
|
export type PickOfTheDayArchive = {
|
|
1387
1364
|
/** Every published Pick of the Day, newest first by pick_date and then pick_rank within each product day. */
|
|
@@ -1413,7 +1390,10 @@ export type PickOfTheDayArchiveDay = {
|
|
|
1413
1390
|
export type PickOfTheDayArchiveEntry = {
|
|
1414
1391
|
/** The pick's local publication date (YYYY-MM-DD). */
|
|
1415
1392
|
pick_date: string;
|
|
1416
|
-
/**
|
|
1393
|
+
/**
|
|
1394
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
1395
|
+
* @deprecated
|
|
1396
|
+
*/
|
|
1417
1397
|
pick_rank?: number;
|
|
1418
1398
|
/** When this pick became public (RFC3339 UTC). pick_date above is the America/New_York product day, not an instant, so read this whenever you need a real time: reading the bare date as UTC midnight places it hours before the earliest instant a pick can drop (11:00 UTC on that date). A day's last pick can drop at 23:00 ET, which is the following UTC date. Omitted (not null) when the instant is unknown; additive and optional for mixed-version client compatibility. */
|
|
1419
1399
|
published_at?: string;
|
|
@@ -1465,9 +1445,19 @@ export type PickOfTheDayArchiveEntry = {
|
|
|
1465
1445
|
unit_score?: number;
|
|
1466
1446
|
/** Backend-formatted signed unit score, present exactly when unit_score is present. */
|
|
1467
1447
|
unit_score_display?: string;
|
|
1468
|
-
|
|
1448
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
1449
|
+
pick_id: string;
|
|
1450
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
1451
|
+
publication_order: number;
|
|
1452
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
1453
|
+
is_free_selection: boolean;
|
|
1454
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
1455
|
+
supersedes_pick_id: string | null;
|
|
1456
|
+
};
|
|
1457
|
+
/** Select using the entry commitment_version, never implicit payload shape. All historic v1 hashes remain unchanged. */
|
|
1458
|
+
export type PickOfTheDayCommitmentPayload = PickOfTheDayCommitmentPayloadV1 | PickOfTheDayCommitmentPayloadV2;
|
|
1469
1459
|
/** The frozen identity of the pick, exactly as the hash was taken over it. Served byte for byte as it was hashed -- keys sorted by UTF-8 byte value, no insignificant whitespace -- so a verifier concatenates and hashes with nothing to reconstruct. Property order below is the wire order. The outcome is deliberately NOT part of it: surviving a corrected outcome unchanged is the case the commitment exists for. Worked example: {"backed_price":"0.545000","condition_id":"0xabc","kickoff":"2026-09-20T23:05:00Z","pick_date":"2026-09-20","pick_outcome_index":1,"pick_outcome_label":"Lakers","pick_rank":1,"platform":"polymarket"} with the nonce 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f hashes to 44d18fa5e2aa3a2bf3c971dcc9317c8ccbdfd5480a4773b6d8ffd5fbeeea84dc. */
|
|
1470
|
-
export type
|
|
1460
|
+
export type PickOfTheDayCommitmentPayloadV1 = {
|
|
1471
1461
|
/** Frozen pre-game price of the backed side, 0..1, as the plain decimal text of the stored NUMERIC at full stored precision, trailing zeros included. A string, never a number: a float round-trip would change the bytes and break the hash. Deliberately not normalized -- 0.545000 stays "0.545000". */
|
|
1472
1462
|
backed_price: string;
|
|
1473
1463
|
/** Provider condition id of the backed market. */
|
|
@@ -1485,6 +1475,26 @@ export type PickOfTheDayCommitmentPayload = {
|
|
|
1485
1475
|
/** Provider platform. Always polymarket. */
|
|
1486
1476
|
platform: "polymarket";
|
|
1487
1477
|
};
|
|
1478
|
+
/** Version 2 rank-free canonical payload: sorted nine keys, unchanged string escaping, exact decimal text and whole-second UTC kickoff. pick_id is decimal text; version is JSON integer 2. */
|
|
1479
|
+
export type PickOfTheDayCommitmentPayloadV2 = {
|
|
1480
|
+
/** Frozen pre-game price of the backed side, 0..1, as the plain decimal text of the stored NUMERIC at full stored precision, trailing zeros included. A string, never a number: a float round-trip would change the bytes and break the hash. Deliberately not normalized -- 0.545000 stays "0.545000". */
|
|
1481
|
+
backed_price: string;
|
|
1482
|
+
/** Provider condition id of the backed market. */
|
|
1483
|
+
condition_id: string;
|
|
1484
|
+
/** Frozen provider kickoff, whole seconds, UTC, literal Z. Fixed precision, never a shortest-lossless rendering. */
|
|
1485
|
+
kickoff: string;
|
|
1486
|
+
/** ET product day (YYYY-MM-DD). */
|
|
1487
|
+
pick_date: string;
|
|
1488
|
+
/** Index of the backed outcome within the market. */
|
|
1489
|
+
pick_outcome_index: 0 | 1;
|
|
1490
|
+
/** Frozen display label of the backed outcome. */
|
|
1491
|
+
pick_outcome_label: string;
|
|
1492
|
+
/** Provider platform. Always polymarket. */
|
|
1493
|
+
platform: "polymarket";
|
|
1494
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
1495
|
+
pick_id: string;
|
|
1496
|
+
version: 2;
|
|
1497
|
+
};
|
|
1488
1498
|
export type PickOfTheDayHitRate = {
|
|
1489
1499
|
/** Number of decided picks that won. */
|
|
1490
1500
|
wins: number;
|
|
@@ -1580,7 +1590,10 @@ export type PickOfTheDayLedgerOpenedEntry = {
|
|
|
1580
1590
|
state: "opened";
|
|
1581
1591
|
/** ET product day the pick belongs to (YYYY-MM-DD). */
|
|
1582
1592
|
pick_date: string;
|
|
1583
|
-
/**
|
|
1593
|
+
/**
|
|
1594
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
1595
|
+
* @deprecated
|
|
1596
|
+
*/
|
|
1584
1597
|
pick_rank: number;
|
|
1585
1598
|
/** sha256(canonical_json(payload) || nonce), lowercase hex, no 0x prefix. Publishable the moment the pick releases: without the nonce it is not invertible. */
|
|
1586
1599
|
commitment_hash: string;
|
|
@@ -1603,13 +1616,26 @@ export type PickOfTheDayLedgerOpenedEntry = {
|
|
|
1603
1616
|
category: string;
|
|
1604
1617
|
/** The pick's public page. */
|
|
1605
1618
|
permalink: string;
|
|
1619
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
1620
|
+
pick_id: string;
|
|
1621
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
1622
|
+
publication_order: number;
|
|
1623
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
1624
|
+
is_free_selection: boolean;
|
|
1625
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
1626
|
+
supersedes_pick_id: string | null;
|
|
1627
|
+
/** Explicit proof provenance: 1 retains historic eight-field canonical JSON; 2 binds stable pick_id and version without pick_rank. */
|
|
1628
|
+
commitment_version: 1 | 2;
|
|
1606
1629
|
};
|
|
1607
1630
|
/** A published pick that has not settled. Carries the commitment and nothing that states a side or a price: no nonce, no payload, no outcome. Publishable the instant the pick releases. */
|
|
1608
1631
|
export type PickOfTheDayLedgerSealedEntry = {
|
|
1609
1632
|
state: "sealed";
|
|
1610
1633
|
/** ET product day the pick belongs to (YYYY-MM-DD). */
|
|
1611
1634
|
pick_date: string;
|
|
1612
|
-
/**
|
|
1635
|
+
/**
|
|
1636
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
1637
|
+
* @deprecated
|
|
1638
|
+
*/
|
|
1613
1639
|
pick_rank: number;
|
|
1614
1640
|
/** sha256(canonical_json(payload) || nonce), lowercase hex, no 0x prefix. Publishable the moment the pick releases: without the nonce it is not invertible. */
|
|
1615
1641
|
commitment_hash: string;
|
|
@@ -1621,13 +1647,26 @@ export type PickOfTheDayLedgerSealedEntry = {
|
|
|
1621
1647
|
kickoff: string;
|
|
1622
1648
|
/** The pick's public page. */
|
|
1623
1649
|
permalink: string;
|
|
1650
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
1651
|
+
pick_id: string;
|
|
1652
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
1653
|
+
publication_order: number;
|
|
1654
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
1655
|
+
is_free_selection: boolean;
|
|
1656
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
1657
|
+
supersedes_pick_id: string | null;
|
|
1658
|
+
/** Explicit proof provenance: 1 retains historic eight-field canonical JSON; 2 binds stable pick_id and version without pick_rank. */
|
|
1659
|
+
commitment_version: 1 | 2;
|
|
1624
1660
|
};
|
|
1625
1661
|
/** A published pick with no commitment: it predates the scheme, or it reached kickoff unsealed. Nothing here is evidence of WHEN the pick was made. It is emitted rather than skipped, because a ledger with holes where the unprovable picks were would silently flatter the record. Once the pick settles, payload names its market, side and price, so the outcome can still be checked against the market's own resolution. */
|
|
1626
1662
|
export type PickOfTheDayLedgerUncommittedEntry = {
|
|
1627
1663
|
state: "uncommitted";
|
|
1628
1664
|
/** ET product day the pick belongs to (YYYY-MM-DD). */
|
|
1629
1665
|
pick_date: string;
|
|
1630
|
-
/**
|
|
1666
|
+
/**
|
|
1667
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
1668
|
+
* @deprecated
|
|
1669
|
+
*/
|
|
1631
1670
|
pick_rank: number;
|
|
1632
1671
|
/** Always true: this pick has no commitment and never will. */
|
|
1633
1672
|
pre_commitment: true;
|
|
@@ -1643,6 +1682,14 @@ export type PickOfTheDayLedgerUncommittedEntry = {
|
|
|
1643
1682
|
payload: PickOfTheDayUncommittedPayload | null;
|
|
1644
1683
|
/** The pick's public page. */
|
|
1645
1684
|
permalink: string;
|
|
1685
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
1686
|
+
pick_id: string;
|
|
1687
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
1688
|
+
publication_order: number;
|
|
1689
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
1690
|
+
is_free_selection: boolean;
|
|
1691
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
1692
|
+
supersedes_pick_id: string | null;
|
|
1646
1693
|
};
|
|
1647
1694
|
/** 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. */
|
|
1648
1695
|
export type PickOfTheDayUncommittedPayload = {
|
|
@@ -1714,11 +1761,6 @@ export type PickSportsTeam = {
|
|
|
1714
1761
|
/** Completed sets won by this side. Present only when both sides expose the same set columns, so a partially parsed scoreline reports no tally rather than a misleading one. */
|
|
1715
1762
|
sets_won?: number;
|
|
1716
1763
|
};
|
|
1717
|
-
/** Field-level trust metadata for the full Pick of the Day payload. Present on the full shape only (omitted on the teaser and the no-pick state, because whether a specialist backs the pick is itself backed-side evidence). Unlike TraderTrust it is not gated behind expand=trust: it carries one member on an endpoint that returns a single object per day. */
|
|
1718
|
-
export type PickTrust = {
|
|
1719
|
-
/** Provenance of the frozen qualifying category expert. source.kind=database with reconciliation.status=db_mirror means the evidence deserialized, still satisfies every frozen selection gate, and is being served. On that arm freshness.status is always not_live and never fresh, because this evidence is frozen at selection and never refreshed, so on an archived pick the as_of (the expert's own stats_computed_at) can be days or months old by design. source.kind=computed with reconciliation.status=not_applicable means the selector evaluated the backed side and nobody qualified -- a real negative. source.kind=computed with freshness.status=unknown and completeness.status=not_computed means the selector never evaluated this field, as on a pre-feature pick. source.kind=unavailable means the payload is malformed, violates a selection gate, or conflicts with its persisted status, or the public V1 adapter intentionally omitted a current-policy B-grade expert; read the reason before treating it as a negative. Do not read an omitted qualifying_expert as 'no specialist' without checking this field. */
|
|
1720
|
-
qualifying_expert: TrustMetadata;
|
|
1721
|
-
};
|
|
1722
1764
|
export type PlatformCapabilities = {
|
|
1723
1765
|
grade: PlatformCapabilityStatus;
|
|
1724
1766
|
pnl: PlatformCapabilityStatus;
|
|
@@ -1828,7 +1870,7 @@ export type PositionTimelineEvent = {
|
|
|
1828
1870
|
/** Cumulative buy-weighted average of stored fills for this outcome, including older pages; not provider current-position avgPrice. Sells do not change this value. 0 when no stored buys have occurred yet. */
|
|
1829
1871
|
running_avg_price: number;
|
|
1830
1872
|
};
|
|
1831
|
-
/**
|
|
1873
|
+
/** Returned entry permission bound to the named market, token and outcome. Honor max_entry_price and expires_at, and check a current executable order book for the actual stake. This snapshot does not guarantee current liquidity, execution or positive expected value. */
|
|
1832
1874
|
export type PotdEntryAuthorization = {
|
|
1833
1875
|
version: 1;
|
|
1834
1876
|
authorization_id: string;
|
|
@@ -1840,13 +1882,13 @@ export type PotdEntryAuthorization = {
|
|
|
1840
1882
|
category: string;
|
|
1841
1883
|
/** Exact provider parent event ID, or provider event ID when no parent exists. */
|
|
1842
1884
|
canonical_event_id: string;
|
|
1843
|
-
/**
|
|
1885
|
+
/** Returned maximum entry price as an exact decimal string. Honor this bound; fees are excluded. This is not a fair probability. */
|
|
1844
1886
|
max_entry_price: string;
|
|
1845
1887
|
reference_best_ask: string;
|
|
1846
1888
|
reference_book_hash: string;
|
|
1847
1889
|
reference_book_at: string;
|
|
1848
1890
|
issued_at: string;
|
|
1849
|
-
/**
|
|
1891
|
+
/** Authorization expiry. An expired authorization cannot authorize a new automated entry. */
|
|
1850
1892
|
expires_at: string;
|
|
1851
1893
|
};
|
|
1852
1894
|
/** One ranked pre-game sports market where graded sharp money is piled on one side, with required-status shadow category evidence from partial forward-observed Polymarket fills. */
|
|
@@ -1855,7 +1897,7 @@ export type PreGameSide = {
|
|
|
1855
1897
|
side: string | null;
|
|
1856
1898
|
/** UTC time at which the snapshot that ranked this row was computed. Canonical spelling of signal_created_at (#16310), same value. */
|
|
1857
1899
|
ranked_at: string;
|
|
1858
|
-
/**
|
|
1900
|
+
/** Recorded side backing score; higher values indicate stronger backing. */
|
|
1859
1901
|
backing_score: number;
|
|
1860
1902
|
/** Signed share of graded money on the side, (yes_usd - no_usd)/(yes_usd + no_usd) in [-1, 1] (side-yes positive, side-no negative). Canonical spelling of smart_score (#16309, #16310), same value. */
|
|
1861
1903
|
side_share: number | null;
|
|
@@ -1898,7 +1940,7 @@ export type PreGameSide = {
|
|
|
1898
1940
|
/** Best grade present on the piled side; null when none. */
|
|
1899
1941
|
top_grade: "S" | "A" | "B" | null;
|
|
1900
1942
|
/**
|
|
1901
|
-
* Canonical sharp-money score (yes_usd - no_usd)/(yes_usd + no_usd) in [-1, 1] (piled-yes positive, piled-no negative)
|
|
1943
|
+
* Canonical sharp-money score (yes_usd - no_usd)/(yes_usd + no_usd) in [-1, 1] (piled-yes positive, piled-no negative). Deprecated (#16310): `side_share` is the canonical spelling and carries the same value; this key stays on the wire.
|
|
1902
1944
|
* @deprecated
|
|
1903
1945
|
*/
|
|
1904
1946
|
smart_score: number | null;
|
|
@@ -1907,7 +1949,7 @@ export type PreGameSide = {
|
|
|
1907
1949
|
/** Aggregate recent flow direction on the market; null when unavailable. */
|
|
1908
1950
|
net_side: "BUY" | "SELL" | null;
|
|
1909
1951
|
/**
|
|
1910
|
-
*
|
|
1952
|
+
* Recorded conviction score; higher values indicate stronger conviction.
|
|
1911
1953
|
* @deprecated
|
|
1912
1954
|
*/
|
|
1913
1955
|
conviction_score: number;
|
|
@@ -1919,7 +1961,7 @@ export type PreGameSide = {
|
|
|
1919
1961
|
one_way_graded_usd: number | null;
|
|
1920
1962
|
/** One-way fraction of the piled graded dollars, in [0, 1] -- the metric orthogonal to sharp_pct. Stale, unknown, hedged, and two-sided dollars dilute it toward zero (conservative). Null when the directional read was not computed or classified nobody. */
|
|
1921
1963
|
directional_confidence: number | null;
|
|
1922
|
-
/**
|
|
1964
|
+
/** Recorded side ordering score; higher values sort first. */
|
|
1923
1965
|
directional_rank_score: number;
|
|
1924
1966
|
category_skill: PreGameSideCategorySkill;
|
|
1925
1967
|
/** 1-based rank within the (min_grade-filtered) ranked result. */
|
|
@@ -1956,7 +1998,7 @@ export type PreGameSideFunnelReport = {
|
|
|
1956
1998
|
export type PreGameSideObservation = {
|
|
1957
1999
|
/** 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. */
|
|
1958
2000
|
side: string | null;
|
|
1959
|
-
/**
|
|
2001
|
+
/** Recorded side backing score; higher values indicate stronger backing. */
|
|
1960
2002
|
backing_score: number;
|
|
1961
2003
|
/** Signed share of graded money on the side, in [-1, 1]. Canonical spelling of smart_score (#16309, #16310), same value. */
|
|
1962
2004
|
side_share: number;
|
|
@@ -2010,7 +2052,7 @@ export type PreGameSideObservation = {
|
|
|
2010
2052
|
/** Strictly positive stored market volume in USD. Missing, zero, or non-finite volume terminates as invalid_market and is never emitted as an observation. */
|
|
2011
2053
|
volume: number;
|
|
2012
2054
|
/**
|
|
2013
|
-
*
|
|
2055
|
+
* Recorded conviction score; higher values indicate stronger conviction.
|
|
2014
2056
|
* @deprecated
|
|
2015
2057
|
*/
|
|
2016
2058
|
conviction_score: number;
|
|
@@ -2026,7 +2068,7 @@ export type PreGameSideObservation = {
|
|
|
2026
2068
|
hedged_holder_count: number | null;
|
|
2027
2069
|
one_way_graded_usd: number | null;
|
|
2028
2070
|
directional_confidence: number | null;
|
|
2029
|
-
/**
|
|
2071
|
+
/** Recorded side ordering score; higher values sort first. */
|
|
2030
2072
|
directional_rank_score: number;
|
|
2031
2073
|
/** 1-based rank within this observation cohort and snapshot. */
|
|
2032
2074
|
rank: number;
|
|
@@ -2059,7 +2101,10 @@ export type PreGameSideSportFunnelReport = {
|
|
|
2059
2101
|
};
|
|
2060
2102
|
/** One PUBLISHED same-day pick whose holder proof is not readable yet: its stable slot rank, the release and kickoff instants, and the instant before which a retry cannot succeed. Every item in `picks` carries its full required shape, so a pick that cannot meet it is listed here instead of being served with missing fields or a synthetic zero. */
|
|
2061
2103
|
export type ProofPendingPickSlot = {
|
|
2062
|
-
/**
|
|
2104
|
+
/**
|
|
2105
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
2106
|
+
* @deprecated
|
|
2107
|
+
*/
|
|
2063
2108
|
pick_rank: number;
|
|
2064
2109
|
/** The pick's stored release instant. */
|
|
2065
2110
|
release_at: string;
|
|
@@ -2067,6 +2112,14 @@ export type ProofPendingPickSlot = {
|
|
|
2067
2112
|
kickoff?: string;
|
|
2068
2113
|
/** Recommended next read: 30 seconds ahead while pre-game proof is warming, one hour ahead for a post-kickoff pending legacy row that only settlement can make readable. Schedule against it instead of polling. */
|
|
2069
2114
|
retry_at: string;
|
|
2115
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
2116
|
+
pick_id: string;
|
|
2117
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
2118
|
+
publication_order: number;
|
|
2119
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
2120
|
+
is_free_selection: boolean;
|
|
2121
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
2122
|
+
supersedes_pick_id: string | null;
|
|
2070
2123
|
};
|
|
2071
2124
|
export type ReportPayload = {
|
|
2072
2125
|
/** Canonical key since #16304; total_whale_trades is its deprecated spelling, emitted beside it with the same value. */
|
|
@@ -2198,12 +2251,23 @@ export type ResponseMeta = {
|
|
|
2198
2251
|
};
|
|
2199
2252
|
/** One same-day pick that is selected but not yet released: its stable slot rank plus the backend-owned release and kickoff instants. Deliberately minimal -- no matchup, category, platform, side, price, or holder fields exist on this shape before release. */
|
|
2200
2253
|
export type ScheduledPickSlot = {
|
|
2201
|
-
/**
|
|
2254
|
+
/**
|
|
2255
|
+
* Deprecated compatibility daily release slot; use pick_id for identity and publication_order for scheduling.
|
|
2256
|
+
* @deprecated
|
|
2257
|
+
*/
|
|
2202
2258
|
pick_rank: number;
|
|
2203
2259
|
/** The slot's scheduled release instant, normally the current provider kickoff minus one hour. The actual publish can trail it by bounded worker delay. */
|
|
2204
2260
|
release_at: string;
|
|
2205
2261
|
/** The backed game's current kickoff instant. */
|
|
2206
2262
|
kickoff: string;
|
|
2263
|
+
/** Stable pick row identity as decimal text. Never use a quality rank as identity. */
|
|
2264
|
+
pick_id: string;
|
|
2265
|
+
/** Compatibility release slot. No quality claim; historic scheduling order is retained. */
|
|
2266
|
+
publication_order: number;
|
|
2267
|
+
/** Viewer-independent free selection designation. New rows store it explicitly; historic null storage uses the original free slot. */
|
|
2268
|
+
is_free_selection: boolean;
|
|
2269
|
+
/** Replacement predecessor stable id; null when no lineage is recorded. */
|
|
2270
|
+
supersedes_pick_id: string | null;
|
|
2207
2271
|
};
|
|
2208
2272
|
/** One side's score in a single set. The verbatim provider text stays on the team's `score` string; this is the parsed form. */
|
|
2209
2273
|
export type ScoreCell = {
|
|
@@ -2321,9 +2385,9 @@ export type Trader = {
|
|
|
2321
2385
|
/** Hot-streak tier (trailing-7d cross-sectional percentile); a separate axis from the all-time grade. Omitted when there is no recent activity. */
|
|
2322
2386
|
streak_tier?: "hot" | "rising" | "neutral" | "cooling" | "cold";
|
|
2323
2387
|
score?: number;
|
|
2324
|
-
/**
|
|
2388
|
+
/** Optional forecast score on the documented display scale. Null when unavailable. */
|
|
2325
2389
|
forecast_score?: number;
|
|
2326
|
-
/**
|
|
2390
|
+
/** Optional measured forecast context. Missing values remain unavailable rather than being inferred. */
|
|
2327
2391
|
forecast_evidence?: number;
|
|
2328
2392
|
rank?: number;
|
|
2329
2393
|
pnl: {
|
|
@@ -2352,11 +2416,11 @@ export type Trader = {
|
|
|
2352
2416
|
description?: string;
|
|
2353
2417
|
confidence?: number;
|
|
2354
2418
|
};
|
|
2355
|
-
/** Per-category
|
|
2419
|
+
/** Per-category rank context when expand=categories is requested. Values include available rank, category totals, performance and record counts; scaled_total_pnl is a legacy alias of total_pnl. Its measurement basis and update timing differ from the plain record returned by GET /api/v1/trader/{address}/categories, so the two need not agree. Use this for rank context and that route for the plain record. The inner key-set is intentionally unconstrained and may contain additional compatibility fields. */
|
|
2356
2420
|
category_strengths?: Record<string, unknown>;
|
|
2357
2421
|
/** Curated advanced risk/performance metrics (expand=quant_metrics or expand[]=quant_metrics). Omitted unless expanded and backed by a computed row strictly under six hours old; a missing row, NULL computed_at, or age of exactly six hours or more is stale and omitted. Provider-input changes may intentionally lag inside the bounded six-hour window. When present, all listed fields are present (each is a number or null); null means insufficient trade history and must not be treated as 0. The fixed field shape is unchanged. */
|
|
2358
2422
|
quant_metrics?: {
|
|
2359
|
-
/**
|
|
2423
|
+
/** Trader smart score on a 0..100 display scale; higher is stronger. Null when unavailable. */
|
|
2360
2424
|
smart_score: number | null;
|
|
2361
2425
|
/** 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 worst single-trade loss exceeds 30%, -10 if edge is inconsistent; result clamped to 0-100. Higher means easier to follow. null when insufficient history. */
|
|
2362
2426
|
copy_score: number | null;
|
|
@@ -3254,6 +3318,7 @@ export interface OperationData {
|
|
|
3254
3318
|
getPickOfTheDay: PickOfTheDay;
|
|
3255
3319
|
getPickOfTheDayArchive: PickOfTheDayArchive;
|
|
3256
3320
|
getPickOfTheDayLedger: PickOfTheDayLedger;
|
|
3321
|
+
getPickOfTheDayLedgerEntry: PickOfTheDayLedgerEntry;
|
|
3257
3322
|
getPlatforms: Platforms;
|
|
3258
3323
|
getPositionTimeline: PositionTimelineEvent[];
|
|
3259
3324
|
getPositionTimelineById: PositionTimelineEvent[];
|
|
@@ -3636,6 +3701,7 @@ export interface OperationQuery {
|
|
|
3636
3701
|
getPickOfTheDay: Record<string, never>;
|
|
3637
3702
|
getPickOfTheDayArchive: Record<string, never>;
|
|
3638
3703
|
getPickOfTheDayLedger: Record<string, never>;
|
|
3704
|
+
getPickOfTheDayLedgerEntry: Record<string, never>;
|
|
3639
3705
|
getPlatforms: Record<string, never>;
|
|
3640
3706
|
getPositionTimeline: {
|
|
3641
3707
|
/** Market condition_id. One timeline per (trader, market). */
|
|
@@ -4130,6 +4196,10 @@ export interface OperationPath {
|
|
|
4130
4196
|
getPickOfTheDay: Record<string, never>;
|
|
4131
4197
|
getPickOfTheDayArchive: Record<string, never>;
|
|
4132
4198
|
getPickOfTheDayLedger: Record<string, never>;
|
|
4199
|
+
getPickOfTheDayLedgerEntry: {
|
|
4200
|
+
/** Stable positive pick row id as canonical decimal text. */
|
|
4201
|
+
pick_id: string;
|
|
4202
|
+
};
|
|
4133
4203
|
getPlatforms: Record<string, never>;
|
|
4134
4204
|
getPositionTimeline: {
|
|
4135
4205
|
/** Trader identity: 0x... wallet address, username, trd_-prefixed trader id, bare integer traders.id, or @username. Resolved with precedence @username -> wallet -> trd_ -> integer -> username (a leading @ forces a username lookup, for all-digit usernames); wallet matching is case-insensitive. */
|
|
@@ -4324,6 +4394,7 @@ export interface OperationBody {
|
|
|
4324
4394
|
getPickOfTheDay: never;
|
|
4325
4395
|
getPickOfTheDayArchive: never;
|
|
4326
4396
|
getPickOfTheDayLedger: never;
|
|
4397
|
+
getPickOfTheDayLedgerEntry: never;
|
|
4327
4398
|
getPlatforms: never;
|
|
4328
4399
|
getPositionTimeline: never;
|
|
4329
4400
|
getPositionTimelineById: never;
|
|
@@ -4546,6 +4617,11 @@ export interface OperationResponse {
|
|
|
4546
4617
|
data: OperationData["getPickOfTheDayLedger"];
|
|
4547
4618
|
meta: ResponseMeta;
|
|
4548
4619
|
};
|
|
4620
|
+
getPickOfTheDayLedgerEntry: {
|
|
4621
|
+
object: "pick_of_the_day_ledger_entry";
|
|
4622
|
+
data: OperationData["getPickOfTheDayLedgerEntry"];
|
|
4623
|
+
meta: ResponseMeta;
|
|
4624
|
+
};
|
|
4549
4625
|
getPlatforms: {
|
|
4550
4626
|
object: "platforms";
|
|
4551
4627
|
data: OperationData["getPlatforms"];
|