> 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/wallets.md).

# Wallets

## GET /api/wallets

> Get paginated list of wallets

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/wallets":{"get":{"operationId":"WalletController_paginate","summary":"Get paginated list of wallets","parameters":[{"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 wallets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseDto"}}}}},"tags":["wallets"]}}},"components":{"schemas":{"BaseResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object"},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```

## POST /api/wallets

> Add a wallet and link it to the authenticated account

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/wallets":{"post":{"operationId":"WalletController_addWallet","summary":"Add a wallet and link it to the authenticated account","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddWalletDto"}}}},"responses":{"201":{"description":"The wallet has been successfully added","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseDto"}}}}},"tags":["wallets"]}}},"components":{"schemas":{"AddWalletDto":{"type":"object","properties":{"chain":{"type":"string","enum":["bitcoin","evm","solana"],"description":"Blockchain network of the wallet"},"provider":{"type":"string","description":"Wallet provider / software used"},"publicKey":{"type":"string","description":"Public key of the wallet"},"message":{"type":"string","description":"Message (timestamp in ms) signed by the wallet"},"signature":{"type":"string","description":"Signature of the message produced by the wallet"},"userAddress":{"type":"string","description":"Wallet address (required for BTC; derived from signature for EVM/SOL)"},"isDefault":{"type":"boolean","description":"Mark this wallet as the default for its chain"}},"required":["chain","provider","publicKey","message","signature"]},"BaseResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object"},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```

## GET /api/wallets/details

>

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/wallets/details":{"get":{"operationId":"WalletController_details","parameters":[],"responses":{"200":{"description":"Get wallet details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseDto"}}}}},"tags":["wallets"]}}},"components":{"schemas":{"BaseResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object"},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```

## GET /api/wallets/details/{userAddress}

> Check wallet existed

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/wallets/details/{userAddress}":{"get":{"operationId":"WalletController_getDetails","summary":"Check wallet existed","parameters":[{"name":"userAddress","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The wallet has been successfully checked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseDto"}}}}},"tags":["wallets"]}}},"components":{"schemas":{"BaseResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object"},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```

## PATCH /api/wallets/{id}

> Update a wallet by ID

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/wallets/{id}":{"patch":{"operationId":"WalletController_updateWalletById","summary":"Update a wallet by ID","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWalletDto"}}}},"responses":{"200":{"description":"The wallet has been successfully updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseDto"}}}}},"tags":["wallets"]}}},"components":{"schemas":{"UpdateWalletDto":{"type":"object","properties":{"isDefault":{"type":"boolean"}}},"BaseResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object"},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```

## PUT /api/wallets/{id}/unlink

> Unlink a provider-connected wallet from the authenticated account

```json
{"openapi":"3.0.0","info":{"title":"Radfi API","version":"1.0"},"servers":[{"url":"https://api.bound.exchange","description":"Production"}],"paths":{"/api/wallets/{id}/unlink":{"put":{"operationId":"WalletController_unlinkWallet","summary":"Unlink a provider-connected wallet from the authenticated account","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":"The wallet has been successfully unlinked","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BaseResponseDto"}}}}},"tags":["wallets"]}}},"components":{"schemas":{"BaseResponseDto":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"data":{"type":"object"},"metaData":{"$ref":"#/components/schemas/ResponseMetaData"}},"required":["code","message","data","metaData"]},"ResponseMetaData":{"type":"object","properties":{"totalItems":{"type":"number"},"currentPage":{"type":"number"},"pageSize":{"type":"number"},"totalPages":{"type":"number"}},"required":["totalItems","currentPage","pageSize","totalPages"]}}}}
```
