@stridge/openapi 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +111 -0
- package/dist/openapi.dereferenced.json +4477 -0
- package/dist/openapi.json +1355 -0
- package/dist/types.d.ts +2658 -0
- package/package.json +41 -0
|
@@ -0,0 +1,1355 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.1.0",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Stridge API",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"summary": "Public REST API for Stridge Universal Deposit Addresses (UDA).",
|
|
7
|
+
"description": "The Stridge API lets you allocate **Universal Deposit Addresses (UDA)** — cross-chain deposit addresses that route any incoming deposit to a destination you control — fetch indicative cross-chain/cross-asset quotes, and track the settlements those deposits produce.\n\n## Authentication\n\nAuthenticate by sending your secret API key in the `X-API-Key` header on every request. Two endpoints are public and need no key: `GET /uda/quote` and `GET /uda/supported-assets`. All other endpoints require a key.\n\n``` X-API-Key: sk_live_8f3c2b1a9d4e5f60718293a4b5c6d7e8 ```\n\nKeep your secret key on the server. Never embed it in a browser bundle, mobile app, or any client you ship to users.\n\n## Base URLs\n\n| Environment | Base URL | | --- | --- | | Production | `https://api.stridge.com/v1` | | Sandbox | `https://api.stridge.dev/v1` |\n\nAll paths in this reference are relative to the selected base URL — e.g. `POST /uda` is `POST https://api.stridge.com/v1/uda`.\n\n## Conventions\n\nAmounts are integer strings in the asset's smallest unit (e.g. `wei`, USDC `\"1000000\"` = 1 USDC). List endpoints paginate with `limit` (default 50, max 200) and `offset`, and return a `pagination` object. Errors return a consistent JSON envelope (see the `Error` schema).\n",
|
|
8
|
+
"contact": {
|
|
9
|
+
"name": "Stridge Developer Support",
|
|
10
|
+
"url": "https://stridge.com"
|
|
11
|
+
}
|
|
12
|
+
},
|
|
13
|
+
"servers": [
|
|
14
|
+
{
|
|
15
|
+
"url": "https://api.stridge.com/v1",
|
|
16
|
+
"description": "Production"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"url": "https://api.stridge.dev/v1",
|
|
20
|
+
"description": "Sandbox"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"tags": [
|
|
24
|
+
{
|
|
25
|
+
"name": "UDA",
|
|
26
|
+
"description": "Universal Deposit Addresses — allocate cross-chain deposit addresses, fetch indicative quotes, and track settlements.\n"
|
|
27
|
+
}
|
|
28
|
+
],
|
|
29
|
+
"paths": {
|
|
30
|
+
"/uda": {
|
|
31
|
+
"get": {
|
|
32
|
+
"operationId": "list-uda-addresses",
|
|
33
|
+
"tags": [
|
|
34
|
+
"UDA"
|
|
35
|
+
],
|
|
36
|
+
"summary": "List UDA addresses",
|
|
37
|
+
"description": "List the Universal Deposit Addresses configured for your tenant. The tuple `(owner, network_id, to_address, asset_symbol)` uniquely identifies a UDA; pass any subset to filter. `to_address` and `asset_symbol` each require `network_id`.\n",
|
|
38
|
+
"security": [
|
|
39
|
+
{
|
|
40
|
+
"ApiKeyAuth": []
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"parameters": [
|
|
44
|
+
{
|
|
45
|
+
"name": "owner",
|
|
46
|
+
"in": "query",
|
|
47
|
+
"description": "Filter by owner.",
|
|
48
|
+
"schema": {
|
|
49
|
+
"type": "string"
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"name": "network_id",
|
|
54
|
+
"in": "query",
|
|
55
|
+
"description": "Filter by destination network id.",
|
|
56
|
+
"schema": {
|
|
57
|
+
"type": "string"
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "to_address",
|
|
62
|
+
"in": "query",
|
|
63
|
+
"description": "Filter by destination address.",
|
|
64
|
+
"schema": {
|
|
65
|
+
"type": "string"
|
|
66
|
+
}
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "asset_symbol",
|
|
70
|
+
"in": "query",
|
|
71
|
+
"description": "Filter by destination asset symbol (requires network_id).",
|
|
72
|
+
"schema": {
|
|
73
|
+
"type": "string"
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "status",
|
|
78
|
+
"in": "query",
|
|
79
|
+
"description": "Filter by status.",
|
|
80
|
+
"schema": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"enum": [
|
|
83
|
+
"active",
|
|
84
|
+
"retired"
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"$ref": "#/components/parameters/LimitParam"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"$ref": "#/components/parameters/OffsetParam"
|
|
93
|
+
}
|
|
94
|
+
],
|
|
95
|
+
"responses": {
|
|
96
|
+
"200": {
|
|
97
|
+
"description": "A page of UDA addresses.",
|
|
98
|
+
"content": {
|
|
99
|
+
"application/json": {
|
|
100
|
+
"schema": {
|
|
101
|
+
"$ref": "#/components/schemas/UDAAddressList"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"400": {
|
|
107
|
+
"$ref": "#/components/responses/BadRequest"
|
|
108
|
+
},
|
|
109
|
+
"401": {
|
|
110
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
111
|
+
},
|
|
112
|
+
"500": {
|
|
113
|
+
"$ref": "#/components/responses/ServerError"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
"post": {
|
|
118
|
+
"operationId": "create-uda-address",
|
|
119
|
+
"tags": [
|
|
120
|
+
"UDA"
|
|
121
|
+
],
|
|
122
|
+
"summary": "Create a UDA address",
|
|
123
|
+
"description": "Allocate a new Universal Deposit Address for your tenant. If a UDA for the `(tenant, owner)` pair already exists, the existing record is returned with `200` instead of an error. `accepted_assets` is a list of asset symbols (e.g. `[\"USDC\", \"USDT\"]`); if empty, the UDA accepts every asset configured on every UDA-supported chain.\n",
|
|
124
|
+
"security": [
|
|
125
|
+
{
|
|
126
|
+
"ApiKeyAuth": []
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"requestBody": {
|
|
130
|
+
"required": true,
|
|
131
|
+
"description": "UDA address configuration.",
|
|
132
|
+
"content": {
|
|
133
|
+
"application/json": {
|
|
134
|
+
"schema": {
|
|
135
|
+
"$ref": "#/components/schemas/CreateUDAAddressRequest"
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
},
|
|
140
|
+
"responses": {
|
|
141
|
+
"200": {
|
|
142
|
+
"description": "An existing UDA address for the `(tenant, owner)` pair was returned.",
|
|
143
|
+
"content": {
|
|
144
|
+
"application/json": {
|
|
145
|
+
"schema": {
|
|
146
|
+
"$ref": "#/components/schemas/UDAAddress"
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
},
|
|
151
|
+
"201": {
|
|
152
|
+
"description": "A new UDA address was created.",
|
|
153
|
+
"content": {
|
|
154
|
+
"application/json": {
|
|
155
|
+
"schema": {
|
|
156
|
+
"$ref": "#/components/schemas/UDAAddress"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
"400": {
|
|
162
|
+
"$ref": "#/components/responses/BadRequest"
|
|
163
|
+
},
|
|
164
|
+
"401": {
|
|
165
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"/uda/quote": {
|
|
171
|
+
"get": {
|
|
172
|
+
"operationId": "get-quote",
|
|
173
|
+
"tags": [
|
|
174
|
+
"UDA"
|
|
175
|
+
],
|
|
176
|
+
"summary": "Get a cross-chain / cross-asset quote",
|
|
177
|
+
"description": "Return an indicative quote for routing a given amount from a source `(network, asset)` to a destination `(network, asset)`. This endpoint is public — no API key required. USD fields are omitted until a price feed is wired in.\n",
|
|
178
|
+
"parameters": [
|
|
179
|
+
{
|
|
180
|
+
"name": "from_network_id",
|
|
181
|
+
"in": "query",
|
|
182
|
+
"required": true,
|
|
183
|
+
"description": "Source SLIP-44 network id (e.g. `60`) or EIP-155 chain id (e.g. `1`).",
|
|
184
|
+
"schema": {
|
|
185
|
+
"type": "integer",
|
|
186
|
+
"example": 1
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"name": "from_asset",
|
|
191
|
+
"in": "query",
|
|
192
|
+
"required": true,
|
|
193
|
+
"description": "Source token contract address (use the zero address for the chain's native asset).",
|
|
194
|
+
"schema": {
|
|
195
|
+
"type": "string",
|
|
196
|
+
"example": "0x0000000000000000000000000000000000000000"
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "to_network_id",
|
|
201
|
+
"in": "query",
|
|
202
|
+
"required": true,
|
|
203
|
+
"description": "Destination SLIP-44 network id (e.g. `9006`) or EIP-155 chain id (e.g. `56`).",
|
|
204
|
+
"schema": {
|
|
205
|
+
"type": "integer",
|
|
206
|
+
"example": 56
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"name": "to_asset",
|
|
211
|
+
"in": "query",
|
|
212
|
+
"required": true,
|
|
213
|
+
"description": "Destination token contract address.",
|
|
214
|
+
"schema": {
|
|
215
|
+
"type": "string",
|
|
216
|
+
"example": "0x55d398326f99059fF775485246999027B3197955"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"name": "amount",
|
|
221
|
+
"in": "query",
|
|
222
|
+
"required": true,
|
|
223
|
+
"description": "Source amount as an integer string in the source token's smallest unit.",
|
|
224
|
+
"schema": {
|
|
225
|
+
"type": "string",
|
|
226
|
+
"example": "1000000000000000000"
|
|
227
|
+
}
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "from_address",
|
|
231
|
+
"in": "query",
|
|
232
|
+
"description": "Source (signer) EOA; required for an executable quote.",
|
|
233
|
+
"schema": {
|
|
234
|
+
"type": "string"
|
|
235
|
+
}
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"name": "to_address",
|
|
239
|
+
"in": "query",
|
|
240
|
+
"description": "Destination recipient address; defaults to `from_address` at the provider.",
|
|
241
|
+
"schema": {
|
|
242
|
+
"type": "string"
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
],
|
|
246
|
+
"responses": {
|
|
247
|
+
"200": {
|
|
248
|
+
"description": "An indicative quote.",
|
|
249
|
+
"content": {
|
|
250
|
+
"application/json": {
|
|
251
|
+
"schema": {
|
|
252
|
+
"allOf": [
|
|
253
|
+
{
|
|
254
|
+
"$ref": "#/components/schemas/SuccessEnvelope"
|
|
255
|
+
},
|
|
256
|
+
{
|
|
257
|
+
"type": "object",
|
|
258
|
+
"properties": {
|
|
259
|
+
"data": {
|
|
260
|
+
"$ref": "#/components/schemas/Quote"
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
]
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"400": {
|
|
270
|
+
"$ref": "#/components/responses/BadRequest"
|
|
271
|
+
},
|
|
272
|
+
"500": {
|
|
273
|
+
"$ref": "#/components/responses/ServerError"
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
"/uda/supported-assets": {
|
|
279
|
+
"get": {
|
|
280
|
+
"operationId": "list-supported-assets",
|
|
281
|
+
"tags": [
|
|
282
|
+
"UDA"
|
|
283
|
+
],
|
|
284
|
+
"summary": "List UDA-supported assets",
|
|
285
|
+
"description": "Return every chain with UDA support enabled, along with its native currency and configured token contracts. Rows are grouped by network. This endpoint is public — no API key required.\n",
|
|
286
|
+
"responses": {
|
|
287
|
+
"200": {
|
|
288
|
+
"description": "Supported chains and assets.",
|
|
289
|
+
"content": {
|
|
290
|
+
"application/json": {
|
|
291
|
+
"schema": {
|
|
292
|
+
"$ref": "#/components/schemas/SupportedAssetsResponse"
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"500": {
|
|
298
|
+
"$ref": "#/components/responses/ServerError"
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"/uda/{id}/settlements": {
|
|
304
|
+
"get": {
|
|
305
|
+
"operationId": "list-settlements-for-uda",
|
|
306
|
+
"tags": [
|
|
307
|
+
"UDA"
|
|
308
|
+
],
|
|
309
|
+
"summary": "List settlements for a UDA address",
|
|
310
|
+
"description": "List all settlements created for a given UDA address, optionally paginated.",
|
|
311
|
+
"security": [
|
|
312
|
+
{
|
|
313
|
+
"ApiKeyAuth": []
|
|
314
|
+
}
|
|
315
|
+
],
|
|
316
|
+
"parameters": [
|
|
317
|
+
{
|
|
318
|
+
"name": "id",
|
|
319
|
+
"in": "path",
|
|
320
|
+
"required": true,
|
|
321
|
+
"description": "UDA address id.",
|
|
322
|
+
"schema": {
|
|
323
|
+
"type": "string"
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"$ref": "#/components/parameters/LimitParam"
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
"$ref": "#/components/parameters/OffsetParam"
|
|
331
|
+
}
|
|
332
|
+
],
|
|
333
|
+
"responses": {
|
|
334
|
+
"200": {
|
|
335
|
+
"description": "A page of settlements.",
|
|
336
|
+
"content": {
|
|
337
|
+
"application/json": {
|
|
338
|
+
"schema": {
|
|
339
|
+
"$ref": "#/components/schemas/SettlementList"
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
},
|
|
344
|
+
"401": {
|
|
345
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
346
|
+
},
|
|
347
|
+
"500": {
|
|
348
|
+
"$ref": "#/components/responses/ServerError"
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"/uda/settlements/{id}": {
|
|
354
|
+
"get": {
|
|
355
|
+
"operationId": "get-settlement",
|
|
356
|
+
"tags": [
|
|
357
|
+
"UDA"
|
|
358
|
+
],
|
|
359
|
+
"summary": "Get a settlement",
|
|
360
|
+
"description": "Fetch a single settlement by id. A settlement is created per confirmed deposit on a UDA address and carries the lifecycle state, scenario, and routing transaction ids.\n",
|
|
361
|
+
"security": [
|
|
362
|
+
{
|
|
363
|
+
"ApiKeyAuth": []
|
|
364
|
+
}
|
|
365
|
+
],
|
|
366
|
+
"parameters": [
|
|
367
|
+
{
|
|
368
|
+
"name": "id",
|
|
369
|
+
"in": "path",
|
|
370
|
+
"required": true,
|
|
371
|
+
"description": "Settlement id.",
|
|
372
|
+
"schema": {
|
|
373
|
+
"type": "string"
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
],
|
|
377
|
+
"responses": {
|
|
378
|
+
"200": {
|
|
379
|
+
"description": "The settlement.",
|
|
380
|
+
"content": {
|
|
381
|
+
"application/json": {
|
|
382
|
+
"schema": {
|
|
383
|
+
"$ref": "#/components/schemas/Settlement"
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
},
|
|
388
|
+
"401": {
|
|
389
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
390
|
+
},
|
|
391
|
+
"404": {
|
|
392
|
+
"$ref": "#/components/responses/NotFound"
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
},
|
|
397
|
+
"/uda/settlements/by-reference": {
|
|
398
|
+
"get": {
|
|
399
|
+
"operationId": "list-settlements-by-reference",
|
|
400
|
+
"tags": [
|
|
401
|
+
"UDA"
|
|
402
|
+
],
|
|
403
|
+
"summary": "List settlements by reference",
|
|
404
|
+
"description": "Look up settlements by a reference you already know. The reference is currently the on-chain deposit transaction id that funded the settlement — useful when you know what you paid with but not the internal settlement id. A single deposit transaction can fund multiple settlements, so the response is always a list (empty when nothing matches).\n",
|
|
405
|
+
"security": [
|
|
406
|
+
{
|
|
407
|
+
"ApiKeyAuth": []
|
|
408
|
+
}
|
|
409
|
+
],
|
|
410
|
+
"parameters": [
|
|
411
|
+
{
|
|
412
|
+
"name": "reference",
|
|
413
|
+
"in": "query",
|
|
414
|
+
"required": true,
|
|
415
|
+
"description": "Lookup reference (on-chain deposit transaction id).",
|
|
416
|
+
"schema": {
|
|
417
|
+
"type": "string"
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
],
|
|
421
|
+
"responses": {
|
|
422
|
+
"200": {
|
|
423
|
+
"description": "Matching settlements.",
|
|
424
|
+
"content": {
|
|
425
|
+
"application/json": {
|
|
426
|
+
"schema": {
|
|
427
|
+
"$ref": "#/components/schemas/SettlementsByReference"
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
},
|
|
432
|
+
"400": {
|
|
433
|
+
"$ref": "#/components/responses/BadRequest"
|
|
434
|
+
},
|
|
435
|
+
"401": {
|
|
436
|
+
"$ref": "#/components/responses/Unauthorized"
|
|
437
|
+
},
|
|
438
|
+
"500": {
|
|
439
|
+
"$ref": "#/components/responses/ServerError"
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
},
|
|
445
|
+
"components": {
|
|
446
|
+
"securitySchemes": {
|
|
447
|
+
"ApiKeyAuth": {
|
|
448
|
+
"type": "apiKey",
|
|
449
|
+
"in": "header",
|
|
450
|
+
"name": "X-API-Key",
|
|
451
|
+
"description": "Secret API key for programmatic access. Send it on every authenticated request. Keep it server-side; never ship it in a client bundle.\n"
|
|
452
|
+
}
|
|
453
|
+
},
|
|
454
|
+
"parameters": {
|
|
455
|
+
"LimitParam": {
|
|
456
|
+
"name": "limit",
|
|
457
|
+
"in": "query",
|
|
458
|
+
"description": "Page size (default 50, max 200).",
|
|
459
|
+
"schema": {
|
|
460
|
+
"type": "integer",
|
|
461
|
+
"default": 50,
|
|
462
|
+
"minimum": 1,
|
|
463
|
+
"maximum": 200
|
|
464
|
+
}
|
|
465
|
+
},
|
|
466
|
+
"OffsetParam": {
|
|
467
|
+
"name": "offset",
|
|
468
|
+
"in": "query",
|
|
469
|
+
"description": "Number of items to skip (default 0).",
|
|
470
|
+
"schema": {
|
|
471
|
+
"type": "integer",
|
|
472
|
+
"default": 0,
|
|
473
|
+
"minimum": 0
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
},
|
|
477
|
+
"responses": {
|
|
478
|
+
"BadRequest": {
|
|
479
|
+
"description": "The request was malformed or failed validation.",
|
|
480
|
+
"content": {
|
|
481
|
+
"application/json": {
|
|
482
|
+
"schema": {
|
|
483
|
+
"$ref": "#/components/schemas/Error"
|
|
484
|
+
},
|
|
485
|
+
"example": {
|
|
486
|
+
"success": false,
|
|
487
|
+
"code": 400,
|
|
488
|
+
"error": "invalid request"
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
},
|
|
493
|
+
"Unauthorized": {
|
|
494
|
+
"description": "The `X-API-Key` header is missing or invalid.",
|
|
495
|
+
"content": {
|
|
496
|
+
"application/json": {
|
|
497
|
+
"schema": {
|
|
498
|
+
"$ref": "#/components/schemas/Error"
|
|
499
|
+
},
|
|
500
|
+
"example": {
|
|
501
|
+
"success": false,
|
|
502
|
+
"code": 401,
|
|
503
|
+
"error": "unauthenticated"
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
},
|
|
508
|
+
"NotFound": {
|
|
509
|
+
"description": "The requested resource does not exist.",
|
|
510
|
+
"content": {
|
|
511
|
+
"application/json": {
|
|
512
|
+
"schema": {
|
|
513
|
+
"$ref": "#/components/schemas/Error"
|
|
514
|
+
},
|
|
515
|
+
"example": {
|
|
516
|
+
"success": false,
|
|
517
|
+
"code": 404,
|
|
518
|
+
"error": "not found"
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
},
|
|
523
|
+
"ServerError": {
|
|
524
|
+
"description": "An unexpected error occurred on the server.",
|
|
525
|
+
"content": {
|
|
526
|
+
"application/json": {
|
|
527
|
+
"schema": {
|
|
528
|
+
"$ref": "#/components/schemas/Error"
|
|
529
|
+
},
|
|
530
|
+
"example": {
|
|
531
|
+
"success": false,
|
|
532
|
+
"code": 500,
|
|
533
|
+
"error": "internal server error"
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
},
|
|
539
|
+
"schemas": {
|
|
540
|
+
"Error": {
|
|
541
|
+
"type": "object",
|
|
542
|
+
"description": "Canonical error envelope returned by every endpoint on failure.",
|
|
543
|
+
"properties": {
|
|
544
|
+
"success": {
|
|
545
|
+
"type": "boolean",
|
|
546
|
+
"example": false
|
|
547
|
+
},
|
|
548
|
+
"code": {
|
|
549
|
+
"type": "integer",
|
|
550
|
+
"description": "HTTP status code echoed in the body.",
|
|
551
|
+
"example": 400
|
|
552
|
+
},
|
|
553
|
+
"error": {
|
|
554
|
+
"type": "string",
|
|
555
|
+
"description": "Human-readable error message.",
|
|
556
|
+
"example": "invalid request"
|
|
557
|
+
}
|
|
558
|
+
},
|
|
559
|
+
"required": [
|
|
560
|
+
"success",
|
|
561
|
+
"error"
|
|
562
|
+
]
|
|
563
|
+
},
|
|
564
|
+
"SuccessEnvelope": {
|
|
565
|
+
"type": "object",
|
|
566
|
+
"description": "Wrapper carried by enveloped responses; the payload is in `data`.",
|
|
567
|
+
"properties": {
|
|
568
|
+
"success": {
|
|
569
|
+
"type": "boolean",
|
|
570
|
+
"example": true
|
|
571
|
+
},
|
|
572
|
+
"message": {
|
|
573
|
+
"type": "string",
|
|
574
|
+
"example": "operation completed successfully"
|
|
575
|
+
}
|
|
576
|
+
},
|
|
577
|
+
"required": [
|
|
578
|
+
"success"
|
|
579
|
+
]
|
|
580
|
+
},
|
|
581
|
+
"Pagination": {
|
|
582
|
+
"type": "object",
|
|
583
|
+
"properties": {
|
|
584
|
+
"count": {
|
|
585
|
+
"type": "integer",
|
|
586
|
+
"description": "Number of items in this page.",
|
|
587
|
+
"example": 20
|
|
588
|
+
},
|
|
589
|
+
"limit": {
|
|
590
|
+
"type": "integer",
|
|
591
|
+
"example": 50
|
|
592
|
+
},
|
|
593
|
+
"offset": {
|
|
594
|
+
"type": "integer",
|
|
595
|
+
"example": 0
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
},
|
|
599
|
+
"DestinationInput": {
|
|
600
|
+
"type": "object",
|
|
601
|
+
"description": "Where settlements for this UDA should be delivered.",
|
|
602
|
+
"properties": {
|
|
603
|
+
"address": {
|
|
604
|
+
"type": "string",
|
|
605
|
+
"description": "Destination wallet address.",
|
|
606
|
+
"example": "0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345"
|
|
607
|
+
},
|
|
608
|
+
"network_id": {
|
|
609
|
+
"type": "string",
|
|
610
|
+
"description": "Destination SLIP-44 network id.",
|
|
611
|
+
"example": "60"
|
|
612
|
+
},
|
|
613
|
+
"asset_symbol": {
|
|
614
|
+
"type": "string",
|
|
615
|
+
"description": "Destination asset symbol.",
|
|
616
|
+
"example": "USDC"
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
"required": [
|
|
620
|
+
"address",
|
|
621
|
+
"network_id"
|
|
622
|
+
]
|
|
623
|
+
},
|
|
624
|
+
"RoutingRuleMatchInput": {
|
|
625
|
+
"type": "object",
|
|
626
|
+
"description": "Conditions a deposit must meet for this routing rule to apply.",
|
|
627
|
+
"properties": {
|
|
628
|
+
"source_network_id": {
|
|
629
|
+
"type": "string",
|
|
630
|
+
"example": "60"
|
|
631
|
+
},
|
|
632
|
+
"source_asset_symbol": {
|
|
633
|
+
"type": "string",
|
|
634
|
+
"example": "USDT"
|
|
635
|
+
}
|
|
636
|
+
},
|
|
637
|
+
"required": [
|
|
638
|
+
"source_network_id"
|
|
639
|
+
]
|
|
640
|
+
},
|
|
641
|
+
"RoutingRuleDestinationInput": {
|
|
642
|
+
"type": "object",
|
|
643
|
+
"properties": {
|
|
644
|
+
"address": {
|
|
645
|
+
"type": "string",
|
|
646
|
+
"example": "0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345"
|
|
647
|
+
},
|
|
648
|
+
"network_id": {
|
|
649
|
+
"type": "string",
|
|
650
|
+
"example": "60"
|
|
651
|
+
},
|
|
652
|
+
"asset_symbol": {
|
|
653
|
+
"type": "string",
|
|
654
|
+
"example": "USDC"
|
|
655
|
+
}
|
|
656
|
+
},
|
|
657
|
+
"required": [
|
|
658
|
+
"address",
|
|
659
|
+
"network_id"
|
|
660
|
+
]
|
|
661
|
+
},
|
|
662
|
+
"RoutingRuleInput": {
|
|
663
|
+
"type": "object",
|
|
664
|
+
"properties": {
|
|
665
|
+
"match": {
|
|
666
|
+
"$ref": "#/components/schemas/RoutingRuleMatchInput"
|
|
667
|
+
},
|
|
668
|
+
"destination": {
|
|
669
|
+
"$ref": "#/components/schemas/RoutingRuleDestinationInput"
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
"required": [
|
|
673
|
+
"match",
|
|
674
|
+
"destination"
|
|
675
|
+
]
|
|
676
|
+
},
|
|
677
|
+
"CreateUDAAddressRequest": {
|
|
678
|
+
"type": "object",
|
|
679
|
+
"properties": {
|
|
680
|
+
"owner": {
|
|
681
|
+
"type": "string",
|
|
682
|
+
"description": "The owner the UDA is allocated for.",
|
|
683
|
+
"example": "0x9f8e7d6c5b4a39281706f5e4d3c2b1a098765432"
|
|
684
|
+
},
|
|
685
|
+
"destination": {
|
|
686
|
+
"$ref": "#/components/schemas/DestinationInput"
|
|
687
|
+
},
|
|
688
|
+
"accepted_assets": {
|
|
689
|
+
"type": "array",
|
|
690
|
+
"items": {
|
|
691
|
+
"type": "string"
|
|
692
|
+
},
|
|
693
|
+
"description": "Asset symbols this UDA accepts; empty means every asset on every UDA-supported chain.",
|
|
694
|
+
"example": [
|
|
695
|
+
"USDC",
|
|
696
|
+
"USDT"
|
|
697
|
+
]
|
|
698
|
+
},
|
|
699
|
+
"routing_rules": {
|
|
700
|
+
"type": "array",
|
|
701
|
+
"items": {
|
|
702
|
+
"$ref": "#/components/schemas/RoutingRuleInput"
|
|
703
|
+
},
|
|
704
|
+
"description": "Optional; max 3. Specificity-wins precedence: a rule pinning both `source_network_id` and `source_asset_symbol` beats a network-only rule. When nothing matches, settlements use the default destination.\n"
|
|
705
|
+
}
|
|
706
|
+
},
|
|
707
|
+
"required": [
|
|
708
|
+
"owner",
|
|
709
|
+
"destination"
|
|
710
|
+
],
|
|
711
|
+
"example": {
|
|
712
|
+
"owner": "0x9f8e7d6c5b4a39281706f5e4d3c2b1a098765432",
|
|
713
|
+
"destination": {
|
|
714
|
+
"address": "0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345",
|
|
715
|
+
"network_id": "60",
|
|
716
|
+
"asset_symbol": "USDC"
|
|
717
|
+
},
|
|
718
|
+
"accepted_assets": [
|
|
719
|
+
"USDC",
|
|
720
|
+
"USDT"
|
|
721
|
+
]
|
|
722
|
+
}
|
|
723
|
+
},
|
|
724
|
+
"DepositAsset": {
|
|
725
|
+
"type": "object",
|
|
726
|
+
"properties": {
|
|
727
|
+
"symbol": {
|
|
728
|
+
"type": "string",
|
|
729
|
+
"example": "USDC"
|
|
730
|
+
},
|
|
731
|
+
"address": {
|
|
732
|
+
"type": "string",
|
|
733
|
+
"description": "Token contract address (zero address for native).",
|
|
734
|
+
"example": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
735
|
+
},
|
|
736
|
+
"decimals": {
|
|
737
|
+
"type": "integer",
|
|
738
|
+
"example": 6
|
|
739
|
+
},
|
|
740
|
+
"logo": {
|
|
741
|
+
"type": "string",
|
|
742
|
+
"example": "https://assets.stridge.com/tokens/usdc.png"
|
|
743
|
+
}
|
|
744
|
+
}
|
|
745
|
+
},
|
|
746
|
+
"DepositAddress": {
|
|
747
|
+
"type": "object",
|
|
748
|
+
"description": "A per-chain address a depositor can send funds to.",
|
|
749
|
+
"properties": {
|
|
750
|
+
"address": {
|
|
751
|
+
"type": "string",
|
|
752
|
+
"example": "0x7c2d9a1b3e4f5061728394a5b6c7d8e9f0a1b2c3"
|
|
753
|
+
},
|
|
754
|
+
"network_id": {
|
|
755
|
+
"type": "string",
|
|
756
|
+
"example": "60"
|
|
757
|
+
},
|
|
758
|
+
"eip155_id": {
|
|
759
|
+
"type": "string",
|
|
760
|
+
"example": "1"
|
|
761
|
+
},
|
|
762
|
+
"network_name": {
|
|
763
|
+
"type": "string",
|
|
764
|
+
"example": "Ethereum"
|
|
765
|
+
},
|
|
766
|
+
"accepted_assets": {
|
|
767
|
+
"type": "array",
|
|
768
|
+
"items": {
|
|
769
|
+
"$ref": "#/components/schemas/DepositAsset"
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
},
|
|
774
|
+
"Destination": {
|
|
775
|
+
"type": "object",
|
|
776
|
+
"description": "Resolved destination (symbol plus the resolved contract address).",
|
|
777
|
+
"properties": {
|
|
778
|
+
"address": {
|
|
779
|
+
"type": "string",
|
|
780
|
+
"example": "0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345"
|
|
781
|
+
},
|
|
782
|
+
"network_id": {
|
|
783
|
+
"type": "string",
|
|
784
|
+
"example": "60"
|
|
785
|
+
},
|
|
786
|
+
"eip155_id": {
|
|
787
|
+
"type": "string",
|
|
788
|
+
"example": "1"
|
|
789
|
+
},
|
|
790
|
+
"network_name": {
|
|
791
|
+
"type": "string",
|
|
792
|
+
"example": "Ethereum"
|
|
793
|
+
},
|
|
794
|
+
"asset_symbol": {
|
|
795
|
+
"type": "string",
|
|
796
|
+
"example": "USDC"
|
|
797
|
+
},
|
|
798
|
+
"asset_address": {
|
|
799
|
+
"type": "string",
|
|
800
|
+
"example": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
801
|
+
},
|
|
802
|
+
"asset_decimals": {
|
|
803
|
+
"type": "integer",
|
|
804
|
+
"example": 6
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
"RoutingRuleMatch": {
|
|
809
|
+
"type": "object",
|
|
810
|
+
"properties": {
|
|
811
|
+
"source_network_id": {
|
|
812
|
+
"type": "string",
|
|
813
|
+
"example": "60"
|
|
814
|
+
},
|
|
815
|
+
"source_asset_symbol": {
|
|
816
|
+
"type": "string",
|
|
817
|
+
"example": "USDT"
|
|
818
|
+
},
|
|
819
|
+
"source_token_address": {
|
|
820
|
+
"type": "string",
|
|
821
|
+
"example": "0xdAC17F958D2ee523a2206206994597C13D831ec7"
|
|
822
|
+
}
|
|
823
|
+
}
|
|
824
|
+
},
|
|
825
|
+
"RoutingRuleDestination": {
|
|
826
|
+
"type": "object",
|
|
827
|
+
"properties": {
|
|
828
|
+
"address": {
|
|
829
|
+
"type": "string",
|
|
830
|
+
"example": "0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345"
|
|
831
|
+
},
|
|
832
|
+
"network_id": {
|
|
833
|
+
"type": "string",
|
|
834
|
+
"example": "60"
|
|
835
|
+
},
|
|
836
|
+
"eip155_id": {
|
|
837
|
+
"type": "string",
|
|
838
|
+
"example": "1"
|
|
839
|
+
},
|
|
840
|
+
"network_name": {
|
|
841
|
+
"type": "string",
|
|
842
|
+
"example": "Ethereum"
|
|
843
|
+
},
|
|
844
|
+
"asset_symbol": {
|
|
845
|
+
"type": "string",
|
|
846
|
+
"example": "USDC"
|
|
847
|
+
},
|
|
848
|
+
"asset_address": {
|
|
849
|
+
"type": "string",
|
|
850
|
+
"example": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
851
|
+
},
|
|
852
|
+
"asset_decimals": {
|
|
853
|
+
"type": "integer",
|
|
854
|
+
"example": 6
|
|
855
|
+
}
|
|
856
|
+
}
|
|
857
|
+
},
|
|
858
|
+
"RoutingRule": {
|
|
859
|
+
"type": "object",
|
|
860
|
+
"description": "An echoed routing rule in dual form (symbol plus resolved contract address).",
|
|
861
|
+
"properties": {
|
|
862
|
+
"match": {
|
|
863
|
+
"$ref": "#/components/schemas/RoutingRuleMatch"
|
|
864
|
+
},
|
|
865
|
+
"destination": {
|
|
866
|
+
"$ref": "#/components/schemas/RoutingRuleDestination"
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
},
|
|
870
|
+
"UDAAddress": {
|
|
871
|
+
"type": "object",
|
|
872
|
+
"properties": {
|
|
873
|
+
"id": {
|
|
874
|
+
"type": "string",
|
|
875
|
+
"example": "uda_2f8c1a9d4e5f6071"
|
|
876
|
+
},
|
|
877
|
+
"owner": {
|
|
878
|
+
"type": "string",
|
|
879
|
+
"example": "0x9f8e7d6c5b4a39281706f5e4d3c2b1a098765432"
|
|
880
|
+
},
|
|
881
|
+
"status": {
|
|
882
|
+
"type": "string",
|
|
883
|
+
"enum": [
|
|
884
|
+
"active",
|
|
885
|
+
"retired"
|
|
886
|
+
],
|
|
887
|
+
"example": "active"
|
|
888
|
+
},
|
|
889
|
+
"created_at": {
|
|
890
|
+
"type": "string",
|
|
891
|
+
"format": "date-time",
|
|
892
|
+
"example": "2026-05-20T14:03:12Z"
|
|
893
|
+
},
|
|
894
|
+
"destination": {
|
|
895
|
+
"$ref": "#/components/schemas/Destination"
|
|
896
|
+
},
|
|
897
|
+
"deposit_addresses": {
|
|
898
|
+
"type": "array",
|
|
899
|
+
"items": {
|
|
900
|
+
"$ref": "#/components/schemas/DepositAddress"
|
|
901
|
+
}
|
|
902
|
+
},
|
|
903
|
+
"routing_rules": {
|
|
904
|
+
"type": "array",
|
|
905
|
+
"description": "Empty when no rules are configured.",
|
|
906
|
+
"items": {
|
|
907
|
+
"$ref": "#/components/schemas/RoutingRule"
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
"UDAAddressList": {
|
|
913
|
+
"type": "object",
|
|
914
|
+
"properties": {
|
|
915
|
+
"data": {
|
|
916
|
+
"type": "array",
|
|
917
|
+
"items": {
|
|
918
|
+
"$ref": "#/components/schemas/UDAAddress"
|
|
919
|
+
}
|
|
920
|
+
},
|
|
921
|
+
"pagination": {
|
|
922
|
+
"$ref": "#/components/schemas/Pagination"
|
|
923
|
+
}
|
|
924
|
+
}
|
|
925
|
+
},
|
|
926
|
+
"QuoteSide": {
|
|
927
|
+
"type": "object",
|
|
928
|
+
"properties": {
|
|
929
|
+
"network_id": {
|
|
930
|
+
"type": "integer",
|
|
931
|
+
"description": "EIP-155 chain id for this side.",
|
|
932
|
+
"example": 1
|
|
933
|
+
},
|
|
934
|
+
"asset_address": {
|
|
935
|
+
"type": "string",
|
|
936
|
+
"example": "0x0000000000000000000000000000000000000000"
|
|
937
|
+
},
|
|
938
|
+
"amount": {
|
|
939
|
+
"type": "string",
|
|
940
|
+
"description": "Amount in the asset's smallest unit.",
|
|
941
|
+
"example": "1000000000000000000"
|
|
942
|
+
}
|
|
943
|
+
}
|
|
944
|
+
},
|
|
945
|
+
"QuoteFeeItem": {
|
|
946
|
+
"type": "object",
|
|
947
|
+
"properties": {
|
|
948
|
+
"kind": {
|
|
949
|
+
"type": "string",
|
|
950
|
+
"example": "platform"
|
|
951
|
+
},
|
|
952
|
+
"amount": {
|
|
953
|
+
"type": "string",
|
|
954
|
+
"example": "2500000000000000"
|
|
955
|
+
},
|
|
956
|
+
"source": {
|
|
957
|
+
"type": "string",
|
|
958
|
+
"example": "stridge"
|
|
959
|
+
},
|
|
960
|
+
"recipient": {
|
|
961
|
+
"type": "string",
|
|
962
|
+
"example": "0xfee0000000000000000000000000000000000000"
|
|
963
|
+
}
|
|
964
|
+
}
|
|
965
|
+
},
|
|
966
|
+
"QuoteFees": {
|
|
967
|
+
"type": "object",
|
|
968
|
+
"properties": {
|
|
969
|
+
"total_fee": {
|
|
970
|
+
"type": "string",
|
|
971
|
+
"example": "3500000000000000"
|
|
972
|
+
},
|
|
973
|
+
"gas_fee": {
|
|
974
|
+
"type": "string",
|
|
975
|
+
"example": "1000000000000000"
|
|
976
|
+
},
|
|
977
|
+
"network_reserve": {
|
|
978
|
+
"type": "string",
|
|
979
|
+
"description": "Chain-level reserve (e.g. TRON bandwidth).",
|
|
980
|
+
"example": "0"
|
|
981
|
+
},
|
|
982
|
+
"platform_fee": {
|
|
983
|
+
"type": "string",
|
|
984
|
+
"example": "2500000000000000"
|
|
985
|
+
},
|
|
986
|
+
"provider_fee": {
|
|
987
|
+
"type": "string",
|
|
988
|
+
"description": "Third-party (e.g. LiFi / Relay) fee.",
|
|
989
|
+
"example": "0"
|
|
990
|
+
},
|
|
991
|
+
"items": {
|
|
992
|
+
"type": "array",
|
|
993
|
+
"items": {
|
|
994
|
+
"$ref": "#/components/schemas/QuoteFeeItem"
|
|
995
|
+
}
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
},
|
|
999
|
+
"QuoteRoute": {
|
|
1000
|
+
"type": "object",
|
|
1001
|
+
"properties": {
|
|
1002
|
+
"provider": {
|
|
1003
|
+
"type": "string",
|
|
1004
|
+
"example": "lifi"
|
|
1005
|
+
},
|
|
1006
|
+
"scenario": {
|
|
1007
|
+
"type": "string",
|
|
1008
|
+
"example": "cross_chain_swap"
|
|
1009
|
+
},
|
|
1010
|
+
"estimated_time_seconds": {
|
|
1011
|
+
"type": "integer",
|
|
1012
|
+
"example": 45
|
|
1013
|
+
}
|
|
1014
|
+
}
|
|
1015
|
+
},
|
|
1016
|
+
"Quote": {
|
|
1017
|
+
"type": "object",
|
|
1018
|
+
"properties": {
|
|
1019
|
+
"from": {
|
|
1020
|
+
"$ref": "#/components/schemas/QuoteSide"
|
|
1021
|
+
},
|
|
1022
|
+
"to": {
|
|
1023
|
+
"$ref": "#/components/schemas/QuoteSide"
|
|
1024
|
+
},
|
|
1025
|
+
"exchange_rate": {
|
|
1026
|
+
"type": "string",
|
|
1027
|
+
"example": "0.9985"
|
|
1028
|
+
},
|
|
1029
|
+
"expires_at": {
|
|
1030
|
+
"type": "string",
|
|
1031
|
+
"format": "date-time",
|
|
1032
|
+
"example": "2026-05-29T12:05:00Z"
|
|
1033
|
+
},
|
|
1034
|
+
"fees": {
|
|
1035
|
+
"$ref": "#/components/schemas/QuoteFees"
|
|
1036
|
+
},
|
|
1037
|
+
"route": {
|
|
1038
|
+
"$ref": "#/components/schemas/QuoteRoute"
|
|
1039
|
+
}
|
|
1040
|
+
}
|
|
1041
|
+
},
|
|
1042
|
+
"SettlementDeposit": {
|
|
1043
|
+
"type": "object",
|
|
1044
|
+
"properties": {
|
|
1045
|
+
"address": {
|
|
1046
|
+
"type": "string",
|
|
1047
|
+
"example": "0x7c2d9a1b3e4f5061728394a5b6c7d8e9f0a1b2c3"
|
|
1048
|
+
},
|
|
1049
|
+
"amount": {
|
|
1050
|
+
"type": "string",
|
|
1051
|
+
"example": "1000000"
|
|
1052
|
+
},
|
|
1053
|
+
"asset_symbol": {
|
|
1054
|
+
"type": "string",
|
|
1055
|
+
"example": "USDC"
|
|
1056
|
+
},
|
|
1057
|
+
"asset_address": {
|
|
1058
|
+
"type": "string",
|
|
1059
|
+
"example": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
1060
|
+
},
|
|
1061
|
+
"network_id": {
|
|
1062
|
+
"type": "integer",
|
|
1063
|
+
"example": 1
|
|
1064
|
+
},
|
|
1065
|
+
"network_name": {
|
|
1066
|
+
"type": "string",
|
|
1067
|
+
"example": "Ethereum"
|
|
1068
|
+
},
|
|
1069
|
+
"tx_hash": {
|
|
1070
|
+
"type": "string",
|
|
1071
|
+
"example": "0xab12cd34ef56...7890"
|
|
1072
|
+
},
|
|
1073
|
+
"confirmed_at": {
|
|
1074
|
+
"type": "string",
|
|
1075
|
+
"format": "date-time",
|
|
1076
|
+
"example": "2026-05-29T11:58:40Z"
|
|
1077
|
+
}
|
|
1078
|
+
}
|
|
1079
|
+
},
|
|
1080
|
+
"SettlementOutbound": {
|
|
1081
|
+
"type": "object",
|
|
1082
|
+
"properties": {
|
|
1083
|
+
"address": {
|
|
1084
|
+
"type": "string",
|
|
1085
|
+
"example": "0x3a1f8b2c9d4e5f60718293a4b5c6d7e8f9012345"
|
|
1086
|
+
},
|
|
1087
|
+
"amount": {
|
|
1088
|
+
"type": "string",
|
|
1089
|
+
"example": "998500"
|
|
1090
|
+
},
|
|
1091
|
+
"asset_symbol": {
|
|
1092
|
+
"type": "string",
|
|
1093
|
+
"example": "USDC"
|
|
1094
|
+
},
|
|
1095
|
+
"asset_address": {
|
|
1096
|
+
"type": "string",
|
|
1097
|
+
"example": "0x55d398326f99059fF775485246999027B3197955"
|
|
1098
|
+
},
|
|
1099
|
+
"network_id": {
|
|
1100
|
+
"type": "integer",
|
|
1101
|
+
"example": 56
|
|
1102
|
+
},
|
|
1103
|
+
"network_name": {
|
|
1104
|
+
"type": "string",
|
|
1105
|
+
"example": "BNB Smart Chain"
|
|
1106
|
+
},
|
|
1107
|
+
"tx_hash": {
|
|
1108
|
+
"type": "string",
|
|
1109
|
+
"example": "0xcd34ef5678...90ab"
|
|
1110
|
+
},
|
|
1111
|
+
"settled_at": {
|
|
1112
|
+
"type": "string",
|
|
1113
|
+
"format": "date-time",
|
|
1114
|
+
"example": "2026-05-29T11:59:25Z"
|
|
1115
|
+
}
|
|
1116
|
+
}
|
|
1117
|
+
},
|
|
1118
|
+
"SettlementFees": {
|
|
1119
|
+
"type": "object",
|
|
1120
|
+
"properties": {
|
|
1121
|
+
"total": {
|
|
1122
|
+
"type": "string",
|
|
1123
|
+
"example": "1500"
|
|
1124
|
+
},
|
|
1125
|
+
"platform": {
|
|
1126
|
+
"type": "string",
|
|
1127
|
+
"example": "1500"
|
|
1128
|
+
},
|
|
1129
|
+
"provider": {
|
|
1130
|
+
"type": "string",
|
|
1131
|
+
"example": "0"
|
|
1132
|
+
},
|
|
1133
|
+
"fee_amount": {
|
|
1134
|
+
"type": "string",
|
|
1135
|
+
"description": "Equal to `total` (back-compat field).",
|
|
1136
|
+
"example": "1500"
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
},
|
|
1140
|
+
"SettlementRoute": {
|
|
1141
|
+
"type": "object",
|
|
1142
|
+
"properties": {
|
|
1143
|
+
"provider": {
|
|
1144
|
+
"type": "string",
|
|
1145
|
+
"example": "lifi"
|
|
1146
|
+
},
|
|
1147
|
+
"type": {
|
|
1148
|
+
"type": "string",
|
|
1149
|
+
"example": "cross_chain_swap"
|
|
1150
|
+
},
|
|
1151
|
+
"time_ms": {
|
|
1152
|
+
"type": "integer",
|
|
1153
|
+
"example": 45000
|
|
1154
|
+
}
|
|
1155
|
+
}
|
|
1156
|
+
},
|
|
1157
|
+
"Settlement": {
|
|
1158
|
+
"type": "object",
|
|
1159
|
+
"properties": {
|
|
1160
|
+
"id": {
|
|
1161
|
+
"type": "string",
|
|
1162
|
+
"example": "stl_71829304a5b6c7d8"
|
|
1163
|
+
},
|
|
1164
|
+
"uda_id": {
|
|
1165
|
+
"type": "string",
|
|
1166
|
+
"example": "uda_2f8c1a9d4e5f6071"
|
|
1167
|
+
},
|
|
1168
|
+
"status": {
|
|
1169
|
+
"type": "string",
|
|
1170
|
+
"enum": [
|
|
1171
|
+
"created",
|
|
1172
|
+
"routing",
|
|
1173
|
+
"completed",
|
|
1174
|
+
"failed",
|
|
1175
|
+
"retrying"
|
|
1176
|
+
],
|
|
1177
|
+
"example": "completed"
|
|
1178
|
+
},
|
|
1179
|
+
"created_at": {
|
|
1180
|
+
"type": "string",
|
|
1181
|
+
"format": "date-time",
|
|
1182
|
+
"example": "2026-05-29T11:58:41Z"
|
|
1183
|
+
},
|
|
1184
|
+
"updated_at": {
|
|
1185
|
+
"type": "string",
|
|
1186
|
+
"format": "date-time",
|
|
1187
|
+
"example": "2026-05-29T11:59:25Z"
|
|
1188
|
+
},
|
|
1189
|
+
"error": {
|
|
1190
|
+
"type": "string",
|
|
1191
|
+
"description": "Failure reason when `status` is `failed`; empty otherwise.",
|
|
1192
|
+
"example": ""
|
|
1193
|
+
},
|
|
1194
|
+
"deposit": {
|
|
1195
|
+
"$ref": "#/components/schemas/SettlementDeposit"
|
|
1196
|
+
},
|
|
1197
|
+
"settlement": {
|
|
1198
|
+
"$ref": "#/components/schemas/SettlementOutbound"
|
|
1199
|
+
},
|
|
1200
|
+
"fees": {
|
|
1201
|
+
"$ref": "#/components/schemas/SettlementFees"
|
|
1202
|
+
},
|
|
1203
|
+
"route": {
|
|
1204
|
+
"$ref": "#/components/schemas/SettlementRoute"
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
},
|
|
1208
|
+
"SettlementList": {
|
|
1209
|
+
"type": "object",
|
|
1210
|
+
"properties": {
|
|
1211
|
+
"data": {
|
|
1212
|
+
"type": "array",
|
|
1213
|
+
"items": {
|
|
1214
|
+
"$ref": "#/components/schemas/Settlement"
|
|
1215
|
+
}
|
|
1216
|
+
},
|
|
1217
|
+
"pagination": {
|
|
1218
|
+
"$ref": "#/components/schemas/Pagination"
|
|
1219
|
+
}
|
|
1220
|
+
}
|
|
1221
|
+
},
|
|
1222
|
+
"SettlementsByReference": {
|
|
1223
|
+
"type": "object",
|
|
1224
|
+
"properties": {
|
|
1225
|
+
"reference": {
|
|
1226
|
+
"type": "string",
|
|
1227
|
+
"description": "The reference that was looked up.",
|
|
1228
|
+
"example": "0xab12cd34ef56...7890"
|
|
1229
|
+
},
|
|
1230
|
+
"count": {
|
|
1231
|
+
"type": "integer",
|
|
1232
|
+
"example": 1
|
|
1233
|
+
},
|
|
1234
|
+
"data": {
|
|
1235
|
+
"type": "array",
|
|
1236
|
+
"items": {
|
|
1237
|
+
"$ref": "#/components/schemas/Settlement"
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
}
|
|
1241
|
+
},
|
|
1242
|
+
"NativeCurrency": {
|
|
1243
|
+
"type": "object",
|
|
1244
|
+
"properties": {
|
|
1245
|
+
"symbol": {
|
|
1246
|
+
"type": "string",
|
|
1247
|
+
"example": "ETH"
|
|
1248
|
+
},
|
|
1249
|
+
"name": {
|
|
1250
|
+
"type": "string",
|
|
1251
|
+
"example": "Ether"
|
|
1252
|
+
},
|
|
1253
|
+
"decimals": {
|
|
1254
|
+
"type": "integer",
|
|
1255
|
+
"example": 18
|
|
1256
|
+
},
|
|
1257
|
+
"logo": {
|
|
1258
|
+
"type": "string",
|
|
1259
|
+
"example": "https://assets.stridge.com/tokens/eth.png"
|
|
1260
|
+
},
|
|
1261
|
+
"min_deposit_usd": {
|
|
1262
|
+
"type": "string",
|
|
1263
|
+
"example": "1.00"
|
|
1264
|
+
},
|
|
1265
|
+
"price_impact": {
|
|
1266
|
+
"type": "string",
|
|
1267
|
+
"example": "0"
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
},
|
|
1271
|
+
"AssetInfo": {
|
|
1272
|
+
"type": "object",
|
|
1273
|
+
"properties": {
|
|
1274
|
+
"symbol": {
|
|
1275
|
+
"type": "string",
|
|
1276
|
+
"example": "USDC"
|
|
1277
|
+
},
|
|
1278
|
+
"name": {
|
|
1279
|
+
"type": "string",
|
|
1280
|
+
"example": "USD Coin"
|
|
1281
|
+
},
|
|
1282
|
+
"address": {
|
|
1283
|
+
"type": "string",
|
|
1284
|
+
"example": "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48"
|
|
1285
|
+
},
|
|
1286
|
+
"decimals": {
|
|
1287
|
+
"type": "integer",
|
|
1288
|
+
"example": 6
|
|
1289
|
+
},
|
|
1290
|
+
"logo": {
|
|
1291
|
+
"type": "string",
|
|
1292
|
+
"example": "https://assets.stridge.com/tokens/usdc.png"
|
|
1293
|
+
},
|
|
1294
|
+
"min_deposit_usd": {
|
|
1295
|
+
"type": "string",
|
|
1296
|
+
"example": "1.00"
|
|
1297
|
+
},
|
|
1298
|
+
"price_impact": {
|
|
1299
|
+
"type": "string",
|
|
1300
|
+
"example": "0"
|
|
1301
|
+
}
|
|
1302
|
+
}
|
|
1303
|
+
},
|
|
1304
|
+
"SupportedAssetChain": {
|
|
1305
|
+
"type": "object",
|
|
1306
|
+
"properties": {
|
|
1307
|
+
"network_id": {
|
|
1308
|
+
"type": "string",
|
|
1309
|
+
"example": "60"
|
|
1310
|
+
},
|
|
1311
|
+
"network_name": {
|
|
1312
|
+
"type": "string",
|
|
1313
|
+
"example": "Ethereum"
|
|
1314
|
+
},
|
|
1315
|
+
"network_symbol": {
|
|
1316
|
+
"type": "string",
|
|
1317
|
+
"example": "ETH"
|
|
1318
|
+
},
|
|
1319
|
+
"eip155_id": {
|
|
1320
|
+
"type": "integer",
|
|
1321
|
+
"example": 1
|
|
1322
|
+
},
|
|
1323
|
+
"chain_type": {
|
|
1324
|
+
"type": "string",
|
|
1325
|
+
"enum": [
|
|
1326
|
+
"EVM",
|
|
1327
|
+
"TVM"
|
|
1328
|
+
],
|
|
1329
|
+
"example": "EVM"
|
|
1330
|
+
},
|
|
1331
|
+
"native_currency": {
|
|
1332
|
+
"$ref": "#/components/schemas/NativeCurrency"
|
|
1333
|
+
},
|
|
1334
|
+
"assets": {
|
|
1335
|
+
"type": "array",
|
|
1336
|
+
"items": {
|
|
1337
|
+
"$ref": "#/components/schemas/AssetInfo"
|
|
1338
|
+
}
|
|
1339
|
+
}
|
|
1340
|
+
}
|
|
1341
|
+
},
|
|
1342
|
+
"SupportedAssetsResponse": {
|
|
1343
|
+
"type": "object",
|
|
1344
|
+
"properties": {
|
|
1345
|
+
"assets": {
|
|
1346
|
+
"type": "array",
|
|
1347
|
+
"items": {
|
|
1348
|
+
"$ref": "#/components/schemas/SupportedAssetChain"
|
|
1349
|
+
}
|
|
1350
|
+
}
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
}
|
|
1354
|
+
}
|
|
1355
|
+
}
|