Reserve-logo

Reserve

The Reserve Protocol is the first platform that allows for the permissionless creation of asset-backed, yield-bearing & overcollateralized stablecoins on Ethereum. The end goal of the Reserve Protocol is to provide highly scalable, decentralized, stable money in contrast to volatile cryptocurrencies such as Bitcoin and Ether.

ETH
Defi
Stablecoin
Synthetic Assets
Oracle
Asset Management
Bug bounty
Solidity
Maximum Bounty
$5,000,000
Live Since
27 April 2023
Last Updated
11 November 2024
  • PoC required

  • KYC required

Rewards

Reserve provides rewards in USDC, RSR on Ethereum, denominated in USD.

Rewards by Threat Level

Smart Contract
Critical
Max: $5,000,000Min: $100,000
Primacy of Rules
High
Max: $100,000Min: $10,000
Primacy of Rules
Medium
Flat: $5,000
Primacy of Rules
Low
Flat: $1,000
Primacy of Rules
Critical Reward Calculation

Mainnet assets:

Reward amount is 10% of the funds directly affected up to a maximum of:

$5,000,000

Minimum reward to discourage security researchers from withholding a bug report:

$100,000

Please review how rewards are distributed based on the Immunefi Vulnerability Severity Classification System V2.2. This is a simplified 5-level scale system with separate scales for Smart Contracts and Websites/Apps.

Rewards for critical smart contract bug reports will be further capped at 5% of direct funds at risk if the bug discovered is exploited. In cases of repeatable attacks, only the first attack is considered unless the smart contract cannot be upgraded or paused. However, there is a minimum reward of USD 100 000.

Rewards for high smart contract vulnerabilities are further capped at 5% of the funds at risk. In cases of repeatable attacks, only the first attack is considered unless the smart contract cannot be upgraded or paused. However, there is a minimum reward of USD 10 000 for High smart contract bug reports.

ImpactCriteria for assessing economic damage
Temporary freezing of RToken ERC20 functionality (% TVL frozen at time of submission)Temporary freezing time < 24hr: medium. 24hr < Temporary freezing time < *governance cycle + 1 day: high, 1%. *governance cycle + 1 day < Temporary freezing time: high
Temporary freezing of fundsTemporary freezing time < 24hr: medium 1%. 24hr < Temporary freezing time < *governance cycle + 1 day8 days: high, 12%. *governance cycle + 1 day8 days < Temporary freezing time: 5% high
  • governance cycle = the total time between when a proposal is made to when it can be executed. For eUSD, 1 governance cycle = 2 days (voting delay) + 3 days (voting period) + 3 days (execution delay) = 8 days

Payouts and Payout Requirements

Payouts are handled by the Reserve team directly and are denominated in USD. However, payouts are done in USDC and RSR. Reserve commits to honoring payouts according to the terms set out in this program at the time of report submission, and to treat this program as the agreement and source of truth concerning bug reports and responsible disclosures.

For the purposes of determining report validity, this is a Primacy of Rules program.

Learn more about report validity best practices here: Best Practice - Primacy of Impact vs Primacy of Rules.

KYC Requirements

Reserve does have a Know Your Customer (KYC) requirement for bug bounty payouts.

KYC Info Required

  • Anyone who receives $600 or more from our company will need to either provide their US taxpayer information via a form W-9, or a W-8BEN declaring that they are not a US taxpayer subject to withholding.

KYC information is only required on confirmation of the validity of a bug report.

Audit Discoveries and Known Issues

Bug reports covering previously-discovered bugs are not eligible for any reward through the bug bounty program. If a bug report covers a known issue, it may be rejected together with proof of the issue being known before escalation of the bug report via Immunefi.

Previous audits and known issues can be found at:

Description of known issueRelated Impact-in-Scope
Asset.lotPrice() doesn't use the most recent price in case of oracle timeout (https://github.com/code-423n4/2023-01-reserve-findings/issues/326)Smart-Contract
Unsafe cast of uint8 datatype to int8 (https://github.com/code-423n4/2023-01-reserve-findings/issues/265)Smart-Contract
refresh() will revert on Oracle deprecation, effectively disabling part of the protocol (https://github.com/code-423n4/2023-01-reserve-findings/issues/234)Smart-Contract
Shortfall might be calculated incorrectly if a price value for one collateral isn't fetched correctly (https://github.com/code-423n4/2023-01-reserve-findings/issues/200)Smart-Contract
BasketHandler: Users might not be able to redeem their rToken when protocol is paused due to refreshBasket function (https://github.com/code-423n4/2023-01-reserve-findings/issues/39)Smart-Contract
Attacker can cause loss to rToken holders and stakers by running BackingManager._manageTokens before rewards are claimed (https://github.com/code-423n4/2023-02-reserve-mitigation-contest-findings/issues/22)Smart-Contract
StRSR: attacker can steal excess rsr that is returned after seizure (https://github.com/code-423n4/2023-02-reserve-mitigation-contest-findings/issues/17)Smart-Contract
All audit reports (Ackee, Halborn, Solidified, Trail of Bits) Smart-Contract

Program Overview

The Reserve Protocol is the first platform that allows for the permissionless creation of asset-backed, yield-bearing & overcollateralized stablecoins on Ethereum. The end goal of the Reserve Protocol is to provide highly scalable, decentralized, stable money in contrast to volatile cryptocurrencies such as Bitcoin and Ether.

In our view, clear flaws can be demonstrated with many existing stablecoin designs. In the 2018 Reserve Protocol whitepaper, we present arguments for why a widely used stablecoin should implement an exchange rate peg to a fiat currency first and a basket of assets later, using off-chain foreign collateral that has been tokenized by a diversity of issuers.

Furthermore, we believe that open exploration and competition can lead to the discovery of the best type of basket and governance system for ideal on-chain money. There's a lot to explore, and it's better not to keep that under the control of the initial founding team. For this reason, the Reserve Protocol is entirely permissionless — allowing anyone to deploy a Reserve stablecoin (RToken) with their preferred collateral basket, governance system and revenue distribution.

For more information about Reserve, please visit https://reserve.org/

For Whitehats: It is highly recommended that you review the details of this program in full. Although many Bug Bounty programs have standard terms and conditions, each also has their own unique details that are critical to your success.

Prior to submitting a report please review the Immunefi Bug Report Template and Best Practices.

If the bug report has been closed, and 2 weeks has passed since final upgrade, and the security researcher does not want to publish but Reserve would like to publish, then Reserve will take over all intellectual property of the bug report and can publish at will in coordination with Immunefi.

KYC required

The submission of KYC information is a requirement for payout processing.

Proof of Concept

Proof of concept is always required for all severities.

Responsible Publication

Category 2: Notice Required

Prohibited Activities

Program's custom prohibited activities
  • The following activities are prohibited by this bug bounty program. Violation of these rules can result in a temporary suspension or permanent ban from the Immunefi platform at the sole discretion of the Immunefi team, which may also result in: 1) the forfeiture and loss of access to all bug submissions, and 2) zero payout.
  • Please note that Immunefi has no tolerance for spam/low-quality/incomplete bug reports, “beg bounty” behavior, and misrepresentation of assets and severity. Immunefi exists to protect the global crypto community, not facilitate grift.
Default prohibited activities
  • Any testing on mainnet or public testnet deployed code; all testing should be done on local-forks of either public testnet or mainnet
  • Any testing with pricing oracles or third-party smart contracts
  • Attempting phishing or other social engineering attacks against our employees and/or customers
  • Any testing with third-party systems and applications (e.g. browser extensions) as well as websites (e.g. SSO providers, advertising networks)
  • Any denial of service attacks that are executed against project assets
  • Automated testing of services that generates significant amounts of traffic
  • Public disclosure of an unpatched vulnerability in an embargoed bounty
  • Any other actions prohibited by the Immunefi Rules

Feasibility Limitations

The project may be receiving reports that are valid (the bug and attack vector are real) and cite assets and impacts that are in scope, but there may be obstacles or barriers to executing the attack in the real world. In other words, there is a question about how feasible the attack really is. Conversely, there may also be mitigation measures that projects can take to prevent the impact of the bug, which are not feasible or would require unconventional action and hence, should not be used as reasons for downgrading a bug's severity.

Therefore, Immunefi has developed a set of feasibility limitation standards which by default states what security researchers, as well as projects, can or cannot cite when reviewing a bug report.

Severity
Min. - Max.
Critical
$100k -$5M
High
$10k -$100k
Medium
$5k
Low
$1k
Total paid

5.5k

Med. Resolution Time
12 hours
Total Assets in Scope
47