BaoBey security record

As of 3 Nov 2026, BaoBey has 1 audit report on Trustblock, by CertiK, dated 2 May 2023. That report lists no open critical findings.

Critical findings
No open critical findings
In 1 report.
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 Nov 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
BaoBeySecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOriginal removed

Findings11

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

SeverityOpenAcknowledgedFixed
Critical000
High101
Medium001
Low008
HighInitial Token DistributionBaoBey · CertiK · 2 May 2023Fixed

All `BeBe` tokens are sent to the `mint_wallet` address upon contract deployment. The `mint_wallet` address [`0x380F3734C32F0ef998955E5d57BA1E69f7a5DD4f`](https://bscscan.com/address/0x380f3734c32f0ef998955e5d57ba1e69f7a5dd4f) is an externally owned account, posing a potential centralization risk as the `mint_wallet` can distribute `BeBe` tokens without the consensus of the community.

Open the report
Medium`transfer_delay_enabled` Limits SwappingBaoBey · CertiK · 2 May 2023Fixed

Within the `_transfer()` function, the boolean variable `transfer_delay_enabled` being true can lead the function call to access a block of code that requires the user invoking the call to not have made a previous call within the same block. While the check does not apply if the `to` address is the `uniswapV2Router` or `uniswap_v2_pair`, there is no consideration of the `from` address being the `uniswapV2Router` or `uniswap_v2_pair` addresses, therefore potentially limiting swapping capabilities. There are instances in which the `from` address and the `_msgSender()` are either both `uniswapV2Router` or both `uniswap_v2_pair`; in those cases, the router or pair address will not be able to make such a call more than once in a block.

Open the report
LowDuplicate Require StatementsBaoBey · CertiK · 2 May 2023Fixed

The `_transfer()` function implementation within the contract `BaoBeyToken` uses **require statements** to ensure that the `from` and `to` addresses passed as parameters are not `address(0)`. While these are important checks to have, the checks already exist in the `ERC20.sol` contract implementation of `_transfer()`, which is eventually called and used to handle the actual transfers. Therefore, the linked **require statements** are redundant and can be removed.

Open the report
LowInaccurate CommentBaoBey · CertiK · 2 May 2023Fixed

The comment in Line 726 says "devOrOwner", but the modifier used is called "marketingOrOwner".

Open the report
LowLocked BNBBaoBey · CertiK · 2 May 2023Fixed

The constructor of the `BaoBeyToken` contract is `payable`. The contract also includes a `payable` `receive()` function; however, there are no functions that allow the BNB to be withdrawn. Therefore, BNB used to create the contract and any other BNB sent to the contract will be locked.

Open the report
LowMissing Emit EventsBaoBey · CertiK · 2 May 2023Fixed

There should always be events emitted in the sensitive functions that are controlled by centralization roles. The following functions are privileged functions controlled by the `owner` role and should emit events upon being called: - `init()` - `removeLimits()` - `disableTransferDelay()` - `setIsExcludedFromTax()` - `setAutomatedMarketMakerPair()` - `enableTrading()`

Open the report
LowRedundant Type CastingBaoBey · CertiK · 2 May 2023Fixed

The variables `uniswap_v2_pair` and `_dead_wallet` are already of type `address` and are redundantly casted to that type.

Open the report
LowState Variable Should Be Declared `constant`BaoBey · CertiK · 2 May 2023Fixed

State variables that never change should be declared as `constant` to save gas. ```solidity=616 uint256 private _gas_price_limit = 70 * 1 gwei; ``` - `_gas_price_limit` should be declared `constant`.

Open the report
LowTautologyBaoBey · CertiK · 2 May 2023Fixed

Upon contract deployment, the two boolean variables `limits_in_effect` and `_gas_limit_active` are initialized to `true`. The value of these variables can only be changed by calling the `removeLimits()` function, which changes both variables to `false` (at which point they can never be made `true` again). In the following lines of code from the `_transfer()` function, the checks can be optimized as they are redundant. ```solidity=658 if (limits_in_effect && trading_enabled) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ) { if (_gas_limit_active && automated_market_maker_pairs[from]) { require( tx.gasprice <= _gas_price_limit, "_transfer: Gas price exceeds limit" ); } ``` Since the first check in Line 658 is checking whether or not `limits_in_effect` is true, the second check in Line 665 regarding `_gas_limit_active` is unnecessary since these two variables will always be consistently set. ---- Additionally, the check in Line 662 is unnecessary due to the following **require statement**: ```solidity=654 require(to != address(0), "ERC20: transfer to the zero address"); ``` Since the function will revert if the `to` address is the 0 address, there is no need to check this again in Line 662.

Open the report
LowToo Many Cases Handled In One FunctionBaoBey · CertiK · 2 May 2023Fixed

The `_transfer()` function contains a series of checks that evaluate the value of certain variables before executing blocks of code. At least seven boolean variables are considered within the call; therefore there are at least 128 (i.e., 2^7) possible cases that can be passed through the function. As a result, it is likely that not all test cases have been considered and the function may behave unexpectedly in certain cases.

Open the report

Contracts

No deployed address is recorded for these audits.

The reports name a repository or files. Open a report to see its scope.

The repositories and 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="baobey"
></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