Withdraw
Sends the network's native coin or a currency token from one of the node's custody wallets to an address. You choose both the wallet (wallet_id) and the network (network_id); the server never picks them for you. The wallet must belong to the node and sit on the network's chain.
This call is asynchronous: it records a WithdrawType (1) node transaction and answers 200 OK before the transfer reaches the chain. The response body is null — it does not name the transaction. Find it with List Node Transactions filtered by types=1 and your wallet_id, then poll Get Node Transaction until its status is 3 (Done) or 4 (Error). A settled withdrawal also appears on List Node Payments.
Required permission: wallet:withdraw
Request
POST /v2/admin/nodes/{node_id}/withdraw
Parameters
| Name | Type | In | Description |
|---|---|---|---|
node_id | string | path | Required. The node that owns the wallet |
Headers
| Name | Description |
|---|---|
Authorization | Required. Bearer <access_token> |
Content-Type | Required. application/json |
Body
| Field | Type | Required | Description |
|---|---|---|---|
wallet_id | string | Yes | The node wallet the funds leave from (List Node Wallets) |
network_id | string | Yes | The network the transfer runs on. Must be on the wallet's chain |
address | string | Yes | Recipient address (an Ethereum-style 0x… address) |
amount | string | Yes | Amount to send, as a decimal string greater than zero. It may not have more decimal places than the asset has. See Amounts and Percentages |
currency_token_id | string | null | No | The currency token to send. Omit it or send null to send the network's native coin |
Example
curl --request POST \
--url '{{baseUrl}}/v2/admin/nodes/6a4bef2b1e781b11c22e9707/withdraw' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{
"wallet_id": "6a53f3dfad48accdb46eaf9e",
"network_id": "6740e0a20000000000000101",
"address": "0x1493Ad169f118c260A8597bfe0A72f8262E9f4bA",
"amount": "1.5",
"currency_token_id": null
}'
Response
200 OK with the body null.
null
Errors
| Status | Code | Description |
|---|---|---|
| 400 | 10015 | Validation failed — missing wallet_id, network_id or address, an invalid address, an amount that is zero or has too many decimal places, or a network that does not exist — see details |
| 400 | 10016 | node_id, wallet_id or network_id is not a valid id |
| 400 | 10001 | Node not found (node domain 2) |
| 400 | 10021 | The wallet does not belong to this node or is not on the network's chain (node domain 2) |
| 403 | 10005 | The node is outside your part of the hierarchy (node domain 2) |
| 404 | 10001 | Currency token not found (currency token domain 15) |
| 500 | 10000 | currency_token_id is not a valid id |
See Errors for the error format and common codes.