Apple(AMB)-Binemon NFT

CertiK1 address on BNB Chain

CertiK reviewed Binemon (Apple(AMB)-Binemon NFT) on 11 Nov 2022: 19 findings, 0 critical; 4 acknowledged, 15 open.

No open critical findings
Open the reportOpen Binemon’s security record

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings19

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

SeverityOpenAcknowledgedFixed
Critical000
High040
Medium100
Low1400
HighCentralization Risks in Apple.solAcknowledged

In the contract `Apple` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and modify contract configurations. ![](https://accelerator-tasks-prod.acc.corp.certik.com/8484d5ffd3b845649b02fa8468a18d10/diagrams/centralization_Apple__owner.svg) In the contract `Ownable` the role `_owner` has authority over the functions shown in the diagram below. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and modify contract configurations. ![](https://accelerator-tasks-prod.acc.corp.certik.com/8484d5ffd3b845649b02fa8468a18d10/diagrams/centralization_Ownable__owner.svg)

HighInitial Token DistributionAcknowledged

All of the **AMB** tokens are sent to the contract deployer when deploying the contract. This could be a centralization risk as the deployer can distribute tokens without obtaining the consensus of the community.

HighPossible To Gain Ownership After Renouncing The CAcknowledged

An owner is possible to gain ownership of the contract even if he calls function `renounceOwnership()` to renounce the ownership. This can be achieved by performing the following operations: 1. Call `timelock()` to lock the contract. The variable `_previousOwner` is set to the current owner. 2. Call `untimelock()` to unlock the contract. 3. Call `renounceOwnership()` to leave the contract without an owner. 4. Call `untimelock()` to regain ownership.

HighVariable `_rOwned[account]` Not Updated in FunctiAcknowledged

The function below has a known bug. ```solidity function includeInReward(address account) external onlyOwner() { require(_isExcluded[account], "Account is already excluded"); for (uint256 i = 0; i < _excluded.length; i++) { if (_excluded[i] == account) { _excluded[i] = _excluded[_excluded.length - 1]; _tOwned[account] = 0; _isExcluded[account] = false; _excluded.pop(); break; } } } ``` Variable `_rOwned[account]` is not updated in the function `includeInReward()`, which will make the accounts included siphon off the tokens out of the balances of all token holders.

Contracts in scope1

AddressChainSource code
0x95977a9daa14a00258f89a14f75b6e35d5b730d4Chain: BNB ChainSource code: Verified source

Part of Binemon’s security record

Binemon
Audits2 audits by 2 firmsLast audit Nov 2022, by CertiK.
Critical findingsNo open critical findingsAcross 2 reports.
Open Binemon’s security record

Security firm

CertiK

1,044 projects reviewed · 1,393 reports · latest May 2025

See CertiK’s audits

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