Harmonic Liquidity
A Strategic Vision For Index Coop Product Liquidity
Authors: @anthonyb.eth @jackiepoo @jdcook (AWG + Liquidity Pod Core Contributors)
Reviewers: @overanalyser @MrMadila
Summary
VISION
We recommend a product liquidity strategy that optimizes for user experience by minimizing access costs.
OBJECTIVES
- Establish organizational consensus that the Liquidity Pod will target and be accountable to an access cost across all products.
- Establish a framework for the Liquidity Pod to make decisions regarding product liquidity.
PROBLEM
Due to high gas prices on L1, the cheapest way to buy and sell Index products is to have a DEX pool to swap ETH directly for the product, e.g. DPI/ETH. This requires capital investment to ensure that product liquidity is there, especially at launch. Products that have insufficient launch liquidity may have crippled demand and hobbled growth, since the cost to buy them would be prohibitively high. However, capital to seed and support these liquidity pools is finite. Therefore, provisioning liquidity is a bottleneck which limits the breadth of products that the Index Coop can support while ensuring the health of existing products, and we need a way to determine how much liquidity is “healthy enough”.
As products develop healthy liquidity from trading fees, they’ll need less liquidity support from Index Coop. The trading fee yields organically attract liquidity providers. For example, the Uniswap v3 ETH2x-FLI / ETH pool consistently has an APY exceeding 20%.
Source: Dune Analytics
With products like ETH2x-FLI, there is little need for prolonged protocol-provided liquidity. High trade volume and strong asset correlation make this an attractive pool for external liquidity providers without the need for additional incentives.
Products that can be easily exchange-issued on L2, like ETH2x-FLI-P, also do not need protocol liquidity support, since the low gas prices and high underlying liquidity means that exchange issuance for the product is cheap.
However, products at launch and products that have low underlying liquidity on L2 require product liquidity support to keep access costs low. The question becomes, how do we target this liquidity for maximum impact on our customers?
SOLUTION
We intend to deploy liquidity across L1 and L2 to target a maximum access cost across all trade sizes.
Eventually, after a full migration to Layer 2s (L2s), the optimal way to purchase an Index product will be through exchange issuance on L2 due to the low-cost execution environment. However, exchange issuance on L2s requires deep underlying liquidity across rollups and this transition hasn’t happened yet. Most of our products currently have insufficient underlying liquidity on L2s.
Given this situation, there are currently three ways to purchase Index Coop products:
- Layer 2 DEX swap (Small Purchases)
- Layer 1 DEX swap (Medium Purchases)
- Layer 1 Exchange Issuance (Large Purchases)
The access cost that the user pays is the sum of gas fees and price impact to enter into or exit from an index product. The access cost percentage is the access cost divided by the purchase size.
For example, Bob buys $10,000 of DPI. The price impact is 0.5% ($50), and gas fees are $50. The total access cost would be $100, and the access cost percentage is 1%.
Depending on the purchase size and product, there is an optimal method of purchasing where the access cost is the lowest.
There are two trade sizes where the optimal purchase method transitions from one method to another. We call these trade sizes “equilibrium points”:
- Exchange Equilibrium - the access cost is the same to purchase via L1 DEX or via exchange issuance.
- Layer Equilibrium - the access cost is the same to purchase via L2 DEX or via an L1 DEX.
To calculate liquidity targets for each product on L1 and L2, we first set a Target Access Cost Percentage (TAC%).
Then, based on the gas used in exchange issuance, the gas price, and the underlying liquidity, we determine the optimal size of the L1 and L2 product liquidity pools.
The access cost percentage will rise above the TAC% for massive buys due to a lack of underlying liquidity in the component assets. This point is called the Underlying Liquidity Constraint.
When exchange issuance and available liquidity on L1 and L2 all work together to provide the user with a guaranteed low cost of trading, we call this: Harmonic Liquidity.
DEFINITIONS
Access cost:
The cost to a user to enter/exit a position in an Index Coop product including gas fees and price impact.
access cost = gas cost + price impact
access cost % = access cost / trade size
Price impact:
The “cost” paid due to a difference between the spot price and the execution price of a trade due to limitations in liquidity. More liquidity leads to lower price impacts. This is in contrast to “slippage”, which we define as a shift in spot price due to activity of other market participants between the time that a trade is initiated and the time that the trade is executed.
Product liquidity:
The liquidity available to swap ETH directly for the Index product, e.g. DPI/ETH
Underlying liquidity:
The liquidity available to swap ETH for the underlying components of an Index product, e.g. UNI/ETH, AAVE/ETH
Layer 2 product liquidity:
e.g. on-chain DEX DPI/WETH liquidity on Polygon. Costs: L2 gas (low), price impact (high due to low liquidity)
Layer 1 product liquidity:
e.g. on-chain DEX DPI/ETH liquidity on Ethereum across all DEXes. Costs: L1 gas (medium), price impact (low due to high liquidity)
Exchange Issuance:
smart contract feature that takes a user’s ETH, and makes individual swaps for the product’s, e.g. DPI’s, underlying assets, then takes those assets and mints DPI. Costs: L1 gas (high), or L2 gas (low)
Harmonic Liquidity
Generally, we expect the gas costs for L2 swaps to be the lowest, then L1 swaps, then L1 exchange issuance. A lot of what we’re writing assumes also lower product and underlying liquidity for L2 as well. The gas costs are fixed, whereas the price impacts are variable relative to the purchase size and available product liquidity. So, if you mapped out the access costs for each type of trade, it would look something like this:
We can map out the dynamics of the most optimal way to trade from smallest trade to largest.
For small trades, trading on L2 dexes makes the most sense. L2 swaps have the lowest gas cost, but L2 DEXes have less product liquidity. Once the trades get up to a certain size, the price impact of trading on L2 outweighs the gas savings, and it makes sense to swap on L1 with higher gas prices but better liquidity. This boundary is called the layer equilibrium.
In turn, L1’s DEX liquidity has limits. There is some larger trade size where the price impact of an L1 swap outweighs the fixed (large) gas cost of exchange issuance. This boundary is called the exchange equilibrium.
Above that, there is a certain maximum trade size where the dominating cost of exchange issuance is the underlying liquidity, and above that point it will not be possible to have a larger single trade while staying below the TAC %. At that point, it’ll be optimal to split up their trades to split up the price impacts across as much on-chain liquidity as they can, or to figure out how to source the underlying assets OTC.
Of course, these equilibria are determined by relative levels of on-chain liquidity. If on-chain liquidity for underlying assets is high on L2, as it is for ETH-2x-FLI-P, for example, then exchange issuance becomes the lowest cost way to get the product overall and there is no need for product liquidity at all.
Exchange Issuance
Gas is required to execute exchange issuance - the contract facilitates trades for all the underlying tokens and mints new units. The gas cost dominates the access cost equation at smaller trade sizes and makes exchange issuance unappealing. The more assets that need to be purchased, the more swaps that are bundled in, and the higher the gas cost as well.
As the trade size increases, the fixed gas cost becomes a smaller percentage of the trade size, eventually bringing exchange issuance below the TAC %. This point is called the Exchange Equilibrium.
As the trade size continues to increase beyond the exchange equilibrium, the price impact of the underlying assets begins to increase while the gas cost continues to become a minor component of the access cost. Eventually, the price impact of the underlying assets will grow to a point where exchange issuance is not possible below the TAC%. This point is the Underlying Liquidity Constraint. Harmonic liquidity can facilitate any trade size that the underlying token liquidity will support - it is the underlying token liquidity that determines the price impacts of underlying trades and effectively pushes exchange issuance out of usability at substantial trade sizes.
Optimizing exchange issuance sets the foundation, and it is the most crucial part of the harmonic liquidity equations.
Layer 1 Liquidity
The curve for layer 1 liquidity is similar to exchange issuance. Buying Index Coop products on a Layer 1 DEXes carries high costs due to gas. A typical Uniswap trade on mainnet is around 120,000 wei compared to exchange issuance for BED which costs approximately 430,000 wei.
Gas costs sideline retail investors at small trade sizes because $50 in gas is too expensive for a $100 investment. The purchase size must be large enough to justify using an L1 DEX. As the trade size increases, the price impact increases according to the depth of liquidity on the DEX.
Layer 2 Liquidity
Gas costs on Layer 2 are so minimal that we assume that they don’t factor into the access cost. Thus, the layer 2 liquidity curve is simple. As the trade size increases, the price impact increases according to the depth of liquidity on a Layer 2 DEX.
The target for layer 2 liquidity becomes the lower bound at which layer 1 liquidity cannot serve the target access cost. We call this target layer equilibrium.
Harmonic Liquidity Case Study
The harmonic liquidity equations calculate the liquidity required for a product based on the gas cost of exchange issuance and the TAC%.
Harmonic liquidity pinpoints the precise liquidity requirements on L1 DEXs and L2 DEXs so customers can purchase any amount (that the underlying liquidity can support) of the product without paying an access cost above the TAC%.
Let us illustrate this with a real example of harmonic Liquidity for BED.
The graphic above shows the harmonic liquidity curves for BED with the following parameters:
Target Access Cost: 2.00%
Gas Price: 100 gwei
Swap Gas: 120,000 wei
Exchange Issue Gas: 433,385 wei
From these assumptions we can then derive what total liquidity would be required in an ETH/BED Uni V2 pool, which we would call the “baseline liquidity”. More capital efficient methods of getting that liquidity would allow us to decrease the amount required considerably in exchange for higher risk.
Exchange Issuance Cost
BED costs about 433,385 wei for exchange issuance. At a gas price of 100 gwei, the cost of exchange issuance is .0433 ETH.
exchangeIssuanceCost = gasUsed * gasPrice / 10^9
where _gasUsed _in wei and _gasPrice _in gwei
i.e. (433,385 * 100 / 10^9 = .0433 ETH)
Exchange Equilibrium
Since the TAC% is 2%, the access cost of a DEX trade or exchange issuance should be a maximum of 2%. Therefore, the equilibrium point where it becomes more cost-efficient to use exchange issuance will be when the exchange issuance access cost is 2%.
_exchangeEquilibrium = exchangeIssuanceCost / targetAccessCostPercentage _
i.e. (.0433 ETH / .02 = 2.167 ETH)
L1 DEX Liquidity Requirement
At 2.167 ETH, the access cost is approximately the same whether using exchange issuance or via an L1 DEX (assuming an optimal amount of liquidity on the L1 DEX). In other words, we should target a specific amount of liquidity so that the access cost on a DEX purchase is 2% for a trade size of 2.167 ETH.
First, we determine the liquidity needed in an x * y = k pool like Uniswap v2. We call this the baseline liquidity.
baselineLiquidity = (2az + ak - azk + a * (k^2 +z^2k^2 - 2zk^2 - 4kz^2 + 4z^2)^.5)/2k
where:
a = exchangeEquilibrium
_z = 1 - lpFee _ in this case the LP fee is 0.3%, so z = 0.997
k = targetAccessCost - (swapGasCost / exchangeEquilibrium)
The result is that there must be 298 ETH in ETH-side liquidity (596 ETH Equivalent Total) in the pool. For reference, 596 ETH at $4,000 ETH/USD is $2,381,500.
Layer Equilibrium
There is also a point at which a trade size is too small to be made on an L1 DEX with an access cost under the target maximum access cost percentage. We call this the layer equilibrium. These trade sizes are typically less than 1 ETH and incur a negligible price impact. The higher the liquidity requirements for a product, the less price impact is a factor in the layer equilibrium.
The differences in liquidity requirements are relatively small at this end of the spectrum, and it is better to overestimate liquidity required on L2. Therefore, we can confidently say that we should have enough liquidity to support 1 ETH trade size on L2 with less than the target access cost in price impact for all existing products. Using the same equation for the L1 DEX Liquidity Requirement, we can determine the liquidity needed on L2.
One of the current issues with L2s is fractionalized liquidity and the lack of concentrated liquidity pools. While we are currently in the research phase, it is abundantly clear that a model of supporting (providing liquidity to) many scaling solutions is unfeasible.
For each product on each side chain, a yx=k pool ~400 ETH would be required to allow 1 ETH trades at < 2% access cost. With multiple side chains / L2’s becoming available, this creates a significant demand for liquidity.
There are a number of ways to meet this demand:
- Being selective in which products / L2’s we wish to support.
- BD efforts to get LM from the AMM’s
- Use of concentrated AMM pools.
- Use of order book exchanges (e.g. ZigZag on zkSync, dYdX on StarkEx) which are viable on low cost L2s and provide a further improvement in capital efficiency
Fractionalized liquidity may not be a long-term problem as StarkWare has written about potential solutions regarding shared liquidity across rollups, but the technology is not presently available, and there is no timetable for its arrival.
Current Modeling For (Some) Launched Products
Current Products | EI Gas Req. | TAC% | ETH-Side Liquidity | Total Baseline Liquidity |
DPI |
2,597,100 |
2.00% |
1351 |
$10,807,098 |
MVI |
2,110,377 |
2.00% |
1110 |
$8,881,441 |
BED |
433,385 |
2.00% |
298 |
$2,381,500 |
DATA |
1,185,661 |
2.00% |
655 |
$5,237,187 |
ETH2x-FLI |
300,000 |
2.00% |
249 |
$1,988,018 |
BTC2x-FLI |
300,000 |
2.00% |
249 |
$1,988,018 |
$31,283,263 |
Total Baseline Liquidity
We call the liquidity necessary for x * y = k pools Total Baseline Liquidity. In effect, it’s the maximum amount of L1 Liquidity that we need. Concentrated pools will reduce the amount of liquidity required, but in theory, we should never need more than the total baseline liquidity. The variables which affect total baseline liquidity are:
- Target Access Cost Percentage (TAC%)
- Gas Price in gwei
- ETH Price in USD
- Exchange Issuance Gas Required (See Appendix)
Total Access Cost Percentage
We targeted a 2% maximum TAC% for each product which is an arbitrary amount, but we believe it strikes a nice balance between liquidity requirements for the Index Coop and costs imposed on the customer. The TAC% is a non-linear variable. Holding everything else constant, reducing the TAC% from 2% to 1% would increase total baseline liquidity from $31M to $125M, approximately a ~4x increase. Alternatively, increasing the TAC% from 2% to 3% would decrease it from $31M to $14M.
A quick way to think about how changing the TAC% will influence liquidity required is that doubling the TAC% will reduce the liquidity requirement by 4x, and halving the TAC% will increase liquidity requirements by 4x.
Improving Capital Efficiency
Thus far, we’ve been speaking in terms of Uni V2 liquidity. This is a useful baseline, but is clearly no longer the cutting edge of capital-efficient liquidity deployment methods. For a more in-depth analysis of different, more capital efficient strategies, see this doc here. The Liquidity Pod intends to develop the expertise required to evaluate different options and balance capital efficiency vs portfolio risk while supporting our products.
Conclusions
The ability to offer deep liquidity on our products is currently a key advantage that Index Coop has over competitors. It allows us to launch more products with a better user experience. This “moat” will dry up with the ability to do exchange issuance on Layer 2. As we have shown, the gas cost of exchange issuance directly impacts the amount of liquidity that is required. But, as we have also shown, underlying liquidity is also an important consideration. If you can’t get access to the underlying liquidity, then you will be unable to issue on a low-cost execution rollup, and therefore there will be a dead spot in the market where large buyers are unable to access the product.
Hopefully it is clear that liquidity management is one of the most mission-critical operations of the Index Coop business. Over-incentivizing liquidity results in excessive spending and a negative return on investment. Under-incentivizing liquidity results in market dead spots and a loss of potential revenue and adoption.
Because of the lack of underlying liquidity in low-cost execution environments (i.e., L2s), it is necessary to put an emphasis and focus on liquidity management to preserve the treasury, maintain a positive brand image, and enable all market participants to access our products. In addition, the harmonic liquidity strategy should allow us to launch and support more products.
Appendix
Appendix 1 - Case Study - Overspending on DPI Liquidity Mining Rewards
In the first year of Index Coop’s existence, over $5.4M was spent on liquidity mining, but we only had $2.55M in revenue. Obviously, this is not sustainable.
There are several issues with liquidity mining. First, liquidity mining attracts temporary mercenary capital, and that liquidity is rented, not owned. In liquidity mining campaigns, the liquidity will leave as soon as the rewards dry up. Liquidity mining rewards are interest-payments for borrowing capital.
Not only will the lack of liquidity create a poor experience for our customers, but liquidity miners can cause significant sell pressure on the $INDEX token, while providing no benefits to our customers.
For example, on May 14, 2021, DPI had $98M in the Uniswap v2 DPI/ETH Pool, while running a liquidity mining program is arguably evidence of over-incentivization.
According to our research, this level of liquidity would have made it possible to facilitate a $479,000 trade on Uniswap v2 for less than 2% price impact. However, at that time, we only needed liquidity to facilitate a $87,000 trade. Beyond that amount, the investor could do exchange issuance to mint the DPI.
The $2M+ spent in April/May 2021 was used to rent millions in liquidity that was only a marginal benefit for large buyers who could now access DPI via Uniswap v2 as opposed to exchange issuance.
The chart above analyzes the liquidity of the DPI / ETH Uniswap v2 pool over time. Interestingly, the orange line for “missing liquidity” is almost always negative, meaning that for a price impact of 2% we almost always have too much liquidity.
This is only problematic when the liquidity is incentivized. A negative orange line _because _of incentivization is bad because it is a poor allocation of capital. A negative orange line _in spite _of a lack of incentives is a good sign. It means that LPs are willing to provide liquidity to a high volume pool. Index Coop can be more aggressive with the Target Access Cost on these types of pools.
We needed a methodology to target specific liquidity requirements for each product, such that we could serve the entire spectrum of customers from individuals with little capital to institutional investors. With that, we’d be able to avoid our past missteps of using the Index Coop’s capital in sub-optimal allocation.
Appendix 2 - Estimating Exchange Issuance Gas Cost
Exchange Issuance Gas is reasonably consistent over time, as shown below in the Exchange Issuance Gas Used Dune Query. The amount of gas used is primarily a function of the number of underlying assets in the index. So, BED, which only contains three tokens, is much less expensive to do exchange issuance than DPI, which currently has 18 components.
For our estimation of total baseline liquidity, we use the last known Exchange Issuance Gas Cost in wei. The exception was for ETH2x-FLI and BTC2x-FLI, which do not have an exchange issuance feature. EWG is working on building a similar module for debt issuance. We do not know how much gas this will consume, but we expect it to be efficient and estimate 300,000 wei.