NineLivesBattalion

CertiKFiles named in the report

CertiK reviewed NineLivesBattalion on 28 Apr 2022: 6 findings, 0 critical; 5 marked fixed, 1 acknowledged.

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

Report hosted on skynet.certik.com.

Trustblock does not review code.

Findings6

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

SeverityOpenAcknowledgedFixed
Critical000
High010
Medium000
Low005
LowDifferent ERC721 ImplementationFixed

The contracts `ERC721` and `ERC721Enumerable` implement interfaces and libraries from OpenZeppelin but do not utilize the the OpenZeppelin `ERC721` and `ERC721Enumerable` libraries.

LowInefficient CalculationFixed

The function `balanceOf()` uses a costly for-loop over the entire `_owners` array to calculate the number of ERC721s owned by an account.

LowPlacement of `require()` StatementsFixed

The order of the following requirements places the most computationally expensive requirement first. ```solidity=132 require(_verify(_leaf(Strings.toString(allowance), payload), proof), "Invalid Merkle Tree proof supplied."); require(totalSupply + count < MAX_SUPPLY, "Exceeds max supply."); require(addressToMinted[_msgSender()] + count <= allowance, "Exceeds whitelist supply"); require(count * whitelistPrice == msg.value, "Invalid funds provided."); ``` should a later requirement revert, the high gas used to execute line 132 would be lost in the transaction.

LowRedundant Code ComponentsFixed

The linked statements do not affect the functionality of the codebase and appear to be either leftovers from test code or older functionality.

LowVariables That Could Be Declared as ImmutableFixed

The linked variables assigned in the constructor can be declared as `immutable`. Immutable state variables can be assigned during contract creation but will remain constant throughout the lifetime of a deployed contract. A big advantage of immutable variables is that reading them is significantly cheaper than reading from regular state variables since they will not be stored in storage.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (4)

  • Address.sol
  • NLBNFT.sol
  • ERC721.sol
  • ERC721Enumerable.sol

Part of NineLivesBattalion’s security record

NineLivesBattalion
Audits1 audit by 1 firmLast audit Apr 2022, by CertiK.
Critical findingsNo open critical findingsIn 1 report.
Open NineLivesBattalion’s security record

Security firm

CertiK

1,044 projects reviewed · 1,375 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