---
title: "Withdraw Crypto Funds"
method: POST
path: "/v2/withdraw/{network}/{ticker}"
tags: ["Fund Management"]
---

# Withdraw Crypto Funds

`POST /v2/withdraw/{network}/{ticker}`

## Request

- Base URL: `https://api.gemini.com`
- URL: `https://api.gemini.com/v2/withdraw/{network}/{ticker}`
- Auth: API key in header `X-GEMINI-APIKEY` and API key in header `X-GEMINI-SIGNATURE` and API key in header `X-GEMINI-PAYLOAD`

<div class="p-4 text-sm section-icon section-info rounded-sm" role="alert">
  <div class="flex">
     <svg
        view-box="0 0 24 24"
      >
        <path
          fill-rule="evenodd"
          clip-rule="evenodd"
          d="M4 12C4 7.58172 7.58172 4 12 4C16.4183 4 20 7.58172 20 12C20 16.4183 16.4183 20 12 20C7.58172 20 4 16.4183 4 12ZM12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2ZM11 17V11H13V17H11ZM11 9V7H13V9H11Z"
        />
      </svg>
      The v1 withdraw endpoint is being retired. This v2 endpoint is the recommended replacement, offering explicit blockchain network selection for multi-network tokens. Please migrate to this endpoint at your earliest convenience.
  </div>
</div>

Withdraw cryptocurrency funds to an approved address, with explicit network selection.

The key improvement over v1 is the explicit `network` path parameter, which allows you to specify exactly which blockchain network to use for the withdrawal. This is especially important for tokens available on multiple networks (e.g., USDC on Ethereum, Solana, Base, Arbitrum, etc.).

Before you can withdraw cryptocurrency funds to an approved address, you need three things:

1. You must have an approved address list for your account
2. The address you want to withdraw funds to needs to already be on that approved address list
3. An API key with the Fund Manager role added

If you would like to withdraw via API to addresses that are not on your approved address list, please reach out to trading@gemini.com. We can enable this feature for you provided a set of approved IP addresses. This functionality is only available for exchange accounts. Pre-approved IP addresses and addresses added to your approved address list are required to enable withdrawal APIs for custody accounts.

Use the [Get Network](/rest/market-data#get-network) endpoint to discover which networks support withdrawals for a given token.

See [Roles](/roles#roles) for more information on how to add the Fund Manager role to the API key you want to use.

### Roles
The API key you use to access this endpoint must have the Fund Manager role assigned. See [Roles](/roles#roles) for more information.

The OAuth scope must have `crypto:send` assigned to access this endpoint. See [OAuth Scopes](/authentication/oauth#oauth-scopes) for more information.

## Path parameters

- `network` string, required
- `ticker` string, required

## Headers

- `X-GEMINI-APIKEY` string, required
- `X-GEMINI-SIGNATURE` string, required
- `X-GEMINI-PAYLOAD` string, required
- `Content-Type` string
- `Content-Length` string
- `Cache-Control` string

## Request body

- object
  - `address` string, required: The destination address for the withdrawal
  - `amount` string, required: The amount to withdraw
  - `memo` string: Required for certain networks that use memos (e.g., Solana, XRP, Cosmos). The destination tag or memo for the withdrawal.
  - `clientTransferId` string, uuid: A unique UUID for idempotent withdrawals. If provided, duplicate requests with the same `clientTransferId` will not create additional withdrawals.

## Response `200`

Successful operation

- WithdrawCryptoFundsResponse: Response returned after submitting a v2 cryptocurrency withdrawal.
  - `withdrawalId` string: A unique ID for the withdrawal
  - `address` string: Standard string format of the withdrawal destination address
  - `amount` string: The withdrawal amount
  - `currency` string: The currency code of the withdrawn asset
  - `fee` string: The fee charged for the withdrawal

## Other responses

- `400`: Bad request - malformed request or invalid parameters
- `401`: Unauthorized - missing or invalid authentication
- `403`: ApiKey fails IP Filtering Check
- `404`: Resource not found
- `429`: Too many requests - you have exceeded the rate limit
- `500`: Internal server error

---

[API](https://skmtc.dev/gemini/apis/rest-api.md) - [All operations](https://skmtc.dev/gemini/apis/rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/gemini/apis/rest-api/revisions/24979792d748?raw)
