Skip to content
This repository has been archived by the owner on Oct 25, 2023. It is now read-only.

Latest commit

 

History

History
138 lines (108 loc) · 8.76 KB

security.md

File metadata and controls

138 lines (108 loc) · 8.76 KB

import Bleed from 'nextra-theme-docs/bleed' import Callout from 'nextra-theme-docs/callout'

![Velodrome Finance Launch](/biker_hero.png)

 

Security

As a commitment towards the safety of our users and partners, we want to be transparent about the changes and the status of the security audits of our smart contracts.

Velodrome Finance was adapted from Solidly, which codebase was open sourced in full by Andre Cronje and his team in March 2022. Since its release in February on Fantom network, no security incidents related to Solidly smart contracts were reported.

Velodrome Finance smart contracts can be found on Optimistic Etherscan at the links below.

Before moving forward, we'd like to remind to our users that security audits do not eliminate risks completely and that every user should read and agree to our [legal disclaimer](/legal) before using Velodrome Finance!

For security reports, please reach out to us on Discord, or to the contacts provided on our Github page.

Audits

Solidly went through a partial (only the AMM part was sent for audit) security audit in January 30, 2022. The audit was done by PeckShield and did reveal 5 low-severity and 1 informal findings.

The full audit is available for download from Solidly git repository.

Velodrome Finance went through a security audit and a peer review as part of the Code4rena bug bouncy contest. Finally, a full MythX deep scan on Velodrome contracts found just a handful of false-positive, low-severity issues reported.

The Code4rena contest results were released on August 8, 2022 and are available here. All high- or medium-risk issues were either resolved pre-deploy, except for one known issue (users can claim eligible rewards from ExternalBribe contracts more than once) that's currently being addressed (via a wrapped contract solution). No user funds are at risk from this vulnerability, and protocols who wish to deposit external bribes should get in contact with the core team to discuss alternative solutions. More information about our C4 contest can be found here.

Lastly, we also engaged with Coelacanth (@ImpossibleNFT) for an informal full audit. Reports from that audit are available here.

Bug Bounty Programs

Velodrome Finance ran a bug bounty contest on 23rd to 30th of May 2022 with awards up to $75,000 on Code4rena. The main scope of the contest was to cover all the new changes to the new and the original contracts.

Solidly's bug bounty program was launched in February 2022 on Immunefi.com. There were no claims for any of the $200,000 rewards (on their Github).

Contract Addresses

Contract Name Contract Address Network
Velo 0x3c8B650257cFb5f272f799F5e2b4e65093a11a05 Optimism
GaugeFactory 0xC5be2c918EB04B091962fDF095A217A55CFA42C5 Optimism
BribeFactory 0xA84EA94Aa705F7d009CDDF2a60f65c0d446b748E Optimism
WrappedBribeFactory 0xFC1AA395EBd27664B11fC093C07E10FF00f0122C Optimism
PairFactory 0x25CbdDb98b35ab1FF77413456B31EC81A6B6B746 Optimism
Router 0x9c12939390052919aF3155f41Bf4160Fd3666A6f Optimism
VelodromeLibrary 0xfb1Fc21D2937bF5a49D480189e7FEd42bF8282aD Optimism
VeArtProxy 0x5F2f6721Ca0C5AC522BC875fA3F09bF693dcFa1D Optimism
VotingEscrow 0x9c7305eb78a432ced5C4D14Cac27E8Ed569A2e26 Optimism
RewardsDistributor 0x5d5Bea9f0Fc13d967511668a60a3369fD53F784F Optimism
Voter 0x09236cfF45047DBee6B921e00704bed6D6B8Cf7e Optimism
Minter 0x3460Dc71A8863710D1C907B8d9D5DBC053a4102d Optimism
RedemptionReceiver 0x846e822e9a00669dcC647079d7d625d2cd25A951 Optimism
VeloGovernor 0x64DD805aa894dc001f8505e000c7535179D96C9E Optimism
MerkleClaim 0x00D59BC35174C3b250Dd92a363495d38C8777a49 Optimism
RedemptionSender 0x9809fB94eED086F9529df00d6f125Bf25Ee84A93 Fantom

All contracts are immutable. The latest public testnet deployment can be found here.

Tokenlist

In addition to the official Optimism tokens list, we maintain one as well with our partner tokens: https://docs.velodrome.finance/tokenlist.json

Differences from Solidly

As of August 2022, we've compiled a list of key differences between Velodrome's contracts and Solidly's.

Major changes

  • Treat external bribes differently than internal bribes (i.e. fees). We split Bribe into two separate contracts, InternalBribe and ExternalBribe. InternalBribe functions essentially the same way as Bribe did, but ExternalBribe ensures that rewards are eliglble to be claimed by any voter who votes for the underlying gauge during the epoch, instead of only voters who vote after the rewards are sent. ExternalBribe also ensures that rewards can only be claimed after the epoch ends.ExternalBribe rewards must also be whitelisted via on-chain governance.
  • One vote per epoch. In Velodrome, voters are only allowed to make "active" voting decisions (i.e. vote and reset) once per epoch. Voters must wait until the next epoch to change their votes. Voters can, however, cast their votes throughout the epoch.
  • On-chain governance. To handle protocol-wide decisions (such as eligible tokens for external bribes), we introduce an on-chain Governor. This will likely be Tally's first on-chain governor on Optimism following their support for the network.
  • Killable gauges. To dissuade emissions exploitation via dummy gauges, we're allowing the Velodrome Commissaire (akin to Curve's Emergency DAO) to kill any "bad" gauges. The Commissaire is composed of individuals from varying parties meant to serve as a credibly neutral decision-maker for the broader ecosystem.

Minor changes

  • Removed the LP boost for voters. We removed the boost that voters receive when staking their LPs with gauges they voted for. This removes the need for a veNFT aggregator (more on this later...).
  • Removed negative voting. We found negative voting to be zero-sum for Solidly, so we decided to remove it.
  • Team emissions. 3% of new emissions will be sent to a team address, meant to cover on-going expenses and future development.

Small changes

  • Modifiable fees. Fees are now doubled to 0.02%, modifiable up to 0.05%, and tracked differently for volatile vs stable pairs.
  • Upgradeable veNFT art. Self-explanatory
  • Velodrome specific.
  • Initial distribution. Initial distribution will be handled in two ways: a redemption process that uses LayerZero to burn $WEVE for $USDC and $VELO on Optimism, and a Merkle airdrop contract. Unclaimed $VELO is never minted to ensure emissions aren't affected.