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.
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.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| Bloq | Security firm: Resonance Security | Date: | Scope: Files named in the report | No open critical findings | Open · IPFS |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 0 |
| Medium | 2 | 0 | 2 |
| Low | 3 | 0 | 2 |
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 reportThe 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 reportThe 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 reportThe 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 reportThe 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 reportThe reports name a repository or files. Open a report to see its scope.
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.
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.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-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