Daily Active Users (DAU) has become a default vanity metric in Web3, often cited in project announcements and funding rounds. However, DAU provides a misleading picture of protocol health. A user who interacts with a protocol once for an airdrop or a single speculative trade counts the same as a user who deposits assets, stakes, and votes on governance proposals daily. This metric fails to distinguish between drive-by users and committed participants, making it a poor indicator of long-term sustainability or product-market fit.
How to Measure Protocol Stickiness and User Retention
Introduction: Moving Beyond Daily Active Users
Daily Active Users (DAU) is a flawed metric for evaluating Web3 protocol health. This guide explains how to measure true user retention and protocol stickiness.
To understand true protocol health, you must analyze user retention and protocol stickiness. Retention measures whether users return over time, while stickiness measures the depth and value of their engagement. A protocol with 10,000 highly retained, sticky users is fundamentally healthier than one with 100,000 one-time users. Key questions to answer include: What percentage of new users are active 30, 60, or 90 days later? How many unique wallets interact with core smart contracts versus just reading on-chain data?
Measuring stickiness requires analyzing on-chain behavior patterns. Look for signals like contract interaction frequency, value locked over time (TVL per user), and multi-function engagement. For example, a user on a DeFi protocol who only swaps assets is less sticky than one who also provides liquidity, stakes LP tokens, and participates in governance. Tools like Dune Analytics, Flipside Crypto, and custom subgraphs allow you to segment users into cohorts based on their first interaction and track their subsequent activity.
Here is a simplified conceptual query to analyze user retention cohorts using a SQL-like syntax, as you might implement in Dune Analytics:
sql-- Cohort analysis: Track users who performed a first action WITH first_actions AS ( SELECT "from" AS user, MIN(DATE(block_time)) AS first_action_date FROM ethereum.transactions WHERE "to" = '0xProtocolContractAddress' GROUP BY 1 ), activity_dates AS ( SELECT "from" AS user, DATE(block_time) AS activity_date FROM ethereum.transactions WHERE "to" = '0xProtocolContractAddress' GROUP BY 1, 2 ) SELECT fa.first_action_date AS cohort, DATE_DIFF('day', fa.first_action_date, ad.activity_date) AS days_since_first_action, COUNT(DISTINCT fa.user) AS cohort_size, COUNT(DISTINCT ad.user) AS active_users, (COUNT(DISTINCT ad.user) * 100.0 / COUNT(DISTINCT fa.user)) AS retention_rate_percent FROM first_actions fa LEFT JOIN activity_dates ad ON fa.user = ad.user AND ad.activity_date >= fa.first_action_date GROUP BY 1, 2 ORDER BY 1, 2;
This query groups users by the week or month they first interacted with a protocol (cohort) and calculates what percentage of them were still active after 7, 30, or 90 days.
Beyond retention rates, calculate stickiness ratios like DAU/MAU (Daily Active Users over Monthly Active Users). A ratio above 0.5 indicates high engagement, meaning the average user is active more than 15 days a month. Also, track protocol-specific key actions. For an NFT marketplace, this could be listings, bids, and purchases. For a lending protocol, it's deposits, borrows, and repayments. The goal is to identify the core action loop that drives recurring value and measure how many users complete it repeatedly.
Shifting focus from top-line DAU to retention and stickiness metrics provides a realistic view of protocol traction. It helps teams identify leaks in their user funnel, improve product features that drive recurring use, and build sustainable ecosystems. Investors and analysts using these deeper metrics can better assess which protocols are creating genuine utility and fostering loyal communities, rather than just attracting short-term speculation.
Prerequisites and Data Sources
This guide outlines the essential tools and data sources required to analyze protocol stickiness and user retention on-chain.
Measuring user retention requires access to historical, granular blockchain data. The primary prerequisite is a reliable on-chain data provider that offers decoded event logs and traces. Services like The Graph for subgraph queries, Dune Analytics for SQL-based exploration, or Flipside Crypto are common starting points. For programmatic analysis, direct access to an Ethereum RPC node (e.g., via Alchemy, Infura, or a self-hosted node) combined with a blockchain ETL tool is necessary to extract raw transaction data. You will also need a development environment set up with a library like web3.py or ethers.js to interact with the data.
The core data sources for retention analysis are transaction logs and internal traces. You must identify and track user interactions with specific smart contract functions. For a lending protocol like Aave, key events include Deposit, Borrow, and Repay. For a DEX like Uniswap V3, you would track Swap and IncreaseLiquidity events. A user's first interaction timestamp with a protocol is their cohort anchor. Subsequent interactions are then measured against this anchor to calculate retention over periods like 7, 30, or 90 days. This requires mapping all user addresses to their initial activity.
Beyond raw events, you need contextual data to filter out noise. This includes identifying and excluding contract-to-contract interactions from bots and MEV searchers, which can be done by analyzing transaction from and to addresses against known contract creation codes. You also need price data (e.g., from CoinGecko or Chainlink oracles) to normalize the value of deposits or trades over time, and protocol metadata (like pool addresses and token pairs) to segment users by product. Setting up a database (e.g., PostgreSQL or BigQuery) to store and query this processed time-series data is essential for longitudinal analysis.
A critical step is defining what constitutes an "active user" for your specific analysis. Is it any transaction, a transaction with a minimum value threshold (e.g., >$100), or a specific combination of actions? For a yield farming protocol, a user might only be considered "sticky" if they reinvest rewards. For NFT marketplaces, it might be based on listing or bidding activity, not just purchases. This definition directly impacts your retention curves. You must also decide on the cohort granularity—daily, weekly, or monthly—which affects how you interpret seasonal trends and protocol update impacts.
Finally, you'll need tools for analysis and visualization. For initial exploration, SQL on platforms like Dune is powerful. For custom models, Python's data stack (pandas, numpy) is standard. The analysis involves calculating metrics like Cohort Retention Rate, Stickiness Ratio (DAU/MAU), and User Lifetime Value (LTV). Visualizing the data with cohort heatmaps and retention curves (using libraries like matplotlib or seaborn) is key to identifying patterns. The output should inform decisions on product features, incentive alignment, and growth strategies.
Step 1: Defining User Cohorts
Effective retention analysis begins with precise cohort definitions. This step outlines how to segment your protocol's user base to accurately measure long-term engagement and stickiness.
A user cohort is a group of users who share a common characteristic or experience within a defined time period. For measuring stickiness, the most critical cohort is based on the first interaction date—the day a user first connected their wallet and performed a meaningful on-chain action, such as swapping tokens, providing liquidity, or minting an NFT. This initial timestamp becomes the anchor for all future retention calculations. Tools like Dune Analytics or Flipside Crypto allow you to query this data directly from the blockchain using SQL, grouping users by their min(block_timestamp) for a specific contract.
Beyond the acquisition date, you must define what constitutes an "active" user for your specific protocol. Activity is not one-size-fits-all. For a decentralized exchange (DEX) like Uniswap, activity might be executing a swap or adding liquidity. For a lending protocol like Aave, it could be depositing collateral or borrowing an asset. For an NFT project, it might be minting or trading. Your definition should filter out one-time, low-value interactions (like a tiny test transaction) and focus on actions that signal genuine engagement with the protocol's core utility.
With your activity criteria set, you can construct cohorts. A typical format is YYYY-MM-DD: New Users, which includes all wallets that were first active on that day. You then track what percentage of that cohort returns to perform another qualifying action in subsequent periods—day 7, day 30, day 90, etc. This creates a cohort retention table, a fundamental model for visualizing how engagement decays or sustains over time. High-performing protocols often see flattening retention curves, indicating that users who stay beyond the first month tend to become long-term participants.
For deeper insight, create feature-specific cohorts. Instead of tracking any activity, track users who performed a specific high-value action for the first time. Examples include: first liquidity provision (LP), first governance vote, or first use of a leveraged product. Analyzing retention for these cohorts separately reveals which protocol features are truly driving user loyalty and which may need improvement. This granularity is key to moving beyond vanity metrics like Daily Active Users (DAUs) to understanding sustainable growth.
Implementing this in analysis involves writing precise queries. Below is a simplified SQL skeleton for building a basic first-interaction cohort table on Ethereum, queryable in Dune:
sqlWITH first_interaction AS ( SELECT "from" AS user, MIN(DATE(block_time)) AS first_date FROM ethereum.transactions WHERE to = '0xprotocol_contract_address' AND success = true GROUP BY 1 ) SELECT first_date, COUNT(DISTINCT user) AS cohort_size FROM first_interaction GROUP BY 1 ORDER BY 1;
This query identifies the first successful transaction date for each user to a target contract, forming the basis of your cohort analysis.
Step 2: Calculating Retention Rates
Learn how to quantify user loyalty by calculating retention rates, a core metric for evaluating protocol stickiness and long-term viability.
Retention rate measures the percentage of users who return to your protocol after their initial interaction over a defined period. Unlike simple user counts, retention reveals the stickiness of your product—whether users find recurring value. For Web3 protocols, this is critical for assessing sustainable growth versus one-time airdrop farming. The basic formula is: (Returning Users / Initial Cohort Size) * 100. A high retention rate signals strong product-market fit and a healthy community, while a low rate may indicate issues with user experience, tokenomics, or competitive positioning.
To calculate accurately, you must first define your cohort. A cohort is a group of users who performed a specific initial action (e.g., made a swap, supplied liquidity) within the same time window (e.g., a specific week or month). You then track what percentage of that cohort returns to perform any meaningful action in subsequent periods. Avoid vanity metrics; returning to simply check a token price is not true retention. Meaningful actions include initiating a new transaction, staking more assets, or voting in governance. Tools like Dune Analytics or Flipside Crypto allow you to build these cohort-based queries on-chain.
Here is a simplified SQL-like pseudocode example for calculating Week-2 retention for a hypothetical DEX, tracking users who made their first swap in Week 1:
sqlWITH first_swappers AS ( SELECT DISTINCT user_address, MIN(block_date) as first_swap_week FROM dex.swaps GROUP BY user_address ), week2_returners AS ( SELECT DISTINCT s.user_address FROM dex.swaps s INNER JOIN first_swappers f ON s.user_address = f.user_address WHERE s.block_date = f.first_swap_week + INTERVAL '7 days' ) SELECT COUNT(DISTINCT f.user_address) as cohort_size, COUNT(DISTINCT r.user_address) as returning_users, (COUNT(DISTINCT r.user_address) * 100.0 / COUNT(DISTINCT f.user_address)) as week2_retention_rate FROM first_swappers f LEFT JOIN week2_returners r ON f.user_address = r.user_address WHERE f.first_swap_week = '2024-01-01'
This query isolates a cohort and measures how many came back exactly one week later.
Analyzing retention curves—plotting the percentage of the cohort that returns over multiple subsequent weeks—provides deeper insight than a single number. A typical healthy protocol shows a steep drop in the first week (as curious users leave) followed by a flattening curve, indicating a loyal user base. Compare retention across different cohorts to measure the impact of product launches, incentive changes, or market conditions. For example, if retention improved for cohorts after a gas optimization upgrade, it directly links technical improvement to user behavior. Always benchmark against industry standards; for many DeFi protocols, a Day 7 retention rate above 15-20% is considered strong, while a rate below 5% warrants investigation.
Retention analysis must be contextual. A lending protocol might define retention as repeated borrowing cycles, while an NFT project might look at secondary sales participation. Furthermore, segment your analysis: compare retention rates between whales and small users, or between users who arrived via different channels (e.g., direct contract interaction vs. a front-end UI). This segmentation can uncover whether your protocol retains its most valuable users or if retention is driven by low-value, high-churn activity. Pair retention data with other metrics like protocol revenue per retained user or average transaction frequency to build a complete picture of user health and lifetime value.
Key Retention Metrics and Their Formulas
Essential formulas for calculating user retention and engagement in Web3 protocols.
| Metric | Formula | Interpretation | Data Source |
|---|---|---|---|
Daily Active Users (DAU) | Unique addresses interacting with core protocol functions in a 24h period | Measures daily engagement volume; high volatility can indicate speculative activity. | On-chain transaction logs |
Monthly Active Users (MAU) | Unique addresses interacting with core protocol functions in a 30-day period | Broader measure of user base health; DAU/MAU ratio indicates engagement depth. | On-chain transaction logs |
User Retention Rate (Cohort) | (Users active in period N who were also active in period 0) / (Users active in period 0) | Core stickiness metric. Tracks what percentage of new users return over time (e.g., Week 1, Week 4). | Cohort analysis from on-chain address history |
Stickiness Ratio | DAU / MAU | Indicates engagement frequency. A ratio > 0.33 suggests strong habitual use. | Derived from DAU and MAU calculations |
Average Revenue Per User (ARPU) | Total Protocol Revenue (fees, commissions) in period / MAU for same period | Meals monetization efficiency of the retained user base. Often denominated in USD or native token. | Protocol revenue data & MAU |
Net User Growth | (New Users in period) - (Churned Users in period) | Net change in active user base. Positive growth indicates sustainable acquisition over churn. | New user onboarding data & churn analysis |
Repeat Interaction Rate | (Users with ≥2 interactions in period) / (Total Active Users in period) | Measures depth of engagement beyond a single transaction. High rates indicate integrated usage. | On-chain transaction frequency per address |
Protocol-Specific Key Action Rate | e.g., (Users who staked/re-staked) / (Total eligible users) | Tracks completion of critical protocol retention loops (staking, voting, re-supplying). | Protocol-specific contract calls |
Step 3: Measuring Depth of Interaction
Beyond counting unique wallets, true protocol health is measured by how deeply and consistently users engage. This step focuses on analyzing protocol stickiness and user retention.
Protocol stickiness quantifies how often users return to interact with a protocol's core functions. A common metric is the Stickiness Ratio, calculated as (Daily Active Users / Monthly Active Users) * 100. A high ratio indicates users are returning frequently, suggesting the protocol provides recurring utility—like a lending platform for daily borrowing or a perpetual DEX for regular trading. In contrast, a one-time NFT mint might spike daily users but result in a low, unsustainable stickiness score.
To measure retention, cohort analysis is essential. Group users by the week or month of their first interaction (cohort) and track what percentage return in subsequent periods. For example, you might find that 40% of users who first supplied liquidity to a new DeFi pool in January were still actively providing liquidity three months later. This retention curve reveals the protocol's ability to deliver lasting value beyond initial curiosity. Tools like Dune Analytics and Flipside Crypto enable this analysis with SQL queries on on-chain data.
Depth of interaction also examines user sophistication. Segment users by the complexity of their transactions: simple token transfers, single-function interactions (e.g., a swap), and multi-step interactions (e.g., providing liquidity, then staking the LP token). A protocol with a growing segment of users executing complex interactions signals strong product-market fit and a maturing user base. This can be tracked by counting unique users per function or calculating the average number of distinct contract calls per user over time.
Implementing these metrics requires accessing and processing on-chain data. Using the Chainscore API, you can programmatically fetch user-level transaction histories. The following Python snippet demonstrates calculating the monthly stickiness ratio for a specific protocol, using chainscore.get_protocol_users() to retrieve active user sets.
pythonimport chainscore # Fetch daily and monthly active users for a protocol dau = chainscore.get_protocol_users(protocol_id="aave-v3", interval="day") mau = chainscore.get_protocol_users(protocol_id="aave-v3", interval="month") # Calculate stickiness ratio for the latest period stickiness_ratio = (len(dau[-1]) / len(mau[-1])) * 100 print(f"Stickiness Ratio: {stickiness_ratio:.2f}%")
Finally, correlate retention with key events. Did a governance proposal, a new feature launch, or a change in incentive emissions affect user return rates? For instance, after Uniswap deployed V3 on a new chain, analysts tracked whether liquidity providers from V2 migrated and retained their activity. This causal analysis moves beyond observation to understanding the drivers of engagement, providing actionable insights for protocol development and governance.
Tools for On-Chain Retention Analysis
Measure protocol stickiness and user retention using on-chain data. These tools help you analyze cohort behavior, track user lifecycles, and identify key retention metrics.
Defining Key Retention Metrics
Before using tools, define what retention means for your protocol. Common on-chain metrics include:
- Stickiness Ratio: DAU / MAU. A ratio above 0.2 indicates good engagement.
- Cohort Retention Rate: % of users from Week 0 who perform an action in Week N.
- User Lifetime Value (LTV): Estimated total fees or value generated per user wallet.
- Protocol-Specific Actions: Retention for staking lock-ups, governance participation, or LP provision.
Step 4: Identifying Churn Points and Drivers
This step moves beyond aggregate retention metrics to diagnose *where* and *why* users leave your protocol, enabling targeted interventions.
Churn analysis requires segmenting the user lifecycle into distinct phases and calculating phase-specific retention rates. Common phases include: Onboarding (first interaction to first successful transaction), Activation (completing a core action like a swap, deposit, or mint), and Habitual Use (repeated engagement over time). A sharp drop in retention between the Onboarding and Activation phases, for instance, points to UX friction or gas cost barriers. Tools like Dune Analytics or Flipside Crypto allow you to build these cohort-based funnels using on-chain data, tracking wallet cohorts from their first protocol interaction.
To identify specific churn drivers, correlate retention drops with on-chain events and external data. For a DeFi protocol, analyze if churn spikes coincide with: - Competitor launches with better yields or lower fees - Major network congestion events leading to failed transactions - Significant market downturns (TVL drawdowns) - Smart contract upgrades or security incidents. Cross-referencing your protocol's retention charts with gas price charts, token price volatility, and competitor TVL trends on DeFiLlama can reveal the primary external drivers of user attrition.
Internal product drivers are equally critical. Use smart contract logs and event data to pinpoint where users fail. A high drop-off rate after initiating but before confirming a transaction suggests a gas estimation or confirmation UX issue. For an NFT mint, analyze the revert reason in failed transaction traces. Code-level analysis is key here. For example, you might query for TransactionReverted events or analyze the status field of transactions in a block explorer's API to see if a specific contract function has an abnormal failure rate.
Implementing targeted fixes requires instrumenting your application to log detailed interaction data. For a web app, this means tracking button clicks, modal opens, and error messages alongside on-chain transaction hashes. When a user's transaction fails, your frontend should log the error message, wallet type, gas parameters, and the step in your flow. Correlating this with their on-chain transaction attempt (or lack thereof) allows you to distinguish between frontend errors, user cancellations, and genuine blockchain reverts, each requiring a different solution.
Finally, establish a monitoring dashboard for your key churn metrics. This should track: - Stickiness Ratio (DAU/MAU) over time - Phase Transition Retention Rates (e.g., Onboarding→Activation) - Churn Driver Alerts (e.g., notify when failure rates for a specific contract function exceed 5%). By treating churn not as a single metric but as a set of diagnosable events, you shift from observing a problem to systematically solving it, directly improving protocol resilience and user capital lock-in.
Step 5: Analyzing Feature Impact on Retention
This guide explains how to measure which specific protocol features drive long-term user retention and protocol stickiness, moving beyond basic activity metrics to identify true value drivers.
Protocol stickiness measures how often and deeply users return to your core features after their initial interaction. It's a stronger indicator of sustainable growth than simple user acquisition. To analyze it, you must move beyond tracking total active wallets (UAW) and instead segment user cohorts based on the specific features they use. For example, a user who only swaps tokens once is less "sticky" than one who regularly uses your protocol's staking, governance voting, and liquidity provision features. The goal is to identify which features act as retention hooks that convert one-time visitors into loyal protocol citizens.
Implementing this analysis requires a structured approach. First, instrument your dApp to emit granular event logs for every feature interaction, not just transactions. Use a schema like: user_action = {wallet_address, feature_name, timestamp, associated_assets}. Second, define your retention event—this could be a user's second interaction with the same feature within 30 days, or a cross-feature interaction like providing liquidity after a swap. Tools like Dune Analytics, Flipside Crypto, or your own indexed database can then query this data to build cohort analyses. A practical SQL query might segment users by the first feature they used and track their probability of performing a retention event within a defined period.
The most actionable insight comes from calculating feature-specific retention curves. For each major feature (e.g., swap, stake, vote), plot the percentage of first-time users of that feature who return to any protocol feature over time. A feature with a steep drop-off indicates it's a poor retention driver, often a mere gateway. Conversely, a feature with a flatter, higher curve is a core retention engine. Furthermore, analyze feature adjacency: do users who start with Feature A commonly graduate to Feature B? This reveals natural user journeys and potential onboarding flow optimizations.
Real-world examples highlight this method. A leading DeFi lending protocol might discover that users who first engage with its flash loan feature have a 7-day retention rate below 5%, while users who first interact with collateralized borrowing have a retention rate above 40%. This data would rightly deprioritize marketing flash loans to new users and instead focus on guiding them toward the sticky borrowing product. Similarly, an NFT marketplace might find that users who list an item for sale are 3x more likely to return than those who only make a purchase, informing product decisions to lower the barrier to listing.
Finally, translate these insights into actionable growth strategies. If a feature has high stickiness but low adoption, consider improving its discoverability in the UI or creating tutorials. If a high-adoption feature has low stickiness, investigate its user experience for friction points. Continuously monitor these metrics after rolling out changes to measure impact. By tying retention data directly to specific features, development and marketing resources can be allocated to systematically strengthen the protocol's core value proposition and sustainable growth.
Frequently Asked Questions on Protocol Stickiness
Common questions and technical answers on measuring protocol stickiness, analyzing user retention, and interpreting on-chain data for Web3 applications.
Protocol stickiness measures how consistently users return to and engage with a decentralized application over time. Unlike simple user counts, stickiness focuses on retention and recurring value. It's a critical health metric because:
- Sustainable Growth: High stickiness indicates product-market fit beyond speculative airdrop farming.
- Revenue Predictability: Sticky users generate predictable fee revenue for protocols like Uniswap or Aave.
- Security & Decentralization: A loyal user base contributes to a more robust and decentralized network, reducing vulnerability to Sybil attacks.
For developers, improving stickiness is often more valuable than chasing vanity metrics like total addresses, as it directly correlates with long-term protocol viability and token valuation.
Further Resources and References
Tools, metrics, and research frameworks you can use to quantify protocol stickiness, analyze user retention, and benchmark engagement against comparable onchain systems.
Product Analytics Concepts Applied Onchain
Traditional product analytics concepts map cleanly to blockchain systems when adapted correctly. Understanding these frameworks helps avoid misleading metrics.
Key concepts to apply:
- Stickiness ratio: DAU / MAU calculated using unique active wallets
- Cohort decay curves: retention plotted over time since first action
- Power users vs casual users segmentation
Onchain-specific adjustments:
- Wallets are not users. Always account for multi-wallet behavior.
- Exclude bots and sybil wallets using heuristics like transaction timing and gas patterns.
- Segment by intent, not just activity. For example, swaps vs liquidity provision.
These frameworks are tool-agnostic and can be implemented using Dune, Flipside, custom indexers, or data warehouses. Applying them correctly is often more important than choosing a specific analytics platform.
Qualitative Signals: Governance and Social Retention
Not all stickiness is transactional. For many protocols, governance participation and community engagement are leading indicators of long-term retention.
Signals to track:
- Repeat governance voters across proposals
- Forum or Snapshot participation frequency per wallet
- Delegate stability, showing whether voting power churns or consolidates
These metrics help identify:
- Users who remain engaged despite low short-term financial incentives
- Early signs of protocol fatigue or governance capture
Combining qualitative engagement with quantitative usage data produces a more accurate view of protocol health. Many teams track these metrics alongside core usage dashboards to detect retention risks before volume or TVL declines.
Conclusion and Next Steps
Measuring protocol stickiness and user retention is essential for evaluating long-term viability and network effects. This guide has covered the core metrics and analytical frameworks.
Effective measurement requires moving beyond simple daily active users (DAU) to analyze user cohorts, retention curves, and depth of engagement. Key metrics like Sticky Factor (DAU/MAU), Net Retention Rate, and Protocol-Specific Actions (e.g., governance votes, liquidity re-stakes) provide a multi-dimensional view of user loyalty. For developers, implementing on-chain event tracking with tools like Dune Analytics or The Graph is the first technical step to capture this data.
The next step is to build a systematic analysis pipeline. Start by defining your power user based on on-chain actions, not just wallet connections. Segment users by their first interaction date to create cohort tables. Calculate retention rates for each cohort over 7, 30, and 90-day periods. Analyze the correlation between specific protocol interactions—like providing liquidity in a second pool or delegating votes—and long-term retention. This reveals which features truly drive stickiness.
For ongoing improvement, integrate these metrics into a dashboard for real-time monitoring. Set up alerts for drops in key retention metrics. Use A/B testing or incentive adjustments to see how changes affect user behavior. Continuously refine your definition of a retained user as the protocol evolves. Remember, the goal is not just to measure, but to act on the data to improve product-market fit and sustainable growth.
Further resources are available for deepening your analysis. Study successful protocols like Uniswap (liquidity provider retention) or Lido (staker retention) for real-world benchmarks. Explore advanced concepts like customer lifetime value (LTV) modeling for on-chain users and attribution analysis for marketing channels. The Token Terminal and Flipside Crypto data platforms offer valuable comparative datasets.