Solv Protocol security record

As of 29 Oct 2026, Solv Protocol has 6 audit reports by 3 security firms on Trustblock; the latest is by Quantstamp, dated 15 Dec 2025. Those reports list no open critical findings. It also holds 2 deployed contracts on 1 chain.

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

Audits6

Newest first

AuditSecurity firmDateScopeCritical findingsReport
Solv Protocol - BTC RedemptionSecurity firm: QuantstampDate: Scope: Not recorded (see the report)No open critical findingsOpen · certificate.quantstamp.com
Audit Report (SolvBTC)Security firm: PaladinDate: Scope: 2 addresses on EthereumNo open critical findingsOpen · IPFS
Solv Protocol - SolvBTCSecurity firm: QuantstampDate: Scope: Repository at commit eafc741No open critical findingsOpen · certificate.quantstamp.com
Solv Yield - Bearing TokensSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com
Solv Protocol- Vault GuardianSecurity firm: QuantstampDate: Scope: Repository at commit 80300acNo open critical findingsOpen · certificate.quantstamp.com
Solv Protocol stUSD - AuditSecurity firm: CertiKDate: Scope: Files named in the reportNo open critical findingsOpen · skynet.certik.com

Findings55

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

SeverityOpenAcknowledgedFixed
Critical000
High214
Medium303
Low71025
HighCentralization Related RisksSolv Protocol stUSD - Audit · CertiK · 28 Dec 2023Open

In the contract `GovernorControl` the role `governor` has authority over the functions shown in the diagram below. Any compromise to the `governor` account may allow the hacker to take advantage of this authority and set the pending governor's address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-9aee-70b1ab90-b950-e79a2e4d9381/diagrams/centralization_GovernorControl-GovernorControl-_governor.svg) In the contract `GovernorControl` the role `pendinggovernor` has authority over the functions shown in the diagram below. Any compromise to the `pendinggovernor` account may allow the hacker to take advantage of this authority and set the governor's address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-9aee-70b1ab90-b950-e79a2e4d9381/diagrams/centralization_GovernorControl-GovernorControl-_pendinggovernor.svg) ----- In the contract `AdminControl` 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 and set the pending admin's address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-9aee-70b1ab90-b950-e79a2e4d9381/diagrams/centralization_AdminControl-AdminControl-admin.svg) In the contract `AdminControl` the role `pendingAdmin` has authority over the functions shown in the diagram below. Any compromise to the `pendingAdmin` account may allow the hacker to take advantage of this authority and set the admin's address. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-9aee-70b1ab90-b950-e79a2e4d9381/diagrams/centralization_AdminControl-AdminControl-pendingAdmin.svg) ----- In the contract `SftWrappedTokenFactory` 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 and - set the implementation address - deploy the Beacon proxy - upgrade the implementation of the Beacon proxy - transfer the ownership of the Beacon proxy to the new owner ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-9aee-70b1ab90-b950-e79a2e4d9381/diagrams/centralization_SftWrappedTokenFactory-SftWrappedTokenFactory-_admin.svg) In the contract `SftWrappedTokenFactory` the role `governor` has authority over the functions shown in the diagram below. Any compromise to the `governor` account may allow the hacker to take advantage of this authority and deploy/remove product proxy. ![](https://accelerator-tasks-prod.acc.corp.certik.com/11ee-9aee-70b1ab90-b950-e79a2e4d9381/diagrams/centralization_SftWrappedTokenFactory-SftWrappedTokenFactory-_governor.svg)

Open the report
HighCentralized Control of Contract UpgradeSolv Protocol stUSD - Audit · CertiK · 28 Dec 2023Open

In the contract `SftWrappedToken`, the role `admin` of the proxy has the authority to update the implementation contract behind the proxy contract. Any compromise to the `admin` account may allow a hacker to take advantage of this authority and change the implementation contract which is pointed by proxy and therefore execute potential malicious functionality in the implementation contract.

Open the report
MediumAttacker Can Drain Value From ContractSolv Protocol - SolvBTC · Quantstamp · 15 Aug 2024Open

The asset pools assume that different slots of a specific semi-fungible token contract maintain an exchange rate of 1:1. However, if any asset/slot depegs, an attacker can drain the respective asset pool of value. This effect is aggravated since there are only implicit delays between staking and unstaking. Particularly, wBTC is not a safe asset since it frequently depegs as it implements a delay for unwrapping.

Open the report
MediumBypass Solv Vault Guardian Checks Using Module ExecutionSolv Protocol- Vault Guardian · Quantstamp · 25 Mar 2024Open

Safe can add modules that introduce additional functionalities beyond the core Safe capabilities. While these modules enhance the utility of Safe by allowing custom features, they also carry the ability to execute arbitrary transactions once installed. Currently, transactions initiated by these modules do not undergo guardian checks, presenting a loophole if the `enableModule()` function is permitted by the guardian settings. This lack of guardian oversight for module-executed transactions can be used to bypass Solv vault guardian checks.

Open the report
MediumThird-Party Dependency UsageSolv Protocol stUSD - Audit · CertiK · 28 Dec 2023Open

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 assumes 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=43 address public wrappedSftAddress; ``` - The contract `SftWrappedToken` interacts with third party contract with `IERC3525` interface via `wrappedSftAddress`. --- ```solidity=45 address public navOracle; ``` - The contract `SftWrappedToken` interacts with third party contract with `INavOracle` interface via `navOracle`.

Open the report
LowFront-Runnable Admin Fee Update with No User Slippage ProtectionSolv Protocol - BTC Redemption · Quantstamp · 15 Dec 2025Open

The `withdrawFeeRate` is an admin-controlled parameter that can be updated at any time and is applied immediately when users call the `withdrawBTCPlus()` function. Since users typically estimate their expected net `solvBTC` output off-chain before submitting a transaction, a fee update occurring shortly before execution may result in users receiving less value than anticipated. This creates a front-running-style risk where a legitimate admin fee update, applied between a user’s transaction submission and execution, may lead to reduced `solvBTC` output. Although the admin is assumed to operate in good faith, users who are unaware of recent parameter changes or rely on stale off-chain data have no on-chain protection against this behavior due to the absence of a minimum output check.

Open the report
LowMaximum Single Withdraw Limits Can Be CircumventedSolv Protocol - BTC Redemption · Quantstamp · 15 Dec 2025Open

This contract acts as a rate limited redeem mechanism, imposing both total limits per time period and limits for single withdrawal actions. However, a single user could submit multiple calls to `withdrawBTCPlus()` within a single transaction to exhaust the entire total limit, which can be retrieved from `remainingWithdrawAmount()`.

Open the report
LowMissing Slippage Safeguard Against NAV DeviationSolv Protocol - BTC Redemption · Quantstamp · 15 Dec 2025Open

The `withdrawBTCPlus()` function relies on `getValueByShares()`, which depends on the external NAV of `BTC+`. Since the NAV can legitimately increase or decrease over time, a deviation between transaction submission and execution may result in users receiving less solvBTC than expected, even without any malicious behavior.

Open the report
LowTypographical issuesAudit Report (SolvBTC) · Paladin · 9 Dec 2024Open

The report gives no description here.

Open the report
LowOut-of-Scope DependenciesSolv Yield - Bearing Tokens · CertiK · 8 Apr 2024Open

The contract is serving as the underlying entity to interact with the out-of-scope contracts `IOpenFundMarket` and deposit tokens to the `IOpenFundMarket`. The scope of the audit treats these entities as black boxes and assumes their functional correctness. However, in the real world, external dependencies and out-of-scope contracts can be compromised and this may lead to lost or stolen assets.

Open the report
Show 2 more
LowUnused InheritancesSolv Yield - Bearing Tokens · CertiK · 8 Apr 2024Open

The `SftWrapRouter` inherits `AdminControlUpgradeable` and `GovernorControlUpgradeable`, which are initiated but never used. This could potentially lead to confusion and inefficiency in contract deployment and interaction.

Open the report
LowThe Design of the contract `SftWrappedToken`Solv Protocol stUSD - Audit · CertiK · 28 Dec 2023Open

When a user calls `mint()` and the passed amount equals the balance of `sftId_`, the ownership of `sftId_` transfers to the contract. The initial assignment is to `holdingValueSftId`, and the remainder is inserted into `_holdingEmptySftIds`. Subsequently, when a user calls `burn()`, and if `_holdingEmptySftIds` is empty, a new ID regenerates, and ownership remains with the current user. No ownership of `holdingValueSftId` is reclaimed. However, if `_holdingEmptySftIds` is not empty, the last ID is taken and removed. This results in the ownership of the contract transferring to the user. Nevertheless, the number of contracts may not match those initially transferred. Consequently, there will be a discrepancy in the token IDs between the `burn()` and `mint()` operations. Different ERC-3225 token IDs may exhibit varying value differences, potentially leading to losses.

Open the report

Contracts2

AddressChainSource code
0x2265a8e449ea5ff78ee4c115370e9b5957358a68Chain: EthereumSource code: Verified source
0xb12979ff302ac903849948037a51792cf7186e8eChain: EthereumSource code: Verified source

All 2 addresses and the 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="solv-protocol"
></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