Creates a new withdrawal request. This method allows you to withdraw funds from your account to an external address. The withdrawal can be configured with priority settings and must use an address from your address book.
Withdrawal Checks & Balance Updates
Withdrawal funds are checked twice: when a user requests a withdrawal and again when they confirm it via the email link. If available funds decrease between these steps, the withdrawal may be rejected.
A withdrawal may also be rejected if the on-chain fee increases between the request and confirmation.
The withdrawal amount is deducted only after all checks pass and the transaction is scheduled. The web-interface Withdrawal tab displays all withdrawals regardless of their status (pending, cancelled, rejected, or completed).
Coinbase wallet type
For Coinbase wallet type accounts the method supports network selection and CTN (Coinbase Travel Network) counterparties, and behaves differently:
- Required parameters are currency (any portfolio currency) and amount, plus one of address or id (the address book entry identifier returned by private/get_address_book).
- When address is an on-chain address, pass network (and tag when applicable) to identify the address book entry. For a CTN withdrawal, pass the CTN counterparty identifier of the entry as address.
- priority and nonce are not supported. Use private/coinbase/estimate_withdrawal_fee to estimate the network fee.
- Subaccounts can withdraw only when enabled by the main account via private/set_coinbase_subaccount_withdrawals_allowed.
- The response is a Coinbase withdrawal object instead of the legacy withdrawal object. Its state is one of prepared, awaiting_second_email, unconfirmed, completed or cancelled; withdrawals to an address that is not trusted start as prepared and require email confirmation, in which case transfer_idem is absent until the withdrawal is submitted to the custodian. Fields that are not set are omitted from the response.
📖 Related Article: Managing Withdrawals
Scope: wallet:read_write and mainaccount
Query parameters
Currency, i.e "BTC", "ETH", "USDC"
The currency symbol
Address in proper format for currency
Address in currency format, it must be in address book. Required for legacy wallet type. Coinbase wallet type: required when id is not provided — the on-chain address (use network and tag to disambiguate entries sharing the same address) or the CTN counterparty identifier of an existing address book entry.
Amount of funds to be withdrawn
Blockchain network for the wallet operation, given as a network resource name (e.g. "networks/ethereum-mainnet"). Coinbase wallet type only. The networks available for each currency are returned by public/get_currencies in the coinbase_networks field. Required for operations that target an on-chain address or a deposit address; also used to disambiguate address book entries when the same address exists on multiple networks.
Destination tag / memo for networks that support one. Coinbase wallet type only. Used together with address and network; also serves to disambiguate address book entries that share the same address.
Unique identifier (UUID7) of the address book entry, as returned in the id field of private/get_address_book results. Coinbase wallet type only. Can be used instead of address (with network and tag) to identify the entry.
Withdrawal priority, optional for BTC, default: high
Nonce
Optional idempotency nonce. If provided, subsequent requests with the same nonce will return the previously created transaction instead of creating a new one. Must be 8-128 characters. The nonce is persisted on the resulting transaction and returned in the response.
Response
Success response
Example response
{
"result": {
"address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
"amount": 1,
"confirmed_timestamp": 1536569522277,
"created_timestamp": 1536569522277,
"fee": 0.000023,
"id": 1,
"priority": 1,
"transaction_id": "1b1fb5568515e2b79503501e3d3680b2d0838d5dfc2d15a04eb8cd9fbbe0b572",
"updated_timestamp": 1536569522277
}
}