Welcome to Deep Dive!This week we take another look at just-in-time liquidity, a little-studied phenomenon that has generated $750bn in liquidity event volume on Uniswap V3 this year.
Beneath the Surface of Uniswap V3 Pools: Just-in-Time Liquidity Revisited
Back in February I wrote about a relatively under-researched phenomenon: just-in-time (JIT) liquidity. I recommendreading that first for more context on this subject, as this will build upon the concepts in that piece and dive a bit deeper. For those in a rush, below is a brief explanation of how JIT works.
Imagine there is $1,000 of liquidity concentrated in a $0.01 price range. As a liquidity provider (LP), I see that someone has submitted a swap of $100 worth of token x for token y, which will incur a fee of $1. Within the same block, I add $9,000 of liquidity ($4,500 of each token) in that small range, which now represents 90% of liquidity in the range. This means I will receive 90% of the $1 fee, leaving the passive LPs with just 10 cents compared to my 90 cents. I then remove my deposited liquidity, albeit with a slightly different token makeup; now I have $4,501 of token x and $4,499 of token y (this breakdown depends on how much price moved), plus fees earned, less gas fees and MEV cost.
Below is how it looks in practice, showing a few hours of liquidity events in the largest Uniswap V3 wETH-USDC pool:
JIT transactions are colored in orange, while regular transactions are in blue. The crosshairs represent a mint and burn of the same USD value in the same block. It’s immediately clear that JIT transactions are significantly larger than regular transactions, generally with a minimum size of $10mn. Note the small orange dot just a bit after 3pm; this was an unusual JIT transaction because it is both much smaller and uses a wider price range (2 ticks instead of 1), allowing for more impermanent loss. Having looked at some of these smaller transactions, it appears that many of them are tests of new JIT strategies.
Impermanent Loss
Despite JIT transactions necessarily occurring in a single block, they are still subject to impermanent loss, albeit on a much shorter timeframe than we’re used to. An interesting pattern also emerges when looking at how the wallets are conducting transactions; all of the top wallets have opted to use strategies that prioritize ending a transaction with more ETH at the expense of USDC.
The top wallet – which I’ll detail more in the next section – net 50k ETH and lost 100mn USDC in the span of five months, not including the swap fees it earned. Essentially, JIT LPs strongly prefer to receive more of the volatile asset at the expense of the stable asset, meaning they also prefer to operate in blocks where ETH’s price is decreasing; as ETH’s price falls LPs hold relatively more ETH and less USDC.
Using this we can estimate the wallet’s non-fee profits by taking the difference between the amount a wallet mints and burns (for example, minting 100 USDC and 0.1 ETH and burning 90 USDC and 0.11 ETH, netting -10 USDC and 0.01 ETH) and then applying cross prices to the results. Below is the distribution of JIT transactions in the main Uniswap V3 wETH-USDC pool by quarter.
The vast majority of JIT transactions are clustered between $20mn and $40mn (there are also the small test transactions I mentioned earlier), earning very minimal non-fee profits; it’s quite rare for a JIT transaction to profit more than $5k. However, as another paper found, for JIT LPs these “portfolio change” profits often contribute more to JIT LP income than fees do.
Thus, JIT LPs are only able to effectively manage risk and operate in pools that contain a stablecoin like USDC. I had assumed that JIT LPs would be extremely active during USDC’s depeg, one of the highest volume days of the year with plenty of opportunities to earn swap fees. Instead, it was the one of lowest JIT volume days of the year at under $75mn, compared to $3.5bn the day before. It was also one of the few days of the year when non-JIT volume was higher than JIT volume as regular LPs rushed to cut their exposure to USDC.
As USDC fell below $0.90, JIT LPs stepped to the sidelines because they were no longer able to effectively manage their portfolio changes.
Participants
The other striking takeaway from this chart above is how sharply total JIT volume fell when the top wallet exited the market. This wallet did $100bn in event volume and was only active from January to the end of April. On May 5, just a few days after its departure, there was just $600k JIT volume. It took more than two months for daily JIT volume to break the $2bn level again.
Given the high capital requirements and low ROI, the market has few participants and is dominated by even fewer. This year, the top 25 wallets have accounted for $740bn of the $760bn in liquidity event volume in Uniswap V3 wETH-USDC pools, nearly all of which has been in the 0.05% fee pool [1]. The top five accounted for nearly $300bn.
Below is the running sum of liquidity event volume from May 1 onwards, showing that for nearly a month there was relatively little activity before a few different wallets started to surge in June.
These wallets began to tail off in July only to be replaced by a new wallet that has done $15bn of volume in just three months, though this is still a far cry from 0xdd’s $100bn in five months. It’s possible, maybe even likely given the timing, that these wallets are controlled by a single person or entity.
Conclusion
JIT is complicated, dependent on market conditions, and extremely capital intensive with low ROI. Because of this, it makes sense that there are few JIT LPs and even fewer that operate on a scale to make serious profits; it is also significantly less profitable than some more nefarious MEV strategies like sandwich attacks. Because of this, the JIT market is constantly in flux, totally unseen to the average DeFi user. However, even though JIT is unseen to most, it has important implications for all Uniswap LPs, as JIT LPs siphon away swap fees from static participants, as well as to large traders, for whom JIT LPs provide superior execution.
Highly-granular transaction data from the most liquid decentralized exchanges.
All tick-level mints and burns
Liquidity pool snapshots including all token reserves
Normalized and available through our REST API and CSV files
Kaiko's research newsletter is written by the Kaiko research team: Clara Medalie, Dessislava Aubert, Riyad Carey, and Conor Ryder, CFA. This content is the property of Kaiko, its affiliates and licensors. Any use, reproduction or distribution is permitted only if ownership and source are expressly attributed to Kaiko. This content is for informational purposes only, does not constitute investment advice, and is not intended as an offer or solicitation for the purchase or sale of any financial instrument. For any questions, please email research@kaiko.com.