@surf-ai/sdk 0.1.0 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/react/index.d.ts +247 -179
- package/dist/react/index.js +215 -103
- package/dist/server/index.cjs +35 -35
- package/dist/server/index.d.cts +240 -172
- package/dist/server/index.d.ts +240 -172
- package/dist/server/index.js +35 -35
- package/package.json +8 -4
package/dist/server/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ import express from 'express';
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
interface ServerOptions {
|
|
15
|
-
/** Port to listen on (default: PORT env
|
|
15
|
+
/** Port to listen on (default: PORT env, fallback 3001) */
|
|
16
16
|
port?: number;
|
|
17
17
|
/** Directory containing route files (default: ./routes) */
|
|
18
18
|
routesDir?: string;
|
|
@@ -55,21 +55,23 @@ interface ApiCursorResponse<T> {
|
|
|
55
55
|
}
|
|
56
56
|
interface ExchangeDepthItem {
|
|
57
57
|
/** Total ask-side depth in base currency units */
|
|
58
|
-
ask_depth:
|
|
58
|
+
ask_depth: number;
|
|
59
|
+
/** Sell orders, price ascending */
|
|
59
60
|
asks: ExchangeDepthItemAsksItem[];
|
|
60
61
|
/** Total bid-side depth in base currency units */
|
|
61
|
-
bid_depth:
|
|
62
|
+
bid_depth: number;
|
|
63
|
+
/** Buy orders, price descending */
|
|
62
64
|
bids: ExchangeDepthItemBidsItem[];
|
|
63
65
|
/** Exchange identifier */
|
|
64
66
|
exchange: string;
|
|
65
67
|
/** (best_bid + best_ask) / 2 */
|
|
66
|
-
mid_price:
|
|
68
|
+
mid_price: number;
|
|
67
69
|
/** Trading pair like BTC/USDT */
|
|
68
70
|
pair: string;
|
|
69
71
|
/** Best ask - best bid */
|
|
70
|
-
spread:
|
|
72
|
+
spread: number;
|
|
71
73
|
/** Spread as percent of mid price */
|
|
72
|
-
spread_pct:
|
|
74
|
+
spread_pct: number;
|
|
73
75
|
}
|
|
74
76
|
interface ExchangeDepthItemAsksItem {
|
|
75
77
|
/** Amount at this level */
|
|
@@ -85,7 +87,7 @@ interface ExchangeDepthItemBidsItem {
|
|
|
85
87
|
}
|
|
86
88
|
interface ExchangeDepthParams {
|
|
87
89
|
/** Trading pair (e.g. BTC/USDT) */
|
|
88
|
-
pair
|
|
90
|
+
pair: string;
|
|
89
91
|
/** Market type: spot for spot trading, swap for perpetual contracts — @default 'spot' */
|
|
90
92
|
type?: 'spot' | 'swap';
|
|
91
93
|
/** Number of price levels (1-100) — @default '20' */
|
|
@@ -97,15 +99,15 @@ interface ExchangeFundingHistoryItem {
|
|
|
97
99
|
/** Exchange identifier */
|
|
98
100
|
exchange: string;
|
|
99
101
|
/** Funding rate at this settlement */
|
|
100
|
-
funding_rate:
|
|
102
|
+
funding_rate: number;
|
|
101
103
|
/** Perpetual contract pair like BTC/USDT */
|
|
102
104
|
pair: string;
|
|
103
105
|
/** Unix timestamp in seconds */
|
|
104
|
-
timestamp:
|
|
106
|
+
timestamp: number;
|
|
105
107
|
}
|
|
106
108
|
interface ExchangeFundingHistoryParams {
|
|
107
109
|
/** Trading pair (e.g. BTC/USDT) */
|
|
108
|
-
pair
|
|
110
|
+
pair: string;
|
|
109
111
|
/** Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Not all exchanges support historical queries; some only return recent data regardless of this value. */
|
|
110
112
|
from?: string;
|
|
111
113
|
/** Max number of records. For longer history, paginate using the last returned timestamp as the next from value. — @default '100' */
|
|
@@ -114,6 +116,7 @@ interface ExchangeFundingHistoryParams {
|
|
|
114
116
|
exchange?: 'binance' | 'okx' | 'bybit' | 'bitget' | 'gate' | 'htx' | 'mexc' | 'bitfinex' | 'bitmex';
|
|
115
117
|
}
|
|
116
118
|
interface ExchangeKlinesItem {
|
|
119
|
+
/** OHLCV candles */
|
|
117
120
|
candles: ExchangeKlinesItemCandlesItem[];
|
|
118
121
|
/** Number of candles */
|
|
119
122
|
count: number;
|
|
@@ -124,15 +127,15 @@ interface ExchangeKlinesItem {
|
|
|
124
127
|
/** Trading pair */
|
|
125
128
|
pair: string;
|
|
126
129
|
/** Last candle datetime */
|
|
127
|
-
period_end:
|
|
130
|
+
period_end: string;
|
|
128
131
|
/** Highest price in period */
|
|
129
|
-
period_high:
|
|
132
|
+
period_high: number;
|
|
130
133
|
/** Lowest price in period */
|
|
131
|
-
period_low:
|
|
134
|
+
period_low: number;
|
|
132
135
|
/** First candle datetime */
|
|
133
|
-
period_start:
|
|
136
|
+
period_start: string;
|
|
134
137
|
/** Total volume in period */
|
|
135
|
-
period_volume:
|
|
138
|
+
period_volume: number;
|
|
136
139
|
}
|
|
137
140
|
interface ExchangeKlinesItemCandlesItem {
|
|
138
141
|
/** Closing price */
|
|
@@ -144,13 +147,13 @@ interface ExchangeKlinesItemCandlesItem {
|
|
|
144
147
|
/** Opening price */
|
|
145
148
|
open: number;
|
|
146
149
|
/** Candle open time in Unix seconds */
|
|
147
|
-
timestamp:
|
|
150
|
+
timestamp: number;
|
|
148
151
|
/** Trading volume in base currency units */
|
|
149
152
|
volume: number;
|
|
150
153
|
}
|
|
151
154
|
interface ExchangeKlinesParams {
|
|
152
155
|
/** Trading pair (e.g. BTC/USDT) */
|
|
153
|
-
pair
|
|
156
|
+
pair: string;
|
|
154
157
|
/** Market type: spot for spot trading, swap for perpetual contracts — @default 'spot' */
|
|
155
158
|
type?: 'spot' | 'swap';
|
|
156
159
|
/** Candle interval — @default '1h' */
|
|
@@ -166,15 +169,15 @@ interface ExchangeLongShortRatioItem {
|
|
|
166
169
|
/** Exchange identifier */
|
|
167
170
|
exchange: string;
|
|
168
171
|
/** Ratio of longs to shorts (e.g. 1.5 means 60% long / 40% short). To get percentages: long% = ratio/(ratio+1)*100, short% = 100/(ratio+1) */
|
|
169
|
-
long_short_ratio:
|
|
172
|
+
long_short_ratio: number;
|
|
170
173
|
/** Perpetual contract pair like BTC/USDT */
|
|
171
174
|
pair: string;
|
|
172
175
|
/** Unix timestamp in seconds */
|
|
173
|
-
timestamp:
|
|
176
|
+
timestamp: number;
|
|
174
177
|
}
|
|
175
178
|
interface ExchangeLongShortRatioParams {
|
|
176
179
|
/** Trading pair (e.g. BTC/USDT) */
|
|
177
|
-
pair
|
|
180
|
+
pair: string;
|
|
178
181
|
/** Data interval — @default '1h' */
|
|
179
182
|
interval?: '1h' | '4h' | '1d';
|
|
180
183
|
/** Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD, ISO8601). Not all exchanges support historical queries; some only return recent data regardless of this value. */
|
|
@@ -186,21 +189,21 @@ interface ExchangeLongShortRatioParams {
|
|
|
186
189
|
}
|
|
187
190
|
interface ExchangeMarketsItem {
|
|
188
191
|
/** Whether the market is active */
|
|
189
|
-
active:
|
|
192
|
+
active: boolean;
|
|
190
193
|
/** Base currency */
|
|
191
|
-
base:
|
|
194
|
+
base: string;
|
|
192
195
|
/** Exchange identifier */
|
|
193
196
|
exchange: string;
|
|
194
197
|
/** Default maker fee rate */
|
|
195
|
-
maker_fee:
|
|
198
|
+
maker_fee: number;
|
|
196
199
|
/** Trading pair like BTC/USDT */
|
|
197
200
|
pair: string;
|
|
198
201
|
/** Quote currency */
|
|
199
|
-
quote:
|
|
202
|
+
quote: string;
|
|
200
203
|
/** Default taker fee rate */
|
|
201
|
-
taker_fee:
|
|
204
|
+
taker_fee: number;
|
|
202
205
|
/** Market type: spot, swap, future, option */
|
|
203
|
-
type:
|
|
206
|
+
type: string;
|
|
204
207
|
}
|
|
205
208
|
interface ExchangeMarketsParams {
|
|
206
209
|
/** Exchange identifier. When omitted, searches across all supported exchanges. */
|
|
@@ -228,15 +231,15 @@ interface ExchangePerpDataFunding {
|
|
|
228
231
|
/** Exchange identifier */
|
|
229
232
|
exchange: string;
|
|
230
233
|
/** Current funding rate (0.0001 = 0.01%) */
|
|
231
|
-
funding_rate:
|
|
234
|
+
funding_rate: number;
|
|
232
235
|
/** Index price derived from the weighted average of spot prices across multiple exchanges */
|
|
233
|
-
index_price:
|
|
236
|
+
index_price: number;
|
|
234
237
|
/** Funding interval like 8h */
|
|
235
|
-
interval:
|
|
238
|
+
interval: string;
|
|
236
239
|
/** Mark price calculated by the exchange from the index price and funding rate, used as the reference for liquidations */
|
|
237
|
-
mark_price:
|
|
240
|
+
mark_price: number;
|
|
238
241
|
/** Next settlement time ISO8601 */
|
|
239
|
-
next_funding:
|
|
242
|
+
next_funding: string;
|
|
240
243
|
/** Perpetual contract pair like BTC/USDT */
|
|
241
244
|
pair: string;
|
|
242
245
|
}
|
|
@@ -244,47 +247,47 @@ interface ExchangePerpDataOpenInterest {
|
|
|
244
247
|
/** Exchange identifier */
|
|
245
248
|
exchange: string;
|
|
246
249
|
/** Open interest in contracts */
|
|
247
|
-
open_interest_amount:
|
|
250
|
+
open_interest_amount: number;
|
|
248
251
|
/** Open interest in USD */
|
|
249
|
-
open_interest_usd:
|
|
252
|
+
open_interest_usd: number;
|
|
250
253
|
/** Trading pair like BTC/USDT */
|
|
251
254
|
pair: string;
|
|
252
255
|
/** Unix timestamp in seconds */
|
|
253
|
-
timestamp:
|
|
256
|
+
timestamp: number;
|
|
254
257
|
}
|
|
255
258
|
interface ExchangePerpParams {
|
|
256
259
|
/** Trading pair (e.g. BTC/USDT). The swap suffix ':USDT' is added automatically. */
|
|
257
|
-
pair
|
|
258
|
-
/** Comma-separated fields to include: 'funding' (current funding rate), 'oi' (open interest). Defaults to all fields. — @default 'funding' */
|
|
260
|
+
pair: string;
|
|
261
|
+
/** Comma-separated fields to include: 'funding' (current funding rate), 'oi' (open interest). Defaults to all fields. — @default 'funding,oi' */
|
|
259
262
|
fields?: string;
|
|
260
263
|
/** Exchange identifier — @default 'binance' */
|
|
261
264
|
exchange?: 'binance' | 'okx' | 'bybit' | 'bitget' | 'htx' | 'bitfinex' | 'bitmex';
|
|
262
265
|
}
|
|
263
266
|
interface ExchangePriceItem {
|
|
264
267
|
/** Best ask price */
|
|
265
|
-
ask:
|
|
268
|
+
ask: number;
|
|
266
269
|
/** Best bid price */
|
|
267
|
-
bid:
|
|
270
|
+
bid: number;
|
|
268
271
|
/** Price change percentage in 24h */
|
|
269
|
-
change_24h_pct:
|
|
272
|
+
change_24h_pct: number;
|
|
270
273
|
/** Exchange identifier like binance, okx */
|
|
271
274
|
exchange: string;
|
|
272
275
|
/** 24h high price */
|
|
273
|
-
high_24h:
|
|
276
|
+
high_24h: number;
|
|
274
277
|
/** Last traded price */
|
|
275
|
-
last:
|
|
278
|
+
last: number;
|
|
276
279
|
/** 24h low price */
|
|
277
|
-
low_24h:
|
|
280
|
+
low_24h: number;
|
|
278
281
|
/** Trading pair like BTC/USDT */
|
|
279
282
|
pair: string;
|
|
280
283
|
/** Unix timestamp in seconds */
|
|
281
|
-
timestamp:
|
|
284
|
+
timestamp: number;
|
|
282
285
|
/** 24h trading volume in base currency units */
|
|
283
|
-
volume_24h_base:
|
|
286
|
+
volume_24h_base: number;
|
|
284
287
|
}
|
|
285
288
|
interface ExchangePriceParams {
|
|
286
289
|
/** Trading pair (e.g. BTC/USDT) */
|
|
287
|
-
pair
|
|
290
|
+
pair: string;
|
|
288
291
|
/** Market type: spot for spot trading, swap for perpetual contracts — @default 'spot' */
|
|
289
292
|
type?: 'spot' | 'swap';
|
|
290
293
|
/** Exchange identifier — @default 'binance' */
|
|
@@ -301,15 +304,19 @@ interface FundDetailData {
|
|
|
301
304
|
invested_projects_count: number;
|
|
302
305
|
/** Fund jurisdiction */
|
|
303
306
|
jurisdiction?: string;
|
|
307
|
+
/** Fund links (website, social, etc.) */
|
|
304
308
|
links: FundDetailDataLinksItem[];
|
|
309
|
+
/** Fund team members */
|
|
305
310
|
members: FundDetailDataMembersItem[];
|
|
306
311
|
/** Fund name */
|
|
307
312
|
name: string;
|
|
313
|
+
/** Recent research publications */
|
|
308
314
|
recent_researches: FundDetailDataRecentResearchesItem[];
|
|
309
315
|
/** Fund tier ranking (lower is better) */
|
|
310
316
|
tier: number;
|
|
311
317
|
/** Fund type like `VC` or `Accelerator` */
|
|
312
318
|
type?: string;
|
|
319
|
+
/** X (Twitter) accounts */
|
|
313
320
|
x_accounts: FundDetailDataXAccountsItem[];
|
|
314
321
|
}
|
|
315
322
|
interface FundDetailDataLinksItem {
|
|
@@ -323,6 +330,7 @@ interface FundDetailDataMembersItem {
|
|
|
323
330
|
avatar?: string;
|
|
324
331
|
/** Member name */
|
|
325
332
|
name: string;
|
|
333
|
+
/** Member roles */
|
|
326
334
|
roles: unknown;
|
|
327
335
|
}
|
|
328
336
|
interface FundDetailDataRecentResearchesItem {
|
|
@@ -402,6 +410,7 @@ interface FundRankingItem {
|
|
|
402
410
|
name: string;
|
|
403
411
|
/** Fund tier ranking (lower is better) */
|
|
404
412
|
tier: number;
|
|
413
|
+
/** Top invested projects (up to 5) */
|
|
405
414
|
top_projects: FundRankingItemTopProjectsItem[];
|
|
406
415
|
/** Fund type */
|
|
407
416
|
type?: string;
|
|
@@ -426,13 +435,14 @@ interface FundRankingItemTopProjectsItem {
|
|
|
426
435
|
}
|
|
427
436
|
interface FundRankingParams {
|
|
428
437
|
/** Ranking metric. Can be `tier` (lower is better) or `portfolio_count` (number of invested projects). */
|
|
429
|
-
metric
|
|
438
|
+
metric: 'tier' | 'portfolio_count';
|
|
430
439
|
/** Results per page — @default '20' */
|
|
431
440
|
limit?: number;
|
|
432
441
|
/** Pagination offset — @default '0' */
|
|
433
442
|
offset?: number;
|
|
434
443
|
}
|
|
435
444
|
interface MarketEtfItem {
|
|
445
|
+
/** Flow breakdown by individual ETF ticker */
|
|
436
446
|
etfs?: MarketEtfItemEtfsItem[];
|
|
437
447
|
/** Daily net flow in USD (positive=inflow, negative=outflow) */
|
|
438
448
|
flow_usd: number;
|
|
@@ -449,7 +459,7 @@ interface MarketEtfItemEtfsItem {
|
|
|
449
459
|
}
|
|
450
460
|
interface MarketEtfParams {
|
|
451
461
|
/** Token symbol. Can be `BTC` or `ETH`. */
|
|
452
|
-
symbol
|
|
462
|
+
symbol: 'BTC' | 'ETH';
|
|
453
463
|
/** Field to sort results by — @default 'timestamp' */
|
|
454
464
|
sort_by?: 'flow_usd' | 'timestamp';
|
|
455
465
|
/** Sort order — @default 'desc' */
|
|
@@ -507,7 +517,7 @@ interface MarketLiquidationChartItem {
|
|
|
507
517
|
}
|
|
508
518
|
interface MarketLiquidationChartParams {
|
|
509
519
|
/** Token ticker symbol like `BTC` or `ETH` */
|
|
510
|
-
symbol
|
|
520
|
+
symbol: string;
|
|
511
521
|
/** Candlestick interval. Can be `1m`, `3m`, `5m`, `15m`, `30m`, `1h`, `4h`, `6h`, `8h`, `12h`, `1d`, or `1w`. — @default '1h' */
|
|
512
522
|
interval?: '1m' | '3m' | '5m' | '15m' | '30m' | '1h' | '4h' | '6h' | '8h' | '12h' | '1d' | '1w';
|
|
513
523
|
/** Exchange name. Can be `Binance`, `OKX`, `Bybit`, `Bitget`, `Hyperliquid`, `Gate`, `HTX`, `Bitmex`, `Bitfinex`, `CoinEx`, `Aster`, or `Lighter`. — @default 'Binance' */
|
|
@@ -585,9 +595,9 @@ interface MarketOnchainIndicatorItem {
|
|
|
585
595
|
}
|
|
586
596
|
interface MarketOnchainIndicatorParams {
|
|
587
597
|
/** Token ticker symbol. Can be `BTC` or `ETH`. */
|
|
588
|
-
symbol
|
|
598
|
+
symbol: 'BTC' | 'ETH';
|
|
589
599
|
/** On-chain metric name. Can be `nupl`, `sopr`, `mvrv`, `puell-multiple`, `nvm`, `nvt`, `nvt-golden-cross`, or `exchange-flows/{inflow,outflow,netflow,reserve}`. */
|
|
590
|
-
metric
|
|
600
|
+
metric: 'nupl' | 'sopr' | 'mvrv' | 'puell-multiple' | 'nvm' | 'nvt' | 'nvt-golden-cross' | 'exchange-flows/inflow' | 'exchange-flows/outflow' | 'exchange-flows/netflow' | 'exchange-flows/reserve';
|
|
591
601
|
/** Aggregation granularity. — @default 'day' */
|
|
592
602
|
granularity?: 'day';
|
|
593
603
|
/** Start of time range. Accepts Unix seconds or date string (YYYY-MM-DD). Defaults to 90 days ago when omitted. Maximum range is 365 days. */
|
|
@@ -615,7 +625,7 @@ interface MarketOptionsItem {
|
|
|
615
625
|
}
|
|
616
626
|
interface MarketOptionsParams {
|
|
617
627
|
/** Token symbol. Can be `BTC`, `ETH`, `SOL`, `XRP`, `BNB`, `DOGE`, `ADA`, or `AVAX`. */
|
|
618
|
-
symbol
|
|
628
|
+
symbol: 'BTC' | 'ETH' | 'SOL' | 'XRP' | 'BNB' | 'DOGE' | 'ADA' | 'AVAX';
|
|
619
629
|
/** Field to sort results by — @default 'volume_24h' */
|
|
620
630
|
sort_by?: 'open_interest' | 'volume_24h';
|
|
621
631
|
/** Sort order — @default 'desc' */
|
|
@@ -633,7 +643,7 @@ interface MarketPriceItem {
|
|
|
633
643
|
}
|
|
634
644
|
interface MarketPriceParams {
|
|
635
645
|
/** Single token ticker symbol like `BTC`, `ETH`, or `SOL` (multi-symbol not supported) */
|
|
636
|
-
symbol
|
|
646
|
+
symbol: string;
|
|
637
647
|
/** Predefined time range for historical data. Ignored when `from`/`to` are set. Can be `1d`, `7d`, `14d`, `30d`, `90d`, `180d`, `365d`, or `max`. — @default '30d' */
|
|
638
648
|
time_range?: '1d' | '7d' | '14d' | '30d' | '90d' | '180d' | '365d' | 'max';
|
|
639
649
|
/** Start of custom date range (Unix timestamp or YYYY-MM-DD). Must be used together with `to`. Overrides `time_range` when set. */
|
|
@@ -704,9 +714,9 @@ interface MarketPriceIndicatorItemValues {
|
|
|
704
714
|
}
|
|
705
715
|
interface MarketPriceIndicatorParams {
|
|
706
716
|
/** Technical indicator name. Can be `rsi`, `macd`, `ema`, `sma`, `bbands`, `stoch`, `adx`, `atr`, `cci`, `obv`, `vwap`, `dmi`, `ichimoku`, or `supertrend`. */
|
|
707
|
-
indicator
|
|
717
|
+
indicator: 'rsi' | 'macd' | 'ema' | 'sma' | 'bbands' | 'stoch' | 'adx' | 'atr' | 'cci' | 'obv' | 'vwap' | 'dmi' | 'ichimoku' | 'supertrend';
|
|
708
718
|
/** Trading pair as `BTC/USDT` or bare symbol like `BTC` */
|
|
709
|
-
symbol
|
|
719
|
+
symbol: string;
|
|
710
720
|
/** Candlestick interval. Can be `1m`, `5m`, `15m`, `30m`, `1h`, `2h`, `4h`, `12h`, `1d`, or `1w`. — @default '1d' */
|
|
711
721
|
interval?: '1m' | '5m' | '15m' | '30m' | '1h' | '2h' | '4h' | '12h' | '1d' | '1w';
|
|
712
722
|
/** Exchange for price data. Can be `binance`, `bybit`, `coinbase`, or `kraken`. — @default 'binance' */
|
|
@@ -786,9 +796,10 @@ interface NewsDetailData {
|
|
|
786
796
|
}
|
|
787
797
|
interface NewsDetailParams {
|
|
788
798
|
/** Article ID (returned as id in feed/search results) */
|
|
789
|
-
id
|
|
799
|
+
id: string;
|
|
790
800
|
}
|
|
791
801
|
interface NewsFeedItem {
|
|
802
|
+
/** Search highlight fragments with <em> tags around matching terms. Only present in search results. */
|
|
792
803
|
highlights?: NewsFeedItemHighlights;
|
|
793
804
|
/** Article ID. Use with the detail endpoint to fetch full content. */
|
|
794
805
|
id: string;
|
|
@@ -852,18 +863,20 @@ interface OnchainGasPriceData {
|
|
|
852
863
|
}
|
|
853
864
|
interface OnchainGasPriceParams {
|
|
854
865
|
/** Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`. */
|
|
855
|
-
chain
|
|
866
|
+
chain: 'ethereum' | 'polygon' | 'bsc' | 'arbitrum' | 'optimism' | 'base' | 'avalanche' | 'fantom' | 'linea' | 'cyber';
|
|
856
867
|
}
|
|
857
868
|
interface OnchainStructuredQueryItem {
|
|
858
|
-
[key: string]: unknown;
|
|
859
869
|
}
|
|
860
870
|
interface OnchainStructuredQueryParams {
|
|
871
|
+
/** Columns to return. Omit to return all columns. Example for agent.ethereum_transactions: [`transaction_hash`, `from_address`, `value`] */
|
|
861
872
|
fields?: unknown;
|
|
873
|
+
/** WHERE conditions (ANDed together) */
|
|
862
874
|
filters?: OnchainStructuredQueryParamsFiltersItem[];
|
|
863
875
|
/** Max rows to return. Default 20, max 10000 */
|
|
864
876
|
limit?: number;
|
|
865
877
|
/** Rows to skip for pagination. Default 0 */
|
|
866
878
|
offset?: number;
|
|
879
|
+
/** ORDER BY clauses */
|
|
867
880
|
sort?: OnchainStructuredQueryParamsSortItem[];
|
|
868
881
|
/** Fully-qualified table name like `agent.my_table` */
|
|
869
882
|
source: string;
|
|
@@ -873,7 +886,7 @@ interface OnchainStructuredQueryParamsFiltersItem {
|
|
|
873
886
|
field: string;
|
|
874
887
|
/** Comparison operator: eq, neq, gt, gte, lt, lte, like, in, not_in. For `in`/`not_in`, value must be a JSON array */
|
|
875
888
|
op: string;
|
|
876
|
-
/**
|
|
889
|
+
/** Comparison value. Use a JSON array for `in`/`not_in` operators like `[21000000, 21000001]` */
|
|
877
890
|
value: unknown;
|
|
878
891
|
}
|
|
879
892
|
interface OnchainStructuredQueryParamsSortItem {
|
|
@@ -883,6 +896,7 @@ interface OnchainStructuredQueryParamsSortItem {
|
|
|
883
896
|
order?: string;
|
|
884
897
|
}
|
|
885
898
|
interface OnchainSchemaItem {
|
|
899
|
+
/** List of columns in this table */
|
|
886
900
|
columns: OnchainSchemaItemColumnsItem[];
|
|
887
901
|
/** Database name (always `agent`) */
|
|
888
902
|
database: string;
|
|
@@ -898,7 +912,6 @@ interface OnchainSchemaItemColumnsItem {
|
|
|
898
912
|
type: string;
|
|
899
913
|
}
|
|
900
914
|
interface OnchainSqlItem {
|
|
901
|
-
[key: string]: unknown;
|
|
902
915
|
}
|
|
903
916
|
interface OnchainSqlParams {
|
|
904
917
|
/** Maximum number of rows to return — @default '1000' */
|
|
@@ -907,12 +920,14 @@ interface OnchainSqlParams {
|
|
|
907
920
|
sql: string;
|
|
908
921
|
}
|
|
909
922
|
interface OnchainTxItem {
|
|
923
|
+
/** List of addresses and storage keys. Empty array for legacy; populated for EIP-2930+ */
|
|
910
924
|
accessList: OnchainTxItemAccesslistItem[];
|
|
925
|
+
/** Versioned hashes of blob commitments. EIP-4844 only */
|
|
911
926
|
blobVersionedHashes?: unknown;
|
|
912
927
|
/** Block hash, null if pending */
|
|
913
|
-
blockHash:
|
|
928
|
+
blockHash: string;
|
|
914
929
|
/** Block number (hex), null if pending */
|
|
915
|
-
blockNumber:
|
|
930
|
+
blockNumber: string;
|
|
916
931
|
/** Chain ID (hex) */
|
|
917
932
|
chainId?: string;
|
|
918
933
|
/** Sender address (0x-prefixed) */
|
|
@@ -938,9 +953,9 @@ interface OnchainTxItem {
|
|
|
938
953
|
/** Signature S (hex) */
|
|
939
954
|
s: string;
|
|
940
955
|
/** Recipient address, null for contract creation */
|
|
941
|
-
to:
|
|
956
|
+
to: string;
|
|
942
957
|
/** Index in block (hex), null if pending */
|
|
943
|
-
transactionIndex:
|
|
958
|
+
transactionIndex: string;
|
|
944
959
|
/** Transaction type: 0x0=legacy, 0x1=EIP-2930, 0x2=EIP-1559, 0x3=EIP-4844 */
|
|
945
960
|
type: string;
|
|
946
961
|
/** Signature V (hex). Legacy: recovery ID (0x1b/0x1c); EIP-2930+: parity (0x0/0x1) */
|
|
@@ -953,13 +968,14 @@ interface OnchainTxItem {
|
|
|
953
968
|
interface OnchainTxItemAccesslistItem {
|
|
954
969
|
/** Account address (0x-prefixed) */
|
|
955
970
|
address: string;
|
|
971
|
+
/** List of storage slot keys (0x-prefixed hex) */
|
|
956
972
|
storageKeys: unknown;
|
|
957
973
|
}
|
|
958
974
|
interface OnchainTxParams {
|
|
959
975
|
/** Transaction hash (0x-prefixed hex) */
|
|
960
|
-
hash
|
|
976
|
+
hash: string;
|
|
961
977
|
/** Chain. Can be `ethereum`, `polygon`, `bsc`, `arbitrum`, `optimism`, `base`, `avalanche`, `fantom`, `linea`, or `cyber`. */
|
|
962
|
-
chain
|
|
978
|
+
chain: 'ethereum' | 'polygon' | 'bsc' | 'arbitrum' | 'optimism' | 'base' | 'avalanche' | 'fantom' | 'linea' | 'cyber';
|
|
963
979
|
}
|
|
964
980
|
interface OnchainYieldRankingItem {
|
|
965
981
|
/** Total APY (base + reward) */
|
|
@@ -1014,7 +1030,7 @@ interface PredictionMarketCategoryMetricsParams {
|
|
|
1014
1030
|
category?: 'crypto' | 'culture' | 'economics' | 'financials' | 'politics' | 'stem' | 'sports';
|
|
1015
1031
|
/** Predefined time range: `7d`, `30d`, `90d`, `180d`, `1y`, or `all` — @default '30d' */
|
|
1016
1032
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y' | 'all';
|
|
1017
|
-
/**
|
|
1033
|
+
/** Maximum rows to return — @default '200' */
|
|
1018
1034
|
limit?: number;
|
|
1019
1035
|
/** Pagination offset — @default '0' */
|
|
1020
1036
|
offset?: number;
|
|
@@ -1028,6 +1044,7 @@ interface KalshiEventsItem {
|
|
|
1028
1044
|
event_title: string;
|
|
1029
1045
|
/** Number of markets in this event */
|
|
1030
1046
|
market_count: number;
|
|
1047
|
+
/** Markets within this event */
|
|
1031
1048
|
markets: KalshiEventsItemMarketsItem[];
|
|
1032
1049
|
}
|
|
1033
1050
|
interface KalshiEventsItemMarketsItem {
|
|
@@ -1066,7 +1083,7 @@ interface KalshiEventsItemMarketsItem {
|
|
|
1066
1083
|
}
|
|
1067
1084
|
interface KalshiEventsParams {
|
|
1068
1085
|
/** Event ticker identifier */
|
|
1069
|
-
event_ticker
|
|
1086
|
+
event_ticker: string;
|
|
1070
1087
|
/** Results per page — @default '20' */
|
|
1071
1088
|
limit?: number;
|
|
1072
1089
|
/** Pagination offset — @default '0' */
|
|
@@ -1108,7 +1125,7 @@ interface KalshiMarketsItem {
|
|
|
1108
1125
|
}
|
|
1109
1126
|
interface KalshiMarketsParams {
|
|
1110
1127
|
/** Market ticker identifier */
|
|
1111
|
-
market_ticker
|
|
1128
|
+
market_ticker: string;
|
|
1112
1129
|
/** Results per page — @default '20' */
|
|
1113
1130
|
limit?: number;
|
|
1114
1131
|
/** Pagination offset — @default '0' */
|
|
@@ -1122,7 +1139,7 @@ interface KalshiOpenInterestItem {
|
|
|
1122
1139
|
}
|
|
1123
1140
|
interface KalshiOpenInterestParams {
|
|
1124
1141
|
/** Market ticker identifier */
|
|
1125
|
-
ticker
|
|
1142
|
+
ticker: string;
|
|
1126
1143
|
/** Predefined time range: `7d`, `30d`, `90d`, `180d`, or `1y` — @default '30d' */
|
|
1127
1144
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y';
|
|
1128
1145
|
}
|
|
@@ -1152,7 +1169,7 @@ interface KalshiPricesItemSideB {
|
|
|
1152
1169
|
}
|
|
1153
1170
|
interface KalshiPricesParams {
|
|
1154
1171
|
/** Market ticker identifier */
|
|
1155
|
-
ticker
|
|
1172
|
+
ticker: string;
|
|
1156
1173
|
/** Predefined time range: `7d`, `30d`, `90d`, `180d`, or `1y`. Ignored when `interval=latest`. — @default '30d' */
|
|
1157
1174
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y';
|
|
1158
1175
|
/** Data interval: `1h` for hourly, `1d` for daily OHLC, `latest` for real-time price from trades — @default '1d' */
|
|
@@ -1224,7 +1241,7 @@ interface KalshiTradesItem {
|
|
|
1224
1241
|
}
|
|
1225
1242
|
interface KalshiTradesParams {
|
|
1226
1243
|
/** Market ticker identifier */
|
|
1227
|
-
ticker
|
|
1244
|
+
ticker: string;
|
|
1228
1245
|
/** Filter by taker side: `yes` or `no` */
|
|
1229
1246
|
taker_side?: 'yes' | 'no';
|
|
1230
1247
|
/** Minimum notional volume in USD (each contract = $1) */
|
|
@@ -1250,7 +1267,7 @@ interface KalshiVolumesItem {
|
|
|
1250
1267
|
}
|
|
1251
1268
|
interface KalshiVolumesParams {
|
|
1252
1269
|
/** Market ticker identifier */
|
|
1253
|
-
ticker
|
|
1270
|
+
ticker: string;
|
|
1254
1271
|
/** Predefined time range: `7d`, `30d`, `90d`, `180d`, or `1y` — @default '30d' */
|
|
1255
1272
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y';
|
|
1256
1273
|
}
|
|
@@ -1278,7 +1295,7 @@ interface PolymarketActivityItem {
|
|
|
1278
1295
|
}
|
|
1279
1296
|
interface PolymarketActivityParams {
|
|
1280
1297
|
/** Polymarket proxy wallet address */
|
|
1281
|
-
address
|
|
1298
|
+
address: string;
|
|
1282
1299
|
/** Results per page — @default '50' */
|
|
1283
1300
|
limit?: number;
|
|
1284
1301
|
/** Pagination offset — @default '0' */
|
|
@@ -1297,6 +1314,7 @@ interface PolymarketEventsItem {
|
|
|
1297
1314
|
image?: string;
|
|
1298
1315
|
/** Number of markets in this event */
|
|
1299
1316
|
market_count: number;
|
|
1317
|
+
/** Markets within this event */
|
|
1300
1318
|
markets: PolymarketEventsItemMarketsItem[];
|
|
1301
1319
|
/** Resolution source URL */
|
|
1302
1320
|
settlement_sources?: string;
|
|
@@ -1306,6 +1324,7 @@ interface PolymarketEventsItem {
|
|
|
1306
1324
|
status: string;
|
|
1307
1325
|
/** Surf curated event subcategory */
|
|
1308
1326
|
subcategory?: string;
|
|
1327
|
+
/** Event tags */
|
|
1309
1328
|
tags?: unknown;
|
|
1310
1329
|
/** Event title */
|
|
1311
1330
|
title: string;
|
|
@@ -1347,6 +1366,7 @@ interface PolymarketEventsItemMarketsItem {
|
|
|
1347
1366
|
status: string;
|
|
1348
1367
|
/** Surf curated market subcategory */
|
|
1349
1368
|
subcategory?: string;
|
|
1369
|
+
/** Market tags */
|
|
1350
1370
|
tags?: unknown;
|
|
1351
1371
|
/** Market title */
|
|
1352
1372
|
title: string;
|
|
@@ -1375,7 +1395,7 @@ interface PolymarketEventsItemMarketsItemSideB {
|
|
|
1375
1395
|
}
|
|
1376
1396
|
interface PolymarketEventsParams {
|
|
1377
1397
|
/** Event slug identifier */
|
|
1378
|
-
event_slug
|
|
1398
|
+
event_slug: string;
|
|
1379
1399
|
/** Results per page — @default '20' */
|
|
1380
1400
|
limit?: number;
|
|
1381
1401
|
/** Pagination offset — @default '0' */
|
|
@@ -1416,6 +1436,7 @@ interface PolymarketMarketsItem {
|
|
|
1416
1436
|
status: string;
|
|
1417
1437
|
/** Surf curated market subcategory */
|
|
1418
1438
|
subcategory?: string;
|
|
1439
|
+
/** Market tags */
|
|
1419
1440
|
tags?: unknown;
|
|
1420
1441
|
/** Market title */
|
|
1421
1442
|
title: string;
|
|
@@ -1444,7 +1465,7 @@ interface PolymarketMarketsItemSideB {
|
|
|
1444
1465
|
}
|
|
1445
1466
|
interface PolymarketMarketsParams {
|
|
1446
1467
|
/** Market slug identifier */
|
|
1447
|
-
market_slug
|
|
1468
|
+
market_slug: string;
|
|
1448
1469
|
/** Results per page — @default '20' */
|
|
1449
1470
|
limit?: number;
|
|
1450
1471
|
/** Pagination offset — @default '0' */
|
|
@@ -1460,7 +1481,7 @@ interface PolymarketOpenInterestItem {
|
|
|
1460
1481
|
}
|
|
1461
1482
|
interface PolymarketOpenInterestParams {
|
|
1462
1483
|
/** Market condition identifier */
|
|
1463
|
-
condition_id
|
|
1484
|
+
condition_id: string;
|
|
1464
1485
|
/** Predefined time range — @default '30d' */
|
|
1465
1486
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y';
|
|
1466
1487
|
}
|
|
@@ -1488,7 +1509,7 @@ interface PolymarketPositionsItem {
|
|
|
1488
1509
|
}
|
|
1489
1510
|
interface PolymarketPositionsParams {
|
|
1490
1511
|
/** Polymarket proxy wallet address */
|
|
1491
|
-
address
|
|
1512
|
+
address: string;
|
|
1492
1513
|
/** Results per page — @default '50' */
|
|
1493
1514
|
limit?: number;
|
|
1494
1515
|
/** Pagination offset — @default '0' */
|
|
@@ -1518,7 +1539,7 @@ interface PolymarketPricesItemSideB {
|
|
|
1518
1539
|
}
|
|
1519
1540
|
interface PolymarketPricesParams {
|
|
1520
1541
|
/** Market condition identifier */
|
|
1521
|
-
condition_id
|
|
1542
|
+
condition_id: string;
|
|
1522
1543
|
/** Predefined time range. Ignored when `interval` is `latest`. — @default '30d' */
|
|
1523
1544
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y';
|
|
1524
1545
|
/** Aggregation interval: `1h` (hourly), `1d` (daily), or `latest` (most recent snapshot) — @default '1d' */
|
|
@@ -1543,6 +1564,7 @@ interface PolymarketRankingItem {
|
|
|
1543
1564
|
status: string;
|
|
1544
1565
|
/** Surf curated market subcategory */
|
|
1545
1566
|
subcategory?: string;
|
|
1567
|
+
/** Market tags */
|
|
1546
1568
|
tags?: unknown;
|
|
1547
1569
|
}
|
|
1548
1570
|
interface PolymarketRankingParams {
|
|
@@ -1625,7 +1647,7 @@ interface PolymarketVolumesItem {
|
|
|
1625
1647
|
}
|
|
1626
1648
|
interface PolymarketVolumesParams {
|
|
1627
1649
|
/** Market condition identifier */
|
|
1628
|
-
condition_id
|
|
1650
|
+
condition_id: string;
|
|
1629
1651
|
/** Predefined time range — @default '30d' */
|
|
1630
1652
|
time_range?: '7d' | '30d' | '90d' | '180d' | '1y';
|
|
1631
1653
|
/** Aggregation interval: `1h` (hourly) or `1d` (daily) — @default '1d' */
|
|
@@ -1643,7 +1665,7 @@ interface ProjectDefiMetricsParams {
|
|
|
1643
1665
|
/** Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names. */
|
|
1644
1666
|
q?: string;
|
|
1645
1667
|
/** Metric to query. Can be `volume`, `fees` (or `fee` alias), `revenue`, `tvl`, or `users`. */
|
|
1646
|
-
metric
|
|
1668
|
+
metric: 'volume' | 'fee' | 'fees' | 'revenue' | 'tvl' | 'users';
|
|
1647
1669
|
/** Start of time range. Accepts Unix seconds (`1704067200`) or date string (`2024-01-01`) */
|
|
1648
1670
|
from?: string;
|
|
1649
1671
|
/** End of time range. Accepts Unix seconds (`1706745600`) or date string (`2024-02-01`) */
|
|
@@ -1668,7 +1690,7 @@ interface ProjectDefiRankingItem {
|
|
|
1668
1690
|
}
|
|
1669
1691
|
interface ProjectDefiRankingParams {
|
|
1670
1692
|
/** Ranking metric. Can be `tvl`, `revenue`, `fees`, `volume`, or `users`. */
|
|
1671
|
-
metric
|
|
1693
|
+
metric: 'tvl' | 'revenue' | 'fees' | 'volume' | 'users';
|
|
1672
1694
|
/** Results per page — @default '20' */
|
|
1673
1695
|
limit?: number;
|
|
1674
1696
|
/** Pagination offset — @default '0' */
|
|
@@ -1685,17 +1707,21 @@ interface ProjectDetailData {
|
|
|
1685
1707
|
tokenomics?: ProjectDetailDataTokenomics;
|
|
1686
1708
|
}
|
|
1687
1709
|
interface ProjectDetailDataContracts {
|
|
1710
|
+
/** List of deployed smart contract addresses across chains */
|
|
1688
1711
|
contracts?: ProjectDetailDataContractsContractsItem[];
|
|
1689
1712
|
}
|
|
1690
1713
|
interface ProjectDetailDataFunding {
|
|
1714
|
+
/** List of individual funding rounds */
|
|
1691
1715
|
rounds?: ProjectDetailDataFundingRoundsItem[];
|
|
1692
1716
|
/** Total capital raised across all rounds in USD */
|
|
1693
1717
|
total_raise?: number;
|
|
1694
1718
|
}
|
|
1695
1719
|
interface ProjectDetailDataOverview {
|
|
1720
|
+
/** Chains the project is deployed on */
|
|
1696
1721
|
chains?: unknown;
|
|
1697
1722
|
/** Short description of the project */
|
|
1698
1723
|
description?: string;
|
|
1724
|
+
/** Exchange names where the token is listed */
|
|
1699
1725
|
exchanges?: unknown;
|
|
1700
1726
|
/** Surf project UUID — pass as 'id' parameter to /project/detail, /project/events, or /project/defi/metrics for exact lookup. Prefer over 'q' (fuzzy name search). */
|
|
1701
1727
|
id: string;
|
|
@@ -1705,6 +1731,7 @@ interface ProjectDetailDataOverview {
|
|
|
1705
1731
|
name: string;
|
|
1706
1732
|
/** URL-friendly project slug */
|
|
1707
1733
|
slug?: string;
|
|
1734
|
+
/** Project category tags like `DeFi`, `NFT`, or `Layer2` */
|
|
1708
1735
|
tags?: unknown;
|
|
1709
1736
|
/** TGE status: pre, upcoming, or post */
|
|
1710
1737
|
tge_status?: string;
|
|
@@ -1724,11 +1751,13 @@ interface ProjectDetailDataSocial {
|
|
|
1724
1751
|
twitter?: ProjectDetailDataSocialTwitter;
|
|
1725
1752
|
}
|
|
1726
1753
|
interface ProjectDetailDataTeam {
|
|
1754
|
+
/** List of team members with their roles and social links */
|
|
1727
1755
|
members?: ProjectDetailDataTeamMembersItem[];
|
|
1728
1756
|
}
|
|
1729
1757
|
interface ProjectDetailDataTgeStatus {
|
|
1730
1758
|
/** TGE status: `pre`, `upcoming`, or `post`. Omitted when unknown. */
|
|
1731
1759
|
current_status?: string;
|
|
1760
|
+
/** Exchange names where the token is listed */
|
|
1732
1761
|
exchanges?: unknown;
|
|
1733
1762
|
/** Unix timestamp of the last TGE event */
|
|
1734
1763
|
last_event_time?: number;
|
|
@@ -1790,6 +1819,7 @@ interface ProjectDetailDataFundingRoundsItem {
|
|
|
1790
1819
|
amount?: number;
|
|
1791
1820
|
/** Date when the round closed in ISO 8601 format */
|
|
1792
1821
|
date?: string;
|
|
1822
|
+
/** Investors participating in this round */
|
|
1793
1823
|
investors?: ProjectDetailDataFundingRoundsItemInvestorsItem[];
|
|
1794
1824
|
/** Funding round name like `Seed`, `Series A`, or `Private` */
|
|
1795
1825
|
round_name: string;
|
|
@@ -1835,6 +1865,7 @@ interface ProjectDetailDataTeamMembersItem {
|
|
|
1835
1865
|
name: string;
|
|
1836
1866
|
/** Team member's role or title */
|
|
1837
1867
|
role?: string;
|
|
1868
|
+
/** Social profile links keyed by platform name like `twitter` or `linkedin` */
|
|
1838
1869
|
social_links?: ProjectDetailDataTeamMembersItemSocialLinks;
|
|
1839
1870
|
}
|
|
1840
1871
|
interface ProjectDetailDataFundingRoundsItemInvestorsItem {
|
|
@@ -1855,7 +1886,7 @@ interface ProjectDetailParams {
|
|
|
1855
1886
|
id?: string;
|
|
1856
1887
|
/** Fuzzy entity name search. Only use when 'id' is not available. May return unexpected results for ambiguous names. */
|
|
1857
1888
|
q?: string;
|
|
1858
|
-
/** Comma-separated sub-resources to include. Can be `overview`, `token_info`, `tokenomics`, `funding`, `team`, `contracts`, `social`, or `tge_status`. — @default 'overview' */
|
|
1889
|
+
/** Comma-separated sub-resources to include. Can be `overview`, `token_info`, `tokenomics`, `funding`, `team`, `contracts`, `social`, or `tge_status`. — @default 'overview,token_info,tokenomics,funding,team,contracts,social,tge_status' */
|
|
1859
1890
|
fields?: string;
|
|
1860
1891
|
}
|
|
1861
1892
|
interface SearchAirdropItem {
|
|
@@ -1878,6 +1909,7 @@ interface SearchAirdropItem {
|
|
|
1878
1909
|
/** Airdrop lifecycle stage: `POTENTIAL` (speculated, tasks open), `CONFIRMED` (announced, tasks open), `SNAPSHOT` (eligibility snapshot taken), `VERIFICATION` (claim window open), `REWARD_AVAILABLE` (ready to claim), `DISTRIBUTED` (sent, historical) */
|
|
1879
1910
|
status: string;
|
|
1880
1911
|
task_summary?: SearchAirdropItemTaskSummary;
|
|
1912
|
+
/** Full task list (only with include_tasks=true) */
|
|
1881
1913
|
tasks?: SearchAirdropItemTasksItem[];
|
|
1882
1914
|
/** Total project fundraise in USD (0 if unknown) */
|
|
1883
1915
|
total_raise: number;
|
|
@@ -1889,9 +1921,11 @@ interface SearchAirdropItemTaskSummary {
|
|
|
1889
1921
|
open: number;
|
|
1890
1922
|
/** Total number of tasks */
|
|
1891
1923
|
total: number;
|
|
1924
|
+
/** Distinct task types */
|
|
1892
1925
|
types: unknown;
|
|
1893
1926
|
}
|
|
1894
1927
|
interface SearchAirdropItemTasksItem {
|
|
1928
|
+
/** Supported blockchain names */
|
|
1895
1929
|
blockchains?: unknown;
|
|
1896
1930
|
/** Task close date as Unix seconds (0 if unknown) */
|
|
1897
1931
|
close_date: number;
|
|
@@ -1915,13 +1949,13 @@ interface SearchAirdropItemTasksItem {
|
|
|
1915
1949
|
interface SearchAirdropParams {
|
|
1916
1950
|
/** Search keyword for coin name */
|
|
1917
1951
|
q?: string;
|
|
1918
|
-
/** Comma-separated lifecycle phases. `active` = tasks open, can participate (POTENTIAL + CONFIRMED). `claimable` = eligible, can claim (SNAPSHOT + VERIFICATION + REWARD_AVAILABLE). `completed` = done (DISTRIBUTED). Defaults to `active,claimable` to show actionable airdrops. — @default 'active' */
|
|
1952
|
+
/** Comma-separated lifecycle phases. `active` = tasks open, can participate (POTENTIAL + CONFIRMED). `claimable` = eligible, can claim (SNAPSHOT + VERIFICATION + REWARD_AVAILABLE). `completed` = done (DISTRIBUTED). Defaults to `active,claimable` to show actionable airdrops. — @default 'active,claimable' */
|
|
1919
1953
|
phase?: string;
|
|
1920
1954
|
/** Filter by reward type */
|
|
1921
1955
|
reward_type?: 'airdrop' | 'points' | 'whitelist' | 'nft' | 'role' | 'ambassador';
|
|
1922
1956
|
/** Filter activities containing tasks of this type */
|
|
1923
1957
|
task_type?: 'social' | 'bounty-platforms' | 'testnet' | 'mainnet' | 'role' | 'form' | 'liquidity' | 'mint-nft' | 'game' | 'trading' | 'staking' | 'depin' | 'node' | 'ambassador' | 'hold' | 'check-wallet' | 'mint-domain' | 'predictions' | 'deploy';
|
|
1924
|
-
/** Only return activities with currently OPEN tasks — @default '
|
|
1958
|
+
/** Only return activities with currently OPEN tasks — @default 'False' */
|
|
1925
1959
|
has_open?: boolean;
|
|
1926
1960
|
/** Field to sort results by — @default 'last_status_update' */
|
|
1927
1961
|
sort_by?: 'total_raise' | 'xscore' | 'last_status_update';
|
|
@@ -1931,7 +1965,7 @@ interface SearchAirdropParams {
|
|
|
1931
1965
|
limit?: number;
|
|
1932
1966
|
/** Pagination offset — @default '0' */
|
|
1933
1967
|
offset?: number;
|
|
1934
|
-
/** Include full task list per activity — @default '
|
|
1968
|
+
/** Include full task list per activity — @default 'False' */
|
|
1935
1969
|
include_tasks?: boolean;
|
|
1936
1970
|
}
|
|
1937
1971
|
interface SearchEventsItem {
|
|
@@ -1969,6 +2003,7 @@ interface SearchFundItem {
|
|
|
1969
2003
|
name: string;
|
|
1970
2004
|
/** Fund tier ranking (lower is better) */
|
|
1971
2005
|
tier: number;
|
|
2006
|
+
/** Top invested projects (up to 5) */
|
|
1972
2007
|
top_projects: SearchFundItemTopProjectsItem[];
|
|
1973
2008
|
/** Fund type */
|
|
1974
2009
|
type?: string;
|
|
@@ -1993,7 +2028,7 @@ interface SearchFundItemTopProjectsItem {
|
|
|
1993
2028
|
}
|
|
1994
2029
|
interface SearchFundParams {
|
|
1995
2030
|
/** Search keyword — fund name like `a16z`, `paradigm`, or `coinbase ventures` */
|
|
1996
|
-
q
|
|
2031
|
+
q: string;
|
|
1997
2032
|
/** Results per page — @default '20' */
|
|
1998
2033
|
limit?: number;
|
|
1999
2034
|
/** Pagination offset — @default '0' */
|
|
@@ -2008,6 +2043,7 @@ interface SearchKalshiItem {
|
|
|
2008
2043
|
event_title: string;
|
|
2009
2044
|
/** Number of markets in this event */
|
|
2010
2045
|
market_count: number;
|
|
2046
|
+
/** Markets within this event */
|
|
2011
2047
|
markets: SearchKalshiItemMarketsItem[];
|
|
2012
2048
|
}
|
|
2013
2049
|
interface SearchKalshiItemMarketsItem {
|
|
@@ -2057,6 +2093,7 @@ interface SearchKalshiParams {
|
|
|
2057
2093
|
offset?: number;
|
|
2058
2094
|
}
|
|
2059
2095
|
interface SearchNewsItem {
|
|
2096
|
+
/** Search highlight fragments with <em> tags around matching terms. Only present in search results. */
|
|
2060
2097
|
highlights?: SearchNewsItemHighlights;
|
|
2061
2098
|
/** Article ID. Use with the detail endpoint to fetch full content. */
|
|
2062
2099
|
id: string;
|
|
@@ -2080,7 +2117,7 @@ interface SearchNewsItemHighlights {
|
|
|
2080
2117
|
}
|
|
2081
2118
|
interface SearchNewsParams {
|
|
2082
2119
|
/** Search keyword or phrase */
|
|
2083
|
-
q
|
|
2120
|
+
q: string;
|
|
2084
2121
|
}
|
|
2085
2122
|
interface SearchPolymarketItem {
|
|
2086
2123
|
/** Surf curated event category */
|
|
@@ -2095,6 +2132,7 @@ interface SearchPolymarketItem {
|
|
|
2095
2132
|
image?: string;
|
|
2096
2133
|
/** Number of markets in this event */
|
|
2097
2134
|
market_count: number;
|
|
2135
|
+
/** Markets within this event */
|
|
2098
2136
|
markets: SearchPolymarketItemMarketsItem[];
|
|
2099
2137
|
/** Resolution source URL */
|
|
2100
2138
|
settlement_sources?: string;
|
|
@@ -2104,6 +2142,7 @@ interface SearchPolymarketItem {
|
|
|
2104
2142
|
status: string;
|
|
2105
2143
|
/** Surf curated event subcategory */
|
|
2106
2144
|
subcategory?: string;
|
|
2145
|
+
/** Event tags */
|
|
2107
2146
|
tags?: unknown;
|
|
2108
2147
|
/** Event title */
|
|
2109
2148
|
title: string;
|
|
@@ -2145,6 +2184,7 @@ interface SearchPolymarketItemMarketsItem {
|
|
|
2145
2184
|
status: string;
|
|
2146
2185
|
/** Surf curated market subcategory */
|
|
2147
2186
|
subcategory?: string;
|
|
2187
|
+
/** Market tags */
|
|
2148
2188
|
tags?: unknown;
|
|
2149
2189
|
/** Market title */
|
|
2150
2190
|
title: string;
|
|
@@ -2186,6 +2226,7 @@ interface SearchPolymarketParams {
|
|
|
2186
2226
|
offset?: number;
|
|
2187
2227
|
}
|
|
2188
2228
|
interface SearchProjectItem {
|
|
2229
|
+
/** Chains the project operates on */
|
|
2189
2230
|
chains?: unknown;
|
|
2190
2231
|
/** Short description of the project */
|
|
2191
2232
|
description?: string;
|
|
@@ -2199,7 +2240,9 @@ interface SearchProjectItem {
|
|
|
2199
2240
|
slug?: string;
|
|
2200
2241
|
/** Primary token symbol like `BTC` or `ETH` */
|
|
2201
2242
|
symbol?: string;
|
|
2243
|
+
/** Project category tags */
|
|
2202
2244
|
tags?: unknown;
|
|
2245
|
+
/** Associated tokens */
|
|
2203
2246
|
tokens?: SearchProjectItemTokensItem[];
|
|
2204
2247
|
}
|
|
2205
2248
|
interface SearchProjectItemTokensItem {
|
|
@@ -2214,7 +2257,7 @@ interface SearchProjectItemTokensItem {
|
|
|
2214
2257
|
}
|
|
2215
2258
|
interface SearchProjectParams {
|
|
2216
2259
|
/** Search keyword — project name or ticker like `uniswap`, `bitcoin`, or `ETH` */
|
|
2217
|
-
q
|
|
2260
|
+
q: string;
|
|
2218
2261
|
/** Results per page — @default '20' */
|
|
2219
2262
|
limit?: number;
|
|
2220
2263
|
/** Pagination offset — @default '0' */
|
|
@@ -2238,7 +2281,7 @@ interface SearchSocialPeopleItem {
|
|
|
2238
2281
|
}
|
|
2239
2282
|
interface SearchSocialPeopleParams {
|
|
2240
2283
|
/** Search keyword or `@handle` for exact handle lookup. Use a keyword like `vitalik` for fuzzy matching across names and bios, or `@VitalikButerin` to find a specific account by handle */
|
|
2241
|
-
q
|
|
2284
|
+
q: string;
|
|
2242
2285
|
/** Results per page — @default '20' */
|
|
2243
2286
|
limit?: number;
|
|
2244
2287
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2248,6 +2291,7 @@ interface SearchSocialPostsItem {
|
|
|
2248
2291
|
author: SearchSocialPostsItemAuthor;
|
|
2249
2292
|
/** Unix timestamp (seconds) when the tweet was posted */
|
|
2250
2293
|
created_at: number;
|
|
2294
|
+
/** Attached media items (photos, videos, GIFs) */
|
|
2251
2295
|
media?: SearchSocialPostsItemMediaItem[];
|
|
2252
2296
|
stats: SearchSocialPostsItemStats;
|
|
2253
2297
|
/** Full text content of the tweet */
|
|
@@ -2285,7 +2329,7 @@ interface SearchSocialPostsItemStats {
|
|
|
2285
2329
|
}
|
|
2286
2330
|
interface SearchSocialPostsParams {
|
|
2287
2331
|
/** Search keyword or `from:handle` syntax like `ethereum` or `from:cz_binance` */
|
|
2288
|
-
q
|
|
2332
|
+
q: string;
|
|
2289
2333
|
/** Results per page — @default '20' */
|
|
2290
2334
|
limit?: number;
|
|
2291
2335
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2294,6 +2338,7 @@ interface SearchSocialPostsParams {
|
|
|
2294
2338
|
interface SearchWalletItem {
|
|
2295
2339
|
/** Primary wallet address for this entity */
|
|
2296
2340
|
address?: string;
|
|
2341
|
+
/** Known wallet addresses for this entity (max 10, use num_addresses for the total count) */
|
|
2297
2342
|
addresses?: SearchWalletItemAddressesItem[];
|
|
2298
2343
|
/** Chain of the primary address */
|
|
2299
2344
|
chain?: string;
|
|
@@ -2316,7 +2361,7 @@ interface SearchWalletItemAddressesItem {
|
|
|
2316
2361
|
}
|
|
2317
2362
|
interface SearchWalletParams {
|
|
2318
2363
|
/** Search keyword like `binance`, `vitalik.eth`, or `0xd8dA...` */
|
|
2319
|
-
q
|
|
2364
|
+
q: string;
|
|
2320
2365
|
/** Results per page — @default '20' */
|
|
2321
2366
|
limit?: number;
|
|
2322
2367
|
/** Pagination offset — @default '0' */
|
|
@@ -2334,7 +2379,7 @@ interface SearchWebItem {
|
|
|
2334
2379
|
}
|
|
2335
2380
|
interface SearchWebParams {
|
|
2336
2381
|
/** Search query like `bitcoin price prediction 2026` */
|
|
2337
|
-
q
|
|
2382
|
+
q: string;
|
|
2338
2383
|
/** Results per page — @default '20' */
|
|
2339
2384
|
limit?: number;
|
|
2340
2385
|
/** Pagination offset — @default '0' */
|
|
@@ -2354,19 +2399,21 @@ interface SocialDetailData {
|
|
|
2354
2399
|
twitter_id: string;
|
|
2355
2400
|
}
|
|
2356
2401
|
interface SocialDetailDataFollowerGeo {
|
|
2402
|
+
/** Follower count breakdown by geographic location */
|
|
2357
2403
|
locations: SocialDetailDataFollowerGeoLocationsItem[];
|
|
2358
2404
|
/** Total number of followers across all locations */
|
|
2359
2405
|
total_follower_count: number;
|
|
2360
2406
|
}
|
|
2361
2407
|
interface SocialDetailDataSentiment {
|
|
2362
2408
|
/** Sentiment score from -1 (very negative) to 1 (very positive) */
|
|
2363
|
-
score:
|
|
2409
|
+
score: number;
|
|
2364
2410
|
/** Time range for the sentiment analysis like 7d or 30d */
|
|
2365
2411
|
time_range: string;
|
|
2366
2412
|
}
|
|
2367
2413
|
interface SocialDetailDataSmartFollowers {
|
|
2368
2414
|
/** Total number of smart followers */
|
|
2369
2415
|
count: number;
|
|
2416
|
+
/** List of top smart followers sorted by influence score */
|
|
2370
2417
|
followers: SocialDetailDataSmartFollowersFollowersItem[];
|
|
2371
2418
|
}
|
|
2372
2419
|
interface SocialDetailDataFollowerGeoLocationsItem {
|
|
@@ -2402,7 +2449,7 @@ interface SocialDetailParams {
|
|
|
2402
2449
|
x_id?: string;
|
|
2403
2450
|
/** Entity name to resolve like `uniswap`, `ethereum`, or `aave` */
|
|
2404
2451
|
q?: string;
|
|
2405
|
-
/** Comma-separated sub-resources to include. Can be `sentiment`, `follower_geo`, or `smart_followers`. — @default 'sentiment' */
|
|
2452
|
+
/** Comma-separated sub-resources to include. Can be `sentiment`, `follower_geo`, or `smart_followers`. — @default 'sentiment,follower_geo,smart_followers' */
|
|
2406
2453
|
fields?: string;
|
|
2407
2454
|
/** Timeframe for sentiment data. Can be `24h`, `48h`, `7d`, `30d`, `3m`, `6m`, or `1y`. — @default '7d' */
|
|
2408
2455
|
time_range?: '24h' | '48h' | '7d' | '30d' | '3m' | '6m' | '1y';
|
|
@@ -2417,9 +2464,9 @@ interface SocialMindshareItem {
|
|
|
2417
2464
|
}
|
|
2418
2465
|
interface SocialMindshareParams {
|
|
2419
2466
|
/** Entity name to resolve like `uniswap`, `ethereum`, or `aave` */
|
|
2420
|
-
q
|
|
2467
|
+
q: string;
|
|
2421
2468
|
/** Time aggregation interval. Can be `5m`, `1h`, `1d`, or `7d`. */
|
|
2422
|
-
interval
|
|
2469
|
+
interval: '5m' | '1h' | '1d' | '7d';
|
|
2423
2470
|
/** Start timestamp. Accepts Unix seconds (1704067200) or date string (2024-01-01) */
|
|
2424
2471
|
from?: string;
|
|
2425
2472
|
/** End timestamp. Accepts Unix seconds (1706745600) or date string (2024-02-01) */
|
|
@@ -2433,6 +2480,7 @@ interface SocialRankingItem {
|
|
|
2433
2480
|
sentiment?: string;
|
|
2434
2481
|
/** Weighted sentiment score from -1 (very negative) to 1 (very positive) */
|
|
2435
2482
|
sentiment_score?: number;
|
|
2483
|
+
/** Project category tags */
|
|
2436
2484
|
tags?: unknown;
|
|
2437
2485
|
token?: SocialRankingItemToken;
|
|
2438
2486
|
/** Deprecated: no longer populated. */
|
|
@@ -2499,6 +2547,7 @@ interface SocialTweetRepliesItem {
|
|
|
2499
2547
|
author: SocialTweetRepliesItemAuthor;
|
|
2500
2548
|
/** Unix timestamp (seconds) when the tweet was posted */
|
|
2501
2549
|
created_at: number;
|
|
2550
|
+
/** Attached media items (photos, videos, GIFs) */
|
|
2502
2551
|
media?: SocialTweetRepliesItemMediaItem[];
|
|
2503
2552
|
stats: SocialTweetRepliesItemStats;
|
|
2504
2553
|
/** Full text content of the tweet */
|
|
@@ -2536,7 +2585,7 @@ interface SocialTweetRepliesItemStats {
|
|
|
2536
2585
|
}
|
|
2537
2586
|
interface SocialTweetRepliesParams {
|
|
2538
2587
|
/** Tweet ID to get replies for */
|
|
2539
|
-
tweet_id
|
|
2588
|
+
tweet_id: string;
|
|
2540
2589
|
/** Max results to return — @default '20' */
|
|
2541
2590
|
limit?: number;
|
|
2542
2591
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2546,6 +2595,7 @@ interface SocialTweetsItem {
|
|
|
2546
2595
|
author: SocialTweetsItemAuthor;
|
|
2547
2596
|
/** Unix timestamp (seconds) when the tweet was posted */
|
|
2548
2597
|
created_at: number;
|
|
2598
|
+
/** Attached media items (photos, videos, GIFs) */
|
|
2549
2599
|
media?: SocialTweetsItemMediaItem[];
|
|
2550
2600
|
stats: SocialTweetsItemStats;
|
|
2551
2601
|
/** Full text content of the tweet */
|
|
@@ -2583,7 +2633,7 @@ interface SocialTweetsItemStats {
|
|
|
2583
2633
|
}
|
|
2584
2634
|
interface SocialTweetsParams {
|
|
2585
2635
|
/** Comma-separated numeric post ID strings, max 100 */
|
|
2586
|
-
ids
|
|
2636
|
+
ids: string;
|
|
2587
2637
|
}
|
|
2588
2638
|
interface SocialUserData {
|
|
2589
2639
|
/** Profile picture URL */
|
|
@@ -2603,7 +2653,7 @@ interface SocialUserData {
|
|
|
2603
2653
|
}
|
|
2604
2654
|
interface SocialUserParams {
|
|
2605
2655
|
/** X (Twitter) username without @ like `cz_binance` or `vitalikbuterin` */
|
|
2606
|
-
handle
|
|
2656
|
+
handle: string;
|
|
2607
2657
|
}
|
|
2608
2658
|
interface SocialUserFollowersItem {
|
|
2609
2659
|
/** Profile picture URL */
|
|
@@ -2623,7 +2673,7 @@ interface SocialUserFollowersItem {
|
|
|
2623
2673
|
}
|
|
2624
2674
|
interface SocialUserFollowersParams {
|
|
2625
2675
|
/** X (Twitter) username without @ like `vitalikbuterin` or `cz_binance` */
|
|
2626
|
-
handle
|
|
2676
|
+
handle: string;
|
|
2627
2677
|
/** Max results to return — @default '20' */
|
|
2628
2678
|
limit?: number;
|
|
2629
2679
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2647,7 +2697,7 @@ interface SocialUserFollowingItem {
|
|
|
2647
2697
|
}
|
|
2648
2698
|
interface SocialUserFollowingParams {
|
|
2649
2699
|
/** X (Twitter) username without @ like `vitalikbuterin` or `cz_binance` */
|
|
2650
|
-
handle
|
|
2700
|
+
handle: string;
|
|
2651
2701
|
/** Max results to return — @default '20' */
|
|
2652
2702
|
limit?: number;
|
|
2653
2703
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2657,6 +2707,7 @@ interface SocialUserPostsItem {
|
|
|
2657
2707
|
author: SocialUserPostsItemAuthor;
|
|
2658
2708
|
/** Unix timestamp (seconds) when the tweet was posted */
|
|
2659
2709
|
created_at: number;
|
|
2710
|
+
/** Attached media items (photos, videos, GIFs) */
|
|
2660
2711
|
media?: SocialUserPostsItemMediaItem[];
|
|
2661
2712
|
stats: SocialUserPostsItemStats;
|
|
2662
2713
|
/** Full text content of the tweet */
|
|
@@ -2694,7 +2745,7 @@ interface SocialUserPostsItemStats {
|
|
|
2694
2745
|
}
|
|
2695
2746
|
interface SocialUserPostsParams {
|
|
2696
2747
|
/** X (Twitter) username without @ like `vitalikbuterin` or `cz_binance` */
|
|
2697
|
-
handle
|
|
2748
|
+
handle: string;
|
|
2698
2749
|
/** Results per page — @default '20' */
|
|
2699
2750
|
limit?: number;
|
|
2700
2751
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2706,6 +2757,7 @@ interface SocialUserRepliesItem {
|
|
|
2706
2757
|
author: SocialUserRepliesItemAuthor;
|
|
2707
2758
|
/** Unix timestamp (seconds) when the tweet was posted */
|
|
2708
2759
|
created_at: number;
|
|
2760
|
+
/** Attached media items (photos, videos, GIFs) */
|
|
2709
2761
|
media?: SocialUserRepliesItemMediaItem[];
|
|
2710
2762
|
stats: SocialUserRepliesItemStats;
|
|
2711
2763
|
/** Full text content of the tweet */
|
|
@@ -2743,7 +2795,7 @@ interface SocialUserRepliesItemStats {
|
|
|
2743
2795
|
}
|
|
2744
2796
|
interface SocialUserRepliesParams {
|
|
2745
2797
|
/** X (Twitter) username without @ like `vitalikbuterin` or `cz_binance` */
|
|
2746
|
-
handle
|
|
2798
|
+
handle: string;
|
|
2747
2799
|
/** Max results to return — @default '20' */
|
|
2748
2800
|
limit?: number;
|
|
2749
2801
|
/** Opaque cursor token from a previous response's next_cursor field for fetching the next page */
|
|
@@ -2779,7 +2831,7 @@ interface TokenDexTradesItem {
|
|
|
2779
2831
|
}
|
|
2780
2832
|
interface TokenDexTradesParams {
|
|
2781
2833
|
/** Token contract address (0x-prefixed hex) */
|
|
2782
|
-
address
|
|
2834
|
+
address: string;
|
|
2783
2835
|
/** Chain. Can be `ethereum` or `base`. — @default 'ethereum' */
|
|
2784
2836
|
chain?: 'ethereum' | 'base';
|
|
2785
2837
|
/** Results per page — @default '20' */
|
|
@@ -2801,15 +2853,16 @@ interface TokenHoldersItem {
|
|
|
2801
2853
|
}
|
|
2802
2854
|
interface TokenHoldersParams {
|
|
2803
2855
|
/** Token contract address (0x-prefixed hex or Solana base58) */
|
|
2804
|
-
address
|
|
2856
|
+
address: string;
|
|
2805
2857
|
/** Chain. Can be `ethereum`, `polygon`, `bsc`, `solana`, `avalanche`, `arbitrum`, `optimism`, or `base`. */
|
|
2806
|
-
chain
|
|
2858
|
+
chain: 'ethereum' | 'polygon' | 'bsc' | 'solana' | 'avalanche' | 'arbitrum' | 'optimism' | 'base';
|
|
2807
2859
|
/** Results per page — @default '20' */
|
|
2808
2860
|
limit?: number;
|
|
2809
2861
|
/** Pagination offset (accepted for API consistency but currently ignored) — @default '0' */
|
|
2810
2862
|
offset?: number;
|
|
2811
2863
|
}
|
|
2812
2864
|
interface TokenTokenomicsItem {
|
|
2865
|
+
/** Breakdown by allocation */
|
|
2813
2866
|
allocations?: TokenTokenomicsItemAllocationsItem[];
|
|
2814
2867
|
/** Unix timestamp in seconds */
|
|
2815
2868
|
timestamp: number;
|
|
@@ -2852,9 +2905,9 @@ interface TokenTransfersItem {
|
|
|
2852
2905
|
}
|
|
2853
2906
|
interface TokenTransfersParams {
|
|
2854
2907
|
/** Token contract address (0x-prefixed hex or Solana base58) */
|
|
2855
|
-
address
|
|
2908
|
+
address: string;
|
|
2856
2909
|
/** Chain. Can be `ethereum`, `base`, `solana`, or `tron`. */
|
|
2857
|
-
chain
|
|
2910
|
+
chain: 'ethereum' | 'base' | 'solana' | 'tron';
|
|
2858
2911
|
/** Start of date range. Accepts Unix seconds or YYYY-MM-DD. Defaults to 30 days ago. */
|
|
2859
2912
|
from?: string;
|
|
2860
2913
|
/** End of date range. Accepts Unix seconds or YYYY-MM-DD. Defaults to today. */
|
|
@@ -2865,14 +2918,20 @@ interface TokenTransfersParams {
|
|
|
2865
2918
|
offset?: number;
|
|
2866
2919
|
}
|
|
2867
2920
|
interface WalletDetailData {
|
|
2921
|
+
/** Chains the wallet has non-zero balances on. Always present (not controlled by fields param). For Solana addresses, returns a single entry. */
|
|
2868
2922
|
active_chains?: WalletDetailDataActiveChainsItem[];
|
|
2923
|
+
/** Token approvals (EVM-only, up to 50). Only present when `approvals` is included in the `fields` param. */
|
|
2869
2924
|
approvals?: WalletDetailDataApprovalsItem[];
|
|
2925
|
+
/** Per-field errors for any fields that failed to load */
|
|
2870
2926
|
errors?: WalletDetailDataErrorsItem[];
|
|
2871
2927
|
evm_balance?: WalletDetailDataEvmBalance;
|
|
2928
|
+
/** EVM token holdings (up to 50). Populated for EVM chains only. */
|
|
2872
2929
|
evm_tokens?: WalletDetailDataEvmTokensItem[];
|
|
2873
2930
|
labels?: WalletDetailDataLabels;
|
|
2931
|
+
/** NFT holdings (EVM-only, top 200 by value) */
|
|
2874
2932
|
nft?: WalletDetailDataNftItem[];
|
|
2875
2933
|
sol_balance?: WalletDetailDataSolBalance;
|
|
2934
|
+
/** Solana SPL token holdings from Solscan (up to 50). Populated for Solana chain only. */
|
|
2876
2935
|
sol_tokens?: WalletDetailDataSolTokensItem[];
|
|
2877
2936
|
}
|
|
2878
2937
|
interface WalletDetailDataActiveChainsItem {
|
|
@@ -2890,6 +2949,7 @@ interface WalletDetailDataApprovalsItem {
|
|
|
2890
2949
|
chain: string;
|
|
2891
2950
|
/** Full token name */
|
|
2892
2951
|
name?: string;
|
|
2952
|
+
/** List of approved spender contracts */
|
|
2893
2953
|
spenders: WalletDetailDataApprovalsItemSpendersItem[];
|
|
2894
2954
|
/** Token ticker symbol */
|
|
2895
2955
|
symbol: string;
|
|
@@ -2905,6 +2965,7 @@ interface WalletDetailDataErrorsItem {
|
|
|
2905
2965
|
interface WalletDetailDataEvmBalance {
|
|
2906
2966
|
/** Wallet address */
|
|
2907
2967
|
address: string;
|
|
2968
|
+
/** Per-chain balance breakdown, sorted by value descending (EVM only) */
|
|
2908
2969
|
chain_balances?: WalletDetailDataEvmBalanceChainBalancesItem[];
|
|
2909
2970
|
/** Total portfolio value in USD (EVM only) */
|
|
2910
2971
|
total_usd: number;
|
|
@@ -2936,6 +2997,7 @@ interface WalletDetailDataLabels {
|
|
|
2936
2997
|
entity_name?: string;
|
|
2937
2998
|
/** Type of entity like `exchange`, `fund`, or `whale` */
|
|
2938
2999
|
entity_type?: string;
|
|
3000
|
+
/** List of labels assigned to this address */
|
|
2939
3001
|
labels: WalletDetailDataLabelsLabelsItem[];
|
|
2940
3002
|
}
|
|
2941
3003
|
interface WalletDetailDataNftItem {
|
|
@@ -2996,10 +3058,10 @@ interface WalletDetailDataLabelsLabelsItem {
|
|
|
2996
3058
|
}
|
|
2997
3059
|
interface WalletDetailParams {
|
|
2998
3060
|
/** Wallet address (0x hex for EVM, base58 for Solana) */
|
|
2999
|
-
address
|
|
3061
|
+
address: string;
|
|
3000
3062
|
/** Chain filter for `tokens`, `nft`, and `approvals`. When omitted, inferred from address format: 0x addresses query all EVM chains, base58 addresses query Solana. */
|
|
3001
3063
|
chain?: 'ethereum' | 'polygon' | 'bsc' | 'avalanche' | 'arbitrum' | 'optimism' | 'fantom' | 'base' | 'solana';
|
|
3002
|
-
/** Comma-separated sub-resources to include. Valid: `balance`, `tokens`, `labels`, `nft`, `approvals`. The `active_chains` field is always returned. `approvals` is opt-in (not in default) as it triggers additional upstream calls. — @default 'balance' */
|
|
3064
|
+
/** Comma-separated sub-resources to include. Valid: `balance`, `tokens`, `labels`, `nft`, `approvals`. The `active_chains` field is always returned. `approvals` is opt-in (not in default) as it triggers additional upstream calls. — @default 'balance,tokens,labels,nft' */
|
|
3003
3065
|
fields?: string;
|
|
3004
3066
|
}
|
|
3005
3067
|
interface WalletHistoryItem {
|
|
@@ -3018,7 +3080,7 @@ interface WalletHistoryItem {
|
|
|
3018
3080
|
}
|
|
3019
3081
|
interface WalletHistoryParams {
|
|
3020
3082
|
/** Wallet address — must be a raw 0x-prefixed hex address, not an ENS name */
|
|
3021
|
-
address
|
|
3083
|
+
address: string;
|
|
3022
3084
|
/** Chain filter. Can be `ethereum`, `polygon`, `bsc`, `avalanche`, `arbitrum`, `optimism`, `fantom`, or `base`. — @default 'ethereum' */
|
|
3023
3085
|
chain?: 'ethereum' | 'polygon' | 'bsc' | 'avalanche' | 'arbitrum' | 'optimism' | 'fantom' | 'base';
|
|
3024
3086
|
/** Results per page — @default '20' */
|
|
@@ -3037,6 +3099,7 @@ interface WalletLabelsBatchItem {
|
|
|
3037
3099
|
entity_name?: string;
|
|
3038
3100
|
/** Type of entity like `exchange`, `fund`, or `whale` */
|
|
3039
3101
|
entity_type?: string;
|
|
3102
|
+
/** List of labels assigned to this address */
|
|
3040
3103
|
labels: WalletLabelsBatchItemLabelsItem[];
|
|
3041
3104
|
}
|
|
3042
3105
|
interface WalletLabelsBatchItemLabelsItem {
|
|
@@ -3047,7 +3110,7 @@ interface WalletLabelsBatchItemLabelsItem {
|
|
|
3047
3110
|
}
|
|
3048
3111
|
interface WalletLabelsBatchParams {
|
|
3049
3112
|
/** Comma-separated wallet addresses to look up, max 100 */
|
|
3050
|
-
addresses
|
|
3113
|
+
addresses: string;
|
|
3051
3114
|
}
|
|
3052
3115
|
interface WalletNetWorthItem {
|
|
3053
3116
|
/** Unix timestamp in seconds */
|
|
@@ -3057,13 +3120,14 @@ interface WalletNetWorthItem {
|
|
|
3057
3120
|
}
|
|
3058
3121
|
interface WalletNetWorthParams {
|
|
3059
3122
|
/** Wallet address (0x hex, base58, or ENS name like `vitalik.eth`) */
|
|
3060
|
-
address
|
|
3123
|
+
address: string;
|
|
3061
3124
|
}
|
|
3062
3125
|
interface WalletProtocolsItem {
|
|
3063
3126
|
/** Canonical chain name where the protocol operates */
|
|
3064
3127
|
chain: string;
|
|
3065
3128
|
/** Protocol logo image URL */
|
|
3066
3129
|
logo_url?: string;
|
|
3130
|
+
/** Individual positions held in this protocol */
|
|
3067
3131
|
positions: WalletProtocolsItemPositionsItem[];
|
|
3068
3132
|
/** Human-readable protocol name */
|
|
3069
3133
|
protocol_name: string;
|
|
@@ -3075,11 +3139,15 @@ interface WalletProtocolsItem {
|
|
|
3075
3139
|
interface WalletProtocolsItemPositionsItem {
|
|
3076
3140
|
/** Total USD value of this position */
|
|
3077
3141
|
balance_usd: number;
|
|
3142
|
+
/** Tokens borrowed in this position */
|
|
3078
3143
|
borrow_tokens?: WalletProtocolsItemPositionsItemBorrowTokensItem[];
|
|
3144
|
+
/** LP tokens in this position */
|
|
3079
3145
|
lp_tokens?: WalletProtocolsItemPositionsItemLpTokensItem[];
|
|
3080
3146
|
/** Position name or type like `Lending` or `Staking` */
|
|
3081
3147
|
name: string;
|
|
3148
|
+
/** Unclaimed reward tokens in this position */
|
|
3082
3149
|
reward_tokens?: WalletProtocolsItemPositionsItemRewardTokensItem[];
|
|
3150
|
+
/** Tokens supplied/deposited in this position */
|
|
3083
3151
|
supply_tokens?: WalletProtocolsItemPositionsItemSupplyTokensItem[];
|
|
3084
3152
|
}
|
|
3085
3153
|
interface WalletProtocolsItemPositionsItemBorrowTokensItem {
|
|
@@ -3140,7 +3208,7 @@ interface WalletProtocolsItemPositionsItemSupplyTokensItem {
|
|
|
3140
3208
|
}
|
|
3141
3209
|
interface WalletProtocolsParams {
|
|
3142
3210
|
/** Wallet address — must be a raw 0x-prefixed hex address, not an ENS name */
|
|
3143
|
-
address
|
|
3211
|
+
address: string;
|
|
3144
3212
|
/** Results per page — @default '20' */
|
|
3145
3213
|
limit?: number;
|
|
3146
3214
|
/** Pagination offset — @default '0' */
|
|
@@ -3170,7 +3238,7 @@ interface WalletTransfersItem {
|
|
|
3170
3238
|
}
|
|
3171
3239
|
interface WalletTransfersParams {
|
|
3172
3240
|
/** Wallet address — must be a raw address (0x-prefixed hex for EVM, base58 for Solana). ENS names like `vitalik.eth` are not supported; resolve to a 0x address first. */
|
|
3173
|
-
address
|
|
3241
|
+
address: string;
|
|
3174
3242
|
/** Chain. Can be `ethereum`, `base`, or `solana`. — @default 'ethereum' */
|
|
3175
3243
|
chain?: 'ethereum' | 'base' | 'solana';
|
|
3176
3244
|
/** Filter by transfer direction relative to the queried wallet. `in` for incoming, `out` for outgoing. Omit for both directions. */
|
|
@@ -3192,7 +3260,7 @@ interface WebFetchData {
|
|
|
3192
3260
|
}
|
|
3193
3261
|
interface WebFetchParams {
|
|
3194
3262
|
/** URL to fetch and parse */
|
|
3195
|
-
url
|
|
3263
|
+
url: string;
|
|
3196
3264
|
/** CSS selector to extract specific content */
|
|
3197
3265
|
target_selector?: string;
|
|
3198
3266
|
/** CSS selector to remove unwanted elements */
|
|
@@ -3227,115 +3295,115 @@ declare const dataApi: {
|
|
|
3227
3295
|
/** Escape hatch: raw POST to any endpoint path. */
|
|
3228
3296
|
post: typeof post;
|
|
3229
3297
|
exchange: {
|
|
3230
|
-
depth: (params
|
|
3231
|
-
funding_history: (params
|
|
3232
|
-
klines: (params
|
|
3233
|
-
long_short_ratio: (params
|
|
3298
|
+
depth: (params: ExchangeDepthParams) => Promise<ApiResponse<ExchangeDepthItem>>;
|
|
3299
|
+
funding_history: (params: ExchangeFundingHistoryParams) => Promise<ApiResponse<ExchangeFundingHistoryItem>>;
|
|
3300
|
+
klines: (params: ExchangeKlinesParams) => Promise<ApiResponse<ExchangeKlinesItem>>;
|
|
3301
|
+
long_short_ratio: (params: ExchangeLongShortRatioParams) => Promise<ApiResponse<ExchangeLongShortRatioItem>>;
|
|
3234
3302
|
markets: (params?: ExchangeMarketsParams) => Promise<ApiResponse<ExchangeMarketsItem>>;
|
|
3235
|
-
perp: (params
|
|
3236
|
-
price: (params
|
|
3303
|
+
perp: (params: ExchangePerpParams) => Promise<ApiObjectResponse<ExchangePerpData>>;
|
|
3304
|
+
price: (params: ExchangePriceParams) => Promise<ApiResponse<ExchangePriceItem>>;
|
|
3237
3305
|
};
|
|
3238
3306
|
fund: {
|
|
3239
3307
|
detail: (params?: FundDetailParams) => Promise<ApiObjectResponse<FundDetailData>>;
|
|
3240
3308
|
portfolio: (params?: FundPortfolioParams) => Promise<ApiResponse<FundPortfolioItem>>;
|
|
3241
|
-
ranking: (params
|
|
3309
|
+
ranking: (params: FundRankingParams) => Promise<ApiResponse<FundRankingItem>>;
|
|
3242
3310
|
};
|
|
3243
3311
|
kalshi: {
|
|
3244
|
-
events: (params
|
|
3245
|
-
markets: (params
|
|
3246
|
-
open_interest: (params
|
|
3247
|
-
prices: (params
|
|
3312
|
+
events: (params: KalshiEventsParams) => Promise<ApiResponse<KalshiEventsItem>>;
|
|
3313
|
+
markets: (params: KalshiMarketsParams) => Promise<ApiResponse<KalshiMarketsItem>>;
|
|
3314
|
+
open_interest: (params: KalshiOpenInterestParams) => Promise<ApiResponse<KalshiOpenInterestItem>>;
|
|
3315
|
+
prices: (params: KalshiPricesParams) => Promise<ApiResponse<KalshiPricesItem>>;
|
|
3248
3316
|
ranking: (params?: KalshiRankingParams) => Promise<ApiResponse<KalshiRankingItem>>;
|
|
3249
|
-
trades: (params
|
|
3250
|
-
volumes: (params
|
|
3317
|
+
trades: (params: KalshiTradesParams) => Promise<ApiResponse<KalshiTradesItem>>;
|
|
3318
|
+
volumes: (params: KalshiVolumesParams) => Promise<ApiResponse<KalshiVolumesItem>>;
|
|
3251
3319
|
};
|
|
3252
3320
|
market: {
|
|
3253
|
-
etf: (params
|
|
3321
|
+
etf: (params: MarketEtfParams) => Promise<ApiResponse<MarketEtfItem>>;
|
|
3254
3322
|
fear_greed: (params?: MarketFearGreedParams) => Promise<ApiResponse<MarketFearGreedItem>>;
|
|
3255
3323
|
futures: (params?: MarketFuturesParams) => Promise<ApiResponse<MarketFuturesItem>>;
|
|
3256
|
-
liquidation_chart: (params
|
|
3324
|
+
liquidation_chart: (params: MarketLiquidationChartParams) => Promise<ApiResponse<MarketLiquidationChartItem>>;
|
|
3257
3325
|
liquidation_exchange_list: (params?: MarketLiquidationExchangeListParams) => Promise<ApiResponse<MarketLiquidationExchangeListItem>>;
|
|
3258
3326
|
liquidation_order: (params?: MarketLiquidationOrderParams) => Promise<ApiResponse<MarketLiquidationOrderItem>>;
|
|
3259
|
-
onchain_indicator: (params
|
|
3260
|
-
options: (params
|
|
3261
|
-
price: (params
|
|
3262
|
-
price_indicator: (params
|
|
3327
|
+
onchain_indicator: (params: MarketOnchainIndicatorParams) => Promise<ApiResponse<MarketOnchainIndicatorItem>>;
|
|
3328
|
+
options: (params: MarketOptionsParams) => Promise<ApiResponse<MarketOptionsItem>>;
|
|
3329
|
+
price: (params: MarketPriceParams) => Promise<ApiResponse<MarketPriceItem>>;
|
|
3330
|
+
price_indicator: (params: MarketPriceIndicatorParams) => Promise<ApiResponse<MarketPriceIndicatorItem>>;
|
|
3263
3331
|
ranking: (params?: MarketRankingParams) => Promise<ApiResponse<MarketRankingItem>>;
|
|
3264
3332
|
};
|
|
3265
3333
|
news: {
|
|
3266
|
-
detail: (params
|
|
3334
|
+
detail: (params: NewsDetailParams) => Promise<ApiObjectResponse<NewsDetailData>>;
|
|
3267
3335
|
feed: (params?: NewsFeedParams) => Promise<ApiResponse<NewsFeedItem>>;
|
|
3268
3336
|
};
|
|
3269
3337
|
onchain: {
|
|
3270
3338
|
bridge_ranking: (params?: OnchainBridgeRankingParams) => Promise<ApiResponse<OnchainBridgeRankingItem>>;
|
|
3271
|
-
gas_price: (params
|
|
3339
|
+
gas_price: (params: OnchainGasPriceParams) => Promise<ApiObjectResponse<OnchainGasPriceData>>;
|
|
3272
3340
|
structured_query: (body: OnchainStructuredQueryParams) => Promise<ApiResponse<OnchainStructuredQueryItem>>;
|
|
3273
3341
|
schema: () => Promise<ApiResponse<OnchainSchemaItem>>;
|
|
3274
3342
|
sql: (body: OnchainSqlParams) => Promise<ApiResponse<OnchainSqlItem>>;
|
|
3275
|
-
tx: (params
|
|
3343
|
+
tx: (params: OnchainTxParams) => Promise<ApiResponse<OnchainTxItem>>;
|
|
3276
3344
|
yield_ranking: (params?: OnchainYieldRankingParams) => Promise<ApiResponse<OnchainYieldRankingItem>>;
|
|
3277
3345
|
};
|
|
3278
3346
|
polymarket: {
|
|
3279
|
-
activity: (params
|
|
3280
|
-
events: (params
|
|
3281
|
-
markets: (params
|
|
3282
|
-
open_interest: (params
|
|
3283
|
-
positions: (params
|
|
3284
|
-
prices: (params
|
|
3347
|
+
activity: (params: PolymarketActivityParams) => Promise<ApiResponse<PolymarketActivityItem>>;
|
|
3348
|
+
events: (params: PolymarketEventsParams) => Promise<ApiResponse<PolymarketEventsItem>>;
|
|
3349
|
+
markets: (params: PolymarketMarketsParams) => Promise<ApiResponse<PolymarketMarketsItem>>;
|
|
3350
|
+
open_interest: (params: PolymarketOpenInterestParams) => Promise<ApiResponse<PolymarketOpenInterestItem>>;
|
|
3351
|
+
positions: (params: PolymarketPositionsParams) => Promise<ApiResponse<PolymarketPositionsItem>>;
|
|
3352
|
+
prices: (params: PolymarketPricesParams) => Promise<ApiResponse<PolymarketPricesItem>>;
|
|
3285
3353
|
ranking: (params?: PolymarketRankingParams) => Promise<ApiResponse<PolymarketRankingItem>>;
|
|
3286
3354
|
trades: (params?: PolymarketTradesParams) => Promise<ApiResponse<PolymarketTradesItem>>;
|
|
3287
|
-
volumes: (params
|
|
3355
|
+
volumes: (params: PolymarketVolumesParams) => Promise<ApiResponse<PolymarketVolumesItem>>;
|
|
3288
3356
|
};
|
|
3289
3357
|
prediction_market: {
|
|
3290
3358
|
category_metrics: (params?: PredictionMarketCategoryMetricsParams) => Promise<ApiResponse<PredictionMarketCategoryMetricsItem>>;
|
|
3291
3359
|
};
|
|
3292
3360
|
project: {
|
|
3293
|
-
defi_metrics: (params
|
|
3294
|
-
defi_ranking: (params
|
|
3361
|
+
defi_metrics: (params: ProjectDefiMetricsParams) => Promise<ApiResponse<ProjectDefiMetricsItem>>;
|
|
3362
|
+
defi_ranking: (params: ProjectDefiRankingParams) => Promise<ApiResponse<ProjectDefiRankingItem>>;
|
|
3295
3363
|
detail: (params?: ProjectDetailParams) => Promise<ApiObjectResponse<ProjectDetailData>>;
|
|
3296
3364
|
};
|
|
3297
3365
|
search: {
|
|
3298
3366
|
airdrop: (params?: SearchAirdropParams) => Promise<ApiResponse<SearchAirdropItem>>;
|
|
3299
3367
|
events: (params?: SearchEventsParams) => Promise<ApiResponse<SearchEventsItem>>;
|
|
3300
|
-
fund: (params
|
|
3368
|
+
fund: (params: SearchFundParams) => Promise<ApiResponse<SearchFundItem>>;
|
|
3301
3369
|
kalshi: (params?: SearchKalshiParams) => Promise<ApiResponse<SearchKalshiItem>>;
|
|
3302
|
-
news: (params
|
|
3370
|
+
news: (params: SearchNewsParams) => Promise<ApiResponse<SearchNewsItem>>;
|
|
3303
3371
|
polymarket: (params?: SearchPolymarketParams) => Promise<ApiResponse<SearchPolymarketItem>>;
|
|
3304
|
-
project: (params
|
|
3305
|
-
social_people: (params
|
|
3306
|
-
social_posts: (params
|
|
3307
|
-
wallet: (params
|
|
3308
|
-
web: (params
|
|
3372
|
+
project: (params: SearchProjectParams) => Promise<ApiResponse<SearchProjectItem>>;
|
|
3373
|
+
social_people: (params: SearchSocialPeopleParams) => Promise<ApiCursorResponse<SearchSocialPeopleItem>>;
|
|
3374
|
+
social_posts: (params: SearchSocialPostsParams) => Promise<ApiCursorResponse<SearchSocialPostsItem>>;
|
|
3375
|
+
wallet: (params: SearchWalletParams) => Promise<ApiResponse<SearchWalletItem>>;
|
|
3376
|
+
web: (params: SearchWebParams) => Promise<ApiResponse<SearchWebItem>>;
|
|
3309
3377
|
};
|
|
3310
3378
|
social: {
|
|
3311
3379
|
detail: (params?: SocialDetailParams) => Promise<ApiObjectResponse<SocialDetailData>>;
|
|
3312
|
-
mindshare: (params
|
|
3380
|
+
mindshare: (params: SocialMindshareParams) => Promise<ApiResponse<SocialMindshareItem>>;
|
|
3313
3381
|
ranking: (params?: SocialRankingParams) => Promise<ApiResponse<SocialRankingItem>>;
|
|
3314
3382
|
smart_followers_history: (params?: SocialSmartFollowersHistoryParams) => Promise<ApiResponse<SocialSmartFollowersHistoryItem>>;
|
|
3315
|
-
tweet_replies: (params
|
|
3316
|
-
tweets: (params
|
|
3317
|
-
user: (params
|
|
3318
|
-
user_followers: (params
|
|
3319
|
-
user_following: (params
|
|
3320
|
-
user_posts: (params
|
|
3321
|
-
user_replies: (params
|
|
3383
|
+
tweet_replies: (params: SocialTweetRepliesParams) => Promise<ApiCursorResponse<SocialTweetRepliesItem>>;
|
|
3384
|
+
tweets: (params: SocialTweetsParams) => Promise<ApiResponse<SocialTweetsItem>>;
|
|
3385
|
+
user: (params: SocialUserParams) => Promise<ApiObjectResponse<SocialUserData>>;
|
|
3386
|
+
user_followers: (params: SocialUserFollowersParams) => Promise<ApiCursorResponse<SocialUserFollowersItem>>;
|
|
3387
|
+
user_following: (params: SocialUserFollowingParams) => Promise<ApiCursorResponse<SocialUserFollowingItem>>;
|
|
3388
|
+
user_posts: (params: SocialUserPostsParams) => Promise<ApiCursorResponse<SocialUserPostsItem>>;
|
|
3389
|
+
user_replies: (params: SocialUserRepliesParams) => Promise<ApiCursorResponse<SocialUserRepliesItem>>;
|
|
3322
3390
|
};
|
|
3323
3391
|
token: {
|
|
3324
|
-
dex_trades: (params
|
|
3325
|
-
holders: (params
|
|
3392
|
+
dex_trades: (params: TokenDexTradesParams) => Promise<ApiResponse<TokenDexTradesItem>>;
|
|
3393
|
+
holders: (params: TokenHoldersParams) => Promise<ApiResponse<TokenHoldersItem>>;
|
|
3326
3394
|
tokenomics: (params?: TokenTokenomicsParams) => Promise<ApiResponse<TokenTokenomicsItem>>;
|
|
3327
|
-
transfers: (params
|
|
3395
|
+
transfers: (params: TokenTransfersParams) => Promise<ApiResponse<TokenTransfersItem>>;
|
|
3328
3396
|
};
|
|
3329
3397
|
wallet: {
|
|
3330
|
-
detail: (params
|
|
3331
|
-
history: (params
|
|
3332
|
-
labels_batch: (params
|
|
3333
|
-
net_worth: (params
|
|
3334
|
-
protocols: (params
|
|
3335
|
-
transfers: (params
|
|
3398
|
+
detail: (params: WalletDetailParams) => Promise<ApiObjectResponse<WalletDetailData>>;
|
|
3399
|
+
history: (params: WalletHistoryParams) => Promise<ApiResponse<WalletHistoryItem>>;
|
|
3400
|
+
labels_batch: (params: WalletLabelsBatchParams) => Promise<ApiResponse<WalletLabelsBatchItem>>;
|
|
3401
|
+
net_worth: (params: WalletNetWorthParams) => Promise<ApiResponse<WalletNetWorthItem>>;
|
|
3402
|
+
protocols: (params: WalletProtocolsParams) => Promise<ApiResponse<WalletProtocolsItem>>;
|
|
3403
|
+
transfers: (params: WalletTransfersParams) => Promise<ApiResponse<WalletTransfersItem>>;
|
|
3336
3404
|
};
|
|
3337
3405
|
web: {
|
|
3338
|
-
fetch: (params
|
|
3406
|
+
fetch: (params: WebFetchParams) => Promise<ApiObjectResponse<WebFetchData>>;
|
|
3339
3407
|
};
|
|
3340
3408
|
};
|
|
3341
3409
|
|