Bloq security record

As of 14 Oct 2026, Bloq has 1 audit report on Trustblock, by Resonance Security, dated 5 Oct 2023. That report lists no open critical findings.

Critical findings
No open critical findings
In 1 report.
Open the latest report
Your label, live
Get the label for your site

Record last updated . It holds audits and findings, contracts and incidents up to Oct 2026. Statuses are the security firms’ own. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
BloqSecurity firm: Resonance SecurityDate: Scope: Files named in the reportNo open critical findingsOpen · IPFS

Findings9

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

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium202
Low302
MediumApprove Function Allows FrontrunningBloq · Resonance Security · 5 Oct 2023Not fixed

The ERC20 approve() function creates the potential for an approved spender to spend more than the intended amount. It is possible to perform a frontrunning attack, enabling an approved spender to call transferFrom() both before and after the call to approve() is processed. While there is no proper solution to this issue implemented into the standard, there are multiple workarounds that may or may not sacrifice backwards compatibility.

Open the report
MediumLack Of Validation Of collateralFactor Leads To Insufficient Funds When Paying Liquidation FeesBloq · Resonance Security · 5 Oct 2023Not fixed

The function liquidate() is meant to be used to liquidate unhealthy debt positions of other users. Whenever a position is unhealthy, this function makes a call to quoteLiquidateOut() to determine the amount of processing fees. As an example, we can suppose the processing fees are as follows.amountToRepay_ / _toLiquidator = 100 _protocolFee = 10% _liquidatorIncentive = 0%After the function quoteLiquidateOut() is executed, it will return the following values:_toLiquidator = 100 _fee = 10 _totalToSeize = 110Since the account of the unhealthy position is paying the liquidation fees, the user of said account must possess a balance of deposit tokens greater than his actual debt. This factor is controlled by the collateralFactor variable. In order for the debt to be repaid in full, the collateralFactor needs to allow for a sufficient margin that should be greater than the fees paid during the liquidation process.However, this fact is not guaranteed in the code. Not only can the collateralFactor variable range from 0% to 100%, but also the total percentage of liquidation fees is never checked if it is smaller than the current collateralFactor. This may ultimately lead to the impossibility of liquidating unhealthy positions.

Open the report
LowCode Duplication Between Manageable And Pauseable ContractsBloq · Resonance Security · 5 Oct 2023Not fixed

The smart contracts Manageable and Pauseable implement the same functionality and could be adapted to remove the inherent duplication of code. Avoiding code duplication makes the code more readable for the smart contracts' users and saves gas during deployment.

Open the report
LowHardcoded Zero Address As zroPaymentAddressBloq · Resonance Security · 5 Oct 2023Not fixed

The LayerZero protocol specification requires that whenever cross-chain estimates are being made or messages being sent, the input parameter zroPaymentAddress should not be hardcoded. This is due to the fact that different chains may have different implementations of the zero address, and, as such, this variable should be passed in as an argument by the user, and should not be hardcoded.It should be noted that the impact for this finding is specific to the respective chains being included and implemented in the protocol.

Open the report
LowNo Usage Of ERC165Bloq · Resonance Security · 5 Oct 2023Not fixed

The ERC165 is a community-wide standard that implements a method to publish and query whether contracts support specific interfaces and their respective version. It is therefore useful when interacting between contracts and to perform more secure validations between functions that are expected to be implemented by specific contract addresses. This is possible through the usage of the function supportsInterface(). It should be noted that while it is not guaranteed that the implementation of the external contract is legitimate, it is possible to ensure that the respective interface being used in the external call is correct.Throughout the code, several instances were found to be lacking the implementation and proper validation of address parameters that implement specific contracts. However, it should be noted that the specified list is not extensive.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

The repositories and files the reports name

Show this on your site

Is this your project? Show this record on your own website. The label states what the record holds, links to this page and updates by itself. It is free and needs no sign-in.

Content

Facts

Automatic: the three strongest facts of this project’s own record (its last audit and two more), highlighted. They update with the record. Picking a fact turns Automatic off.

Fixed as
Language

Style

Layout
Theme
Accent
Corners

Format

Size
Date
Embed as
HTML
<head>
<script src="https://widget.trustblock.run/project-widget.min.js" defer></script>
</head>
<body>
<div
data-tb-project-widget
data-tb-project-slug="bloq"
></div>
</body>

Paste the code where the label should appear. It uses no API credit and updates by itself.

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