Why 1xMM Project?

    In the Blockchain concept, assets (i.e. tokens) should not be printable; i.e. the supply of assets should be bounded to a limited value or should be an observable and measurable formula that can justify the supply increase or decrease.


    Hence, digital assets have 2 major types of tokens:

    - Limited supply tokens (like ETH, BTC, etc.) which have a fixed supply which cannot change over time - except if contracts fork and the supply is adjusted

    - Asset-backed tokens (like stable coins) which are following a predefined process orchestrating the increase or decrease of supply


    Therefore,as of the launch of 1XMM project, digital assets do not have interest rate features, aka yield curves (note that creation of digital interest rate curves is a step in Asagaia development plan). 1xMM Pools intend to simulate the concept of “cost of carry”, using options and the varying cost of premia in time.


    The concept of cost of carry using options is as follows:

    - All assets have potential of being appreciated or depreciated

    - This potential can be measured with the Futures market (i.e. asset trend) and the Options market (i.e. asset potential energy)

    - As such, measuring the constant maturity option’s premium’s variation could be a way to measure the cost of carrying an asset over time, if we believe in its potential (either the potential to go down, or the potential to go up) since an option premium is the expected future value of an asset


    1xMM Pools offer the possibility to user to accrue the performance of constant maturity options, either a call if a user believes that the asset potential is positive, or a put if a user believes that the asset potential is negative.

    About 1XMM Tokenomics

    The total amount of 1XMM tokens is 650 million tokens, that will be distributed across various blockchains thanks to the integration of LINK protocol into 1XMM smart contract (ERC677 standard).


    75% of the total supply will be used for pools / liquidity / cash management, of which 10% will be used to garantee some liquidity on 1XMM token, 25% will be used by Asagaia to raise more capital in the short / medium term to (1) finance Asagaia projects, and (2) to improve liquidity on 1xMM Pools (i.e. stake coins on the different pools to ensure minimum positions and therefore yield possibilities).


    The remaining 40% of the 1XMM tokens will be used exclusively for the 1XMM pools, in order to serve attractive yield to 1XMM holders ( provided that users are in the right direction). Since we are expecting 1XMM price to have stable growth, 1XMM liquidity on 1XMM pools may mostly be on the short side; our trading team will be in charge of moving liquidity on the 1XMM pools to try to offer an average of 5% p.a. yield to 1XMM holders.


    Note that: our projections should allow us to serve an interest between 3% and 6% p.a. for the coming 15 years, depending on liquidity deposited on the 1XMM pools. These projections cannot be guaranteed, in any case, since they depend on the market conditions and the trading team’s ability to manage the liquidity on pools.

    What is the auto-exchangeable feature?

    1XMM smart contract offers the possibility to deposit ETH, or any other ERC20 coins, onto the 1XMM contract so that 1XMM holders can exchange their 1XMM tokens against these “staked tokens”. The “staked tokens” will be purchased using 1xMM Pools revenues.


    The “staked tokens” can be exchanged at any time, as long as “staked tokens” are available (i.e. when all the quantity has been withdrawn, there will be no more possibility for users to get “staked tokes”), and at a pre-fixed rate. The pre-fixed rate depends on market conditions but will be, in general, more attractive than market exchange rate offered for the “staked token”. For example, if ETH/1XMM is exchanged at 1,500.00, the pre-fixed rate could be 1,450.00.


    The 1XMM tokens which are exchanged via this process will be automatically burnt. The main objective of auto-exchangeability is to sustain 1XMM value thanks to the attractive exchange rate and the auto-burnability of the token.

    What is the auto-burn feature?

    1XMM tokens which are sent back to the smart contract are automatically burnt. In general, this burn process is the result of the auto-exchange process.


    The main objective of the auto-burn feature is to sustain 1XMM value by reducing the supply of 1XMM tokens. The auto-burn is an intrinsic feature of the 1XMM token contract.

    What are the benefits of the 1XMM token?


    The first benefit of holding 1XMM tokens is the potential capital gain, if the tokens appreciate in time. However, this benefit has to come along with practical and measurable benefits:

    - Fee rebates: 1XMM holders will have reduced fees on the 1xMM Pools

    - Penalty rebates: when offsetting a position before the minimum holding period, 1XMM holders will have a discounting penalty

    - Flexible yield: a dedicated 1XMM Pool will be offered to users, and liquidity will be managed to favor specific market trends (short side will be taken to provide yield in positive trend; long side will be taken during negative trends, to incentivize users to keep their 1XMM positions)


    Other benefits are available, such as

    - Simple and cheap cross-chain transfers

    - Use of 1XMM tokens in other Asagaia projects

    - Auto-exchangeability


    What does it mean Long or Short position?

    In trading, one can open 2 types of positions:

    - Long: when one expects the price of an asset to increase (aka. bullish view)

    - Short: when one expects the price of an asset to decrease (aka. bearish view)


    In 1xMM Pools, users predict whether an asset’s value will rise or fall. This decision shapes their position and determines their yield when staking tokens.

    Users earn yield if the asset's price moves as expected. For example, those with a long position profit if the price rises, while those with a short position lose. If the price moves against their prediction, they incur a loss.


    Each position involves a constant maturity option (a call or put), and yield is based on its value change over the fixing period (cf. accrued yield computation). If the price rises, long users earn the accrued performance of the call option, while short users cover this cost. The maturity of the involved constant maturity option depends on the term of the position selected by a user; e.g. if a user wants to stake for 2 weeks, he will be receiving the performance of a 2 weeks constant maturity option.


    A constant maturity option never expires and maintains a fixed time to maturity (e.g., 1 day or 1 week), allowing users to enter or exit the pool anytime. At 1xMM, we believe these options best reflect an asset’s expected cost of carry, which we define as its expected internal rate of return.

    How are Premia computed?

    The Volatility

    For each term, we get forward and option prices from Deribit for reference pairs (BTC/USD, ETH/USD, SOL/USD and BNB/USD), for all available terms.


    Using this market data information, SABR smiles are calibrated to create reference volatility surfaces. A volatility surface for a pair X, defined at a time t, allows to get the implied Black & Scholes volatility for any option base on X and priced at time t:

    σX(t,K,T)=VolatilitySurfaceX,t(K,T)\sigma_X(t,K,T) = \text{VolatilitySurface}_{X,t}(K,T)

    For other pairs (i.e. non-reference pairs), we compute the correlated At-The-Money ("ATM") volatilities, and then we calibrate a SABR smile to fit the correlated volatilities Out-of-The-Money ("OTM") and In-The-Money ("ITM") - the process for OTM and ITM may change in time. Once the volatility surfaces are computed, we can compute the premium of all the constant maturity vanilla options.



    The Premium

    Using the volatility surfaces, we compute strike, by term T, for each option such as:

    Kt,T=St×(1+Yieldt,T×(Tt))K_{t,T} = S_t \times (1 + \text{Yield}_{t, T} \times (T - t))

    The strike approach defined above aims at considering the Futures market forecast in the options's premium. Indeed, if the Futures market has a positive view about a pair (i.e. the Futures price is bigger than the spot price), the Put options will be in the money while the Call options will be out of the money.

    Then, we can compute the premia:

    Premium(X,ti,T)=Option(X,ti,Kti,T,T,σX(ti,Kti,T,T))Kti,T\text{Premium}(X,t_i,T) = \frac{\text{Option}(X,t_i,K_{t_i,T},T,\sigma_X(t_i,K_{t_i,T},T))}{K_{t_i,T}}

    When time reaches next fixing period, ti+1=ti+fixing_periodt_{i+1} = t_i + fixing\_period, we compute the new premium of each option (i.e. the “Performance premium”) such as:

    Premium(X,ti+1,T)=Option(X,ti+1,Kti,T,T,σX(ti+1,Kti,T,T))Kti,T\text{Premium}(X,t_{i+1},T) = \frac{\text{Option}(X,t_{i+1},K_{t_i,T},T,\sigma_X(t_{i+1},K_{t_i,T},T))}{K_{t_i,T}}

    This methodology allows to track the performance of the spot in the yield which will be exchanged between parties. Long users are paid the accrued value of Calls "Performance premia", while Short users are paid the accrued value of Puts "Performance premia".

    How is the accrued yield computed?

    First, let’s set:

    AccrualFactor=FixingTimestampti+1FixingTimestamptiTAccrualFactor = \frac{FixingTimestamp_{t_{i+1}} - FixingTimestamp_{t_i}}{T}
    1. We compute the amount to be paid by Payers:

    2. Payerti+1,T=AccrualFactor×NotionalPayer,T,ti×Premium(X,ti+1,T)Payer_{t_{i+1},T} = AccrualFactor \times Notional_{Payer,T,t_i} \times Premium(X,t_{i+1},T)

      Where NotionalPayer,T,tiNotional_{Payer,T,t_i} is the notional for Term T at time tit_i.

      And

      Paymentti+1=TPayerti+1,TPayment_{t_{i+1}} = \sum_{T} Payer_{t_{i+1},T}
    3. Then, we compute the distribution of Payment amongst Receiver

    4. With the elements above, we can compute the total performance to be distributed to the receiver side:

      Receiverti+1,T=D(T)×Paymentti+1Receiver_{t_{i+1},T} = D(T) \times Payment_{t_{i+1}}

      Where

      D(T)=TAccrualFactor×Premium(X,ti+1,T)×NotionalReceiver,T,tiAccrualFactor×Premium(X,ti+1,T)×NotionalReceiver,T,tiD(T) = \frac{\sum_{T} AccrualFactor \times Premium(X,t_{i+1},T) \times Notional_{Receiver,T,t_i}}{AccrualFactor \times Premium(X,t_{i+1},T) \times Notional_{Receiver,T,t_i}}
    5. Finally, we can compute the Accrued Yield for each term:

    6. AccruedYieldti+1,T=Receiverti+1,TNotionalReceiver,T,tiAccruedYield_{t_{i+1},T} = \frac{Receiver_{t_{i+1},T}}{Notional_{Receiver,T,t_i}}

      Example:

      We have the following positions:

      TermShortLong
      1D100,000100,000
      1W65,00050,000
      2W40,00040,000
      3W25,00075,000
      1M025,000

      Total Short Positions = 230,000

      Total Long Positions = 290,000

      Let’s assume the following market parameters (we assume same volatility for all tenors) for a fixing period of 5 minutes:

      Datatt + 5 min
      Spot3,6003,580
      Volatility30%32%
      Forward Yield10% p.a.10% p.a.

      Strikes at t (in this case, forward yield being positive, we have adjusted the strikes for the Calls, then we looked for put strikes such as Call = Put):

      Term
      Kti,TK_{t_i,T}
      Kti+1,TK_{t_{i+1},T}
      1D3,600.9863,581.177
      1W3,606.9043,588.239
      2W3,613.8083,596.478
      3W3,620.7123,604.717
      1M3,629.5893,615.310

      Values of Premia at t + 5 min

      TermCallsPuts
      1D0.4258%0.9759%
      1W1.5126%2.0290%
      2W2.2506%2.7281%
      3W2.8190%3.2579%
      1M3.4241%3.8138%

      Since spot went down, Long side (i.e. calls) pays the Short side (i.e. the puts); the average performance to be paid is: 1.4230%

      The performance by term:

      SideTerm1D1W2W3W1M
      ShortD(T)75.7523%14.8145%6.2616%3.1716%0%
      Receiver3.5430.6930.2930.1480
      Accrued Yield (in bps)0.3540.1070.0730.0590
      LongPayer3.3890.5030.2710.4040.110

      Note: Accrued Yield seems small but it corresponds to the 5 minutes accrual. E,g, for a 1D term on the short side, 0.272 bps is equivalent to 0.783% return over 1D.

    How is ATM volatility, for non-reference pairs, computed?

    There is a set of reference pairs; a reference pair is a pair for which there is an observable market for Futures and Options (data for these reference pairs is coming from Deribit and/or Binance). A non-reference pair is a pair for which there is no Futures and Options market.


    1. For reference pairs

    2. We define:

      Vt=[σt,T1,1σt,T1,nσt,Tm,1σt,Tm,n]V_t = \begin{bmatrix} \sigma_{t,T_1,1} & \cdots & \sigma_{t,T_1,n} \\ \vdots & \ddots & \vdots \\ \sigma_{t,T_m,1} & \cdots & \sigma_{t,T_m,n} \end{bmatrix}
      Ft=[ft,T1,1ft,T1,2ft,T1,nft,Tm,1ft,Tm,2ft,Tm,n]F_t = \begin{bmatrix} f_{t,T_1,1} & f_{t,T_1,2} & f_{t,T_1,n} \\ \vdots & \vdots & \vdots \\ f_{t,T_m,1} & f_{t,T_m,2} & f_{t,T_m,n} \end{bmatrix}

      -

      σt,Ti\sigma_{t,T_i}

      is the ATM volatility for term

      TiT_i

      -

      ft,Ti=ln(StFt,Ti)×1Tif_{t,T_i} = \ln\left(\frac{S_t}{F_{t,T_i}}\right) \times \frac{1}{T_i}

      is the forward rate for term

      TiT_i

      Since we have historical prices, we can compute the historical returns for each reference asset, for a given Term TiT_i:

      At,Ti=[rtk:Ti,Ti,1rtk:Ti,Ti,nrt:Ti,Ti,1rt:Ti,Ti,n]A_{t,T_i} = \begin{bmatrix} r_{t-k:T_i,T_i,1} & \cdots & r_{t-k:T_i,T_i,n} \\ \vdots & \ddots & \vdots \\ r_{t:T_i,T_i,1} & \cdots & r_{t:T_i,T_i,n} \end{bmatrix}

      Where:

      rt,Ti=StStTi1r_{t,T_i} = \frac{S_t}{S_{t-T_i}} - 1

      Next step is to compute the Singular Value Decomposition of TiT_i:

      (Qt,Ti,Ut,Ti,Vt,Ti)=SVD(At,Ti)(Q_{t,T_i}, U_{t,T_i}, V_{t,T_i}) = \text{SVD}(A_{t,T_i})
    3. For reference pairs

    4. For each non-reference pair, we can define the vector of historical returns of Term TiT_i:

      Tt,Ti=[rtk:Tirt:Ti]T_{t,T_i} = \begin{bmatrix} r_{t-k:T_i} \\ \vdots \\ r_{t:T_i} \end{bmatrix}

      Then, we can get the regression factors that will be used to compute correlated forwards and volatilities:

      Regt,Ti=[αt,Ti,1αt,Ti,n]=Vt,Ti×Qt,Ti1×Ut,Ti(n)T×Tt,TiReg_{t,T_i} = \begin{bmatrix} \alpha_{t,T_i,1} \\ \vdots \\ \alpha_{t,T_i,n} \end{bmatrix} = V_{t,T_i} \times Q_{t,T_i}^{-1} \times U_{t,T_i}(n)^T \times T_{t,T_i}

      Then we can build the Reg matrix such as:

      σt,Ti= ildeσt,Ti+ extstd.dev(Regt(Ti) imesAt,Ti,Tt,Ti)\sigma_{t,T_i} = \ ilde{\sigma}_{t,T_i} + \ ext{std.dev}(Reg_t(T_i) \ imes A_{t,T_i}, T_{t,T_i})

      We can compute the forward rates and volatilities for the non-reference pair using the Reg matrix. For the forward rates, the computation is straight forward:

      FNR=Ft×Regτ=[fτ,T1fτ,Tm]FNR = F_t \times Reg_\tau = \begin{bmatrix} f_{\tau,T_1} & \cdots & f_{\tau,T_m} \end{bmatrix}

      For the volatilities:

      σ~τ,Ti=[στ,Ti,1στ,Ti,n][ατ,Ti,1ατ,Ti,n]=n(ατ,Ti,j×στ,Ti,j)2\tilde{\sigma}_{\tau,T_i} = \left\Vert \begin{bmatrix} \sigma_{\tau,T_i,1} \\ \vdots \\ \sigma_{\tau,T_i,n} \end{bmatrix} \cdot \begin{bmatrix} \alpha_{\tau,T_i,1} \\ \vdots \\ \alpha_{\tau,T_i,n} \end{bmatrix} \right\Vert = \sqrt{\sum_{n} (\alpha_{\tau,T_i,j} \times \sigma_{\tau,T_i,j})^2}

      Finally:

      σ au,Ti= ildeσ au,Ti+ extstd.dev(Reg au(Ti) imesA au,Ti,T au,Ti)\sigma_{\ au,T_i} = \ ilde{\sigma}_{\ au,T_i} + \ ext{std.dev}(Reg_\ au(T_i) \ imes A_{\ au,T_i}, T_{\ au,T_i})

      Where:

      Regt(Ti)=[αt,Ti,1αt,Ti,n]Reg_t(T_i) = \begin{bmatrix} \alpha_{t,T_i,1} & \cdots & \alpha_{t,T_i,n} \end{bmatrix}

    How are indices computed?

    For each token, a Long index and a Short index are computed by term such as:

    Indexti,Tj,Receiver=Indexti1,Tj,Receiver+AccruedYieldti,Tj\text{Index}_{t_{i},T_{j},Receiver} = \text{Index}_{t_{i-1},T_{j},Receiver} + \text{AccruedYield}_{t_{i},T_{j}}
    Indexti,Tj,Payer=Indexti1,Tj,PayerAccrualFactor×Premium(ti+1,T)\text{Index}_{t_{i},T_{j},Payer} = \text{Index}_{t_{i-1},T_{j},Payer} - AccrualFactor \times \text{Premium}(t_{i+1},T)

    The indices are used to compute the performance of the Long and Short sides at any point in time, when a user reduces or closes a position.

    What are the penalties and how are they computed?

    When users select a term for their staking position, users commit to remain in the position for a minimum period of time. This feature has been implemented to ensure more stable liquidity profiles in the pools and for other users. Nobody wants to see users going into a 1 day position and exit the position after 5 minutes.


    Furthermore, if a user exits the position before the term, and if this user is generating profit on the position, it is not fair to let the user leave with the full benefit since he didn't remain in the position for the expected period of time, and his/her revenues may not be reflecting the real income at the period end.


    Therefore, if a user exits a position before the expected term, the rules are:

    - A one-off, fixed, penalty applies if users exits before the minimum holding time

    - If user generates profit, user will get the pro-rated performance

    Pro_rated_perft=Perft×tt0Tt0\text{Pro{\textunderscore}rated{\textunderscore}perf}_{t} = \text{Perf}_{t} \times \frac{t - t_0}{T - t_0}

    Note that the one-off, fixed, penalty depends on pools and can be changed over time. Penalty rules can also be changed over time.