Users can deposit funds to their account by sending a Layer 1 Ethereum transaction through their wallet through the website. Users can deposit either USDC, or an array of other assets, which are then converted to USDC via 0x API's on-chain liquidity. After the deposit transaction is mined, 10 Ethereum network confirmations (usually about 3 minutes) are required for your funds to be available to trade.
There are two types of withdrawals: Fast Withdrawals and Slow Withdrawals:
Fast withdrawals utilize a withdrawal liquidity provider to send funds immediately and do not require users to wait for a Layer 2 block to be mined. Users do not need to send any Transactions to perform a fast withdrawal. Behind the scenes, the withdrawal liquidity provider will immediately send a transaction to Ethereum which, once mined, will send the user their funds. Users must pay a fee to the liquidity provider for fast withdrawals equal to the greater of the gas fee the provider must pay and 0.1% of the amount of the withdraw. Fast withdraws are also subject to a maximum size of $200,000.
Slow withdrawals do not use a liquidity provider to speed the withdrawal process, and so must wait for a Layer 2 block to be mined before they are processed. Layer 2 blocks are mined roughly once every 10 hours, though this could be more or less frequent (up to 20 hours) based on network conditions. Slow withdrawals occur in two steps: first the user requests a slow withdrawal, then once the next Layer 2 block is mined the user must send a Layer 1 Ethereum transaction to claim their funds.