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 USDC 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

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 USDC to the chain and token your CEX supports (e.g. Ethereum USDC) before depositing.

Behind the scenes

    /**
     * @notice Withdraw function that enforces a 1 USDC fee,
     * @param usdcToken The USDC 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 usdcToken,
        bytes calldata data,
        bytes calldata signature
    ) external onlyServer nonReentrant {

        // Transfer fee to the feeCollector using SafeERC20 for added safety
        IERC20(usdcToken).safeTransfer(feeCollector, USDC_DECIMALS);

        // Execute the transaction (typically a token transfer).
        _executeTransaction(usdcToken, 0, data, signature);
        emit WithdrawExecuted(usdcToken, data);
    }