Fund Management

Transfer Between Accounts

This API allows you to execute an internal transfer between any two accounts within your Master Group. In the scenario of exchange account to exchange account there will be no activity on a blockchain network. All other combinations will result in a movement of funds on a blockchain network.

Gemini Custody account withdrawals will not occur until the daily custody run occurs. In the case of funds moving from a Gemini Custody account to a Gemini Exchange account, the exchange account will get a precredit for the amount to be received. The exchange account will be able to trade these funds but will be unable to withdraw until the funds are processed on the blockchain and received.

Gemini Custody accounts request withdrawals to approved addresses in all cases and require the request to come from an approved IP address. Please reach out to trading@gemini.com to enable API withdrawals for custody accounts.

Gemini Custody accounts do not support fiat currency transfers.

Fiat transfers between non-derivative and derivatives accounts are prohibited.

Roles

The API key you use to access this endpoint must be a Master level key and have the Fund Manager role assigned. See Roles for more information.

post/v1/account/transfer/{currency}

Request

  • Base URL
    https://api.gemini.com
  • URL
    https://api.gemini.com/v1/account/transfer/{currency}
  • 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

currencystring required

Either a fiat currency, e.g. usd or gbp, or a supported crypto-currency, e.g. gusd, btc, eth, aave, etc.

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

requeststring required

The string /v1/account/transfer/:currency where :currency is replaced with either usd or a supported crypto-currency, e.g. gusd, btc, eth, aave, etc. See Symbols and minimums.

sourceAccountstring required

Nickname of the account you are transferring from. Use the Get Accounts endpoint to get all account names in the group.

targetAccountstring required

Nickname of the account you are transferring to. Use the Get Accounts endpoint to get all account names in the group.

amountstring required

Quoted decimal amount to withdraw

clientTransferIdstring

A unique identifier for the internal transfer, in uuid4 format

withdrawalIdstring

Unique ID of the requested withdrawal.

Example request

{
  "nonce": "1495127793000"
}

Response

JSON response

fromAccountstring

Source account where funds are sent from

toAccountstring

Target account to receive funds in the internal transfer

amountstring

Quantity of assets being transferred

feestring

Fee taken for the transfer. Exchange account to exchange account transfers will always be free and will not be deducted from the free monthly transfer amount for that account.

currencystring

Display Name. Can be Bitcoin, Ether, Zcash, Litecoin, Dollar, etc.

withdrawalIdstring

Excludes exchange to exchange. Unique ID of the requested withdrawal

uuidstring

Only for exchange to exchange. Unique ID of the completed transfer

messagestring

Message describing result of withdrawal. Will inform of success, failure, or pending blockchain transaction.

txHashstring

Only for Ethereum network transfers. Excludes exchange to exchange transfers. Transaction hash for ethereum network transfer.

Changes

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