As of 23 Oct 2026, XProtocol has 1 audit report on Trustblock, by QuillAudits, dated 1 Aug 2024. That report lists no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Oct 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| Xprotocol | Security firm: QuillAudits | Date: | Scope: Files named in the report | No open critical findings | Open · quillaudits.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 0 |
| Medium | 0 | 0 | 3 |
| Low | 2 | 0 | 5 |
The Tier.whitelistSoldQuantity should constantly be less than or equal to Tier.whitelistQuantity. However, the setOrAddPricingTier function, which updates price tiers, may not always enforce this constraint. Consequently, this could lead to an inconsistent state within the system.
Open the reportThe PromoCode.referralDiscountPercentage must always be maintained at a value less than 100%. Setting this value to 100% would result in the issuance of an NFT at no cost.
Open the reportThe updatePromoCode function is designed to modify existing promo codes. While it successfully updates the _promoCodes data structure, it does not perform the requisite updates to the _promoCodesByRecipient data structure. This oversight may lead to potential inconsistencies in the system's state. Similar updates should be done in removePromoCode.
Open the reportConditional check in claimableNodeAmounts[msg.sender] <= 0 of claimNode function can be == instead of <0
Open the reportRemove dead commented code of _getWhitelistByAddrAndTier function.
Open the reportInconsistent naming of the function removePromoCode, it’s deactivating Promo code but name implies that it removed Promo code.
Open the reportThe withdrawFunds function possesses significant administrative capabilities and should not be managed by an Externally Owned Account (EOA). It is advisable to utilize a multisignature (multisig) wallet for this purpose. Additionally, to mitigate issues when transferring funds to a contract, employ the .send or .call methods with a specified gas limit or the nonReentrant modifier, rather than using the .transfer method.
Open the reportThe contract contains numerous functions that are susceptible to reentrancy attacks, given the extensive use of .send and .call opcodes. To robustly address this issue, it is advisable to implement a non-reentrancy guard across all functions. This approach would effectively mitigate reentrancy vulnerabilities and enhance the contract's security.
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="xprotocol"></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