What is kvBTC token
kvBTC is a token that provides its buyers with exposure to an underlying Kvadrat (tzBTC²) asset.
It closely follows the squared price of spot bitcoin (BTC-USD), but over time slowly drifts lower compared to spot tzBTC². The divergence between the token and the spot price occurs due to the funding costs.
Funding costs exist because Kvadrat longs essentially pays a funding rate to shorts to maintain the position. This is similar to funding payments for perpetual futures (or option premiums), except in our there is no direct (cash) payment.
The exchange of value happens through the discrepancy between the relative price of tzBTC² and the traded price of a user's kvBTC. Thus, buyers will see their kvBTC token price slowly drift lower, while the sellers will watch their debt from the short sale gradually decrease in size.
This is illustrated by the Graph below that denotes a hypothetical performance of the spot tzBTC² and kvBTC. The two will gradually diverge as long as kvBTC funding remains positive. Nevertheless, if one expects tzBTC (basically Bitcoin) to rise in price quickly owning kvBTC is the right choice as your quadratic gains from this will outweigh the funding costs.
We essentially use the robocoin checker library for implementing the drift.
The instantaneous drift dt, or just drift, is a dynamic parameter (which varies continuously over time) used for adjusting the value of kvBTC. It is essentially responsible for the downward drift in kvBTC price and is measured in Nepers (Np) or sub-units thereof, such as centinepers (cNp). The drift is implicitly continuous, piecewise-quadratic between two clock ticks with continuous derivatives.
Let d(t) be an instantaneous drift parameter at time t
And q(t) - the value of kvBTC at time t
Essentially, our control mechanism provides d′ the derivative of d (instantaneous drift) at clock ticks, and we interpolate quadratically between them.
We can then set d0=d′0=0; the system will adjust automatically so the initial values do not particularly matter (so long as they are not absurdly large). The clock evolves according
d(t+1)=d(t)+12*(d′(t)+d′(t+1))*(t+1−t)
The drift d(ti) is applied to the price q(t) of kvBTC such that q′(t)=d(t)*q(t), hence:
q(t+1)=q(t)*exp((d(t)+16*(2d′(t)+d′(t+1)*(t+1−t))*(t+1−t)
The term in the exponential is the product between
- the period (t+1−t), and
- a term (d(t)+16*(2d′(t)+d′(t+1)*(t+1−t) which is the average of the quadratic function over the period.
Note that given the practical constants involved (d is typically on the order of 100 to 101 cNp / year), the exponential can be approximated by exp(x)=1+x.