CertiK reviewed Chickencoin on 20 Mar 2024: 4 findings, 0 critical; all acknowledged, none fixed.
Report hosted on skynet.certik.com.
Trustblock does not review code.
Statuses are the security firm’s own, from its report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 2 | 0 |
| Medium | 0 | 0 | 0 |
| Low | 0 | 2 | 0 |
In the contract `Chickencoin` the role `_owner` has authority over the functions shown in the diagram below.  - `blacklist(address _address, bool _isBlacklisting)`: Adds or removes an address from the blacklist, preventing or allowing it to participate in token transfers. This function can only be called by the contract owner. - `setRule(bool _limited, address _uniswapV2Pair, uint256 _maxHoldingAmount, uint256 _minHoldingAmount)`: Sets the trading rules for the contract, including whether trading is limited, the address of the Uniswap V2 pair, the maximum holding amount, and the minimum holding amount. This function can only be called by the contract owner. In the contract `Ownable` the role `_owner` has authority over the functions shown in the diagram below.  - `transferOwnership(address newOwner)`: Transfers ownership of the contract to a new account. This function can only be called by the contract owner. - `renounceOwnership()`: Leaves the contract without an owner, disabling all functions that are restricted to the owner. This function can only be called by the contract owner. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and update the sensitive settings and execute sensitive functionalities of the project
All of the `CHKN` tokens are sent to the contract deployer or one or several externally-owned account (EOA) addresses. This is a centralization risk because the deployer or the owner(s) of the EOAs can distribute tokens without obtaining the consensus of the community. Any compromise to these addresses may allow a hacker to steal and sell tokens on the market, resulting in severe damage to the project.
The `setRule()` function allows the contract owner to set the maximum and minimum holding amounts for trading. However, there is no check to ensure that `maxHoldingAmount` is greater than `minHoldingAmount`. This could lead to scenarios where the trading rules are logically inconsistent, potentially causing confusion or unintended behavior.
The contract enforces trading restrictions based on the `limited` flag and the `maxHoldingAmount` and `minHoldingAmount` parameters. The current implementation requires that after receiving tokens, a user's balance must be within the specified range. This could result in a situation where a user's tokens become effectively locked in the contract, as they cannot receive additional tokens that would put their balance over the `maxHoldingAmount` or under the `minHoldingAmount`.
The report names a repository or files. Open the report to see its scope.
Repository and files the report names (1)
1,044 projects reviewed · 1,375 reports · latest May 2025
See CertiK’s auditsSomething 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