Bequest security record

Arbitrum, BNB Chain, Ethereumbequest.financeGitHub

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

Critical findings
No open critical findings
Across 2 reports.
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 Nov 2026. Trustblock does not review code.

Audits2

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Bequest FinanceSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
Bequest Finance (Audit #2)Security firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings10

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

SeverityOpenAcknowledgedFixed
Critical000
High000
Medium004
Low033
MediumBequester May Avoid Renewal Fee by Constantly RenBequest Finance · CertiK · 10 Mar 2023Fixed

A user may avoid the renewal fee by calling `renewBequest()` function at least once every year. In function `getRenewalFee()`, if the bequester has never paid the renewal fee before, the `timePassed` will be calculated from the `addressToBequest[_owner].timestamp`, and the `yearsPassed` would refer to the number of years between now and the last renewal time. In function `renewBequest()`, if the `yearsPassed` is 0, no yearly fee would be collected. Meanwhile, the `addressToBequest.timestamp` would still be updated to the current time. This would mean that, if the bequester keeps renewing bequest within a year, he won't be charged of any renewal fees.

Open the report
MediumLack of Upper Limit for Fee ExtractionBequest Finance · CertiK · 10 Mar 2023Fixed

The ETH balance in the contract consists of referral profit intended for the profit addresses, and fees that can be withdrawn by contract owner. While the profit for each referral is recorded, function `extractFees()` does not have an upper limit. If the contract owner extracts too much ETH from the contract, profit addresses won't be able to withdraw any profit.

Open the report
MediumPossibility to Bypass Distribution Fee after ReneBequest Finance · CertiK · 10 Mar 2023Fixed

When the `distribution()` function is called for a bequest for the first time, 1% of the wallet's balance is collected as fee, and the `paidDistributionFee[owner]` is set to *true*. If the bequest owner renews the bequest via function `renewBequest()` after that, the `paidDistributionFee` is not reset to *false*, so the distribution fee won't be collected for the renewed bequest. This makes it possible for a user to bypass the distribution fees.

Open the report
MediumThe user does not buy the will and the recipientBequest Finance (Audit #2) · CertiK · 8 Feb 2023Fixed

The function `claim()` is called to retrieve the assets in the contract for the recipient. The 94 lines of code stipulate that if the user doesn’t buy a will from the bequestWillContract `or` assets that can be claimed, the `require` function will pass. ```solidity=93 // Ensures assets cannot be claimed before a Bequest will is claimable, will never revert require(!bequestWillContract.isOwner(owner) || bequestWillContract.isClaimable(owner), "Not claimable"); ```

Open the report
LowMissing Emit EventsBequest Finance · CertiK · 10 Mar 2023Fixed

The function that affects the status of sensitive variables should be able to emit events as notifications to users. - `renewBequest()` - `createReferral()` - `setYearlyFee()`

Open the report
LowPossibility to Change Allowance after Wait PeriodBequest Finance · CertiK · 10 Mar 2023Fixed

When distributing the ERC20 token, the total amount of token to distribute is decided by the token balance of the bequest owner and the allowance for this contract, according to function `safeSendERC20s()`. Since function `distribute()` gives out the shares to one beneficiary at one call, it is possible for the bequest owner to change the allowance to this contract between recipient claims. The same applies for ERC721 and ERC1155. The ownership of the NFT or owned amount of ERC1155 may change outside of this contract after the bequest becomes claimable. The beneficiary is not guaranteed to receive the tokens intended for them initially.

Open the report
LowMissing Zero Address ValidationBequest Finance (Audit #2) · CertiK · 8 Feb 2023Fixed

Addresses should be checked before assignment or external call to make sure they are not zero addresses. ```solidity=54 owner = _owner; ``` - `_owner` is not zero-checked before being used. --- ```solidity=55 recipient = _recipient; ``` - `_recipient` is not zero-checked before being used. --- ```solidity=21 implContract = _impl; ``` ```solidity=22 (bool success, ) = _impl.delegatecall( abi.encodeWithSignature( "setup(address,address,uint256,uint256,uint256)", _owner, _recipient, _lockedUntil, _yearsToVest, _vestedUntil ) ); ``` - `_impl` is not zero-checked before being used.

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