Illuvium Yield Farming Rewards

QuantstampFiles named in the report

Quantstamp reviewed Illuvium (Illuvium Yield Farming Rewards) on 14 Aug 2021: 16 findings, 0 critical; 11 marked fixed, 4 acknowledged, 1 open.

No open critical findings
Open the reportOpen Illuvium’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings16

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium002
Low148
Low`blocksPerUpdate` Is Defined In Blocks But Is Expected To Be 2 WeeksAcknowledged

Several comments suggest that `blocksPerUpdate` should equal 2 weeks, but is defined in blocks which have variable mining times. It is not clear why `timestamp` is not used for this variable instead, particularly since block timestamp manipulation will have minimal effect for such a large timespan.

Low`IlluviumFlashPool` Does Not Check If Lock Period Has PassedAcknowledged

The `IlluviumPoolBase._unstake` function (inherited by `IlluviumFlashPool`) does not check if `block.timestamp > lockedUntil` of a deposit. The `IlluviumCorePool` adds a check in its overridden function `_unstake`, however, `IlluviumFlashPool` does not override the `_unstake` function.

LowClone-and-OwnAcknowledged

The clone-and-own approach involves copying and adjusting open source code at one's own discretion. From the development perspective, it is initially beneficial as it reduces the amount of effort. However, from the security perspective, it involves some risks as the code may not follow the best practices, may contain a security vulnerability, or may include intentionally or unintentionally modified upstream libraries. <br><br> All files in the `utils/` sub-directory are cloned from open source repositories such as openzeppelin.

LowPrivileged Roles and OwnershipAcknowledged

Smart contracts will often have `owner` variables to designate the person with special privileges to make modifications to the smart contract. The following instances of this issue have been identified: 1. The `owner` of the `TokenLocking` contract can perform the following privileged actions: * Set the `pool` address for ILV staking (only once). * Set the balances of tokens owned by any address, e.g. pre-seed investors, seed investors, team members, etc. This can be done multiple times. 2. The `owner` of `IlluviumPoolFactory` can create/register unlimited pools at will.

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 (44)

  • contracts/interfaces/ILockedPool.sol
  • contracts/utils/SafeMath.sol
  • contracts/mocks/FlashPoolMock.sol
  • contracts/locking_erc20/__LockingERC20.sol
  • contracts/utils/Address.sol
  • contracts/interfaces/IERC20Mintable.sol
  • contracts/utils/ERC20.sol
  • contracts/pools/IlluviumCorePool.sol
  • FlashPoolBase.sol
  • contracts/interfaces/IDisperse.sol
  • contracts/utils/Ownable.sol
  • contracts/token/IlluviumERC20.sol
  • contracts/pools/IlluviumLockedPool.sol
  • contracts/mocks/ERC20Mock.sol
  • contracts/interfaces/INFTClaimManager.sol
  • contracts/interfaces/IERC721.sol
  • contracts/mocks/__NopReceiver.sol
  • contracts/interfaces/IERC20.sol
  • contracts/interfaces/IVaultReceiver.sol
  • contracts/utils/SafeERC20.sol
  • contracts/locking_erc20/LockingERC20.sol
  • contracts/interfaces/IWETH.sol
  • contracts/pools/IlluviumVault.sol
  • contracts/mocks/__IlluviumERC20.sol
  • contracts/pools/IlluviumPoolBase.sol
  • contracts/locking_erc20/__NopLockingListener.sol
  • contracts/mocks/TokenLockingMock.sol
  • contracts/token/ERC721Receiver.sol
  • contracts/Migrations.sol
  • contracts/interfaces/ICorePool.sol
  • contracts/pools/TokenLocking.sol
  • contracts/mocks/PoolFactoryMock.sol
  • contracts/utils/AccessControl.sol
  • contracts/pools/IlluviumPoolFactory.sol
  • contracts/token/ERC20Receiver.sol
  • contracts/interfaces/IPool.sol
  • contracts/mocks/LockedPoolMock.sol
  • contracts/interfaces/IERC1155.sol
  • contracts/mocks/CorePoolMock.sol
  • contracts/locking_erc20/LockingListener.sol
  • FlashPoolV2.sol
  • contracts/utils/AddressUtils.sol
  • contracts/pools/IlluviumFlashPool.sol
  • contracts/token/EscrowedIlluviumERC20.sol

Part of Illuvium’s security record

Illuvium
Audits6 audits by 4 firmsLast audit Oct 2025, by Cyfrin.
Critical findingsNo open critical findingsAcross 6 reports.
Open Illuvium’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