Ethereum Reserve Dollar (ERD)

QuantstampRepository at commit 8023739

Quantstamp reviewed USDE (ERD) (Ethereum Reserve Dollar (ERD)) on 30 Oct 2023: 33 findings, 0 critical; 9 marked fixed, 21 acknowledged, 3 open.

No open critical findings
Open the reportOpen USDE (ERD)’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings33

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical000
High232
Medium092
Low195
HighLiquidations Are Not Proportionally Funded by All TrovesOpen

When active troves are liquidating other troves, assets are liquidated with respect to proportions of collateralized asset types. For example, for a trove that only holds rETH that gets liquidated, all of its rewards (collateral and debt) will go towards only troves that hold rETH. This could lead to scenarios where some troves take on a disproportionate amount of liquidated debt if they use a less popular collateral type. In the case of a particular collateral type taking a steep dive in price, this could lead to liquidation cascades. **At its most extreme, liquidating the last trove that holds a given collateral type may result in perpetually unclaimed debt.**

HighOracle Manipulation with Flashloans Can Exploit Funds via LiquidationOpen

The oracle contracts in ERD currently rely on Chainlink and Tellor oracles. Tellor is relied upon as a fallback oracle. However, Tellor's prices can be manipulated within the space of a block: reporting a price to Tellor only requires staking 10 TRB. Therefore, if Chainlink is ever determined by the oracle contracts to be frozen or broken, then an attacker may be able to buy USDE using a flashloan, deposit it in the stability pool, report a false price to Tellor and thereby trigger recovery mode, enabling the liquidation of all troves with TCR below 130%; part of the gains can be sold off to repay the flashloan.

LowOwnership Can Be RenouncedOpen

Contracts inheriting from `Ownable` or `OwnableUpgradeable` contain a function called `renounceOwnership()` which allows the owner to leave the contract without an owner. This would leave every function guarded by the `onlyOwner` modifier unable to be executed.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (57)

  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/StabilityPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/CollSurplusPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/ERDBase.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/WadRayMath.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/TellorCaller.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ITellorCaller.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IBorrowerOperations.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/LiquidityIncentive.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/CollateralManager.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ISortedTroves.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Treasury.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IStabilityPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveManagerDataTypes.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IOracle.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IStETH.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IEToken.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/USDEToken.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveDebt.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/MultiTroveGetter.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/GasPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/BaseMath.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveManagerRedemptions.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/AggregatorV3Interface.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/ERDMath.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IUSDEToken.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveLogic.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveManagerLiquidations.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IDefaultPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ITroveManagerLiquidations.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ICommunityIssuance.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/ITellor.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ITroveManager.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/PriceFeed.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveInterestRateStrategy.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ITroveDebt.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Errors.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/CommunityIssuance.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ICollateralManager.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/SortedTroves.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IERDBase.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/BorrowerOperations.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/TroveManager.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IPriceFeed.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ICollSurplusPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/HintHelpers.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IActivePool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ITroveManagerRedemptions.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/DefaultPool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/ActivePool.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ICollateralReceiver.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Oracles/StETHOracle.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/DataTypes.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Dependencies/ERDSafeMath128.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/ITroveInterestRateStrategy.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/Interfaces/IWETH.sol at commit 8023739
  • https://github.com/Ethereum-ERD/dev-upgradeable/contracts/EToken.sol at commit 8023739

Part of USDE (ERD)’s security record

USDE (ERD)
Audits1 audit by 1 firmLast audit Oct 2023, by Quantstamp.
Critical findingsNo open critical findingsIn 1 report.
Open USDE (ERD)’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us