Depositing & Withdrawing
Overview
Depositing Assets
Basic Deposit Flow
import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol";
import {IFluxVault} from "@flux/interfaces/IFluxVault.sol";
// 1. Approve vault to spend your tokens
IERC20 baseAsset = IERC20(vault.asset());
baseAsset.approve(address(vault), depositAmount);
// 2. Deposit and receive shares
uint256 shares = IFluxVault(vault).deposit(depositAmount, msg.sender);
// shares now represent your claim on vault assetsPreview Deposit
Mint Shares (Alternative Method)
Deposit Limits
First Deposit Protection
Withdrawing Assets
Standard Withdrawal
What Happens When Liquidity is Low?
Auto-Deallocating (ADA) for LP Protection
Detailed Withdrawal Methods
Standard Withdrawal: Redeem
Standard Withdrawal: Withdraw
Best Practices
Before Depositing
Before Withdrawing
Monitoring Your Position
Common Issues
Issue 1: Deposit Reverts
Issue 2: Withdrawal Fails (No Liquidity)
Issue 3: Slippage
Gas Optimization
Security Considerations
Reentrancy Protection
Approval Management
Related Documentation
Last updated