Velodrome V2

This is a technical introduction into the design of the Velodrome V1 and its token emissions, and the challenges we faced in rolling out the new V2 of the protocol with respect to it's initial design goals, end-users experience and long-term maintenance.

What is Velodrome?

Quick recap of how the protocol works. Let's start with a simplified visual representation.

Velodrome is a protocol designed to enable token swaps by attracting liquidity. The protocol rewards liquidity providers (LPs) with VELO token emissions (from the Minter), which are distributed to liquidity pools proportionally to the votes each pool receives (casted on a weekly basis by Voters). Liquidity providers must stake their deposited liquidity (in a Gauge) to receive VELO tokens. VELO holders can lock their tokens to vote on the distribution of emissions.

The protocol is 100% immutable, so changes to the protocol mechanics are not supported. As a result, the Minter will distribute tokens based on the same rules in perpetuity.

New version requirements

Velodrome V2 will enable major features such as the concentrated liquidity support, dynamic fees, dynamic emissions rate and Relay, that will enhance Velodrome's performance and user experience.

Developing the best possible version of these features, however, required redesigning the protocol from the ground up.

Since immutable code cannot be changed, Velodrome V2 contracts are designed to interact with V1 to introduce new functionality (e.g., concentrated liquidity) and enable periodic maintenance tasks.

Velodrome V2 will still be 100% immutable, but it will come with:

  • a liquidity pool factory registry, which allows us to add new liquidity pool types (eg. concentrated, multi-tokens, custom pools)

  • updatable gauges factory, to allow us support maintenance for these new pool type gauges and reward contracts

  • updatable rewards/bribes factory, to allows us in case of a security incident, to provide quick and long-term maintenance

The architecture of the V2 emissions

To help understand the V2 emissions design, here's a simplified visual representation of the V1 and V2 changes (dotted lines).

To allow the new functionality, Velodrome V2 will issue a new VELO token, convertible 1-to-1 with V1 token.

Both versions will operate in parallel to minimize disruptions and keep the emissions running according to the expected schedule.

With the old token captured and locked in perpetuity, the new token will take over naturally and follow the same emissions schedule and operational purpose.

As you can see in the diagram, once the voters switch to using the new V2 voter, the rest of the mechanics are identical to V1.

The process for migrating tokens from V1 to V2 will be as seamless as possible for end-users and partners. Their VELO tokens and locked positions (veNFTs) will be easily convertible to V2 versions.

V1 token convertor

To allow our users to redeem the V1 tokens for V2s, we designed a special liquidity pool, called $VELO V1-V2 Convertor Pool, that will accept V1 tokens for V2 tokens at a 1-to-1 rate.

The pool can be used as a regular pool by our routers or partner aggregators, thus facilitating a seamless conversion of new tokens. Similarly, holders of V1 locked positions will be able to convert their veNFTs to a V2 equivalent with the same vesting time and underlying locked token balance.

The V2 tokens will be provided directly by the new minter contract, via a management contract, called the SinkManager.

Capturing V1 tokens

Since V1 token will be emitted in perpetuity, the migration process will leverage Velodrome's existing mechanics to capture and lock all V1 tokens:

  1. The SinkManager contract will receive all V1 tokens and V1 veNFTs from the convertor.

  2. The SinkManager will lock the V1 tokens and merge the V1 veNFTs into a single veNFT.

  3. The SinkManager will use this veNFT to vote in perpetuity for a dummy pool created with tokens owned exclusively by the same contract.

  4. The SinkManager will capture 100% of the emissions directed at the dummy pool and continue locking them into its veNFT.

By locking converted tokens and capturing all emissions controlled by its veNFT, the SinkManager's share of voting power will trend towards 100%, ensuring that V1 token emissions remain contained within the contract.

Once live, protocols will direct voting rewards (bribes) to V2 gauges, which will incentivize V1 token and lock holders to migrate their positions to V2 as early as possible.

V2 emissions

The V2 minter contract will follow the same schedule as the V1 minter, with a theoretical start of 15M tokens in the first epoch and decaying at a rate of 1% per epoch. In other words, V2 tokens will be emitted at the same rate of V1 tokens.

However, the first week emissions for V2 will be slightly higher, since the lock rate will be close, but not identical to the one registered in V1.

This is an expected outcome, and was accepted by our audit partners. It will also serve as a minor incentive for users and partners migrating early to V2.

Next steps

This is probably the most technical part about the way Velodrome V2 works and the efforts the whole team took in order to make it still one of the most accessible DeFi protocols, despite the complexity.

If you're a partner, we will be reaching out to you to help with the development challenges or any support guidance.

If you're a user or a protocol, please keep an eye on the official migration announcements. The new app will provide a step-by-step walkthrough for migrating your tokens and liquidity positions.

For more questions, please reach out to our dev team on Discord, we'll be happy to answer any questions.

Velodrome Development Journal logo
Subscribe to Velodrome Development Journal and never miss a post.
  • Loading comments...