The Flat Money protocol allows people to deposit Rocket Pool ETH (rETH) and mint UNIT, a decentralized delta-neutral flatcoin designed to outpace inflation. Flat Money also offers Leverage Traders the ability to deposit rETH and open rETH leveraged long positions through perpetual futures contracts.
Scope
Contest Results
On what chains are the smart contracts going to be deployed?
Base
Which ERC20 tokens do you expect will interact with the smart contracts?
External ERC20: rETH
Internal ERC20: flatcoin
Which ERC721 tokens do you expect will interact with the smart contracts?
External ERC721: none
Internal ERC721: leveraged positions
Do you plan to support ERC1155?
No
Which ERC777 tokens do you expect will interact with the smart contracts?
None
Are there any FEE-ON-TRANSFER tokens interacting with the smart contracts?
No
Are there any REBASING tokens interacting with the smart contracts?
No
Are the admins of the protocols your contracts integrate with (if any) TRUSTED or RESTRICTED?
TRUSTED: collateral asset will be rETH, Pyth Network oracle for rETH
Is the admin/owner of the protocol/contracts TRUSTED or RESTRICTED?
TRUSTED: contracts are upgradeable by admin, admin can update protocol parameters
Are there any additional protocol roles? If yes, please explain in detail:
None other than owner role (using OwnableUpgradeable).
Is the code/contract expected to comply with any EIPs? Are there specific assumptions around adhering to those EIPs that Watsons should be aware of?
No
Please list any known issues/acceptable risks that should not result in a valid finding.
Flatcoin can decrease in dollar value when funding rates are negative and protocol fees don't cover the losses. This is acceptable.
Flatcoin can be net short and ETH goes up 5x in a short period of time, potentially leading to UNIT going to 0.
The flatcoin holders should be mostly delta neutral, but they may be up to 20% short in certain market conditions (skewFractionMax
parameter).
The funding rate should balance this out, but theoretically, if ETH price increases by 5x in a short period of time whilst the flatcoin holders are 20% short, it's possible for flatcoin value to go to 0. This scenario is deemed to be extremely unlikely and the funding rate is able to move quickly enough to bring the flatcoin holders back to delta neutral.
When long max skew (skewFractionMax
) is reached, flatcoin holders cannot withdraw, and no new leverage positions can be opened.
This is to prevent the flatcoin holders being increasingly short. This is temporary because the funding rate will bring the skew back to 0 and create more room for flatcoin holders to withdraw and leverage traders to open positions.
Please provide links to previous audits (if any).
N/A
Are there any off-chain mechanisms or off-chain procedures for the protocol (keeper bots, input validation expectations, etc)?
The protocol uses Pyth Network collateral (rETH) price feed. This is an offchain price that is pulled by the keeper and pushed onchain at time of any order execution.
In case of external protocol integrations, are the risks of external contracts pausing or executing an emergency withdrawal acceptable? If not, Watsons will submit issues related to these situations that can harm your protocol's functionality.
Only rETH and Pyth rETH oracle dependency.
Do you expect to use any of the following tokens with non-standard behaviour with the smart contracts?
External dependency only rETH on Base https://basescan.org/token/0xb6fe221fe9eef5aba221c348ba20a1bf5e73624c#code
Add links to relevant protocol resources
RocketPool depository: https://github.com/rocket-pool/rocketpool/tree/master
Total Rewards
Contest Pool
Lead Senior Watson
Judging Pool
Lead Judge
33,000 USDC
23,500 USDC
2,000 USDC
2,500 USDC
Status
Scope
Start Time
End Time
Finished
2,215 nSLOC
Jan 22, 2024, 3:00 PM
Feb 4, 2024, 3:00 PM