@webacy-xyz/sdk-threat 1.2.6 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/dist/cjs/client.js +18 -0
  2. package/dist/cjs/client.js.map +1 -1
  3. package/dist/cjs/index.js +3 -1
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/resources/index.js +5 -1
  6. package/dist/cjs/resources/index.js.map +1 -1
  7. package/dist/cjs/resources/rwa.js +150 -0
  8. package/dist/cjs/resources/rwa.js.map +1 -0
  9. package/dist/cjs/resources/vaults.js +194 -0
  10. package/dist/cjs/resources/vaults.js.map +1 -0
  11. package/dist/cjs/types/rwa.js +3 -0
  12. package/dist/cjs/types/rwa.js.map +1 -0
  13. package/dist/cjs/types/vault.js +3 -0
  14. package/dist/cjs/types/vault.js.map +1 -0
  15. package/dist/esm/client.js +18 -0
  16. package/dist/esm/client.js.map +1 -1
  17. package/dist/esm/index.js +1 -1
  18. package/dist/esm/index.js.map +1 -1
  19. package/dist/esm/resources/index.js +2 -0
  20. package/dist/esm/resources/index.js.map +1 -1
  21. package/dist/esm/resources/rwa.js +146 -0
  22. package/dist/esm/resources/rwa.js.map +1 -0
  23. package/dist/esm/resources/vaults.js +190 -0
  24. package/dist/esm/resources/vaults.js.map +1 -0
  25. package/dist/esm/types/rwa.js +2 -0
  26. package/dist/esm/types/rwa.js.map +1 -0
  27. package/dist/esm/types/vault.js +2 -0
  28. package/dist/esm/types/vault.js.map +1 -0
  29. package/dist/types/client.d.ts +16 -0
  30. package/dist/types/client.d.ts.map +1 -1
  31. package/dist/types/index.d.ts +2 -2
  32. package/dist/types/index.d.ts.map +1 -1
  33. package/dist/types/resources/index.d.ts +2 -0
  34. package/dist/types/resources/index.d.ts.map +1 -1
  35. package/dist/types/resources/rwa.d.ts +93 -0
  36. package/dist/types/resources/rwa.d.ts.map +1 -0
  37. package/dist/types/resources/vaults.d.ts +126 -0
  38. package/dist/types/resources/vaults.d.ts.map +1 -0
  39. package/dist/types/types/index.d.ts +2 -0
  40. package/dist/types/types/index.d.ts.map +1 -1
  41. package/dist/types/types/rwa.d.ts +301 -0
  42. package/dist/types/types/rwa.d.ts.map +1 -0
  43. package/dist/types/types/vault.d.ts +280 -0
  44. package/dist/types/types/vault.d.ts.map +1 -0
  45. package/package.json +2 -2
@@ -0,0 +1,126 @@
1
+ import { BaseResource } from '@webacy-xyz/sdk-core';
2
+ import { VaultListResponse, VaultCursorListResponse, VaultDetailResponse, VaultListOptions, VaultCursorListOptions, VaultDetailOptions } from '../types';
3
+ /**
4
+ * Resource for DeFi vault risk analysis
5
+ *
6
+ * Provides access to risk data for ERC-4626 vaults including risk scoring,
7
+ * looping detection, TVL analysis, and underlying asset risk assessment.
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * // List all vaults
12
+ * const vaults = await client.vaults.list();
13
+ *
14
+ * // Filter by protocol and risk tier
15
+ * const morphoHigh = await client.vaults.list({
16
+ * protocol: 'morpho',
17
+ * tier: 'high',
18
+ * });
19
+ *
20
+ * // Get detailed vault risk analysis
21
+ * const detail = await client.vaults.get('0x...', { chain: Chain.ETH });
22
+ * ```
23
+ */
24
+ export declare class VaultsResource extends BaseResource {
25
+ /**
26
+ * List all rated ERC-4626 vaults with risk scores and aggregates
27
+ *
28
+ * Returns a paginated list of vaults using offset-based pagination.
29
+ * For cursor-based pagination, use {@link listCursor}.
30
+ *
31
+ * @param options - Filter, sort, and pagination options
32
+ * @returns Paginated vault list with aggregates
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // Get all vaults
37
+ * const result = await client.vaults.list();
38
+ * console.log(`Total vaults: ${result.pagination.total}`);
39
+ * console.log(`Total TVL: $${result.aggregates.total_tvl_usd}`);
40
+ *
41
+ * // Filter by protocol, chain, and risk
42
+ * const risky = await client.vaults.list({
43
+ * protocol: 'morpho',
44
+ * chain: Chain.ETH,
45
+ * tier: 'high',
46
+ * sort: 'score_desc',
47
+ * });
48
+ *
49
+ * // Filter by underlying asset and attention needed
50
+ * const urgent = await client.vaults.list({
51
+ * underlying: 'USDC',
52
+ * attentionNeeded: true,
53
+ * });
54
+ *
55
+ * // Search and filter by risk flags
56
+ * const looping = await client.vaults.list({
57
+ * riskFlags: 'vault-high-looping,vault-upgradeable',
58
+ * riskFlagsMode: 'any',
59
+ * });
60
+ * ```
61
+ */
62
+ list(options?: VaultListOptions): Promise<VaultListResponse>;
63
+ /**
64
+ * List vaults with cursor-based pagination
65
+ *
66
+ * Returns vaults using an opaque cursor for efficient sequential pagination.
67
+ * Pass the `next_cursor` from a previous response to get the next page.
68
+ *
69
+ * @param options - Filter options with required cursor
70
+ * @returns Cursor-paginated vault list with aggregates
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * // First page
75
+ * const first = await client.vaults.list({ pageSize: 100 });
76
+ *
77
+ * // Subsequent pages using cursor
78
+ * const second = await client.vaults.listCursor({
79
+ * cursor: 'opaque-cursor-from-previous-response',
80
+ * limit: 100,
81
+ * });
82
+ *
83
+ * if (second.next_cursor) {
84
+ * const third = await client.vaults.listCursor({
85
+ * cursor: second.next_cursor,
86
+ * limit: 100,
87
+ * });
88
+ * }
89
+ * ```
90
+ */
91
+ listCursor(options: VaultCursorListOptions): Promise<VaultCursorListResponse>;
92
+ /**
93
+ * Get detailed risk data for a specific vault
94
+ *
95
+ * Returns comprehensive vault detail including metadata, risk breakdown,
96
+ * looping markets, composition, Morpho-specific data, and Webacy findings.
97
+ *
98
+ * @param address - Vault contract address
99
+ * @param options - Query options (chain is required)
100
+ * @returns Detailed vault risk data
101
+ *
102
+ * @example
103
+ * ```typescript
104
+ * const detail = await client.vaults.get('0x...', { chain: Chain.ETH });
105
+ *
106
+ * console.log(`Score: ${detail.risk.score}`);
107
+ * console.log(`TVL: $${detail.metadata.tvl_usd}`);
108
+ * console.log(`Protocol: ${detail.metadata.protocol}`);
109
+ * console.log(`Listing verdict: ${detail.metadata.listing_verdict}`);
110
+ *
111
+ * // Check Morpho-specific data
112
+ * if (detail.morpho) {
113
+ * console.log(`Morpho liquidity: $${detail.morpho.liquidity_usd}`);
114
+ * }
115
+ *
116
+ * // Check risk issues
117
+ * for (const issue of detail.risk.issues) {
118
+ * console.log(`Risk score: ${issue.score}, tags: ${issue.tags.join(', ')}`);
119
+ * }
120
+ * ```
121
+ */
122
+ get(address: string, options: VaultDetailOptions): Promise<VaultDetailResponse>;
123
+ /** Append filter params shared between offset and cursor list methods */
124
+ private appendSharedListParams;
125
+ }
126
+ //# sourceMappingURL=vaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vaults.d.ts","sourceRoot":"","sources":["../../../src/resources/vaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,mBAAmB,EACnB,gBAAgB,EAChB,sBAAsB,EACtB,kBAAkB,EACnB,MAAM,UAAU,CAAC;AAElB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,cAAe,SAAQ,YAAY;IAC9C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,IAAI,CAAC,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkBtE;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,UAAU,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAiBnF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6BG;IACG,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAkBrF,yEAAyE;IACzE,OAAO,CAAC,sBAAsB;CAoB/B"}
@@ -8,4 +8,6 @@ export type { UsageData, CurrentUsageResponse, UsagePlan, UsagePlansResponse, Us
8
8
  export type { TransactionChain, TransactionRiskResponse, TxRiskDetails, TrustFlag, TransactionOptions, } from './transaction';
9
9
  export type { ScanChainId, ScanTransactionRequest, EIP712TypeDefinition, EIP712Domain, ScanEIP712TypedData, ScanEIP712Request, ScanRiskLevel, ScanWarning, AssetChange, ScanResponse, ScanEIP712Response, ScanOptions, RiskScanOptions, RiskScanResponse, RiskScanStatusResponse, } from './scan';
10
10
  export type { BatchContractsRequest, BatchContractsResponse, BatchAddressesRequest, BatchAddressesResponse, BatchTransactionsRequest, BatchTransactionsResponse, BatchOptions, } from './batch';
11
+ export type { RiskTier, DisplayTier, TokenType, LiquidityTier, RwaSortField, ScoreDriver, DenominationSummary, RwaTokenListItem, DepegSummary, RwaRiskSummary, RwaPagination, RwaAggregates, RwaTokenListResponse, RwaTokenIdentity, RwaDepegSnapshot, RwaHistoryPoint, RwaHistory, RwaDepegEvent, DepegEventEntry, RwaTokenDetailResponse, RwaListOptions, RwaDetailOptions, } from './rwa';
12
+ export type { VaultTier, VaultContractType, VaultProtocol, ListingVerdict, WithdrawalRisk, UnderlyingRiskTier, VaultSortKey, VaultContextItem, VaultListMetadata, VaultDetailMetadata, VaultRiskCategory, VaultRiskIssue, VaultRiskResponse, VaultTokenRisk, VaultLoopingMarket, VaultCompositionItem, VaultLstCollateralMarket, VaultMorphoData, VaultWebacyData, VaultListItem, VaultAggregateSummary, VaultAggregates, VaultPagination, VaultListResponse, VaultCursorListResponse, VaultDetailResponse, VaultListOptions, VaultCursorListOptions, VaultDetailOptions, } from './vault';
11
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACP,iBAAiB,EACjB,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,WAAW,CAAC;AAGnB,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,gBAAgB,EAChB,uBAAuB,EACvB,wBAAwB,EACxB,uBAAuB,EACvB,iBAAiB,EACjB,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAG9E,YAAY,EACV,gBAAgB,EAChB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACvB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,YAAY,EACZ,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,UAAU,EACV,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAGlB,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,mBAAmB,GACpB,MAAM,iBAAiB,CAAC;AAGzB,YAAY,EACV,SAAS,EACT,oBAAoB,EACpB,SAAS,EACT,kBAAkB,EAClB,YAAY,EACZ,aAAa,GACd,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,gBAAgB,EAChB,uBAAuB,EACvB,aAAa,EACb,SAAS,EACT,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAGvB,YAAY,EACV,WAAW,EACX,sBAAsB,EACtB,oBAAoB,EACpB,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,aAAa,EACb,WAAW,EACX,WAAW,EACX,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,QAAQ,CAAC;AAGhB,YAAY,EACV,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,wBAAwB,EACxB,yBAAyB,EACzB,YAAY,GACb,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,301 @@
1
+ import { Chain } from '@webacy-xyz/sdk-core';
2
+ import { AddressRiskResponse } from './address';
3
+ /** Base risk tiers matching depeg_event.new_tier values */
4
+ export type RiskTier = 'critical' | 'warning' | 'watch' | 'ok';
5
+ /** Extended tier including the premium override for positive signed deviation */
6
+ export type DisplayTier = RiskTier | 'premium';
7
+ /** Pipeline-assigned token sub-classification */
8
+ export type TokenType = 'standard' | 'yield' | 'rwa' | 'gold' | 'bridged' | 'vault';
9
+ /** Liquidity tier based on 60-minute DEX volume thresholds */
10
+ export type LiquidityTier = 'high' | 'medium' | 'low' | 'very_low';
11
+ /** Sort fields for the RWA list endpoint */
12
+ export type RwaSortField = 'score' | 'symbol' | 'chain' | 'tier' | 'abs_dev_clean' | 'market_cap_usd' | 'ts';
13
+ /** A single component of the 12-factor depeg risk score decomposition */
14
+ export interface ScoreDriver {
15
+ name: string;
16
+ raw: number | string | boolean | null;
17
+ normalized: number | null;
18
+ weight: number;
19
+ contribution: number | null;
20
+ }
21
+ /** Summary of a token's denomination peg configuration */
22
+ export interface DenominationSummary {
23
+ /** Denomination code (e.g. USD, EUR, XAU) */
24
+ code: string;
25
+ /** Human-readable denomination name */
26
+ name: string;
27
+ /** Denomination category */
28
+ category: string;
29
+ /** Ratio of token units per denomination unit (e.g. "1.0") */
30
+ pegRatio: string;
31
+ /** Peg mechanism (e.g. "direct", "collateralized", "algorithmic") */
32
+ pegType: string;
33
+ }
34
+ /** Single token row in the paginated list response */
35
+ export interface RwaTokenListItem {
36
+ address: string;
37
+ chain: string;
38
+ symbol: string;
39
+ name: string | null;
40
+ assetType: string;
41
+ denomination: DenominationSummary | null;
42
+ ts: string | null;
43
+ score: number | null;
44
+ tier: DisplayTier | null;
45
+ drivers: ScoreDriver[] | null;
46
+ price: number | null;
47
+ peg_value: number | null;
48
+ abs_dev_clean: number | null;
49
+ reference_price: number | null;
50
+ within_expected_range: boolean | null;
51
+ token_type: TokenType | null;
52
+ token_labels: string[];
53
+ peg_range: [number, number] | null;
54
+ is_collapsed: boolean;
55
+ market_cap_usd: number | null;
56
+ volume_24h: number | null;
57
+ circulating_supply: number | null;
58
+ volume_mcap_ratio: number | null;
59
+ liquidity_tier: LiquidityTier | null;
60
+ slippage_bps_100k: number | null;
61
+ liquidity_available_100k: boolean | null;
62
+ liquidity_decay_pct: number | null;
63
+ liquidity_decay_flag: boolean | null;
64
+ volume_60m: number | null;
65
+ volatility_burst: boolean | null;
66
+ volatility_ratio: number | null;
67
+ max_drawdown_5m: number | null;
68
+ mins_over_50bp_60m: number | null;
69
+ mins_over_100bp_60m: number | null;
70
+ streak_over_50bp_min: number | null;
71
+ streak_over_100bp_min: number | null;
72
+ chain_spread_5m: number | null;
73
+ chain_spread_60m: number | null;
74
+ price_source_deviation: number | null;
75
+ volume_z_5m: number | null;
76
+ volume_z_60m: number | null;
77
+ oracle_price: number | null;
78
+ oracle_deviation_bps: number | null;
79
+ oracle_deviation_flag: boolean | null;
80
+ risk: AddressRiskResponse | null;
81
+ }
82
+ /** Summary of a token's depeg status for aggregate leaderboards */
83
+ export interface DepegSummary {
84
+ symbol: string;
85
+ chain: string;
86
+ address: string;
87
+ price: number | null;
88
+ peg_value: number | null;
89
+ abs_dev_clean: number;
90
+ score: number;
91
+ tier: RiskTier;
92
+ }
93
+ /** Summary of a token's risk for aggregate leaderboards */
94
+ export interface RwaRiskSummary {
95
+ symbol: string;
96
+ chain: string;
97
+ address: string;
98
+ score: number;
99
+ tier: RiskTier;
100
+ market_cap_usd: number | null;
101
+ }
102
+ /** Pagination metadata */
103
+ export interface RwaPagination {
104
+ total: number;
105
+ page: number;
106
+ pageSize: number;
107
+ totalPages: number;
108
+ }
109
+ /** Ecosystem-wide aggregates computed pre-filter */
110
+ export interface RwaAggregates {
111
+ generated_at: string | null;
112
+ tier_counts: Record<RiskTier, number>;
113
+ total_mcap: number;
114
+ total_volume_24h: number;
115
+ at_peg_count: number;
116
+ at_peg_total: number;
117
+ stability_index: number;
118
+ biggest_depegs: DepegSummary[];
119
+ highest_risk: RwaRiskSummary[];
120
+ most_stable: RwaRiskSummary[];
121
+ }
122
+ /** Response for GET /rwa — paginated list with aggregates */
123
+ export interface RwaTokenListResponse {
124
+ items: RwaTokenListItem[];
125
+ pagination: RwaPagination;
126
+ aggregates: RwaAggregates;
127
+ tier_counts: Record<RiskTier, number>;
128
+ stale: boolean;
129
+ }
130
+ /** Token identity + classification + market data */
131
+ export interface RwaTokenIdentity {
132
+ address: string;
133
+ chain: string;
134
+ symbol: string;
135
+ name: string | null;
136
+ assetType: string;
137
+ assetTypeReason: string | null;
138
+ denomination: DenominationSummary | null;
139
+ token_type: TokenType | null;
140
+ token_labels: string[];
141
+ peg_range: [number, number] | null;
142
+ is_collapsed: boolean;
143
+ is_rwa_nav: boolean;
144
+ market_cap_usd: number | null;
145
+ volume_24h: number | null;
146
+ circulating_supply: number | null;
147
+ }
148
+ /** Full point-in-time depeg snapshot with 50+ fields from the pipeline */
149
+ export interface RwaDepegSnapshot {
150
+ ts: string | null;
151
+ score: number | null;
152
+ tier: DisplayTier | null;
153
+ drivers: ScoreDriver[] | null;
154
+ price: number | null;
155
+ peg_value: number | null;
156
+ abs_dev_clean: number | null;
157
+ dev_clean: number | null;
158
+ reference_price: number | null;
159
+ reference_prices: Record<string, number>;
160
+ price_source: string | null;
161
+ price_sources_agree: boolean | null;
162
+ price_source_deviation: number | null;
163
+ within_expected_range: boolean | null;
164
+ vwap_1m: number | null;
165
+ vwap_5m: number | null;
166
+ vwap_60m: number | null;
167
+ vwap_clean_1m: number | null;
168
+ vwap_clean_5m: number | null;
169
+ vwap_clean_60m: number | null;
170
+ volume_usd_5m: number | null;
171
+ volume_usd_60m: number | null;
172
+ volume_z_5m: number | null;
173
+ volume_z_60m: number | null;
174
+ volatility_5m: number | null;
175
+ volatility_60m: number | null;
176
+ volatility_ratio: number | null;
177
+ volatility_burst: boolean | null;
178
+ volatility_burst_magnitude: number | null;
179
+ max_drawdown_5m: number | null;
180
+ max_spike_5m: number | null;
181
+ liquidity_tier: LiquidityTier | null;
182
+ slippage_bps_10k: number | null;
183
+ slippage_bps_100k: number | null;
184
+ liquidity_available_10k: boolean | null;
185
+ liquidity_available_100k: boolean | null;
186
+ liquidity_decay_pct: number | null;
187
+ liquidity_decay_flag: boolean | null;
188
+ route_hhi_10k: number | null;
189
+ route_hhi_100k: number | null;
190
+ oracle_price: number | null;
191
+ oracle_deviation_bps: number | null;
192
+ oracle_deviation_flag: boolean | null;
193
+ mins_over_50bp_60m: number | null;
194
+ mins_over_100bp_60m: number | null;
195
+ streak_over_50bp_min: number | null;
196
+ streak_over_100bp_min: number | null;
197
+ chain_spread_5m: number | null;
198
+ chain_spread_60m: number | null;
199
+ data_alerts: string[];
200
+ }
201
+ /** Compact history point for time series charting */
202
+ export interface RwaHistoryPoint {
203
+ ts: string;
204
+ score: number | null;
205
+ tier: DisplayTier | null;
206
+ abs_dev_clean: number | null;
207
+ price: number | null;
208
+ peg_value: number | null;
209
+ }
210
+ /** History container with time series points */
211
+ export interface RwaHistory {
212
+ hours: number;
213
+ series: RwaHistoryPoint[];
214
+ consecutive_days_below_peg: number | null;
215
+ }
216
+ /** Curated narrative events (editorially maintained) */
217
+ export interface RwaDepegEvent {
218
+ id: string;
219
+ name: string;
220
+ symbol: string;
221
+ chain: string;
222
+ address: string;
223
+ start: string;
224
+ end: string;
225
+ notes: string;
226
+ }
227
+ /** Live DB-tracked depeg events */
228
+ export interface DepegEventEntry {
229
+ eventType: string;
230
+ oldTier: string | null;
231
+ newTier: string;
232
+ riskScore: number;
233
+ deviationPct: number;
234
+ detectedAt: string;
235
+ }
236
+ /** Response for GET /rwa/:address — full token detail with history and events */
237
+ export interface RwaTokenDetailResponse {
238
+ token: RwaTokenIdentity;
239
+ snapshot: RwaDepegSnapshot;
240
+ risk: AddressRiskResponse | null;
241
+ history: RwaHistory;
242
+ depegEvents: DepegEventEntry[];
243
+ events: RwaDepegEvent[];
244
+ stale: boolean;
245
+ }
246
+ /**
247
+ * Options for listing pegged tokens
248
+ *
249
+ * All parameters are optional. When none are provided, returns the first page
250
+ * of all tracked pegged tokens sorted by default ordering.
251
+ */
252
+ export interface RwaListOptions {
253
+ /** Filter by blockchain network */
254
+ chain?: Chain;
255
+ /** Filter by denomination code (e.g. USD, EUR, XAU) */
256
+ denomination?: string;
257
+ /** Filter by risk tier */
258
+ tier?: RiskTier;
259
+ /** Filter by token labels (OR logic). e.g. ['standard', 'yield', 'rwa'] */
260
+ tags?: TokenType[];
261
+ /** Minimum risk score (0-100) */
262
+ minScore?: number;
263
+ /** Maximum risk score (0-100) */
264
+ maxScore?: number;
265
+ /** Minimum market cap in USD */
266
+ minMcap?: number;
267
+ /** Filter by liquidity tier */
268
+ liquidity?: LiquidityTier;
269
+ /** Search by symbol, name, or address (max 100 chars) */
270
+ q?: string;
271
+ /** Sort field */
272
+ sort?: RwaSortField;
273
+ /** Sort direction */
274
+ order?: 'asc' | 'desc';
275
+ /** Include excluded/problematic tokens that are normally hidden */
276
+ showAll?: boolean;
277
+ /** Return only collapsed/dead tokens (graveyard view). Overrides showAll */
278
+ collapsedOnly?: boolean;
279
+ /** Page number (1-indexed, default 1) */
280
+ page?: number;
281
+ /** Items per page (default 50, max 500) */
282
+ pageSize?: number;
283
+ /** Request timeout in milliseconds */
284
+ timeout?: number;
285
+ /** Abort signal */
286
+ signal?: AbortSignal;
287
+ }
288
+ /**
289
+ * Options for getting detailed depeg risk data for a specific pegged token
290
+ */
291
+ export interface RwaDetailOptions {
292
+ /** Chain to query. Auto-resolved when address exists on one chain only */
293
+ chain?: Chain;
294
+ /** Hours of history to return (default 24, max 168 = 7 days) */
295
+ hours?: number;
296
+ /** Request timeout in milliseconds */
297
+ timeout?: number;
298
+ /** Abort signal */
299
+ signal?: AbortSignal;
300
+ }
301
+ //# sourceMappingURL=rwa.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rwa.d.ts","sourceRoot":"","sources":["../../../src/types/rwa.ts"],"names":[],"mappings":"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"}