Weeweepad security record

As of 24 Oct 2026, Weeweepad has 1 audit report on Trustblock, by QuillAudits, dated 3 Jun 2024. 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 and findings, contracts and incidents up to Oct 2026. Trustblock does not review code.

Audits1

Newest first

AuditSecurity firmDateScopeCritical findingsReport
WeeweepadSecurity firm: QuillAuditsDate: Scope: Files named in the reportNo open critical findingsOpen · quillaudits.com

Findings16

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

SeverityOpenAcknowledgedFixed
Critical000
High006
Medium003
Low106
HighEntire funds will be lost on the GamepadNFT contract to the null addressWeeweepad · QuillAudits · 3 Jun 2024Fixed

This is because when nfts are purchased, entire funds are immediately sent to the companyAddress.The issue here is that the companyAddress was mistakenly uninitialized in the constructor due to a coding error and therefore set to address(0). Which means all funds will be burnt or lost (sent to address(0)).

Open the report
HighMalicious users can extend the redeem period of stakers due to unguarded permission issueWeeweepad · QuillAudits · 3 Jun 2024Fixed

stake function is designed to take address and amount parameters. This implementation introduces the possibility of malicious users passing stakers address with 1 wei, and repeatedly calling this for the purpose of extending the redeem period of these stakers.

Open the report
HighRemoving an address will lead to unexpected behaviorWeeweepad · QuillAudits · 3 Jun 2024Fixed

Removing an address from the whitelisted addresses will set the mapping of whitelist to false, change the element in the whitelistItems[index[i]] to the last element and then delete from the whitelistIndex and whitelistItems mapping. Not updating the whitelistIndex mapping before deleting will introduce an unexpected behavior.

Open the report
HighRoyaToken holders are unable to reduce approval amount of approved spendersWeeweepad · QuillAudits · 3 Jun 2024Fixed

This is a custom token contract built without the integration of the standard ERC20 contract, like the Openzeppelin library. The approve function is designed to always increase the amount of tokens a spender can spend.This introduces an issue that makes it impossible to ever reduce the amount of a spender unless the spender has exhausted their approved amount.

Open the report
HighSignature replay attackWeeweepad · QuillAudits · 3 Jun 2024Fixed

The buy function requires a signature operation getting signed by the signingkey om the backend. However, it allows for signature replay attacks as users can use the same signature multiple times.

Open the report
HighSome addresses will be lost and not whitelisted when multiple addresses are to be addedWeeweepad · QuillAudits · 3 Jun 2024Fixed

In addPublicRandom, it updates _addressess[val] to _addresses[arrLength - 1]. However, _addresses[arrLength - 1] was already deleted before that line. Therefore, some addresses will be lost and not get whitelisted. This will also at some point add the null address as a whitelisted address with a tier. Some addresses will be lost in the process of adding and will sometimes run into an arithmetic error due to the second loop (in a situation when provided address parameters are lesser than 32).

Open the report
MediumCentralization Risks - It is possible for the pool creator to remove the entire sale token from the contractWeeweepad · QuillAudits · 3 Jun 2024Fixed

In the case where isNativeToken == false after people funds are already in the contract and sale has ended, even without minimum raise not check before removing sale token. This is possible due to removeOtherTokens() function preventing token from being fundToken but doesn't prevent token from being saleToken in the case where isNativeToken == false, making rugpull a possibility:

Open the report
MediumImpossible to invoke buy function due to logic error in _beforeTokenTransfer hook functionWeeweepad · QuillAudits · 3 Jun 2024Fixed

the buy function will revert anytime a user intends to get the StakingLot or NFTStakingLot token. There is a if-condition in the the _beforeTokenTransfer hook function that is ensuring that the sender lockup period has reached and that the lastBoughtTimestamp of the sender is greater than the receiver.When users invoke the buy function, it runs until it enters the _mint function and then reverts due to the extended logic implementation on the _beforeTokenTransfer since this is called within the _mint function.It is important to stress that the logic in the _beforeTokenTransfer is flawed. Since it expects that token transfer to be enabled after the lockup period is over, the if-condition is expected to be lastBoughtTimestamp[from].add(lockupPeriod) <= block.timestamp (check lockupFree modifier).

Open the report
MediumIt is possible for pool creator to prevent the protocol factory owner from setting fees on the poolWeeweepad · QuillAudits · 3 Jun 2024Fixed

The changeFeeInfoOnPool() call setFeeInfo() on the pool which requires pool not started yet, however their is not minimum cooldown time before pool starts meaning pool creator can set pool to start 2 seconds immediately pool gets created preventing protocol factory from setting fee.

Open the report
LowComparison to boolean constantWeeweepad · QuillAudits · 3 Jun 2024Fixed

To detect when addresses have been whitelisted, it is compared that whitelist[addresses[i]] is not equal to the true constant value.

Open the report
Show 5 more
LowDouble check will cause users to pay for extra gasWeeweepad · QuillAudits · 3 Jun 2024Fixed

These variables are only set at the constructor level within the contract. This will create a storage slot for each of the variables.

Open the report
LowMissing null address checkWeeweepad · QuillAudits · 3 Jun 2024Fixed

These functions receive an address parameter in order to either modify the pool creator or the fee addresses but both fail to check that these addresses are non-zero addresses.

Open the report
LowNo way to remove nativeTokens from the contract, if isNativeToken == falseWeeweepad · QuillAudits · 3 Jun 2024Fixed

removeOtherTokens() allows creator to remove other token from the contract but doesn't handle native token in the case where isNativeToken == false

Open the report
LowRemove unused state variables and modifierWeeweepad · QuillAudits · 3 Jun 2024Fixed

There are some variables and modifiers declared within the contracts but were never used.

Open the report
LowUnsafe ERC20 Operations should not be usedWeeweepad · QuillAudits · 3 Jun 2024Fixed

ERC20 functions may not behave as expected. For example: return values are not always meaningful. It is recommended to use OpenZeppelin's SafeERC20 library.

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="weeweepad"
></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