As of 3 Nov 2026, Ledger AI has 1 audit report on Trustblock, by CertiK, dated 26 Aug 2024. That report lists no open critical findings.
Record last updated . It holds audits, findings and contracts up to Nov 2026, and incidents up to Oct 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| LedgerAI - Audit | Security firm: CertiK | Date: | Scope: Files named in the report | No open critical findings | Open · skynet.certik.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 2 | 0 |
| Medium | 0 | 0 | 0 |
| Low | 0 | 3 | 5 |
The `Ledger` contract includes some hardcoded addresses ```solidity ... // initialize V2 router uniswapV2Router = IUniswapV2Router02( address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D) ); // initialize V3 router uniswapV3Router = IUniswapV3Router( address(0xE592427A0AEce92De3Edee1F18E0157C05861564) ); ... ```
Open the reportThe `transferForeignToken` function lacks validation for the `_to` parameter, which represents the recipient's address. Without proper checks, an incorrect `_to` address could lead to irreversible loss of assets if tokens are sent to an unintended or non-recoverable address.
Open the reportThe compiler for Solidity 0.8.20+ switches the default target EVM version to [Shanghai](https://blog.soliditylang.org/2023/05/10/solidity-0.8.20-release-announcement/#important-note), which includes the new `PUSH0` op code. This op code may not yet be implemented on all L2s, so deployment on these chains will fail. To work around this issue, use an earlier [EVM](https://docs.soliditylang.org/en/v0.8.20/using-the-compiler.html?ref=zaryabs.com#setting-the-evm-version-to-target) [version](https://book.getfoundry.sh/reference/config/solidity-compiler#evm_version).
Open the reportThe `transferForeignToken` function does not check the return values when transferring ERC20 tokens. This can result in silent failures where the transfer is unsuccessful but the contract does not revert the transaction, potentially leading to unexpected side effects to the project. ```solidity function transferForeignToken( address _token, address _to ) external onlyOwner returns (bool _sent) { // ... _sent = IERC20(_token).transfer(_to, _contractBalance); // No check on the return value of transfer // ... } ``` In the `swapBack` function, the contract does not check the success of ETH transfers to `operationsAddress`, which can lead to silent transfer failures. ```solidity bool success; (success, ) = address(operationsAddress).call{value: ethForOperations}( "" ); (success, ) = address(marketingAddress).call{ value: address(this).balance }(""); require(success, "Transfer to operations address failed"); ``` Additionally, the error message in the `require` statement is inconsistent with the previous transfer to `marketingAddress`.
Open the reportThe `prepareLaunch` function in the contract is intended to initialize trading by creating liquidity pairs on Uniswap V2 and V3. However, it lacks a critical validation to ensure that the pairs have not been created by an external entity before being called by the owner. This can lead to a situation where a malicious user preempts the pair creation, causing the `prepareLaunch` function to fail. ```solidity function prepareLaunch() external onlyOwner { require(!tradingActive, "Trading is already active, cannot relaunch."); // ... uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(...); uniswapV3Pair = IUniswapV3Factory(uniswapV3Router.factory()).createPool(...); // ... } ```
Open the reportThe reports name a repository or files. Open a report to see its scope.
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.
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.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-tb-project-slug="ledger-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