Overview
Folios support permissionless minting and redemption:- Minting: Deposit basket assets to receive Folio shares
- Redeeming: Burn Folio shares to receive basket assets
Minting and redemption are disabled if the Folio is deprecated. Use
folio.isDeprecated() to check status.Understanding Share Accounting
Total Supply
The total supply includes:- Circulating shares (held by users)
- Pending DAO fee shares (not yet distributed)
- Pending fee recipient shares (not yet distributed)
Asset Composition
Shares represent proportional ownership of all basket assets:Minting Shares
Minting requires depositing all basket assets proportionally.1
Query Required Assets
Calculate how many tokens you need for a desired share amount:
2
Calculate Fees
Understand the fee structure:Fee Distribution:
- DAO takes minimum 15bps from all fees
- Remaining goes to fee recipients (if configured)
- If no fee recipients, DAO gets everything
3
Approve Token Transfers
Grant allowances for all basket assets:
You can also use permit() for gasless approvals if tokens support ERC-2612.
4
Execute Mint
After minting:
- Your share balance increased
- Your token balances decreased by
returnedAmounts - Pending fee shares increased (distributed later)
5
Set Slippage Protection (Optional)
Use allowances to limit token spend in case of state changes:
Redeeming Shares
Redemption burns shares and returns proportional assets.1
Calculate Redemption Output
2
Set Minimum Amounts
Protect against unfavorable state changes:
3
Execute Redemption
Fee Distribution
Fees accumulate as pending shares and are distributed separately.Manual Distribution
- Calculate all pending fee shares from TVL fees and mint fees
- Mint shares to fee recipients according to their portions
- Mint remaining shares to DAO fee recipient
- Reset pending fee counters
Automatic Distribution
Fees are automatically distributed (viapoke()) before:
- Minting
- Redemption
- Fee configuration changes
- Any state-changing operation
The
poke() function updates pending fees based on time elapsed since the last update (in full days only).Fee Types
TVL Fee (Time-Based)
Annual demurrage fee on assets under management- Accrues every full day (24-hour periods)
- Causes supply inflation (new shares minted to fee recipients)
- Max 10% annually
Mint Fee (One-Time)
Percentage fee charged on minting- One-time charge when minting
- Does NOT cause supply inflation (taken from minted shares)
- Max 5%
Folio Self Fee
Fraction of fee-recipient shares that are burnedAdvanced Minting Strategies
Batch Minting for Multiple Users
Mint with Single Asset
Use a DEX aggregator to convert a single asset into the basket:Handling Edge Cases
Rebalancing in Progress
Rebalancing in Progress
During rebalances, the basket composition may change:
Folio Deprecation
Folio Deprecation
Deprecated Folios can only be redeemed:
Zero Balance Assets
Zero Balance Assets
Basket tokens with zero balance are still part of the basket:
Fee Accrual Timing
Fee Accrual Timing
TVL fees accrue in full days only:
Querying Fee Information
Gas Optimization Tips
Batch Approvals
Batch Approvals
If you’ll be minting multiple times, approve max once:
Avoid Small Mints
Avoid Small Mints
Minting has fixed gas costs. Mint larger amounts less frequently:
Combine with Fee Distribution
Combine with Fee Distribution
If fees are pending,
mint() will trigger distribution automatically. Consider timing mints after fee accrual periods.Code Reference
- Mint function:
contracts/Folio.sol:441-476 - Redeem function:
contracts/Folio.sol:482-508 - Asset calculation:
contracts/Folio.sol:420-433 - Fee distribution:
contracts/Folio.sol:521-551
Next Steps
Auction Participation
Provide liquidity by bidding on rebalancing auctions
Deploying Folio
Create your own Folio with custom parameters