Skip to main content
GET /deposit returns one or more unsigned EVM transactions that move USDC (or another supported stablecoin) into the target exchange. You sign and broadcast them yourself — VOOI never holds the user’s key.
Prerequisites: an active VOOI API token. See API Tokens if you don’t have one.

Request

Query parameters are documented on the API reference page. The tokenAddress parameter is optional — omit it to deposit the venue’s default stablecoin on that chain (USDC for Hyperliquid, Lighter, Extended, and Ondo; USDG for Robinhood; the first listed token for Aster). Extended and Ondo accept USDC only — any other tokenAddress is rejected.

Response shape

Sign each entry’s calldata and submit it to the target chain in the order returned. When the response contains multiple transactions, wait for each to confirm before sending the next — each one is a dependency of the one that follows. Bridge-based deposits (Extended) may also include a top-level fee alongside transactions. meta.type tells you what the transaction is for:

Per-venue patterns

Supported chains and tokens are enforced per venue — they are not enumerated in the response, which carries only the deposit transactions (and, for bridge-based venues, a top-level fee). An unsupported chainId or tokenAddress is rejected with an error (see Errors). The table below is a behavioral summary:
VOOI does not expose deposits, withdrawals, or transfers for Binance, Bybit, or MEXC. Move funds through those venues directly.
The Lighter and Robinhood transfer to field is a per-deposit intent address — it differs for each deposit request, so don’t cache it. Request fresh deposit transactions for each deposit.
Extended deposits bridge USDC to your Extended account. Request fresh deposit transactions for each deposit — don’t reuse old calldata.

After the deposit confirms

There is no callback endpoint to post a transaction hash back. To know when the deposit has landed, watch the balance on the target venue: Hyperliquid typically reflects deposits within 1–3 minutes. Lighter usually takes up to 10 minutes. Aster processing time varies by source chain. Extended deposits bridge from your source chain, so settlement depends on that chain’s finality. Ondo credits the account once the transfer confirms on the chain you sent it from.

Abandoning a multi-step deposit

If the user submits transaction 1 (for example, approve) and abandons transaction 2, there is no reserved quote to expire and no cleanup endpoint to call — the state of the deposit is whatever the chain reflects. To resume, call GET /deposit again and submit whichever transactions the wallet still needs to send.

Errors

Deposit error messages are prefixed with the lowercase venue code (e.g. hyperliquid: Unsupported chain ID for Hyperliquid deposit: <id>).

Next steps

Register on Hyperliquid

Authorize a VOOI-managed agent once USDC is on Hyperliquid

Register on Lighter

Authorize a VOOI-managed key once USDC is on Lighter

Register on Extended

Set up an Extended account from your EVM wallet

Withdrawals

Move funds back out to your wallet