Velodrome | Optimizing the Liquidity Flywheel
A velodrome is an arena for track cycling. Modern velodromes feature 45-degree angled oval tracks, built to match the natural lean of the bicycle moving through the curve.
The curvature of the turns are based on easement curves, mathematically designed to prevent sudden changes in lateral acceleration. The turns and the vertically angled tracks are optimized to minimize resistance and maximize speed, allowing cyclists to reach speeds in excess of 50 mph. Due to a combination of centrifugal force and gravity, cyclists can theoretically ride for long periods of time after gaining initial momentum.
These tracks are feats of engineering — perfectly optimized designs that should make any protocol builder drool. They take a bit of momentum and generate the maximum possible output, allowing cyclists to ride (nearly) in perpetuity. Build it right, give it a little boost, and it runs itself. The holy grail of protocol design.
That’s the goal of the aptly named Velodrome Finance. The AMM-based decentralized exchange aims to be the liquidity base layer for the Optimism ecosystem… by creating the perfect incentive flywheel.
Launched this June, the protocol has quickly risen to the top of DEX rankings in the OP ecosystem. In the past 30 days, Velodrome accounted for the most swap volume on the L2, facilitating an average of ~25,100 swaps per day vs ~8,000 for Uniswap.
The early success of Velodrome can largely be attributed to its incentive flywheel that leverages the same ve(3,3) design as Solidly. Its predecessor, which combined some of the most effective mechanisms designs in DeFi, was — by all accounts — a major failure. 6 weeks after launch on Fantom, Solidly reached ATHs of $2.3B TVL before emissions dried up and liquidity fled the ecosystem.
So how can Velodrome, which is heavily inspired by Solidly, avoid a similar fate? The protocol has revamped some of the key parameters — token distribution, locking mechanics, and emission schedule — to achieve what Solidly could not: sustainability.
In this article, we will explore why Solidly failed, what makes Velodrome different, and how we can track the health of the protocol to understand if the flywheel is working. First though, we need a solid understanding of ve(3,3) mechanics. If you are familiar with the design, skip to Part 2 for the analysis.
Part 1: ve(3,3) Design
Velodrome’s design combines two core DeFi concepts:
- Vote-Escrow — utility tokens are locked for preset periods of time in exchange for vote-escrowed tokens, which grant voting rights (pioneered by Curve)
- (3,3) or Rebase — vote-escrowed tokens are rebased proportional to the amount of locked tokens relative to total tokens (locked and unlocked)
The vote-escrow model rewards long-term lockers by giving them more voting power. The (3,3) mechanics means that the more tokens that are locked, the higher the rebase and the less dilution lockers face.
Combined, the ve(3,3) mechanism rewards user behaviors correlated with Velodrome’s success, such as liquidity provision and long-term token locking.
Vote-Escrow
Velodrome uses a vote-escrowed model, pioneered by Curve Finance, to reward long-term holders (although our analysis shows that the model has mixed effectiveness). Two tokens manage utility and governance:
- VELO — ERC-20 native token of the Velodrome protocol
- veVELO — Vote-escrowed version of VELO, conforms to the ERC-721 standard (i.e., veNFT)
VELO is used for rewarding liquidity providers (LPs) through emissions. This VELO can be vote-escrowed (locked) for up to 4 years in exchange for veVELO, which follows the linear relationship below:
- 100 VELO locked for 4 years = 100 veVELO
- 100 VELO locked for 1 year = 25 veVELO
Similar to Curve, the longer the vesting time, the higher the voting power (voting weight) and rewards the veVELO holder receives.
(3,3) Game Theory
veVELO holders also receive a rebase proportional to epoch LP emissions and the ratio of veVELO to VELO supply. The rebase prevents vote power dilution and incentivizes VELO locking — if you hold VELO and do not lock it up, you will be diluted more by LP emissions.
The weekly rebase amount is calculated with the following formula:
(veVELO.totalSupply ÷ VELO.totalsupply)³ × 0.5 × Emissions
The more VELO that is locked, the higher the rebase and the lower the dilution. veVELO holders are still diluted by emissions, more in fact than typical rebase mechanisms — more on this later.
Gauge Voting
veVELO holders vote on their preferred liquidity pool gauges to determine which pools receive emissions. VELO emissions are distributed proportionally to the total votes a liquidity pool receives.
Unlike traditional AMMs, Velodrome distributes pool fees to veVELO voters instead of LPs. These fees are distributed to voters in pool tokens (e.g., if the pool is vAMM-VELO/USDC the distributed tokens are VELO and USDC). Voters receive fees only from the pools that they voted for.
This design incentivizes fee generation over liquidity, which results in stickier liquidity rather than mercenary capital.
Bribe System
Velodrome has a bribe system built into the protocol. Similar to Votium, anyone can deposit tokens to incentivize gauge votes for their preferred liquidity pools. These deposits are distributed only to voters of that pool, proportional to their share of pool votes. They are claimable 24–48 hours after the Snapshot vote.
Bribes allow outside capital to influence gauge votes, increasing rewards to voters and promoting capital efficiency.
The Flywheel
OK — that’s a lot to digest. Let’s summarize the process:
- VELO holders vote-escrow (lock) tokens to receive veVELO
- veVELO holders vote on liquidity pools + bribers incentivize pools
- VELO is distributed to pools based on votes
- veVELO holders receive fees + bribes from the pools they voted on
Why is this design effective? Game theory. veVELO holders will vote on the pools that they believe will generate the most fees and bribes. If other holders vote similarly, more VELO emissions will be distributed to these pools. Higher emissions attract more liquidity, which reduces slippage. Lower slippage attracts more trading volume, generating more fees for the pool.
Instead of directly incentivizing liquidity through emissions, Velodrome incentivizes VELO holders to lock, vote, and direct emissions in a profit-maximizing way. The result? The pools with the highest utilization — in terms of trades and fees — receive the most emissions and attract the most liquidity.
At least that’s how it’s supposed to work. Solidly, as we know, failed to achieve this flywheel effect. Let’s look at the reasons why.
Part 2: The Solidly Experiment
Most of the headlines attribute the protocol’s failure to Andre Conje’s abrupt departure from the project just one week after launch, which coincided with a downturn in the Fantom ecosystem. In reality, the protocol was intended to operate autonomously, but suffered from the following design issues that prevented it from achieving a sustainable flywheel.
Aggressive Emissions Schedule
The emissions schedule was far too aggressive. A significant portion of the protocol’s total supply was distributed in the first 8 weeks, leaving limited incentives to sustain liquidity for long-term ecosystem development.
SOLID emissions started at 20M per week and decayed by 2% per week. Based on this decay, emissions were expected to tail off after 167 weeks. However, according to the Solidly code, the constant 2% emission decay was not the only decay factor that impacted emissions — emissions decayed further by the percent of circulating supply relative to ve-locked SOLID.
Meaning, if 0% of the token is locked for ve, the weekly emission would be 20,000,000. If 50% of the token is locked for ve, the weekly emission would be 10,000,000. If 100% of the token is locked for ve, the weekly emission would be 0.
Combining both decay factors, weekly emissions were calculated by the following formula:
Emissions (next week) = emissions (prev week) x .98 (constant decay factor) x .5 (circulating supply decay factor)
If the previous week’s emissions were 20M and the circulating supply factor was .5, the next week’s emissions dropped to 9.8M. If 75% of circulating supply is locked, the decay factor is .25, decreasing emissions even further. The (grossly misunderstood) double exponential decay rate led to a much quicker convergence to the tail emissions value.
Fully Anti-Dilutive Rebase Mechanics
The rebase mechanics compounded the issue with the emissions schedule and created perverse incentives for ecosystem participants. Regardless of the amount of SOLID locked, ve lockers always increased their holdings proportional to the weekly emission.
With no dilution, veSOLID holders were heavily incentivized to keep their original tokens locked and to continue locking additional SOLID, which increased the circulating supply decay factor and resulted in emissions tailing off after only 6 weeks (a far cry from the projected 3 years).
These rapidly decreasing emissions disincentivized new participants from entering the ecosystem, while early lockers maintained ownership without adding value (in fact, extracting value due to the issues below).
Permissionless Token Whitelisting
Token whitelisting and pool creation was permissionless. Sounds good right (very Web3!)? Well, protocols ended up exploiting token whitelisting, creating entirely internally-owned pools and directing emissions towards those pools. The unchecked whitelist fiasco culminated in a user who created a BATMAN and ROBIN token, minted the entire supply, and created a pool to which they directed 5.76% of the week’s emissions.
These exploits prevented incentives from flowing towards pools that benefited the ecosystem.
Negligible Fee and Bribe Income
Finally, fees were just too damn low. Fees were set to 0.01% and total fees paid to voters were negligible relative to the value of emissions. In addition, the bribing mechanism was completely broken allowing voters to stream bribes during the week and then change their vote at the last minute to a different pool. This loophole rendered the bribe system completely ineffective and prevented protocols from using it.
As a result, voters voted for the pools that they owned (compounded by whitelisting exploits) to receive emissions, without regard for fee or bribe income. These sub-optimal parameters created perverse incentives that led to rent-seeking behavior. At the end of day, the incentives dried up, the momentum slowed, and the flywheel broke.
Let’s take a look at the changes that Velodrome has implemented before identifying the key metrics that we can use to evaluate if the flywheel is working correctly.
Part 3: Velodrome — Reinventing the Wheel
Velodrome was born out of veDAO, a community launched with the sole purpose of giving members an opportunity to own and control a portion of Solidly. Through their involvement in the early days of Solidly, the team is extremely familiar with the protocol’s design and shortcomings. With Velodrome, they have optimized the ve (3,3) design by adjusting key parameters to allow the flywheel to continue running in perpetuity.
The Velodrome team introduced a number of changes to the original Solidly design. Let’s look at the most important changes, paying particular attention to the underlying metrics that we can track to ensure the flywheel is operating correctly.
Emissions Schedule and Rebase
Velodrome has completely revamped the emissions schedule and decay factors. Gone is the circulating supply decay — Velodrome emissions started at 15M (3.75% of initial distribution) and decay at a constant factor of 1% weekly (vs 2% for Solidly).
LP emissions are no longer impacted by the lock rate and are completely predictable in perpetuity. For example, emissions will be:
- 15M in the 1st week (after launch)
- 8.9M in the 53rd week (1 year after launch)
- 5.3M in the 105th week (2 years after launch)
- 1.85M in the 209th week (4 years after launch)
The rebase amount now changes based on the lock rate. The weekly rebase amount is calculated with the following formula:
(veVELO.totalSupply ÷ VELO.totalsupply)³ × 0.5 × LP Emissions
Solidly lockers experienced no dilution. veVELO holders now experience… substantial dilution. If LP emissions in a given week are 15M and 50% of VELO is locked, veVELO holders receive a rebase of… 0.9375M (.5³ x .5 x 15M). VELO total supply inflates by ~15.93M and veVELO holders receive 5.9% of that inflation.
VELO total supply now inflates by two independent factors (which were previously related in Solidly): constant LP emissions + dynamic rebase.
We can track the lock rate to understand the amount of inflation (above and beyond the predictable LP emission schedule) entering the ecosystem. The higher the lock rate -> the higher the rebase -> the higher the total supply (i.e. more inflation over the long-run).
Compared to Solidly, Velodrome has traded superior anti-dilutive properties of veVELO for higher, more predictable LP emissions. The change reduces the value given to early lockers in order to better incentivize new participants to enter the ecosystem and provide liquidity.
Whitelisting
In Solidly, we saw that protocols abused the permissionless whitelisting system to direct emissions to self-owned pools that provided little benefit to the Fantom ecosystem.
Velodrome has implemented an on-chain governor to whitelist pairs used in gauges. Voters will need at least 0.02% to submit a proposal, and 4% to reach a quorum in order to add a gauge. The team has also added an Emergency Commissaire (multi-sig), which has the ability to kill any gauge it deems unproductive to the broader ecosystem. A simple fix.
Fee Increase and Bribe System Revamp
Velodrome has increased fees to 0.02% to better incentivize voters to vote on pools that ecosystem participants actually want to use. Voters can now only vote once per epoch and external bribes are claimable after the next epoch starts rather than streamed. These changes to the bribe system prevent voters from changing votes while still collecting bribes.
As a healthy bribe system emerges, we should see fee and bribe income incentivize veVELO holders to vote for the right pools (highest fee, most traded) rather than voting for their own pools and collecting emissions.
Part 4: Evaluating the Flywheel
The Velodrome team expects that these changes to key parameters and mechanics should result in a sustainable ecosystem.
To evaluate that claim, we need to track a few critical metrics that help us understand if the changes are working and the flywheel is spinning (in a sustainable fashion).
Remember, in a healthy system, votes should go towards the most “in demand” pools, which should attract the most liquidity and therefore generate the most fees. Bribes can cause temporary inefficiencies, but should ultimately be allocated in a capital efficient manner.
Voting Patterns — Are votes going to the right pools?
First, let’s get a sense of what should be the most liquid pools in the OP ecosystem (e.g. the liquidity that is most desired by users). Here, we can take a look at Uniswap on OP, which leverages a traditional AMM design and should provide a good proxy for demand.
On Uniswap, ETH/USDC, OP/USDC, and ETH/OP pools see the highest number of swaps. On Velodrome, OP/USDC, WETH/USDC, and VELO/USDC take the top 3.
As you would expect, similar story above. USDC, OP, WETH, and VELO are swapped the most on Velodrome. Users clearly demand liquidity for these assets, given the heavy volume across both exchanges.
Based on cross-referencing with Uniswap, we should expect USDC, OP, ETH, and VELO pools to attract votes (Velodrome directly incentivizes VELO to ensure sufficient native token liquidity).
Let’s take a look at where votes are going.
OP/USDC has received the most votes at 22.3%, followed by VELO/USDC at 20.5%, VELO/OP at 8.42%, WETH/USDC at 7.07%, and USDC/sUSD at 5.38%.
OP/USDC is the most used pool (swapped in and out of) and has received the most votes to date — a good sign that the system is working. We should expect WETH/USDC to attract the second most votes, but VELO/USDC and VELO/OP take the next two spots instead. The Velodrome team uses team veVELO to direct votes to VELO pairs, artificially increasing emissions to these pools to ensure liquidity.
Overall, voting patterns are roughly aligned with expected demand for liquidity — there’s no BATMAN/ROBIN pool attracting 5% of the votes. As time passes, we should pay close attention to the pools receiving the most votes — a healthy flywheel should have votes aligned closely with high demand pools.
Liquidity Flows — Are votes leading to liquidity?
Votes direct emissions, which boost APRs and attract liquidity. Let’s see if voting patterns are aligned with the pools attracting the most liquidity. First, let’s take a look at the ecosystem as a whole.
July saw heavy net inflows, with $102M of liquidity provided across pools, while August saw new outflows, with $61.4M of liquidity withdrawn across pools. The massive withdrawals on August 4th can be attributed to a compromised team wallet, which led to a loss of $350K of operational funds.
Flows have not yet recovered from the incident, with September seeing net outflows of $5.4M so far. Net liquidity is a critical metric for flywheel health — less liquidity leads to higher slippage, which makes the pools less attractive for swappers and reduces fees collected… a vicious cycle.
When we zoom in, we can see that stablecoin pairs attract the most liquidity. The USDC/sUSD pool has by far the deepest liquidity, followed by USDC/DAI and WETH/USDC. For reference, USDC/sUSDC and WETH/USDC have received the 3rd and 4th most votes to date. VELO/USDC has received 20.5% of the votes, but has only 2.7% of the total liquidity.
Stablecoin pairs are attracting more liquidity than volatile pairs that receive more votes, which isn’t particularly surprising. Liquidity providers may value impermanent loss protection over the higher emissions directed at more volatile pools.
Overall — liquidity is not perfectly aligned with votes, but we can identify logical reasons why. Over time, we want net LP flows to turn positive and that liquidity to go to pools that receive the most votes and emissions.
Fees — Are the most liquid pools generating the most fees?
Now, we need to see if more liquidity is leading to more fees.
The OP/USDC pool generates by far the most fees, accounting for 45.6% of fees since launch, followed by wETH/USDC at 19.3%. While these pools are only the 4th and 3rd most liquid, respectively, they are the most liquid volatile pools and volatile pools generate more fees than stablecoin pools.
Accounting for these differences, the fee breakdown by pool makes sense. Moving forward, we should expect the most liquid volatile pools to generate the most fees.
Closing the Loop
Now, we need to tie it all together. Are veVELO holders voting for the pools that generate the most fees? YES! OP/USDC has received the most votes (22.3%) and has generated the most fees (45.6%) since launch. However, VELO/USDC and VELO/OP, which received the 2nd and 3rd most votes, have not generated commensurate fees. When we look at bribe history, we see that these VELO pools have been bribed significantly, leading to more votes than expected based on fee generation.
Outside of a few discrepancies here and there, we can see that the flywheel is working so far — veVELO holders are voting for the most used pools, these pools are receiving the most emissions and attracting the most liquidity, and this liquidity is leading to more usage and fees.
P.S. — We’ve covered a lot of metrics in this piece — if you want to a shortcut, just look at which pools are being voted for. Do they make sense (are they popular stable pools (USDC) or critical (ETH, OP) volatile pools)? If not, is there a reason another pool is receiving votes (bribes)? There might be an issue if the answer to both of these questions is no.
Wrap-Up
Complex protocol designs can be difficult to execute perfectly the first time around. Certain parameters — like we saw in Solidly — can lead to unexpected behavior from users that fails to align with the long-term success of the protocol. (3,3) game theory designs can be notoriously reflexive in nature, as users stop acting rationally due to fear.
Direct intervention is often necessary to prevent downward spirals that can destroy an ecosystem. Andre’s dream — a set it and forget it design like the modern day velodrome — is pie in the sky.
Thankfully, the Velodrome team, unlike the Solidly founders, plan on having an active role in the protocol moving forward. After all, even the best engineered tracks need upkeep.
While the jury’s out on the long-term viability of Velodrome’s design, all signs point to the flywheel operating correctly. If something breaks, the Velodrome team will be able to step in and adjust the parameters to put the momentum back on track. For that reason alone, I am hopeful for the future of the protocol.
Appendix
The beautiful charts and metrics were created by a number of giga-brained Flipside analysts. Please check them out below (in order of appearance):
- banbannard: Optimism DEXs
- joker-WEpW0q__auto: Velodrome Health
Other dashboards referenced:
- hessaminanloo: Optimism DEXs
- sz_panjwani@yahoo.com: Velodrome Health
- darvinrio: Velodrome Locks
- alik110: Velodrome Locks
- jreinds: Velodrome Locks and Votes