AIDOGE security record

Arbitrum, BNB Chainarbdoge.ai

As of 3 Nov 2026, AIDOGE has 2 audit reports by 1 security firm on Trustblock; the latest is by CertiK, dated 10 Aug 2023. Those reports list no open critical findings.

Critical findings
No open critical findings
Across the 2 reports, 1 critical finding was reported. It is marked fixed by the firm that reported it. See the findings
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.

Audits2

Newest first

AuditSecurity firmDateScopeCritical findingsReport
ArbDoge AI Launchpad AuditSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
ArbDoge AISecurity firm: CertiKDate: Scope: Files named in the report1 critical finding, fixedOpen · skynet.certik.com

Findings43

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

SeverityOpenAcknowledgedFixed
Critical001
High225
Medium001
Low11615
HighCentralization Risks in AIERC20.solArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

### Original #### Owner In the contract `AIERC20` the role `_owner` has authority over the functions listed below. - `doSwapBack()`: trigger the swap manually. - `setFees()`: set the fee. - `setFeeReceivers()`: set the fee receivers. - `setIsFeeExempt()`: set the `isFeeExempt`. - `setSwapBackSettings()`: enable/disable swap. - `addPair()`: add pair address into `_pairs`. - `delPair()`: remove pair address from `_pairs`. - `renounceOwnership()`: renounce the ownership. - `transferOwnership()`: transfer the ownership to a specified address. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and change the configuration of the contract. #### Team wallet In the contract `AIERC20` the role `teamWallet` has authority over the functions listed below. - `setTeamWallet()`: change the team wallet. Any compromise to the `teamWallet` account may allow the hacker to take advantage of this authority and change the `teamWallet`. --- ### Update The following content is based on the version (07/12/2023). In the contract `AIERC20`, the role `_owner` has authority over the functions listed below. - `renounceOwnership()`: renounce the ownership. - `transferOwnership()`: transfer the ownership to a specified address. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and change the ownership of the contract. The role `teamWallet` and its privileged functions have been removed in this version. --- ### Update #### Owner The following content is based on the version (07/28/2023). In the contract `AIERC20` the role `_owner` has authority over the functions listed below. - `doSwapBack()`: trigger the swap manually. - `initializePair()`: initialize trade pair. - `setFees()`: set the fee. - `setFeeReceivers()`: set the fee receivers. - `setIsFeeExempt()`: set the `FeeExempt` related info. - `setIsFromFeeExempt()`: set the `isFromFeeExempt`. - `setIsToFeeExempt()`: set the `isToFeeExempt`. - `setIsSenderFeeExempt()`: set the `isSenderFeeExempt`. - `setSwapBackSettings()`: enable/disable swap. - `addPair()`: add pair address into `_pairs`. - `delPair()`: remove pair address from `_pairs`. - `renounceOwnership()`: renounce the ownership. - `transferOwnership()`: transfer the ownership to a specified address. Any compromise to the `_owner` account may allow the hacker to take advantage of this authority and change the configuration of the contract. #### Team wallet In the contract `AIERC20` the role `teamWallet` has authority over the functions listed below. - `setTeamWallet()`: change the team wallet. - `setIsFeeExempt()`: set the `isFeeExempt`. - `setIsFromFeeExempt()`: set the `isFromFeeExempt`. - `setIsToFeeExempt()`: set the `isToFeeExempt`. - `setIsSenderFeeExempt()`: set the `isSenderFeeExempt`. Any compromise to the `teamWallet` account may allow the hacker to take advantage of this authority to set fee exemptions. --- ### Update #### Owner The following content is based on the version (08/07/2023). In the contract `AIERC20` the privileged functions of the role `_owner` changed as below: #### Added - `setSysFeeExempt()`: set the `FeeExempt` related info. - `clearStuckEthBalance()`: clear stuck native tokens. #### Changed - `doSwapBack()`: removed the `onlyOwner` modifier. - `initializePair()`: removed the `onlyOwner` modifier.

Open the report
HighInitial Token DistributionArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

All of the `AIERC20` tokens are sent to the specified address `_mintTo`. This is a centralization risk because the the owner(s) of the EOA can distribute tokens without obtaining the consensus of the community. Any compromise to these addresses may allow a hacker to steal and sell tokens on the market, resulting in severe damage to the project.

Open the report
LowInaccurate Parameter in `AddLiquidity` EventArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

After adding liquidity to the pair, the contract emits an event `AddLiquidity` with a pre-calculated value. However, it should be noted that due to price changes caused by previous swaps, the pre-calculated amount of assets may not be added to the pair exactly as expected. Therefore, using these values to emit the `AddLiquidity` event will be inaccurate since they are not the actual values that are added to the pair. ```solidity=227 try swapRouter.addLiquidityETH{value: ethAmount}(address(this), half, 0, 0, address(0), block.timestamp) { emit AddLiquidity(half, ethAmount, block.timestamp); } catch {} ```

Open the report
LowInconsistency on `teamWallet` updateArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

The new `teamWallet` is intended to be updated with original `teamWallet`: ```solidity=276 function setTeamWallet(address _teamWallet) external { require(msg.sender == teamWallet, "Only team wallet can change team wallet"); teamWallet = _teamWallet; emit SetTeamWallet(msg.sender, _teamWallet); } ``` However, in the current logic, it can be updated by the owner via `setFeeReceivers`.

Open the report
LowMissing Zero Address ValidationArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

Addresses are not validated before assignment or external calls, potentially allowing the use of zero addresses and leading to unexpected behavior or vulnerabilities. For example, transferring tokens to a zero address can result in a permanent loss of those tokens. ```solidity=268 bounsWallet = _bounsWallet; ``` - `_bounsWallet` is not zero-checked before being used. --- ```solidity=270 teamWallet = _teamWallet; ``` - `_teamWallet` is not zero-checked before being used. --- ```solidity=275 teamWallet = _teamWallet; ``` - `_teamWallet` is not zero-checked before being used.

Open the report
LowPotential Sandwich AttacksArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

A sandwich attack may happen when an attacker observes a transaction swapping tokens or adding liquidity without setting restrictions on slippage or minimum output amount. The attacker can manipulate the exchange rate by frontrunning (executing before the target) a transaction to purchase one of the assets and make profits by backrunning (executing after the target) a transaction to sell the asset. The following functions are called without setting restrictions on slippage or minimum output amount, so transactions triggering these functions are vulnerable to sandwich attacks, especially when the input amount is large: - `_doAddLp()` ```solidity=200 ISwapRouter.ExactInputSingleParams memory params = ISwapRouter.ExactInputSingleParams({ tokenIn: address(this), tokenOut: address(WETH), fee: StandardPoolFee, recipient: address(this), deadline: block.timestamp, amountIn: half, amountOutMinimum: 0, // @audit sandwich sqrtPriceLimitX96: 0 }); uint256 outAmount = swapRouter.exactInputSingle(params); ``` --- ### Updates The following content is based on the version (07/28/2023). The contract used `UniswapV2` relevant contracts instead of `UniswapV3` to implement the business logic. This issue still exists in the below code: ```solidity=214 try swapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(half, 0, pathEth,address(this),block.timestamp){ uint256 ethAmount = WETH.balanceOf(address(this)) - ethAmountBefore; try swapRouter.addLiquidity(address(this), address(WETH), half, ethAmount, 0, 0, address(0), block.timestamp) { emit AddLiquidity(tokenAmount, ethAmount, block.timestamp); } catch {} } catch {} ```

Open the report
LowPotentially Incorrect `_fullFeeExempt` statusArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

The `_fullFeeExempt` is used to store the holders who are marked as `true` in the `isFromFeeExempt`, `isToFeeExempt` and `isSenderFeeExempt` mappings. However, the contract only sets `_fullFeeExempt` in the `setIsFeeExempt()` function. If the owner sets this information using other functions such as `setSysFeeExempt()`, `setIsFromFeeExempt()`, etc... the `_fullFeeExempt` variable will not be updated accordingly. As a result, a inconsistency issue will arise.

Open the report
LowThird-Party Dependency UsageArbDoge AI Launchpad Audit · CertiK · 10 Aug 2023Acknowledged

The contract is serving as the underlying entity to interact with one or more third party protocols. The scope of the audit treats third party entities as black boxes and assumes their functional correctness. However, in the real world, third parties can be compromised and this may lead to lost or stolen assets. In addition, upgrades of third parties can possibly create severe impacts, such as increasing fees of third parties, migrating to new LP pools, etc. ```solidity=62 address public bounsWallet; ``` - The contract `AIERC20` interacts with third party contract with `IAIERC20BounsPool` interface via `bounsWallet`. --- ```solidity=63 IAIERC20TradingPool public tradingPool; ``` - The contract `AIERC20` interacts with third party contract with `IAIERC20TradingPool` interface via `tradingPool`. --- ```solidity=68 ISwapRouter public immutable swapRouter; ``` - The contract `AIERC20` interacts with third party contract with `ISwapRouter` interface via `swapRouter`. --- ```solidity=69 INonfungiblePositionManager public immutable nonfungiblePositionManager; ``` - The contract `AIERC20` interacts with third party contract with `INonfungiblePositionManager` interface via `nonfungiblePositionManager`. --- ```solidity=70 IWETH public immutable WETH; ``` - The contract `AIERC20` interacts with third party contract with `IWETH` interface via `WETH`. --- ### Updates The following content is based on the version (07/28/2023). New third party dependencies are as listed below. ```solidity=63 IUniswapV2Router02 public immutable swapRouter; ``` - The contract `AIERC20` interacts with third party contract with `IUniswapV2Router02` interface via `swapRouter`. --- ```solidity=64 IUniswapV2Factory public immutable swapFactory; ``` - The contract `AIERC20` interacts with third party contract with `IUniswapV2Factory` interface via `swapFactory`. Note: The `ISwapRouter` and `INonfungiblePositionManager` are removed in current version.

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="arbdoge-ai"
></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