Overview
Price control determines how much authority theAUCTION_LAUNCHER has over auction pricing within the bounds set by the REBALANCE_MANAGER. The three modes provide different tradeoffs between decentralization, execution quality, and MEV risk.
Price Control Modes
NONE: Governance-Only Pricing
Behavior
AUCTION_LAUNCHERcannot modify price ranges- All auctions use the initial price ranges set by
REBALANCE_MANAGER - Auction length is fixed to
maxAuctionLength - Most decentralized but least flexible
Configuration
Use Case
Ideal for Folios that:- Prioritize maximum decentralization
- Can tolerate wider price ranges set via governance
- Have long timelock delays where precision matters less
- Rebalance infrequently (e.g., quarterly)
Example: Opening Auction with NONE
PARTIAL: Subset Price Control
Behavior
AUCTION_LAUNCHERcan narrow price ranges within initial bounds- Cannot expand ranges beyond what governance approved
- Can set auction length between
MIN_AUCTION_LENGTHandmaxAuctionLength - Enables better execution but introduces MEV risk
Configuration
Use Case
Ideal for Folios that:- Want to balance decentralization and execution quality
- Have a semi-trusted
AUCTION_LAUNCHER(multisig) - Need to adapt to market conditions within approved bounds
- Prioritize better pricing over absolute trustlessness
Example: Narrowing Price Ranges
Calculating Start and End Prices
For a token pair, auction prices are calculated from individual token ranges:MEV Risk
ATOMIC_SWAP: Full Price Control
Behavior
- All capabilities of
PARTIALmode - Additionally can set
startPrice == endPrice(flat price) - Enables atomic swaps without the 30-second warmup period
- Allows
AUCTION_LAUNCHERto internalize MEV
Configuration
Use Case
Ideal for Folios that:- Fully trust the
AUCTION_LAUNCHERto execute at fair prices - Want to eliminate MEV leakage entirely
- Can verify fair execution through other means (e.g., bundle inspection)
- Prioritize execution quality above all else
Example: Atomic Swap Execution
Best Practices for ATOMIC_SWAP
Choosing a Price Control Mode
*Risk is high if misused, but can be mitigated with proper execution
Validation Rules
NONE Mode
PARTIAL Mode
ATOMIC_SWAP Mode
RebalanceControl Structure
weightControl flag is independent and can be combined with any price control mode. See Basket Weights for details.
Governance Considerations
- Price control mode cannot be changed during an active rebalance
- Set via
setRebalanceControl()which requiresDEFAULT_ADMIN_ROLE - Should align with the trust level of your
AUCTION_LAUNCHER - Can be different for different Folios in the same ecosystem