Optix

CertiKFiles named in the report

CertiK reviewed Optix Protocol (Optix) on 14 Nov 2022: 13 findings, 0 critical; 8 marked fixed, 1 acknowledged, 4 open.

No open critical findings
Open the reportOpen Optix Protocol’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings13

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

SeverityOpenAcknowledgedFixed
Critical000
High010
Medium001
Low407
LowIncompatibility With Deflationary TokensOpen

When transferring standard ERC20 deflationary tokens, the input amount may not be equal to the received amount due to the charged transaction fee. For example, if a user stakes 100 deflationary tokens (with a 10% transaction fee) in a vault, only 90 tokens actually arrived in the contract. However, the user can still withdraw 100 tokens from the contract, which causes the contract to lose 10 tokens in such a transaction. The vault takes the pool token balance (the `collateralReserves`) into account when calculating the users' reward. An attacker can repeat the process of deposit and withdraw to increase the token balance (`collateralReserves`) in a deflationary token pool and cause the contract to lower the reward amount. Reference: https://thoreum-finance.medium.com/what-exploit-happened-today-for-gocerberus-and-garuda-also-for-lokum-ybear-piggy-caramelswap-3943ee23a39f

LowThird Party DependenciesOpen

The contract is serving as the underlying entity to interact with third party token and oracle protocols. The scope of the audit treats 3rd party entities as black boxes and assume their functional correctness. However, in the real world, 3rd parties can be compromised and this may lead to lost or stolen assets. In addition, upgrades of 3rd parties can possibly create severe impacts, such as increasing fees of 3rd parties, migrating to new LP pools, etc.

LowUnused Return ValueOpen

The return value of an external call is not stored in a local or state variable. ```solidity=78 factory.vaults(vaultId).isOptionValid(holder,oracle,optionSize); ``` --- ```solidity=151 factory.vaults(vaultId).collateralToken().approve(address(this), remain); ``` --- ```solidity=154 factory.vaults(vaultId).provideAndMint(address(this), remain, false, true); ``` --- ```solidity=181 collateralToken.approve(address(this),collateralOut); ```

LowVariables That Could Be Declared as `constant`Open

The linked variables could be declared as `constant` since these state variables are never modified.

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

  • contracts/libraries/OptionsLib.sol
  • contracts/OptionsERC721.sol
  • contracts/SimpleSeller.sol
  • contracts/Referrals.sol
  • contracts/OptionsVaultFactory.sol
  • contracts/OptionsVaultERC20.sol
  • contracts/interfaces/Interfaces.sol

Part of Optix Protocol’s security record

Optix Protocol
Audits3 audits by 2 firmsLast audit Mar 2023, by Paladin.
Critical findingsNo open critical findingsAcross 3 reports.
Open Optix Protocol’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 reports · latest May 2025

See CertiK’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