Thanks to Dennis and Sam for input and feedback.
Proposal: Create the FXS AMO
The FXS AMO takes FXS deposits and borrows FRAX from the protocol to provide liquidity to FRAX AMM pools. The AMO always controls the deposited FXS and collateral, preventing risk of loss for the protocol or liquidation for FXS depositors. The purpose of the AMO is to leverage FXS to increase liquidity for FRAX while also generating a yield on deposited FXS without impermanent loss. This strengthens FXS with additional utility in the Frax system while also improving FRAX liquidity and stability. A stronger FXS creates a flywheel of growth for both FRAX and FXS.
A diagram of the proposed design:
Users lock FXS in the FXS AMO. The AMO then borrows FRAX from the protocol at a 50% leverage ratio to the value of the locked FXS. For example, if $100k of FXS is locked, the AMO borrows 50k FRAX. The FXS AMO then exchanges 50% of the borrowed FRAX for the relevant paired stablecoin (USDC in the case of the FRAX-USDC pool or 3crv for the FRAX-3pool). In the case of the 3pool, the FXS AMO could just deposit the FRAX into the FRAX-3pool, as long as the FRAX is sold for at least $1.00 per FRAX (more on this later). The FXS AMO then takes the LP token and stakes it in the Frax Staking contract to receive FXS rewards. The AMO allocates FXS rewards proportionately to depositors. Below is a detailed walk through of the mechanics:
Locking and Unlocking FXS
FXS deposited in the AMO is locked in the FXS AMO contract. The locked FXS begins earning a proportionate return based on the overall deployed capital from the AMO. FXS locked in the AMO is eligible to vote in Frax governance. One optional parameter would be a 25% boost for users who have voted in a recent governance poll - if there is strong support for this we can add it or always add it later. It may be wise to start simple and adjust based on the performance of the AMO. In theory, everyone would be eligible for the boost, which would just mean that Frax has a very high amount of governance participation if everyone voted. I think too large of a boost is a bad idea and makes it unattractive for the marginal depositor to utilize the AMO, lowering participation rates overall.
To withdraw FXS from the AMO, users initiate an unlock from the AMO contract. The unlock period is 7 days. Depositors continue to earn rewards during the 7 days. When the unlock is complete and the FXS is available to be withdrawn from the contract, no rewards will accrue to the unlocked FXS.
Bringing a significant amount of locked liquidity to FRAX would be a major benefit of the AMO. In times of uncertainty or market turbulence, a deeper FRAX-3pool (or FRAX-USDC pool) means more support for FRAX.
The AMO borrows FRAX from the protocol at a 50% leverage ratio to the value of FXS locked in the AMO. Given volatility in the FXS price, the AMO rebalances the debt on a regular interval (e.g. daily) to maintain the 50% leverage target. When FXS is unlocked for withdrawal (at the rebalancing on Day 7 of a depositor’s unlock), the equivalent amount of debt is returned to the protocol. Because the FXS AMO always controls both the deposited FXS and the staked LP tokens, the Frax protocol always controls both the collateral and the debt, making it solvent at all times. The AMO simply increases or decreases the debt on a daily basis based on the market price of FXS. Initially this should lead to a FXS yield ranging from 15-20% APY, which can compound daily based on claimed rewards. Stating the obvious, FXS is the only asset that can compound using FXS rewards without having to sell the FXS. FXS rewards are also subject to the same lock as the overall deposit, which would minimize FXS leakage from the contract.
The most challenging aspect of the AMO is exchanging the borrowed FRAX from the protocol for USDC or 3pool without negatively impacting the price of FRAX or reducing the AMO’s collateral. I expect that this AMO is only feasible using the FRAX-3pool or a Uniswap v3 pool to minimize the slippage. The AMO only exchanges FRAX for USDC or 3pool when it receives at least $1.00 per FRAX. Practically I expect this to be most challenging during the start up of the AMO, which may require a longer period of time to scale up while maintaining the minimum exchange rate. Once the AMO meets the initial leverage ratio, daily adjustments should be manageable.
While it may take time to get the AMO to the target leverage ratio, unwinding the FXS AMO position should be a beneficial event for the protocol. The AMO would withdraw the staked LP position and effectively sell USDC or 3crv for FRAX, which puts buy pressure on FRAX. The FRAX proceeds are then returned to the protocol. This is net buying pressure on FRAX at what could be a turbulent time, which is another benefit of the AMO - it effectively strengthens the peg when it is most needed.
If exchanging FRAX for USDC or 3crv eventually appears infeasible, Dennis suggested an excellent alternative design for the AMO that accepts both USDC and FXS deposits and provides a yield on both assets. This approach avoids exchanging FRAX for USDC / 3crv. While the current design appears strong as long as we manage the exchange of FRAX, we have an alternate approach that achieves many of the same goals if necessary.
Rewards and Burning
In the near term, the FRAX-3Pool is the ideal pool for the AMO (we need to determine long term FXS rewards for the pool but that is out of scope for this proposal). All pool trading fees could be netted to the Frax protocol via FXS-1559 and used to burn FXS (currently between 1-2% of pool deposits annually). FRAX borrowed by the FXS AMO also needs to eventually burn FXS at the collateral rate. The FXS-1559 AMO can measure the net change in the Frax-3pool (or Frax-USDC pool) and burn the appropriate amount of FXS.
Both the FXS AMO and Curve AMO should max lock any earned CRV (perhaps the CRV proceeds can be combined on some level - any excess boost should benefit the other AMO). This provides the Frax protocol with a long term investment in CRV, a weekly payout of 3crv (currently about 15% APY for veCRV), maximum boosts for both the FXS AMO and Curve AMO and maximum voting power for the FRAX-3pool gauge weight. The weekly 3crv distribution can either flow to the FXS-1559 AMO and burn FXS, fund gas for the FXS AMO, or go to the Frax DAO Treasury. By maxing the boost for the FXS AMO and Curve AMO, both pools will earn maximum CRV rewards, creating a positive feedback loop of more CRV rewards. By maxing out the gauges for the FRAX-3pool, we are also building a sustainable path to a Frax-3pool that eventually will not require a FXS reward subsidy, benefiting both FXS holders and the overall Frax protocol. It also helps Frax be a good community member by participating in Curve governance and demonstrates a long term commitment to the space.
I appreciate your patience going through the details. Please let me know if you have input or feedback. The goal is to turn this into a final proposal for Frax governance to vote on in the near future. Based on initial feedback from the team, this appears to be feasible but would obviously take some effort to deploy. If successful, the FXS AMO could be the engine for the next stage of Frax’s growth.
TLDR: This is a proposal to make a FXS AMO that provides a yield on deposited FXS and provides additional captive liquidity to the Frax pools.