Olympus Protocol

CertiKFiles named in the report

CertiK reviewed Olympus (Olympus Protocol) on 11 Sep 2022: 12 findings, 0 critical; 6 marked fixed, 6 open.

No open critical findings
Open Olympus’s security record

The original report was removed from its address (seen 14 Oct 2026).

Trustblock does not review code.

Findings12

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

SeverityOpenAcknowledgedFixed
Critical000
High200
Medium000
Low406
LowComparison to Boolean ConstantFixed

Boolean constants can be used directly and do not need to be compared to true or false. ```solidity=652 if (_lpStatus == false) { ```

LowImproper Usage of `public` and `external` TypeFixed

The linked `public` functions that are never called by the contract could be declared as `external`. `external` functions are more efficient than `public` functions.

LowMissing Error MessagesFixed

The **require** can be used to check for conditions and throw an exception if the condition is not met. It is better to provide a string message containing details about the error that will be passed back to the caller.

LowMissing Upper-Bound Check During Token TransferFixed

During `OLY` token transfers, a fee is applied to the transfer. This fee structure depends on whether the transaction is buying/selling from a liquidity pool, or a regular token transfer. The three percentage fees taken from any transfer type are `dividend`, `funds` and `invite`. Their percentages are dictated by the `_owner` authorized function `setParams()`. If the percentage sum of these fees exceed 100% (or in other words, if the amount of fees is greater than the amount of tokens being transferred) then the function `_transferFee()` will lead to a revert, and as a consequence the `OLY` token cannot be transferred. ```solidity=695 uint256 _amount1 = amount.mul(_args.dividend).div(100); uint256 _amount2 = amount.mul(_args.funds).div(100); uint256 _amount3 = amount.mul(_args.invite).div(100); uint256 _amount4 = amount.sub(_amount1.add(_amount2).add(_amount3)); //This will revert if amount < (_amount1 + _amount2 + _amount3) ```

LowMissing Zero Address ValidationFixed

Addresses should be checked before assignment or external call to make sure they are not zero addresses.

LowUnused MappingsFixed

The linked mappings are never used in the codebase. --- Variables `_idoers` and `_shares` in contract `OLY` is never used. ```solidity=429 mapping(address => uint256) internal _idoers; mapping(address => uint256) internal _shares; ```

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

  • contracts/OLY.sol

Part of Olympus’s security record

Olympus
Audits1 audit by 1 firmLast audit Sep 2022, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open Olympus’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