Fund Management

Withdraw Crypto Funds

<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 endpoint to discover which networks support withdrawals for a given token.

See 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 for more information.

The OAuth scope must have crypto:send assigned to access this endpoint. See OAuth Scopes for more information.

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

Path parameters

networkstring required

Can be bitcoin, ethereum, bitcoincash, litecoin, zcash, filecoin, dogecoin, tezos, solana, polkadot, avalanche, cosmos, or xrpl

tickerstring required

The cryptocurrency ticker code (e.g., btc, eth, usdc). See Symbols and minimums.

Headers

X-GEMINI-APIKEYstring required

Your API key

X-GEMINI-SIGNATUREstring required

HEX-encoded HMAC-SHA384 of payload signed with API secret

X-GEMINI-PAYLOADstring required

Base64-encoded JSON payload

Content-Typestring
Content-Lengthstring
Cache-Controlstring

Request body

addressstring required

The destination address for the withdrawal

amountstring required

The amount to withdraw

memostring

Required for certain networks that use memos (e.g., Solana, XRP, Cosmos). The destination tag or memo for the withdrawal.

clientTransferIdstring uuid

A unique UUID for idempotent withdrawals. If provided, duplicate requests with the same clientTransferId will not create additional withdrawals.

Response

Successful operation

withdrawalIdstring

A unique ID for the withdrawal

addressstring

Standard string format of the withdrawal destination address

amountstring

The withdrawal amount

currencystring

The currency code of the withdrawn asset

feestring

The fee charged for the withdrawal

Changes

No recorded changes to this operation across all 1 revision of this API.