Prerequisites: an active VOOI API token and the source venue connected. See API Tokens and Use your own keys if you don’t have them yet.
Binance, Bybit, and MEXC expose no withdrawals through VOOI. Move funds out of those venues directly.
1. Prepare
POST /withdraw/prepare takes the exchange, the amount, and the address to withdraw to. Two optional fields are venue-specific:
chainId— the destination chain. Only Aster and Ondo offer a real choice; both default to Arbitrum One (42161).symbol— the token to withdraw. Only Aster offers a real choice; it defaults to USDC.
withdrawId to pass to the execute step, a fee, a withdrawLimit, and a signData whose shape depends on the venue:
withdrawLimit is the maximum you can withdraw right now, and it is not the same as your balance. On Lighter and Robinhood it is the fast withdrawal ceiling. On Ondo it is your withdrawable margin minus the fee — Ondo debits the fee on top of the amount, not out of it — capped by whatever remains of the period limit.2. Sign
Sign whateverprepare returned, with the wallet that owns the account.
3. Execute
POST /withdraw/execute takes the withdrawId from step 1, the signature from step 2, and the address executing the withdrawal. VOOI submits it to the venue — you don’t broadcast anything on-chain.
On Ondo the
address must match the one the withdrawal was prepared for — a mismatch is rejected. Prepare a fresh withdrawal rather than reusing a withdrawId for a different destination.Destination chains and tokens
Robinhood settles in USDG on its own chain rather than USDC on Arbitrum, matching how it takes deposits. An unsupported
chainId or symbol is rejected with a message naming what the venue does support — see Errors.
Tracking the result
There is no withdrawal-status endpoint. Confirm the debit the same way you confirm a deposit credit: watch the venue balance onGET /exchange/accounts, or subscribe to the accounts event on the updates stream. Arrival in your wallet depends on the destination chain.
Next steps
Extended withdrawals
The separate quote-based flow for Extended
Transfers between exchanges
Move funds between venues without going to a wallet