Skip to main content

Utilization

  • UU - Utilization
U={0if poolAssets=0lockedNotionalpoolAssets,otherwiseU = \begin{cases} 0 & \text{if }\texttt{poolAssets}=0 \\ \dfrac{\texttt{lockedNotional}}{\texttt{poolAssets}}, & \text{otherwise} \end{cases}

Jump Rate Model

  • rbaser_{\mathrm{base}} - Rate per second
  • r~(U)\tilde r(U) denote the raw (unclamped) per-second rate from the kinked curve.
  • s1s_1 - Slope before kink
  • s2s_2 - Slope after kink
  • κ\kappa - Kink
  • clamps: rmin,  rmaxr_{\min},\; r_{\max}
Domain: U[0,1]U \in [0, 1] is utilization (WAD fraction). r~(U)={rbase+Us1,U<κrbase+κs1+(Uκ)s2,Uκ\tilde r(U) = \begin{cases} r_{\mathrm{base}} + U\, s_1, & U < \kappa \\ r_{\mathrm{base}} + \kappa s_1 + (U - \kappa) s_2, & U \ge \kappa \end{cases} Then clamps, r(U)=min ⁣(max(r~(U),rmin),rmax)r(U) = \min\!\big(\max(\tilde r(U),\, r_{\min}),\, r_{\max}\big)

Price, Strike, and Delta

  • SS - Spot (comes from oracle, 18 decimals)
  • δ\delta - Strike delta (WAD fraction) >=0>= 0
  • KK - Strike (18 decimals)
K={S(1+δ),δ>0S,δ=0K = \begin{cases} S \cdot (1+\delta), & \delta > 0 \\ S, & \delta = 0 \end{cases}

Rate Multiplier vs Delta (OTM discount)

  • hh - OTM half, scales the effective rate when the trader chooses δ>0\delta > 0
  • mm - Rate multiplier
m(δ)={1,h+δ=0hh+δ,otherwisem(\delta) = \begin{cases} 1, & h+\delta=0 \\ \dfrac{h}{h+\delta}, & \text{otherwise} \end{cases} The effective per-second rate charged to size notional becomes: reff(U,δ)=r(U)m(δ)=r(U)hh+δ.r_{\mathrm{eff}}(U,\delta) = r(U)\cdot m(\delta) = r(U)\cdot\frac{h}{h+\delta}\,.

Spend per Second and Notional Sizing

Given notional NN and reff(U,δ)r_{\mathrm{eff}}(U,\delta), the instantaneous spend-per-second is: spend(N;U,δ)=Nreff(U,δ).\mathrm{spend}(N;U,\delta) = N \cdot r_{\mathrm{eff}}(U,\delta)\,. Let the user’s maximum be spendmax\mathrm{spend}_{\max} (from the incoming Superfluid flow). The protocol finds the largest NN such that: Nreff(U,δ)spendmax.N \cdot r_{\mathrm{eff}}(U,\delta) \le \mathrm{spend}_{\max}\,. Additionally, inventory/cap constraints are enforced in discrete lots:
  • bb - Buffer fraction (WAD)
  • BB - Buffer amount
  • AA - Available asset cap = max(0,poolAssetslockedNotionalB)max\big(0,\, \texttt{poolAssets} - \text{lockedNotional} - B)
  • LL - Lot size
  • MM - Max lots = [A/L][A / L]
The solver binary-searches m[0,M]m \in [0, M] to maximize N=mLN = m \cdot L under the spend constraint.

Payout at Close

At close, with final spot ScloseS_{\mathrm{close}} payout(N,K,Sclose)=Nmax(0,1KSclose)\text{payout}(N, K, S_{\mathrm{close}}) = N \cdot \max(0, 1- \tfrac{K}{S_{\mathrm{close}}})\, Observations:
  • payout=0\text{payout} = 0 if ScloseKS_{\mathrm{close}} \le K
  • As ScloseS_{\mathrm{close}} \to \infty, payoutN\text{payout} \to N