As of 3 Nov 2026, HANeP has 1 audit report on Trustblock, by CertiK, dated 27 Jun 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
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| HanIdentity - Addendum | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 2 | 0 | 3 |
| Medium | 0 | 0 | 0 |
| Low | 1 | 0 | 7 |
Contract `HanGovernor` inherits from some `openzeppelin` contracts which are related to governance design. One important point is that if a time lock was set, then the time lock could play as a governance role and execute some privileged functions. However, if the time lock wasn't set correctly, centralization issues may occur. ```solidity constructor( IVotes _token, TimelockController _timelock ) Governor("HanGovernor") GovernorSettings(1 /* 1 block */, 50400 /* 1 week */, 0) GovernorVotes(_token) GovernorVotesQuorumFraction(4) GovernorTimelockControl(_timelock) {} ``` **Privileged functions:** - relay(): Relays a transaction or function call to an arbitrary target. - setVotingDelay(): Update the voting delay. - setVotingPeriod(): Update the voting period. - setProposalThreshold(): Update the proposal threshold. - updateQuorumNumerator(): Changes the quorum numerator. - updateTimelock(): Public endpoint to update the underlying timelock instance. Any compromise to the time lock address may allow the hacker to take advantage of this authority and gain benefits by influencing governance functions.
Open the reportAll of the **HANeP** tokens are sent to the contract deployer when deploying the contract. This could be a centralization risk as the anonymous deployer can distribute tokens without obtaining the consensus of the community. Any compromise to the deployer account that holds undistributed tokens may allow the attacker to steal and sell tokens on the market, resulting in severe damage to the project.
Open the reportThe function `release()` is used to releases tokens to payees based on the vesting schedule. According to the logic of the contract `TokenVestingLock.sol`, token distributors will send tokens to this contract directly, then anyone can execute the function `release()` to release tokens to payees. Since tokens are sent by distributors, it is best to determine if the current balance is sufficient, considering that the number of tokens sent to this contract may not be sufficient. ```solidity= token.transfer(payees[i].account, tokensToRelease); ```
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="haneplatform"></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