@quicknode/sdk 2.6.0 → 3.0.0-alpha.6

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.
Files changed (47) hide show
  1. package/README.md +3500 -46
  2. package/browser.js +9 -0
  3. package/errors.js +121 -0
  4. package/index.d.ts +2298 -650
  5. package/index.darwin-arm64.node +0 -0
  6. package/index.js +328 -0
  7. package/index.linux-arm64-gnu.node +0 -0
  8. package/index.linux-arm64-musl.node +0 -0
  9. package/index.linux-x64-gnu.node +0 -0
  10. package/index.linux-x64-musl.node +0 -0
  11. package/package.json +47 -54
  12. package/sdk.d.ts +339 -0
  13. package/sdk.js +102 -0
  14. package/sdk.mjs +34 -0
  15. package/cjs/index.js +0 -542
  16. package/cjs/package.json +0 -3
  17. package/esm/client/client.js +0 -9
  18. package/esm/client/index.js +0 -2
  19. package/esm/core/addOns/nftTokenV2/actions.js +0 -107
  20. package/esm/core/addOns/nftTokenV2/types/qn_fetchNFTCollectionDetails.js +0 -10
  21. package/esm/core/addOns/nftTokenV2/types/qn_fetchNFTs.js +0 -13
  22. package/esm/core/addOns/nftTokenV2/types/qn_fetchNFTsByCollection.js +0 -13
  23. package/esm/core/addOns/nftTokenV2/types/qn_getTokenMetadataByContractAddress.js +0 -10
  24. package/esm/core/addOns/nftTokenV2/types/qn_getTokenMetadataBySymbol.js +0 -11
  25. package/esm/core/addOns/nftTokenV2/types/qn_getTransactionsByAddress.js +0 -18
  26. package/esm/core/addOns/nftTokenV2/types/qn_getTransfersByNFT.js +0 -12
  27. package/esm/core/addOns/nftTokenV2/types/qn_getWalletTokenBalance.js +0 -12
  28. package/esm/core/addOns/nftTokenV2/types/qn_getWalletTokenTransactions.js +0 -14
  29. package/esm/core/addOns/nftTokenV2/types/qn_verifyNFTsOwner.js +0 -11
  30. package/esm/core/addOns/shared/helpers.js +0 -10
  31. package/esm/core/chains.js +0 -118
  32. package/esm/core/core.js +0 -30
  33. package/esm/core/index.d.ts +0 -558
  34. package/esm/core/index.js +0 -2
  35. package/esm/index.js +0 -11
  36. package/esm/lib/constants.js +0 -4
  37. package/esm/lib/errors/QNChainNotSupported.js +0 -7
  38. package/esm/lib/errors/QNInputValidationError.js +0 -10
  39. package/esm/lib/errors/QNInvalidEnpointUrl.js +0 -7
  40. package/esm/lib/helpers/getClientHeaders.js +0 -11
  41. package/esm/lib/helpers/globalFetch.js +0 -13
  42. package/esm/lib/validation/ValidateInput.js +0 -16
  43. package/esm/lib/validation/validators.js +0 -15
  44. package/esm/package.json +0 -4
  45. package/esm/solana/index.d.ts +0 -76
  46. package/esm/solana/index.js +0 -2
  47. package/esm/solana/solana.js +0 -111
package/index.d.ts CHANGED
@@ -1,658 +1,2306 @@
1
- import { Chain, PublicClient } from 'viem';
2
- import * as viem from 'viem';
3
- export { viem };
4
- import { z, ZodError } from 'zod';
5
- import * as _solana_web3_js from '@solana/web3.js';
6
- import { Transaction, PublicKey, Keypair, SendOptions, Connection } from '@solana/web3.js';
7
- export { _solana_web3_js as solanaWeb3 };
1
+ /* tslint:disable */
2
+ /* eslint-disable */
8
3
 
9
- type SimplifyType<T> = T extends object ? {
10
- [K in keyof T]: SimplifyType<T[K]>;
11
- } : T;
4
+ /* auto-generated by NAPI-RS */
12
5
 
13
- type NftTrait = {
14
- trait_type: string;
15
- value: string;
16
- };
17
- type RpcNftAsset = {
18
- collectionName: string;
19
- collectionTokenId: string;
20
- collectionAddress: string;
21
- name: string;
22
- description: string;
23
- imageUrl: string;
24
- traits: NftTrait[];
25
- chain: string;
26
- network: string;
27
- };
28
- type RPCTokenMetadata = {
29
- name: string | null;
30
- symbol: string | null;
31
- contractAddress: string;
32
- decimals: string | null;
33
- genesisBlock: string | null;
34
- genesisTransaction: string | null;
35
- };
36
-
37
- declare const qnFetchNFTInputSchema: z.ZodObject<{
38
- wallet: z.ZodString;
39
- contracts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
40
- omitFields: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
41
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
42
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
43
- }, "strict", z.ZodTypeAny, {
44
- wallet: string;
45
- contracts?: string[] | null | undefined;
46
- omitFields?: string[] | null | undefined;
47
- perPage?: number | null | undefined;
48
- page?: number | null | undefined;
49
- }, {
50
- wallet: string;
51
- contracts?: string[] | null | undefined;
52
- omitFields?: string[] | null | undefined;
53
- perPage?: number | null | undefined;
54
- page?: number | null | undefined;
55
- }>;
56
- type QNFetchNFTInput = z.infer<typeof qnFetchNFTInputSchema>;
57
- type QNFetchNFTResult = {
58
- owner: string;
59
- assets: RpcNftAsset[];
60
- totalPages: number;
61
- totalItems: number;
62
- pageNumber: number;
63
- };
64
-
65
- declare const qnFetchNFTCollectionDetailsInputSchema: z.ZodObject<{
66
- contracts: z.ZodArray<z.ZodString, "many">;
67
- }, "strict", z.ZodTypeAny, {
68
- contracts: string[];
69
- }, {
70
- contracts: string[];
71
- }>;
72
- type QNFetchNFTCollectionDetailsInput = z.infer<typeof qnFetchNFTCollectionDetailsInputSchema>;
73
- type RPCNftCollectionDetails = {
74
- name: string;
75
- address: string;
76
- description: string;
77
- erc1155: boolean;
78
- erc721: boolean;
79
- totalSupply: number;
80
- circulatingSupply: number;
81
- genesisBlock: number | null;
82
- genesisTransaction: string | null;
83
- };
84
- type QNFetchNFTCollectionDetailsResult = RPCNftCollectionDetails[];
85
-
86
- declare const qnFetchNFTsByCollectionInputSchema: z.ZodObject<{
87
- omitFields: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
88
- collection: z.ZodString;
89
- tokens: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
90
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
91
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
92
- }, "strict", z.ZodTypeAny, {
93
- collection: string;
94
- omitFields?: string[] | null | undefined;
95
- tokens?: string[] | null | undefined;
96
- perPage?: number | null | undefined;
97
- page?: number | null | undefined;
98
- }, {
99
- collection: string;
100
- omitFields?: string[] | null | undefined;
101
- tokens?: string[] | null | undefined;
102
- perPage?: number | null | undefined;
103
- page?: number | null | undefined;
104
- }>;
105
- type QNFetchNFTsByCollectionInput = z.infer<typeof qnFetchNFTsByCollectionInputSchema>;
106
- type QNFetchNFTsByCollectionResult = {
107
- collection: string;
108
- tokens: RpcNftAsset[];
109
- };
110
-
111
- declare const qnGetTransfersByNFTInputSchema: z.ZodObject<{
112
- collection: z.ZodString;
113
- collectionTokenId: z.ZodString;
114
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
115
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
116
- }, "strict", z.ZodTypeAny, {
117
- collection: string;
118
- collectionTokenId: string;
119
- perPage?: number | null | undefined;
120
- page?: number | null | undefined;
121
- }, {
122
- collection: string;
123
- collectionTokenId: string;
124
- perPage?: number | null | undefined;
125
- page?: number | null | undefined;
126
- }>;
127
- type QNGetTransfersByNFTInput = z.infer<typeof qnGetTransfersByNFTInputSchema>;
128
- type TransfersByNFTTransfer = {
129
- blockNumber: number;
130
- date: string;
131
- from: string;
132
- to: string;
133
- txHash: string;
134
- };
135
- type QNGetTransfersByNFTResult = {
136
- collection: string;
137
- transfers: TransfersByNFTTransfer[];
138
- totalPages: number;
139
- pageNumber: number;
140
- totalItems: number;
141
- };
142
-
143
- declare const qnVerifyNFTsOwnerInputSchema: z.ZodObject<{
144
- wallet: z.ZodString;
145
- contracts: z.ZodArray<z.ZodString, "many">;
146
- }, "strict", z.ZodTypeAny, {
147
- wallet: string;
148
- contracts: string[];
149
- }, {
150
- wallet: string;
151
- contracts: string[];
152
- }>;
153
- type QNVerifyNFTsOwnerInput = z.infer<typeof qnVerifyNFTsOwnerInputSchema>;
154
- type QNVerifyNFTsOwnerResult = {
155
- owner: string;
156
- assets: string[];
157
- };
158
-
159
- declare const qnGetTokenMetadataByCAInputSchema: z.ZodObject<{
160
- contract: z.ZodString;
161
- }, "strict", z.ZodTypeAny, {
162
- contract: string;
163
- }, {
164
- contract: string;
165
- }>;
166
- type QNGetTokenMetadataByCAInput = z.infer<typeof qnGetTokenMetadataByCAInputSchema>;
167
- type QNGetTokenMetadataByCAResult = RPCTokenMetadata;
168
-
169
- declare const qnGetTokenMetadataBySymbolInputSchema: z.ZodObject<{
170
- symbol: z.ZodString;
171
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
172
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
173
- }, "strict", z.ZodTypeAny, {
174
- symbol: string;
175
- perPage?: number | null | undefined;
176
- page?: number | null | undefined;
177
- }, {
178
- symbol: string;
179
- perPage?: number | null | undefined;
180
- page?: number | null | undefined;
181
- }>;
182
- type QNGetTokenMetadataBySymbolInput = z.infer<typeof qnGetTokenMetadataBySymbolInputSchema>;
183
- type QNGetTokenMetadataBySymbolResult = {
184
- tokens: RPCTokenMetadata[];
185
- };
186
-
187
- declare const qnGetTransactionsByAddressInputSchema: z.ZodEffects<z.ZodObject<{
188
- address: z.ZodString;
189
- fromBlock: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
190
- toBlock: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
191
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
192
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
193
- }, "strict", z.ZodTypeAny, {
194
- address: string;
195
- fromBlock?: number | null | undefined;
196
- toBlock?: number | null | undefined;
197
- perPage?: number | null | undefined;
198
- page?: number | null | undefined;
199
- }, {
200
- address: string;
201
- fromBlock?: number | null | undefined;
202
- toBlock?: number | null | undefined;
203
- perPage?: number | null | undefined;
204
- page?: number | null | undefined;
205
- }>, {
206
- address: string;
207
- fromBlock?: number | null | undefined;
208
- toBlock?: number | null | undefined;
209
- perPage?: number | null | undefined;
210
- page?: number | null | undefined;
211
- }, {
212
- address: string;
213
- fromBlock?: number | null | undefined;
214
- toBlock?: number | null | undefined;
215
- perPage?: number | null | undefined;
216
- page?: number | null | undefined;
217
- }>;
218
- type QNGetTransactionsByAddressInput = z.infer<typeof qnGetTransactionsByAddressInputSchema>;
219
- interface RPCTransactionByAddress {
220
- blockTimestamp: string;
221
- transactionHash: string;
222
- blockNumber: string;
223
- transactionIndex: number;
224
- fromAddress: string;
225
- toAddress: string;
226
- contractAddress: string | null;
227
- value: string;
228
- }
229
- type QNGetTransactionsByAddressResult = {
230
- paginatedItems: RPCTransactionByAddress[];
231
- totalItems: number;
232
- totalPages: number;
233
- pageNumber: number;
234
- };
235
-
236
- declare const qnGetWalletTokenBalanceInputSchema: z.ZodObject<{
237
- wallet: z.ZodString;
238
- contracts: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodString, "many">>>;
239
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
240
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
241
- }, "strict", z.ZodTypeAny, {
242
- wallet: string;
243
- contracts?: string[] | null | undefined;
244
- perPage?: number | null | undefined;
245
- page?: number | null | undefined;
246
- }, {
247
- wallet: string;
248
- contracts?: string[] | null | undefined;
249
- perPage?: number | null | undefined;
250
- page?: number | null | undefined;
251
- }>;
252
- type QNGetWalletTokenBalanceInput = z.infer<typeof qnGetWalletTokenBalanceInputSchema>;
253
- type RPCWalletTokenBalance = {
254
- quantityIn: string;
255
- quantityOut: string;
256
- name: string | null;
257
- symbol: string | null;
258
- decimals: string | null;
259
- address: string;
260
- totalBalance: string;
261
- };
262
- type QNGetWalletTokenBalanceResult = {
263
- result: RPCWalletTokenBalance[];
264
- totalItems: number;
265
- totalPages: number;
266
- pageNumber: number;
267
- };
268
-
269
- declare const qnGetWalletTokenTransactionsInputSchema: z.ZodObject<{
270
- contract: z.ZodString;
271
- address: z.ZodString;
272
- fromBlock: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
273
- toBlock: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
274
- perPage: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
275
- page: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
276
- }, "strict", z.ZodTypeAny, {
277
- contract: string;
278
- address: string;
279
- fromBlock?: number | null | undefined;
280
- toBlock?: number | null | undefined;
281
- perPage?: number | null | undefined;
282
- page?: number | null | undefined;
283
- }, {
284
- contract: string;
285
- address: string;
286
- fromBlock?: number | null | undefined;
287
- toBlock?: number | null | undefined;
288
- perPage?: number | null | undefined;
289
- page?: number | null | undefined;
290
- }>;
291
- type QNGetWalletTokenTransactionsInput = z.infer<typeof qnGetWalletTokenTransactionsInputSchema>;
292
- type RPCFullTokenMetadata = {
293
- address: string;
294
- genesisBlock: string | null;
295
- genesisTransaction: string | null;
296
- name: string | null;
297
- symbol: string | null;
298
- decimals: string | null;
299
- contractAddress: string;
300
- };
301
- type RPCTokenTransaction = {
302
- blockNumber: string;
303
- transactionHash: string;
304
- toAddress: string;
305
- fromAddress: string;
306
- logIndex: number;
307
- type: string;
308
- timestamp: string;
309
- receivedTokenContractAddress: string | null;
310
- sentTokenContractAddress: string | null;
311
- sentAmount: string;
312
- receivedAmount: string;
313
- decimalSentAmount: string;
314
- decimalReceivedAmount: string;
315
- };
316
- type QNGetWalletTokenTransactionsResult = {
317
- paginatedItems: RPCTokenTransaction[];
318
- totalItems: number;
319
- totalPages: number;
320
- pageNumber: number;
321
- token: RPCFullTokenMetadata;
322
- };
323
-
324
- type NFTAndTokenActions = {
325
- /**
326
- * Returns aggregated data on NFTs for a given wallet.
327
- *
328
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_fetchNFTs_v2
329
- *
330
- * @param args - {@link QNFetchNFTInput}
331
- * @returns response - {@link QNFetchNFTsResult}
332
- *
333
- * @example
334
- * import QuickNode from '@quicknode/sdk';
335
- *
336
- * const core = new QuickNode.Core({
337
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
338
- * config: {
339
- * addOns: { nftTokenV2: true }
340
- * }
341
- * }
342
- *
343
- * const response = await core.client.qn_fetchNFTs({
344
- * wallet: "0xD10E24685c7CDD3cd3BaAA86b09C92Be28c834B6",
345
- * contracts: ['0x2106C00Ac7dA0A3430aE667879139E832307AeAa'],
346
- * });
347
- */
348
- qn_fetchNFTs: (args: SimplifyType<QNFetchNFTInput>) => Promise<SimplifyType<QNFetchNFTResult>>;
349
- /**
350
- * Returns aggregated data on NFTs for a given wallet.
351
- *
352
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_fetchNFTCollectionDetails_v2
353
- *
354
- * @param args - {@link QNFetchNFTCollectionDetailsInput}
355
- * @returns response - {@link QNFetchNFTCollectionDetailsResult}
356
- *
357
- * @example
358
- * import QuickNode from '@quicknode/sdk';
359
- *
360
- * const core = new QuickNode.Core({
361
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
362
- * config: {
363
- * addOns: { nftTokenV2: true }
364
- * }
365
- * }
366
- *
367
- * const response = await core.client.qn_fetchNFTCollectionDetails({
368
- * contracts: [
369
- * "0x60E4d786628Fea6478F785A6d7e704777c86a7c6",
370
- * "0x7Bd29408f11D2bFC23c34f18275bBf23bB716Bc7",
371
- * ]
372
- * });
373
- */
374
- qn_fetchNFTCollectionDetails: (args: SimplifyType<QNFetchNFTCollectionDetailsInput>) => Promise<SimplifyType<QNFetchNFTCollectionDetailsResult>>;
375
- /**
376
- * Returns aggregated data on NFTs within a given collection.
377
- *
378
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_fetchNFTsByCollection_v2
379
- *
380
- * @param args - {@link QNFetchNFTsByCollectionInput}
381
- * @returns response - {@link QNFetchNFTsByCollectionResult}
382
- *
383
- * @example
384
- * import QuickNode from '@quicknode/sdk';
385
- *
386
- * const core = new QuickNode.Core({
387
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
388
- * config: {
389
- * addOns: { nftTokenV2: true }
390
- * }
391
- * }
392
- *
393
- * const response = await core.client.qn_fetchNFTsByCollection({
394
- * collection: "0x60E4d786628Fea6478F785A6d7e704777c86a7c6",
395
- * })
396
- */
397
- qn_fetchNFTsByCollection: (args: SimplifyType<QNFetchNFTsByCollectionInput>) => Promise<SimplifyType<QNFetchNFTsByCollectionResult>>;
398
- /**
399
- * Returns transfers by given NFT.
400
- *
401
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_getTransfersByNFT_v2
402
- *
403
- * @param args - {@link QNGetTransfersByNFTInput}
404
- * @returns response - {@link QNGetTransfersByNFTResult}
405
- *
406
- * @example
407
- * import QuickNode from '@quicknode/sdk';
408
- *
409
- * const core = new QuickNode.Core({
410
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
411
- * config: {
412
- * addOns: { nftTokenV2: true }
413
- * }
414
- * }
415
- *
416
- * const response = await core.client.qn_getTransfersByNFT({
417
- * collection: "0x60E4d786628Fea6478F785A6d7e704777c86a7c6",
418
- 7 * collectionTokenId: "1",
419
- * })
420
- */
421
- qn_getTransfersByNFT: (args: SimplifyType<QNGetTransfersByNFTInput>) => Promise<SimplifyType<QNGetTransfersByNFTResult>>;
422
- /**
423
- * Confirms ownership of specified NFTs for a given wallet.
424
- *
425
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_verifyNFTsOwner_v2
426
- *
427
- * @param args - {@link QNVerifyNFTsOwnerInput}
428
- * @returns response - {@link QNVerifyNFTsOwnerResult}
429
- *
430
- * @example
431
- * import QuickNode from '@quicknode/sdk';
432
- *
433
- * const core = new QuickNode.Core({
434
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
435
- * config: {
436
- * addOns: { nftTokenV2: true }
437
- * }
438
- * }
439
- *
440
- * const response = await core.client.qn_verifyNFTsOwner({
441
- * wallet: "0x91b51c173a4bdaa1a60e234fc3f705a16d228740",
442
- * contracts: [
443
- * "0x2106c00ac7da0a3430ae667879139e832307aeaa:3643",
444
- * "0xd07dc4262bcdbf85190c01c996b4c06a461d2430:133803",
445
- * ],
446
- * })
447
- *
448
- */
449
- qn_verifyNFTsOwner: (args: SimplifyType<QNVerifyNFTsOwnerInput>) => Promise<SimplifyType<QNVerifyNFTsOwnerResult>>;
450
- /**
451
- * Returns token details for specified contract.
452
- *
453
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_getTokenMetadataByContractAddress_v2
454
- *
455
- * @param args - {@link QNGetTokenMetadataByCAInput}
456
- * @returns response - {@link QNGetTokenMetadataByCAResult}
457
- *
458
- * @example
459
- * import QuickNode from '@quicknode/sdk';
460
- *
461
- * const core = new QuickNode.Core({
462
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
463
- * config: {
464
- * addOns: { nftTokenV2: true }
465
- * }
466
- * }
467
- *
468
- * const response = await core.client.qn_getTokenMetadataByContractAddress({
469
- * contract: "0x2106c00ac7da0a3430ae667879139e832307aeaa",
470
- * })
471
- */
472
- qn_getTokenMetadataByContractAddress: (args: SimplifyType<QNGetTokenMetadataByCAInput>) => Promise<SimplifyType<QNGetTokenMetadataByCAResult | null>>;
473
- /**
474
- * Returns token details for specified token symbol.
475
- *
476
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_getTokenMetadataBySymbol_v2
477
- *
478
- * @param args - {@link QNGetTokenMetadataBySymbolInput}
479
- * @returns response - {@link QNGetTokenMetadataBySymbolResult}
480
- *
481
- * @example
482
- * import QuickNode from '@quicknode/sdk';
483
- *
484
- * const core = new QuickNode.Core({
485
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
486
- * config: {
487
- * addOns: { nftTokenV2: true }
488
- * }
489
- * }
490
- *
491
- * const response = await core.client.qn_getTokenMetadataBySymbol({
492
- * symbol: "DAI",
493
- * })
494
- */
495
- qn_getTokenMetadataBySymbol: (args: SimplifyType<QNGetTokenMetadataBySymbolInput>) => Promise<SimplifyType<QNGetTokenMetadataBySymbolResult>>;
496
- /**
497
- * Returns transactions within a specified wallet address.
498
- *
499
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_getTransactionsByAddress_v2
500
- *
501
- * @param args - {@link QNGetTransactionsByAddressInput}
502
- * @returns response - {@link QNGetTransactionsByAddressResult}
503
- *
504
- * @example
505
- * import QuickNode from '@quicknode/sdk';
506
- *
507
- * const core = new QuickNode.Core({
508
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
509
- * config: {
510
- * addOns: { nftTokenV2: true }
511
- * }
512
- * }
513
- *
514
- * const response = await core.client.qn_getTransactionsByAddress({
515
- * address: "0xD10E24685c7CDD3cd3BaAA86b09C92Be28c834B6"
516
- * })
517
- */
518
- qn_getTransactionsByAddress: (args: SimplifyType<QNGetTransactionsByAddressInput>) => Promise<SimplifyType<QNGetTransactionsByAddressResult>>;
519
- /**
520
- * Returns ERC-20 tokens and token balances within a wallet.
521
- *
522
- * - Docs: https://www.quicknode.com/docs/ethereum/qn_getWalletTokenBalance_v2
523
- *
524
- * @param args - {@link QNGetWalletTokenBalanceInput}
525
- * @returns response - {@link QNGetWalletTokenBalanceResult}
526
- *
527
- * @example
528
- * import QuickNode from '@quicknode/sdk';
529
- *
530
- * const core = new QuickNode.Core({
531
- * endpointUrl: "https://some-cool-name.quiknode.pro/abcd1234",
532
- * config: {
533
- * addOns: { nftTokenV2: true }
534
- * }
535
- * }
536
- *
537
- * const response = await core.client.qn_getWalletTokenBalance({
538
- * address: "0xD10E24685c7CDD3cd3BaAA86b09C92Be28c834B6"
539
- * })
540
- */
541
- qn_getWalletTokenBalance: (args: SimplifyType<QNGetWalletTokenBalanceInput>) => Promise<SimplifyType<QNGetWalletTokenBalanceResult>>;
542
- qn_getWalletTokenTransactions: (args: SimplifyType<QNGetWalletTokenTransactionsInput>) => Promise<SimplifyType<QNGetWalletTokenTransactionsResult>>;
543
- };
544
-
545
- interface CoreArguments {
546
- endpointUrl: string;
547
- chain?: Chain;
548
- config?: QNCoreClientConfig;
549
- }
550
- type QNCoreClientConfig = {
551
- addOns?: {
552
- nftTokenV2: boolean;
553
- };
554
- };
555
- type QNCoreClient = PublicClient & NFTAndTokenActions;
556
-
557
- declare class Core {
558
- readonly endpointUrl: string;
559
- readonly client: QNCoreClient;
560
- constructor({ endpointUrl, chain, config }: CoreArguments);
6
+ /** A single line item on an invoice. */
7
+ export interface InvoiceLine {
8
+ /** Human-readable description of the line item. */
9
+ description: string
10
+ /** Line item amount in the smallest currency unit. */
11
+ amount: number
561
12
  }
562
-
563
- type PercentileRangeUnion = '0' | '5' | '10' | '15' | '20' | '25' | '30' | '35' | '40' | '45' | '50' | '55' | '60' | '65' | '70' | '75' | '80' | '85' | '90' | '95' | '100';
564
- type PriorityFeeLevels = 'low' | 'medium' | 'high' | 'extreme' | 'recommended';
565
- interface PriorityFeeRequestPayload {
566
- method: string;
567
- params: {
568
- last_n_blocks?: number;
569
- account?: string;
570
- };
571
- id: number;
572
- jsonrpc: string;
573
- }
574
- interface PriorityFeeEstimates {
575
- extreme: number;
576
- high: number;
577
- low: number;
578
- medium: number;
579
- percentiles: {
580
- [key in PercentileRangeUnion]: number;
581
- };
582
- }
583
- interface PriorityFeeResponseData {
584
- jsonrpc: string;
585
- result: {
586
- context: {
587
- slot: number;
588
- };
589
- per_compute_unit: PriorityFeeEstimates;
590
- per_transaction: PriorityFeeEstimates;
591
- recommended: number;
592
- };
593
- id: number;
594
- }
595
- interface EstimatePriorityFeesParams {
596
- last_n_blocks?: number;
597
- account?: string;
598
- api_version?: number;
599
- }
600
- interface SolanaClientArgs {
601
- endpointUrl: string;
602
- }
603
- interface SmartTransactionBaseArgs {
604
- transaction: Transaction;
605
- feeLevel?: PriorityFeeLevels;
606
- }
607
- interface PrepareSmartTransactionArgs extends SmartTransactionBaseArgs {
608
- payerPublicKey: PublicKey;
609
- }
610
- interface SendSmartTransactionArgs extends SmartTransactionBaseArgs {
611
- keyPair: Keypair;
612
- sendTransactionOptions?: SendOptions;
13
+ /** An invoice issued to the account. */
14
+ export interface Invoice {
15
+ /** Unique invoice identifier. */
16
+ id: string
17
+ /** Payment status (e.g. `paid`, `open`). */
18
+ status: string
19
+ /** Reason the invoice was generated (e.g. `subscription_cycle`). */
20
+ billingReason: string
21
+ /** Line items contributing to the invoice total. */
22
+ lines: Array<InvoiceLine>
23
+ /** Amount due in the smallest currency unit. */
24
+ amountDue: number
25
+ /** Amount already paid in the smallest currency unit. */
26
+ amountPaid: number
27
+ /** Start of the billing period (Unix timestamp). */
28
+ periodStart: number
29
+ /** End of the billing period (Unix timestamp). */
30
+ periodEnd: number
31
+ /** Timestamp when the invoice was created (Unix timestamp). */
32
+ created: number
33
+ /** Subtotal before taxes and adjustments. */
34
+ subtotal: number
613
35
  }
614
-
615
- declare class Solana {
616
- readonly endpointUrl: string;
617
- readonly connection: Connection;
618
- constructor({ endpointUrl }: SolanaClientArgs);
619
- /**
620
- * Sends a transaction with a dynamically generated priority fee based on the current network conditions and compute units needed by the transaction.
621
- */
622
- sendSmartTransaction(args: SendSmartTransactionArgs): Promise<string>;
623
- /**
624
- * Prepares a transaction to be sent with a dynamically generated priority fee based
625
- * on the current network conditions. It adds a `setComputeUnitPrice` instruction to the transaction
626
- * and simulates the transaction to estimate the number of compute units it will consume.
627
- * The returned transaction still needs to be signed and sent to the network.
628
- */
629
- prepareSmartTransaction(args: PrepareSmartTransactionArgs): Promise<_solana_web3_js.Transaction>;
630
- fetchEstimatePriorityFees(args?: EstimatePriorityFeesParams): Promise<PriorityFeeResponseData>;
631
- private createDynamicPriorityFeeInstruction;
632
- private getSimulationUnits;
36
+ /** Response from `list_invoices`. */
37
+ export interface ListInvoicesResponse {
38
+ /** Invoice data payload. */
39
+ data?: ListInvoicesData
40
+ /** Error message when the request did not succeed. */
41
+ error?: string
633
42
  }
634
-
635
- declare const QuickNode: {
636
- Core: typeof Core;
637
- Solana: typeof Solana;
638
- };
639
-
640
- declare class QNInputValidationError extends Error {
641
- messages: string[];
642
- zodError: ZodError;
643
- issues: ZodError['issues'];
644
- constructor({ messages, zodError, }: {
645
- messages: string[];
646
- zodError: ZodError;
647
- });
43
+ /** Invoice list wrapper. */
44
+ export interface ListInvoicesData {
45
+ /** Invoices on the account. */
46
+ invoices: Array<Invoice>
648
47
  }
649
-
650
- declare class QNInvalidEndpointUrl extends Error {
651
- constructor();
48
+ /** A payment recorded on the account. */
49
+ export interface Payment {
50
+ /** Payment amount as a string in the account's currency. */
51
+ amount: string
52
+ /** Last four digits of the card used for the payment. */
53
+ cardLast4?: string
54
+ /** Timestamp when the payment was recorded. */
55
+ createdAt: string
56
+ /** Currency code (e.g. `usd`). */
57
+ currency: string
58
+ /** Payment status. */
59
+ status: string
60
+ /** Portion of the payment attributed to marketplace spending. */
61
+ marketplaceAmount?: string
652
62
  }
653
-
654
- declare class QNChainNotSupported extends Error {
655
- constructor(endpointUrl: string);
63
+ /** Response from `list_payments`. */
64
+ export interface ListPaymentsResponse {
65
+ /** Payment data payload. */
66
+ data?: ListPaymentsData
67
+ /** Error message when the request did not succeed. */
68
+ error?: string
69
+ }
70
+ /** Payment list wrapper. */
71
+ export interface ListPaymentsData {
72
+ /** Payments on the account. */
73
+ payments: Array<Payment>
74
+ }
75
+ /** Parameters for `bulk_update_endpoint_status`. */
76
+ export interface BulkUpdateEndpointStatusRequest {
77
+ /** Endpoint ids to update. */
78
+ ids: Array<string>
79
+ /** Target status (`active` or `paused`). */
80
+ status: string
81
+ }
82
+ /** Per-endpoint result within a bulk response. */
83
+ export interface BulkOperationResult {
84
+ /** Endpoint id the result refers to. */
85
+ id: string
86
+ /** Whether the operation succeeded for this endpoint. */
87
+ success: boolean
88
+ }
89
+ /** Summary data for a `bulk_update_endpoint_status` response. */
90
+ export interface BulkUpdateEndpointStatusData {
91
+ /** Total number of endpoints processed. */
92
+ total: number
93
+ /** Number successfully updated. */
94
+ updatedCount: number
95
+ /** Number that failed. */
96
+ failedCount: number
97
+ /** Per-endpoint outcomes. */
98
+ results: Array<BulkOperationResult>
99
+ }
100
+ /** Response from `bulk_update_endpoint_status`. */
101
+ export interface BulkUpdateEndpointStatusResponse {
102
+ /** Bulk update summary. */
103
+ data?: BulkUpdateEndpointStatusData
104
+ /** Error message when the request did not succeed. */
105
+ error?: string
106
+ }
107
+ /** Parameters for `bulk_add_tag`. */
108
+ export interface BulkAddTagRequest {
109
+ /** Endpoint ids to tag. */
110
+ ids: Array<string>
111
+ /** Label of the tag to apply (created if it doesn't exist). */
112
+ label: string
113
+ }
114
+ /** Tag reference returned on bulk tag operations. */
115
+ export interface BulkTag {
116
+ /** Tag identifier. */
117
+ tagId: number
118
+ /** Tag label. */
119
+ label: string
120
+ }
121
+ /** Summary data for a `bulk_add_tag` response. */
122
+ export interface BulkAddTagData {
123
+ /** Total number of endpoints processed. */
124
+ total: number
125
+ /** Number successfully tagged. */
126
+ updatedCount: number
127
+ /** Number that failed. */
128
+ failedCount: number
129
+ /** Per-endpoint outcomes. */
130
+ results: Array<BulkOperationResult>
131
+ /** The tag that was applied. */
132
+ tag: BulkTag
133
+ }
134
+ /** Response from `bulk_add_tag`. */
135
+ export interface BulkAddTagResponse {
136
+ /** Bulk add-tag summary. */
137
+ data?: BulkAddTagData
138
+ /** Error message when the request did not succeed. */
139
+ error?: string
140
+ }
141
+ /** Parameters for `bulk_remove_tag`. */
142
+ export interface BulkRemoveTagRequest {
143
+ /** Endpoint ids to untag. */
144
+ ids: Array<string>
145
+ /** Tag to remove. */
146
+ tagId: number
147
+ }
148
+ /** Summary data for a `bulk_remove_tag` response. */
149
+ export interface BulkRemoveTagData {
150
+ /** Total number of endpoints processed. */
151
+ total: number
152
+ /** Number successfully updated. */
153
+ updatedCount: number
154
+ /** Number that failed. */
155
+ failedCount: number
156
+ /** Per-endpoint outcomes. */
157
+ results: Array<BulkOperationResult>
158
+ }
159
+ /** Response from `bulk_remove_tag`. */
160
+ export interface BulkRemoveTagResponse {
161
+ /** Bulk remove-tag summary. */
162
+ data?: BulkRemoveTagData
163
+ /** Error message when the request did not succeed. */
164
+ error?: string
165
+ }
166
+ /** A network within a supported chain. */
167
+ export interface ChainNetwork {
168
+ /** Network slug (e.g. `mainnet`). */
169
+ slug: string
170
+ /** Human-readable network name. */
171
+ name: string
172
+ /** Numeric chain id, when applicable. */
173
+ chainId?: number
174
+ }
175
+ /** A blockchain supported by QuickNode along with its networks. */
176
+ export interface Chain {
177
+ /** Chain slug (e.g. `ethereum`). */
178
+ slug: string
179
+ /** Networks available on this chain. */
180
+ networks: Array<ChainNetwork>
181
+ /** Whether the chain is shown in selection UIs. */
182
+ isSelectChain?: boolean
183
+ }
184
+ /** Response from `list_chains`. */
185
+ export interface ListChainsResponse {
186
+ /** Supported chains and their networks. */
187
+ data: Array<Chain>
188
+ /** Error message when the request did not succeed. */
189
+ error?: string
190
+ }
191
+ /** Parameters for `get_endpoint_metrics`. */
192
+ export interface GetEndpointMetricsRequest {
193
+ /** Time period (`hour`, `day`, `week`, or `month`). */
194
+ period: string
195
+ /** Metric name (e.g. `method_calls_over_time`, `response_status_breakdown`). */
196
+ metric: string
197
+ }
198
+ /** Parameters for `get_account_metrics`. */
199
+ export interface GetAccountMetricsRequest {
200
+ /** Time period (`hour`, `day`, `week`, or `month`). */
201
+ period: string
202
+ /** Metric name (e.g. `method_calls_over_time`, `credits_over_time`). */
203
+ metric: string
204
+ /** Optional percentile for latency metrics (e.g. `p50`, `p95`, `p99`). */
205
+ percentile?: string
206
+ }
207
+ /** A single metric series, consisting of a descriptive tag and timestamped data points. */
208
+ export interface EndpointMetric {
209
+ /** Data points, each as `[timestamp, value]`. */
210
+ data: Array<Array<number>>
211
+ /** Human-readable tag identifying the series. */
212
+ tag: string
213
+ }
214
+ /** Response from `get_endpoint_metrics`. */
215
+ export interface GetEndpointMetricsResponse {
216
+ /** Metric series returned for the endpoint. */
217
+ data: Array<EndpointMetric>
218
+ /** Error message when the request did not succeed. */
219
+ error?: string
220
+ }
221
+ /** Response from `get_account_metrics`. */
222
+ export interface GetAccountMetricsResponse {
223
+ /** Metric series returned for the account. */
224
+ data: Array<EndpointMetric>
225
+ /** Error message when the request did not succeed. */
226
+ error?: string
227
+ }
228
+ /** A per-method rate limiter configured on an endpoint. */
229
+ export interface MethodRateLimiter {
230
+ /** Rate limiter identifier. */
231
+ id: string
232
+ /** Interval over which the rate applies (e.g. `second`, `minute`). */
233
+ interval: string
234
+ /** RPC methods the limiter applies to. */
235
+ methods: Array<string>
236
+ /** Maximum number of calls allowed per interval. */
237
+ rate: number
238
+ /** Whether the limiter is `enabled` or `disabled`. */
239
+ status: string
240
+ /** Creation timestamp. */
241
+ created: string
242
+ }
243
+ /** Inner data for `get_method_rate_limits`. */
244
+ export interface GetMethodRateLimitsData {
245
+ /** Rate limiters configured on the endpoint. */
246
+ rateLimiters: Array<MethodRateLimiter>
247
+ }
248
+ /** Response from `get_method_rate_limits`. */
249
+ export interface GetMethodRateLimitsResponse {
250
+ /** Rate limiters payload. */
251
+ data?: GetMethodRateLimitsData
252
+ /** Error message when the request did not succeed. */
253
+ error?: string
254
+ }
255
+ /** Parameters for `create_method_rate_limit`. */
256
+ export interface CreateMethodRateLimitRequest {
257
+ /** Interval over which the rate applies (e.g. `second`). */
258
+ interval: string
259
+ /** RPC methods the limiter applies to. */
260
+ methods: Array<string>
261
+ /** Maximum number of calls allowed per interval. */
262
+ rate: number
263
+ }
264
+ /** Response from `create_method_rate_limit`. */
265
+ export interface CreateMethodRateLimitResponse {
266
+ /** The created rate limiter. */
267
+ data?: MethodRateLimiter
268
+ /** Error message when the request did not succeed. */
269
+ error?: string
270
+ }
271
+ /** Parameters for `update_method_rate_limit`. Only provided fields are changed. */
272
+ export interface UpdateMethodRateLimitRequest {
273
+ /** New set of RPC methods the limiter applies to. */
274
+ methods?: Array<string>
275
+ /** New status (`enabled` or `disabled`). */
276
+ status?: string
277
+ /** New rate value. */
278
+ rate?: number
279
+ }
280
+ /** Response from `update_method_rate_limit`. */
281
+ export interface UpdateMethodRateLimitResponse {
282
+ /** The updated rate limiter. */
283
+ data?: MethodRateLimiter
284
+ /** Error message when the request did not succeed. */
285
+ error?: string
286
+ }
287
+ /** Endpoint-wide rate limit settings. */
288
+ export interface RateLimitSettings {
289
+ /** Requests per second. */
290
+ rps?: number
291
+ /** Requests per minute. */
292
+ rpm?: number
293
+ /** Requests per day. */
294
+ rpd?: number
295
+ }
296
+ /** Parameters for `update_rate_limits`. */
297
+ export interface UpdateRateLimitsRequest {
298
+ /** Rate limit values to apply. */
299
+ rateLimits: RateLimitSettings
300
+ }
301
+ /** A single security feature's name, status, and optional value. */
302
+ export interface SecurityOption {
303
+ /** Name of the security feature (e.g. `tokens`, `jwts`, `ips`). */
304
+ option: string
305
+ /** Whether the feature is `enabled` or `disabled`. */
306
+ status: string
307
+ /** Optional configuration value associated with the feature. */
308
+ value?: string
309
+ }
310
+ /** Response from `get_security_options`. */
311
+ export interface GetSecurityOptionsResponse {
312
+ /** Security options on the endpoint. */
313
+ data: Array<SecurityOption>
314
+ /** Error message when the request did not succeed. */
315
+ error?: string
316
+ }
317
+ /**
318
+ * Per-feature toggles for `update_security_options`. Each field accepts
319
+ * `enabled` or `disabled`.
320
+ */
321
+ export interface SecurityOptionsUpdate {
322
+ /** Token authentication toggle. */
323
+ tokens?: string
324
+ /** Referrer validation toggle. */
325
+ referrers?: string
326
+ /** JWT validation toggle. */
327
+ jwts?: string
328
+ /** IP whitelist toggle. */
329
+ ips?: string
330
+ /** Domain masking toggle. */
331
+ domainMasks?: string
332
+ /** HSTS (HTTP Strict Transport Security) toggle. */
333
+ hsts?: string
334
+ /** CORS toggle. */
335
+ cors?: string
336
+ /** Request (method) filter toggle. */
337
+ requestFilters?: string
338
+ /** Custom IP header toggle. */
339
+ ipCustomHeader?: string
340
+ }
341
+ /** Parameters for `update_security_options`. */
342
+ export interface UpdateSecurityOptionsRequest {
343
+ /** Security toggles to apply. */
344
+ options: SecurityOptionsUpdate
345
+ }
346
+ /** Response from `update_security_options`. */
347
+ export interface UpdateSecurityOptionsResponse {
348
+ /** Updated security options. */
349
+ data: Array<SecurityOption>
350
+ /** Error message when the request did not succeed. */
351
+ error?: string
352
+ }
353
+ /** Parameters for `create_referrer`. */
354
+ export interface CreateReferrerRequest {
355
+ /** Allowed referrer URL or domain. */
356
+ referrer?: string
357
+ }
358
+ /** Parameters for `create_ip`. */
359
+ export interface CreateIpRequest {
360
+ /** IP address to whitelist. */
361
+ ip?: string
362
+ }
363
+ /** Parameters for `create_domain_mask`. */
364
+ export interface CreateDomainMaskRequest {
365
+ /** Custom domain that will mask the endpoint's QuickNode URL. */
366
+ domainMask?: string
367
+ }
368
+ /** Parameters for `create_jwt`. */
369
+ export interface CreateJwtRequest {
370
+ /** Public key used to verify signed JWTs. */
371
+ publicKey?: string
372
+ /** Key identifier (`kid`) embedded in JWT headers. */
373
+ kid?: string
374
+ /** Human-readable name for the JWT configuration. */
375
+ name?: string
376
+ }
377
+ /** Parameters for `create_request_filter`. */
378
+ export interface CreateRequestFilterRequest {
379
+ /** Whitelisted RPC methods; other methods will be blocked. */
380
+ method?: Array<string>
381
+ }
382
+ /** Response from `create_request_filter`. */
383
+ export interface CreateRequestFilterResponse {
384
+ /** The created filter payload. */
385
+ data?: CreateRequestFilterData
386
+ /** Error message when the request did not succeed. */
387
+ error?: string
388
+ }
389
+ /** Data wrapper for a created request filter. */
390
+ export interface CreateRequestFilterData {
391
+ /** Identifier of the newly created request filter. */
392
+ id: string
393
+ }
394
+ /** Parameters for `update_request_filter`. */
395
+ export interface UpdateRequestFilterRequest {
396
+ /** New set of whitelisted RPC methods. */
397
+ method?: Array<string>
398
+ }
399
+ /** Parameters for `create_or_update_ip_custom_header`. */
400
+ export interface CreateOrUpdateIpCustomHeaderRequest {
401
+ /** Header name used to identify the client IP (e.g. `X-Forwarded-For`). */
402
+ headerName: string
403
+ }
404
+ /** Data wrapper for the IP custom header configuration. */
405
+ export interface IpCustomHeaderData {
406
+ /** Configured header name. */
407
+ headerName: string
408
+ }
409
+ /** Response from `create_or_update_ip_custom_header`. */
410
+ export interface CreateOrUpdateIpCustomHeaderResponse {
411
+ /** Stored header configuration. */
412
+ data?: IpCustomHeaderData
413
+ /** Error message when the request did not succeed. */
414
+ error?: string
415
+ }
416
+ /** Response wrapper for delete operations that return a boolean success flag. */
417
+ export interface DeleteBoolResponse {
418
+ /** `true` when the deletion succeeded. */
419
+ data?: boolean
420
+ /** Error message when the request did not succeed. */
421
+ error?: string
422
+ }
423
+ /** Parameters for `get_endpoints`. */
424
+ export interface GetEndpointsRequest {
425
+ /** Maximum number of endpoints returned. */
426
+ limit?: number
427
+ /** Starting index into the result set. */
428
+ offset?: number
429
+ /** Search by subdomain or label. */
430
+ search?: string
431
+ /** Field to sort results by. */
432
+ sortBy?: string
433
+ /** Sort direction (`asc` or `desc`). */
434
+ sortDirection?: string
435
+ /** Filter results to endpoints on these networks. */
436
+ networks?: Array<string>
437
+ /** Filter results to endpoints in these statuses. */
438
+ statuses?: Array<string>
439
+ /** Filter results by label. */
440
+ labels?: Array<string>
441
+ /** When true, return only dedicated endpoints. */
442
+ dedicated?: boolean
443
+ /** When true, return only flat-rate endpoints. */
444
+ isFlatRate?: boolean
445
+ /** Filter results by associated tag ids. */
446
+ tagIds?: Array<number>
447
+ /** Filter results by associated tag labels. */
448
+ tagLabels?: Array<string>
449
+ }
450
+ /** Response from `get_endpoints`. */
451
+ export interface GetEndpointsResponse {
452
+ /** Endpoints on the current page. */
453
+ data: Array<Endpoint>
454
+ /** Pagination metadata for the response. */
455
+ pagination?: Pagination
456
+ /** Error message when the request did not succeed. */
457
+ error?: string
458
+ }
459
+ /** Pagination metadata for admin list responses. */
460
+ export interface Pagination {
461
+ /** Total number of items matching the query across all pages. */
462
+ total: number
463
+ /** Page size used for this response. */
464
+ limit: number
465
+ /** Starting index of this page within the full result set. */
466
+ offset: number
467
+ }
468
+ /** Summary representation of an endpoint in list responses. */
469
+ export interface Endpoint {
470
+ /** Unique endpoint identifier. */
471
+ id: string
472
+ /** QuickNode-assigned subdomain. */
473
+ name: string
474
+ /** Human-readable label. */
475
+ label?: string
476
+ /** Current operational status (e.g. `active`, `paused`). */
477
+ status: string
478
+ /** Blockchain the endpoint serves (e.g. `ethereum`). */
479
+ chain: string
480
+ /** Specific network within the chain (e.g. `mainnet`). */
481
+ network: string
482
+ /** Whether the endpoint is dedicated. */
483
+ isDedicated: boolean
484
+ /** Whether the endpoint is billed at a flat rate. */
485
+ isFlatRate: boolean
486
+ /** HTTP RPC URL. */
487
+ httpUrl: string
488
+ /** WebSocket RPC URL, when available. */
489
+ wssUrl?: string
490
+ /** Tags applied to the endpoint. */
491
+ tags: Array<EndpointTag>
492
+ }
493
+ /** Tag reference as returned on an endpoint. */
494
+ export interface EndpointTag {
495
+ /** Tag identifier. */
496
+ tagId: number
497
+ /** Tag label. */
498
+ label: string
499
+ }
500
+ /** Parameters for `create_endpoint`. */
501
+ export interface CreateEndpointRequest {
502
+ /** Blockchain the endpoint should serve (e.g. `ethereum`). */
503
+ chain?: string
504
+ /** Specific network within the chain (e.g. `mainnet`). */
505
+ network?: string
506
+ }
507
+ /** Response from `create_endpoint`. */
508
+ export interface CreateEndpointResponse {
509
+ /** The newly created endpoint. */
510
+ data: SingleEndpoint
511
+ /** Error message when the request did not succeed. */
512
+ error?: string
513
+ }
514
+ /** Full representation of a single endpoint, including its security and rate limits. */
515
+ export interface SingleEndpoint {
516
+ /** Unique endpoint identifier. */
517
+ id: string
518
+ /** Human-readable label. */
519
+ label?: string
520
+ /** Current operational status. */
521
+ status?: string
522
+ /** Blockchain the endpoint serves. */
523
+ chain: string
524
+ /** Specific network within the chain. */
525
+ network: string
526
+ /** HTTP RPC URL. */
527
+ httpUrl: string
528
+ /** WebSocket RPC URL, when available. */
529
+ wssUrl?: string
530
+ /** Endpoint security configuration. */
531
+ security?: EndpointSecurity
532
+ /** Endpoint rate limits. */
533
+ rateLimits?: EndpointRateLimits
534
+ /** Tags applied to the endpoint. */
535
+ tags: Array<EndpointTag>
536
+ }
537
+ /** Rate limits applied to an endpoint. */
538
+ export interface EndpointRateLimits {
539
+ /** Whether rate limits are applied per client IP instead of per endpoint. */
540
+ rateLimitByIp?: boolean
541
+ /** Account-level rate limit, when applicable. */
542
+ account?: number
543
+ /** Requests per second. */
544
+ rps?: number
545
+ /** Requests per minute. */
546
+ rpm?: number
547
+ /** Requests per day. */
548
+ rpd?: number
549
+ }
550
+ /**
551
+ * Security configuration for an endpoint — the aggregate of tokens, JWTs,
552
+ * referrers, domain masks, IPs, and request filters plus their enabled
553
+ * toggles.
554
+ */
555
+ export interface EndpointSecurity {
556
+ /** Per-feature enabled/disabled toggles. */
557
+ options?: EndpointSecurityOptions
558
+ /** Authentication tokens configured on the endpoint. */
559
+ tokens?: Array<EndpointToken>
560
+ /** JWTs configured on the endpoint. */
561
+ jwts?: Array<EndpointJwt>
562
+ /** Allowed referrer URLs/domains. */
563
+ referrers?: Array<EndpointReferrer>
564
+ /** Configured domain masks. */
565
+ domainMasks?: Array<EndpointDomainMask>
566
+ /** Whitelisted IP addresses. */
567
+ ips?: Array<EndpointIp>
568
+ /** Request (method) filters. */
569
+ requestFilters?: Array<EndpointRequestFilter>
570
+ }
571
+ /** Boolean toggles controlling which security features are enabled. */
572
+ export interface EndpointSecurityOptions {
573
+ /** Whether token authentication is enforced. */
574
+ tokens?: boolean
575
+ /** Whether JWT validation is enforced. */
576
+ jwts?: boolean
577
+ /** Whether domain masking is enabled. */
578
+ domainMasks?: boolean
579
+ /** Whether IP whitelisting is enforced. */
580
+ ips?: boolean
581
+ /** Whether referrer validation is enforced. */
582
+ referrers?: boolean
583
+ /** Whether request (method) filtering is enforced. */
584
+ requestFilters?: boolean
585
+ /** Custom header used to identify the client IP. */
586
+ ipCustomHeader?: EndpointIpCustomHeaderOption
587
+ }
588
+ /** Custom header option value for IP identification. */
589
+ export interface EndpointIpCustomHeaderOption {
590
+ /** Header name (e.g. `X-Forwarded-For`). */
591
+ value?: string
592
+ }
593
+ /** Authentication token configured on an endpoint. */
594
+ export interface EndpointToken {
595
+ /** Token identifier. */
596
+ id: string
597
+ /** Token secret. */
598
+ token: string
599
+ }
600
+ /** JWT configured on an endpoint for signed-request authentication. */
601
+ export interface EndpointJwt {
602
+ /** JWT identifier. */
603
+ id: string
604
+ /** Public key used to verify signed JWTs. */
605
+ publicKey: string
606
+ /** Key identifier (`kid`) embedded in JWT headers. */
607
+ kid: string
608
+ /** Human-readable name. */
609
+ name: string
610
+ }
611
+ /** Allowed referrer entry for request-origin validation. */
612
+ export interface EndpointReferrer {
613
+ /** Referrer entry identifier. */
614
+ id: string
615
+ /** Allowed referrer URL or domain. */
616
+ referrer?: string
617
+ }
618
+ /** Domain mask configured on an endpoint. */
619
+ export interface EndpointDomainMask {
620
+ /** Domain mask identifier. */
621
+ id: string
622
+ /** Masking domain. */
623
+ domain: string
624
+ }
625
+ /** Whitelisted IP address on an endpoint. */
626
+ export interface EndpointIp {
627
+ /** IP entry identifier. */
628
+ id: string
629
+ /** Whitelisted IP address. */
630
+ ip: string
631
+ }
632
+ /** Request (method) filter configured on an endpoint. */
633
+ export interface EndpointRequestFilter {
634
+ /** Filter identifier. */
635
+ id: string
636
+ /** Whitelisted RPC methods. */
637
+ method: Array<string>
638
+ }
639
+ /** Response from `show_endpoint`. */
640
+ export interface ShowEndpointResponse {
641
+ /** The endpoint, when found. */
642
+ data?: SingleEndpoint
643
+ /** Error message when the request did not succeed. */
644
+ error?: string
645
+ }
646
+ /** Parameters for `update_endpoint`. */
647
+ export interface UpdateEndpointRequest {
648
+ /** New human-readable label. */
649
+ label?: string
650
+ }
651
+ /** Parameters for `update_endpoint_status`. */
652
+ export interface UpdateEndpointStatusRequest {
653
+ /** New status (`active` or `paused`). */
654
+ status: string
655
+ }
656
+ /** Response from `update_endpoint_status`. */
657
+ export interface UpdateEndpointStatusResponse {
658
+ /** Confirmation string returned by the API. */
659
+ data?: string
660
+ /** Error message when the request did not succeed. */
661
+ error?: string
662
+ }
663
+ /** Parameters for `create_tag` (on a specific endpoint). */
664
+ export interface CreateTagRequest {
665
+ /** Label for the new tag. */
666
+ label?: string
667
+ }
668
+ /** Response from `get_endpoint_security`. */
669
+ export interface GetEndpointSecurityResponse {
670
+ /** The endpoint's security configuration. */
671
+ data?: EndpointSecurity
672
+ /** Error message when the request did not succeed. */
673
+ error?: string
674
+ }
675
+ /** Parameters for `get_endpoint_logs`. */
676
+ export interface GetEndpointLogsRequest {
677
+ /** Start of the query window (timestamp). */
678
+ from: string
679
+ /** End of the query window (timestamp). */
680
+ to: string
681
+ /** When true, include full request/response payloads in each entry. */
682
+ includeDetails?: boolean
683
+ /** Maximum number of log entries returned. */
684
+ limit?: number
685
+ /** Cursor returned by a previous page; pass to fetch the next page. */
686
+ nextAt?: string
687
+ }
688
+ /** Raw request/response payloads attached to a log entry. */
689
+ export interface LogDetails {
690
+ /** JSON-encoded request body (truncated at 2KB). */
691
+ request?: string
692
+ /** JSON-encoded response body (truncated at 2KB). */
693
+ response?: string
694
+ }
695
+ /** A single endpoint log entry. */
696
+ export interface EndpointLog {
697
+ /** Time the request was received. */
698
+ timestamp: string
699
+ /** RPC method called (e.g. `eth_blockNumber`). */
700
+ method?: string
701
+ /** Network the request was routed to. */
702
+ network?: string
703
+ /** HTTP verb (e.g. `POST`). */
704
+ httpMethod?: string
705
+ /** Response HTTP status code. */
706
+ status?: number
707
+ /** JSON-RPC error code, when present. */
708
+ errorCode?: number
709
+ /** Request URL. */
710
+ url?: string
711
+ /** Request UUID used to fetch full log details. */
712
+ requestId?: string
713
+ /** Full payloads, included when requested. */
714
+ details?: LogDetails
715
+ }
716
+ /** Response from `get_endpoint_logs`. */
717
+ export interface GetEndpointLogsResponse {
718
+ /** Log entries on the current page. */
719
+ data: Array<EndpointLog>
720
+ /** Cursor for the next page; `None` when there are no more entries. */
721
+ nextAt?: string
722
+ }
723
+ /** Response from `get_log_details`. */
724
+ export interface GetLogDetailsResponse {
725
+ /** Raw request and response payloads for the log entry. */
726
+ data?: LogDetails
727
+ }
728
+ /** An account-level tag, shared across endpoints. */
729
+ export interface AccountTag {
730
+ /** Tag identifier. */
731
+ id: number
732
+ /** Tag label. */
733
+ label: string
734
+ /** Number of endpoints the tag is applied to. */
735
+ usageCount: number
736
+ }
737
+ /** Inner data wrapper for `list_tags`. */
738
+ export interface ListTagsData {
739
+ /** Tags on the account. */
740
+ tags: Array<AccountTag>
741
+ }
742
+ /** Response from `list_tags`. */
743
+ export interface ListTagsResponse {
744
+ /** Account tags payload. */
745
+ data?: ListTagsData
746
+ /** Error message when the request did not succeed. */
747
+ error?: string
748
+ }
749
+ /** Parameters for `rename_tag`. */
750
+ export interface RenameTagRequest {
751
+ /** New label for the tag. */
752
+ label: string
753
+ }
754
+ /** Response from `rename_tag`. */
755
+ export interface RenameTagResponse {
756
+ /** The renamed tag. */
757
+ data?: AccountTag
758
+ /** Error message when the request did not succeed. */
759
+ error?: string
760
+ }
761
+ /** Inner data for `delete_account_tag`. */
762
+ export interface DeleteAccountTagData {
763
+ /** `true` when the tag was deleted. */
764
+ success: boolean
765
+ }
766
+ /** Response from `delete_account_tag`. */
767
+ export interface DeleteAccountTagResponse {
768
+ /** Deletion result. */
769
+ data?: DeleteAccountTagData
770
+ /** Error message when the request did not succeed. */
771
+ error?: string
772
+ }
773
+ /** A team member or pending invitee. */
774
+ export interface TeamUser {
775
+ /** User identifier. */
776
+ id: number
777
+ /** Display name. */
778
+ fullName?: string
779
+ /** Email address. */
780
+ email: string
781
+ /** Team role (e.g. `admin`, `viewer`, `billing`). */
782
+ role?: string
783
+ /** Membership status (e.g. `active`, `pending`). */
784
+ status?: string
785
+ /** When the user was added. */
786
+ createdAt?: string
787
+ /** Profile photo URL. */
788
+ photoUrl?: string
789
+ /** Whether this user is the primary user on the account. */
790
+ accountPrimaryUser?: boolean
791
+ }
792
+ /** Summary representation of a team in list responses. */
793
+ export interface TeamSummary {
794
+ /** Team identifier. */
795
+ id: number
796
+ /** Team name. */
797
+ name: string
798
+ /** Current member count. */
799
+ membersCount?: number
800
+ /** Active team members. */
801
+ users: Array<TeamUser>
802
+ }
803
+ /** Full team detail including pending invites. */
804
+ export interface TeamDetail {
805
+ /** Team identifier. */
806
+ id: number
807
+ /** Team name. */
808
+ name: string
809
+ /** Default role assigned to newly invited members. */
810
+ defaultRole?: string
811
+ /** Current member count. */
812
+ membersCount?: number
813
+ /** Active team members. */
814
+ users: Array<TeamUser>
815
+ /** Invites that have not yet been accepted. */
816
+ pendingInvites: Array<TeamUser>
817
+ }
818
+ /** Response from `list_teams`. */
819
+ export interface ListTeamsResponse {
820
+ /** Teams on the account. */
821
+ data: Array<TeamSummary>
822
+ /** Error message when the request did not succeed. */
823
+ error?: string
824
+ }
825
+ /** Parameters for `create_team`. */
826
+ export interface CreateTeamRequest {
827
+ /** Team name. */
828
+ name: string
829
+ }
830
+ /** Inner data for `create_team` responses. */
831
+ export interface CreateTeamData {
832
+ /** Team identifier. */
833
+ id: number
834
+ /** Team name. */
835
+ name: string
836
+ /** Default role for newly invited members. */
837
+ defaultRole?: string
838
+ /** Initial member count. */
839
+ membersCount?: number
840
+ }
841
+ /** Response from `create_team`. */
842
+ export interface CreateTeamResponse {
843
+ /** The newly created team. */
844
+ data?: CreateTeamData
845
+ /** Error message when the request did not succeed. */
846
+ error?: string
847
+ }
848
+ /** Response from `get_team`. */
849
+ export interface GetTeamResponse {
850
+ /** The team's full detail. */
851
+ data?: TeamDetail
852
+ /** Error message when the request did not succeed. */
853
+ error?: string
854
+ }
855
+ /** Inner data for `delete_team` responses. */
856
+ export interface DeleteTeamData {
857
+ /** Human-readable confirmation message. */
858
+ message?: string
859
+ }
860
+ /** Response from `delete_team`. */
861
+ export interface DeleteTeamResponse {
862
+ /** Deletion result payload. */
863
+ data?: DeleteTeamData
864
+ /** Error message when the request did not succeed. */
865
+ error?: string
866
+ }
867
+ /** A team's endpoint association. */
868
+ export interface TeamEndpoint {
869
+ /** Endpoint identifier. */
870
+ id: number
871
+ /** Endpoint subdomain. */
872
+ subdomain: string
873
+ /** Blockchain the endpoint serves. */
874
+ chain?: string
875
+ /** Network within the chain. */
876
+ network?: string
877
+ }
878
+ /** Response from `list_team_endpoints`. */
879
+ export interface ListTeamEndpointsResponse {
880
+ /** Endpoints accessible to the team. */
881
+ data: Array<TeamEndpoint>
882
+ /** Error message when the request did not succeed. */
883
+ error?: string
884
+ }
885
+ /** Parameters for `update_team_endpoints`. */
886
+ export interface UpdateTeamEndpointsRequest {
887
+ /** Endpoint ids to associate with the team; pass an empty array to remove all. */
888
+ endpointIds: Array<string>
889
+ }
890
+ /** Inner data for `update_team_endpoints` responses. */
891
+ export interface UpdateTeamEndpointsData {
892
+ /** `true` when the association update succeeded. */
893
+ success?: boolean
894
+ }
895
+ /** Response from `update_team_endpoints`. */
896
+ export interface UpdateTeamEndpointsResponse {
897
+ /** Update result. */
898
+ data?: UpdateTeamEndpointsData
899
+ /** Error message when the request did not succeed. */
900
+ error?: string
901
+ }
902
+ /** Parameters for `invite_team_member`. */
903
+ export interface InviteTeamMemberRequest {
904
+ /** Email address to invite. */
905
+ email: string
906
+ /** Full name (required for new users). */
907
+ fullName?: string
908
+ /** Team role (`admin`, `viewer`, or `billing`); required for new users. */
909
+ role?: string
910
+ }
911
+ /** Response from `invite_team_member`. */
912
+ export interface InviteTeamMemberResponse {
913
+ /** The invited user and their invitation status. */
914
+ data?: TeamUser
915
+ /** Error message when the request did not succeed. */
916
+ error?: string
917
+ }
918
+ /** Parameters for `remove_team_member`. */
919
+ export interface RemoveTeamMemberRequest {
920
+ /** When true, also delete the user entirely rather than just removing them from the team. */
921
+ destroyUser?: boolean
922
+ }
923
+ /** Shared message-shaped data wrapper for team operations. */
924
+ export interface TeamMessageData {
925
+ /** Human-readable confirmation message. */
926
+ message?: string
927
+ }
928
+ /** Response from `remove_team_member`. */
929
+ export interface RemoveTeamMemberResponse {
930
+ /** Operation result message. */
931
+ data?: TeamMessageData
932
+ /** Error message when the request did not succeed. */
933
+ error?: string
934
+ }
935
+ /** Response from `resend_team_invite`. */
936
+ export interface ResendTeamInviteResponse {
937
+ /** Operation result message. */
938
+ data?: TeamMessageData
939
+ /** Error message when the request did not succeed. */
940
+ error?: string
941
+ }
942
+ /**
943
+ * Parameters for the account usage methods (`get_usage`, `get_usage_by_*`).
944
+ * Both bounds are optional; omit for account-to-date totals.
945
+ */
946
+ export interface GetUsageRequest {
947
+ /** Start of the query window (Unix timestamp). */
948
+ startTime?: number
949
+ /** End of the query window (Unix timestamp). */
950
+ endTime?: number
951
+ }
952
+ /** Aggregate account usage for a time window. */
953
+ export interface UsageData {
954
+ /** Credits consumed during the window. */
955
+ creditsUsed: number
956
+ /** Credits still available, when the plan has a finite limit. */
957
+ creditsRemaining?: number
958
+ /** Plan's credit limit, when applicable. */
959
+ limit?: number
960
+ /** Credits consumed beyond the plan limit. */
961
+ overages?: number
962
+ /** Start of the queried window. */
963
+ startTime: number
964
+ /** End of the queried window. */
965
+ endTime: number
966
+ }
967
+ /** Response from `get_usage`. */
968
+ export interface GetUsageResponse {
969
+ /** Aggregate usage payload. */
970
+ data?: UsageData
971
+ /** Error message when the request did not succeed. */
972
+ error?: string
973
+ }
974
+ /** Per-endpoint usage row. */
975
+ export interface EndpointUsage {
976
+ /** Endpoint subdomain. */
977
+ name: string
978
+ /** Blockchain the endpoint serves. */
979
+ chain?: string
980
+ /** Network within the chain. */
981
+ network?: string
982
+ /** Operational status during the window. */
983
+ status?: string
984
+ /** Total credits consumed by this endpoint. */
985
+ creditsUsed: number
986
+ /** Human-readable label. */
987
+ label?: string
988
+ /** Per-method credit breakdown. */
989
+ methodsBreakdown: Array<MethodUsage>
990
+ /** Request count during the window. */
991
+ requests?: number
992
+ }
993
+ /** Per-method usage row. */
994
+ export interface MethodUsage {
995
+ /** RPC method name. */
996
+ methodName: string
997
+ /** Credits consumed by this method. */
998
+ creditsUsed: number
999
+ /** Whether the call required an archival node. */
1000
+ archive?: boolean
1001
+ /** Network the calls targeted. */
1002
+ network?: string
1003
+ /** Chain the calls targeted. */
1004
+ chain?: string
1005
+ }
1006
+ /** Per-chain usage row. */
1007
+ export interface ChainUsage {
1008
+ /** Chain name or slug. */
1009
+ name: string
1010
+ /** Credits consumed on the chain. */
1011
+ creditsUsed: number
1012
+ }
1013
+ /** Inner data for `get_usage_by_endpoint`. */
1014
+ export interface UsageByEndpointData {
1015
+ /** Per-endpoint rows. */
1016
+ endpoints: Array<EndpointUsage>
1017
+ /** Start of the queried window. */
1018
+ startTime?: number
1019
+ /** End of the queried window. */
1020
+ endTime?: number
1021
+ }
1022
+ /** Response from `get_usage_by_endpoint`. */
1023
+ export interface GetUsageByEndpointResponse {
1024
+ /** Per-endpoint usage payload. */
1025
+ data?: UsageByEndpointData
1026
+ /** Error message when the request did not succeed. */
1027
+ error?: string
1028
+ }
1029
+ /** Inner data for `get_usage_by_method`. */
1030
+ export interface UsageByMethodData {
1031
+ /** Per-method rows. */
1032
+ methods: Array<MethodUsage>
1033
+ /** Start of the queried window. */
1034
+ startTime?: number
1035
+ /** End of the queried window. */
1036
+ endTime?: number
1037
+ }
1038
+ /** Response from `get_usage_by_method`. */
1039
+ export interface GetUsageByMethodResponse {
1040
+ /** Per-method usage payload. */
1041
+ data?: UsageByMethodData
1042
+ /** Error message when the request did not succeed. */
1043
+ error?: string
1044
+ }
1045
+ /** Inner data for `get_usage_by_chain`. */
1046
+ export interface UsageByChainData {
1047
+ /** Per-chain rows. */
1048
+ chains: Array<ChainUsage>
1049
+ /** Start of the queried window. */
1050
+ startTime?: number
1051
+ /** End of the queried window. */
1052
+ endTime?: number
1053
+ }
1054
+ /** Response from `get_usage_by_chain`. */
1055
+ export interface GetUsageByChainResponse {
1056
+ /** Per-chain usage payload. */
1057
+ data?: UsageByChainData
1058
+ /** Error message when the request did not succeed. */
1059
+ error?: string
1060
+ }
1061
+ /** Per-tag usage row. */
1062
+ export interface TagUsage {
1063
+ /** Tag identifier. */
1064
+ tagId?: number
1065
+ /** Tag label. */
1066
+ label: string
1067
+ /** Credits consumed by endpoints with this tag. */
1068
+ creditsUsed: number
1069
+ /** Request count during the window. */
1070
+ requests: number
1071
+ }
1072
+ /** Inner data for `get_usage_by_tag`. */
1073
+ export interface UsageByTagData {
1074
+ /** Per-tag rows. */
1075
+ tags: Array<TagUsage>
1076
+ /** Start of the queried window. */
1077
+ startTime?: number
1078
+ /** End of the queried window. */
1079
+ endTime?: number
1080
+ }
1081
+ /** Response from `get_usage_by_tag`. */
1082
+ export interface GetUsageByTagResponse {
1083
+ /** Per-tag usage payload. */
1084
+ data?: UsageByTagData
1085
+ /** Error message when the request did not succeed. */
1086
+ error?: string
1087
+ }
1088
+ export interface HttpConfig {
1089
+ timeoutSecs?: number
1090
+ poolMaxIdlePerHost?: number
1091
+ }
1092
+ export interface AdminConfig {
1093
+ baseUrl?: string
1094
+ }
1095
+ export interface StreamsConfig {
1096
+ baseUrl?: string
1097
+ }
1098
+ export interface WebhooksConfig {
1099
+ baseUrl?: string
1100
+ }
1101
+ export interface KvStoreConfig {
1102
+ baseUrl?: string
1103
+ }
1104
+ export interface SdkFullConfig {
1105
+ apiKey: string
1106
+ http?: HttpConfig
1107
+ admin?: AdminConfig
1108
+ streams?: StreamsConfig
1109
+ webhooks?: WebhooksConfig
1110
+ kvstore?: KvStoreConfig
1111
+ }
1112
+ /** Parameters for `create_set`. */
1113
+ export interface CreateSetParams {
1114
+ /** Unique key identifying the set. */
1115
+ key: string
1116
+ /** String value stored under the key. */
1117
+ value: string
1118
+ }
1119
+ /** Parameters for `get_sets`. */
1120
+ export interface GetSetsParams {
1121
+ /** Maximum number of entries returned. */
1122
+ limit?: number
1123
+ /** Cursor returned by a previous page; pass to fetch the next page. */
1124
+ cursor?: string
1125
+ }
1126
+ /** Parameters for `bulk_sets`. Either or both fields may be supplied. */
1127
+ export interface BulkSetsParams {
1128
+ /** Key/value pairs to add. */
1129
+ addSets?: Record<string, string>
1130
+ /** Keys to delete. */
1131
+ deleteSets?: Array<string>
1132
+ }
1133
+ /** Parameters for `create_list`. */
1134
+ export interface CreateListParams {
1135
+ /** Unique key identifying the list. */
1136
+ key: string
1137
+ /** Initial items inserted into the list. */
1138
+ items: Array<string>
1139
+ }
1140
+ /** Parameters for `get_lists`. */
1141
+ export interface GetListsParams {
1142
+ /** Maximum number of list keys returned. */
1143
+ limit?: number
1144
+ /** Cursor returned by a previous page; pass to fetch the next page. */
1145
+ cursor?: string
1146
+ }
1147
+ /** Parameters for `get_list`. */
1148
+ export interface GetListParams {
1149
+ /** Maximum number of items returned. */
1150
+ limit?: number
1151
+ /** Cursor returned by a previous page; pass to fetch the next page. */
1152
+ cursor?: string
1153
+ }
1154
+ /** Parameters for `update_list`. Either or both fields may be supplied. */
1155
+ export interface UpdateListParams {
1156
+ /** Items to add to the list. */
1157
+ addItems?: Array<string>
1158
+ /** Items to remove from the list. */
1159
+ removeItems?: Array<string>
1160
+ }
1161
+ /** Parameters for `add_list_item`. */
1162
+ export interface AddListItemParams {
1163
+ /** Item to append to the list. */
1164
+ item: string
1165
+ }
1166
+ /** A single key/value entry returned by `get_sets`. */
1167
+ export interface KvSetEntry {
1168
+ /** Key identifying the set. */
1169
+ key: string
1170
+ /** Stored string value. */
1171
+ value: string
1172
+ }
1173
+ /** Response from `get_sets`. */
1174
+ export interface GetSetsResponse {
1175
+ /** Key/value entries on the current page. */
1176
+ data: Array<KvSetEntry>
1177
+ /** Cursor for the next page; empty string when there are no more pages. */
1178
+ cursor: string
1179
+ }
1180
+ /** Response from `get_set`. */
1181
+ export interface GetSetResponse {
1182
+ /** Stored string value. */
1183
+ value: string
1184
+ }
1185
+ /** Inner data for `get_lists` responses. */
1186
+ export interface GetListsData {
1187
+ /** List keys on the current page. */
1188
+ keys: Array<string>
1189
+ }
1190
+ /** Response from `get_lists`. */
1191
+ export interface GetListsResponse {
1192
+ /** List keys on the current page. */
1193
+ data: GetListsData
1194
+ /** Cursor for the next page; empty string when there are no more pages. */
1195
+ cursor: string
1196
+ }
1197
+ /** Inner data for `get_list` responses. */
1198
+ export interface GetListData {
1199
+ /** Items in the list on the current page. */
1200
+ items: Array<string>
1201
+ }
1202
+ /** Response from `get_list`. */
1203
+ export interface GetListResponse {
1204
+ /** Items for the list on the current page. */
1205
+ data: GetListData
1206
+ /** Cursor for the next page; empty string when there are no more pages. */
1207
+ cursor: string
1208
+ }
1209
+ /** Response from `list_contains_item`. */
1210
+ export interface ListContainsItemResponse {
1211
+ /** `true` when the item is present in the list. */
1212
+ exists: boolean
1213
+ }
1214
+ /** Geographic region where a stream runs. */
1215
+ export const enum StreamRegion {
1216
+ UsaEast = 'UsaEast',
1217
+ EuropeCentral = 'EuropeCentral',
1218
+ AsiaEast = 'AsiaEast'
1219
+ }
1220
+ /** Type of on-chain data a stream delivers (blocks, transactions, logs, etc.). */
1221
+ export const enum StreamDataset {
1222
+ Block = 'Block',
1223
+ BlockWithReceipts = 'BlockWithReceipts',
1224
+ Transactions = 'Transactions',
1225
+ Logs = 'Logs',
1226
+ Receipts = 'Receipts',
1227
+ TraceBlocks = 'TraceBlocks',
1228
+ DebugTraces = 'DebugTraces',
1229
+ BlockWithReceiptsDebugTrace = 'BlockWithReceiptsDebugTrace',
1230
+ BlockWithReceiptsTraceBlock = 'BlockWithReceiptsTraceBlock',
1231
+ BlobSidecars = 'BlobSidecars',
1232
+ ProgramsWithLogs = 'ProgramsWithLogs',
1233
+ Ledger = 'Ledger',
1234
+ Events = 'Events',
1235
+ Orders = 'Orders',
1236
+ Trades = 'Trades',
1237
+ BookUpdates = 'BookUpdates',
1238
+ Twap = 'Twap',
1239
+ WriterActions = 'WriterActions'
1240
+ }
1241
+ /** Destination kind a stream delivers to (webhook, S3, Postgres, etc.). */
1242
+ export const enum StreamDestination {
1243
+ Webhook = 'Webhook',
1244
+ S3 = 'S3',
1245
+ Azure = 'Azure',
1246
+ Postgres = 'Postgres',
1247
+ Clickhouse = 'Clickhouse',
1248
+ Snowflake = 'Snowflake',
1249
+ Mysql = 'Mysql',
1250
+ Mongo = 'Mongo',
1251
+ Kafka = 'Kafka',
1252
+ Redis = 'Redis'
1253
+ }
1254
+ /** Language a stream's filter function is written in. */
1255
+ export const enum FilterLanguage {
1256
+ Javascript = 'Javascript',
1257
+ Go = 'Go',
1258
+ Wasm = 'Wasm'
1259
+ }
1260
+ /** Where stream metadata is included in delivered payloads. */
1261
+ export const enum StreamMetadataLocation {
1262
+ Body = 'Body',
1263
+ Header = 'Header',
1264
+ None = 'None'
1265
+ }
1266
+ /** Billing product type the stream is associated with. */
1267
+ export const enum ProductType {
1268
+ Stream = 'Stream',
1269
+ Webhook = 'Webhook'
1270
+ }
1271
+ /** Operational state of a stream. */
1272
+ export const enum StreamStatus {
1273
+ Active = 'Active',
1274
+ Paused = 'Paused',
1275
+ Terminated = 'Terminated',
1276
+ Completed = 'Completed',
1277
+ Blocked = 'Blocked'
1278
+ }
1279
+ /** Configuration for delivering stream batches to an HTTP webhook endpoint. */
1280
+ export interface WebhookAttributes {
1281
+ /** Destination URL that receives batched stream payloads. */
1282
+ url: string
1283
+ /** Maximum number of retry attempts for a failed delivery. */
1284
+ maxRetry: number
1285
+ /** Seconds to wait between retry attempts. */
1286
+ retryIntervalSec: number
1287
+ /** Timeout in seconds for each POST request. */
1288
+ postTimeoutSec: number
1289
+ /** Optional token included with each request so the receiver can verify authenticity. */
1290
+ securityToken?: string
1291
+ /** Compression applied to the payload (e.g. `none`, `gzip`). */
1292
+ compression: string
1293
+ }
1294
+ /** Configuration for delivering stream batches to an S3-compatible object store. */
1295
+ export interface S3Attributes {
1296
+ /** S3 service endpoint (e.g. `s3.amazonaws.com`). */
1297
+ endpoint: string
1298
+ /** Access key used to authenticate with the S3 endpoint. */
1299
+ accessKey: string
1300
+ /** Secret key used to authenticate with the S3 endpoint. */
1301
+ secretKey: string
1302
+ /** Target bucket name. */
1303
+ bucket: string
1304
+ /** Key prefix prepended to each written object. */
1305
+ objectPrefix: string
1306
+ /** Compression applied to written objects (e.g. `none`, `gzip`). */
1307
+ compression: string
1308
+ /** File format/extension for written objects (e.g. `.json`). */
1309
+ fileType: string
1310
+ /** Maximum number of retry attempts for a failed write. */
1311
+ maxRetry: number
1312
+ /** Seconds to wait between retry attempts. */
1313
+ retryIntervalSec: number
1314
+ /** Whether to use TLS when connecting to the endpoint. */
1315
+ useSsl?: boolean
1316
+ }
1317
+ /** Configuration for delivering stream batches to Azure Blob Storage. */
1318
+ export interface AzureAttributes {
1319
+ /** Azure storage account name. */
1320
+ storageAccount: string
1321
+ /** SAS token used to authorize writes. */
1322
+ sasToken: string
1323
+ /** Container that receives written blobs. */
1324
+ container: string
1325
+ /** Compression applied to written blobs (e.g. `none`, `gzip`). */
1326
+ compression: string
1327
+ /** File format/extension for written blobs (e.g. `.json`). */
1328
+ fileType: string
1329
+ /** Maximum number of retry attempts for a failed write. */
1330
+ maxRetry: number
1331
+ /** Seconds to wait between retry attempts. */
1332
+ retryIntervalSec: number
1333
+ /** Optional name prefix prepended to each written blob. */
1334
+ blobPrefix?: string
1335
+ }
1336
+ /** Configuration for delivering stream batches to a PostgreSQL database. */
1337
+ export interface PostgresAttributes {
1338
+ /** Database host. */
1339
+ host: string
1340
+ /** Database port. */
1341
+ port: number
1342
+ /** Database name. */
1343
+ database: string
1344
+ /** Username used to authenticate. */
1345
+ username: string
1346
+ /** Password used to authenticate. */
1347
+ password: string
1348
+ /** Destination table for inserted rows. */
1349
+ tableName: string
1350
+ /** Postgres SSL mode (e.g. `disable`, `require`, `verify-full`). */
1351
+ sslmode: string
1352
+ /** Maximum number of retry attempts for a failed write. */
1353
+ maxRetry: number
1354
+ /** Seconds to wait between retry attempts. */
1355
+ retryIntervalSec: number
1356
+ }
1357
+ /** Configuration for delivering stream batches to a MySQL database. */
1358
+ export interface MysqlAttributes {
1359
+ /** Database host. */
1360
+ host: string
1361
+ /** Database port. */
1362
+ port: number
1363
+ /** Database name. */
1364
+ database: string
1365
+ /** Username used to authenticate. */
1366
+ username: string
1367
+ /** Password used to authenticate. */
1368
+ password: string
1369
+ /** Destination table for inserted rows. */
1370
+ tableName: string
1371
+ /** Maximum number of retry attempts for a failed write. */
1372
+ maxRetry: number
1373
+ /** Seconds to wait between retry attempts. */
1374
+ retryIntervalSec: number
1375
+ }
1376
+ /** Configuration for delivering stream batches to a MongoDB database. */
1377
+ export interface MongoAttributes {
1378
+ /** Database host (connection string or hostname). */
1379
+ host: string
1380
+ /** Database name. */
1381
+ database: string
1382
+ /** Username used to authenticate. */
1383
+ username: string
1384
+ /** Password used to authenticate. */
1385
+ password: string
1386
+ /** Destination collection for inserted documents. */
1387
+ collectionName: string
1388
+ /** Maximum number of retry attempts for a failed write. */
1389
+ maxRetry: number
1390
+ /** Seconds to wait between retry attempts. */
1391
+ retryIntervalSec: number
1392
+ }
1393
+ /** Configuration for delivering stream batches to a ClickHouse cluster. */
1394
+ export interface ClickhouseAttributes {
1395
+ /** Comma-separated list of ClickHouse hosts. */
1396
+ hosts: string
1397
+ /** Database name. */
1398
+ database: string
1399
+ /** Username used to authenticate. */
1400
+ username: string
1401
+ /** Password used to authenticate. */
1402
+ password: string
1403
+ /** Destination table for inserted rows. */
1404
+ tableName: string
1405
+ /** Default table engine options applied when a table is created. */
1406
+ defaultTableEngineOpts: string
1407
+ /** Default index granularity for created tables. */
1408
+ defaultGranularity: number
1409
+ /** Default compression codec for created tables. */
1410
+ defaultCompression: string
1411
+ /** Default secondary index type for created tables. */
1412
+ defaultIndexType: string
1413
+ /** Maximum number of retry attempts for a failed write. */
1414
+ maxRetry: number
1415
+ /** Seconds to wait between retry attempts. */
1416
+ retryIntervalSec: number
1417
+ /** Disable datetime precision for older ClickHouse versions that don't support it. */
1418
+ disableDatetimePrecision?: boolean
1419
+ /** Enable when the target ClickHouse server does not support `RENAME COLUMN`. */
1420
+ dontSupportRenameColumn?: boolean
1421
+ /** Enable when the target ClickHouse server does not support empty default values. */
1422
+ dontSupportEmptyDefaultValue?: boolean
1423
+ /** Skip writing version metadata during initialization. */
1424
+ skipInitializeWithVersion?: boolean
1425
+ }
1426
+ /** Configuration for delivering stream batches to a Snowflake data warehouse. */
1427
+ export interface SnowflakeAttributes {
1428
+ /** Snowflake account identifier. */
1429
+ account: string
1430
+ /** Snowflake host. */
1431
+ host: string
1432
+ /** Snowflake port. */
1433
+ port: number
1434
+ /** Connection protocol (e.g. `https`). */
1435
+ protocol: string
1436
+ /** Database name. */
1437
+ database: string
1438
+ /** Schema within the database. */
1439
+ schema: string
1440
+ /** Warehouse used to run inserts. */
1441
+ warehouse: string
1442
+ /** Username used to authenticate. */
1443
+ username: string
1444
+ /** Password used to authenticate. */
1445
+ password: string
1446
+ /** Maximum number of retry attempts for a failed write. */
1447
+ maxRetry: number
1448
+ /** Seconds to wait between retry attempts. */
1449
+ retryIntervalSec: number
1450
+ /** Optional destination table for inserted rows. */
1451
+ tableName?: string
1452
+ }
1453
+ /** Configuration for delivering stream batches to a Kafka topic. */
1454
+ export interface KafkaAttributes {
1455
+ /** Comma-separated list of Kafka broker addresses (host:port). */
1456
+ bootstrapServers: string
1457
+ /** Destination topic. */
1458
+ topicName: string
1459
+ /** Compression codec applied to produced messages (e.g. `none`, `gzip`). */
1460
+ compressionType: string
1461
+ /** Maximum number of messages grouped per produce request. */
1462
+ batchSize: number
1463
+ /** Milliseconds the producer waits to batch additional messages. */
1464
+ lingerMs: number
1465
+ /** Maximum request size in bytes. */
1466
+ maxRequestSize: number
1467
+ /** Request timeout in seconds. */
1468
+ timeoutSec: number
1469
+ /** Maximum number of retry attempts for a failed produce. */
1470
+ maxRetry: number
1471
+ /** Seconds to wait between retry attempts. */
1472
+ retryIntervalSec: number
1473
+ /** Optional SASL username. */
1474
+ username?: string
1475
+ /** Optional SASL password. */
1476
+ password?: string
1477
+ /** Optional security protocol (e.g. `SASL_SSL`). */
1478
+ protocol?: string
1479
+ /** Optional SASL mechanism (e.g. `PLAIN`, `SCRAM-SHA-256`). */
1480
+ mechanisms?: string
1481
+ }
1482
+ /** Configuration for delivering stream batches to a Redis instance. */
1483
+ export interface RedisAttributes {
1484
+ /** Redis host. */
1485
+ host: string
1486
+ /** Redis port. */
1487
+ port: number
1488
+ /** Redis logical database index. */
1489
+ database: number
1490
+ /** Username used to authenticate. */
1491
+ username: string
1492
+ /** Password used to authenticate. */
1493
+ password: string
1494
+ /** Redis key that receives written payloads. */
1495
+ keyName: string
1496
+ /** Maximum number of retry attempts for a failed write. */
1497
+ maxRetry: number
1498
+ /** Seconds to wait between retry attempts. */
1499
+ retryIntervalSec: number
1500
+ /** Whether to connect over TLS. */
1501
+ tls?: boolean
1502
+ }
1503
+ /**
1504
+ * Links a stream's filter to an address book so JSON paths resolve against its
1505
+ * managed address set.
1506
+ */
1507
+ export interface AddressBookConfig {
1508
+ /** Identifier of the address book to use. */
1509
+ addressBookId: string
1510
+ /** Optional JSON path that resolves to an object whose fields are matched against the book. */
1511
+ objectsFilterPath?: string
1512
+ /** JSON paths whose resolved values are matched against the book's addresses. */
1513
+ elementsFilterPaths: Array<string>
1514
+ }
1515
+ /** Pagination metadata returned alongside a paginated result set. */
1516
+ export interface PageInfo {
1517
+ /** Page size used for this response. */
1518
+ limit: number
1519
+ /** Starting index of this page within the full result set. */
1520
+ offset: number
1521
+ /** Total number of items matching the query across all pages. */
1522
+ total: number
1523
+ }
1524
+ /** Parameters for `list_streams`. */
1525
+ export interface ListStreamsParams {
1526
+ /** Filter results by stream type. */
1527
+ streamType?: string
1528
+ /** Starting index into the result set; defaults to 0. */
1529
+ offset?: number
1530
+ /** Maximum number of streams returned. */
1531
+ limit?: number
1532
+ /** Field to sort results by. */
1533
+ orderBy?: string
1534
+ /** Sort direction (`asc` or `desc`). */
1535
+ orderDirection?: string
1536
+ }
1537
+ /** Parameters for `test_filter`. */
1538
+ export interface TestFilterParams {
1539
+ /** Blockchain network to run the test against (e.g. `ethereum-mainnet`). */
1540
+ network: string
1541
+ /** Dataset the filter operates on. */
1542
+ dataset: StreamDataset
1543
+ /** Specific block number to feed into the filter for the test. */
1544
+ block: string
1545
+ /** Base64-encoded filter function to evaluate. */
1546
+ filterFunction?: string
1547
+ /** Language the filter function is written in. */
1548
+ filterLanguage?: FilterLanguage
1549
+ /** Address book linked to the filter, if any. */
1550
+ addressBookConfig?: AddressBookConfig
1551
+ }
1552
+ /** Result of a `test_filter` call. */
1553
+ export interface TestFilterResponse {
1554
+ /** Filter output as a JSON string. Shape depends on the dataset and the user's filter function. */
1555
+ result: string
1556
+ /** Log lines emitted by the filter function during evaluation. */
1557
+ logs: Array<string>
1558
+ }
1559
+ /** Result of `get_enabled_count`. */
1560
+ export interface EnabledCountResponse {
1561
+ /** Total count of currently enabled streams. */
1562
+ total: number
1563
+ }
1564
+ /** Identifier of a predefined webhook filter template. */
1565
+ export const enum WebhookTemplateId {
1566
+ EvmWalletFilter = 'EvmWalletFilter',
1567
+ EvmContractEvents = 'EvmContractEvents',
1568
+ EvmAbiFilter = 'EvmAbiFilter',
1569
+ SolanaWalletFilter = 'SolanaWalletFilter',
1570
+ BitcoinWalletFilter = 'BitcoinWalletFilter',
1571
+ XrplWalletFilter = 'XrplWalletFilter',
1572
+ HyperliquidWalletEventsFilter = 'HyperliquidWalletEventsFilter',
1573
+ StellarWalletTransactionsSourceAccountFilter = 'StellarWalletTransactionsSourceAccountFilter'
1574
+ }
1575
+ /** Position a webhook begins (or resumes) delivering from when activated. */
1576
+ export const enum WebhookStartFrom {
1577
+ /** Resume from the last-delivered block. */
1578
+ Last = 'Last',
1579
+ /** Start from the newest available block. */
1580
+ Latest = 'Latest'
1581
+ }
1582
+ /**
1583
+ * Template arguments for an EVM wallet filter: matches activity for a list of
1584
+ * wallet addresses.
1585
+ */
1586
+ export interface EvmWalletFilterTemplate {
1587
+ /** Wallet addresses to match against. */
1588
+ wallets: Array<string>
1589
+ }
1590
+ /**
1591
+ * Template arguments for filtering EVM contract events, optionally scoped to
1592
+ * a specific set of event topic hashes.
1593
+ */
1594
+ export interface EvmContractEventsTemplate {
1595
+ /** Contract addresses to watch for events. */
1596
+ contracts: Array<string>
1597
+ /** Optional list of event topic hashes to restrict the filter to specific events. */
1598
+ eventHashes?: Array<string>
1599
+ }
1600
+ /**
1601
+ * Template arguments for an EVM ABI filter: decodes and filters events for a
1602
+ * set of contracts using a provided ABI.
1603
+ */
1604
+ export interface EvmAbiFilterTemplate {
1605
+ /** JSON-encoded contract ABI used to decode event data. */
1606
+ abi: string
1607
+ /** Contract addresses to watch for events. */
1608
+ contracts: Array<string>
1609
+ }
1610
+ /**
1611
+ * Template arguments for a Solana wallet filter: matches activity for a list
1612
+ * of Solana account addresses.
1613
+ */
1614
+ export interface SolanaWalletFilterTemplate {
1615
+ /** Solana account addresses to match against. */
1616
+ accounts: Array<string>
1617
+ }
1618
+ /** Template arguments for a Bitcoin wallet filter. */
1619
+ export interface BitcoinWalletFilterTemplate {
1620
+ /** Bitcoin wallet addresses to match against. */
1621
+ wallets: Array<string>
1622
+ }
1623
+ /** Template arguments for an XRPL wallet filter. */
1624
+ export interface XrplWalletFilterTemplate {
1625
+ /** XRPL wallet addresses to match against. */
1626
+ wallets: Array<string>
1627
+ }
1628
+ /** Template arguments for a Hyperliquid wallet-events filter. */
1629
+ export interface HyperliquidWalletEventsFilterTemplate {
1630
+ /** Hyperliquid wallet addresses to match against. */
1631
+ wallets: Array<string>
1632
+ }
1633
+ /**
1634
+ * Template arguments for a Stellar wallet-transactions filter, matching
1635
+ * transactions where the given wallets are the source account.
1636
+ */
1637
+ export interface StellarWalletTransactionsFilterTemplate {
1638
+ /** Stellar wallet addresses to match against. */
1639
+ wallets: Array<string>
1640
+ }
1641
+ /**
1642
+ * Template identifier paired with its arguments, consumed by
1643
+ * `create_webhook_from_template` and `update_webhook_template`. Construct via
1644
+ * the typed static factory methods (one per template); do not set fields
1645
+ * directly.
1646
+ */
1647
+ export interface TemplateArgs {
1648
+ /** Which filter template these arguments correspond to. */
1649
+ templateId: WebhookTemplateId
1650
+ /** Template arguments, pre-serialized as a JSON string. */
1651
+ value: string
1652
+ }
1653
+ /** Destination configuration for a webhook. */
1654
+ export interface WebhookDestinationAttributes {
1655
+ /** Target URL that receives webhook payloads. */
1656
+ url: string
1657
+ /** Optional token sent with each payload so the receiver can verify authenticity; generated automatically when omitted. */
1658
+ securityToken?: string
1659
+ /** Optional payload compression (`gzip` or `none`). */
1660
+ compression?: string
1661
+ }
1662
+ /** Parameters for `list_webhooks`. */
1663
+ export interface GetWebhooksParams {
1664
+ /** Maximum number of webhooks returned. */
1665
+ limit?: number
1666
+ /** Starting index into the result set. */
1667
+ offset?: number
1668
+ }
1669
+ /**
1670
+ * Parameters for `update_webhook`. All fields are optional; only set fields
1671
+ * are modified.
1672
+ */
1673
+ export interface UpdateWebhookParams {
1674
+ /** New human-readable name. */
1675
+ name?: string
1676
+ /** New notification email. */
1677
+ notificationEmail?: string
1678
+ /** New destination configuration. */
1679
+ destinationAttributes?: WebhookDestinationAttributes
1680
+ }
1681
+ /** Parameters for `activate_webhook`. */
1682
+ export interface ActivateWebhookParams {
1683
+ /** Position to begin (or resume) delivery from. */
1684
+ startFrom: WebhookStartFrom
1685
+ }
1686
+ /** Parameters for `create_webhook_from_template`. */
1687
+ export interface CreateWebhookFromTemplateParams {
1688
+ /** Human-readable label for the webhook. */
1689
+ name: string
1690
+ /** Blockchain network to watch (e.g. `ethereum-mainnet`). */
1691
+ network: string
1692
+ /** Optional email that receives alerts if the webhook terminates. */
1693
+ notificationEmail?: string
1694
+ /** Destination configuration for delivered payloads. */
1695
+ destinationAttributes: WebhookDestinationAttributes
1696
+ /** Filter template identifier and its arguments. */
1697
+ templateArgs: TemplateArgs
1698
+ }
1699
+ /** Parameters for `update_webhook_template`. */
1700
+ export interface UpdateWebhookTemplateParams {
1701
+ /** New human-readable name. */
1702
+ name?: string
1703
+ /** New notification email. */
1704
+ notificationEmail?: string
1705
+ /** New destination configuration. */
1706
+ destinationAttributes?: WebhookDestinationAttributes
1707
+ /** New template identifier and arguments. */
1708
+ templateArgs: TemplateArgs
1709
+ }
1710
+ /** A webhook's full configuration and current state. */
1711
+ export interface Webhook {
1712
+ /** Unique webhook identifier. */
1713
+ id: string
1714
+ /** Human-readable webhook name. */
1715
+ name: string
1716
+ /** Current operational state (e.g. `active`, `paused`). */
1717
+ status: string
1718
+ /** Blockchain network the webhook is watching. */
1719
+ network: string
1720
+ /** Timestamp when the webhook was created. */
1721
+ createdAt: string
1722
+ /** Timestamp of the most recent modification. */
1723
+ updatedAt?: string
1724
+ /** Template identifier used to create the webhook, if any. */
1725
+ templateId?: string
1726
+ /** Email address notified of webhook terminations or failures. */
1727
+ notificationEmail?: string
1728
+ /** Destination-specific configuration as a JSON string. */
1729
+ destinationAttributes?: string
1730
+ }
1731
+ /** Response from `list_webhooks`. */
1732
+ export interface ListWebhooksResponse {
1733
+ /** Webhooks on the current page. */
1734
+ data: Array<Webhook>
1735
+ }
1736
+ /** Response from `get_enabled_count` for webhooks. */
1737
+ export interface WebhookEnabledCountResponse {
1738
+ /** Total count of enabled webhooks on the account. */
1739
+ total: number
1740
+ }
1741
+ export interface CreateStreamParamsNode {
1742
+ name: string
1743
+ region: StreamRegion
1744
+ network: string
1745
+ dataset: StreamDataset
1746
+ startRange: number
1747
+ endRange: number
1748
+ destinationAttributes: any
1749
+ plan: string
1750
+ thresholdFetchBuffer: number
1751
+ datasetBatchSize?: number
1752
+ maxBatchSize?: number
1753
+ maxBufferRangeSize?: number
1754
+ maxBufferProcessingWorkers?: number
1755
+ keepDistanceFromTip?: number
1756
+ filterFunction?: string
1757
+ filterLanguage?: FilterLanguage
1758
+ addressBookConfig?: AddressBookConfig
1759
+ includeStreamMetadata?: StreamMetadataLocation
1760
+ productType?: ProductType
1761
+ status?: StreamStatus
1762
+ notificationEmail?: string
1763
+ chargeMinCap?: number
1764
+ fixBlockReorgs?: number
1765
+ elasticBatchEnabled?: boolean
1766
+ extraDestinations?: Array<any>
1767
+ }
1768
+ export interface UpdateStreamParamsNode {
1769
+ name?: string
1770
+ region?: StreamRegion
1771
+ network?: string
1772
+ dataset?: StreamDataset
1773
+ startRange?: number
1774
+ endRange?: number
1775
+ destinationAttributes?: any
1776
+ plan?: string
1777
+ thresholdFetchBuffer?: number
1778
+ datasetBatchSize?: number
1779
+ maxBatchSize?: number
1780
+ maxBufferRangeSize?: number
1781
+ maxBufferProcessingWorkers?: number
1782
+ keepDistanceFromTip?: number
1783
+ filterFunction?: string
1784
+ filterLanguage?: FilterLanguage
1785
+ addressBookConfig?: AddressBookConfig
1786
+ includeStreamMetadata?: StreamMetadataLocation
1787
+ notificationEmail?: string
1788
+ chargeMinCap?: number
1789
+ fixBlockReorgs?: number
1790
+ elasticBatchEnabled?: boolean
1791
+ status?: StreamStatus
1792
+ memo?: string
1793
+ extraDestinations?: Array<any>
1794
+ }
1795
+ export interface StreamNode {
1796
+ id: string
1797
+ name: string
1798
+ status: string
1799
+ createdAt: string
1800
+ updatedAt: string
1801
+ sequence: number
1802
+ network: string
1803
+ dataset: string
1804
+ region: string
1805
+ startRange: number
1806
+ endRange: number
1807
+ plan?: string
1808
+ thresholdFetchBuffer?: number
1809
+ datasetBatchSize?: number
1810
+ maxBatchSize?: number
1811
+ maxBufferRangeSize?: number
1812
+ maxBufferProcessingWorkers?: number
1813
+ keepDistanceFromTip?: number
1814
+ filterFunction?: string
1815
+ filterLanguage?: string
1816
+ includeStreamMetadata?: string
1817
+ productType?: string
1818
+ notificationEmail?: string
1819
+ fixBlockReorgs?: number
1820
+ currentHash?: string
1821
+ destinationAttributes?: any
1822
+ elasticBatchEnabled?: boolean
1823
+ qnAccountId?: string
1824
+ chargeMinCap?: number
1825
+ memo?: string
1826
+ addressBookConfig?: AddressBookConfig
1827
+ extraDestinations?: Array<any>
1828
+ }
1829
+ export interface ListStreamsResponseNode {
1830
+ data: Array<StreamNode>
1831
+ pageInfo: PageInfo
1832
+ }
1833
+ export declare class QuickNodeSdk {
1834
+ /** Creates a new SDK instance from an explicit configuration. */
1835
+ constructor(config: SdkFullConfig)
1836
+ /** Returns the admin sub-client. */
1837
+ get admin(): AdminApiClient
1838
+ /** Returns the streams sub-client. */
1839
+ get streams(): StreamsApiClient
1840
+ /** Returns the webhooks sub-client. */
1841
+ get webhooks(): WebhooksApiClient
1842
+ /** Returns the kvstore sub-client. */
1843
+ get kvstore(): KvStoreApiClient
1844
+ /** Creates a new SDK instance using configuration from environment variables. */
1845
+ static fromEnv(): QuickNodeSdk
1846
+ }
1847
+ export declare class AdminApiClient {
1848
+ /**
1849
+ * Returns a paginated list of endpoints on the account. Supports searching
1850
+ * by subdomain or label, filtering by networks, statuses, labels, and
1851
+ * tags, and sorting. The response includes endpoint metadata (id, label,
1852
+ * status, chain/network, HTTP and WebSocket URLs, tags) plus
1853
+ * total/limit/offset pagination info.
1854
+ */
1855
+ getEndpoints(params?: GetEndpointsRequest | undefined | null): Promise<GetEndpointsResponse>
1856
+ /**
1857
+ * Creates a new endpoint for a given blockchain and network. Requires
1858
+ * `chain` and `network`; returns the new endpoint with its HTTP and
1859
+ * WebSocket URLs, default security configuration (tokens, JWTs, IPs,
1860
+ * domain masks, CORS), and rate limits.
1861
+ */
1862
+ createEndpoint(params?: CreateEndpointRequest | undefined | null): Promise<CreateEndpointResponse>
1863
+ /** Returns details for a specific endpoint by ID. */
1864
+ showEndpoint(id: string): Promise<ShowEndpointResponse>
1865
+ /**
1866
+ * Updates editable fields on an endpoint (e.g. its label). Returns a
1867
+ * boolean indicating whether the update succeeded.
1868
+ */
1869
+ updateEndpoint(id: string, params?: UpdateEndpointRequest | undefined | null): Promise<void>
1870
+ /**
1871
+ * Archives an endpoint. The API uses `DELETE` but the effect is archival
1872
+ * rather than permanent deletion.
1873
+ */
1874
+ archiveEndpoint(id: string): Promise<void>
1875
+ /**
1876
+ * Pauses or unpauses an endpoint by setting its status to `active` or
1877
+ * `paused`.
1878
+ */
1879
+ updateEndpointStatus(id: string, params: UpdateEndpointStatusRequest): Promise<UpdateEndpointStatusResponse>
1880
+ /**
1881
+ * Creates a new tag on a specific endpoint from a label. Returns the new
1882
+ * tag with its id, account info, and timestamps.
1883
+ */
1884
+ createTag(id: string, params?: CreateTagRequest | undefined | null): Promise<void>
1885
+ /** Removes a tag from a specific endpoint by tag id. */
1886
+ deleteTag(id: string, tagId: string): Promise<void>
1887
+ /**
1888
+ * Returns account RPC usage totals for an optional time range. The
1889
+ * response includes `credits_used`, `credits_remaining`, the account
1890
+ * `limit`, any `overages`, and the queried time window.
1891
+ */
1892
+ getUsage(params?: GetUsageRequest | undefined | null): Promise<GetUsageResponse>
1893
+ /**
1894
+ * Returns RPC usage broken down per endpoint over an optional time range.
1895
+ * Each entry includes endpoint metadata, aggregate `credits_used` and
1896
+ * `requests`, and a per-method credit breakdown.
1897
+ */
1898
+ getUsageByEndpoint(params?: GetUsageRequest | undefined | null): Promise<GetUsageByEndpointResponse>
1899
+ /**
1900
+ * Returns RPC usage grouped by method over an optional time range. Each
1901
+ * entry includes the method name, credits consumed, and archival status.
1902
+ * Ranges longer than one week are rounded to midnight UTC.
1903
+ */
1904
+ getUsageByMethod(params?: GetUsageRequest | undefined | null): Promise<GetUsageByMethodResponse>
1905
+ /**
1906
+ * Returns RPC usage grouped by chain over an optional time range. Each
1907
+ * entry includes the chain and its credit consumption.
1908
+ */
1909
+ getUsageByChain(params?: GetUsageRequest | undefined | null): Promise<GetUsageByChainResponse>
1910
+ /**
1911
+ * Returns activity logs for a specific endpoint. Supports filtering by
1912
+ * timestamp range and pagination. Each log entry includes timestamp,
1913
+ * HTTP method, network, status code, and error data; full request/response
1914
+ * bodies can be included when requested.
1915
+ */
1916
+ getEndpointLogs(id: string, params: GetEndpointLogsRequest): Promise<GetEndpointLogsResponse>
1917
+ /**
1918
+ * Returns the raw request and response payloads for a specific log entry
1919
+ * on an endpoint, identified by request UUID. Both payloads are
1920
+ * JSON-encoded strings and are truncated at 2KB.
1921
+ */
1922
+ getLogDetails(id: string, requestId: string): Promise<GetLogDetailsResponse>
1923
+ /**
1924
+ * Returns the security options for an endpoint — an object of security
1925
+ * feature toggles with their current enabled/disabled status.
1926
+ */
1927
+ getSecurityOptions(id: string): Promise<GetSecurityOptionsResponse>
1928
+ /**
1929
+ * Updates which security features are enabled on an endpoint. Each option
1930
+ * in the submitted object can be toggled `enabled` or `disabled` —
1931
+ * examples include token auth, JWT validation, IP restrictions, CORS,
1932
+ * HSTS, referrer validation, and domain masking.
1933
+ */
1934
+ updateSecurityOptions(id: string, params: UpdateSecurityOptionsRequest): Promise<UpdateSecurityOptionsResponse>
1935
+ /** Generates a new authentication token for an endpoint. */
1936
+ createToken(id: string): Promise<void>
1937
+ /** Revokes a token on an endpoint by token id. */
1938
+ deleteToken(id: string, tokenId: string): Promise<DeleteBoolResponse>
1939
+ /**
1940
+ * Adds a referrer to an endpoint's security settings, specifying which
1941
+ * external URL or domain is permitted to call the endpoint.
1942
+ */
1943
+ createReferrer(id: string, params?: CreateReferrerRequest | undefined | null): Promise<void>
1944
+ /** Removes a referrer from an endpoint's security settings by referrer id. */
1945
+ deleteReferrer(id: string, referrerId: string): Promise<DeleteBoolResponse>
1946
+ /** Adds an IP address to an endpoint's security whitelist. */
1947
+ createIp(id: string, params?: CreateIpRequest | undefined | null): Promise<void>
1948
+ /** Removes an IP address from an endpoint's security whitelist by ip id. */
1949
+ deleteIp(id: string, ipId: string): Promise<DeleteBoolResponse>
1950
+ /**
1951
+ * Adds a domain mask to an endpoint — a custom domain used to hide the
1952
+ * endpoint's QuickNode URL so requests can be routed through your own
1953
+ * domain.
1954
+ */
1955
+ createDomainMask(id: string, params?: CreateDomainMaskRequest | undefined | null): Promise<void>
1956
+ /** Removes a domain mask from an endpoint by domain mask id. */
1957
+ deleteDomainMask(id: string, domainMaskId: string): Promise<DeleteBoolResponse>
1958
+ /**
1959
+ * Creates a new JWT for endpoint authentication. Accepts a public key,
1960
+ * key id (`kid`), and token name.
1961
+ */
1962
+ createJwt(id: string, params?: CreateJwtRequest | undefined | null): Promise<void>
1963
+ /**
1964
+ * Removes a JWT from an endpoint's security configuration by jwt id,
1965
+ * revoking its access.
1966
+ */
1967
+ deleteJwt(id: string, jwtId: string): Promise<void>
1968
+ /**
1969
+ * Creates a request filter on an endpoint — a method whitelist that
1970
+ * restricts which RPC methods may be called. Accepts an array of method
1971
+ * names; other methods are blocked.
1972
+ */
1973
+ createRequestFilter(id: string, params?: CreateRequestFilterRequest | undefined | null): Promise<CreateRequestFilterResponse>
1974
+ /**
1975
+ * Updates an existing request filter on an endpoint, replacing the
1976
+ * whitelisted method list.
1977
+ */
1978
+ updateRequestFilter(id: string, requestFilterId: string, params?: UpdateRequestFilterRequest | undefined | null): Promise<void>
1979
+ /**
1980
+ * Removes a request filter from an endpoint's security configuration by
1981
+ * request filter id.
1982
+ */
1983
+ deleteRequestFilter(id: string, requestFilterId: string): Promise<void>
1984
+ /**
1985
+ * Enables multichain functionality on an endpoint, allowing a single
1986
+ * endpoint to serve multiple chains.
1987
+ */
1988
+ enableMultichain(id: string): Promise<void>
1989
+ /** Disables multichain functionality on an endpoint. */
1990
+ disableMultichain(id: string): Promise<void>
1991
+ /**
1992
+ * Sets the custom HTTP header used to identify the client IP for an
1993
+ * endpoint (for example, `X-Forwarded-For`). This header is used by
1994
+ * IP-based security features to resolve the real client address when
1995
+ * requests are proxied.
1996
+ */
1997
+ createOrUpdateIpCustomHeader(id: string, params: CreateOrUpdateIpCustomHeaderRequest): Promise<CreateOrUpdateIpCustomHeaderResponse>
1998
+ /** Removes the custom IP header configuration from an endpoint. */
1999
+ deleteIpCustomHeader(id: string): Promise<DeleteBoolResponse>
2000
+ /**
2001
+ * Returns the method rate limits configured on an endpoint, including
2002
+ * each limiter's interval, methods, rate, and status.
2003
+ */
2004
+ getMethodRateLimits(id: string): Promise<GetMethodRateLimitsResponse>
2005
+ /**
2006
+ * Creates a per-method rate limit on an endpoint. A method rate limit
2007
+ * caps specific RPC methods rather than the endpoint as a whole, defined
2008
+ * by an `interval` (e.g. `second`), the target `methods`, and a `rate`.
2009
+ */
2010
+ createMethodRateLimit(id: string, params: CreateMethodRateLimitRequest): Promise<CreateMethodRateLimitResponse>
2011
+ /**
2012
+ * Updates an existing method rate limit on an endpoint. Accepts the
2013
+ * methods to apply the limit to, the desired `status`, and the `rate`.
2014
+ */
2015
+ updateMethodRateLimit(id: string, methodRateLimitId: string, params?: UpdateMethodRateLimitRequest | undefined | null): Promise<UpdateMethodRateLimitResponse>
2016
+ /** Removes a method rate limit from an endpoint by method rate limit id. */
2017
+ deleteMethodRateLimit(id: string, methodRateLimitId: string): Promise<void>
2018
+ /**
2019
+ * Updates the overall rate limits on an endpoint. Accepts `rps`
2020
+ * (requests per second), `rpm` (requests per minute), and `rpd` (requests
2021
+ * per day).
2022
+ */
2023
+ updateRateLimits(id: string, params: UpdateRateLimitsRequest): Promise<void>
2024
+ /**
2025
+ * Returns time-series metrics for a specific endpoint. Requires a
2026
+ * `period` (`hour`, `day`, `week`, or `month`) and a metric type such as
2027
+ * `method_calls_over_time` or `response_status_breakdown`.
2028
+ */
2029
+ getEndpointMetrics(id: string, params: GetEndpointMetricsRequest): Promise<GetEndpointMetricsResponse>
2030
+ /**
2031
+ * Returns aggregated metrics across all endpoints on the account. Accepts
2032
+ * a `period` (`hour`, `day`, `week`, or `month`) and a metric type such
2033
+ * as `method_calls_over_time` or `credits_over_time`.
2034
+ */
2035
+ getAccountMetrics(params: GetAccountMetricsRequest): Promise<GetAccountMetricsResponse>
2036
+ /**
2037
+ * Returns all chains supported by QuickNode along with their networks.
2038
+ * Each entry includes the chain slug and its network slugs and names.
2039
+ */
2040
+ listChains(): Promise<ListChainsResponse>
2041
+ /**
2042
+ * Returns the account's invoices, including id, status, billing reason,
2043
+ * amounts due and paid, line items with descriptions and billing periods,
2044
+ * and creation timestamps.
2045
+ */
2046
+ listInvoices(): Promise<ListInvoicesResponse>
2047
+ /**
2048
+ * Returns all payments on the account, including amount, status, card
2049
+ * last-four, timestamp, currency, and marketplace spending.
2050
+ */
2051
+ listPayments(): Promise<ListPaymentsResponse>
2052
+ /**
2053
+ * Returns all teams on the account. Each team includes its id, name,
2054
+ * member count, and member details (roles, contact info, account status).
2055
+ */
2056
+ listTeams(): Promise<ListTeamsResponse>
2057
+ /**
2058
+ * Creates a new team. Requires a `name`; returns the new team with its
2059
+ * id, name, default role, and member count.
2060
+ */
2061
+ createTeam(params: CreateTeamRequest): Promise<CreateTeamResponse>
2062
+ /**
2063
+ * Returns a specific team by id, including active members with their
2064
+ * roles and contact info plus any pending invites.
2065
+ */
2066
+ getTeam(id: number): Promise<GetTeamResponse>
2067
+ /**
2068
+ * Deletes a team by id. The team must have no members before it can be
2069
+ * deleted.
2070
+ */
2071
+ deleteTeam(id: number): Promise<DeleteTeamResponse>
2072
+ /**
2073
+ * Returns the endpoints accessible to a given team. Each entry includes
2074
+ * the endpoint id, subdomain, chain, and network.
2075
+ */
2076
+ listTeamEndpoints(id: number): Promise<ListTeamEndpointsResponse>
2077
+ /**
2078
+ * Assigns or unassigns endpoints for a team. Pass an array of endpoint ids
2079
+ * to set the team's accessible endpoints; pass an empty array to remove
2080
+ * all associations.
2081
+ */
2082
+ updateTeamEndpoints(id: number, params: UpdateTeamEndpointsRequest): Promise<UpdateTeamEndpointsResponse>
2083
+ /**
2084
+ * Invites a user to a team by email. For new users, `full_name` and
2085
+ * `role` (`admin`, `viewer`, or `billing`) are also required. Returns the
2086
+ * invited user's profile and invitation status.
2087
+ */
2088
+ inviteTeamMember(id: number, params: InviteTeamMemberRequest): Promise<InviteTeamMemberResponse>
2089
+ /** Removes a user from a team by team id and user id. */
2090
+ removeTeamMember(id: number, userId: number, params?: RemoveTeamMemberRequest | undefined | null): Promise<RemoveTeamMemberResponse>
2091
+ /**
2092
+ * Resends the invitation email to a pending team member, identified by
2093
+ * team id and user id.
2094
+ */
2095
+ resendTeamInvite(id: number, userId: number): Promise<ResendTeamInviteResponse>
2096
+ /**
2097
+ * Pauses or unpauses multiple endpoints in a single call. Accepts an
2098
+ * array of endpoint ids and a target status (`active` or `paused`);
2099
+ * returns per-endpoint success/failure results plus totals.
2100
+ */
2101
+ bulkUpdateEndpointStatus(params: BulkUpdateEndpointStatusRequest): Promise<BulkUpdateEndpointStatusResponse>
2102
+ /**
2103
+ * Applies a single tag label to multiple endpoints in one call. Returns
2104
+ * totals for affected endpoints, successes, and failures, plus the tag
2105
+ * that was applied.
2106
+ */
2107
+ bulkAddTag(params: BulkAddTagRequest): Promise<BulkAddTagResponse>
2108
+ /**
2109
+ * Removes a tag from multiple endpoints in one call, identified by an
2110
+ * array of endpoint ids and a tag id.
2111
+ */
2112
+ bulkRemoveTag(params: BulkRemoveTagRequest): Promise<BulkRemoveTagResponse>
2113
+ /**
2114
+ * Returns all account-level tags, including tags with zero associated
2115
+ * endpoints. Each tag includes its id, label, and endpoint usage count.
2116
+ */
2117
+ listTags(): Promise<ListTagsResponse>
2118
+ /**
2119
+ * Updates the label of an account tag. Because the tag is shared across
2120
+ * endpoints, all associated endpoints reflect the new label immediately.
2121
+ */
2122
+ renameTag(id: number, params: RenameTagRequest): Promise<RenameTagResponse>
2123
+ /**
2124
+ * Deletes an account-level tag. The tag must first be removed from all
2125
+ * endpoints before it can be deleted.
2126
+ */
2127
+ deleteAccountTag(id: number): Promise<DeleteAccountTagResponse>
2128
+ /**
2129
+ * Returns RPC usage grouped by endpoint tag over an optional time range.
2130
+ * Each entry includes the tag id, label, credits consumed, and request
2131
+ * count.
2132
+ */
2133
+ getUsageByTag(params?: GetUsageRequest | undefined | null): Promise<GetUsageByTagResponse>
2134
+ /**
2135
+ * Returns the full security configuration for an endpoint in a single
2136
+ * call, without loading the entire endpoint object. The response includes
2137
+ * tokens, JWTs, referrers, domain masks, IPs, and a security options
2138
+ * object describing which features are enabled.
2139
+ */
2140
+ getEndpointSecurity(id: string): Promise<GetEndpointSecurityResponse>
2141
+ }
2142
+ export declare class StreamsApiClient {
2143
+ /**
2144
+ * Creates a new Stream on a given blockchain network and dataset, delivering
2145
+ * batches to the configured destination. Start from a specific block for
2146
+ * backfills or from the tip for real-time streaming, and optionally attach
2147
+ * a base64-encoded JavaScript filter to transform data before delivery.
2148
+ * The stream can be created in an active or paused state and supports
2149
+ * reorg handling, distance-from-tip, elastic batching, notification emails,
2150
+ * and extra destinations for multi-destination delivery.
2151
+ */
2152
+ createStream(params: CreateStreamParamsNode): Promise<StreamNode>
2153
+ /**
2154
+ * Returns a paginated list of streams on the account. Each stream includes
2155
+ * its full configuration — identifiers, timestamps, network and dataset,
2156
+ * filter, block range, destination settings, and operational status — and
2157
+ * surfaces advanced features such as elastic batching and extra
2158
+ * destinations, where batches must be delivered to every configured
2159
+ * destination before the stream advances. Supports pagination via
2160
+ * `offset`/`limit` and sorting via `order_by`/`order_direction`, and can
2161
+ * filter by stream type.
2162
+ */
2163
+ listStreams(params?: ListStreamsParams | undefined | null): Promise<ListStreamsResponseNode>
2164
+ /**
2165
+ * Removes every stream on the account. Takes no filters and cannot be
2166
+ * undone.
2167
+ */
2168
+ deleteAllStreams(): Promise<void>
2169
+ /**
2170
+ * Returns a single stream by ID, including its full configuration and
2171
+ * current status.
2172
+ */
2173
+ getStream(id: string): Promise<StreamNode>
2174
+ /**
2175
+ * Updates an existing stream's configuration. Only fields present on
2176
+ * `params` are modified; omitted fields are left unchanged.
2177
+ */
2178
+ updateStream(id: string, params: UpdateStreamParamsNode): Promise<StreamNode>
2179
+ /** Deletes a single stream by ID. */
2180
+ deleteStream(id: string): Promise<void>
2181
+ /** Activates a stream by ID, resuming delivery from its current position. */
2182
+ activateStream(id: string): Promise<void>
2183
+ /** Pauses a stream by ID, halting delivery until it is activated again. */
2184
+ pauseStream(id: string): Promise<void>
2185
+ /**
2186
+ * Runs a filter function against a specified block on a given network and
2187
+ * dataset, returning the filter's output so it can be validated before
2188
+ * being attached to a live stream.
2189
+ */
2190
+ testFilter(params: TestFilterParams): Promise<TestFilterResponse>
2191
+ /**
2192
+ * Returns the total count of currently enabled (active) streams on the
2193
+ * account, optionally filtered by stream type.
2194
+ */
2195
+ getEnabledCount(streamType?: string | undefined | null): Promise<EnabledCountResponse>
2196
+ }
2197
+ export declare class WebhooksApiClient {
2198
+ /**
2199
+ * Returns a paginated list of webhooks on the account. Each entry includes
2200
+ * the webhook's identifier, creation timestamp, name, network, notification
2201
+ * email, destination configuration (URL, security token, compression),
2202
+ * current status, and any associated template. The response also includes
2203
+ * a `pageInfo` object with the applied limit, offset, and total count.
2204
+ */
2205
+ listWebhooks(params?: GetWebhooksParams | undefined | null): Promise<ListWebhooksResponse>
2206
+ /**
2207
+ * Removes every webhook on the account. Destructive and takes no
2208
+ * parameters.
2209
+ */
2210
+ deleteAllWebhooks(): Promise<void>
2211
+ /**
2212
+ * Fetches a single webhook's full configuration and status by ID. Returns
2213
+ * creation timestamp, name, network, notification email, destination
2214
+ * configuration (URL, security token, compression), the sequence number
2215
+ * of the last successfully delivered block, the current status, and the
2216
+ * associated template with its arguments.
2217
+ */
2218
+ getWebhook(id: string): Promise<Webhook>
2219
+ /**
2220
+ * Modifies an existing webhook's configuration. Supports updating the
2221
+ * webhook's name, notification email, and destination attributes (URL,
2222
+ * security token, and compression — `none` or `gzip`). All fields are
2223
+ * optional, so partial updates are supported; if the security token is
2224
+ * omitted on update, one is generated automatically. Returns the
2225
+ * webhook's full updated configuration.
2226
+ */
2227
+ updateWebhook(id: string, params?: UpdateWebhookParams | undefined | null): Promise<Webhook>
2228
+ /** Permanently removes a single webhook by ID. */
2229
+ deleteWebhook(id: string): Promise<void>
2230
+ /** Pauses a webhook by ID so it stops delivering events until reactivated. */
2231
+ pauseWebhook(id: string): Promise<void>
2232
+ /**
2233
+ * Activates a previously created or paused webhook so it begins (or
2234
+ * resumes) delivering events. `start_from` determines where processing
2235
+ * resumes: `Latest` begins from the newest available block; other values
2236
+ * replay from an earlier point.
2237
+ */
2238
+ activateWebhook(id: string, params: ActivateWebhookParams): Promise<void>
2239
+ /**
2240
+ * Returns the total number of enabled webhooks currently configured on
2241
+ * the account.
2242
+ */
2243
+ getEnabledCount(): Promise<WebhookEnabledCountResponse>
2244
+ /**
2245
+ * Creates a new webhook from a predefined filter template. Requires a
2246
+ * descriptive name, a target blockchain network, and destination
2247
+ * attributes (URL, optional security token — auto-generated when omitted,
2248
+ * and optional compression — `gzip` or `none`). `template_args` carries
2249
+ * template-specific configuration such as wallet addresses or contract
2250
+ * filters. An optional `notification_email` receives alerts if the
2251
+ * webhook terminates.
2252
+ */
2253
+ createWebhookFromTemplate(params: CreateWebhookFromTemplateParams): Promise<Webhook>
2254
+ /**
2255
+ * Updates an existing template-backed webhook, modifying its template
2256
+ * arguments and optionally its name, notification email, and destination
2257
+ * attributes (URL, security token, compression — `none` or `gzip`).
2258
+ * All optional fields support partial updates; a security token is
2259
+ * generated automatically if not provided. Templates cover EVM chains,
2260
+ * Solana, Bitcoin, XRPL, Hyperliquid, and Stellar.
2261
+ */
2262
+ updateWebhookTemplate(webhookId: string, params: UpdateWebhookTemplateParams): Promise<Webhook>
2263
+ }
2264
+ export declare class KvStoreApiClient {
2265
+ /** Creates a new set, storing a single string value under the given key. */
2266
+ createSet(params: CreateSetParams): Promise<void>
2267
+ /**
2268
+ * Returns a paginated page of key/value entries from the store. Use the
2269
+ * response `cursor` to fetch subsequent pages.
2270
+ */
2271
+ getSets(params?: GetSetsParams | undefined | null): Promise<GetSetsResponse>
2272
+ /** Returns the string value stored for a single set by key. */
2273
+ getSet(key: string): Promise<GetSetResponse>
2274
+ /**
2275
+ * Adds and removes multiple sets in a single request. Either `add_sets`,
2276
+ * `delete_sets`, or both may be supplied.
2277
+ */
2278
+ bulkSets(params: BulkSetsParams): Promise<void>
2279
+ /** Removes a single set by key. */
2280
+ deleteSet(key: string): Promise<void>
2281
+ /** Creates a new list under the given key, seeded with the provided items. */
2282
+ createList(params: CreateListParams): Promise<void>
2283
+ /**
2284
+ * Returns a paginated page of list keys from the store. Use the response
2285
+ * `cursor` to fetch subsequent pages.
2286
+ */
2287
+ getLists(params?: GetListsParams | undefined | null): Promise<GetListsResponse>
2288
+ /**
2289
+ * Returns a paginated page of items from the list identified by `key`.
2290
+ * Use the response `cursor` to fetch subsequent pages.
2291
+ */
2292
+ getList(key: string, params?: GetListParams | undefined | null): Promise<GetListResponse>
2293
+ /**
2294
+ * Updates an existing list by adding and/or removing items in a single
2295
+ * operation. Either `add_items`, `remove_items`, or both may be supplied.
2296
+ */
2297
+ updateList(key: string, params: UpdateListParams): Promise<void>
2298
+ /** Appends a single item to the list identified by `key`. */
2299
+ addListItem(key: string, params: AddListItemParams): Promise<void>
2300
+ /** Checks whether the specified list contains the given item. */
2301
+ listContainsItem(key: string, item: string): Promise<ListContainsItemResponse>
2302
+ /** Removes a specific item from the list identified by `key`. */
2303
+ deleteListItem(key: string, item: string): Promise<void>
2304
+ /** Removes a list and all of its items by key. */
2305
+ deleteList(key: string): Promise<void>
656
2306
  }
657
-
658
- export { Core, CoreArguments, EstimatePriorityFeesParams, PrepareSmartTransactionArgs, PriorityFeeEstimates, PriorityFeeLevels, PriorityFeeRequestPayload, PriorityFeeResponseData, QNChainNotSupported, QNCoreClient, QNCoreClientConfig, QNFetchNFTCollectionDetailsInput, QNFetchNFTCollectionDetailsResult, QNFetchNFTInput, QNFetchNFTResult, QNFetchNFTsByCollectionInput, QNFetchNFTsByCollectionResult, QNGetTokenMetadataByCAInput, QNGetTokenMetadataByCAResult, QNGetTokenMetadataBySymbolInput, QNGetTokenMetadataBySymbolResult, QNGetTransactionsByAddressInput, QNGetTransactionsByAddressResult, QNGetTransfersByNFTInput, QNGetTransfersByNFTResult, QNGetWalletTokenBalanceInput, QNGetWalletTokenBalanceResult, QNGetWalletTokenTransactionsInput, QNGetWalletTokenTransactionsResult, QNInputValidationError, QNInvalidEndpointUrl, QNVerifyNFTsOwnerInput, QNVerifyNFTsOwnerResult, SendSmartTransactionArgs, SmartTransactionBaseArgs, Solana, SolanaClientArgs, QuickNode as default };