As of 1 Nov 2026, SSV Network has 2 audit reports by 2 security firms on Trustblock; the latest is by ChainSecurity, dated 20 Nov 2024. Those reports list no open critical findings.
Record last updated . It holds audits and findings, contracts and incidents up to Oct 2026. Trustblock does not review code.
Newest first
| Audit | Security firm | Date | Scope | Critical findings | Report |
|---|---|---|---|---|---|
| SSV-DKG Tool | Security firm: ChainSecurity | Date: | Scope: Not recorded (see the report) | No open critical findings | Open · chainsecurity.com |
| SSV.network | Security firm: Quantstamp | Date: | Scope: Files named in the report | No open critical findings | Open · certificate.quantstamp.com |
Statuses are the security firm’s own, from each report.
| Severity | Open | Acknowledged | Fixed |
|---|---|---|---|
| Critical | 0 | 0 | 0 |
| High | 0 | 0 | 3 |
| Medium | 0 | 3 | 5 |
| Low | 2 | 15 | 5 |
The report gives no description here.
Open the reportThe report gives no description here.
Open the reportThe report gives no description here.
Open the reportThe report gives no description here.
Open the reportThe report gives no description here.
Open the reportThe `withdraw()` function allows the cluster owner to withdraw funds from the cluster balance. The withdrawal is successful as long as there is sufficient balance and the cluster is not liquidatable. The `cluster.isLiquidatable()` function checks whether the cluster is eligible for liquidation based on operator fees, the current network fee, the minimum blocks before the liquidation, and the minimum liquidation collateral. The liquidation check is done before the `amount` is subtracted from the cluster `balance`. This means that it is possible for a cluster owner to withdraw funds that would cause the cluster to become liquidatable.
Open the reportThe `CoreLib.delegateCall()` function uses a low-level `delegatecall` to execute the logic of another contract. When the `delegatecall` is unsuccessful, the function checks for returned data, and if present, it reverts the transaction and returns this data as an error message. However, in scenarios where the `delegatecall` fails but does not provide any return data, the function does not revert and continues to execute. This could potentially lead to undesired outcomes and unexpected behaviors because the function does not stop despite the `delegatecall` failure.
Open the reportWhile the `registerValidator()` function validates the operator count using `_validateOperatorIds()`, it does not prevent the registration of identical operators for a validator. The function only checks that the operator IDs are sorted in ascending order but does not verify whether there are any duplicate operator IDs. If duplicate operator IDs are registered, it could lead to issues with consensus among the operators.
Open the reportThe report gives no description here.
Open the reportThe report gives no description here.
Open the report`Type256.shrink()` converts 256-bit values to 64-bit values by dividing a 256-bit value by `10,000,000` and typecasting it to a 64-bit value. Additionally, the 256-bit value must be divisible by `10,000,000` or else the function will revert. If the input 256-bit value is greater than `2^64 * 10,000,000`, the returned 64-bit value is incorrect.
Open the reportThe `getOperatorDeclaredFee()` function, which retrieves the details of an operator's fee change request, does not function correctly when the requested fee is zero. The function contains a check that reverts the transaction if the requested fee is zero, returning an error of `NoFeeDeclared()`. However, setting a fee request to zero is a valid operation that an operator might wish to perform. This means that a legitimate fee change request to zero is inaccessible via this viewer function.
Open the reportUsing `SSVNetwork.registerOperator()`, the same operator can register their public key multiple times where each registration generates a new operator ID. If an operator desires to exceed the `validatorsPerOperatorLimit`, the operator could register the same public key again and partner with more validators.
Open the reportThe reports name a repository or files. Open a report to see its scope.
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.
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.
<head><script src="https://widget.trustblock.run/project-widget.min.js" defer></script></head><body><divdata-tb-project-widgetdata-tb-project-slug="ssv-network"></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