Reworking TVL on L2BEAT

TVL is one of the most controversial and, at the same time, one of the most used metrics to assess the “popularity” of the chain. When L2BEAT was launched, a somewhat simplistic but easily verifiable approach was taken to report the TVL of a given chain - namely, all tokens locked in a bridge (i.e. tokens moved to a given Layer2) are counted and priced using some publicly available APIs. This approach, while it seemed ok at the beginning, led to a set of problems:

  • Manipulation - It is too easy to create a token with a massive Max Total Supply, provide some liquidity with the potentially fake volume on any of the decentralized DEX-es, and inflate massively total market cap. When most of these tokens are then locked in a bridge and moved to L2, even though they are still totally illiquid, the total TVL in a bridge gets artificially inflated
  • Omission of L2 native assets - If a token is minted on L2, even though it may be very liquid and have real economic value, since it is not bridged, it will not appear on the TVL for this rollup
  • Counting associated tokens - Some L2s have their native tokens, while some do not. If users are to get a fair comparison of TVL for different L2s, it makes sense for them to exclude native tokens for some comparisons, especially if they comprise a significant percentage of the TVL locked in a bridge
  • No precise definition - TVL, as reported on L2BEAT is different than TVL reported on other platforms, like DeFi Lama. This is confusing to end-users and arises from the fact that TVL is not a well-defined and agreed-upon metric.

It is clear that the TVL metric on L2BEAT needs an overhaul and we seek the community input for what would be the fairest and most objective metric(s) with the following being our current proposal

TVL vs AUM

The case of Optimism

Recently Optimism has launched their new token - OP as an airdrop on their L2. Up to this point, we had a policy of counting the tokens locked in a bridge if the token is in the top 300 on Coingecko or if it is an associated token for a platform, e.g. LRC for Loopring. With OP’s launched we had a decision to make: list the token because it is associated which follows the “native token” rule but breaks the “locked in a bridge” rule or not list the token and follow “locked in a bridge” but break “native token”.

To solve this conundrum we decided to track the OP token but only up to the circulating supply as determined by Coingecko. In our opinion using the circulating supply instead of the total supply is fairer because the market only trades the coins in circulation and so only their value can be determined.

This however presented a problem for other L2 native assets that we haven’t previously considered. Should they now be included in TVL too?

Splitting the metrics

Instead of one “TVL” metric, we propose to have two distinct, precisely defined metrics, namely TVL and AUM.

TVL - Total Value Locked - For every L1 bridge escrow that stores user funds and for every token in that contract sum the minimum of the balance of the token in that contract and the circulating supply of that token multiplied by the price of that token. This is most similar to the way current TVL is calculated and can be thought of as a maximum bounty for a hacker that manages to steal tokens from L1 bridge escrow. This metric will not take into account tokens that are minted on L2. See the pseudocode below:

let sum = 0
for e in bridgeEscrows
    for t in tokens
        value = min(balance(e, t), circulatingSupply(t))
        sum += value * price(t)

AUM - Assets Under Management - For every token on L2 sum the minimum of total supply on L2 of that token and the circulating supply of that token multiplied by the price of that token. Conceptually this is the total value that would be lost if the L2 disappeared without having a way to recover the managed funds. This metric could potentially also encompass NFTs in the future. See the pseudocode below:

let sum = 0
for t in tokens
    value = min(L2totalSupply(t), circulatingSupply(t))
    sum += value * price(t)

Values:

  1. L1 total supply - as reported by the totalSupply function of the ERC20 contract of a particular token on Ethereum.
  2. L2 total supply - as reported by the totalSupply functions of all the ERC20 (or equivalent) contracts of a particular token on a particular L2.
  3. circulating supply - as reported the token page of a particular token on Coingecko.
  4. bridge balance - as reported by the balanceOf function of the ERC20 contract of a particular token on Ethereum.
  5. price - as reported the token page of a particular token on Coingecko.

Filtering small-cap tokens

To prevent easy manipulation of both metrics we will have a whitelist of tokens that we track. Following our current rules, only the top 300 coins from Coingecko will be considered with exceptions for tokens associated with a given L2 (e.g. LRC for Loopring).

While this is not a perfect solution we can’t vet every single token that is moved to a bridge. To ensure that some legitimate tokens make it to the TVL even though their total market cap falls outside the top 300 list, we will be maintaining a whitelist and easy-to-use request form for anyone to get their token counted.

Total Supply vs Circulating Supply

Given that Coingecko only takes into account the circulating supply of tokens, and it is generally very hard to individually keep track of what is circulating supply, we will rely on Coingecko’s reported circulating supply which will be taken into account, especially for L2-minted tokens.

When counting the value of tokens if the balance or total supply reported by the contracts would exceed the circulating supply reported by Coingecko we will use the circulating supply instead.

Examples:

  • A new coin is minted on L1, all of it is immediately bridged to L2 and then only some of it is being airdropped to the community. Most likely Coingecko will report the amount airdropped to the community as the circulating supply and so the TVL would equal the circulating supply multiplied by price as opposed to counting the full balance which would result in a bigger number,
  • A coin is minted directly on L2, but only a small portion is actively traded. Even though the reported total supply is quite large, the circulating supply reported by Coingecko is low. The AUM for that coin would therefore equal the circulating supply multiplied by price.

Tokens associated with projects

Currently, the site only displays a warning if a large percentage of the TVL is composed of tokens associated with a project.

We plan to add a toggle so that users will be able to choose between a view that shows TVL and AUM with or without native tokens. Additionally, if the toggle is switched on, we will again warn users that a significant percentage of TVL or AUM is comprised of the native token.

7 Likes