Withdraw Crypto

How do I withdraw crypto to an external wallet?

Learn how to create a transfer on the Cybrid Platform to withdraw crypto to an external wallet.

Once a customer has purchased cryptocurrency on the platform, they may want to withdraw it to an external wallet. This process is similar to a funding transfer, but with some different parameters specified.

First, you'll create a quote of type crypto_transfer, with the side specified as withdrawal. In this example, we have some ETH, so let's create a quote to withdraw it by calling the POST /api/quotes endpoint with the following:

  "product_type": "crypto_transfer",
  "customer_guid": "your-customer-guid",
  "asset": "ETH",
  "side": "withdrawal",
  "receive_amount": 250000000000000000


Important: Reminder that the receive_amount is in the base currency units. For ETH, that is in wei, which has 18 decimals. So the above amount represents 0.25 ETH. This level of precision is required to ensure there are no rounding errors.

For crypto withdraws it's important to understand any related on-chain gas fees that may be accompany the withdrawal. The response object from the POST /api/quotes endpoint will return two fields related to gas (network fees):

  "network_fee": 2900000000000000,
  "network_fee_asset": "ETH"

The network_fee shown above is also in the base units of the currency. The above amount represents 0.0029 ETH, or approximately $5 USD at the time this article was written. Network fees on the Cybrid Platform are tracked as a liability to the partner, and subtracted from any partner trade revenue.

Now that we have our quote, we can head over to the POST /api/transfers endpoint to execute the transfer with the quote GUID received from the previous call. For this call, you'll specify the transfer_type as crypto, and supply the destination wallet in the external_wallet_guid.

  "quote_guid": "your-quote-guid",
  "transfer_type": "crypto",
  "external_wallet_guid": "your-external_wallet_guid"

Crypto transfers happen much more quickly than fiat transfers, and it should only take a couple of minutes to process an on-chain transaction.

Similar to the funding process, you'll want to use the GET /api/transfers/{transfer_guid} endpoint to monitor the state of the transfer, until the transfer enters the completed state.

Once completed, you should be able to verify the deposit by leveraging a variety of 3rd party blockchain explorer tools, such as https://etherscan.io/.