0xLSD security record

Arbitrum, BNB Chain0xlsd.com

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

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
0xLSDSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings17

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

SeverityOpenAcknowledgedFixed
Critical000
High022
Medium000
Low1102
LowFunction `donateERC20()` can Transfer `0XLSD` tok0xLSD · CertiK · 16 Oct 2023Open

The `donateERC20()` function can be used to transfer any ERC20 tokens in the contract to external address `0xAa6CBca21980174Ac9f517a0A627156a551a2B6B`. However, it is noted that `donateERC20()` function does not check if the `tokenAddress` is current token contract. As a result, the `holder` role can transfer `0XLSD` to `0xAa6CBca21980174Ac9f517a0A627156a551a2B6B`, which may have a negative impact on the project.

Open the report
LowHardcoded Addresses0xLSD · CertiK · 16 Oct 2023Open

There are many hardcoded addresses in current contract. Please ensure these addresses are configured correctly when deploying.

Open the report
LowImproper setting of USDT Approval0xLSD · CertiK · 16 Oct 2023Open

It is noted that the contract creates an approval for USDT in the `constructor()`. ```solidity=1095 _approve(usdt, address(router), type(uint256).max); ``` This statement serves to create an approval to the `router` contract to transfer `0XLSD` tokens stored within the `usdt` contract. The audit team would like to understand the intent of this approval and confirm if this matches the intended design.

Open the report
LowPotential Replay Attack0xLSD · CertiK · 16 Oct 2023Open

Signed messages are not properly verified with the current chain ID, thus allowing attackers to perform replay attacks across chains. Hardcoded or cached chain ID values are also vulnerable since a hard fork may occur and change the chain ID in the future. ```solidity=1145 require(ECDSA.recover(message, signature) == key,"0XLSD: SIGN ERROR"); ``` - Calling `recover()`, which eventually calls `ecrecover()`. --- ```solidity=1192 require(ECDSA.recover(message, signature) == key,"0XLSD: SIGN ERROR"); ``` - Calling `recover()`, which eventually calls `ecrecover()`.

Open the report
LowPull-Over-Push Pattern In `transferOwnership()` F0xLSD · CertiK · 16 Oct 2023Open

The change of `_owner` by function `transferOwnership()` overrides the previously set `_owner` with the new one without guaranteeing the new `_owner` is able to execute transactions on-chain.

Open the report
LowSafeTransfer functions should be used in place of0xLSD · CertiK · 16 Oct 2023Open

SafeTransfer functions should be used in place of Transfer functions for Solidity contracts to ensure robust security and error handling. Unlike the basic Transfer functions, SafeTransfer functions incorporate safeguards against potential smart contract vulnerabilities, such as unexpected token loss. By automatically validating the recipient's ability to receive tokens and reverting transactions in case of failures.

Open the report
LowState Variables Should Be Declared Constant0xLSD · CertiK · 16 Oct 2023Open

State variables that never change should be declared as `constant` to save gas. ```solidity=1064 bool public canSet = true; ``` - `canSet` should be declared `constant`. --- ```solidity=1065 uint256 public _burnRate = 5; ``` - `_burnRate` should be declared `constant`. --- ```solidity=1066 uint256 public _baseFee = 100; ``` - `_baseFee` should be declared `constant`. --- ```solidity=1067 uint256 public _buy = 99; ``` - `_buy` should be declared `constant`. --- ```solidity=1068 uint256 public _sell = 5; ``` - `_sell` should be declared `constant`. --- ```solidity=1070 address public usdt = address(0x55d398326f99059fF775485246999027B3197955); ``` - `usdt` should be declared `constant`. --- ```solidity=1071 IPancakeRouter01 router = IPancakeRouter01(0x10ED43C718714eb63d5aA57B78B54704E256024E); ``` - `router` should be declared `constant`.

Open the report
LowThird-Party Dependency Usage0xLSD · CertiK · 16 Oct 2023Open

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=1071 IPancakeRouter01 router = IPancakeRouter01(0x10ED43C718714eb63d5aA57B78B54704E256024E); ``` - The contract `BEP20_0XLSD` interacts with third party contract with `IPancakeRouter01` interface via `router`. --- ```solidity=1073 IPancakeFactory factory = IPancakeFactory(router.factory()); ``` - The contract `BEP20_0XLSD` interacts with third party contract with `IPancakeFactory` interface via `factory`.

Open the report
LowUnreasonable Fees0xLSD · CertiK · 16 Oct 2023Open

It was noted that the buying fee `_buy` is set to an extremely high value of 99%. We would like to understand the intent of this high fee and confirm if this matches the intended design.

Open the report
LowUnused Return Value0xLSD · CertiK · 16 Oct 2023Open

The smart contract does not check or store the return value of an external call in a local or state variable, which may introduce vulnerabilities due to the unhandled outcome. ```solidity=1186 router.swapExactTokensForTokens(swapNum, minOut, path, msg.sender, block.timestamp); ```

Open the report
Show 1 more
LowVariables That Could Be Declared as Immutable0xLSD · CertiK · 16 Oct 2023Open

The linked 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

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="0xlsd"
></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