The Interface Contracts Between FRAX Stablecoins and Subprotocols
“Algorithmic Market Operations” (AMO) contracts are autonomous contracts that enact pre-programmed monetary policy into a specific subprotocol (either internally built and owned by Frax Protocol such as Fraxlend and Fraxswap or external such as Curve). This means that AMO controllers can perform open market operations such as minting FRAX stablecoins into an AMM or lending newly minted FRAX into a money market protocol if certain preprogrammed conditions are met or actions approved by onchain governance. AMOs can interact with any separate protocol allowing FRAX v3 to add, remove, and combine any stability mechanism desired without changing the protocol.
The Curve AMO mints FRAX stablecoins in select Curve pools approved by governance. The AMO also withdraws FRAX and burns supply to keep the exchange rate of each Curve pool in a tight range based on the USD price of FRAX by the reference oracles.
Fraxlend is a permissionless, isolated lending market subprotocol of the Frax Finance ecosystem. Anyone can lend FRAX stablecoins into isolated Fraxlend markets where users deposit collateral to borrow FRAX and pay a dynamic interest rate to lenders. The Fraxlend AMO lends newly created FRAX into Fraxlend pairs that are approved by the frxGov process and earns interest from borrowers.
The Fraxlend AMO live stats are displayed on Frax Facts.
Fraxswap TWAMM AMO
The Fraxswap TWAMM AMO loads time-weighted average market maker orders into the Fraxswap AMM to buy or sell collateral over a long period of time. This allows for expanding of the FRAX balance sheet by buying collateral with FRAX stablecoins or contracting the supply of FRAX by selling balance sheet assets through TWAMM orders. The AMO can also be used to repurchase FXS tokens with protocol revenue/fees.
The Fraxswap TWAMM AMO contract address is 0x629C473e0E698FD101496E5fbDA4bcB58DA78dC4
The FRAX Bonds AMO provides the FRAX ecosystem an ability to sell FRAX "bonds" at a discounted rate to the market through FRAX governance. Each unit of FRAX bond (also called FXB) is equal to one unit of locked FRAX, and at a pre-determined date the owner of the FXB is able to burn their FXB and receive their equal unit of FRAX.
Through the FXB AMO, the Frax team auctions off FXBs to the public. The FRAX received by the AMO is then sent to FinresPBC.
Technical specifications such as interface and access control can be found on Github (TODO: make repo public).