THE9Company security record

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.

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 Nov 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
THE9Security firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings8

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

SeverityOpenAcknowledgedFixed
Critical000
High020
Medium000
Low600
LowInconsistent Solidity VersionsTHE9 · CertiK · 15 Sep 2023Open

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 report
LowToo Many DigitsTHE9 · CertiK · 15 Sep 2023Open

Literals with many digits are difficult to read and review. ```solidity=1262 _mint(_msgSender(), _calcDecimal(10000000000)); ```

Open the report
LowUnclear Contract LogicTHE9 · CertiK · 15 Sep 2023Open

In 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 report
LowUnlimited `lockCycleDays`THE9 · CertiK · 15 Sep 2023Open

The `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 report
LowUnnecessary Mapping RetrievalTHE9 · CertiK · 15 Sep 2023Open

The 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 report
LowUnnecessary Use of SafeMathTHE9 · CertiK · 15 Sep 2023Open

The `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 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="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