This project analyzes Total Value Locked (TVL) trends for eight DeFi protocols (Uniswap, Aave, Maple, Compound, Lido, EigenLayer, Curve, Ethena) to identify which had the fastest TVL growth from Q1 2024 to Q1 2025 [or Jan to Mar 2024 if 2025 data unavailable]. The analysis follows the Google Data Analytics process: Ask, Prepare, Process, Analyze, Share, Act. Data is sourced from DeFiLlama.
Question: Which DeFi protocol had the fastest TVL growth?
Metric: Percentage change in average TVL from Q1 2024 to Q1 2025 [or Jan to Mar 2024].
Stakeholders: DeFi investors and enthusiasts.
Fetched TVL data using Python via the DeFiLlama API (slugs: uniswap, aave, maple, compound-finance, lido, eigenlayer, curve-finance, ethena).
Saved as defi_tvl_data.csv.
Protocols: Uniswap, Aave, Maple, Compound, Lido, EigenLayer, Curve, Ethena.
Cleaned data in Google Sheets (see data_cleaning_log.txt):
Removed 2 rows with missing values.
Removed 0 duplicate rows.
Validated TVL_USD (removed 0 negative values).
Sorted by Protocol and Date.
Exported as cleaned_defi_tvl_data.csv.
tvl_data <- read_csv("cleaned_defi_tvl_data.csv")
## Rows: 1448 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (2): Protocol, TVL_Check
## num (1): TVL_USD
## date (1): Date
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
tvl_data$Date <- as_date(tvl_data$Date)
growth_data <- read_csv("tvl_growth_results.csv")
## Rows: 8 Columns: 4
## ── Column specification ────────────────────────────────────────────────────────
## Delimiter: ","
## chr (1): Protocol
## dbl (3): avg_tvl_2024, avg_tvl_2025, growth_percentage
##
## ℹ Use `spec()` to retrieve the full column specification for this data.
## ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
summary(tvl_data)
## Protocol Date TVL_USD TVL_Check
## Length:1448 Min. :2024-01-01 Min. :3.982e+07 Length:1448
## Class :character 1st Qu.:2024-02-15 1st Qu.:2.021e+09 Class :character
## Mode :character Median :2024-03-31 Median :4.183e+09 Mode :character
## Mean :2024-08-14 Mean :7.901e+09
## 3rd Qu.:2025-02-14 3rd Qu.:1.126e+10
## Max. :2025-03-31 Max. :4.017e+10
monthly_tvl <- tvl_data %>%
mutate(Year = year(Date), Month = month(Date)) %>%
group_by(Protocol, Year, Month) %>%
summarise(Avg_TVL = mean(TVL_USD, na.rm = TRUE), .groups = "drop") %>%
mutate(Date = as_date(paste(Year, Month, "01", sep = "-")))
top_protocol <- growth_data %>%
arrange(desc(growth_percentage)) %>%
slice(1)
top_protocol
## # A tibble: 1 × 4
## Protocol avg_tvl_2024 avg_tvl_2025 growth_percentage
## <chr> <dbl> <dbl> <dbl>
## 1 Ethena 486061182. 5754201643. 1084.
The protocol with the highest growth is Ethena with 1083.84% growth.