OnRe Solana

QuantstampFiles named in the report

Quantstamp reviewed OnRe (OnRe Solana) on 19 May 2025: 5 findings, 0 critical; 3 marked fixed, 2 acknowledged.

No open critical findings
Open the reportOpen OnRe’s security record

Report hosted on certificate.quantstamp.com.

Trustblock does not review code.

Findings5

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

SeverityOpenAcknowledgedFixed
Critical000
High001
Medium001
Low021
HighImproper Price Calculation Leads to OverpaymentFixed

When an offer's total duration is not evenly divisible `price_fix_duration`, a partial interval will occur at the end of the offer period that is not accounted for in the protocol's pricing calculation. The price calculation logic fails to properly handle this edge case, causing users who transact during this period to pay one interval more than the intended maximum price (`sell_token_end_amount`). An additional note here is that in the current implementation this behaviour will also occur if a user calls one of the take offer functions in the final second of the offer, because of the inclusive upper bounds check on `offer.offer_end_time`. Consider this simplified example: 1. The team creates an offer where the duration from start to end is 2.5 days. 2. The `price_fix_duration` is set to one day. 3. Assuming the start price is 10e9 and the end price is 20e9. 3. The `number_of_intervals` used in `calculate_current_sell_amount()` will round down to two one day long intervals due to integer division (`216_000 // 86_400`). 4. Users transacting on day one will pay the start price plus one interval price (15e9). 5. Users transacting on day two will pay the start price plus two interval prices, this will be the intended `sell_token_end_amount` ratio (20e9). 6. However users transacting in the additional half day will be charged the start price plus 3 interval bumps, causing them to pay a greater amount (25e9) than the intended `sell_token_end_amount` ratio.

MediumMissing `mut` on `boss` Signer Account in `CloseOfferTwo`Fixed

The `pub boss: Signer<'info>` account in `CloseOfferTwo` is not marked as mutable. The boss account is intended to receive rent refunds from closing the offer account and associated token accounts, requiring it to be mutable (`#[account(mut)]`). This missing constraint may cause the `close_offer_two()` instruction to fail.

LowImproper Values in the `OfferTakenOne` and `OfferTakenTwo` Event EmissionFixed

The `OfferTakenOne` and `OfferTakenTwo` events include a `remaining_sell_token_amount` field. This is calculated (`sell_token_end_amount - offer_sell_token_account.amount`) instead of the remaining buy token amounts. This value may be incorrect as the am.

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Repository and files the report names (1)

  • programs/onreapp/src/*

Part of OnRe’s security record

OnRe
Audits6 audits by 1 firmLast audit Sep 2026, by Quantstamp.
Critical findingsNo open critical findingsAcross 6 reports.
Open OnRe’s security record

Security firm

Quantstamp

236 projects reviewed · 332 reports · latest Oct 2026

See Quantstamp’s audits

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