I introduce this proposal in order to initiate discussion around this concept and formally start a Request for Comment brainstorming session among the interested Frax community. This idea is very much still in its ideation phase and I would like the community’s support in gathering data and suggestions that would allow for a better understanding on how best to implement such a mechanism.
A veTokenomics Rage Quit mechanism refers to a dynamic in which the protocol allows the immediate premature unlocking of a given user’s veFXS position. If implemented in such a way that the user incurs a sizable enough penalty to discourage unlocking unless critically necessary, while still being reasonable enough that it remains a feasible option when the user encounters a personal liquidity crisis, this creates a mutually beneficial symbiotic relationship among all parties involved. The user gains access to liquidity from an illiquid asset, while the protocol accumulates veFXS at an increasingly appealing discount.
Thus we arrive at an interesting conundrum, what’s the optimal way of dynamically quantifying the market price of rage quitting? I presented the following idea on the telegram chat last weekend and received positive feedback, so I figured I would formally elaborate further in the governance forums. I believe the rage quit fee should be the product of two variables; the elapsed portion ratio of the time horizon given a position’s unlock date, and an elastic representation of the current demand for rage quitting.
rage_quit_fee = elapsed_time_ratio * elastic_demand
The first variable is much easier to understand so let’s get it out of the way. Elapsed Time Ratio refers to the percentage of time that has already elapsed along the total timeline of an individual position’s unlocking timestamp. Thus if the position currently finds itself halfway along a four year lock up period, this would become a 50% multiplier, while if it happened to be three years instead it would only be 25%, etc. It can therefore be represented as the following formula:
elapsed_time_ratio = unlock_timestamp - current_timestamp / unlock_timestamp - lock_timestamp
The elastic demand side of the formula is more subjective and could be quantified in countless different ways, but here I will present one such option and hopefully successfully communicate the reasoning and economic incentives that this version of such a parameter tries to uphold.
First of all, we need to determine a range along the existing supply where the protocol is willing to rehypothecate a given position at a specific discount. My recommendation would be to use the ratio of locked FXS divided by the FXS total supply and apply it as the boundaries of the rage quitting price curve for veFXS. This means that the larger the ratio of locked tokens is the more the curve smooths over, while the lower the ratio is the sharper the slope becomes, and thus allows the price curve to elastically track the ratio of FXS tokens currently locked at any given time.
It would therefore be increasingly more beneficial for veFXS holders to encourage a high ratio as it lowers the costs of rage quitting for all users if the individual necessity manifests itself. Coupled with a stronger use case such as being able to take FRAX loans against your position (a suggestion for another day), this could potentially create an environment in which the economic incentives of deciding to lock your FXS becomes a much more attractive proposition.
For example, with a total supply of 100M FRAX, of which 10M FRAX is currently locked into veFXS, the price curve would be distributed along the equivalent 10% of the veFXS to quantify the cost of the penalty. Meaning that if someone tried to unlock 10% of veFXS (the max amount) with the previous parameters, they would be subject to the maximum point along the price curve, before being multiplied by their elapsed time ratio.
So hypothetically speaking, if someone locked a position that would equate to 10% of the veFXS supply for the maximum time horizon of four years, and instantly regretted that decision, the corresponding penalty would equate to the full amount of their position. Obviously this specific scenario is probably not practicably feasible but is presented only to demonstrate the theoretical upper limit of the penalty, ie a 100% rage quit fee.
Let’s examine a less egregious example for comparison. In a scenario with only 5% FXS locked, in which someone tried to unlock a position equivalent to 2.5% of the veFXS supply, they would be penalized at the halfway point of the price curve, or 50%, before being multiplied by their individual elapsed time ratio. By design this would need to be a logarithmic growth curve (think constant product rotated ninety degrees clockwise) since realistically speaking most positions would be relatively small in comparison, so the penalty needs to rise exponentially.
It would also be wise to implement a lower boundary equivalent to the minimum discount accepted at the zero elapsed time frame in order to account for small positions at the lower end of the price curve. I would like this parameter to also be dynamic but have not personally come up with an interesting way to programmatically quantify that.
Just to reiterate, the supply impact of your position being unlocked determines the elastic demand along the price curve, which can be represented by the following formula:
elastic_demand = position_size / ( locked_FXS / total_FXS ) * ( total_veFXS - protocol_veFXS )
I would like to mention that I do not have a math background so there’s probably a significantly more elegant way to quantify the rage quit fee than the option presented here. This is just a minimum viable prototype being used to initiate the discussion for what I think to be a relatively simple problem with a comparatively simple solution.