Withdraw from Wallet
POST /v1/wallets/{wallet_id}/withdraw
Initiates a withdrawal from a wallet to a specified blockchain address. The withdrawal is processed asynchronously.
Permissionless Transfer Limits
If the wallet has a permissionless transfer limit rule configured, the withdrawal amount is checked against the rule's limits. If the amount exceeds the allowed threshold within the configured time period, the request will be rejected.
Headers
| Header | Required | Value |
|---|---|---|
Authorization | Yes | Bearer <token> |
Content-Type | Yes | application/json |
X-Target-Server | Yes | wallets |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
wallet_id | string (UUID) | Yes | Wallet ID to withdraw from |
Request Body
| Field | Type | Required | Validation | Description |
|---|---|---|---|---|
to_address | string | Yes | -- | Destination blockchain address |
amount | number | Yes | Must be > 0 | Amount to withdraw |
network_id | string (UUID) | Yes | Valid UUID | Network to withdraw on |
network_currency_id | string (UUID) | No | Valid UUID | Token currency ID. Omit to withdraw native currency. |
Withdraw Native Currency (e.g., ETH)
{
"to_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
"amount": 0.5,
"network_id": "770e8400-e29b-41d4-a716-446655440000"
}
Withdraw Token Currency (e.g., USDC)
{
"to_address": "0x742d35Cc6634C0532925a3b844Bc9e7595f2bD18",
"amount": 100.0,
"network_id": "770e8400-e29b-41d4-a716-446655440000",
"network_currency_id": "880e8400-e29b-41d4-a716-446655440000"
}
Response
204 No Content
Withdrawal initiated successfully. The transaction is processed asynchronously.
400 Bad Request
Validation error or transfer limit exceeded.
401 Unauthorized
404 Not Found
Wallet not found.