Introducing veRev — a Yield Distribution Mechanism

Existing Mechanisms

  • Buyback and Burn (or Buyback and Reward to Stakers): The simplest issues with Buyback and Burn are that (i) you cannot control to whom the cashflow is going (it may go to any number of unaligned parties) (ii) burning reduces flexibility for future token issuance/rewards (iii) decreasing supply is not the same as increasing demand (it may affect price in a short-term manner similarly, but longer term consistent deflation may hurt gov token liquidity and counterintuitively actually decrease demand in tandem as less participants are in the system). For buyback and rewarding to stakers, the issues are primarily that (i) cashflow goes to non-stakers, instead of stakers (ii) stakers trade a scarce asset (cash) for a plentiful asset (token) in the short term, which may be suboptimal for many participants (iii) fees are paid out to stakers in the form of the native token, which may face substantial volatility compared to stablecoin cashflow.
  • veToken Yield Distribution: veToken models tend to work as follows: a user locks up some principal amount, say 100 Token. The user then receives some veToken depending on the length of time for which the user chooses to lock. For example, in Curve’s model 1 CRV locked for 1 year is 0.25 veCRV, for 2 years is 0.5 veCRV, …, for 4 years is 1.0 veCRV. Here are some issues: (i) the Fee Distribution is proportional to your veCRV balance (this makes locking extremely capital inefficient if it’s for less than the max period!) (ii) the ve numbers are usually entirely arbitrary (why should double the length of locking entitle you to double the fees relative to your 1 year locking peers? Why not some other proportion?) (iii) Tokens are usually fully illiquid until the end of the vote lock (users are less likely to lock if they are forced to take a multi-year approach to an industry as new as crypto, whose protocols and companies often have lifecycles measured in months, not years. Moreover, users can’t use the capital as collateral anywhere.) (iv) tax inefficient for many, since they are forced to receive 3CRV (which is recorded as ordinary income in most jurisdictions).
  • ve(3,3) Yield Distribution: Fee distribution per se in the ve(3,3) model is the same as most veToken models: ve(3,3) stakers receive rewards (in Solidly’s case, only for pools they voted on). It therefore inherits (i), (ii) and (iv) from veToken issues. Moreover, the introduction of the veNFTs, which make ve positions fully liquid is suboptimal, as it becomes unclear how to think about price dynamics of a set of liquid NFTs (which are semi-fungible) vs the underlying token. If all tokens are locked (which incentives suggest they should be), then the underlying token price is irrelevant, and the fragmented but liquid NFT market may step in to act as the token itself. Thinking about the dynamics of such a market is needlessly complicated.


  1. Locked tokens should neither be fully illiquid nor fully liquid, as the former is too punitive and the later introduces hairy “game-theoretic” dynamics that obfuscate the mechanics.
  2. Fee Distribution should primarily go to those most aligned with the protocol (stakers, not non-stakers).
  3. Protocols should retain some flexibility regarding future token issuance (don’t burn).
  4. Locked Tokens economics should be less arbitrarily tied to locking periods (again, why should 1 year lock be worth 1/2 as much as a 2 year lock?).
  5. Stakers should be able to choose between stablecoin distribution (cash income) or staking rewards (potentially more tax-efficient, as it has been speculated that, in the US, staking rewards may receive different tax treatment).

A Few Final Points/Design Variations

  • You may have noticed that the assumption that 1 veToken has the same value as 1 Token is different from the usual veToken model in which some multiplier is applied to the veToken balance, which decays over time. In the veRev model, we disaggregate economic value from voting power: 1 veToken = 1 Token in economic value regardless of locking length. What changes is a “governance power” multiplier, specific to each user that controls their governance weight. For example, a user may have 1 veToken with a 25% multiplier, which would entitle them to 0.25 votes. However, the economic value of their stake available to sell back through veRev is still 1 Token. Similar to other ve models, when the governance power decays to zero (linearly, or with some other function) remaining veToken are converted back into Token.
  • (Another option, depending on a protocol’s preference, is to allow users liquidity only on an amount of veToken equal to their veToken balance times their governance multiplier. For example, a user with 100 veToken and a 25% multiplier would only be able to sell back 25% of their veToken balance back to the protocol (with the rest being locked), whereas a user with a 100% multiplier would be able to sell back 100% of their veToken in the veRev auction.)
  • (A third option is to require veTokens to be locked indefinitely, which would give all users the same voting power, and offer 100% governance multiplier for all veTokens. Users would then be able to exit their positions only through protocol-generated revenue.)
  • In the case that ~100% of outstanding supply is staked (in which case there is no underlying market price to reference for veToken rewards), then the protocol can initiate an unbounded Reverse Dutch Auction, starting at a discount to the previous auction’s clearing price and moving upwards until the auction clears fully. This makes the Reverse Dutch Auction a tool for price discovery in this edge case.
  • Protocols that want to incorporate staking rewards (that is, net inflation) can do so quite easily using the veRev mechanism. Instead of having veToken rewards = yield, consider having veToken rewards = yield + target inflation (more veToken is rewarded than bought back). Similarly, protocols wanting net deflation can have veToken rewards = yield - target deflation (less veToken is rewarded than bought back). veRev thus acts as a lever for token monetary policy that can be tailored to each protocol’s needs.
  • If there is excess capacity in the Reverse Dutch Auction, then the protocol purchases from the open market. However, depending on the latency between end of auction and market execution, there may be some +/- price movement in the meantime. This would change the net zero accounting in the example above, and essentially create small inflation or small deflation. (If in practice, this discrepancy is too large then open market buys can be done away with, and a “chained” Reverse Dutch Auction can be implemented, where the Reverse Dutch Auction begins at a discount to the price at which the previous Reverse Dutch Auction cleared, and can increase to any price level, guaranteeing each auction will fill).
  • In order to prevent “perpetual cannibalization”, i.e. a scenario in which a single party with a low cost basis is willing to fill every auction fully at the maximum discount, the single Reverse Dutch Auction can be split into an “interest” and a “principal” auction on the back end: users submit the number of tokens they’d like to sell and at what price; the backend then conducts two “rounds”: in the first round, a user can sell at most their pro-rata profit distribution ($1 in the earlier example); then, if the auction does not fill fully (not all users want to sell their profit distribution), the excess will be used to fill “principal” sales, i.e. sales beyond the profit distribution (Alice’s extra $0.50 in the earlier example). This gives all users the ability to sell at least their pro-rata distribution of profits if they wish to do so.



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
UXD Protocol

UXD Protocol

Algorithmic stablecoin backed 100% by a delta neutral position using derivatives.