Double security record

As of 21 Oct 2026, Double has 2 audit reports by 2 security firms on Trustblock; the latest is by CertiK, dated 20 Jan 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 and findings, contracts and incidents up to Oct 2026. Trustblock does not review code.

Audits2

Newest first

AuditSecurity firmDateScopeCritical findingsReport
DoubleSecurity firm: CertiKDate: Scope: Files named in the report1 critical finding, fixedOpen · skynet.certik.com
Double Protocol: Double auditSecurity firm: PeckShieldDate: Scope: Not recorded (see the report)No open critical findingsOpen · GitHub

Findings18

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

SeverityOpenAcknowledgedFixed
Critical001
High022
Medium102
Low019
HighCentralization Related RisksDouble · CertiK · 20 Jan 2023Acknowledged

In the contract `BaseBank721` the role `market` has authority over the functions shown in the diagram below. Any compromise to the `market` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_BaseBank721-BaseBank721-market.svg) In the contract `Bank721` the role `market` has authority over the functions shown in the diagram below. Any compromise to the `market` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_Bank721-Bank721-market.svg) In the contract `W4907Factory` the role `admin` has authority over the functions shown in the diagram below. Any compromise to the `admin` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_W4907Factory-W4907Factory-admin.svg) In the contract `W4907Factory` the role `owner` has authority over the functions shown in the diagram below. Any compromise to the `owner` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_W4907Factory-W4907Factory-owner.svg) In the contract `RentalMarket721` the role `admin` has authority over the functions shown in the diagram below. Any compromise to the `admin` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_RentalMarket721-RentalMarket721-admin.svg) In the contract `RentalMarket721` the role `owner` has authority over the functions shown in the diagram below. Any compromise to the `owner` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_RentalMarket721-RentalMarket721-owner.svg) In the contract `W5006Factory` the role `admin` has authority over the functions shown in the diagram below. Any compromise to the `admin` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_W5006Factory-W5006Factory-admin.svg) In the contract `W5006Factory` the role `owner` has authority over the functions shown in the diagram below. Any compromise to the `owner` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_W5006Factory-W5006Factory-owner.svg) In the contract `RentalMarket1155` the role `admin` has authority over the functions shown in the diagram below. Any compromise to the `admin` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_RentalMarket1155-RentalMarket1155-admin.svg) In the contract `RentalMarket1155` the role `owner` has authority over the functions shown in the diagram below. Any compromise to the `owner` account may allow the hacker to take advantage of this authority. ![](https://accelerator-tasks-prod.acc.corp.certik.com/5323648e511441dca1a0302722469200/diagrams/centralization_RentalMarket1155-RentalMarket1155-owner.svg)

Open the report
HighCentralized Control of Contract UpgradeDouble · CertiK · 20 Jan 2023Acknowledged

The cited contracts are upgradeable contracts, the owner can upgrade the contract without the community's commitment. If an attacker compromises the account, he/she can change the implementation of the contract and may damage the contracts.

Open the report
LowThird Party DependencyDouble · CertiK · 20 Jan 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 assume 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=64 function createUserRecord(RecordParam memory param) external { ``` - The function `Bank1155.createUserRecord` interacts with third party contract with `IERC1155` interface via `param`. --- ```solidity=105 function _deleteUserRecord(RentingRecord calldata param) internal { ``` - The function `Bank1155._deleteUserRecord` interacts with third party contract with `IERC1155` interface via `param`. --- ```solidity=21 address oNFT, ``` - The function `Bank721.tryStakeNFT721` interacts with third party contract with `IERC721` interface via `oNFT`. --- ```solidity=39 address oNFT, ``` - The function `Bank721.redeemNFT721` interacts with third party contract with `IERC721` interface via `oNFT`. --- ```solidity=20 mapping(address => address) public oNFT_w4907; ``` - The contract `W4907Factory` interacts with third party contract with `IWrapNFT` interface via `oNFT_w4907`. --- ```solidity=70 address w4907 ``` - The function `W4907Factory.registerW4907` interacts with third party contract with `IWrapNFT` interface via `w4907`. --- ```solidity=31 function deployW5006(address oNFT) public { ``` - The function `W5006Factory.deployW5006` interacts with third party contract with `IERC1155` interface via `oNFT`. --- ```solidity=38 function registerW5006(address oNFT, address w5006) public onlyAdmin { ``` - The function `W5006Factory.registerW5006` interacts with third party contract with `IWrappedInERC5006` interface via `w5006`.

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