EDIT 5-17-2021: Removed the step regarding transferring ETH back to the Uniswap pool
This proposal reinstates the modified FEI price reweights on the FEI-ETH Uniswap pair. We include the following parameter changes:
- Set reweight frequency to 4 hours
- Lower the min distance below peg for a reweight from 1% to 0.5%
- Lower reweight keeper reward to 200 FEI
Frequency
For a few reasons, we propose a reweight cadence of 4 hours. We believe it would be beneficial for reweights to be simpler, intuitive, and regular than the system described in Fei’s whitepaper. This will create a strong expectation that any deviations from the peg will soon be corrected by the protocol, and the mechanisms for this are robust and simple to understand. Regular reweights throughout the day will ensure no geographical regions are given special advantage.
In addition, faster reweight cadences allow faster relief of any remaining sell pressure. Our simulations suggest that if there is a sell pressure of 200 million FEI, and that FEI wants to exit at or above $0.99, a four-hour cadence should relieve the pressure in about 6 days. For context, there are ~500 million user-controlled FEI in circulation, and only ~200 million are not staked or time-locked. The true amount of remaining sell pressure might be much lower than 200 million FEI.
Minimum Distance Below the Peg
Lowering the minimum distance for a reweight to 0.5% fosters a tighter peg. Reweights could be triggered more frequently and at a lower cost to the protocol.
This parameter choice further cements the notion that the protocol will be defending the peg using PCV at closer ranges to $1. Governance allows the parameters to be adjusted in the future based on market conditions.
Removed: Returning ETH to the FEI-ETH pair
The original FIP-3 included a provision for returning ETH to the FEI-ETH pair from the EthPCVDripper. Now with FIP-2 coming through, this ETH deposit could fail if the FEI price is outside of a 1% distance from thhe peg. This is caused by the slippage protection provided on the EthUniswapPCVDeposit.
In order to keep the proposal simple and minimize the risk of the proposal not executing, we would not be moving ETH out of the dripper.
This can instead be saved for the PCV diversification proposal. The price on the stabilizer can also be raised in a future proposal to make the funds more useful as well.
Lowering Keeper Reward
Traders who want to sell FEI are incentivized to trigger reweights regardless of whether there is a direct reward for FEI keepers, asthey would want a better exchange rate on their trade.
Lowering the FEI reward to 200 allows the protocol to reduce FEI inflation on the reweights which could occur over 2 thousand times a year with the 4-hour cadence. The true number would likely be lower, as this assumes a reweight in every 4 hour interval.
Timeline
Normally, proposals should go through a Snapshot vote to allow for broader participation from FEI-TRIBE stakers and holders who do not want to pay gas to vote on the DAO. This practice is suitable for general signaling of support. This proposal is being submitted directly to the DAO, as it is restoration of protocol functionality, and there is a broad sentiment that the peg should be restored as quickly as possible.
May 20, 10am PT - submit to the DAO
May 20, ~10pm PT - voting begins
May 22, ~10:30am PT - voting ends
May 23, ~10:30am PT - new code is executed if passed
Proposal Steps
- Grant PCV Controller role to the new EthUniswapPCVController
- target: Core
- method: grantPCVController
- address: New EthUniswapPCVController
- Grant the Minter to the new EthUniswapPCVController
- target: Core
- method: grantMinter
- address: New EthUniswapPCVController
- Revoke the PCV Controller role from the old EthUniswapPCVController
- target: Core
- method: revokePCVController
- address: Old EthUniswapPCVController
- Revoke the Minter role from the old EthUniswapPCVController
- target: Core
- method: revokeMinter
- to: Old EthUniswapPCVController
- Update PCVDeposit on new EthUniswapPCVController (added to update to new FIP-2 contracts)
- target: New EthUniswapPCVController
- method: setPCVDeposit
- pcvDeposit: New EthUniswapPCVDeposit