Withdrawing Assets: Introduction
Withdrawing Assets from Virtual Accounts: Introduction
Setting up Virtual Accounts is similar for all the supported blockchains.
However, withdrawing funds from a Virtual Account works differently depending on what blockchain the Virtual Account is created for.
UTXO (like Bitcoin) blockchains
On UTXO-based blockchains such as Bitcoin, Bitcoin Cash, Dogecoin, and Litecoin, withdrawing funds from Virtual Accounts is "easier" when the Virtual Accounts are associated with the same extended public key (XPUB).
This way, all the deposit addresses that you generate for those virtual accounts are associated with the same XPUB, and you do not have to track all UTXO transactions. During the withdrawal, all the deposit addresses are automatically scanned for incoming deposits that are then used as a source of the withdrawal transaction.
BTC Example:
To withdraw funds from BTC Virtual Accounts associated with the same xpub, you can usethe following v3 REST API endpoint for sending the funds from a BTC-based Virtual Account to the blockchain.
EVM (like Ethereum) blockchains
On EVM-compatible blockchains such as Ethereum, BNB Smart Chain, Celo, and so on, you can choose from the following approaches to withdrawals:
- Withdraw assets from each blockchain deposit address separately. (NOT recommended)
- Centralize assets across all deposit addresses into a "Master Exchange blockchain address" and withdraw from there. (Recommended)
Stellar, and XRP
On Stellar, and XRPL, one deposit address is used and customers are identified by blockchain-specific parameters such as memo
, message
, and DestinationTag
, accordingly.
Important
The intended use case for Virtual Accounts (VA) is as a Self-Custodial Exchange, meaning all withdrawals are expected to be tracked in the VA ledger.
- Tatum does not hold custody of mnemonics or private keys. As a result, it is technically possible to sign transactions using VA ledger deposit addresses outside the VA ledger and Tatum endpoints. For more details, refer to this article.
- The blockchain’s on-chain balance takes precedence over the VA ledger. If unregistered transactions occur, the VA ledger will become misaligned, leading to liquidity inconsistencies between the on-chain balance and the off-chain VA ledger.
- Virtual Accounts are designed to hold a limited number of deposit addresses (1-5). While adding many more deposit addresses may appear functional, this setup often leads to unrecoverable synchronisation issues across users over time.
- Any on-chain assets already present in a blockchain address to bind to a Virtual Account will be ignored. More information HERE.
- Deposits are only "recognized" as long as the "currency" of the VA matches the on-chain asset deposited
- If a mistake occurs when creating or storing a withdrawal in the VA ledger, it can be deleted and retried. Check this article for addtional details.
- Withdrawals from a VA deposit address can be automated using the VA Blockchain Operationsendpoints, ensuring they are properly logged in the VA ledger.
Attention
- You are expected to hold 1:1 asset liquidity between the VA off-chain ledger and your end-users on-chain assets.
- To avoid potential disruptions and ensure consistent performance, we recommend adhering to the intended usage of 1-5 deposit addresses per Virtual Account.
- Be mindful of Tatum Derivation Path.
Warning
- All withdrawals must be registered and executed through VA-specific endpoints.
- Using standard blockchain transaction methods to sign and broadcast a transaction from a VA-linked deposit address bypasses the VA ledger, leadings to balance discrepancies. If this happens, the withdrawal must be manually registered.
Updated 24 days ago