dKloud security record

Ethereumdkloud.io

As of 30 Oct 2026, dKloud has 1 audit report on Trustblock, by QuillAudits, dated 5 Mar 2025. 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
dKloudSecurity firm: QuillAuditsDate: Scope: Files named in the reportNo open critical findingsOpen · quillaudits.com

Findings9

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

SeverityOpenAcknowledgedFixed
Critical000
High002
Medium003
Low004
HighamountInFinalPeriod is ignored in the calculationdKloud · QuillAudits · 5 Mar 2025Fixed

The contract calculates a special amountInFinalPeriod value in createBeneficiarySchedule() to ac count for division remainders, but this value is never used when calculating claimable amounts. Instead, the function always uses amountPerPeriod even for the final period. This bug permanently locks remainder tokens in the contract: Any amounts not perfectly divisible by the period count will have remainders These remainder tokens become permanently inaccessible to beneficiaries Across all beneficiaries, this could represent a significant amount of locked tokens

Open the report
HighAnybody can claim for anyonedKloud · QuillAudits · 5 Mar 2025Fixed

The claim() function is publicly accessible and allows any caller to execute claims on behalf of any beneficiary. This represents a significant access control vulnerability since there is no validation that the caller is either the beneficiary or an authorized representative

Open the report
MediumdeactivatedSchedules is not initializeddKloud · QuillAudits · 5 Mar 2025Fixed

<code>deactivatedSchedules</code> mapping is used to track whether a vesting schedule is deactivated, but it is not initialized in the initialize function or anywhere else in the contract. This means that all schedules are considered active by default, as the default value for a bool in a mapping is false. This could lead to unintended behavior if the contract relies on this mapping to deactivate schedules

Open the report
MediumNo functionality to revoke the scheduledKloud · QuillAudits · 5 Mar 2025Fixed

The contract contains fields and validation for revoked schedules but lacks any function to actually revoke a beneficiary's schedule. This creates a critical functional gap in the vesting management system. The contract lacks a critical administrative function needed for proper management of vesting schedules: No ability to revoke schedules for non-compliant beneficiaries No way to handle exceptional circumstances requiring revocation

Open the report
MediumVesting can’t be marked as true due to rounding errorsdKloud · QuillAudits · 5 Mar 2025Fixed

The logic to mark a vesting schedule as completed uses a strict equality check that will fail due to rounding errors in the vesting calculations. Due to integer division in multiple places (TGE calculations, period calculations), claimedAmount will almost never be exactly equal to totalAmount, preventing schedules from being marked as completed

Open the report
LowCentralization assumptionsdKloud · QuillAudits · 5 Mar 2025Fixed

The contract implements a highly centralized administrative model where the contract owner has<br>unrestricted control over critical functions without any checks and balances.<br>The owner has unilateral power to pause the contract, preventing beneficiaries from claiming their tokens, and can upgrade the contract implementation.

Open the report
LowInitialize the deactivatedSchedules mappingdKloud · QuillAudits · 5 Mar 2025Fixed

The contract creates vesting schedules in such a way where a particular amount is exactly divisible among beneficiaries. However, real life scenarios will pose rounding errors over various places. This inherent assumption can be broken causing less amount to be available to beneficiaries.

Open the report
LownonReentrantPerCaller does not grant special functionalitydKloud · QuillAudits · 5 Mar 2025Fixed

The contract implements a custom nonReentrantPerCaller modifier instead of using OpenZeppelin's standard nonReentrant modifier. While the intention is to prevent multiple operations from the same beneficiary at the same time, the implementation doesn't provide any additional protection beyond what the standard modifier would offer

Open the report
LowwhenNotPaused is not used in several functionsdKloud · QuillAudits · 5 Mar 2025Fixed

whenNotPaused modifier is only implemented in the _beforeTokenTransfer function, but it's missing<br>from other critical functions that should be paused during emergency situations. The main functions<br>impacted include:<br>1. mint - Token minting continues even when the contract is paused<br>2. batchTransfer - Batch transfers can still be executed during pause state

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