Implementation And Analysis Of The Sommelier SIPS-002 Proposal

The Volume team took the initiative to work on the airdrop proposal outlined by the Sommelier community in SIPS-002. Check out the original post for details on the motivation and discussion. In this follow-up post, we wanted to propose an implementation of the airdrop which we made to match the proposal as closely as possible. We seek the community’s feedback on this approach with our analysis below.

Introduction

The Volume team took the initiative to work on the airdrop proposal outlined by the Sommelier community in SIPS-002. Check out the original post for details on the motivation and discussion. In this follow-up post, we wanted to propose an implementation of the airdrop which we made to match the proposal as closely as possible. We seek the community’s feedback on this approach with our analysis below.

The github repo for reproducing our analysis is VolumeFi/somm_airdrop.

There are three types of wallet addresses that qualify for the SOMM community reward:

  1. Sommelier Pairings app wallets that interact with the Pairings vyper contracts
  2. Uniswap V3 LPs wallets (on specific pools)
  3. Osmosis LPs wallets (on specific pools)

At a high level, all three types of wallet addresses receive a reward based on the amount of liquidity and duration (how long they provided that liquidity). Group 1 (Sommelier Pairings app wallets) additionally receive a flat participation reward. The distribution is meant to reward and encourage early Sommelier wallets as well as to encourage LPs on Uniswap V3 and Osmosis to bring their liquidity to Sommelier for the upcoming launch of Cellars on Uniswap v3 and Osmosis.

Let’s dive into how we’re distributing tokens to the three groups, one-by-one. We’ll start with Sommelier app wallets.

Distribution to Sommelier Pairings App Wallets

Participation Reward

Every Ethereum address that provided liquidity through the Sommelier Pairings app before October 31, 2021 will receive a flat participation reward. As per SIPS-002, this total reward amount is 3,200,000 SOMM. That means each address receives:

Concretely there are 881 Sommelier app wallet addresses that added liquidity through the Sommelier app, meaning each address will receive 3632 SOMM as a participation reward.

Position-weighted Reward

Each Sommelier Pairings application wallet that successfully added liquidity receives a reward related to the liquidity amount and duration of their liquidity position. In general, we wanted to avoid rewarding liquidity mercenaries’ wallets - these are addresses that provided large liquidity amounts for a very short period of time. We therefore opted to incentivize LP position duration more than liquidity. The value of a position (p) is:

The value of each wallet’s positions will be used to compute the fraction of the total SOMM reward that goes to that wallet.

The way to think about this value function is that the following two positions are rewarded equally:

  1. Liquidity L for duration D.
  2. Liquidity L/4 for duration 2D.

In other words, a wallet which provides a quarter of the liquidity for twice as long receives the same reward.

A wallet’s total position-weighted value is obtained by computing

for each of the wallet’s positions and summing. We then divide that wallet’s value by the total value across all wallets to get the fraction of the total 2,000,000 SOMM that the wallet receives. The position-weighted reward to wallet i is therefore:

The final token reward to each wallet is the sum of the participation reward and the position-weighted reward.

Implementation Details

There were several challenges to computing the metrics described above. Firstly, while wallets entered positions using the Sommelier Pairings application, in most cases they closed their positions directly on Uniswap. To account for this, for every Sommelier application mint that didn’t have a Sommelier application burn, we searched directly on Uniswap for a corresponding burn. For Uniswap V3 mints we selected burns that matched the liquidity. For Uniswap V2 mints we don’t necessarily have a one-to-one correspondence with burns. For V2 we took a conservative approach and attributed all a wallet’s Uniswap V2 burns to their Sommelier app mint. The second challenge is that we can’t directly compare liquidity across pools (and across V2/V3). The solution we decided on is to convert all token values to USD (using the current token price). This allows us to compare between Uniswap V2/V3 and across different pools/pairs.

Results

After aggregating the liquidity size/duration reward and the participation reward, we get the following reward distribution. We have additionally imposed a maximum reward of 50k SOMM to a single address.

Plot SOMM app

For more information on why we did this, see the section “Whale Cap” in the Uniswap V3 distribution discussion below.

The raw SOMM rewards to each address that provided liquidity using the Sommelier app can be found here.

Distribution to Uniswap V3 Liquidity Providers

For Uniswap V3 LPs on the pools specified in the SIPS-002 proposal, we followed an approach similar to the Sommelier App wallets. In particular, we use the duration times square-root-liquidity value function.

For this group we don’t need to convert token values to USD because we aren’t aggregating across pools. Rather, each pool splits a reward of 300,000 SOMM amongst the LPs. Again, for each wallet we compute the sum of the values of each position, and divide by the total value across all wallets.

Whale Cap

When we followed the above approach, we found the following reward distribution:

Plot No-Cap

Notice there are a handful of outlier liquidity providers who are soaking up a large proportion of the rewards. Given that the majority of the distribution tails at the 40,000 - 50,000 SOMM reward, we felt that any whales above this cut-off would not enjoy a greater marginal utility from the additional token rewards and broder community participation would increase community satisfaction with the distribution. We decided to impose an upper bound cap of 50,000 SOMM for each wallet and redistribute the excess uniformly to all other wallets.

Results

After imposing the whale cap, we get the following distribution with greater distribution for smaller liquidity providers.

Plot UNI v3

The raw SOMM rewards to each address that participated in the selected Uniswap V3 pools can be found here

Distribution to Osmosis Liquidity Providers

With the Osmosis liquidity providers, in accordance with the SIPS-002 proposal, we were unable to account for liquidity duration. Instead, we obtained a snapshot of active Osmosis liquidity providers for the pools listed in the SIPS-002 proposal. The reward to each Osmosis LP is the LP’s pool share (fraction of liquidity in the pool) multiplied by the 200,000 SOMM. We additionally imposed the same whale cap described previously of 50,000 SOMM.

Plot Osmosis

The raw SOMM rewards to each osmosis address can be found here.

Conclusion

The Volume team hopes that its initiative to explore the SIPS-002 proposal with a design implementation is an important step to successful decentralization of Sommelier and the launch of the Sommelier DAO. Volume does not hold any SOMM tokens, but our interest is to continue to add value to the Sommelier community and to play a valuable role in helping liquidity and activity find its way to the Sommelier Cellars.

We invite the community to review our analysis and our data to share their comments. We welcome their feedback and wish to continue to explore continued implementation of the airdrop by the community imposed deadline of December 31, 2021.

To learn more about Volume, please visit https://volume.finance

To participate in the Volume community, please join us on Discord: Volume

To follow the project on Github, please star the project:

About Volume

Volume delivers software tools and user experiences that increase protocol token utility and community engagement, measured by protocol transaction volume growth. Volume was founded in 2021 and works with community efforts to increase participation in protocols such as Curve, Uniswap, Sommelier, and many others.

3 Likes

Thanks for great job done!

I think “here” you forgot to add link, it is for Position-weighted Reward

Thanks Volume team for putting so much effort to come up with this calculation. I think it is a fair calculation that has covered most of edge cases (large whale caps and etc.).

Are there plans on actual distribution itself as well? Has the SOMM team decided if it should be based on claim basis, where if wallet doesn’t claim the rewards for lets say 6 months then they loose the chance to get it?

Thanks. I just added that link.

overall, i like this proposal. i think we should consider taking a page out of the dydx playbook and make all those receiving tokens via the uniswap/osmosis buckets have to provide liquidity via sommelier once in order to actually claim the airdrop. use it to incentivize getting people to use the protocol seems like a nice carrot to dangle