Zoniqx security record

Ethereumzoniqx.com

As of 24 Oct 2026, Zoniqx has 1 audit report on Trustblock, by QuillAudits, dated 6 May 2024. 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. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
ZoniqxSecurity firm: QuillAuditsDate: Scope: Files named in the reportNo open critical findingsOpen · quillaudits.com

Findings17

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

SeverityOpenAcknowledgedFixed
Critical000
High103
Medium000
Low0013
HighIncorrect Allowance Verification and HandlingZoniqx · QuillAudits · 6 May 2024Fixed

The safeTransferFrom method incorrectly handles the allowance verification due to a parameter mismatch and a logical error in the associated _spendAllowance method. This issue arises because the function uses a hardcoded zero (0) for the token ID instead of the actual token ID provided to the function, and there's a mix-up between the amount and id parameters in _spendAllowance.Impact: This flaw allows users (e.g., delegated operators) to potentially transfer tokens beyond their authorized allowance, leading to unauthorized asset movement and breach of trust assumptions in the token management system. It undermines the ERC-1155 standard's security guarantees regarding token transfers and allowance management.

Open the report
HighLocked Tokens can be transferred before release durationZoniqx · QuillAudits · 6 May 2024Fixed

The erc7518 specification states that only unlocked assets can be transferred or used by users who own them, however the safeBatchTransferFrom() allows the users to move their funds as this method is directly inherited from the ERC1155Upgradeable contract and is not overridden like safeTransferFrom() that implements additional checks like canTransfer to ensure correct restrictions and signatures are provided before transfers are made.

Open the report
HighUnauthorized Token Locking and UnlockingZoniqx · QuillAudits · 6 May 2024Fixed

The lockTokens method in the contract lacks necessary authorization checks to verify if the caller has the right to lock tokens for the specified account. This allows any user to lock any amount of tokens belonging to any account, leading to potential misuse where tokens can be frozen maliciously without the owner's permission.

Open the report
LowInconsistent function naming may cause confusionZoniqx · QuillAudits · 6 May 2024Fixed

The naming of the forceTokenUnlock() and _forceUnlockTokens functions in ERC7518.sol are inconsistent, which could lead to confusion about their functionality.

Open the report
LowInsufficient Input ValidationsZoniqx · QuillAudits · 6 May 2024Fixed

The methods listed above do not check for the validity of the incoming function arguments which might result in setting invalid values such as for the payout address or an excessively large floor price, potentially leading to loss of funds or failed transactions.

Open the report
LowInsufficient NatSpecZoniqx · QuillAudits · 6 May 2024Fixed

The contracts and methods listed above perform critical functionality to manage users' assets and funds. However, there is no supporting documentation provided for NatSpec that explains the business needs and limitations of the applications which can cause misunderstandings and threaten users' operations.

Open the report
LowMissing non-reentrant modifierZoniqx · QuillAudits · 6 May 2024Fixed

The batchPayout() function lacks a non-reentrant modifier, potentially allowing reentrancy attacks which could lead to unexpected behaviors or exploits.

Open the report
LowRemove redundant checks for to AddressZoniqx · QuillAudits · 6 May 2024Fixed

Redundant checks for the to address in the _payout() function can lead to unnecessary gas consumption and code complexity. This check is already placed inside ERC20Upgradeable contract that handles the payout's transfer call underneath.

Open the report
LowRemove unused fn args and ret varsZoniqx · QuillAudits · 6 May 2024Fixed

Some functions in the listed contracts include arguments or return variables that are never used, leading to unnecessary code complexity and gas costs. For instance, the data variable in freeze() and unfreeze() is never utilized in the method for operation. Similarly, in the getDealsCount(), the return value deals is never used.

Open the report
LowSubstandard args order may cause confusion for usersZoniqx · QuillAudits · 6 May 2024Fixed

The order of arguments in verifySignature() _transferTokensToInvestor() is unconventional and might cause confusion, potentially leading to incorrect implementations or usage.

Open the report
Show 6 more
LowUnconformed context fetchingZoniqx · QuillAudits · 6 May 2024Fixed

The _msgSender and _msgData methods in the ERC2771ContextUpgradeable contract do not conform to a set standard while fetching the data or caller from the context as the sender is extracted using assembly code block which has proven manipulatable in past due to either delegatecalls or by calldata stuffing.

Open the report
LowUngraceful Event EmissionZoniqx · QuillAudits · 6 May 2024Fixed

The _changePayoutAddress() method does not emit the previous payout address when it is changed, which can obscure tracking of changes in the contract state.

Open the report
LowUnimplemented Interface for ERC7518Marketplace contractZoniqx · QuillAudits · 6 May 2024Fixed

There is a typo in the interface at changeComplainceAddress which could lead to implementation errors or issues when interfacing with other contracts. Additionally, the interface is not implemented in the ERC7518Marketplace contract, specifically for create() method the contract implements a different function selector with additional arguments that deviate from the interface.

Open the report
LowUnordered methods according to Solidity style docZoniqx · QuillAudits · 6 May 2024Fixed

The methods in CompliTo.sol and ERC1155Mod.sol are not organized according to the Solidity style guide which recommends ordering methods by visibility and functionality so that gas consumption for all users facing external or public methods are optimized.

Open the report
LowUnsanitized freezing, restriction and whitelist removal operationsZoniqx · QuillAudits · 6 May 2024Fixed

Methods such as _freeze(), _unfreeze() in FreezeAddress.sol, _removeFromWhiteList() in IssuerFactory.sol and _restrict(), _removeRestriction() in RestrictTransfer.sol are performed without checking the previous state of the account address. This oversight can lead to redundant operations and event spamming, which may impact the efficiency and reliability of the system. For instance, the ERC7518 token standard specs state the following about _removeRestriction() > MUST check if id is previously restricted.

Open the report
LowUse Block Letters for enum variablesZoniqx · QuillAudits · 6 May 2024Fixed

The enumerable structs InvestmentStatus and InvestmentType in the PaymentTracker contract do not implement the variables inside in uppercase format, which is the standard practice for enums to differentiate them from other variables and mark the use of uint8 variable for enums.

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="zoniqx"
></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