createAction / executeAction with action: 'withdrawal' (see SDK / Actions). Agents cannot initiate withdrawals — the user’s wallet must sign each withdrawal directly. This is a protocol-level constraint, not an SDK choice.
On Hyperliquid, withdrawals always send USDC to the user’s address on Arbitrum via the Hyperliquid L1 -> Arbitrum bridge. Processing typically takes 3-4 minutes.
withdrawal
| Signers | USER — agents cannot initiate withdrawals (protocol constraint) |
| Params | WithdrawalParams — { destination, amount } |
| SDK methods | withdraw() |
destination is the Arbitrum address to receive the funds. amount is the USDC amount as a human-readable string (e.g. "100.00").
Under
unifiedAccount abstraction mode, withdrawals are drawn from the user’s spot USDC balance. Ensure sufficient spot USDC is available before initiating a withdrawal — perps margin must be freed (by closing positions or reducing margin) and transferred to spot first if needed.