- Go to Account → Withdraw.
- Enter the amount (or click Max).
- Sign the withdrawal transaction.

Outcome covers gas, but a flat 1 USDT fee applies per withdrawal. Batch requests to save!
Funds appear in your wallet as soon as the HyperEVM block confirms (~2 s).
Bridge to a CEX
Note that some CEXs support direct USDT deposits from HyperEVM, so you may not need to bridge USDT
to another network. i.e. OKX
Need to cash out to an exchange? After the withdrawal lands in your wallet, use a bridge to convert
USDT to the chain and token your CEX supports (e.g. Ethereum USDT) before depositing.
Behind the scenes
/**
* @notice Withdraw function that enforces a 1 USDT fee,
* @param usdtToken The USDT token contract address.
* @param data Encoded call data (for example, `transfer(msg.sender, amount)`).
* @param signature The owner’s personal_sign style signature authorizing the transaction.
*/
function withdraw(
address usdtToken,
bytes calldata data,
bytes calldata signature
) external onlyServer nonReentrant {
// Transfer fee to the feeCollector using SafeERC20 for added safety
IERC20(usdtToken).safeTransfer(feeCollector, USDT_DECIMALS);
// Execute the transaction (typically a token transfer).
_executeTransaction(usdtToken, 0, data, signature);
emit WithdrawExecuted(usdtToken, data);
}