Noah security record

BNB Chainnoahark.io

As of 14 Oct 2026, Noah has 2 audit reports by 1 security firm on Trustblock; the latest is by CertiK, dated 5 Jul 2023. Those reports list no open critical findings. It also holds 2 deployed contracts on 1 chain.

Critical findings
No open critical findings
Across 2 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. Statuses are the security firms’ own. Trustblock does not review code.

Audits2

Newest first

AuditSecurity firmDateScopeCritical findingsReport
NOAHSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
NOAH’ARKSecurity firm: CertiKDate: Scope: 2 addresses on BNB ChainNo open critical findingsOpen · skynet.certik.com

Findings17

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

SeverityOpenAcknowledgedFixed
Critical000
High110
Medium000
Low1401
HighInitial Token DistributionNOAH’ARK · CertiK · 24 Mar 2023Not fixed

All **Noah** tokens are sent to the deployer assigned address `addr` when deploying the contract. This is a potential centralization risk as the deployer can distribute **Noah** tokens without the consensus of the community.

Open the report
LowMissing Zero Address ValidationNOAH · CertiK · 5 Jul 2023Not fixed

Addresses should be checked before assignment or external call to make sure they are not zero addresses. ```solidity=18 admin = _admin; ``` - `_admin` is not zero-checked before being used. --- ```solidity=47 feeTo = _feeTo; ``` - `_feeTo` is not zero-checked before being used. --- ```solidity=52 admin = _admin; ``` - `_admin` is not zero-checked before being used. --- ```solidity=73 token0 = _token0; ``` - `_token0` is not zero-checked before being used. --- ```solidity=74 token1 = _token1; ``` - `_token1` is not zero-checked before being used. --- ```solidity=25 factory = _factory; ``` - `_factory` is not zero-checked before being used. --- ```solidity=26 WETH = _WETH; ``` - `_WETH` is not zero-checked before being used.

Open the report
LowUnchecked ERC-20 `transfer()`/`transferFrom()` CaNOAH · CertiK · 5 Jul 2023Not fixed

The return value of the transfer()/transferFrom() call is not checked. ```solidity=137 INoahPair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair ```

Open the report
LowUnused Return ValueNOAH · CertiK · 5 Jul 2023Not fixed

The return value of an external call is not stored in a local or state variable. ```solidity=44 INoahFactory(factory).createPair(tokenA, tokenB); ```

Open the report
LowVariable That Could Be Declared as ImmutableNOAH · CertiK · 5 Jul 2023Not fixed

```solidity=19 address public factory; ``` The above 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.

Open the report
LowFunction `transfer` of Contract `Token` Fails onNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that invocations of the form `transfer(recipient, amount)` succeed and return `true` if * The address in `recipient` is not the zero address, * `amount` does not exceed the balance of address `msg.sender`, * transferring `amount` to the address `recipient` does not lead to an overflow of the recipient's balance, and * the supplied gas suffices to complete the call. Nevertheless, the `transfer` function of `Token` fails in some of those admissible cases.

Open the report
LowFunction `transfer` of Contract `Token` Fails onNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that invocations of the form `transfer(recipient, amount)` where the address in `recipient` equals the address in `msg.sender` (i.e. self-transfers) succeed and return `true` if * The value in `amount` does not exceed the balance of `msg.sender` and * the supplied gas suffices to complete the call. Nevertheless, the `transfer` function of `Token` fails in some of those admissible cases.

Open the report
LowFunction `transfer` of Contract `Token` Handles SNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that non-reverting invocations of `transfer(recipient, amount)` that return `true` and where the address in `recipient` equals the address of `msg.sender` (i.e. self-transfers) do not change the balance of address `msg.sender`. However, in `Token.transfer` the balance of address `msg.sender` is changed by executing a self-transfer.

Open the report
LowFunction `transferFrom` of Contract `Token` FailsNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that invocations of `transferFrom(from, dest, amount)` succeed and return `true` if * the value of `amount` does not exceed the balance of address `from`, * the value of `amount` does not exceed the allowance of `msg.sender` for address `from`, * transferring a value of `amount` to the address in `dest` does not lead to an overflow of the recipient's balance, and * the supplied gas suffices to complete the call. Nevertheless, the `transferFrom` function of `Token` fails in some of those admissible cases.

Open the report
LowFunction `transferFrom` of Contract `Token` FailsNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that invocations of `transferFrom(from, dest, amount)` where the address in `dest` equals the address in `from` (i.e. self-transfers) succeed and return `true` if: * The value of `amount` does not exceed the balance of address `from`, * the value of `amount` does not exceed the allowance of `msg.sender` for address `from`, and * the supplied gas suffices to complete the call. Nevertheless, the `transferFrom` function of `Token` fails for some self-transfers in these admissible cases.

Open the report
Show 5 more
LowFunction `transferFrom` of Contract `Token` ModifNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that non-reverting invocations of `transferFrom(from, dest, amount)` that return `true` and where the address in `from` equals the address in `dest` (i.e. self-transfers) do not change the balance entry of the address in `from` (which equals `dest`). However, in `Token.transferFrom`, at least one balance entry of the addresses provided in the `from` or `dest` input parameters is changed when executing a self-transfer.

Open the report
LowFunction `transferFrom` of Contract `Token` TransNOAH’ARK · CertiK · 24 Mar 2023Not fixed

It is expected that all invocations of `transferFrom(from, dest, amount)` that succeed (i.e. that do not revert) and that return `true` subtract the value in `amount` from the balance entry for the address in `from` and add the same value to the balance entry for the address in `dest`. However, the amount that the `transferFrom` function in `Token` deducts from the balance of address `from` is not always equal to the amount that it credits to the balance of the recipient's address in `dest`.

Open the report
LowMissing Zero Address ValidationNOAH’ARK · CertiK · 24 Mar 2023Not fixed

Addresses should be checked before assignment or external call to make sure they are not zero addresses. ```solidity=599 _marketAddress = marketAddress_; ``` - `marketAddress_` is not zero-checked before being used. --- ```solidity=660 _marketAddress = marketAddress; ``` - `marketAddress` is not zero-checked before being used.

Open the report
LowState Variable Should Be Declared ConstantNOAH’ARK · CertiK · 24 Mar 2023Not fixed

State variables that never change should be declared as `constant` to save gas. ```solidity=584 uint16 public _marketRatio = 2; ``` - `_marketRatio` should be declared `constant`.

Open the report
LowUnnecessary Use of SafeMathNOAH’ARK · CertiK · 24 Mar 2023Not fixed

The `SafeMath` library is used unnecessarily. With Solidity compiler versions 0.8.0 or newer, arithmetic operations will automatically revert in case of integer overflow or underflow. ```solidity=126 library SafeMath { ``` - An implementation of `SafeMath` library is found. --- ```solidity=572 using SafeMath for uint256; ``` - `SafeMath` library is used for `uint256` type in `Token` contract.

Open the report

Contracts2

AddressChainSource code
0x494aed889b52baa32bec68460ab9786a3e41078fChain: BNB ChainSource code: Verified source
0xcf968cec61c8883c1b52f3bc8a87c3101734bba3Chain: BNB ChainSource code: Verified source

All 2 addresses 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="noah"
></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