Withdraw
Send funds from your custodial balance to an external address. Estimate the fee first, then create the withdrawal. Supported on EVM and Tron networks. All endpoints require authentication.
Estimate Withdraw
POST /api/v1/withdraws/estimate
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
amount | number | Yes | Amount to withdraw |
network | string | Yes | Network token code |
recipientAddress | string | Yes | Destination address |
{
"amount": 50,
"network": "USDT",
"recipientAddress": "0xdef..."
}Response 200
{
"data": {
"amount": 50,
"withdrawGasFee": 0.5,
"withdrawTransactionFee": "exclusive",
"netAmount": 49.5,
"totalDeducted": 50.5,
"networkTokenCode": "USDT",
"network": "ethereum",
"recipientAddress": "0xdef..."
}
}| Code | Meaning |
|---|---|
| 400 | Invalid amount/recipient/token, insufficient balance, or fee exceeds amount |
Create Withdraw
POST /api/v1/withdraws
Same body as estimate, plus optional reference (string).
Response 201
{
"data": {
"id": "wd_abc123",
"amount": 50,
"withdrawGasFee": 0.5,
"withdrawTransactionFee": "exclusive",
"netAmount": 49.5,
"totalDeducted": 50.5,
"amountInDecimals": "50000000",
"networkTokenCode": "USDT",
"network": "ethereum",
"recipientAddress": "0xdef...",
"reference": null,
"status": "pending",
"withdrawWalletId": "wal_1"
}
}status can be pending, success, failed, or canceled.
| Code | Meaning |
|---|---|
| 400 | Validation error or insufficient balance |
| 503 | MPC signing service unavailable |
List Withdraws
GET /api/v1/withdraws
Query Parameters
| Param | Type | Default | Description |
|---|---|---|---|
page | int | 1 | Page number |
limit | int | 20 | Items per page |
status | string | — | Filter by status |
networkTokenCode | string | — | Filter by token code |
network | string | — | Filter by network |
Response 200
{
"data": {
"items": [ /* withdraw objects */ ],
"total": 10,
"page": 1,
"limit": 20
}
}Get Withdraw
GET /api/v1/withdraws/:id → { "data": { /* withdraw */ } }
| Code | Meaning |
|---|---|
| 404 | Withdraw not found |