Derify protocol Ⅱ

CertiKFiles named in the report

CertiK reviewed Derify protocol (Derify protocol Ⅱ) on 16 Sep 2022: 22 findings, 0 critical; 11 marked fixed, 8 acknowledged, 3 open.

No open critical findings
Open the reportOpen Derify protocol’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings22

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

SeverityOpenAcknowledgedFixed
Critical000
High080
Medium101
Low2010
MediumRepeat modifier `nonReentrant` on function `withdFixed

The above-mentioned function has two modifiers `nonRentrant`.

LowDecimals in the contract `DerifyBroker`Fixed

The value of the public constant CONTRACT_DECIMAL is 10e8 in the DerifyBroker contract, hence all the accounts' decimals should be 8. While USD, DRF, and EDRF are with decimals 18. So the protocol has to interact with USD contract and handle the different decimals.

LowDesign on liquidationFixed

If the account is liquidated, his/her account balance will be cleared.

LowestimateGasFee not based on operatedSizeFixed

The amount of the fee is not relevant to the actual `operatedSize`. As long as the position is processed, there will be a flat fee.

LowEvents can be mergedFixed

If the updates of gasFeePool are always together with the updates of gasBalance, then the two events can be merged for better simplicity.

LowFunction `transferFrom()` not recommendedFixed

The function `transferFrom()` in an ERC20 contract is used for receiving the user's payment to the contract. When the contract needs to transfer money out, it's better to use the function `transfer()` because there is the potential that the target token does not support transferring from users selves.

LowInformation about the position change feeFixed

The position change fee is calculated with kRatio, gRatio, and roRatio. The three ratios are set by the owner and it's hard to understand their meanings.

LowMissing Emit EventsFixed

The function that affects the status of sensitive variables should be able to emit events as notifications to users.

LowTypoFixed

The function name should be `cancelAllOrderedPositions` rather than `cancleAllOrderedPositions`.

LowUnchecked Value of ERC-20 `transfer()`/`transferFFixed

The linked `transfer()`/`transferFrom()` invocations do not check the return value of the function call which should yield a `true` result in case of a proper ERC-20 implementation.

Show 1 more
LowUnknown implementation of `communityVestingVault`Fixed

The contract is serving as the underlying entity to interact with `communityVestingVault`, which is an external dependency in this audit. The scope of the audit treats 3rd party entities as black boxes and assumes their functional correctness. However, in the real world, 3rd parties can be compromised and this may lead to lost or stolen assets. Additionally, the value `amountVested` is calculated by the function `communityVestingVault.calculateGrantClaim()` and is added to the variable `drfRewardPool`. It's recommended to return the actual value in the function `claimVestedTokens` in case the accounts and funds are not reconciled.

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

  • contracts/libraries/DerifyMath.sol
  • contracts/DerifyRewards.sol
  • contracts/interfaces/IDerifyClearing.sol
  • contracts/DerifyDerivative.sol
  • contracts/DerifyClearing.sol
  • contracts/interfaces/IDerifyBroker.sol
  • contracts/tokens/eDRF.sol
  • contracts/DerifyBroker.sol
  • contracts/interfaces/IDerifyExchange.sol
  • contracts/libraries/DerifyHelper.sol
  • contracts/interfaces/IDerifyRewards.sol
  • contracts/tokens/bDRF.sol
  • contracts/interfaces/IDerifyFactory.sol
  • contracts/DerifyExchange.sol
  • contracts/interfaces/IDerifyDerivative.sol
  • contracts/DerifyFactory.sol
  • contracts/libraries/DerifyExchangeHelper.sol
  • contracts/interfaces/IDerifyERC20.sol
  • contracts/Migrations.sol

Part of Derify protocol’s security record

Derify protocol
Audits3 audits by 1 firmLast audit Dec 2023, by CertiK.
Critical findingsNo open critical findingsAcross 3 reports.
Open Derify 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