Conic Omnipools
Last updated
Last updated
Omnipools are liquidity pools that Conic utilizes to allocate a single underlying asset across multiple Curve pools. For example the USDC Omnipool accepts deposits of USDC, and will allocate that to several Curve pools that have USDC as an underlying token.
New Omnipools need to be proposed and approved via .
Conic supports v1 Curve (i.e., stableswap) pools that have a Chainlink Oracle for all underlying tokens of the Curve pool. This includes Meta pools.
In order to be usable by an Omnipool, a Curve pool must first be whitelisted via a .
CRV, CVX and CNC accrue to stakers of Omnipool LP tokens. By default, Omnipool LP tokens get staked and unstaked via the Conic UI when a deposit or withdrawal is made.
Omnipools rely on an incentivized and passive rebalancing system based on deposits to and withdrawals from them. When a user deposits into an Omnipool the deposit will always be made to the least allocated Curve Pool relative to the target distribution, and when a user withdraws it will come from the most over-allocated Curve Pool. This means that with regular deposits and withdrawals the pool will maintain a balanced state.
To incentivize regular deposits and withdrawals, CNC emissions are given out to users who deposit into Omnipools while the pools are imbalanced and the rebalancing reward period is active. This period is activated after Curve pool weights have been updated in an Omnipool (i.e., after a LAV). The CNC received will be based on the amount deposited, and will also increase over time while a pool is imbalanced, and will stop when the pool is balanced again.
The amount of CNC emitted depends on the deposit amount and increases with time. This incentivizes users to rebalance as soon as CNC emissions exceed the price impact incurred from making a deposit.
To incentivize regular deposits and withdrawals, CNC emissions are given out to users who deposit into Omnipools while the pools are imbalanced and the rebalancing reward period is active. Note that rewards are not paid out on withdrawals. For active LPs that wish to participate in the rebalancing process, they may want to use the rebalance
function of an Omnipool.
By design, Omnipools do not allow to be imbalanced deliberately. When depositing into an Omnipool, the deposit will be made into the Curve pool that is the most under-allocated relative to its target allocation. Similarly, when withdrawing from an Omnipool, the withdrawal will always be made from the most over-allocated Curve pool. The exception to this is when the deposit or withdrawal is so large, that it would push the balance of that Curve pool the other way, resulting in it being more imbalanced than before and over a specified imbalance threshold. In this case, a full deposit is made, where the deposit is split over several Curve pools such that the Omnipool is relatively balanced after the deposit/withdrawal.
All deposits into an Omnipool are always made directly to one or more Curve pools. However, the Curve pool LP tokens may not always get deposited (and subsequently staked) on Convex. This depends on a ratio of Curve LP tokens that may remain idle.
LPs may opt to acquire cncCRVUSD by swapping through this pool rather than depositing as it is, in most cases, significantly much cheaper in terms of gas costs.
In an Omnipool, each supported Curve pool has a liquidity allocation weight, which determines the amount of liquidity that the Curve pool should receive. These weights get updated in biweekly liquidity allocation votes (LAVs).
No. Omnipools distribute CRV and CVX as soon as the user claims their emissions. However, any "extra rewards" (e.g. SPELL or FXS) that a Curve pool receives will be compounded in CNC.
The displayed APR on the Conic UI is the correct correct APR. However, when calculating the APR users might find a different return due to the fact that Conic uses a cached version of the TVL for each Omnipool. This is done as a measure to save on gas costs as calculating the TVL of each Omnipool is expensive. This cache is updated periodically via a permissionless contract call. An impact of this, is that during periods of high volatility between the TVL of Omnipools (usually around launch or when a new Omnipool is added), there can be times where the cache of the relative TVL is off from the actual TVL. This can cause the CNC rewards for each period to be higher or lower until the cache is updated. This is the cause of the discrepancy some users may notice between the UI displayed APR and the APR that they may manually calculate. Whereby the manually calculated APR could appear to be either higher or lower than the APR displayed on the Conic UI. As the relative TVL of Conic Omnipools stabilize, the received CNC will match more closely with the displayed APR.
At their core, Omnipools derive their base APR from the trading fees earned from their underlying Curve pools. However, it is important to note that factors such as positive price impact, rebasing tokens (e.g. stETH for the ETH Omnipool), and positive exchange rates are also included in the base APR calculation. Often times when the base APR spikes to a higher than normal rate this is due to the pool realizing positive price impacts incurred from rebalances.
When funds are deposited into an Omnipool they can sometimes incur what is called a "full deposit." During a full deposit the provided liquidity gets distributed across all underlying Curve pools. This means that in one transaction an LP may need to pay the gas fees for depositing into 3 or more Curve pools as once as well as staking on Convex. As TVL grows full deposits become more unlikely and happen less often as Omnipools are able to allocate deposits to just a single Curve pool while maintaining liquidity allocation weights.
Yes. Omnipool LP tokens can be used to provide liquidity on AMMs like any other ERC-20 token. This enables users to swap for their LP tokens rather than making a deposit directly through Conic. Currently, there exists a cncCRVUSD / crvUSD pool on Curve. Users can swap crvUSD for cncCRVUSD here and then stake their cncCRVUSD LP tokens on Conic to earn rewards. Going through this route will, in the majority of cases, be significantly cheaper than depositing directly through Conic.
Yes, Curve pools that do not directly hold the underlying asset are supported. For example, the USDC Omnipool could support tokens paired with the 3CRV pool. This is handled in the Omnipool contract by providing liquidity first to the 3CRV pool, and then to the pool it is paired with.
In the event that a token depegs in one of the Curve Pools, an action can be triggered by anyone which helps to protect the Omnipool from the impact of the depegging. This action results in the weight of the Curve Pool being set to 0 and CNC rebalancing rewards being enabled again for deposits. The effect of this is that the Omnipool should withdraw funds from the depegged Curve Pool and move them to other Curve Pools on withdrawals.
For bots and arbitrageurs who are looking to rebalance Omnipools for CNC rewards, they can do so by calling the . Calling the rebalance function is more efficient than manually depositing and withdrawing from Omnipools and can result in a higher amount of CNC rewards for users.
The rebalance function takes two additional parameters; minUnderlyingReceived
(which is the minimum underlying the user is willing to accept to receive back) and minCNCReceived
(which is the minimum CNC rewards the user is willing to accept for their rebalance). It is recommended to use these values to protect against MEV bots sandwiching your transaction.
Although the majority of rebalancing transactions will be done by bots, users wishing to call the rebalance function manually can do so through the contract on .
An LP may stake their Omnipool LP tokens to receive an amount of CNC that depends on the LP's value of staked LP tokens relative to the total Conic TVL. Additionally, stakers of LP tokens receive an "LP boost" on their vlCNC balance that is applied to the balance for voting and proposal creation. For more info, please refer to the .
Yes, unstaked Omnipool LP tokens can be used to provide liquidity on an AMM, such as Curve, just like any other ERC-20 token. Note that Omnipool LP tokens that are not staked on Conic will not earn CNC rewards. However, they will earn fees from any trading volume that occurs. There is currently a Curve pool for crvUSD/cncCRVUSD that can be found here:
To check if other Curve pools currently exist for Omnipool LP tokens search for them by LP token name on the .
cncCRVUSD Curve pool: