@structbuild/sdk 0.5.5 → 0.5.6-staging.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.
@@ -86,15 +86,10 @@ export interface components {
86
86
  slug?: string | null;
87
87
  event_slug?: string | null;
88
88
  };
89
- /** @description Subscription filters for the `asset_price_tick` event. All fields are optional. */
90
- AssetPriceTickFilters: {
91
- /** @description Restrict to these crypto assets. Empty = all assets. */
92
- asset_symbols?: components["schemas"]["WebhookAssetSymbol"][] | null;
93
- };
94
89
  /** @description Webhook payload for an asset price tick. */
95
90
  AssetPriceTickPayload: {
96
- /** @description Asset symbol */
97
- symbol: components["schemas"]["WebhookAssetSymbol"];
91
+ /** @description Asset symbol: "BTC", "ETH", "SOL", "XRP", "DOGE", "BNB", or "HYPE" */
92
+ symbol: string;
98
93
  /**
99
94
  * Format: double
100
95
  * @description Current price from the Chainlink feed
@@ -106,19 +101,12 @@ export interface components {
106
101
  */
107
102
  timestamp_ms: number;
108
103
  };
109
- /** @description Subscription filters for the `asset_price_window_update` event. All fields are optional. */
110
- AssetPriceWindowUpdateFilters: {
111
- /** @description Restrict to these crypto assets. Empty = all assets. */
112
- asset_symbols?: components["schemas"]["WebhookAssetSymbol"][] | null;
113
- /** @description Restrict to these candle sizes. Empty = all sizes. */
114
- timeframes?: components["schemas"]["AssetWindowFilterTimeframe"][] | null;
115
- };
116
104
  /** @description Webhook payload for an asset price window open or close. */
117
105
  AssetPriceWindowUpdatePayload: {
118
- /** @description Asset symbol */
119
- symbol: components["schemas"]["WebhookAssetSymbol"];
120
- /** @description Time-window variant */
121
- variant: components["schemas"]["AssetPriceWindowVariant"];
106
+ /** @description Asset symbol: "BTC", "ETH", "SOL", "XRP", "DOGE", "BNB", or "HYPE" */
107
+ symbol: string;
108
+ /** @description Time-window variant: "5m", "15m", "1h", "4h", "1d", or "24h" */
109
+ variant: string;
122
110
  /**
123
111
  * Format: int64
124
112
  * @description Window start timestamp (milliseconds since epoch)
@@ -140,50 +128,7 @@ export interface components {
140
128
  */
141
129
  close_price: number;
142
130
  /** @description "open" when the window starts, "close" when the window is complete */
143
- update_type: components["schemas"]["AssetPriceWindowUpdateType"];
144
- };
145
- /**
146
- * @description Whether this update is the open or the close of a candle.
147
- * @enum {string}
148
- */
149
- AssetPriceWindowUpdateType: "open" | "close";
150
- /**
151
- * @description Time-window variant emitted by the asset price window stream.
152
- * @enum {string}
153
- */
154
- AssetPriceWindowVariant: "5m" | "15m" | "1h" | "4h" | "1d" | "24h";
155
- /**
156
- * @description Candle sizes accepted by `asset_price_window_update.timeframes`.
157
- * @enum {string}
158
- */
159
- AssetWindowFilterTimeframe: "5m" | "15m" | "1h" | "4h" | "1d" | "24h";
160
- /**
161
- * @description Subscription filters for the `close_to_bond` event. At least one of
162
- * `min_probability` or `max_probability` is required (enforced at runtime).
163
- */
164
- CloseToBondFilters: {
165
- /**
166
- * Format: double
167
- * @description Trigger when the YES outcome price is ≥ this value (e.g. 0.95 for 95% certainty). At least one of `min_probability` or `max_probability` must be set.
168
- */
169
- min_probability?: number | null;
170
- /**
171
- * Format: double
172
- * @description Trigger when the YES outcome price is ≤ this value (e.g. 0.05 for near-certain NO).
173
- */
174
- max_probability?: number | null;
175
- /** @description Restrict to these markets. */
176
- condition_ids?: string[] | null;
177
- /** @description Restrict to these outcome token IDs. */
178
- position_ids?: string[] | null;
179
- /** @description Restrict to markets in these events. */
180
- event_slugs?: string[] | null;
181
- /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
182
- outcomes?: string[] | null;
183
- /** @description Restrict by outcome index. 0 = Yes/Up, 1 = No. Position 0 usually represents the Up/Yes side in binary markets. */
184
- position_outcome_indices?: number[] | null;
185
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
186
- exclude_shortterm_markets?: boolean | null;
131
+ update_type: string;
187
132
  };
188
133
  /** @description Close-to-bond webhook payload */
189
134
  CloseToBondPayload: {
@@ -257,31 +202,17 @@ export interface components {
257
202
  */
258
203
  threshold: number;
259
204
  };
260
- /** @description Payload delivered when a market's volume or transaction metrics cross a configured threshold */
205
+ /** @description Condition metrics webhook payload (Arc-optimized, no internal metadata) */
261
206
  ConditionMetricsPayload: {
262
- /** @description Market condition ID */
263
207
  condition_id?: string | null;
264
- /** @description Aggregation window */
265
- timeframe?: null | ("1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d");
266
- /**
267
- * Format: double
268
- * @description Total trading volume in USD for this timeframe
269
- */
208
+ timeframe?: string | null;
209
+ /** Format: double */
270
210
  volume_usd?: number | null;
271
- /**
272
- * Format: double
273
- * @description Total fees collected in USD
274
- */
211
+ /** Format: double */
275
212
  fees?: number | null;
276
- /**
277
- * Format: int64
278
- * @description Total number of transactions
279
- */
213
+ /** Format: int64 */
280
214
  txns?: number | null;
281
- /**
282
- * Format: int64
283
- * @description Number of unique traders
284
- */
215
+ /** Format: int64 */
285
216
  unique_traders?: number | null;
286
217
  };
287
218
  /** @description CTF ConditionResolution: positions become redeemable on the Conditional Tokens contract. */
@@ -353,53 +284,17 @@ export interface components {
353
284
  slug?: string | null;
354
285
  event_slug?: string | null;
355
286
  };
356
- /** @description Subscription filters for the `event_metrics` event. All fields are optional. */
357
- EventMetricsFilters: {
358
- /** @description Restrict to these events. Empty = all events. */
359
- event_slugs?: string[] | null;
360
- /** @description Restrict to these aggregation windows. */
361
- timeframes?: components["schemas"]["MetricFilterTimeframe"][] | null;
362
- /**
363
- * Format: double
364
- * @description Only fire when aggregated event volume ≥ this value (USD).
365
- */
366
- min_volume_usd?: number | null;
367
- /** Format: double */
368
- max_volume_usd?: number | null;
369
- /** Format: int64 */
370
- min_txns?: number | null;
371
- /** Format: int64 */
372
- min_unique_traders?: number | null;
373
- /** Format: double */
374
- min_fees?: number | null;
375
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
376
- exclude_shortterm_markets?: boolean | null;
377
- };
378
- /** @description Payload delivered when an event's aggregated volume or transaction metrics cross a configured threshold */
287
+ /** @description Event metrics webhook payload (Arc-optimized, no internal metadata) */
379
288
  EventMetricsPayload: {
380
- /** @description Event slug */
381
289
  event_slug?: string | null;
382
- /** @description Aggregation window */
383
- timeframe?: null | ("1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d");
384
- /**
385
- * Format: double
386
- * @description Total aggregated volume across all markets in the event (USD)
387
- */
290
+ timeframe?: string | null;
291
+ /** Format: double */
388
292
  volume_usd?: number | null;
389
- /**
390
- * Format: double
391
- * @description Total fees collected in USD
392
- */
293
+ /** Format: double */
393
294
  fees?: number | null;
394
- /**
395
- * Format: int64
396
- * @description Total number of transactions
397
- */
295
+ /** Format: int64 */
398
296
  txns?: number | null;
399
- /**
400
- * Format: int64
401
- * @description Number of unique traders
402
- */
297
+ /** Format: int64 */
403
298
  unique_traders?: number | null;
404
299
  };
405
300
  /** @description Event PnL webhook payload (Arc-optimized) */
@@ -443,17 +338,6 @@ export interface components {
443
338
  /** Format: int64 */
444
339
  last_trade_at?: number | null;
445
340
  };
446
- /** @description Subscription filters for the `event_volume_milestone` event. */
447
- EventVolumeMilestoneFilters: {
448
- /** @description **Required.** Aggregation windows to monitor. */
449
- timeframes: components["schemas"]["MetricFilterTimeframe"][];
450
- /** @description Restrict to these events. */
451
- event_slugs?: string[] | null;
452
- /** @description Specific USD milestones to trigger on. */
453
- milestone_amounts?: number[] | null;
454
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
455
- exclude_shortterm_markets?: boolean | null;
456
- };
457
341
  /** @description Event volume milestone webhook payload */
458
342
  EventVolumeMilestonePayload: {
459
343
  event_slug: string;
@@ -479,25 +363,6 @@ export interface components {
479
363
  */
480
364
  txns: number;
481
365
  };
482
- /** @description Subscription filters for the `event_volume_spike` event. `spike_ratio` is required. */
483
- EventVolumeSpikeFilters: {
484
- /**
485
- * Format: double
486
- * @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio.
487
- */
488
- spike_ratio: number;
489
- /**
490
- * Format: int64
491
- * @description Force snapshot reset after this many seconds (max 600 / 10 minutes).
492
- */
493
- window_secs?: number | null;
494
- /** @description Restrict to these events. */
495
- event_slugs?: string[] | null;
496
- /** @description Restrict to these aggregation windows. */
497
- timeframes?: components["schemas"]["VolumeSpikeFilterTimeframe"][] | null;
498
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
499
- exclude_shortterm_markets?: boolean | null;
500
- };
501
366
  /** @description Event volume spike webhook payload */
502
367
  EventVolumeSpikePayload: {
503
368
  event_slug: string;
@@ -535,32 +400,32 @@ export interface components {
535
400
  */
536
401
  fees: number;
537
402
  };
538
- /** @description Payload delivered when a tracked trader executes their first-ever trade on Polymarket */
403
+ /** @description First trade webhook payload with zero-copy Arc<str> for string sharing */
539
404
  FirstTradePayload: {
540
- /** @description Limit-order maker wallet address (lowercase) */
405
+ /** @description Trader/taker address (zero-copy Arc) */
541
406
  trader: string;
542
- /** @description Order filler wallet address (lowercase) */
407
+ /** @description Taker address (same as trader, zero-copy Arc) */
543
408
  taker: string;
544
- /** @description ERC-1155 outcome token ID */
409
+ /** @description Position ID (ERC1155 token ID, zero-copy Arc) */
545
410
  position_id: string;
546
- /** @description Parent market condition ID (0x-prefixed hex) */
411
+ /** @description Condition ID (market condition, zero-copy Arc) */
547
412
  condition_id?: string | null;
548
- /** @description Outcome name (e.g. "Yes", "No") */
413
+ /** @description Market outcome (e.g., "Yes", "No", zero-copy Arc) */
549
414
  outcome?: string | null;
550
415
  /**
551
416
  * Format: int32
552
- * @description Outcome index: 0 = Yes/Up, 1 = No
417
+ * @description Outcome index (0 = Yes, 1 = No)
553
418
  */
554
419
  outcome_index?: number | null;
555
- /** @description Market question text */
420
+ /** @description Market question (zero-copy Arc) */
556
421
  question?: string | null;
557
- /** @description Market slug */
422
+ /** @description Market slug (zero-copy Arc) */
558
423
  market_slug?: string | null;
559
- /** @description Parent event slug */
424
+ /** @description Event slug (parent event, zero-copy Arc) */
560
425
  event_slug?: string | null;
561
- /** @description Unique trade identifier */
426
+ /** @description Trade ID (zero-copy Arc) */
562
427
  trade_id: string;
563
- /** @description Transaction hash */
428
+ /** @description Transaction hash (zero-copy Arc) */
564
429
  hash: string;
565
430
  /**
566
431
  * Format: int64
@@ -569,35 +434,24 @@ export interface components {
569
434
  block: number;
570
435
  /**
571
436
  * Format: int64
572
- * @description Block confirmation timestamp (Unix seconds)
437
+ * @description Confirmed timestamp (Unix seconds)
573
438
  */
574
439
  confirmed_at: number;
575
- /**
576
- * Format: double
577
- * @description USD size of the trade (6 decimal places)
578
- */
440
+ /** Format: double */
579
441
  amount_usd: number;
580
- /**
581
- * Format: double
582
- * @description Outcome shares traded (6 decimal places)
583
- */
442
+ /** Format: double */
584
443
  shares_amount: number;
585
- /**
586
- * Format: double
587
- * @description Fee paid in USD (6 decimal places)
588
- */
444
+ /** Format: double */
589
445
  fee: number;
590
- /** @description Trade direction */
591
- side: "Buy" | "Sell";
446
+ /** @description Trade side (Buy/Sell, zero-copy Arc) */
447
+ side: string;
592
448
  /**
593
449
  * Format: double
594
- * @description Outcome token price (0.01.0)
450
+ * @description Price per share (0.0 - 1.0)
595
451
  */
596
452
  price: number;
597
- /** @description Exchange contract that processed the trade */
598
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
599
- /** @description Trade type (webhook events only fire on order fills) */
600
- trade_type: "OrderFilled" | "OrdersMatched";
453
+ exchange: string;
454
+ trade_type: string;
601
455
  };
602
456
  /** @description Global PnL webhook payload (Arc-optimized) */
603
457
  GlobalPnlPayload: {
@@ -654,15 +508,6 @@ export interface components {
654
508
  ListEventsResponse: {
655
509
  events: components["schemas"]["WebhookEventInfo"][];
656
510
  };
657
- /** @description Subscription filters for the `market_created` event. All fields are optional. */
658
- MarketCreatedFilters: {
659
- /** @description Restrict to markets with these tags or category names (case-insensitive match). */
660
- tags?: string[] | null;
661
- /** @description Restrict to markets belonging to these events. */
662
- event_slugs?: string[] | null;
663
- /** @description When `true`, suppress webhooks for short-term "updown" markets (event slugs containing `updown`). Default: `false`. */
664
- exclude_shortterm_markets?: boolean | null;
665
- };
666
511
  /** @description Outcome entry in the market created payload — mirrors `NewMarketOutcome` */
667
512
  MarketCreatedOutcome: {
668
513
  /**
@@ -706,38 +551,6 @@ export interface components {
706
551
  /** @description Whether this is a neg-risk market */
707
552
  neg_risk: boolean;
708
553
  };
709
- /** @description Subscription filters for the `condition_metrics` event. All fields are optional. */
710
- MarketMetricsFilters: {
711
- /** @description Restrict to these markets. Empty = all markets. */
712
- condition_ids?: string[] | null;
713
- /** @description Restrict to these aggregation windows. Empty = all windows. */
714
- timeframes?: components["schemas"]["MetricFilterTimeframe"][] | null;
715
- /**
716
- * Format: double
717
- * @description Only fire when volume ≥ this value (USD).
718
- */
719
- min_volume_usd?: number | null;
720
- /**
721
- * Format: double
722
- * @description Only fire when volume ≤ this value (USD).
723
- */
724
- max_volume_usd?: number | null;
725
- /**
726
- * Format: int64
727
- * @description Only fire when transaction count ≥ this value.
728
- */
729
- min_txns?: number | null;
730
- /**
731
- * Format: int64
732
- * @description Only fire when unique trader count ≥ this value.
733
- */
734
- min_unique_traders?: number | null;
735
- /**
736
- * Format: double
737
- * @description Only fire when total fees ≥ this value (USD).
738
- */
739
- min_fees?: number | null;
740
- };
741
554
  /** @description Market PnL webhook payload (Arc-optimized) */
742
555
  MarketPnlPayload: {
743
556
  trader?: string | null;
@@ -774,32 +587,6 @@ export interface components {
774
587
  /** Format: int64 */
775
588
  last_trade_at?: number | null;
776
589
  };
777
- /** @description Subscription filters for the `market_volume_milestone` event. */
778
- MarketVolumeMilestoneFilters: {
779
- /** @description **Required.** Aggregation windows to monitor (e.g. \["1h", "24h"\]). */
780
- timeframes: components["schemas"]["MetricFilterTimeframe"][];
781
- /** @description Restrict to these markets. Empty = all markets. */
782
- condition_ids?: string[] | null;
783
- /** @description Specific USD milestones to trigger on (e.g. \[10000, 100000, 1000000\]). Empty = all milestones. */
784
- milestone_amounts?: number[] | null;
785
- };
786
- /** @description Subscription filters for the `market_volume_spike` event. `spike_ratio` is required. */
787
- MarketVolumeSpikeFilters: {
788
- /**
789
- * Format: double
790
- * @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio. The snapshot is set automatically on first data and resets after each fire.
791
- */
792
- spike_ratio: number;
793
- /**
794
- * Format: int64
795
- * @description Force snapshot reset after this many seconds (max 600 / 10 minutes).
796
- */
797
- window_secs?: number | null;
798
- /** @description Restrict to these markets. Empty = all markets. */
799
- condition_ids?: string[] | null;
800
- /** @description Restrict to these aggregation windows. Empty = all windows. */
801
- timeframes?: components["schemas"]["VolumeSpikeFilterTimeframe"][] | null;
802
- };
803
590
  /** @description Market volume spike webhook payload */
804
591
  MarketVolumeSpikePayload: {
805
592
  condition_id: string;
@@ -839,11 +626,6 @@ export interface components {
839
626
  */
840
627
  fees: number;
841
628
  };
842
- /**
843
- * @description Aggregation windows emitted by the metrics / milestone streams.
844
- * @enum {string}
845
- */
846
- MetricFilterTimeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "24h" | "7d" | "30d";
847
629
  /** @description NegRisk Adapter: outcome reported for a neg-risk market question. */
848
630
  NegRiskOutcomeReportedEvent: {
849
631
  id: string;
@@ -866,30 +648,35 @@ export interface components {
866
648
  slug?: string | null;
867
649
  event_slug?: string | null;
868
650
  };
869
- /** @description Payload delivered when a trader places their first trade in a specific market (fires once per trader+market pair) */
651
+ /**
652
+ * @description New market entry webhook payload
653
+ *
654
+ * Fired when a trader places their first trade in a specific condition/market.
655
+ * The payload contains the full details of the triggering trade.
656
+ */
870
657
  NewMarketPayload: {
871
- /** @description Limit-order maker wallet address (lowercase) */
658
+ /** @description Trader address (placed the limit order) */
872
659
  trader: string;
873
- /** @description Order filler wallet address (lowercase) */
660
+ /** @description Taker address (filled the order — often the exchange contract) */
874
661
  taker: string;
875
- /** @description ERC-1155 outcome token ID */
662
+ /** @description Position ID (ERC1155 token ID) */
876
663
  position_id: string;
877
- /** @description Parent market condition ID */
664
+ /** @description Condition ID (market condition) */
878
665
  condition_id?: string | null;
879
666
  /** @description Outcome name (e.g. "Yes", "No") */
880
667
  outcome?: string | null;
881
668
  /**
882
669
  * Format: int32
883
- * @description Outcome index: 0 = Yes/Up, 1 = No
670
+ * @description Outcome index (0 = Yes, 1 = No)
884
671
  */
885
672
  outcome_index?: number | null;
886
- /** @description Market question text */
673
+ /** @description Market question */
887
674
  question?: string | null;
888
675
  /** @description Market slug */
889
676
  market_slug?: string | null;
890
- /** @description Parent event slug */
677
+ /** @description Event slug (parent event) */
891
678
  event_slug?: string | null;
892
- /** @description Unique trade identifier */
679
+ /** @description Trade ID */
893
680
  trade_id: string;
894
681
  /** @description Transaction hash */
895
682
  hash: string;
@@ -900,71 +687,63 @@ export interface components {
900
687
  block: number;
901
688
  /**
902
689
  * Format: int64
903
- * @description Block confirmation timestamp (Unix seconds)
690
+ * @description Confirmed timestamp (Unix seconds)
904
691
  */
905
692
  confirmed_at: number;
906
693
  /**
907
694
  * Format: double
908
- * @description USD size of the trade (6 decimal places)
695
+ * @description USD size of the trade
909
696
  */
910
697
  amount_usd: number;
911
698
  /**
912
699
  * Format: double
913
- * @description Outcome shares traded (6 decimal places)
700
+ * @description Outcome shares traded
914
701
  */
915
702
  shares_amount: number;
916
703
  /**
917
704
  * Format: double
918
- * @description Fee paid in USD (6 decimal places)
705
+ * @description Fee paid (USD)
919
706
  */
920
707
  fee: number;
921
- /** @description Trade direction */
922
- side: "Buy" | "Sell";
708
+ /** @description Trade side ("Buy" or "Sell") */
709
+ side: string;
923
710
  /**
924
711
  * Format: double
925
- * @description Outcome token price (0.0–1.0)
712
+ * @description Price per share (0.0–1.0)
926
713
  */
927
714
  price: number;
928
715
  /**
929
716
  * Format: double
930
- * @description Implied probability (0.0–1.0); null when outcome is unknown
717
+ * @description Implied probability (0.0–1.0); None when outcome is unknown
931
718
  */
932
719
  probability?: number | null;
933
- /** @description Exchange contract that processed the trade */
934
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
935
- /** @description Trade type (webhook events only fire on order fills) */
936
- trade_type: "OrderFilled" | "OrdersMatched";
720
+ exchange: string;
721
+ trade_type: string;
937
722
  };
938
- /**
939
- * @description Trade types accepted by `trader_new_trade.trade_types`. Webhook fires on
940
- * fill-style trades only.
941
- * @enum {string}
942
- */
943
- NewTradeFilterType: "OrderFilled" | "OrdersMatched";
944
- /** @description Payload delivered on every order-filled trade */
723
+ /** @description New trade webhook payload */
945
724
  NewTradePayload: {
946
- /** @description Limit-order maker wallet address (lowercase) */
725
+ /** @description Trader address (the limit-order maker) */
947
726
  trader: string;
948
- /** @description Order filler wallet address (lowercase) */
727
+ /** @description Taker address (the order filler often the exchange contract) */
949
728
  taker: string;
950
- /** @description ERC-1155 outcome token ID */
729
+ /** @description Position ID (ERC1155 token ID) */
951
730
  position_id: string;
952
- /** @description Parent market condition ID */
731
+ /** @description Condition ID */
953
732
  condition_id?: string | null;
954
733
  /** @description Outcome name (e.g. "Yes", "No") */
955
734
  outcome?: string | null;
956
735
  /**
957
736
  * Format: int32
958
- * @description Outcome index: 0 = Yes/Up, 1 = No
737
+ * @description Outcome index (0 = Yes, 1 = No)
959
738
  */
960
739
  outcome_index?: number | null;
961
- /** @description Market question text */
740
+ /** @description Market question */
962
741
  question?: string | null;
963
742
  /** @description Market slug */
964
743
  market_slug?: string | null;
965
- /** @description Parent event slug */
744
+ /** @description Event slug */
966
745
  event_slug?: string | null;
967
- /** @description Unique trade identifier */
746
+ /** @description Trade ID */
968
747
  trade_id: string;
969
748
  /** @description Transaction hash */
970
749
  hash: string;
@@ -975,46 +754,39 @@ export interface components {
975
754
  block: number;
976
755
  /**
977
756
  * Format: int64
978
- * @description Block confirmation timestamp (Unix seconds)
757
+ * @description Confirmed timestamp (Unix seconds)
979
758
  */
980
759
  confirmed_at: number;
981
760
  /**
982
761
  * Format: double
983
- * @description USD size of the trade (6 decimal places)
762
+ * @description USD size of the trade
984
763
  */
985
764
  amount_usd: number;
986
765
  /**
987
766
  * Format: double
988
- * @description Outcome shares traded (6 decimal places)
767
+ * @description Outcome shares traded
989
768
  */
990
769
  shares_amount: number;
991
770
  /**
992
771
  * Format: double
993
- * @description Fee paid in USD (6 decimal places)
772
+ * @description Fee paid (USD)
994
773
  */
995
774
  fee: number;
996
- /** @description Trade direction */
997
- side: "Buy" | "Sell";
775
+ /** @description Trade side ("Buy" or "Sell") */
776
+ side: string;
998
777
  /**
999
778
  * Format: double
1000
- * @description Outcome token price (0.0–1.0)
779
+ * @description Price per share (0.0–1.0)
1001
780
  */
1002
781
  price: number;
1003
782
  /**
1004
783
  * Format: double
1005
- * @description Implied probability (0.0–1.0); null when outcome is unknown
784
+ * @description Implied probability of the event (0.0–1.0); None when outcome is unknown
1006
785
  */
1007
786
  probability?: number | null;
1008
- /** @description Exchange contract that processed the trade */
1009
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
1010
- /** @description Trade type (webhook events only fire on order fills) */
1011
- trade_type: "OrderFilled" | "OrdersMatched";
787
+ exchange: string;
788
+ trade_type: string;
1012
789
  };
1013
- /**
1014
- * @description Oracle event variants accepted by `oracle_events.oracle_event_types`.
1015
- * @enum {string}
1016
- */
1017
- OracleEventFilterType: "AssertionMade" | "AssertionDisputed" | "AssertionSettled" | "RequestPrice" | "ProposePrice" | "DisputePrice" | "Settle" | "QuestionResolved" | "QuestionEmergencyResolved" | "QuestionReset" | "QuestionInitialized" | "QuestionPaused" | "QuestionUnpaused" | "QuestionFlagged" | "QuestionUnflagged" | "ConditionResolution" | "NegRiskOutcomeReported";
1018
790
  /**
1019
791
  * @description Tagged enum for all oracle event types — serializes with `"event_type": "..."` discriminator
1020
792
  * and only includes fields relevant to each type.
@@ -1071,18 +843,6 @@ export interface components {
1071
843
  /** @enum {string} */
1072
844
  event_type: "NegRiskOutcomeReported";
1073
845
  });
1074
- /** @description Subscription filters for the `oracle_events` event. All fields are optional. */
1075
- OracleEventsFilters: {
1076
- /** @description Restrict to these event types (case-insensitive). Empty = all. */
1077
- oracle_event_types?: components["schemas"]["OracleEventFilterType"][] | null;
1078
- /** @description Restrict to events for these condition IDs. */
1079
- condition_ids?: string[] | null;
1080
- };
1081
- /**
1082
- * @description PnL aggregation windows accepted by `*_pnl.timeframes`.
1083
- * @enum {string}
1084
- */
1085
- PnlFilterTimeframe: "1d" | "7d" | "30d" | "lifetime";
1086
846
  /**
1087
847
  * @description PnL timeframe enum for webhook filtering
1088
848
  * @enum {string}
@@ -1109,7 +869,7 @@ export interface components {
1109
869
  * - volume_milestone: condition_ids, timeframes, milestone_amounts
1110
870
  * - close_to_bond: min_probability (high zone threshold), max_probability (low zone threshold), condition_ids, position_ids, outcomes, position_outcome_indices, event_slugs, exclude_shortterm_markets
1111
871
  * - market_created: event_slugs, tags, exclude_shortterm_markets
1112
- * - probability_spike: condition_ids, event_slugs, outcomes, min_probability, max_probability, min_probability_change_pct, spike_direction, window_secs, exclude_shortterm_markets
872
+ * - probability_spike: condition_ids, event_slugs, outcomes, min_probability_change_pct, spike_direction, window_secs, exclude_shortterm_markets
1113
873
  * - price_spike: condition_ids, event_slugs, outcomes, min_price_change_pct, spike_direction, window_secs, exclude_shortterm_markets
1114
874
  * - trader_new_trade: wallet_addresses, min_usd_value, min_probability, max_probability, condition_ids, event_slugs, trade_types, exclude_shortterm_markets
1115
875
  * - trader_trade_event: wallet_addresses, min_usd_value, min_probability, max_probability, condition_ids, event_slugs, trade_types, exclude_shortterm_markets
@@ -1280,76 +1040,20 @@ export interface components {
1280
1040
  */
1281
1041
  oracle_event_types?: string[];
1282
1042
  };
1283
- /** @description Subscription filters for the `position_metrics` event. All fields are optional. */
1284
- PositionMetricsFilters: {
1285
- /** @description Restrict to these outcome token IDs. */
1286
- position_ids?: string[] | null;
1287
- /** @description Restrict to positions within these markets. */
1288
- condition_ids?: string[] | null;
1289
- /** @description Restrict to positions with these outcome names (e.g. \["Yes", "No"\]). */
1290
- outcomes?: string[] | null;
1291
- /** @description Restrict to these aggregation windows. */
1292
- timeframes?: components["schemas"]["MetricFilterTimeframe"][] | null;
1293
- /**
1294
- * Format: double
1295
- * @description Only fire when position volume ≥ this value (USD).
1296
- */
1297
- min_volume_usd?: number | null;
1298
- /** Format: double */
1299
- max_volume_usd?: number | null;
1300
- /** Format: double */
1301
- min_buy_usd?: number | null;
1302
- /** Format: double */
1303
- min_sell_volume_usd?: number | null;
1304
- /** Format: int64 */
1305
- min_txns?: number | null;
1306
- /** Format: int64 */
1307
- min_unique_traders?: number | null;
1308
- /**
1309
- * Format: double
1310
- * @description Only fire when price change % ≥ this value.
1311
- */
1312
- min_price_change_pct?: number | null;
1313
- /**
1314
- * Format: double
1315
- * @description Only fire when probability change % ≥ this value.
1316
- */
1317
- min_probability_change_pct?: number | null;
1318
- /** Format: double */
1319
- min_fees?: number | null;
1320
- };
1321
- /** @description Payload delivered when a position's volume or transaction metrics cross a configured threshold */
1043
+ /** @description Position metrics webhook payload (Arc-optimized, no internal metadata) */
1322
1044
  PositionMetricsPayload: {
1323
- /** @description ERC-1155 outcome token ID */
1324
1045
  position_id?: string | null;
1325
- /** @description Outcome name (e.g. "Yes", "No") */
1326
1046
  outcome?: string | null;
1327
- /**
1328
- * Format: int32
1329
- * @description Outcome index
1330
- */
1047
+ /** Format: int32 */
1331
1048
  outcome_index?: number | null;
1332
- /** @description Aggregation window */
1333
- timeframe?: null | ("1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d");
1334
- /**
1335
- * Format: double
1336
- * @description Total trading volume in USD
1337
- */
1049
+ timeframe?: string | null;
1050
+ /** Format: double */
1338
1051
  volume_usd?: number | null;
1339
- /**
1340
- * Format: double
1341
- * @description Buy volume in USD
1342
- */
1052
+ /** Format: double */
1343
1053
  buy_volume_usd?: number | null;
1344
- /**
1345
- * Format: double
1346
- * @description Sell volume in USD
1347
- */
1054
+ /** Format: double */
1348
1055
  sell_volume_usd?: number | null;
1349
- /**
1350
- * Format: double
1351
- * @description Total fees in USD
1352
- */
1056
+ /** Format: double */
1353
1057
  fees?: number | null;
1354
1058
  /** Format: int64 */
1355
1059
  txns?: number | null;
@@ -1376,19 +1080,6 @@ export interface components {
1376
1080
  /** Format: double */
1377
1081
  probability_low?: number | null;
1378
1082
  };
1379
- /** @description Subscription filters for the `position_volume_milestone` event. */
1380
- PositionVolumeMilestoneFilters: {
1381
- /** @description **Required.** Aggregation windows to monitor. */
1382
- timeframes: components["schemas"]["MetricFilterTimeframe"][];
1383
- /** @description Restrict to these outcome token IDs. */
1384
- position_ids?: string[] | null;
1385
- /** @description Restrict to positions within these markets. */
1386
- condition_ids?: string[] | null;
1387
- /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
1388
- outcomes?: string[] | null;
1389
- /** @description Specific USD milestones to trigger on. */
1390
- milestone_amounts?: number[] | null;
1391
- };
1392
1083
  /** @description Position volume milestone webhook payload */
1393
1084
  PositionVolumeMilestonePayload: {
1394
1085
  condition_id?: string | null;
@@ -1438,27 +1129,6 @@ export interface components {
1438
1129
  */
1439
1130
  sells: number;
1440
1131
  };
1441
- /** @description Subscription filters for the `position_volume_spike` event. `spike_ratio` is required. */
1442
- PositionVolumeSpikeFilters: {
1443
- /**
1444
- * Format: double
1445
- * @description **Required.** Multiplier threshold (must be > 1.0). Fires when current volume >= snapshot × ratio.
1446
- */
1447
- spike_ratio: number;
1448
- /**
1449
- * Format: int64
1450
- * @description Force snapshot reset after this many seconds (max 600 / 10 minutes).
1451
- */
1452
- window_secs?: number | null;
1453
- /** @description Restrict to these outcome token IDs. */
1454
- position_ids?: string[] | null;
1455
- /** @description Restrict to positions within these markets. */
1456
- condition_ids?: string[] | null;
1457
- /** @description Restrict to these outcome names. */
1458
- outcomes?: string[] | null;
1459
- /** @description Restrict to these aggregation windows. */
1460
- timeframes?: components["schemas"]["VolumeSpikeFilterTimeframe"][] | null;
1461
- };
1462
1132
  /** @description Position volume spike webhook payload */
1463
1133
  PositionVolumeSpikePayload: {
1464
1134
  position_id: string;
@@ -1502,50 +1172,6 @@ export interface components {
1502
1172
  */
1503
1173
  fees: number;
1504
1174
  };
1505
- /** @description Subscription filters for the `price_spike` event. */
1506
- PriceSpikeFilters: {
1507
- /** @description Restrict to specific outcome token IDs. Empty = all positions. */
1508
- position_ids?: string[] | null;
1509
- /** @description Restrict to specific market condition IDs. Empty = all markets. */
1510
- condition_ids?: string[] | null;
1511
- /** @description Restrict to specific events. Empty = all events. */
1512
- event_slugs?: string[] | null;
1513
- /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
1514
- outcomes?: string[] | null;
1515
- /**
1516
- * Format: double
1517
- * @description Minimum price percentage move to trigger (e.g. `10` for a 10% move).
1518
- */
1519
- min_price_change_pct?: number | null;
1520
- /**
1521
- * Format: double
1522
- * @description Minimum YES probability (0-1).
1523
- */
1524
- min_probability?: number | null;
1525
- /**
1526
- * Format: double
1527
- * @description Maximum YES probability (0-1).
1528
- */
1529
- max_probability?: number | null;
1530
- /**
1531
- * Format: int64
1532
- * @description Minimum trades accumulated in the observation window before firing.
1533
- */
1534
- min_txns?: number | null;
1535
- /**
1536
- * Format: double
1537
- * @description Minimum USD volume accumulated in the observation window before firing.
1538
- */
1539
- min_volume_usd?: number | null;
1540
- spike_direction?: null | components["schemas"]["SpikeDirection"];
1541
- /**
1542
- * Format: int64
1543
- * @description Observation window in seconds. The first trade in each window sets the reference price; subsequent trades are compared to it. E.g. `60` detects moves that occur within 60 seconds.
1544
- */
1545
- window_secs?: number | null;
1546
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
1547
- exclude_shortterm_markets?: boolean | null;
1548
- };
1549
1175
  /** @description Position price spike webhook payload */
1550
1176
  PriceSpikePayload: {
1551
1177
  position_id: string;
@@ -1575,50 +1201,6 @@ export interface components {
1575
1201
  */
1576
1202
  spike_pct: number;
1577
1203
  };
1578
- /** @description Subscription filters for the `probability_spike` event. */
1579
- ProbabilitySpikeFilters: {
1580
- /** @description Restrict to specific outcome token IDs. Empty = all positions. */
1581
- position_ids?: string[] | null;
1582
- /** @description Restrict to specific market condition IDs. Empty = all markets. */
1583
- condition_ids?: string[] | null;
1584
- /** @description Restrict to specific events. Empty = all events. */
1585
- event_slugs?: string[] | null;
1586
- /** @description Restrict to these outcome names (e.g. \["Yes", "No"\]). */
1587
- outcomes?: string[] | null;
1588
- /**
1589
- * Format: double
1590
- * @description Minimum YES probability (0-1). At least one of `min_probability`/`max_probability` is enforced at runtime if you want a probability gate.
1591
- */
1592
- min_probability?: number | null;
1593
- /**
1594
- * Format: double
1595
- * @description Maximum YES probability (0-1).
1596
- */
1597
- max_probability?: number | null;
1598
- /**
1599
- * Format: double
1600
- * @description Minimum probability percentage move to trigger (e.g. `10` for a 10% move).
1601
- */
1602
- min_probability_change_pct?: number | null;
1603
- /**
1604
- * Format: int64
1605
- * @description Minimum trades accumulated in the observation window before firing.
1606
- */
1607
- min_txns?: number | null;
1608
- /**
1609
- * Format: double
1610
- * @description Minimum USD volume accumulated in the observation window before firing.
1611
- */
1612
- min_volume_usd?: number | null;
1613
- spike_direction?: null | components["schemas"]["SpikeDirection"];
1614
- /**
1615
- * Format: int64
1616
- * @description Observation window in seconds. The first trade in each window sets the reference price; subsequent trades are compared to it. E.g. `60` detects moves that occur within 60 seconds.
1617
- */
1618
- window_secs?: number | null;
1619
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
1620
- exclude_shortterm_markets?: boolean | null;
1621
- };
1622
1204
  /** @description Position probability spike webhook payload */
1623
1205
  ProbabilitySpikePayload: {
1624
1206
  position_id: string;
@@ -1937,287 +1519,6 @@ export interface components {
1937
1519
  * @enum {string}
1938
1520
  */
1939
1521
  SpikeDirection: "up" | "down" | "both";
1940
- /**
1941
- * @description Trade-event types accepted by `trader_trade_event.trade_types`. Covers the
1942
- * full set of typed prediction-trade variants.
1943
- * @enum {string}
1944
- */
1945
- TradeEventFilterType: "OrderFilled" | "Redemption" | "Merge" | "Split" | "Cancelled" | "PositionsConverted" | "OrdersMatched" | "Initialization" | "Proposal" | "Dispute" | "Settled" | "Resolution" | "ConditionResolution" | "Reset" | "Flag" | "Unflag" | "Pause" | "Unpause" | "ManualResolution" | "NegRiskOutcomeReported" | "RegisterToken" | "Approval";
1946
- /** @description Subscription filters for the `trader_event_pnl` event. All fields are optional. */
1947
- TraderEventPnlFilters: {
1948
- /** @description Track only these trader wallet addresses. */
1949
- traders?: string[] | null;
1950
- /** @description Restrict to these events. */
1951
- event_slugs?: string[] | null;
1952
- /**
1953
- * Format: double
1954
- * @description Only fire when per-event realized PnL ≥ this value (USD).
1955
- */
1956
- min_realized_pnl_usd?: number | null;
1957
- /**
1958
- * Format: double
1959
- * @description Only fire when per-event realized PnL ≤ this value (USD).
1960
- */
1961
- max_realized_pnl_usd?: number | null;
1962
- /**
1963
- * Format: double
1964
- * @description Only fire when total event volume ≥ this value (USD).
1965
- */
1966
- min_volume_usd?: number | null;
1967
- /**
1968
- * Format: double
1969
- * @description Only fire when total event volume ≤ this value (USD).
1970
- */
1971
- max_volume_usd?: number | null;
1972
- /**
1973
- * Format: double
1974
- * @description Only fire when buy volume within the event ≥ this value (USD).
1975
- */
1976
- min_buy_usd?: number | null;
1977
- /**
1978
- * Format: double
1979
- * @description Only fire when sell volume within the event ≥ this value (USD).
1980
- */
1981
- min_sell_volume_usd?: number | null;
1982
- /**
1983
- * Format: int64
1984
- * @description Only fire when the trader has traded in ≥ this many markets within the event.
1985
- */
1986
- min_markets_traded?: number | null;
1987
- /** @description Restrict to these PnL windows. */
1988
- timeframes?: components["schemas"]["PnlFilterTimeframe"][] | null;
1989
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
1990
- exclude_shortterm_markets?: boolean | null;
1991
- };
1992
- /** @description Subscription filters for the `trader_first_trade` event. All fields are optional. */
1993
- TraderFirstTradeFilters: {
1994
- /** @description Only fire for trades by these wallet addresses (lowercase). Empty = all traders. */
1995
- wallet_addresses?: string[] | null;
1996
- /** @description Restrict to trades in these markets. Empty = all markets. */
1997
- condition_ids?: string[] | null;
1998
- /** @description Restrict to trades in markets belonging to these events. */
1999
- event_slugs?: string[] | null;
2000
- /**
2001
- * Format: double
2002
- * @description Minimum trade size in USD. Omit to match all sizes.
2003
- */
2004
- min_usd_value?: number | null;
2005
- /**
2006
- * Format: double
2007
- * @description Only fire when the outcome probability is ≥ this value.
2008
- */
2009
- min_probability?: number | null;
2010
- /**
2011
- * Format: double
2012
- * @description Only fire when the outcome probability is ≤ this value.
2013
- */
2014
- max_probability?: number | null;
2015
- /** @description When `true`, suppress webhooks for short-term "updown" markets (event slugs containing `updown`). Default: `false`. */
2016
- exclude_shortterm_markets?: boolean | null;
2017
- };
2018
- /** @description Subscription filters for the `trader_global_pnl` event. All fields are optional. */
2019
- TraderGlobalPnlFilters: {
2020
- /** @description Track only these trader wallet addresses. Empty = all traders. */
2021
- traders?: string[] | null;
2022
- /**
2023
- * Format: double
2024
- * @description Only fire when realized PnL ≥ this value (USD). Use negative values for loss thresholds.
2025
- */
2026
- min_realized_pnl_usd?: number | null;
2027
- /**
2028
- * Format: double
2029
- * @description Only fire when realized PnL ≤ this value (USD).
2030
- */
2031
- max_realized_pnl_usd?: number | null;
2032
- /**
2033
- * Format: double
2034
- * @description Only fire when total trading volume ≥ this value (USD).
2035
- */
2036
- min_volume_usd?: number | null;
2037
- /**
2038
- * Format: double
2039
- * @description Only fire when total trading volume ≤ this value (USD).
2040
- */
2041
- max_volume_usd?: number | null;
2042
- /**
2043
- * Format: double
2044
- * @description Only fire when buy volume ≥ this value (USD).
2045
- */
2046
- min_buy_usd?: number | null;
2047
- /**
2048
- * Format: double
2049
- * @description Only fire when sell volume ≥ this value (USD).
2050
- */
2051
- min_sell_volume_usd?: number | null;
2052
- /**
2053
- * Format: double
2054
- * @description Only fire when market win rate ≥ this percentage (0.0–100.0).
2055
- */
2056
- min_win_rate?: number | null;
2057
- /**
2058
- * Format: int64
2059
- * @description Only fire when the trader has traded in ≥ this many markets.
2060
- */
2061
- min_markets_traded?: number | null;
2062
- /** @description Restrict to these PnL windows. Empty = all windows. */
2063
- timeframes?: components["schemas"]["PnlFilterTimeframe"][] | null;
2064
- };
2065
- /** @description Subscription filters for the `trader_market_pnl` event. All fields are optional. */
2066
- TraderMarketPnlFilters: {
2067
- /** @description Track only these trader wallet addresses. */
2068
- traders?: string[] | null;
2069
- /** @description Restrict to these markets. */
2070
- condition_ids?: string[] | null;
2071
- /** @description Restrict to markets in these events. */
2072
- event_slugs?: string[] | null;
2073
- /**
2074
- * Format: double
2075
- * @description Only fire when per-market realized PnL ≥ this value (USD).
2076
- */
2077
- min_realized_pnl_usd?: number | null;
2078
- /**
2079
- * Format: double
2080
- * @description Only fire when per-market realized PnL ≤ this value (USD).
2081
- */
2082
- max_realized_pnl_usd?: number | null;
2083
- /**
2084
- * Format: double
2085
- * @description Only fire when total volume (buy + sell + redemption + merge) ≥ this value (USD).
2086
- */
2087
- min_volume_usd?: number | null;
2088
- /**
2089
- * Format: double
2090
- * @description Only fire when total volume ≤ this value (USD).
2091
- */
2092
- max_volume_usd?: number | null;
2093
- /**
2094
- * Format: double
2095
- * @description Only fire when buy volume in the market ≥ this value (USD).
2096
- */
2097
- min_buy_usd?: number | null;
2098
- /**
2099
- * Format: double
2100
- * @description Only fire when sell volume in the market ≥ this value (USD).
2101
- */
2102
- min_sell_volume_usd?: number | null;
2103
- /** @description Restrict to these PnL windows. */
2104
- timeframes?: components["schemas"]["PnlFilterTimeframe"][] | null;
2105
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2106
- exclude_shortterm_markets?: boolean | null;
2107
- };
2108
- /** @description Subscription filters for the `trader_new_market` event. All fields are optional. */
2109
- TraderNewMarketFilters: {
2110
- /** @description Only fire for these wallet addresses (lowercase). Empty = all traders. */
2111
- wallet_addresses?: string[] | null;
2112
- /** @description Restrict to these markets. */
2113
- condition_ids?: string[] | null;
2114
- /** @description Restrict to markets belonging to these events. */
2115
- event_slugs?: string[] | null;
2116
- /**
2117
- * Format: double
2118
- * @description Minimum trade size in USD. Omit to match all sizes.
2119
- */
2120
- min_usd_value?: number | null;
2121
- /**
2122
- * Format: double
2123
- * @description Only fire when the outcome probability is ≥ this value.
2124
- */
2125
- min_probability?: number | null;
2126
- /**
2127
- * Format: double
2128
- * @description Only fire when the outcome probability is ≤ this value.
2129
- */
2130
- max_probability?: number | null;
2131
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2132
- exclude_shortterm_markets?: boolean | null;
2133
- };
2134
- /** @description Subscription filters for the `trader_new_trade` event. All fields are optional. */
2135
- TraderNewTradeFilters: {
2136
- /** @description Only fire for trades by these wallet addresses. Empty = all traders. */
2137
- wallet_addresses?: string[] | null;
2138
- /** @description Restrict to these markets. */
2139
- condition_ids?: string[] | null;
2140
- /** @description Restrict to markets belonging to these events. */
2141
- event_slugs?: string[] | null;
2142
- /**
2143
- * Format: double
2144
- * @description Minimum trade size in USD. Defaults to 0 (matches all trades).
2145
- */
2146
- min_usd_value?: number | null;
2147
- /**
2148
- * Format: double
2149
- * @description Only fire when outcome probability is ≥ this value.
2150
- */
2151
- min_probability?: number | null;
2152
- /**
2153
- * Format: double
2154
- * @description Only fire when outcome probability is ≤ this value.
2155
- */
2156
- max_probability?: number | null;
2157
- /** @description Only fire for these fill-style trade types. Empty = OrderFilled and OrdersMatched only (default). */
2158
- trade_types?: ("OrderFilled" | "OrdersMatched")[] | null;
2159
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2160
- exclude_shortterm_markets?: boolean | null;
2161
- };
2162
- /**
2163
- * @description Subscription filters for the `trader_trade_event` event. All fields are optional.
2164
- * `event_slugs` and `exclude_shortterm_markets` require explicit `trade_types` that
2165
- * exclude `PositionsConverted`, because conversion events do not currently carry
2166
- * `event_slug` in the typed webhook payload.
2167
- */
2168
- TraderTradeEventFilters: {
2169
- /** @description Only fire for events associated with these wallet addresses. Empty = all traders. */
2170
- wallet_addresses?: string[] | null;
2171
- /** @description Restrict to these markets. For `PositionsConverted`, this also matches the NegRisk `market_id`. */
2172
- condition_ids?: string[] | null;
2173
- /** @description Restrict to markets belonging to these events. Requires explicit `trade_types` that exclude `PositionsConverted`. */
2174
- event_slugs?: string[] | null;
2175
- /**
2176
- * Format: double
2177
- * @description Minimum USD amount for the underlying event. Defaults to 0 (matches all events).
2178
- */
2179
- min_usd_value?: number | null;
2180
- /**
2181
- * Format: double
2182
- * @description Only fire when event probability is ≥ this value. Events without probability data do not match.
2183
- */
2184
- min_probability?: number | null;
2185
- /**
2186
- * Format: double
2187
- * @description Only fire when event probability is ≤ this value. Events without probability data do not match.
2188
- */
2189
- max_probability?: number | null;
2190
- /** @description Only fire for these trade types. Empty = all supported trade-event variants. */
2191
- trade_types?: ("OrderFilled" | "Redemption" | "Merge" | "Split" | "Cancelled" | "PositionsConverted" | "OrdersMatched" | "Initialization" | "Proposal" | "Dispute" | "Settled" | "Resolution" | "ConditionResolution" | "Reset" | "Flag" | "Unflag" | "Pause" | "Unpause" | "ManualResolution" | "NegRiskOutcomeReported" | "RegisterToken" | "Approval")[] | null;
2192
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Requires explicit `trade_types` that exclude `PositionsConverted`. Default: `false`. */
2193
- exclude_shortterm_markets?: boolean | null;
2194
- };
2195
- /** @description Subscription filters for the `trader_whale_trade` event. All fields are optional. */
2196
- TraderWhaleTradeFilters: {
2197
- /** @description Only fire for trades by these wallet addresses. Empty = all traders. */
2198
- wallet_addresses?: string[] | null;
2199
- /** @description Restrict to these markets. */
2200
- condition_ids?: string[] | null;
2201
- /** @description Restrict to markets belonging to these events. */
2202
- event_slugs?: string[] | null;
2203
- /**
2204
- * Format: double
2205
- * @description Minimum trade size in USD. Defaults to 0 (matches all trades).
2206
- */
2207
- min_usd_value?: number | null;
2208
- /**
2209
- * Format: double
2210
- * @description Only fire when outcome probability is ≥ this value.
2211
- */
2212
- min_probability?: number | null;
2213
- /**
2214
- * Format: double
2215
- * @description Only fire when outcome probability is ≤ this value.
2216
- */
2217
- max_probability?: number | null;
2218
- /** @description When `true`, suppress webhooks for short-term "updown" markets. Default: `false`. */
2219
- exclude_shortterm_markets?: boolean | null;
2220
- };
2221
1522
  /** @description Request body for updating a webhook */
2222
1523
  UpdateWebhookRequestBody: {
2223
1524
  /** @description Destination URL for webhook deliveries (must be HTTPS) */
@@ -2255,12 +1556,6 @@ export interface components {
2255
1556
  */
2256
1557
  txns: number;
2257
1558
  };
2258
- /**
2259
- * @description Aggregation windows accepted by `*_volume_spike.timeframes`. Includes `1d`
2260
- * in addition to the metric set.
2261
- * @enum {string}
2262
- */
2263
- VolumeSpikeFilterTimeframe: "1m" | "5m" | "30m" | "1h" | "6h" | "1d" | "24h" | "7d" | "30d";
2264
1559
  /**
2265
1560
  * @description Crypto asset symbols accepted by `asset_price_tick` and `asset_price_window_update` filters.
2266
1561
  * @enum {string}
@@ -2485,30 +1780,30 @@ export interface components {
2485
1780
  * @enum {string}
2486
1781
  */
2487
1782
  WebhookTimeframe: "1m" | "5m" | "15m" | "30m" | "1h" | "4h" | "6h" | "1d" | "24h" | "7d" | "30d";
2488
- /** @description Payload delivered when a trade exceeds the configured size and probability thresholds */
1783
+ /** @description Whale trade webhook payload */
2489
1784
  WhaleTradePayload: {
2490
- /** @description Limit-order maker wallet address (lowercase) */
1785
+ /** @description Trader address (the limit-order maker) */
2491
1786
  trader: string;
2492
- /** @description Order filler wallet address (lowercase) */
1787
+ /** @description Taker address (the order filler often the exchange contract) */
2493
1788
  taker: string;
2494
- /** @description ERC-1155 outcome token ID */
1789
+ /** @description Position ID (ERC1155 token ID) */
2495
1790
  position_id: string;
2496
- /** @description Parent market condition ID */
1791
+ /** @description Condition ID */
2497
1792
  condition_id?: string | null;
2498
1793
  /** @description Outcome name (e.g. "Yes", "No") */
2499
1794
  outcome?: string | null;
2500
1795
  /**
2501
1796
  * Format: int32
2502
- * @description Outcome index: 0 = Yes/Up, 1 = No
1797
+ * @description Outcome index (0 = Yes, 1 = No)
2503
1798
  */
2504
1799
  outcome_index?: number | null;
2505
- /** @description Market question text */
1800
+ /** @description Market question */
2506
1801
  question?: string | null;
2507
1802
  /** @description Market slug */
2508
1803
  market_slug?: string | null;
2509
- /** @description Parent event slug */
1804
+ /** @description Event slug */
2510
1805
  event_slug?: string | null;
2511
- /** @description Unique trade identifier */
1806
+ /** @description Trade ID */
2512
1807
  trade_id: string;
2513
1808
  /** @description Transaction hash */
2514
1809
  hash: string;
@@ -2519,40 +1814,38 @@ export interface components {
2519
1814
  block: number;
2520
1815
  /**
2521
1816
  * Format: int64
2522
- * @description Block confirmation timestamp (Unix seconds)
1817
+ * @description Confirmed timestamp (Unix seconds)
2523
1818
  */
2524
1819
  confirmed_at: number;
2525
1820
  /**
2526
1821
  * Format: double
2527
- * @description USD size of the trade (6 decimal places)
1822
+ * @description USD size of the trade
2528
1823
  */
2529
1824
  amount_usd: number;
2530
1825
  /**
2531
1826
  * Format: double
2532
- * @description Outcome shares traded (6 decimal places)
1827
+ * @description Outcome shares traded
2533
1828
  */
2534
1829
  shares_amount: number;
2535
1830
  /**
2536
1831
  * Format: double
2537
- * @description Fee paid in USD (6 decimal places)
1832
+ * @description Fee paid (USD)
2538
1833
  */
2539
1834
  fee: number;
2540
- /** @description Trade direction */
2541
- side: "Buy" | "Sell";
1835
+ /** @description Trade side ("Buy" or "Sell") */
1836
+ side: string;
2542
1837
  /**
2543
1838
  * Format: double
2544
- * @description Outcome token price (0.0–1.0)
1839
+ * @description Price per share (0.0–1.0)
2545
1840
  */
2546
1841
  price: number;
2547
1842
  /**
2548
1843
  * Format: double
2549
- * @description Implied probability (0.0–1.0); null when outcome is unknown
1844
+ * @description Implied probability of the event (0.0–1.0); None when outcome is unknown
2550
1845
  */
2551
1846
  probability?: number | null;
2552
- /** @description Exchange contract that processed the trade */
2553
- exchange: "CTFExchange" | "NegRiskExchange" | "ConditionalTokens" | "NegRiskAdapter" | "CTFExchangeV2" | "NegRiskExchangeV2" | "Unknown";
2554
- /** @description Trade type (webhook events only fire on order fills) */
2555
- trade_type: "OrderFilled" | "OrdersMatched";
1847
+ exchange: string;
1848
+ trade_type: string;
2556
1849
  };
2557
1850
  /** @description Server acknowledgement for an oracle events stream subscription */
2558
1851
  OracleEventsStreamSubscribeResponse: {
@@ -2952,7 +2245,7 @@ export interface components {
2952
2245
  AssetPricesSubscribeMessage: {
2953
2246
  /** @enum {string} */
2954
2247
  action: "subscribe" | "unsubscribe_all";
2955
- /** @description Uppercase asset symbols (BTC, ETH, SOL, XRP, DOGE, BNB, HYPE). Empty = subscribe to all. */
2248
+ /** @description Uppercase asset symbols (e.g. "BTC", "ETH"). Empty = subscribe to all. */
2956
2249
  asset_symbols?: string[];
2957
2250
  };
2958
2251
  /** @description Server acknowledgement for an asset prices subscription */
@@ -2964,7 +2257,7 @@ export interface components {
2964
2257
  AssetPriceTickEvent: {
2965
2258
  /** @description Always "asset_price_tick" */
2966
2259
  event_type: string;
2967
- /** @description Uppercase asset symbol (BTC, ETH, SOL, XRP, DOGE, BNB, HYPE) */
2260
+ /** @description Uppercase asset symbol (e.g. "BTC") */
2968
2261
  symbol: string;
2969
2262
  /** @description Current price in USD */
2970
2263
  price: number;
@@ -2983,7 +2276,7 @@ export interface components {
2983
2276
  AssetPriceWindowUpdateEvent: {
2984
2277
  /** @description Always "asset_price_window_update" */
2985
2278
  event_type: string;
2986
- /** @description Uppercase asset symbol (BTC, ETH, SOL, XRP, DOGE, BNB, HYPE) */
2279
+ /** @description Uppercase asset symbol (e.g. "BTC") */
2987
2280
  symbol: string;
2988
2281
  /** @description Candle size / timeframe (e.g. "5m", "1h", "1d") */
2989
2282
  variant: string;
@@ -3013,7 +2306,7 @@ export interface components {
3013
2306
  AssetWindowUpdatesSubscribeMessage: {
3014
2307
  /** @enum {string} */
3015
2308
  action: "subscribe" | "unsubscribe_all";
3016
- /** @description Uppercase asset symbols (BTC, ETH, SOL, XRP, DOGE, BNB, HYPE) */
2309
+ /** @description Uppercase asset symbols (e.g. "BTC", "ETH") */
3017
2310
  asset_symbols?: string[];
3018
2311
  /** @description Candle sizes to filter by. "1d" and "24h" are treated as equivalent. */
3019
2312
  timeframes?: ("5m" | "15m" | "1h" | "4h" | "1d" | "24h")[];