As of 29 Oct 2026, OnRe has 6 audit reports by 1 security firm on Trustblock; the latest is by Quantstamp, dated 22 Sep 2026. 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 |
|---|---|---|---|---|---|
| OnRe EVM | Security firm: Quantstamp | Date: | Scope: Not recorded (see the report) | No open critical findings | Open · certificate.quantstamp.com |
| OnRe - mmbot | Security firm: Quantstamp | Date: | Scope: Not recorded (see the report) | No open critical findings | Open · certificate.quantstamp.com |
| Onre - Re-Audit - 2 | Security firm: Quantstamp | Date: | Scope: Not recorded (see the report) | No open critical findings | Open · certificate.quantstamp.com |
| OnRe Solana Diff | Security firm: Quantstamp | Date: | Scope: Not recorded (see the report) | No open critical findings | Open · certificate.quantstamp.com |
| OnRe Solana | Security firm: Quantstamp | Date: | Scope: Files named in the report | No open critical findings | Open · certificate.quantstamp.com |
| Nayms - OnRe Offer/Redemption Program Spec | 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 | 2 |
| Medium | 1 | 2 | 4 |
| Low | 5 | 11 | 16 |
Several instructions in the program require mint authority to mint or burn tokens as part of their normal operation. This mint authority can be either a program-derived address or the `boss` account. However, since the program allows transferring ownership of the `boss` role, a boss transfer performed without properly updating the mint authorities of the relevant token mints can leave the program unable to mint or burn tokens. This would effectively result in a denial of service. Additionally, the `TransferMintAuthorityToProgram` instruction requires the current mint authority to be the active `boss` before allowing the authority to be transferred to a PDA. If the previous `boss` becomes inaccessible after boss transfer is performed, there is no mechanism to move the mint authority to the new `boss` or to the PDA, permanently blocking mint and burn operations.
Open the reportIn the current implementation of the deposit flow the redemption fee is calculated at the time the request is fulfilled. For larger redemption requests, which may be forced to wait before their request can be fulfilled, this may mean that the `fee_basis_points` taken out of their redemption has been changed by the admin between their initial request and its fulfillment, causing them to pay a larger amount in fees than they expected.
Open the reportThe `mint_to` instruction allows the boss to mint new ONyc tokens but does not check the `state.is_killed` flag intended to act as a global kill switch. As a result, token minting remains possible even when the protocol is placed into a killed or emergency paused state.
Open the reportThe `take_offer` instruction allows users to execute an offer by specifying only the amount of tokens in. This instruction does not accept or enforce any slippage bounds such as a minimum acceptable `token_out` amount or maximum execution price. Since the exchange rate is calculated at execution time using a chain state, users have no guarantee that the received amount of `token_out` matches their expectations at the time of transaction submission. This exposes users to adverse price movement without recourse.
Open the reportThe `initialize` instruction derives the program’s upgrade authority via `get_upgrade_authority()` and only enforces that `boss` matches this authority when the result is `Some(pubkey)`. If the program is immutable (upgrade authority is `None` under the upgradeable loader) or deployed under the `bpf_loader`, the function performs no alternative authorization check and proceeds to set the boss to the Signer. Since the `state` PDA is created deterministically with `init`, and if the `upgrade_authority` is `None`, then the first signer to call `initialize` will permanently set `state.boss` to themselves. Although an `ImmutableProgram` error exists, it is never used to prevent this path.
Open the reportThe `instructions::initialize::initialize()` function can be frontrunned after the program is deployed. An attacker might create a state and set themselves as a boss, preventing the real admin from controlling the program.
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="nayms"></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