Timeless and Bunni
Program Overview
Timeless is a yield tokenization protocol where the yield tokens never expire and Bunni is a liquidity engine for incentivizing Uniswap v3 liquidity.
For more information about Timeless and Bunni, please visit https://linktr.ee/timelessfi.
Timeless and Bunni provide rewards in USDC. For more details about the payment process, please view the Rewards by Threat Level section further below.
Responsible Publication
Timeless and Bunni adheres to category 1. This Policy determines what information whitehats are allowed to make public from their submitted bug reports. For more information about the category selected, please refer to our Responsible Publication page.
Primacy of Impact vs Primacy of Rules
Timeless and Bunni adhere to the Primacy of Rules, which means that the whole bug bounty program is run strictly under the terms stated in this page.
Known Issue Assurance
Timeless and Bunni commit to providing Known Issue Assurance to bug submissions through their program. This means that Timeless and Bunni will either disclose known issues publicly or at the very least privately via a self-reported bug submission in order to allow for a more objective and streamlined mediation process to prove that an issue is known. Otherwise, assuming the bug report itself is valid, it would result in the bug report being considered in-scope and due 100% of the reward with respect to the bug bounty program terms.
Invoicing Information
If needed by the security researcher, Timeless and Bunni are able to provide the necessary information for the proper issuance of an invoice. This includes:
- Timeless’ legal entity name
- Timeless’ registered address
- Timeless’ email to send the invoice
Rewards by Threat Level
Reward Calculation for Critical Level Reports
For critical Smart Contract bugs, the reward amount is 10% of the funds directly affected up to a maximum of USD 250,000. The calculation of the amount of funds at risk is based on the time and date the bug report is submitted. However, a minimum reward of USD 69,420 is to be rewarded in order to incentivize security researchers against withholding a bug report.
Reward Calculation for High Level Reports
For high Smart Contract bugs, the reward amount is 100% of the funds directly affected up to a maximum of USD 25,000. The calculation of the amount of funds at risk is based on the time and date the bug report is submitted. However, a minimum reward of USD 10,000 is to be rewarded in order to incentivize security researchers against withholding a bug report.
Repeatable Attack Limitations
In cases of repeatable attacks for smart contract bugs, only the first attack is considered if the smart contracts where the vulnerability exists can be upgraded, paused, or killed. If the attack impacts a smart contract directly holding funds that cannot be upgraded or paused, the amount of funds at risk will be calculated with the first attack being at 100% of the funds that could be stolen and then a reduction of 25% from the amount of the first attack for every 5 blocks the attack needs for subsequent attacks from the first attack, rounded down. For avoidance of doubt, if a second attack would happen at 5 blocks and then a third at 10 blocks, the funds at risk would be counted at 75% and 50% of the reward from the first attack, respectively.
Reward Calculation for High Level Reports
High smart contract vulnerabilities will be capped at up to 100% of the funds affected. In the event of temporary freezing, the reward doubles for every additional 5 blocks that the funds or NFTs could be temporarily frozen, rounded down to the nearest multiple of 5, up to the hard cap of USD 25,000. However, a minimum reward of USD 10,000 is to be rewarded in order to incentivize security researchers against withholding a bug report.
Previous Audits
- https://reports.yaudit.dev/reports/08-2022-Bunni/
- https://reports.yaudit.dev/reports/03-2022-Bunni-Zap/
- https://reports.yaudit.dev/reports/08-2022-Timeless-Yield-Daddy/
- https://github.com/spearbit/portfolio/blob/master/pdfs/Timeless-Spearbit-Security-Review.pdf
Timeless and Bunni have provided these completed audit review reports for reference. Any unfixed vulnerability mentioned in these reports are not eligible for a reward.
- https://reports.yaudit.dev/reports/08-2022-Bunni/
- https://reports.yaudit.dev/reports/03-2022-Bunni-Zap/
- https://reports.yaudit.dev/reports/08-2022-Timeless-Yield-Daddy/
- https://github.com/spearbit/portfolio/blob/master/pdfs/Timeless-Spearbit-Security-Review.pdf
Proof of Concept (PoC) Requirements
A PoC is required for the following severity levels:
- Smart Contract, Critical Severity Level
- Smart Contract, High Severity Level
All PoCs submitted must comply with the Immunefi-wide PoC Guidelines and Rules. Bug report submissions without a PoC when a PoC is required will not be provided with a reward.
Reward Payment Terms
Payouts are handled by the Timeless and Bunni team directly and are denominated in USD. However, payments are done in USDC.
Smart Contract
- Critical
- Level
- USD $69,420 to USD $250,000
- Payout
- High
- Level
- USD $10,000 to USD $25,000
- Payout
Assets in scope
- Smart Contract - BunniHubType
- Smart Contract - BunniLensType
- Smart Contract - BunniMigratorType
- Smart Contract - TimelessLiquidityGaugeFactoryType
- Smart Contract - TimelessGaugeFoundryType
- Smart Contract - TokenAdminType
- Smart Contract - VotingEscrowType
- Smart Contract - GaugeControllerType
- Smart Contract - MinterType
- Smart Contract - SmartWalletCheckerType
- Smart Contract - OptionsTokenType
- Smart Contract - BalancerOracleType
- Smart Contract - xPYTFactoryType
- Smart Contract - UniswapV3xPYTFactoryType
- Smart Contract - UniswapV3SwapperType
- Smart Contract - UniswapV3JugglerType
- Smart Contract - FactoryType
- Smart Contract - BunniLpZapInType
- Smart Contract - TimelessTokenType
- Smart Contract - UniswapPoorOracleType
- Smart Contract - YearnGateType
- Smart Contract - ERC4626GateType
All code of Timeless and Bunni can be found at https://github.com/timeless-fi and https://github.com/ZeframLou/bunni . Documentation for the assets provided in the table can be found at https://docs.timelessfi.com/ and https://docs.bunni.pro/.
Impacts in scope
Only the following impacts are accepted within this bug bounty program. All other impacts are not considered as in-scope, even if they affect something in the assets in scope table.
Smart Contract
- Direct theft of any user funds, whether at-rest or in-motion, other than unclaimed yieldCriticalImpact
- Permanent freezing of fundsCriticalImpact
- Theft of unclaimed yieldHighImpact
- Permanent freezing of unclaimed yieldHighImpact
- Temporary freezing of fundsHighImpact
Out of Scope & Rules
These impacts are out of scope for this bug bounty program.
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 (governance, strategist) except in such cases where the contracts are intended to have no privileged access to functions that make the attack possible
- 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
- Known issues already listed in the readme file of the repository
Smart Contracts
- 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
- Best practice recommendations
The following activities are prohibited by this bug bounty program:
- 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