Skip to main content
  1. Go to Account → Withdraw.
  2. Enter the amount (or click Max).
  3. Sign the withdrawal transaction. Withdraw
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
Flow from Smart Wallet to CEX 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);
    }