Objective of UGV Mechanism
The foundational aim of UGV (User Growth Vesting) is to harmonize discrepancies between demand and supply and protect the project from sudden price dilutions and supply shocks induced by substantial unlocks.
This mechanism is deeply intertwined with ecosystem KPIs, adjusting the supply concordantly with the evolving needs of the project and placing emphasis on pertinent aspects for each stakeholder group at the right time.
Why we designed this model?
Traditional linear vesting mechanisms are predominantly rigid, unable to adapt to the dynamic and volatile nature of Web3 ecosystems, often leading to a scenario where supply overtakes demand, creating supply shocks, excessive selling pressure and undesirable price drops.
Let’s be honest. Linear vesting schedules are simplistic and lack professionalism; they are not tailored or specific for each allocation pool. This one-size-fits-all approach is a glaring indicator of poor professionalism in designing that tokenomics model.
We are here to raise the bar with our UGV vesting innovation. It’s a smart vesting release schedule designed to make tokenomics work better and smarter for all participants involved, not only the team but also the community and investors.
The essence of the UGV model is embodied in the following formula:
Subject to the constraint:
Within this formulation:
- P symbolizes the last historical price.
- S represents the Supply of tokens.
- t denotes time.
- PI signifies the implied price of the token at time t.
- DA is the Derivative Amplifier.
- U(t) represents the user growth at time t.
To illuminate the workings of this model, let’s consider a simplified scenario where:
Here, the user growth parameter directly influences the supply emission rate, making the model more responsive to actual platform growth and user adoption, thus aligning token supply more accurately with real-world dynamics.
This formulation incorporates a feedback loop, enabling the rate of token supply emission at a specific time, t, to be influenced by the preceding time step’s supply emission rate, the derivative of the price, and most crucially, the user growth, U(t).
This adjustment capability allows the mechanism to harmonize with supply and demand dynamics proficiently, molding a model that’s resonant with market conditions, user growth, and price oscillations.
The Derivative Amplifier, DA, amplifies the impact of price variations on supply emission, acting as a nuanced modulator for the system’s responses. It regulates the sensitivity of supply emission to fluctuations in price and user growth, orchestrating precise modifications in response to diverse market phases and conditions.
The mechanism ensures that the supply emission rate adheres strictly to predefined bounds (ΔSy min and ΔSy max), installing a safeguard by stipulating a minimum and a maximum to the number of tokens that can be issued per year, precluding excessive dilution or scarcity in supply.
By tying the emission rate to price and its velocity (rate of change), and by ensuring it is within certain bounds, this mechanism seeks to mitigate extreme price actions and support more stable and healthy price movements, provided there is a baseline demand.
f(L(t)) is a function that transforms the liquidity at time t to a value that can be used to modify the rate of change of supply. The exact form of f would depend on how liquidity should influence supply in our model.
The liquidity function f(L(t)) should be designed considering our objectives and how liquidity relates to supply and price in our model.
For instance, if higher liquidity should result in more tokens being released to stabilize price, then f(L(t)) could be a direct proportion to L(t).
If we want to increase the supply emission rate when there is higher liquidity, we could define a simple linear function such as: f(L(t))=k⋅L(t)
Here, k is a proportionality constant that determines how strongly liquidity affects the supply emission rate. If liquidity should have the opposite effect, reducing the supply emission rate when it is higher, we could use a negative value for k or design f accordingly.
But this is just a thinking seed, that I will be exploring further in the future.