Rebalancing the OAMM

Rebalancing the OAMM with PLP buying and selling

To preserve the desired asset allocation within the index, each constituent asset is assigned a target weight. When users mint or redeem PLP tokens, they are charged a fee that dynamically adjusts based on their transaction's impact on the overall index balance.

If a user's minting or redemption would skew the index composition away from the target weights, a higher fee is imposed to disincentivize such imbalancing actions. Conversely, transactions that help rebalance the index towards the desired weightings incur a lower fee, incentivizing users to maintain the intended asset allocation.

This dynamic fee structure ensures that the balanced index remains well-diversified and adheres to its predefined asset allocation strategy, fostering stability and mitigating concentration risks within the underlying basket of assets.

To reflect the same level of risk and avoid exposing Liquidity Providers to assets they might not want exposure to, several PLP pools collateralized by a different basket of assets are available:

  • Classic cPLP: BTC, ETH, USDC

  • Alts aPLP: to be updated

  • Factory: TOKEN, USDC

For the Classic and Alts pools, the target weight of each asset is set by the protocol’s decentralized governance and adjusted over time.

The Factory pools operate under a semi-permissionless framework, empowering builders with the flexibility to tailor the target asset weights according to their specific requirements and preferences.

Fees in practice

The initial allocation of the pool's assets is as follows: USDC is set at 50%, while ETH and BTC each have a 25% share. This distribution is designed to ensure a balanced availability of both put and call options for users, while simultaneously maintaining a significant exposure to volatile assets.

At any given time, the current deviation of the pool from the target weights can be calculated using the following formula:

Dcurrent(t)=aUSDCat+bBTCbt+cETHctD_{current}\text{(t)} = |a_{USDC} - a_t| + |b_{BTC} - b_t| + |c_{ETH} - c_t| \\

When a new deposit or withdrawal is made, the protocol calculates the updated deviation based on the future composition of the pool:

Dnew=aUSDCanew+bBTCbnew+cETHcnewD_{new}= |a_{USDC} - a_{new}| + |b_{BTC} - b_{new}| + |c_{ETH} - c_{new}| \\

By calculating the difference between the new deviation and the current deviation, Polarity can evaluate the positive or negative impact of a transaction on the pool.

Δ=DnewDcurrent(t)\Delta = D_{\text{new}} - D_{\text{current}}\text{(t)}

If Δ is less than 0, it indicates that the transaction is helping to rebalance the pool. Conversely, if Δ is greater than 0, it suggests that the transaction is causing the pool to become further unbalanced.

Based on the value of Δ, a fee is applied to incentivize the balancing of the pool, following this formula:

{Fee=Basic Feeif Δ<0Fee=eαΔ1+Basic Feeif Δ0\begin{cases} \text{Fee} = \text{Basic Fee} & \text{if } \Delta < 0 \\ \text{Fee} = e^{α\Delta} - 1 + \text{Basic Fee} & \text{if } \Delta \geq 0 \end{cases}

We can use the Taylor series expansion for the exponential function. The Taylor series for exponential around 0 is given by:

ex=1+x+x22!+x33!+x44!+e^x = 1 + x + \frac{x^2}{2!} + \frac{x^3}{3!} + \frac{x^4}{4!} + \dots

For small values of x, higher-order terms become negligible. Therefore, the approximation can be expressed as:

eαx1+αxe^{αx} \approx 1 + αx

Hence:

{Fee=Basic Feeif Δ<0Fee=αΔ+Basic Feeif Δ0\begin{cases} \text{Fee} = \text{Basic Fee} & \text{if } \Delta < 0 \\ \text{Fee} = α\Delta + \text{Basic Fee} & \text{if } \Delta \geq 0 \end{cases}

Fee is caped at Maximum Fee.

The initial parameters are established according to the values presented in the table below. These parameters will be subject to adjustment over time through the protocol's decentralized governance mechanism.

Parameter

Value

Basic Fee

0.05%

Maximum Fee

2%

α

0.25

Last updated