subgraphs icon indicating copy to clipboard operation
subgraphs copied to clipboard

Uniswap V3 QA (Arbitrum) Schema Version 1.3.0 Subgraph Version 1.1.1 Methodology Version 1.0.0

Open bye43 opened this issue 3 years ago • 23 comments

Description Value
Subgraph Reviewed https://subgraphs.messari.io/subgraph?endpoint=https://api.thegraph.com/subgraphs/name/messari/uniswap-v3-arbitrum&tab=protocol
Date Reviewed July 18 2022
Schema Version 1.3.0
Subgraph Version 1.1.1
Methodology Version 1.0.0
Evidence Spreadsheet https://docs.google.com/spreadsheets/d/1nhu2rqFYM8TuV9DlrksQTAOnP-3L-WsY/edit?usp=sharing&ouid=113156017090580515789&rtpof=true&sd=true

Metrics To Review

Protocol Metrics

Section Metric Issue
financialsDailySnapshots totalValueLockedUSD The subgraph TVL is about 20% less than the TVL from DefiLlama. Furthermore, the trends look decent, except for between 02/06/2022 - 02/08/2022 there is a spike in the subgraph that is different than both DefiLlama and Uniswap UI. See protocol tab on evidence sheet.
financialsDailySnapshots dailySupplySideRevenueUSD QA'er made a note that the recent average daily revenue/volume on subgraph (Arbitrum) is higher than Dune's data (Uniswap V3 on Ethereum), which may warrant attention. I think this metric is most likely fine since the daily volume seems to be ok, but just want to make sure that we are accounting for Uniswap V3 having different fees for different pools. If this is the case, then this is probably ok.

Pool Overview

Pool Metric Issue
All Pools Fee Labels Missing labels for pools with different fees since there can be pools of the same assets, but with different fees. For example, WBTC/ETH 0.3% and WBTC/ETH 0.05%
Some Pools Naming for ETH Pools with ETH are missing ETH in the pool name and in the input tokens. Right now it is just blank. For example, Uniswap V3 ETH / GMX is being shown as "Uniswap V3 /GMX" and the input tokens are being shown as ", GMX"
Some Pools Naming for USDC and USDT Pools with USDC and USDT seem to be having a weird name convention where in the pool name they are being called arbFiatToken and being output as "FIAT" in the input token section
All Pools Base Yield Yields are in the high hundreds and thousands for most pools, which is not correct. Would be great if true though.
Uniswap IUSD/USDT All Metrics This pool seems to be missing from pool overview when it is the 2nd highest pool in TVL on the Uniswap Arb UI. Link - https://info.uniswap.org/#/arbitrum/pools
Uniswap V3 ETH/GMX TVL Subgraph pool is outputting ~9m when Uniswap UI is outputting ~24m. Link - https://info.uniswap.org/#/arbitrum/pools
Uniswap V3 UMAMI/ETH TVL Subgraph pool is outputting $727,637.53 and Uniswap UI is outputting 1.3m. Link - https://info.uniswap.org/#/arbitrum/pools

Note - Seems like there is a mix of correct and incorrect TVL values. I just listed a couple incorrect ones above.

Pool Metrics Data is not loading, so individual pools could not be checked.

bye43 avatar Jul 18 '22 20:07 bye43

What do you mean by yields? Like the protocol and supply side revenues?

steegecs avatar Jul 19 '22 01:07 steegecs

What do you mean by yields? Like the protocol and supply side revenues?

Ya. Base yield I believe refers to the yield generated from fees for LPs opposed to reward APR which is from emissions (ex. SUSHI). Should be supply side revenue in this case since Uni does not have protocol revenue IIRC

bye43 avatar Jul 19 '22 01:07 bye43

These are different things though. Like in Sushiswap, the reward emissions which are used to populate rewardTokenEmissionsAmount and rewardTokenEmissionsUSD are calculated based on a daily rate. This is not present in Uniswap V3. The trading fee and protocol fee are present in both of these protocols, though, and they are not calculated as a rate - rather they are calculated as a cumulative value for the entity. Are we on the same page with this or am I misunderstanding something?

steegecs avatar Jul 19 '22 02:07 steegecs

These are different things though. Like in Sushiswap, the reward emissions which are used to populate rewardTokenEmissionsAmount and rewardTokenEmissionsUSD are calculated based on a daily rate. This is not present in Uniswap V3. The trading fee and protocol fee are present in both of these protocols, though, and they are not calculated as a rate - rather they are calculated as a cumulative value for the entity. Are we on the same page with this or am I misunderstanding something?

Sorry, I think I was being unclear in my first statement and I believe that we are on the same page. I am currently under the impression that "Base Yield" refers to the fees generated by swaps and is unrelated to reward tokens; thus, the "base yield" metric shown on the pool overview page should be based on the revenue value. I was just trying to make clear in my previous statement that I think that yield should be referring to fee revenue and not reward tokens, but I could be wrong about this.

bye43 avatar Jul 19 '22 02:07 bye43

All good! Just wanted to be sure. So what are you referencing to check that these values are off? The swap fees should be between 0.05% and 1%. If the total volume of a liquidity pool is $10 Million, then it would have generated between $5,000 and $100,000 in revenue. Many of these pools have volumes around and above $100 million ($50,000 to $1,000,000 in revenue).

steegecs avatar Jul 19 '22 02:07 steegecs

All good! Just wanted to be sure. So what are you referencing to check that these values are off? The swap fees should be between 0.05% and 1%. If the total volume of a liquidity pool is $10 Million, then it would have generated between $5,000 and $100,000 in revenue. Many of these pools have volumes around and above $100 million ($50,000 to $1,000,000 in revenue).

I am just guesstimating based on the the fees over the last 24 hours output on the Uniswap UI. For example, GMX/ETH 1% pool generated $22.31K in fees on 07/18 with a pool TVL of roughly $24.4m . I think Solarbeam calculates yield as lastDayVolume * fee * 365 * 100) / pool TVL (assumes daily fees are standard for the year) and if we use that calculation as a baseline it is around 33.3% for the pool, which is still far off from the 6k%. The base yield should be dynamic though because trading fees ebb and flow with volume and I am also not sure over what length of time we are calculating the base yield, but I feel like 6k% is generally very high for yield based strictly on swap fees. Link to GMX/ETH Uniswap UI - https://info.uniswap.org/#/arbitrum/pools/0x80a9ae39310abf666a87c743d6ebbd0e8c42158e

bye43 avatar Jul 19 '22 03:07 bye43

Why time lastDayVolume * fee * 365 * 100) / pool TVL in this equation? It make more sense to me to leave that out. Also, the fees should always just be Fee * VolumeUSD. If this is not the case, then it is wrong.

steegecs avatar Jul 19 '22 13:07 steegecs

Screen Shot 2022-07-19 at 9 24 01 AM

steegecs avatar Jul 19 '22 13:07 steegecs

Like here in ETH/GMX, the cumulative volume is 577 Million. Because the fee is 1%, then 5.7 Million in swap fees have been dished out over the life of the pool. This seems correct to me.

steegecs avatar Jul 19 '22 13:07 steegecs

Yes, I agree on how the fee is being calculated. I was just using that equation as an example of how base yield could be calculated since it's giving LPs a yield number based on the most up to date fee volume. I am not exactly sure what the standard is for our subgraphs, but I think cumulative supply side revenue / TVL is generally not correct since its not an accurate display of the yield LPs would get if they deposited liquidity in present time.

bye43 avatar Jul 19 '22 13:07 bye43

Would it not be a decent estimation though if you are using the daily volume and fees with whatever the TVL is at that time?

steegecs avatar Jul 19 '22 14:07 steegecs

I agree that you would not want to use cumulative volume to project he revenue, but using a smaller snapshot like the daily volume and revenues does seem apt. Is this not the way it is specified to calculate?

steegecs avatar Jul 19 '22 14:07 steegecs

If you are doing cumulative volume * Fee * 365, then I could see why the values are way off, because this is projecting like all the cumulative revenues from the pool have been earned in the past 24 hours.

steegecs avatar Jul 19 '22 14:07 steegecs

Yes, I think we are in agreement about this ... I am just being confusing. I was just using solarbeam equation as like even if we use this equation that accounts for standard fees and TVL for a whole year it is still less than 6k%. I agree on (daily volume * fee)/(daily TVL) is the most accurate, but I do not think this counts as APR since its over a daily time period, so just depends on if we want to refer to base yield as like daily yield or APR.

bye43 avatar Jul 19 '22 14:07 bye43

Okay - we are merged in and deployed. The subgraph is indexing under the pending version as of yesterday.

steegecs avatar Jul 20 '22 17:07 steegecs

Okay - we are merged in and deployed. The subgraph is indexing under the pending version as of yesterday.

Sweet. Thanks, will take a look at it after it has indexed further.

bye43 avatar Jul 20 '22 17:07 bye43

Description Value
Subgraph Reviewed https://subgraphs.messari.io/subgraph?endpoint=https://api.thegraph.com/subgraphs/name/messari/uniswap-v3-arbitrum&tab=protocol
Date Reviewed 7/25/2022
Schema Version 1.3.0
Subgraph Version 1.1.0
Methodology Version 1.0.0
Evidence Spreadsheet https://docs.google.com/spreadsheets/d/139hB-46pGIn34TESq3waBjp_c5TEU2tJ/edit?usp=sharing&ouid=113156017090580515789&rtpof=true&sd=true

Metrics To Review

Protocol Metrics

Section Metric Issue  
financialsDailySnapshots totalValueLockedUSD The subgragph TVL is within comfortable ranges compared to DefiLlama, but is >20% difference than the Uniswap Arb UI. I think this may be becasue of how the TVL is being calculated for certain pools that have funky token pairs. Seems like the major token pairs have the correct TVL and some exotic pairs are very different, which could be the difference in overall TVL. Thus, I would probably be fine with this metric if its a pricing library issue, but there is a weird spike between 02/06/2022 - 02/08/2022 that does not follow the general trend of DefiLlama and Uniswap UI.

Pool Overview Comments - The TVLs for "common" pairs (ETH/USDC) seem correct, but a lot of the lower TVL with more exotic pairs are not returning the same TVL as the Uniswap UI. Uniswap UI be wrong, but probably smart to double check those pools. I linked a few of them below along with the arbscan links. I am leaning towards Uniswap UI being wrong, since they have a iUSD/USDC pool that seems to be a fake liquidity-bomber-type pool (arbscan link goes to an empty contract address, but I linked it anyways).

Pool Metric Issue
Uniswap iUSD/USDC Existing https://arbiscan.io//address/0x69d483e56638703ca1023a071ff471639e194edf
Uniswap V3 ETH/GMX 1% TVL https://arbiscan.io//address/0x80a9ae39310abf666a87c743d6ebbd0e8c42158e
Uniswap V3 UMAMI/ETH 1% TVL https://arbiscan.io//address/0x2b734ec7555cb49c755a9495a8d17cd2383926e0
Uniswap V3 GMX/USDC 1% TVL https://arbiscan.io//address/0x2039f8c9cd32ba9cd2ea7e575d5b1abea93f7527
Uniswap V3 USDR/USDC 0.05% TVL https://arbiscan.io//address/0x78727cc9e4bcbbceb15e3c4b7155f997fa365ce1
Uniswap V3 ETH/GMX 0.3% TVL https://arbiscan.io//address/0x1aeedd3727a6431b8f070c0afaa81cc74f273882
Uniswap V3 ETH/DBL 0.3% TVL https://arbiscan.io//address/0x08687dd94b1e084808b549fb5594d6e3d3b7b948
Uniswap V3 ETH/LINK 0.3% TVL https://arbiscan.io//address/0x468b88941e7cc0b88c1869d68ab6b570bcef62ff
Uniswap V3 ETH/TAC 0.3% TVL https://arbiscan.io//address/0x0e075f9f5496ae70e35e6ae25d13c990f1f092f0
Uniswap V3 CRV/ETH 1% TVL https://arbiscan.io//address/0xba80cede54bf09f8160f7d6ad4a9d6ae3a9852d9
Uniswap V3 APEX/ETH 0.3% TVL https://arbiscan.io//address/0xefd07239232e19d78e603122119637506aeb21a1
Uniswap V3 KROM/ETH 0.3% TVL https://arbiscan.io//address/0x54651ca452ad2d7e35babcff40760b7af0404213
Uniswap V3 LPT/WETH 0.3% TVL https://arbiscan.io//address/0x4fd47e5102dfbf95541f64ed6fe13d4ed26d2546

bye43 avatar Jul 25 '22 20:07 bye43

@bye43 and I discussed this and determined that we can close this issue. We think that the pricing is actually okay, since the spike does not seem like an outlier.

steegecs avatar Aug 02 '22 16:08 steegecs

The pools that have TVL issues seem to be the result of having a higher cutoff for token pricing. These pools have only one of the tokens being priced.

steegecs avatar Aug 02 '22 16:08 steegecs

Reopening this issue since there was changes to user metrics and pricing across all chains

bye43 avatar Aug 18 '22 16:08 bye43

Description Value
Subgraph Reviewed https://subgraphs.messari.io/subgraph?endpoint=https://api.thegraph.com/subgraphs/name/messari/uniswap-v3-arbitrum&tab=protocol
Date Reviewed 8/22/2022
Schema Version 1.3.0
Subgraph Version 1.1.1
Methodology Version 1.0.0
Evidence Spreadsheet https://docs.google.com/spreadsheets/d/1ItHkxqevOJk-K88_GLe_tZn7HcDU67PL/edit?usp=sharing&ouid=113156017090580515789&rtpof=true&sd=true

Metrics To Review

Protocol Metrics

Section Metric Issue
usageMetricsDailySnapshots cumulativeUniqueUsers This is too low. This is being addressed, but leaving here for tracking purposes

Pool Metrics

Pool Pool ID Comments
IUSD/USDT 0.05% 0x69D483E56638703Ca1023A071Ff471639E194edf Low volume, so I think this is fine that its blacklisted
ETH/DBL 0.3% 0x08687DD94b1e084808B549Fb5594d6e3d3B7B948 Low volume, so I think this is fine that its blacklisted
ETH/UNI 0.3% 0xC24f7d8E51A64dc1238880BD00bb961D54cbeb29 Legit token with real volume, so might need another look at pricing / blacklisting
ETH/LINK 0.3% 0x468b88941e7Cc0B88c1869d68ab6b570bCEF62Ff Legit token with real volume, so might need another look at pricing / blacklisting
CAP/ETH 0.3% 0x3Be3EBc2C4c0e65d444D6254aE9b1486F0d801EE Low volume, so I think this is fine that its blacklisted
MAGIC/ETH 1% 0x7e7FB3CCEcA5F2ac952eDF221fd2a9f62E411980 Legit token with real volume, so might need another look at pricing / blacklisting
APEX/ETH 0.3% 0xEFd07239232e19D78e603122119637506aEb21a1 Low volume, so I think this is fine that its blacklisted
ETH/TCR 1% 0xE8BfB2918853576f0965E29Bb86001ea93019003 This has some volume, but I think its because tracerdao got acquired, so probably why for the uptick. This is fine blacklisted
ETH/rETH 0.05% 0x09ba302A3f5ad2bF8853266e271b005A5b3716fe TVL is low here, but I think there is organic volume and rETH is a legit token, so might need another look at pricing / blacklisting
DPX/ETH 1% 0xb52781C275431bD48d290a4318e338FE0dF89eb9 This is a real token, but the pool looks whack, so its fine that its not included / blacklisted

bye43 avatar Aug 22 '22 14:08 bye43

Working on this now in PR #849!

steegecs avatar Aug 22 '22 16:08 steegecs

Indexing from PR #849 as of yesterday.

steegecs avatar Aug 25 '22 16:08 steegecs

@this-username-is-taken @steegecs Closing this issue, as its being frozen for Mainnet. Newer issues being tracked here: https://github.com/messari/subgraphs/issues/984

bye43 avatar Sep 15 '22 21:09 bye43