PAPA BEAR security record

BNB Chainpapabsc.xyz

As of 3 Nov 2026, PAPA BEAR has 1 audit report on Trustblock, by CertiK, dated 22 Nov 2023. That report lists no open critical findings. It also holds 1 deployed contract on 1 chain.

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
PAPA BEARSecurity firm: CertiKDate: Scope: 1 address on BNB ChainNo open critical findingsOriginal removed

Findings13

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

SeverityOpenAcknowledgedFixed
Critical000
High301
Medium200
Low700
HighCentralization Risks in PAPA.solPAPA BEAR · CertiK · 22 Nov 2023Open

In the contract `Ownable` the role `_owner` has authority over the functions shown in the diagram below. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-4e53-5f1f4140-92a8-2f616e563d8c/diagrams/centralization_PAPA-Ownable-_owner.svg) - `renounceOwnership()`: This function allows the current owner to renounce ownership of the contract. After calling this function, no one will have ownership privileges. Only the owner can call this function. - `transferOwnership(address newOwner)`: This function allows the current owner to transfer ownership of the contract to a new address. Only the owner can call this function. 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 --- In the contract `PAPA` the role `_owner` has authority over the functions shown in the diagram below. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-4e53-5f1f4140-92a8-2f616e563d8c/diagrams/centralization_PAPA-PAPA-_owner.svg) - `updateUniswapV2Pair(address newUniswapV2Pair)`: Allows the owner to update the Uniswap V2 Pair address. Only the owner can call this function. - `enableTrading()`: Enables trading for the token. Can only be called once and only by the owner. - `excludeFromFees(address account, bool excluded)`: This function allows the owner to exclude or include an address from fees. Only the owner can call this function. - `setMaxBuyAmount(uint256 newMaxBuyAmount)`: Allows the owner to set a maximum amount for buying tokens. Only the owner can call this function. - `setSwapTokensAtAmount(uint256 newAmount)`: Sets the token amount at which a swap to BNB should occur. Only the owner can call this function. - `setSwapWithLimit(bool _swapWithLimit)`: Sets if the contract should swap tokens with a limit or not. Only the owner can call this function. 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 --- In the contract `PAPA` the `marketingWalletAddress` account may be accumulating ETH as a result of the calls to the `swap` function. This mechanism represents a risk for the project as the compromise of such `marketingWalletAddress` account may leak a significant amount of ETH and cause harm to the project.

Open the report
HighInitial Token DistributionPAPA BEAR · CertiK · 22 Nov 2023Open

All of the `21000000` `PAPA` tokens are sent to the contract deployer when deploying the contract. This could be a centralization risk as the anonymous deployer can distribute tokens without obtaining the consensus of the community. Any compromise to the deployer account that holds undistributed tokens may allow the attacker to steal and sell tokens on the market, resulting in severe damage to the project.

Open the report
HighPotential Flashloan AttackPAPA BEAR · CertiK · 22 Nov 2023Open

An attacker can use a flashloan as the initial funds for an exploit to enlarge the profit or manipulate the token price in decentralized exchanges. If swapping/adding liquidity happens without price and slippage control and can be triggered on-chain by anyone, then an attacker can exploit the contract. ```solidity=550 uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp); ``` Function `PAPA.swap` invokes `IUniswapV2Router02.swapExactTokensForETHSupportingFeeOnTransferTokens` without setting restrictions on slippage or minimum output amount, which may be triggered by anyone.

Open the report
MediumFlawed Transfer Amount Calculation Can Cause TranPAPA BEAR · CertiK · 22 Nov 2023Open

The `_transfer` function, designed to override the default transfer behavior, contains an unintended logic flaw in the way it calculates the actual amount to be transferred. For certain specific scenarios, this logic can result in either failed transfers or successful transfers where the recipient receives zero tokens.

Open the report
MediumUnauthorized Withdrawal of Tokens via `errorTokenPAPA BEAR · CertiK · 22 Nov 2023Open

The `errorToken` functions allow any external actor to initiate a transfer of native coins or ERC20 tokens from the contract to the `marketingWalletAddress`. There is no access control mechanism in place, rendering all the assets in the contract susceptible to unauthorized withdrawals. While the logic would have a limited impact since the `marketingWalletAddress` address can not be chosen, an attacker may abuse the `errorToken` function by causing withdrawals when the contract is about to call the private `swap` function, so preventing such event to happen, which is in contrast with the contract logic.

Open the report
LowInconsistency on Minimum Swap ThresholdPAPA BEAR · CertiK · 22 Nov 2023Open

The `newAmount` at which swaps start to be possible is set by the contract owner in the `setSwapTokensAtAmount` method. The first line of such method specifies a check that declares, in its revert message, that `newAmount` must be greater than the 0.0001% of the total supply. However, the performed check verifies that `newAmount` is greater than the 0.000001% of the total supply, differently from what is written in the revert message (two zeros less).

Open the report
LowMissing Error MessagePAPA BEAR · CertiK · 22 Nov 2023Open

The validation at the pointed location checks that some conditions for a transfer to happen are met. However, if any of them is not, the `require` statement just fails and reverts without any error message. It is always convenient to provide the revert reason for a failed transaction for better transparency and integration with the calling software or user.

Open the report
LowMissing Events on Sensitive FunctionsPAPA BEAR · CertiK · 22 Nov 2023Open

The `setMaxBuyAmount`, `enableTrading`, and `updateUniswapV2Pair` functions set sensitive contract data and can be only called by the `_owner` account. Since the information set by such methods are paramount for the contract logic, they should emit events containing the changed data so that they can be easily indexed and fetched from the block logs.

Open the report
LowMissing Setter for `swapWithLimit` PropertyPAPA BEAR · CertiK · 22 Nov 2023Open

The `swapWithLimit` storage property is never set, nor has a setter function for it, resulting in a constantly `false` value.

Open the report
LowUnchecked ERC-20 `transfer()`/`transferFrom()` CaPAPA BEAR · CertiK · 22 Nov 2023Open

The return values of the `transfer()` and `transferFrom()` calls in the smart contract are not checked. Some ERC-20 tokens' transfer functions return no values, while others return a bool value, they should be handled with care. If a function returns `false` instead of reverting upon failure, an unchecked failed transfer could be mistakenly considered successful in the contract. ```solidity=448 ERC20(_token).transfer(marketingWalletAddress, IERC20(_token).balanceOf(address(this))); ```

Open the report
Show 2 more
LowUsage of `transfer`/`send` for Sending Native TokPAPA BEAR · CertiK · 22 Nov 2023Open

It is not recommended to use Solidity's `transfer()` and `send()` functions for transferring native tokens, since some contracts may not be able to receive the funds. Those functions forward only a fixed amount of gas (2300 specifically) and the receiving contracts may run out of gas before finishing the transfer. Also, EVM instructions' gas costs may increase in the future. Thus, some contracts that can receive now may stop working in the future due to the gas limitation. ```solidity=444 payable(marketingWalletAddress).transfer(address(this).balance); ``` - `PAPA.errorBalance` uses `transfer()`. ```solidity=559 bool success = payable(marketingWalletAddress).send(newBalance); ``` - `PAPA.swap` uses `send()`.

Open the report
LowVariables That Could Be Declared as ImmutablePAPA BEAR · CertiK · 22 Nov 2023Open

```solidity=382 uint256 public buyFee; uint256 public sellFee; uint256 public walletToWalletTransferFee; ``` 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

Contracts1

AddressChainSource code
0x4bd46424b82194a2887516ecfeb1599a9531da0dChain: BNB ChainSource code: Verified source

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="papa-bear"
></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