SHARBI security record

Ethereumsharbi.net

As of 3 Nov 2026, SHARBI has 1 audit report on Trustblock, by CertiK, dated 26 May 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, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
$SHARBISecurity firm: CertiKDate: Scope: 1 address on EthereumNo open critical findingsOpen · skynet.certik.com

Findings36

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

SeverityOpenAcknowledgedFixed
Critical000
High011
Medium020
Low3200
HighInitial Token Distribution$SHARBI · CertiK · 26 May 2023Acknowledged

All **SHARBI** tokens are sent to the contract deployer when deploying the contract. This is a potential centralization risk as the deployer can distribute **SHARBI** tokens without the consensus of the community. The detailed holder list can be found at Etherscan: https://etherscan.io/token/0xf3a3023e6dede84ad88a656a3269f2a36e83c9a9#balances

Open the report
MediumGenerated LP tokens are transferred to the `autoL$SHARBI · CertiK · 26 May 2023Acknowledged

The `addLiquidityETH` function calls the `swapBack` function with the `to` address specified as `autoLiquidityReceiver` for acquiring the generated LP tokens from the pool. As a result, over time the `autoLiquidityReceiver` address will accumulate a significant portion of LP tokens. If the `autoLiquidityReceiver` is an EOA (Externally Owned Account), the mishandling of its private key can have devastating consequences for the project. ```solidity router.addLiquidityETH{value: amountBNBLiquidity}( address(this), amountToLiquify, 0, 0, autoLiquidityReceiver, block.timestamp ); ```

Open the report
MediumPossible Denial of Service after `swapBack()` is$SHARBI · CertiK · 26 May 2023Acknowledged

When a transfer happens and the conditions in `shouldSwapBack()` are met, the function `swapBack()` is invoked. However, `swapBack()` uses `_liquidityFeeCount` and `_reflectionFeeCount`. Their initial value is zero by default and is set to zero again after `swapBack()` completes its execution. Their value is changed only in `setBuyAccFee()` and `setSellAccFee()` after transfers to/from the pair. ```solidity=791 uint256 amountToLiquify = swapThreshold .mul(_liquidityFeeCount) .div(totalFee) .div(2); ``` In a certain scenario, this logic will cause `swapBack()` to revert: 1. Suppose that `swapBack()` is invoked before any transfer occurs to/from the pair or that two `swapBack()` executions occur after some time, but in the meanwhile no transfer is happened to/from the pair 2. In both the scenarios described in the previous point, `_liquidityFeeCount` and `_reflectionFeeCount` are zero 3. The current execution of `swapBack()` will calculate a value for `totalFee` equal to zero at line 789 4. At line 793 when calculating `amountToLiquify` a division by zero occurs, and function revert Another situation that could occur would be small amounts being transferred and used in the `setBuyAccFee()` and `setSellAccFee()` functions. The amounts that might be truncated by division by the `feeDenominator` and would not update the `_liquidityFeeCount` and `_reflectionFeeCount` values. ```solidity=764 function setBuyAccFee(uint256 _amount) internal { _liquidityFeeCount += _amount.mul(_liquidityBuyFee).div(feeDenominator); _reflectionFeeCount += _amount.mul(_reflectionBuyFee).div( feeDenominator ); } function setSellAccFee(uint256 _amount) internal { _liquidityFeeCount += _amount.mul(_liquiditySellFee).div( feeDenominator ); _reflectionFeeCount += _amount.mul(_reflectionSellFee).div( feeDenominator ); } ```

Open the report

Contracts1

AddressChainSource code
0xf3a3023e6dede84ad88a656a3269f2a36e83c9a9Chain: EthereumSource 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="sharbi"
></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