Unraveling a Puzzle: A Per-Wallet Analysis of ETH/USDC Liquidity on Uniswap V3

32 min readApr 5, 2022

This is the fourth in a series of posts by 0xfbifemboy on the performance of concentrated liquidity.


In a set of prior analyses, we examined the behavior and characteristics of ETH/USDC liquidity providers across three different Uniswap V3 liquidity pools, namely, the Ethereum mainnet 0.3% and 0.05% fee pools as well as the Polygon 0.05% fee pool. We showed that although the behavior of liquidity providers conformed to rational expectations to some degree, such as with regard to the relative concentration of liquidity across the 0.05% and 0.3% mainnet pools, there nevertheless remained substantial room for improvement. For example, approximately half of all liquidity positions, representing 20–30% of TVL, were generally out of range at any given time, suggesting that active management of liquidity positions could allow liquidity providers to realize superior returns.

The totality of our prior work focused on generating per-position statistics. However, in practice, positions are not created in isolation; rather, individual users may mint one or multiple liquidity positions, and these positions may form part of a rational strategy to maximize returns on capital. In this analysis, we develop a careful strategy to aggregate and analyze the returns of liquidity positions on a per-user (precisely, per-wallet) basis, with a view toward understanding what metrics, if any, relate to a given user’s likelihood of generating profits (i.e., accruing trading fees in excess of impermanent losses).

After adjusting each user’s returns for the amount of capital deployed and the duration of time over which capital was deployed, we find that the distribution of normalized profits has a fascinating shape. In particular, it is very long-tailed, and the users at the extremes of both tails display similar behaviors: minting many positions, with large size, to narrow price ranges (below $100), and then burning these positions within the span of 1–2 days. Due to the short time duration, these positions appear as both extraordinarily profitable or unprofitable with our duration-normalized profitability metric. The exact intentions of these users are unclear; however, in general, they seem to be using Uniswap V3 liquidity positions as limit orders, which may in turn be part of a more complex on-chain trading strategy. Overall, we find that prevalence of this limit order-like behavior is remarkably high, which emphasizes the similarity between concentrated liquidity AMMs and traditional limit order books.

We also show that beyond this small subset of (potentially) highly efficient users, the overall profitability of liquidity providers is low. Strikingly, no factors analyzed herein show a clear relationship to per-user profitability. These results highlight the inevitable liquidity crisis approaching decentralized finance should Uniswap V3 continue to remain the dominant model for liquidity provisioning. At the same time, however, the lack of clear dominance by a small number of actors clearly distinguishes Uniswap V3 from traditional order book models; despite the theoretical resemblance of providing concentrated liquidity to providing bid/ask liquidity at varying depths, the lack of standout dominance by a handful of professional market makers is a striking demonstration of the benefits of AMMs over CLOBs. There is certainly a pressing need for the development of novel DEX systems with fundamental improvements to the Uniswap V3 model of concentrated liquidity; however, as those are built, it is plausible that we will see a far broader accrual of LP profits than we would if cryptoeconomic systems relied wholly upon order books in the future.

Dataset generation

Aggregation of liquidity positions across multiple wallets is inherently more complex than analyzing liquidity positions individually. As such, it is particularly important for us to carefully define the scope of our analysis.

First, we begin with a dataset of 50,331 liquidity positions across three Uniswap V3 liquidity pools: 23,371 on the Ethereum mainnet 0.3% pool, 12,291 on the Ethereum mainnet 0.05% pool, and 14,669 on the Polygon 0.05% pool, opened as early as May 4th, 2021 and as late as March 22nd, 2022. Each of these positions is minted by interaction with a contract address. Examining the contracts used to mint positions, we see that 88.6% of these positions are minted via interaction with 0xC36442b4a4522E871399CD717aBDD847Ab11FE88 (across both Ethereum mainnet and Polygon), which is the contract address for the Uniswap V3 positions NFT. These positions plausibly represent 'normal' liquidity minters, whereas the remaining 11.4% of positions includes more complex use cases such as just-in-time (JIT) liquidity, vault managers that automatically adjust many different users' positions, etc.

The basic goal of this analysis is to identify patterns in the behaviors of liquidity providers which relate to their profitability, which motivates the exclusion of these more ‘unusual’ types of liquidity positions in the remaining 11.4%, as they may skew the dataset in ways that are difficult to retroactively disentangle. In particular, suppose we define the following inclusion criteria for liquidity providers:

  • Minted via interaction with 0xC36442b4a4522E871399CD717aBDD847Ab11FE88
  • Either the position is still open or, if it was closed, remained open for at least 10 blocks
  • Minted at least 1 day ago (relative to the most recent time time recorded in the dataset)

Specifying that liquidity positions must meet all three inclusion criteria limits us to 87.4% of our dataset of liquidity positions.

One problem immediately arises from the first two inclusion criteria. Addresses may mint multiple liquidity positions which both meet and fail these inclusion criteria; when aggregating on a per-wallet basis, only a subset of their liquidity positions will be included, which may again skew the resulting data in complex ways. (It is reasonable to ignore the third inclusion criterion here; addresses which have older positions should not be disqualified from analysis on the basis of having minted a single recent position within the last 24 hours.) Thankfully, these addresses only constitute a minority of all addresses from which liquidity positions were minted:

As one might naturally expect, most addresses only mint positions which all meet or fail those inclusion criteria. In particular, 10,361 addresses in our dataset are found to only mint liquidity positions which satisfy our first two inclusion criteria. Including only these addresses, and restricting consideration to liquidity positions satisfying the third inclusion criterion, yields a dataset of 38,825 liquidity positions (77.1% of the total dataset of liquidity positions).

We apply one additional filtering step. Occasionally, users create very small liquidity positions “by accident,” quickly close them afterward, and never mint another position; for example, they may wish to only briefly test the Uniswap V3 position functionality. These users are relatively uninformative and add additional noise into the dataset. We therefore exclude wallets from which only one liquidity position was minted and where the minted liquidity position was closed after a single day, leaving us with 9,811 users collectively managing 38,175 liquidity positions. Note that all of the positions removed via this criterion had total market values of under $1,000, supporting their classification as ignorable ‘test’ positions. Moving forward, we restrict all further analysis to this final, cleaned set of addresses and liquidity positions.

Basic observations

Having defined the basic scope of our analysis, we are in a position to begin to make simple observations on a per-wallet basis. First, we assume that it is appropriate to aggregate liquidity positions on the basis of the address from which the minting transaction originated. While this may not be a perfect assumption, as individual people may move funds between wallets or control wallets without discernible on-chain links, the deduplication of linked addresses would add yet another layer of complexity onto this analysis. As a result, we move forward with this assumption for the time being.

The provision of ample liquidity is a cornerstone of decentralized finance. As such, it is highly desirable for the number of liquidity providers to increase over time; stagnation in the number of liquidity providers would be concerning insofar as it might represent the failure of decentralized finance to scale past a limited number of initial participants. Previously, we noted that the amount of capital locked into Uniswap’s ETH/USDC pools increased over time. However, because prior analyses were performed at the per-position level, it is unclear if that represented an increase in the number of distinct liquidity providers or merely the entrance of additional capital via existing participants.

After aggregating at the level of unique wallets, we see that the cumulative number of known ETH/USDC liquidity providers increases steadily over time:

Even during the last several months of market turmoil, we see a fairly steady increase in the number of unique wallets observed in the pool’s history, perhaps representing a desire to capitalize on a “crab market”-like price movement by capturing trading fees without excessive IL. Although this does not account for participants ‘dropping out’ from providing liquidity, it is nevertheless heartening to see a consistent uptrend in LP interest over the course of nearly an entire year.

To what extent do liquidity providers actively manage and adjust their positions? Even in our limited dataset, we observe a very long-tailed distribution of the number of liquidity positions minted by each address:

Although 52.9% of wallets are only observed to mint a single position and 86.2% of wallets mint 5 or fewer positions, we nevertheless identify a small number of ‘power users,’ with 0.19% of wallets minting 100 or more liquidity positions.

In previous analyses, we observed that user behavior varies depending on the fee tier or chain to which positions are minted. To further explore these phenomena, we classified users into five different types based on where they minted their positions: (1) mainnet 0.3% exclusive, (2) mainnet 0.05% exclusive, (3) mainnet 0.3% and 0.05%, (4) Polygon 0.05% exclusive, or (5) mainnet and Polygon. The distribution of users across these five categories is shown below:

Notably, the majority of wallets only mint positions to the mainnet 0.3% pool, which is consistent with that pool having a significantly higher TVL than the mainnet 0.05% pool. Although there is some propensity for users to spread their positions across both mainnet pools, cross-chain (mainnet + Polygon) activity is relatively less common.

Examining the distribution of ‘user types’ among power users with 100 or more positions minted is also informative:

It is immediately evident that the plurality of these users restrict their activity solely to Polygon, plausibly because transaction fees on Polygon are much lower than on mainnet. However, a substantial fraction of these users also provide liquidity across both fee tiers on Ethereum mainnet, whereas very few restrict themselves to a single Mainnet fee tier alone. This suggests that for these highly active users, there is at least some degree of active consideration of the relative benefits of each fee tier as well as some comparative decision being made in order to decide which one to use at a given time. Ultimately, however, there is no particular reason why a user who mints multiple liquidity positions, even if the number of positions is as low as 2, should necessarily have a preference for minting to one, rather than multiple, pools (as the transaction fee does not vary based on which mainnet pool a user mints to); as such, novel DEX systems that more appropriately guide users to distribute positions across fee tiers in accordance to their a priori beliefs about market volatility or which merge multiple fee tiers into unified systems may result in greater market efficiency and LP profitability.

We have also previously noted that larger positions are more likely to be in range, implying that wealthier users have a greater tendency toward effective active management of liquidity. However, users may spread out wealth over multiple liquidity positions rather than simply minting a single large position. With our newly aggregated dataset, we can directly examine the behavior of wealthy users, which includes both users managing a small number of large positions as well as users managing a large number of smaller positions. First, we study the extent to which wealth is distributed across different user types (as previously defined). To do so, we take the value of each wallet’s liquidity position (in USD), multiply it by the duration of time by which that liquidity position remained open, and sum up this metric on a per-wallet basis (median plotted as vertical black line):

Note that this metric is not a perfect representation of a wallet’s overall wealth. For example, it does not distinguish between a user who opens and closes two positions of identical size and duration in sequence and a user who does so in parallel. Although both users are deploying identical overall amounts of capital, the first user requires a lesser amount of upfront capital than the second. That being said, however, it generally appears that Polygon-only users are deploying less capital than average, whereas multi-chain or multi-fee tier users are deploying more capital than average. This is consistent with expectations: we know that Polygon’s transaction fees are much lower than usual, which should generally attract users with lower amounts of total wealth, whereas active management of positions across one or especially multiple mainnet liquidity pools is relatively more capital-intensive.

The correlative trend of overall wealth with more active management is also reflected in a plot of value times duration against the number of total positions minted by each wallet:

Generally speaking, wallets which mint more liquidity positions are managing larger amounts of capital over longer durations of time. It is particularly clear from the above plot that as a wallet’s tendency to manage more positions increases, their tendency to restrict capital to a single pool (particularly the mainnet 0.3% pool) decreases. Additionally, this trend persists within both mainnet-only and Polygon-only users, although for any given number of liquidity positions minted, the corresponding Polygon users tend to be managing less liquidity than the corresponding mainnet users.

Another fascinating observation is that as the number of liquidity positions minted increases, the lower bound of the value-times-duration metric increases quickly, whereas its upper bound stays relatively flat. This reflects the fact that it is easy to manage a large amount of liquidity across very few positions, whereas it is infeasible to manage a small amount of liquidity across very many positions. In other words, even at high levels of overall wealth, there is a significant user population which opts for a relatively simple approach (minting only a handful of positions and refraining from active burning and re-minting). These users might stand to benefit substantially from the introduction of new DEXes which simplify management of concentrated liquidity, allowing them to derive higher returns on their sizeable capital with low marginal investment of additional effort.

Beyond observing that users who mint more positions manage more capital overall, we also find that they manage more capital on a per-position basis:

However, although the overall trend is for the per-position value-times-duration to increase as the number of total positions minted increases, it is notable that the upper bound of the per-position value-times-duration modestly but noticeably decreases with the number of total positions. Although the meaning of this observation is for now somewhat ambiguous, one reasonable interpretation would be that extremely active liquidity managers prefer to mint new positions rather than deploy marginal capital into existing positions.

We can gain further insight about the behavior of active liquidity managers by observing the range of their positions. Previously, we observed that a large number of liquidity positions tended to go out of range, suggesting that users were setting the range of their liquidity positions to overly narrow values. To analyze this phenomenon on a per-wallet basis, we calculated the average range of each position that a given user minted, weighting each position (relative to other positions minted by the same user) by its total dollar value. The same pattern of ‘convergence’ of lower and upper bounds with increasing number of positions minted that we previously saw is again reflected in this metric:

Users who only mint one liquidity position overwhelmingly tend to mint it to the mainnet 0.3% pool with a relatively wide range. Unsurprisingly, users who mint more positions (reflecting more active management over time or expressing a desire to have a nuanced distribution of liquidity over different prices) generally prefer a more narrow range, which results in greater capital efficiency. However, what is most notable is that the variance of the range decreases as the number of positions minted increases. This suggests that very active liquidity minters are minting with a range narrower than that of the single-position minter who wishes to lazily capture trading fees across a very wide price range but with a range broader than that of inexperienced liquidity providers who rapidly go out of position. (Note that in our calculation of average position range, we weighted by value and not by value-times-duration as there is a natural relationship between position duration and range, where users who intend to keep a liquidity position around for a short period of time will set a lower range than those who intend to let them stay untouched for much longer.)

Impermanent loss vs. fees

The findings thus far provide ample context for the overall dataset of liquidity positions and users. Additionally, they reinforce the results of prior analyses and are highly informative with regard to differentiating the behavior of passive vs. active liquidity managers. However, ultimately, they do not address the central question of this analysis: what differentiates a profitable liquidity provider from an unprofitable liquidity provider?

To determine per-user profit, we need to first determine per-position profit. We define profit as the difference of accrued fees vs. impermanent loss. To approximate accrued fees across all positions, we assume that all fees generated within each time interval (1 hour) are split pro-rata across positions active relative to the mean price in that time interval and with respect to the amount of virtual liquidity in each position. (Although fees are exactly calculable given a full history of liquidity adjustments and swaps, summarizing the data into hourly timepoints allows for greater simplicity of calculation, although at the cost of some precision. When both estimated and precise fees are available, we use the lower of the two, as a mildly pessimistic estimate.) To calculate impermanent loss, we define a time period over which IL is measured, which begins at the block that each position was opened and ends either at its closing block or, if the position is not closed, throughout all future timepoints in the dataset. Impermanent loss is then defined as the difference between the hypothetical USD value of the portfolio if all tokens added as liquidity had instead been held until the end of the IL evaluation period and the actual USD value of the position based on its USDC and ETH token quantities at the end of the evaluation period, in both cases converting ETH token quantities to a USD value based on the closest known price.

The distribution of accrued fees across individual liquidity positions, divided by the total value of the position, is shown below (positions with value under $1,000 excluded to avoid numerical problems with imprecision of calculation):

We see that although the majority of positions collect relatively little in fees, there is a long tail of positions which have exceptional fee collection ability. The extension of the abscissa to a value of 1 does not indicate that there are positions which have a >100% return in fees; rather, the axis has been extended for ease of comparison with impermanent losses, which are similarly graphed below as a fraction of total position value:

Comparing the two plots side-by-side, it becomes apparent that the total amount of fees collected is slightly lower than the total amount of impermanent loss. In other words, the fees collected are not, in general, sufficient to outbalance the impermanent losses suffered by the liquidity positions. However, this does not directly imply that all positions are at a loss; the exact distribution of profits depends on how losses are matched against gains. Subtracting each position’s impermanent loss from its accrued fees, we see that the distribution of normalized profits has a median very slightly below zero:

In particular, only 48.6% of positions appear to be profitable. Given the limits of the data as well as the difficulties in precisely estimating gains and losses, this result suggests that the profitability of a given liquidity position is generally randomly distributed around zero. Notably, the distribution here has, again, very long tails; while the vast majority of liquidity positions are relatively neutral in profit, a small number have suffered extreme losses or are in tremendous profit.

This sets the stage for us to aggregate profits on a per-wallet basis. First, for each liquidity position, we divide its profits by the USD value of the position as well as the duration of time that the position was open. Again, the motivation here is that we are interested in cases where profits are earned by a highly skilled operator, rather than through inefficient use of high quantities of capital or by simply leaving a position open long enough by pure chance. To aggregate this adjusted profit value on a per-wallet basis, we take the weighted mean of these adjusted profit values across all positions that a wallet opened, where the weight of each position is the product of its USD value and the duration of time that it was open. Here, we are taking the weighted mean to reflect the intuitive assumption that if a user opens a 1 USD position, that should affect the aggregated value much less than a 1,000,000 USD position, or that if a user leaves a position open for 1 second, that should affect the aggregated value much less than a 1-year-old position. In sum, to calculate a metric which we call a user’s normalized profit, we divide each position’s profit by value and duration and then take the weighted mean using value times duration as the weight of each position. The distribution of normalized profits is plotted below:

Note that this distribution is very long-tailed (the abscissa has been arbitrarily truncated to show the shape of distribution closer to 0) and that, as with the per-position analysis, the typical position is very close to zero normalized profitability. (To be precise, 54.2% of users appear to be in the red based on this metric.) Again, the roughly symmetric distribution of normalized profits around zero suggests that the majority of users experience a profitability which is effectively randomly sampled from a distribution centered at or very close to zero.

Is it surprising that returns for ETH/USDC liquidity providers are so narrowly centered around zero? Perhaps not. We know that there are conditions in which liquidity providers can make money; however, as competition for a fixed amount of organic volume dominates, the marginal addition of additional liquidity may both dilute returns of the preexisting liquidity and invite additional toxic flow from arbitrageurs. As such, one plausible explanation for why the distribution of profits across wallets is so dismal is that liquidity is currently oversupplied to the ETH/USDC liquidity pools on Uniswap V3. Unfortunately, there is currently no easy way for users to determine whether liquidity is oversupplied or to make easy comparisons of LP profitability across different pools and token pairs, which is perhaps a contributing factor to this problem.

To further characterize our metric of normalized profits, recall from the previous section that several per-wallet statistics were observed to vary substantially with the number of positions minted. How does normalized profit vary with the number of positions minted?

As the number of minted positions increases, normalized profits remain roughly centered around zero; however, as the number of positions minted increases beyond 50, the dispersion of normalized profits increases dramatically. Broadly speaking, if all position returns are sampled from the same distribution, we would expect the variance of per-user returns to monotonically reduce as the number of minted positions increases. As such, it is plausible that these users with abnormally high position counts and magnitude of normalized returns may reflect users who are attempting to implement more complex strategies and whose returns are therefore no longer being sampled from the same distribution as those of other users.

Notably, we see effectively no relationship between number of positions minted and overall, per-user profitability. This is perhaps in contrary to expectations: one might have believed that users who mint more positions are operating based on some rational strategy and would hence display substantially greater profitability.

Can we gain any further information by examining the ‘abnormal’ users with high position counts and with very high magnitude of normalized profits? As before, we can examine the weighted mean of the ranges of each user’s liquidity positions (weighting by the dollar value of each position). Plotting normalized profits against each user’s average position range reveals a striking trend:

(The above plot is truncated to exclude positions with extremely high ranges, which are effectively providing ambient liquidity.) In general, all of the positions with very high magnitude of normalized returns are minted to a very small range, typically below 100 USD! This phenomenon is particularly evident if we highlight the top and bottom 200 users in terms of normalized returns in the distribution of average position range:

Beyond our observations about this set of users with somewhat abnormal behavior, it is particularly notable that there is apparently very little relationship between a user’s propensity to set wide or narrow position ranges and profitability! We know that positions frequently go out of range, which suggests that users are not setting appropriately wide ranges and miss out on capturing trading fees; however, even if they do, it appears that their (normalized) returns are tightly distributed around zero. Ultimately, setting an appropriate position range appears to be a necessary, but not sufficient, condition for being a profitable liquidity provider.

If some users are minting their positions to very narrow ranges, are they also closing out their positions after short time intervals? After all, if the price of ETH moves out of range, their capital is left unproductive and fails to capture trading fees. To study this, we can again take the mean of the duration of time that each user leaves their positions open, weighting by the dollar value of each position. Below is a plot of normalized profits against average position duration:

The users with high absolute levels of normalized profits clearly close out their positions very rapidly! Beyond that, however, we also observe that there is no clear relationship between position duration and profitability, much like with position range. Indeed, if we ‘zoom in’ a little bit, it almost appears as though there is a slight tendency toward unprofitability as average position duration increases:

This finding is consistent with simple theoretical models of prices as random walks, which generally predict that a user cannot overcome impermanent loss by simply leaving their position open sufficiently long until the price fortuitously returns to their starting point.

To further examine the abnormal set of high-variance users, we can examine their placement in the distribution of average position durations:

Clearly, the top and bottom 200 users generally mint and burn positions within very short durations of time, seldom leaving them open for more than 1 day! Such a high level of active management also leads one to wonder: where are users minting these positions? Extremely active minting and burning of liquidity positions leads to the consumption of high amounts of gas, resulting in potentially very high costs if performed on Ethereum mainnet. Again as expected, the distribution of user types (as previously defined) among the top and bottom 200 users reflects enormous overrepresentation among Polygon-specific users:

Recall in particular that the distribution of user types among all users showed that the majority of users only minted positions to the Ethereum mainnet 0.3% pool, which is a stark departure from the distribution of activity among the top and bottom 200 users by normalized profits!

Limit orders via Uniswap V3 positions

Exactly what are these users (with abnormally high magnitude of normalized returns, very narrow position ranges, and short position durations) doing? One distinct possibility is that users are essentially using narrow Uniswap V3 positions as rough approximations of limit orders. On the one hand, this is not a true limit order, as the user suffers impermanent loss proportional to the width of the position and the ‘limit order’ may be effectively reversed if the price is sufficiently variable. On the other hand, if the price oscillates within the narrow position range, the user generates substantial trading fees, which may outweigh impermanent loss. As such, implementation of limit orders via Uniswap V3 positions may arguably be superior to standard on-chain limit orders through DEX aggregators in the right circumstances. Ultimately, it is difficult to know users’ intentions. However, if a position is profitable as a liquidity position independent of the user’s overall trading strategy or intended purpose, it is still valuable as a model for understanding what factors relate to overall LP profitability.

Overall, the number of liquidity positions which resemble limit orders is strikingly high. Suppose that we call a liquidity position “limit-like” if it fulfills all of the following criteria: (1) the position was explicitly known to be closed; (2) the position was closed within 2 days of being opened; (3) the range of the position is under 100 USD; finally, (4) the market value of the position is over $1,000. Among 44,838 positions in the dataset with known closing transactions, 9,940, or a full 22.2%, exhibit “limit-like” characteristics.

Although somewhat tautological given that we used the lifespan of a liquidity position as one of our inclusion criteria for a position being “limit-like,” we nevertheless see that these positions are closed much sooner on average than the typical liquidity position:

Additionally, if users are using these liquidity positions as effective limit orders, we should expect to see users burn the liquidity positions quickly after they go out of range. Otherwise, if the price action reverses, the price can move back through their limit order, leaving them in the same place where they started. Looking at the distribution of time elapsed between the last time a position was active and when the position is explicitly closed, it appears this is indeed the case with these “limit-like” positions:

Arguably, this metric is partially confounded with the short absolute durations of the “limit-like” positions; that is to say, even if they close out their positions sooner after they go out of range than typical, they may not do so with notable speed relative to the set of liquidity positions which have comparable overall lifespans. However, this is a somewhat subtle point, and it is unclear if one should naturally expect “limit-like” positions to be closed after going out of range with higher-than-average speed after correcting for overall lifespan (as people who close out positions quickly in general may be keeping a close eye on their positions regardless of whether they are using them in “limit-like” ways).

Finally, we expect that users who are setting limit orders via Uniswap V3 positions will typically mint their positions out of range. This is not a strict necessity; for example, a user with both USDC and ETH in hand could still express a desire to limit sell their ETH with an in-range position minted with both tokens; however, if the desired limit price is far enough from the desired market price, the position will be most efficient if minted out of range, as otherwise the ‘slippage’ of impermanent loss will make this limit order strictly inferior to a standard implementation on, say, 1inch. We do see, as expected, that “limit-like” orders are much more likely than average to be minted out of range:

Curiously, although we identified nearly 10,000 “limit-like” positions in our dataset, a large proportion of these are generated by a small number of users. Suppose we define heavy users of “limit-like” positions as users who (1) close their positions within 2 days on average, (2) mint their positions to an average range below $100, (3) have minted over 10 positions overall, and (4) have minted positions with a total value over $10,000. This identifies merely 69 users, or 0.67% of the users in our dataset; however, they have collectively minted 3,322 liquidity positions for an average of 48.1 liquidity positions per user. Among these 69 users, the majority of them are, for some reason, active only on Polygon:

Ultimately, it does appear that a sizable fraction of users are effectively minting liquidity positions in ways that correspond to traditional limit orders. Perhaps the dichotomy between AMMs and traditional limit order books is not so great as typically imagined!

Case studies

Our results thus far paint a picture of liquidity provision where the vast majority of liquidity providers have profits which are essentially randomly distributed around zero. If it is at all possible to distinguish highly skilled liquidity providers, the way to do so would be to examine the most, as well as the the least. profitable users in the entire dataset.

In terms of normalized profits, the user in rank #1 is 0xC58EB5D56cDfD4aB3ed81D3C8df3522d232d064A, who has minted 203 liquidity positions on Polygon with a (value-weighted) average range of 36 dollars and which they keep open for an (value-weighted) average of 0.09 days! What is particularly notable is that only 10% of their positions are minted in range, suggesting that they are using concentrated liquidity positions in a limit-order like fashion.

The wallet in rank #1 was first funded 97 days ago. However, curiously, it has been inactive for the last month or so. However, if we examine the last transactions they made, we can see that they were in fact transferring all funds to a new wallet:

Indeed, they seem to have moved all funds to 0x24C993cB4F3345395471869B3f1a4281fb237Ad0, who as of the time of this article's writing has an impressive array of 24 open Uniswap V3 liquidity positions. Interestingly, this new address appears in the dataset as being net unprofitable; however, the dataset only includes 10 of their liquidity positions, and closer examination of their transaction log suggests that they only began to resume liquidity position management in earnest several days ago (after the bulk of the data was retrieved).

Curiously, the original address, 0xC58EB5D56cDfD4aB3ed81D3C8df3522d232d064A, seems to have minted positions within nearly every hour of the day:

Although there is a relative period of inactivity within the day, there are nevertheless positions minted within that period; as such, it is not immediately obvious whether this distribution of activity reflects an unusual sleep pattern or is simply the result of automated computations.

The user in rank #2, 0xBB6E61C95E06AfC212ad68de9d99a07aA66afb98, is mysteriously similar, having minted 73 positions to Polygon with an average range of $37 and keeping them open for an average of 0.9 days on average. Curiously, they mint approximately 40% of their positions in range; while this is not strictly incompatible with an interpretation of their actions as using Uniswap V3 positions as limit orders, it does somewhat complicate the overall picture. They also went inactive 76 days ago, after which they transferred all their assets to 0xA0aFbE834c88b7d978a785703104D9a63adb27BF:

This address is ranked 130 by normalized profits (across 29 liquidity positions, including some on mainnet)! And it, in turn, went inactive 74 days ago, moving all its assets to 0xF3f79f566f81917ecF2B9914A02799D6292738d0:

0xF3f79f566f81917ecF2B9914A02799D6292738d0 is, in contrast to the prior addresses, currently unprofitable.

The overall pattern of activity across all of these addresses so far — broadly favoring minting positions to Polygon, generally tending to perform well, and liable to suddenly transfer all of their assets to other wallets and go inactive — may be merely part of a larger web of addresses, all acting according to some sort of coordinated scheme. That being said, the pattern of hourly activity for the #2 user is fairly different from that observed for the #1 user:

Overall, can we say that users #1 and #2 are profitable due to an abundance of skill? Sadly, it would be challenging to make the argument convincingly. Their overall profits are estimated as being on the order of $4.2k and $1.5k, which seems remarkably low relative to the effort expended if they were indeed trying to profit by way of supplying liquidity. Furthermore, one observes users with similar characteristics if one looks at the least profitable users. For example, the user with the lowest normalized profit, 0xFFEb81828651c3bBc6f030a76Aa40fD644aB570A, has minted 66 Polygon liquidity positions with an average range of $5 and an average duration of 0.016 days, consistent with a model where the high magnitude of normalized profits are simply an artifact of the abnormally low duration of these limit order-like positions.

What about user #3? In a curious turn of events, 0xC0D9244af044315a1e586B4D569a83De3C4a5cA8 has zero positions minted on Polygon, instead reaping nearly $70,000 in profit across 33 mainnet 0.3% positions and 11 mainnet 0.05% positions. Again, however, this user prefers narrow, short-duration positions, with an average range of $14 and duration of 0.05 days. Additionally, only 9% of the positions minted by this user begin in-range. Somehow, this user has managed to eke out fairly consistent profits:

Examining their liquidity positions manually, we see that, for example, position 102294 was minted with a price range of $2,550 to $2,566 and initial capital of approximately $2 million in Ether. When it was closed one hour later, the user withdrew well over $10k in profit: unbelievable capital efficiency! However, is this a reflection of skill or mere luck? Again, we believe there is insufficient evidence to attribute these results to user ability.

What happens if we instead rank users by unadjusted gross profits? The user with the highest gross profits is 0xB0b0F6F13A5158eB67724282F586a552E75b5728, who minted 7 positions on the Ethereum mainnet 0.3% pool, all of which started in range. These positions have an average range of $1,158 and have been open for an average of 319 days—nearly the entire lifetime of Uniswap V3 itself! If one examines this address's positions more closely, it becomes apparent that this user essentially "set and forgot" extremely large liquidity positions, all of which were initialized at an ETH price fairly close to the current price (weighted mean of $3,475 using position values as weights). As such, this position has had an incredibly large amount of time to collect fees, during most of which the price of ETH was in range, and ultimately has relatively minimal IL relative current prices.

Ultimately, it is highly plausible that this is largely an artifact of current price movement rather than an explicitly anticipated outcome from the user (who I doubt did not expect the price of ETH to remain around $3,000 one entire year into the future). If IL were measured at different timepoints, for example at the peak of ETH prices close to $5,000, the profitability of this position would appear much different.

Broadening our search to the top 20 users in gross profits, it is clear that these users can be cleanly separated into two categories. First, there are 4 users with average position duration below 1 day, all of whom minted exclusively to the Ethereum mainnet liquidity pools. Interestingly, all four of these users are ranked 57 or below in terms of normalized profits, representing high capital and time efficiency as well as high absolute profits. Specifically, these users are:

In a deviation from the behavior of those users at the top of the normalized profits ranking, however, all four of these users minted with fairly wide position ranges (on average: $3,120, $93, $407, and $98 respectively). It is therefore especially unclear to what extent these users intended for their liquidity positions to act in a limit order-like fashion.

The other 16 users in the top 20 by gross profits, in contrast, minted positions which were open for much longer on average (a mean of 87 days across the 16 users) and with much higher ranges (a mean of $3,052 across the 16 users, excluding the 1 user with effectively unbounded liquidity). Although it is in principle possible that these users are in fact making accurate predictions about long-term ETH movements on the order of months, it is also conceivable that they are simply lucky in terms of ETH price movements during the periods of time in which their liquidity positions are open (much like rank #1 in gross profits).

We can make one more last-ditch attempt to identify users with high levels of skill. Certainly, we know that there are users who are highly profitable! Suppose, for instance, that we use an external dataset to identify potential ‘positive controls,’ so to speak. Examining the mainnet ETH/USDC 0.3% pool and sorting active positions by realized APR% as calculated by Revert, we find that of the top 5 positions with PnL greater than $10,000, three of them belong to the same user, 0x46a0B4Fa58141ABa23185e79f7047A7dFd0FF100!

In our analysis, this user is ranked 7 for gross profits and ranked 307 for normalized profits, which is evidence for the validity of our overall analytic methodology. They have minted 21 positions with an average position range around $1k and for an average duration of 70 days per position. Is this user profitable via skill or via chance? Certainly, if the price of ETH were to suddenly move dramatically in the next several days, their overall PnL might look much different! This motivates a potential follow-up analysis: are there users who, over a long duration of time, consistently maintain a high level of normalized profitability? Unfortunately, that is beyond the scope of the current article. However, what is clear is that the parameters with which this user is minting liquidity positions are not particularly unusual, and that examining these positions does not immediately offer up any great insights for how typical users can mint profitable, rather than unprofitable, liquidity positions.


Although somewhat discursive in nature, our exploration of Uniswap V3 data on a per-wallet basis appears to suggest that users’ profits are essentially random. The users with the highest normalized profits exhibit unusual behavior and appear to be using narrow liquidity positions as limit orders of sorts; given that users with the lowest normalized profits also display similar characteristics, it is likely this is a reflection not of skill but of a process that naturally generates extremely high magnitude of normalized returns by our metric. In turn, users with the highest gross profits have very low levels of impermanent losses simply due to the fact that the time of evaluation, the price of ETH was fortuitously close to the price at which they opened their positions. Since data was collected for this analysis, the price of ETH has changed by over 10%; were we to re-run the analyses, the users with the highest gross profits might be a much different set of addresses.

Even if highly skilled users exist, they are difficult to pinpoint, and the fact that profitability does not significantly vary with standard parameters (position range, age, etc.) renders it challenging to distill practical insights from minters of profitable positions. Conceivably, a more complex analysis that tracks users’ performance over time, watching to see if there are users who consistently stay in the top 10% of liquidity providers even as the price of ETH varies considerably, might be more effective in distinguishing luck from ability.

Our findings point to the extreme difficulties that normal LPs face in profitably supplying liquidity. In the long run, if supplying DEX liquidity is not profitable, decentralized finance may face a crisis of declining liquidity; as such, systems which propose novel solutions to address LP profitability, such as via merging fee tiers, automatically modifying pool parameters, or guiding LPs to set appropriate position ranges are in dire need. When interpreting these findings, it is crucial to note that all of these results are wholly within the context of Uniswap V3. On one hand, the lack of clear, ‘obvious’ signals which relate to LP profitability on a broader scale is disappointing; on the other hand, they clearly highlight the transformative potential of new DEXes which fundamentally change the mechanics of liquidity provisioning.

Overall, we believe that these results are suggestive of liquidity overprovision to the ETH/USDC liquidity pools on Uniswap. It is plausible that were users to shift liquidity from ETH/USDC pools to other liquidity pools, all participants (even those who do not leave the ETH/USDC pools) would experience higher returns on their capital. However, it is currently challenging to precisely compare returns on capital across different liquidity pools, or to know what parameters one should use for minting new concentrated liquidity positions based on historical swap volume and volatility data. Platforms and tools that ease this process may eventually capture an increasing fraction of Uniswap V3’s TVL as they supply liquidity providers with the tools necessary to provide liquidity in a rational and profitable manner.

It is valuable to note that that despite the capabilities of AMMs beginning to resemble those of limit order books, as seen with the large number of users who effectively use Uniswap V3 positions as approximations of limit orders, the bulk of the profits are not clearly dominated by a small number of standout actors in the same way that market making in traditional finance is dominated by professional, highly capitalized firms. Although the lack of overall LP profitability is a problem, it is a resolvable problem, and our findings suggest that as we work toward improving DEXes and facilitating liquidity provision by normal users, LP revenues will continue to be distributed in a more decentralized fashion than they otherwise would if decentralized finance were wholly reliant upon traditional order book models. Thus, although our findings may in a narrow sense be discouraging, they are in another sense a source of hope, in that they suggest that the path upon which have set ourselves is one with truly unique and valuable benefits which will become increasingly apparent over time as systems mature.