For the complete documentation index, see llms.txt. This page is also available as Markdown.

⏮️Genesis Value & Compound Factor

How every position rolls at maturity with a single storage update

These two constructs let the protocol roll all positions at maturity by updating one number per market, instead of touching every position — the accounting core of Auto-Roll and Lazy Evaluation.

Compound Factor

At each quarterly roll, the protocol records the roll's effective discount rate as a multiplier and chains it onto a running product — the Compound Factor. Two are maintained per currency, differing by the roll fee:

Lending Compound Factor (LCF):

LCFn+1=LCFn×(1AutoRollPricenAutoRollFeeRate)LCF_{n+1} = LCF_{n} \times \left(\frac{1}{\text{AutoRollPrice}_{n}} - \text{AutoRollFeeRate}\right)

Borrowing Compound Factor (BCF):

BCFn+1=BCFn×(1AutoRollPricen+AutoRollFeeRate)BCF_{n+1} = BCF_{n} \times \left(\frac{1}{\text{AutoRollPrice}_{n}} + \text{AutoRollFeeRate}\right)

The asymmetry (− fee for lenders, + fee for borrowers) is how the auto-roll fee is charged without a separate transaction.

Genesis Value

A position's Genesis Value (GV) expresses it in terms of the market's Genesis Date (the protocol's reference start date). When a position is created or rolls past maturity:

GV=FVLCFcurrentGV = \frac{FV}{LCF_{\text{current}}}

and at any later time its Future Value is recovered by:

FVn=GV×LCFnFV_{n} = GV \times LCF_{n}

A lender's GV is positive and never changes — their FV grows purely through the LCF. A borrower's GV is negative and grows in magnitude with each roll, reflecting the fee spread between BCF and LCF:

GVn+a=GVn+GVn(BCFn+aBCFnLCFnLCFn+a1)(GVn<0)GV_{n+a} = GV_{n} + GV_{n}\left(\frac{BCF_{n+a}}{BCF_{n}} \cdot \frac{LCF_{n}}{LCF_{n+a}} - 1\right) \quad (GV_n < 0)

Worked example

  1. Roll occurs at AutoRollPrice 0.98 (a unit price of 98.00) with fee rate 0.001. A lender's LCF goes from 1.20 → 1.20 × (1/0.98 − 0.001) ≈ 1.2233.

  2. A lender with GV = 500: FV moves from 600 → 500 × 1.2233 ≈ 611.6 — the position grew through the roll with zero per-position computation.

  3. For 1,000 positions, a naive roll would cost ~20M gas (20k × 1,000 writes). Updating the Compound Factor once costs ~50k gas — a 99.7% reduction — and individual FVs are derived on read.

Design notes

  • One Genesis Date for everyone standardizes the reference point; individual entry dates are captured by the LCF value at entry, not by per-user anchors.

  • GV is protocol-computed, immutable per position, and fully auditable on-chain.

  • ZC perpetual tokens (Tokenization) are GV made transferable: an ERC-20 denominated in Genesis Value terms.

Last updated