Documentation Index
Fetch the complete documentation index at: https://mintlify.com/reserve-protocol/reserve-index-dtf/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Folios use a semi-permissioned rebalancing mechanism to change their basket composition. The process is designed to work effectively even under timelock delays, with multiple roles coordinating to achieve optimal execution.Rebalance Lifecycle
Every rebalance follows a structured lifecycle:1. Start Rebalance
TheREBALANCE_MANAGER initiates a rebalance with target parameters:
2. Auction Launcher Window (Restricted Period)
After starting, there’s a restricted period where only theAUCTION_LAUNCHER can open auctions. This ensures they have first opportunity to provide pricing precision.
The restricted period automatically extends if the
AUCTION_LAUNCHER is actively using it, with a minimum 120s buffer before unrestricted access.3. Unrestricted Period
After the restricted period expires, anyone can open auctions using spot values and initial prices. This prevents single-point-of-failure on theAUCTION_LAUNCHER.
4. Time-to-Live (TTL)
Rebalances have a TTL (max 4 weeks) that controls how long they can run. Multiple auctions can occur during this time.Rebalance Targets
TheREBALANCE_MANAGER configures target ranges that define the rebalancing path.
Rebalance Limits
Define how many Basket Units the Folio should target:low- Target for buying (minimum BU per share)spot- Point estimate used by unrestricted callershigh- Target for selling (maximum BU per share)
Basket Weights
For each token, weights define the target composition:If
RebalanceControl.weightControl is enabled, the AUCTION_LAUNCHER can progressively narrow weight ranges to maintain target allocations.Price Ranges
For each token, governance provides conservative price estimates:Weight Control
WhenRebalanceControl.weightControl is enabled, the AUCTION_LAUNCHER can adjust basket weights within the governance-approved range.
Use Cases
Weight Control Enabled:- Folios targeting specific % breakdown at all times
- Dynamic allocation adjustments during rebalancing
- Responsive to market conditions
- Folios with single monthly/quarterly targets
- Pure rebalance limit-based strategies
- More governance control
Progressive Narrowing
TheAUCTION_LAUNCHER can progressively narrow ranges but cannot backtrack:
Rebalance Completion
A rebalance is considered “completed” when all range deltas reach zero:The
AUCTION_LAUNCHER should end the rebalance when completion is achieved or when continuing would leak value.Starting a Rebalance
Querying Active Rebalance
Check if a rebalance is ongoing and view its parameters:Ending a Rebalance
TheREBALANCE_MANAGER, AUCTION_LAUNCHER, or DEFAULT_ADMIN_ROLE can end a rebalance early:
Best Practices
Price Range Selection
Price Range Selection
Set price ranges wide enough to account for:
- Timelock delay execution
- Expected volatility
- Block-to-block price movement
- Slippage on secondary markets
TTL Configuration
TTL Configuration
Choose TTL based on:
- Expected number of auctions needed
- Individual auction lengths
- Buffer for unexpected delays
- Governance response time
Auction Launcher Window
Auction Launcher Window
Set the window to:
- Give sufficient time for AUCTION_LAUNCHER to act
- Account for network conditions
- Balance between control and permissionlessness