Solidus Ai Tech security record

As of 30 Oct 2026, Solidus Ai Tech has 4 audit reports by 2 security firms on Trustblock; the latest is by CertiK, dated 12 Feb 2025. Those reports list no open critical findings. It also holds 1 deployed contract on 1 chain.

Critical findings
No open critical findings
Across 4 reports.
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.

Audits4

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Vision MakersSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
SOLIDUS AI TECH / Gpu-Blockchain-SmartcontraSecurity firm: HackenDate: Scope: 1 address on BNB ChainNo open critical findingsOpen · hacken.io
SOLIDUS AI TECH / ERC20Security firm: HackenDate: Scope: 1 address on BNB ChainNo open critical findingsOpen · hacken.io
Ai-Tech - RevisedSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings25

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

SeverityOpenAcknowledgedFixed
Critical000
High121
Medium005
Low2410
HighExcessive Owner PermissionsVision Makers · CertiK · 12 Feb 2025Fixed

The owner has privilege to withdraw any token in the `LinearVestingPool` contract and transfer it to any `recipient` address. If a malicious actor got control of an address with the MANAGER_ROLE, entire token balance from the `LinearVestingPool` contract can be drained and users would not be able to claim any vested tokens. The MANAGER_ROLE also has the authority to change `token` address via the `changeToken()` function of the `PoolManager` contract, which could potentially cause users unable to withdraw tokens from the `LinearVestingPool` contract. Additionally, all the fees can be up to the `PERCENTAGE_DENOMINATOR`. When the refund fee equals the `PERCENTAGE_DENOMINATOR`, users would receive 0 when they call the `refund()` function.

Open the report
MediumclaimFunds() Could Revert Due to Function ModifieVision Makers · CertiK · 12 Feb 2025Fixed

The `claimFunds()` function of the `InvestmentPool` contract contains a `vesting.rescueTokens(projectFounder, tokensToReturn)` call. In the `LinearVestingPool` contract, the `rescueTokens()` function has a `onlyPoolManager` modifier, which restricts the caller to the `PoolManager` contract. As such, when the `InvestmentPool` contract calls `rescueTokens()`, the transaction would revert, which could make the project founder unable to call the `claimFunds()` function.

Open the report
MediumIncorrect Amount of Payment Token ReleasedVision Makers · CertiK · 12 Feb 2025Fixed

When users invest `paymentToken` into the `InvestmentPool` contract, the amount of token to be sold/vested is calculated as `totalTokenAmount = (investedAmount * totalTokensOnSale) / totalAllocation`. However, when users withdraw the vested tokens from the `LinearVestingPool` contract, the same `withdrawableAmount` is used to transfer the token to the user and to release `paymentToken` to the `projectFounder`, and there's no ratio based on `totalTokensOnSale / totalAllocation` being utilized. Depending on the actual ratio of `totalTokensOnSale / totalAllocation`, this means that either too much or too little `paymentToken` is being released to the project founder when users withdraw vested tokens.

Open the report
MediumSome onlyOwner Functions Could Not be CalledVision Makers · CertiK · 12 Feb 2025Fixed

In the `initialize()` function of the `LinearVestingPool` contract, the `investmentPool` contract is set to be the `Owner` of the `LinearVestingPool` contract in line 149. The `revoke()`, `updateStreamStatus()`, and `updateStream()` functions all have the `onlyOwner` modifiers, which means only the `investmentPool` contract can call these functions. However, in the `investmentPool` contract, there's no mechanism to call these functions. Note that in the `LinearVestingPool.js` test file, line 34 sets the `deployer` to be the `Owner` instead of the `investmentPool` contract, which is inconsistent with the actual behavior of the `PoolManager` and the `LinearVestingPool` contracts.

Open the report
MediumupdatePool Function Cannot be CalledVision Makers · CertiK · 12 Feb 2025Fixed

The `updatePool()` function contains the `onlyPoolManager` modifier, but the `PoolManager` contract does not contain a method to call the `updatePool()` function of the `LinearVestingPool` contract, which means that this function cannot be called.

Open the report
MediumFees Change Can be FrontrunnedSOLIDUS AI TECH / Gpu-Blockchain-Smartcontra · Hacken · 26 Jul 2024Fixed

The report gives no description here.

Open the report
LowEvent Not IndexedVision Makers · CertiK · 12 Feb 2025Fixed

If an event is not indexed in a smart contract, it means that the event's parameters are not tagged with the `indexed` keyword. This has implications for how the event data can be searched and filtered when looking through blockchain logs. Without indexing, the event will still emit the data as part of the transaction log, but users won't be able to query for these events using the parameters. They'll have to retrieve the entire set of logs and manually sift through them to find events with the specific data. This can be less efficient and more time-consuming, especially on a blockchain with a high volume of transactions and events.

Open the report
LowMissing Parameter Validation Between Vesting andVision Makers · CertiK · 12 Feb 2025Fixed

In the `PoolManager` contract, when new `vestingPool` and `investmentPool` contracts are deployed and initialized, there is parameter validation within each contract individually. However, there's no parameter validation between the `investment` and `vesting` parameters, such as the start time of investment and vesting. Incorrectly configured parameters could potentially cause unintended consequences.

Open the report
LowPayment Tokens are Only Released when WithdrawnAmVision Makers · CertiK · 12 Feb 2025Fixed

When users call the `withdraw()` function, the `releaseFundsToProjectFounder()` function is only called when `stream.withdrawnAmount == 0`. If a user calls the `withdraw()` function when only a tiny fraction of token has vested, the function would only release a tiny amount of payment token to the project founder. When all the tokens are fully vested, no additional payment token would be released to project founder, as line 393 would not be `true` in subsequent calls to the `withdraw()` function. Furthermore, given that there's no check between the `msg.sender` and the provided `wallet` address, a malicious actor could use the trick above on all active streams even if they are not the corresponding `wallet` address.

Open the report
LowPossible Loss Of the Data Due to Indexed DynamicVision Makers · CertiK · 12 Feb 2025Fixed

When attempting to index dynamic data types like `string`, `bytes`, `array`, or `struct` in Solidity, they don't get stored in their original form. Instead, the Ethereum log system stores the `Keccak-256` hash of these data types. While this approach ensures efficiency and cost-effectiveness, developers must be aware of it to correctly use and interpret logs, and they cannot retrieve the original string from its hash alone.

Open the report
Show 6 more
LowTime Check in `claimFunds()` and `invest()` FunctVision Makers · CertiK · 12 Feb 2025Fixed

The `claimFunds()` and `invest()` functions in the `InvestmentPool` contract contain a time range check based on the `endDate` variable. When `block.timestamp == endDate`, it satisfies the conditions of both functions.

Open the report
LowMissing Checks for Zero AddressSOLIDUS AI TECH / Gpu-Blockchain-Smartcontra · Hacken · 26 Jul 2024Fixed

The report gives no description here.

Open the report
LowPublic Functions Should Be Declared as ExternalSOLIDUS AI TECH / Gpu-Blockchain-Smartcontra · Hacken · 26 Jul 2024Fixed

The report gives no description here.

Open the report
LowRedundant Assignment of _isPaused Variable Increases Gas ConsumptionSOLIDUS AI TECH / Gpu-Blockchain-Smartcontra · Hacken · 26 Jul 2024Fixed

The report gives no description here.

Open the report
LowRedundant ImportSOLIDUS AI TECH / Gpu-Blockchain-Smartcontra · Hacken · 26 Jul 2024Fixed

The report gives no description here.

Open the report
LowUse of transfer() to Send Native Assets may RevertSOLIDUS AI TECH / Gpu-Blockchain-Smartcontra · Hacken · 26 Jul 2024Fixed

The report gives no description here.

Open the report

Contracts1

AddressChainSource code
0x2d060ef4d6bf7f9e5edde373ab735513c0e4f944Chain: BNB ChainSource code: Verified source

All 1 address and the 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="solidus-ai-tech"
></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