Solid World Whitepaper
  • 💡We're shutting down!
Powered by GitBook
On this page
  • Parameters
  • Deposit math
  • After deposit updates
  1. Protocol and governance
  2. The Protocol
  3. CRISP-M and CRISP-C: Collateralized Basket Tokens (ERC-20)

Continous Auction Specification

Parameters

A couple of parameters are at play here to make this model work.

Parameter
Unit

Volume Coefficient

ε

Controls how many units of Forward Clip need to be deposited in a single transaction to raise the annualized Time Appreciation rate on offer by 1% for the next deposit

Discount Floor

α

Controls how far below the Basket's average Annualized Time Appreciation Rate currently offered D can go. Ie if α=0.5%, the on-offer TA can only go below 0.5% of the Basket's average.

Decay

λ

% / s

Determines how fast the on-offer rate will decrease by decaying the deposit momentum

Last deposit timestamp

s

A timestamp that tracks when the last deposit event occurred.

Last deposit momentum

A background parameter that is used to roughly track the recent throughput of deposit events.

Average time appreciation rate

%

At key moments calculated as the weighted average of the time appreciation rates of all deposited Forward Clips within the Basket.

Deposit math

For any moment in time (tnt_ntn​) and amount (m), the on-offer time appreciation rate (%) is expressed as

D(tn,m)=Da−α+(V(tn)+m/2)∗εD(t_n,m) = D_a - α + (V(t_n)+ m/2) * εD(tn​,m)=Da​−α+(V(tn​)+m/2)∗ε

Note: The equation uses m/2 instead of m. The logic here is that the depositor claims all available rates between depositing 0 and m. While this can be expressed as a function of ∑0m\sum_0^m∑0m​, it can be simplified to m/2 due to the linear nature of the rate increase.

Where decayed deposit momentum V(tn)V(t_n)V(tn​) is defined as

V(tn)=C∗min(100%−(tn−tn−1)∗λ,0)V(t_n) = C * min(100\%-(t_n -t_{n-1}) * λ, 0)V(tn​)=C∗min(100%−(tn​−tn−1​)∗λ,0)

After deposit updates

Updating local Forward Clip data

If some supply from that specific Forward Clip has been deposited before, we need to update the local time appreciation for that Forward Clip. To do this, we need to know the FC's current local time appreciation rate DlD_lDl​, local deposited supply M_l and local time to delivery NlN_lNl​.

Defining outstanding ERC-20 supply related to a given Forward Clip as

Issued(D,M,N)=M∗(1−D)NIssued (D,M,N)= M* (1-D)^NIssued(D,M,N)=M∗(1−D)N

We can update local time appreciation as

Dupdated=(Issued(Dl,Ml,Nl)+Issued(D(tn,m),m,Nl))/(Ml+m)NlD_{updated} = \sqrt[N_l]{(Issued(D_l,M_l, N_l)+Issued(D(t_n,m),m,N_l))/(M_l+m)}Dupdated​=Nl​(Issued(Dl​,Ml​,Nl​)+Issued(D(tn​,m),m,Nl​))/(Ml​+m)​

Finally, we updateMlM_lMl​

Updating Basket's deposit momentum

C is updated as

C=V(tn)+mC = V(t_n) + mC=V(tn​)+m

Updating Basket's last deposit timestamp

Then R is recalculated and tn−1t_{n-1}tn−1​ is set to the value of tnt_ntn​

Updating Basket's average time appreciation

Simple weighted average using new deposited amount and related time appreciation parameter and previous Basket deposit total and average time appreciation

Last updated 1 year ago

Initialized as , so the first offered rate would start at the Basket average.

🤖
t CO2et\:CO_2 etCO2​e
t CO2et\:CO_2 etCO2​e
tn−1t_{n-1}tn−1​
CCC
t CO2et\:CO_2 etCO2​e
C=α∗ε∗100C = α*ε*100C=α∗ε∗100
DaD_aDa​