> For the complete documentation index, see [llms.txt](https://bound-1.gitbook.io/bound-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://bound-1.gitbook.io/bound-docs/developer-guide/api-reference/sodax.md).

# Sodax

## POST /api/sodax/transaction

> Create Sodax transaction

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"CreateSodaxTxDto":{"type":"object","properties":{"type":{"type":"string","enum":["sodax-withdraw","sodax-withdraw-musig2","sodax-solver-swap"]},"params":{"type":"object"}},"required":["type","params"]}}},"paths":{"/api/sodax/transaction":{"post":{"operationId":"SodaxController_createTransaction","summary":"Create Sodax transaction","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSodaxTxDto"}}}},"responses":{"201":{"description":""}},"tags":["sodax"]}}}}
```

## GET /api/sodax/affiliate

> Get affiliate fee

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}}},"paths":{"/api/sodax/affiliate":{"get":{"operationId":"SodaxController_getAffiliateInfo","summary":"Get affiliate fee","parameters":[],"responses":{"200":{"description":""}},"tags":["sodax"]}}}}
```

## POST /api/sodax/transaction/sign

> Sign and broadcast Sodax transaction

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"SignSodaxTransactionDto":{"type":"object","properties":{"type":{"type":"string","enum":["sodax-withdraw","sodax-withdraw-musig2","sodax-solver-swap"]},"params":{"$ref":"#/components/schemas/SignSodaxTransactionParamsDto"}},"required":["type","params"]},"SignSodaxTransactionParamsDto":{"type":"object","properties":{"userAddress":{"type":"string","description":"Set from JWT token. Do not send from client."},"signedBase64Tx":{"type":"string"},"relayData":{"description":"Relay extra data from SDK createIntent(). Required for BTC relay resubmit.","allOf":[{"$ref":"#/components/schemas/RelayDataDto"}]}},"required":["signedBase64Tx"]},"RelayDataDto":{"type":"object","properties":{"address":{"type":"string","description":"Hub destination address"},"payload":{"type":"string","description":"Encoded intent instruction payload"}},"required":["address","payload"]}}},"paths":{"/api/sodax/transaction/sign":{"post":{"operationId":"SodaxController_signAndBroadcast","summary":"Sign and broadcast Sodax transaction","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SignSodaxTransactionDto"}}}},"responses":{"201":{"description":""}},"tags":["sodax"]}}}}
```

## GET /api/sodax/transactions/{txId}/status

> Get swap lifecycle status by txId

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"security":[{"bearer":[]}],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}}},"paths":{"/api/sodax/transactions/{txId}/status":{"get":{"operationId":"SodaxController_getSwapStatus","summary":"Get swap lifecycle status by txId","parameters":[{"name":"txId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"Swap lifecycle status"}},"tags":["sodax"]}}}}
```

## GET /api/sodax/transactions

> Get Sodax transactions

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/sodax/transactions":{"get":{"operationId":"SodaxController_getTransactions","summary":"Get Sodax transactions","parameters":[{"name":"relatedAddress_eq","required":false,"in":"query","description":"Match rows where tradingAddress OR withdrawTo equals this Bitcoin address (e.g. musig2 withdrawTo).","schema":{"type":"string"}},{"name":"intentToken_eq","required":false,"in":"query","description":"Match rows where intent.inputToken OR intent.outputToken equals this value (e.g. EVM token address). Use with relatedAddress_eq for (intent OR intent) AND (tradingAddress OR withdrawTo).","schema":{"type":"string"}},{"name":"page","required":false,"in":"query","description":"Page number (default: 1)","schema":{"type":"number"}},{"name":"pageSize","required":false,"in":"query","description":"Number of items per page (default: 10)","schema":{"type":"number"}},{"name":"sort","required":false,"in":"query","description":"Sort field and order. Use - prefix for descending. Example: -createdAt, createdAt","schema":{"type":"string"}},{"name":"select","required":false,"in":"query","description":"Fields to select (comma separated). Use + prefix to include hidden fields. Example: name,status,+holders","schema":{"type":"string"}},{"name":"populate","required":false,"in":"query","description":"Relations to populate (comma separated). Example: wallet,token","schema":{"type":"string"}}],"responses":{"200":{"description":"Get Sodax transactions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SodaxResponseDto"}}}}},"tags":["sodax"]}}},"components":{"schemas":{"SodaxResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"array","items":{"$ref":"#/components/schemas/PartnerTxEntity"}},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"PartnerTxEntity":{"type":"object","properties":{}},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```
