As of 3 Nov 2026, THE9Company has 1 audit report on Trustblock, by CertiK, dated 15 Sep 2023. That report lists no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Nov 2026. Trustblock does not review code.
Newest first
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 2 | 0 |
| Medium | 0 | 0 | 0 |
| Low | 6 | 0 | 0 |
The codebase contains multiple Solidity versions, which can lead to unexpected behavior, potential vulnerabilities, difficulties in maintaining the code, and inconsistencies in the execution of the smart contract. Using different versions may also result in increased complexity during code auditing, as different security features and bug fixes are present in different versions of the compiler. Versions used: `^0.8.0` `^0.8.0` is used in THE9.sol file. ```solidity=905 pragma solidity ^0.8.0; ```
Open the reportLiterals with many digits are difficult to read and review. ```solidity=1262 _mint(_msgSender(), _calcDecimal(10000000000)); ```
Open the reportIn the current smart contract design, the role `ORG_ADMIN_ROLE` holds an unusually high level of privilege, including the ability to execute the main functions like `transferAmountWithLock` and `createAmountWithLock`. Moreover, the `updateAmountWithLock` function allows this role to modify existing token amounts for a given `beneficiary`, which is particularly concerning. This approach raises significant security and centralization risks. The `ORG_ADMIN_ROLE` (which is also the `PAUSER` and `DEFAULT_ADMIN`) represents a single point of failure, and if compromised, it could jeopardize the entire contract's integrity. This setup also heavily centralizes control, undermining the decentralized nature of blockchain technologies. Given these concerns, we would like the team to clarify the rationale behind those design choices and to add multiple layer of security to such account (e.g., multi-sig).
Open the reportThe `lockCycleDays` field of the `BeneficiaryInfo` mapping has no upper bound. This means that if this value is set to a very big number and a certain percentage of `amount` has been transferred to the user already, the `_getNextReleaseTime` will increase by a `lockCycleDays` days (set as a big number). Therefore, no amount could be released for that `beneficiary` before the `lockCycleDays` amount of days passes and there will be no way to update that record again (since the `remainPercent` will not be 100).
Open the reportThe function `updateAmountWithLock` before updating the details in the `BeneficiaryInfo` mapping, it checks wether the mapping exists and the `remainPercent` is higher than `100`. Although, the mapping is retrieved a second time at the pointed locations, while the original `beforeInfo` could be used.
Open the reportThe `SafeMath` library is used unnecessarily. With Solidity compiler versions 0.8.0 or newer, arithmetic operations will automatically revert in case of integer overflow or underflow. ```solidity=46 library SafeMath { ``` - An implementation of `SafeMath` library is found. --- ```solidity=1361 remainPercent = SafeMath.sub(remainPercent, beforeInfo.unlockPercent); ``` - `SafeMath.sub` is called in `transferAmountWithLock` function of `THE9` contract. *Note: Only a sample of 1 `SafeMath` library usage in this contract (out of 6) are shown above.*
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="the9"></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