Overview
Before placing orders, you must deposit tokens into vaults—ERC4626 vaults that hold your collateral for trading. Each tradeable token has its own vault:- USDC → USDC vault
- MirrorToken → MirrorToken vault
Approval requirements
To trade, you need approvals on both tokens and vaults:For deposits
Approve the Controller on each token:For trading
Approve the BookManager on each vault:Required approvals checklist
Before trading a pair (e.g., USDC/MirrorToken), set up these approvals:1. For USDC (quote currency)
- ✅ Approve Controller on USDC token (for deposits)
- ✅ Approve BookManager on USDC vault (for withdrawals and settlements)
2. For MirrorToken (base currency)
- ✅ Approve Controller on MirrorToken (for deposits)
- ✅ Approve BookManager on MirrorToken vault (for withdrawals and settlements)
3. Deposit funds
- ✅ Deposit USDC into its vault via
Controller.depositToVault(USDC, amount) - ✅ Deposit MirrorToken into its vault via
Controller.depositToVault(MirrorToken, amount)
- Place limit orders (make)
- Execute market orders (take)
- Cancel orders
- Claim proceeds
Vault balances
Check your balances:maxWithdraw(user): available to withdraw (excludes locked collateral)lockedBalances(user): amount locked in open orders
Basic operations
Deposit
Withdraw
Check balance
Example: full setup flow
Security
- Approvals are persistent—set once and forget
- Your tokens never leave the vaults during trading
- Locked collateral cannot be withdrawn, even with approvals
See also
- Controller - user-facing trading interface
- Deposit & withdraw guide - step-by-step instructions
- Addresses - deployed contract addresses