Enzyme Onyx-logo

Enzyme Onyx

Onyx by Enzyme Finance is a tokenization protocol for asset management vehicles. It facilitates bespoke ERC20 shares issuance, including fees and tools for valuation accounting.

Before submitting a report, please review our Bug Bounty program guidelines carefully. Reports that only cover issues already listed in the program scope will be closed and marked as spam.

Smart contracts may have both a currently deployed version and the latest audited version that is scheduled for deployment. These are labeled as follows:

  • Live — the smart contract that is currently deployed and in use
  • Latest audited — the most recently audited smart contract, not yet deployed but planned for future release If no labels are present, it means the deployed (live) smart contract is already up to date with the latest audited version.
ETH
Defi
Asset Management
Solidity
Maximum Bounty
$200,000
Live Since
04 September 2025
Last Updated
18 May 2026
  • Triaged by Immunefi

  • PoC Required

Select the category you'd like to explore

Assets in Scope

Target
Name
LinearCreditDebtTracker
Added on
26 January 2026
Target
Name
LimitedAccessLimitedCallForwarder
Added on
3 September 2025
Target
Name
Shares
Added on
3 September 2025
Target
Name
StorageHelpersLib
Added on
3 September 2025
Target
Name
ValuationHandler
Added on
3 September 2025
Target
Name
ContinuousFlatRateManagementFeeTracker
Added on
3 September 2025
Target
Name
OneToOneAggregator
Added on
3 September 2025
Target
Name
AccountERC20Tracker
Added on
3 September 2025
Target
Name
OpenAccessLimitedCallForwarder
Added on
3 September 2025
Target
Name
FeeHandler
Added on
3 September 2025
Target
Name
Global
Added on
3 September 2025
Target
Name
ERC7540LikeRedeemQueue
Added on
3 September 2025

Impacts in Scope

Severity
Critical
Title

Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yield

Severity
Critical
Title

Permanent freezing of funds

Severity
Critical
Title

Protocol insolvency

Severity
High
Title

Theft of unclaimed yield

Severity
High
Title

Permanent freezing of unclaimed yield

Severity
High
Title

Temporary freezing of funds

Severity
Medium
Title

Smart contract unable to operate due to lack of token funds

Severity
Medium
Title

Griefing (e.g. no profit motive for an attacker, but damage to the users or the protocol)

Out of scope

Program's Out of Scope information

In addition to Immunefi scope rules, the following are considered out-of-scope:

  • everything noted in this document set (e.g., Risks and Limitations)
  • everything noted in audit reports
  • user error; i.e., inadequate inputs or config, lack of mechanism understanding, etc (see below)
  • unrealistic fund state (see below)

Examples of out-of-scope "user error"

Onyx is designed for flexibility of different setups and administrative needs. The admin role is often tasked with ensuring fairness, avoidance of denial-of-service (DoS) and similar ill effects, executing steps in order, and otherwise following manual processes to achieve desired results (e.g., Suggested Subscription Rounds).

Example: deposit and redeem handler DoS due to request cancelations

Some deposit and redeem handlers (e.g., ERC7540LikeDepositQueue and ERC7540LikeRedeemQueue) use a minRequestDuration, where a request is cancelable after minRequestDuration has elapsed.

As long as minRequestDuration is always set adequately (i.e., greater than the maximum time between batches), there will never be a cancelation DoS opportunity.

Example: deposit and redeem handler DoS due to small amounts that round to 0 shares

admin has full control to omit requests with amounts that are considered too small.

Example: share price staleness/fairness/etc during deposit or redemption

admin has full control over the price at which deposits and redemptions are executed, and it must be part of their process to validate that the currently-set share price is adequate for any action according to their needs.

Example: failure to initialize contract

Contracts are always expected to be properly-initialized, and all proxies are always deployed with their init data bundled into the same call.

Examples of "unrealistic fund state"

Onyx vaults are assumed to operate within common-sense constraints for how managed funds work.

Closely related to #examples-of-out-of-scope-user-error.

Example: more debt than assets

A reasonable managed fund cannot take on more debt than assets such that share value <= 0.

Example: shares totalSupply > 0 when share value == 0

At the point where a fund truly loses all assets (e.g., hack, violent value deprecation that rounds to 0) and shares have no value, a fund would shut down rather than, e.g., accept new depositors who immediately get diluted by the shares totalSupply.

Default Out of Scope and rules

Smart Contract specific

  • Incorrect data supplied by third party oracles
    • Not to exclude oracle manipulation/flash loan attacks
  • Impacts requiring basic economic and governance attacks (e.g. 51% attack)
  • Lack of liquidity impacts
  • Impacts from Sybil attacks
  • Impacts involving centralization risks

All categories

  • Impacts requiring attacks that the reporter has already exploited themselves, leading to damage
  • Impacts caused by attacks requiring access to leaked keys/credentials
  • Impacts caused by attacks requiring access to privileged addresses (including, but not limited to: governance and strategist contracts) without additional modifications to the privileges attributed
  • Impacts relying on attacks involving the depegging of an external stablecoin where the attacker does not directly cause the depegging due to a bug in code
  • Mentions of secrets, access tokens, API keys, private keys, etc. in Github will be considered out of scope without proof that they are in-use in production
  • Best practice recommendations
  • Feature requests
  • Impacts on test files and configuration files unless stated otherwise in the bug bounty program
  • Impacts requiring phishing or other social engineering attacks against project's employees and/or customers