Comment on page

Funding Payments

The Significance

The SNV index price is calculated on the floor prices of the compositions and is essentially independent of our perpetual market. The SNV Mark Price, on the other hand, is discovered by the participants' trading activity.
During trading, the participants may deviate the Mark Price of the SNV away from the Index Price (which is taken as the underlying).
To de-incentivize the deviation of the Mark Price away from the Index Price, Funding Payment is introduced, which flows from long position holders to short position holders if the Mark Price deviates higher and vice versa.

Funding Rate

The funding rate is a determining factor at which the deviation between mark and index prices converges.
FundingRate=(MarkPriceTwap−IndexPriceTwap)/IndexPriceTwapFundingRate = (MarkPriceTwap - IndexPriceTwap)/IndexPriceTwap
FundingAmount=FundingRate∗PositionSizeFunding Amount = Funding Rate * PositionSize
The funding rate is bound to be kept between [-0.75% and 0.75%] at the protocol level.

Global Index(G)

Instead of sending out funding payments every hour, we are accumulating the funding of each user and settling whenever he/she interacts with the contracts.
We are maintaining a global Accumulator defined by the following:
Gt=Gt−1+(Δt)(Mark−Index)/86400G_t = G_{t-1} + (\Delta_t) (Mark - Index) / 86400
Say, with 5 mins as the Delta,
Gt=Gt−1+(Mark−Index)/288where(Δn)=5mins=5∗60G_t = G_{t-1} + (Mark - Index)/288 \quad where(\Delta_n) = 5 mins=5*60
= Time in seconds between
Gi=(∑iMarki∗Δi−∑iIndexi∗Δi)/86400G_i=(\sum_i Mark_i*\Delta_i-\sum_iIndex_i*\Delta_i)/86400
We also maintain a relative accumulator for each account with a position opened.
Whenever a user interacts with the account, funding to be paid is:
Funding=(Gi−Ii)∗PositionFunding = (G_i - I_i) * Position
is the Cached Index maintained for each participant, this is reset as
every time after the funding is settled.