improved

Enhanced Zero Hash Transfers

Summary

Zero Hash currently supports the ability for customers and platforms to direct the movement of their crypto via internal transfers (always off-chain) and withdrawals. This feature is opt-in and can be enabled by speaking to your Zero Hash representative.

A withdrawal may be sent to an external address or a Zero Hash controlled address. When a withdrawal is made to a destination that is a Zero Hash controlled address, Zero Hash now recognizes this and executes an internal transfer as opposed to an on-chain transfer. As such, there is no on-chain transfer and as such, no network fee assessed. This applies to all assets (full list of assets found here).


Impacted Endpoints

This launch is not a breaking change, however you will need to request to be opted-in first, will apply to the following endpoints:

  • POST /withdrawals/requests
  • POST /convert_withdraw/rfq
  • POST /convert_withdraw/execute
  • GET /withdrawals/requests
  • GET /withdrawals/requests/{id}
  • GET /withdrawals/locked_network_fee
  • POST /withdrawals/execute

How will I know if my withdrawal was transferred internally?
If an internal transfer for a withdrawal has occurred, the tx_hash in the GET /withdrawals/requests and GET /withdrawals/requests/{id} will have the following format:

  • withdrawal side -> internalp2p_debit{withdrawal_uuid}
  • deposit side -> internalp2p_credit{withdrawal_uuid}

For GET /withdrawals/locked_network_fee, an internal transfer will return 0 for the network fee.

These responses mean that an internal omnibus transfer has occurred because the recipient address is a Zero Hash controlled address. There is no on-chain transfer and as such, no network fee assessed.

If a withdrawal is on-chain, a network fee shall be assessed and the on-chain tx hash shall be returned that can be viewed on a third-party blockchain explorer.


Further Reading