Guide to Measuring Active Users in Crypto and DeFi: DAU/WAU/MAU Metrics Guide (2026)

How to Calculate DAU, WAU, and MAU in Crypto and DeFi

Yos Riady

Yos Riady

· Published

· Updated on

Updated

Updated

  • The confusion in DAU, WAU, and MAU usually isn't the formula. It's terminology: a visitor, a wallet, and a user aren't the same thing.

  • Protocols track this to answer a question TVL can't: how many distinct wallets find the product useful enough to return, rather than how much capital a handful of whales parked there.

  • Active-wallet counts aren't automatically more trustworthy than TVL. Real cases from Solana, Celo, and Uniswap's SushiSwap migration show why.

  • The most common calculation mistake is building WAU by summing daily DAU totals, which double-counts every wallet active more than once in the window. WAU and MAU need to be true distinct counts across the full window.

  • The commonly cited 20% DAU/MAU benchmark traces to a 2014 Sequoia Capital tweet about general consumer software rather than a DeFi-specific study. Track your own ratio against its own history instead.

  • The number itself is rarely the end goal. DAU, WAU, and MAU become useful when paired with retention, TVL, revenue, and acquisition source to diagnose why usage is changing, rather than reading a single spike or drop as a conclusion on its own.

Quick answer: DAU, WAU, and MAU measure the number of distinct active wallets during a daily, seven-day, or 30-day period. Define the qualifying action first, then count each wallet once within the relevant window. WAU and MAU should be calculated as distinct counts across the full window, rather than by adding daily totals. The DAU/MAU stickiness ratio is calculated as DAU ÷ MAU × 100. The harder part is defining what qualifies as an active wallet and interpreting the resulting number correctly, which is what the rest of this guide covers in detail.

Why Track DAU, WAU, and MAU in DeFi

TVL and volume can make a protocol look healthier than it is. For example, a hypothetical rather than a disclosed real case: a single large depositor or a handful of whales could carry $500M in TVL while only 40 wallets ever touch the product in a day. DAU, WAU, and MAU strip that out and answer a narrower, more honest question: how many distinct active wallets keep coming back.

That matters for a few concrete reasons:

  • Measuring recurring product usage. Recurring active-wallet behavior is stronger evidence of ongoing product use than TVL alone, particularly when paired with retention and revenue.

  • Separating real usage from mercenary capital. DeFi has a well-documented pattern where TVL and volume spike on token incentives and collapse the moment emissions taper. Active-wallet trends, especially retention segmented by acquisition source, help show which wallets keep using the product after incentives taper.

  • Reporting to investors. Engagement metrics can complement TVL and revenue by showing whether usage is recurring and whether acquisition is organic or incentive-driven.

  • Catching problems early. A sudden, unexplained DAU drop can flag an exploit, a broken integration, or a competitor pulling users away, worth investigating rather than assuming it's noise.

Active-wallet counts aren't automatically more trustworthy than TVL. Solana: Blockworks Research analyst Dan Smith found that of Solana's roughly 4.4 million daily DEX-active addresses, about 3.4 million had traded less than $10 of lifetime volume, "not quality users," he called it.

Celo: Variant Fund's Jack Hackworth found that 77% of the addresses behind Celo's 646K-address stablecoin-sending spike in September 2024 transferred less than two cents, mostly fractional claims from a UBI protocol rather than real usage. Both got picked apart by a named analyst once someone checked what the addresses were doing, the same failure mode critics point to with inflated TVL.

SushiSwap: the same lesson shows up historically in Uniswap's 2020 "vampire attack." SushiSwap forked Uniswap's code and rewarded users with SUSHI tokens for migrating liquidity, capturing roughly $810 million, about 55% of Uniswap's liquidity, within weeks. Uniswap's TVL swung from around $1.8B at the peak of the migration down to roughly $400M within days, then rebounded past $3B within two months.

A protocol watching only TVL would have seen a crisis and a recovery. Wallet-level activity would have shown which addresses left and whether they were real recurring users or capital chasing the next incentive, a distinction TVL alone can't make. As far as we could find, no one ran that specific wallet-level analysis at the time. This is an illustration of what tracking would have added rather than a documented 2020 finding.

Visitor vs. Session vs. Wallet vs. User: What's the Difference?

In practice, the confusion clients raise about this topic is almost never the formula. It's terminology. Visitors, wallets, and users get used interchangeably when they're different things:

  • A visitor is a persistent, anonymous identity, tracked whether or not a wallet ever connects. One visitor can generate multiple sessions across multiple days.

  • A session is a bounded period of activity, identified by its own session ID separate from the visitor's identity. One visitor can generate multiple sessions.

  • A wallet is a unique address that connected, whether or not it did anything after.

  • A user implies a real person, which a wallet address alone doesn't confirm, since one person can run several wallets and one address, a router or an aggregator, can represent activity from several people acting through it.

Most of the confusion in this space isn't about formulas. It's about which of these a given dashboard is counting when it says "users."

How to Calculate DAU, WAU, and MAU in DeFi

Metric

Formula

Window

DAU

Distinct qualifying wallets

Rolling or calendar 24 hours

WAU

Distinct qualifying wallets

Trailing 7 days, calculated directly rather than summed

MAU

Distinct qualifying wallets

Trailing 30 days, same logic as WAU

The most common calculation mistake: building WAU by adding up seven days of DAU. That double-counts every wallet that showed up more than once in the week. WAU has to be a true distinct count across the full window, calculated directly rather than summed from smaller windows.

Define your qualifying action before you count anything. Pick the state-changing interactions that represent real product use, a swap, deposit, borrow, repay, stake, vote, or claim, and exclude:

  • Failed or reverted transactions

  • Pure token transfers unrelated to your protocol's logic

  • Read-only calls, which don't reflect a completed onchain state change, though they may still be worth tracking separately as an offchain product-engagement signal

  • Holding an existing position with no new action in the window

This is one of the biggest methodological choices affecting your reported number, and it's also where Sybil filtering matters most: two protocols with identical activity can report very different DAU depending only on how broadly they define "active."

Decide what unit you're counting. "Unique user" in DeFi really means "unique address" unless you do additional work:

  • One person can run many wallets for yield farming or privacy

  • One address, a router or an aggregator, can represent many real users acting through it

  • Report unique addresses as your base metric, and disclose plainly that it's a proxy for users rather than a count of humans

  • Filter out known router and bot addresses, or attribute an action back to the underlying wallet that triggered it, to get closer to a real count

Handle multi-chain deliberately, rather than by accident. If your protocol runs on multiple chains, decide upfront whether you're reporting per-chain numbers or a deduplicated total. There's real disagreement on the right default:

  • DefiLlama defines Active Addresses as unique addresses interacting directly with a protocol, excluding transactions routed through an aggregator or middleman contract. Its Fees, Revenue, and Volume metrics are broken out per chain; confirm the aggregation methodology for Active Addresses before comparing protocol-level figures

  • Token Terminal standardizes DAU according to project-specific business logic rather than counting every address that touches any contract, so its exact methodology can differ from broader raw active-address measures. Its public documentation doesn't clarify how it handles cross-chain deduplication

Whichever you choose, state it next to the number.

What to Do After You Calculate DAU, WAU, and MAU

The number on its own doesn't tell you much. What it feeds into does.

Retention and cohort analysis. Bucket wallets by the week or month they first became active, then track how many return in later periods. This is usually more useful than the raw MAU trend, since it tells you whether growth is real or just top-of-funnel churn being replaced by new arrivals.

Funnel diagnosis. Pairing DAU with other metrics reveals patterns worth investigating rather than conclusions to accept outright:

Signal

Possible interpretation

Check next

DAU stable, TVL falling

Large-wallet withdrawals or asset-price effects

Net flows, wallet-size distribution, token prices

DAU rising, fees flat

Lower-value activity, incentive farming, or a fee reduction

Revenue per user, transaction type, campaign source

DAU/MAU steady, MAU growing

Healthy proportional growth, or daily engagement not keeping pace

Cohort retention, new-versus-returning split

Emissions and incentive decisions. DAU, WAU, and retention can help you judge whether activity persists once an incentive changes. If a campaign produces a temporary active-wallet spike but weak retention afterward, that's real evidence worth weighing before the next round of rewards.

dYdX has cut token emissions more than once, including a roughly 25% reduction in a July 2023 governance proposal, and protocols like dYdX, GMX, and Aave have generally been shifting token economics toward fee revenue rather than emissions. The dYdX proposals themselves cite token inflation, market conditions, and incentive-design economics as the stated rationale, rather than DAU or retention tracking.

That's a real, disclosed example of protocols actively revisiting incentive design. It doesn't establish that DAU-based measurement was the mechanism behind it. That's the analytical framework this guide recommends, rather than something dYdX's own proposals claim to have done.

Anomaly detection. A sudden, unexplained DAU spike or drop can flag an exploit, a bot attack, an oracle issue, or a sudden viral integration, worth investigating rather than assuming it's noise.

The DAU/MAU Ratio: Measuring Stickiness

Formula: DAU ÷ MAU × 100. An app with 1,000 MAU and 150 DAU has a 15% stickiness ratio.

The formula itself is straightforward arithmetic. What follows is reasoning about what the ratio can and can't capture, rather than a separately sourced finding: it doesn't distinguish the same 150 wallets showing up daily, real habit formation, from a different rotating slice of the 1,000 MAU clearing 150 on any given day, which produces an identical ratio with far weaker loyalty.

Two apps can post the same DAU/MAU and be in different shape. Check a cohort or lifecycle-stage view to see whether it's the same wallets returning before trusting what a single percentage implies.

You'll see 20% cited often as a benchmark. It traces back to a 2014 Sequoia Capital tweet about general consumer software rather than DeFi, and no source with a disclosed methodology publishes a DeFi-specific benchmark by category.

Track your own ratio's trend against its own history instead of an external target nobody can trace back to real data.

Illustrative Example

The numbers below are hypothetical, invented to show how to read these metrics together rather than disclosed figures from any real protocol.

Metric

Value

MAU

12,000

WAU

2,400

DAU

480

DAU/MAU ratio

4%

WAU/MAU ratio

20%

Share of MAU from a recent incentive campaign

35%

Day-30 retention, organic wallets

18%

Day-30 retention, incentive-campaign wallets

3%

A 4% DAU/MAU ratio looks weak against the 20% figure that circulates widely, but DAU isn't this app's natural cadence, lending apps run on a weekly rhythm, so WAU/MAU is the more relevant number here, judged against this app's own history rather than an external target.

The figure that matters here is the retention gap. Organic wallets are six times more likely to still be active at day 30 than wallets that arrived through the incentive campaign, and more than a third of this month's MAU came from that campaign.

Most of that third won't be here in 30 days. That's the number to act on, tighten the campaign's targeting or start segmenting retention by acquisition source, rather than the headline DAU/MAU ratio.

How to Track DAU, WAU, and MAU With Formo

For wallet-level DAU, WAU, and MAU, Formo counts distinct wallet addresses rather than page views. By default, a wallet is active when it connects or completes a transaction within your chosen window.

This example counts connected-wallet DAU, Formo's default and the simplest starting point. Swap in your own qualifying event, such as swap_completed, once you've defined what counts as active for your product:

SELECT
 toDate(timestamp) AS date,
 countDistinct(address) AS daily_active_wallets
FROM events
WHERE type = 'connect'
 AND timestamp >= now() - INTERVAL 30 DAY
GROUP BY date
ORDER BY date

A full active-user dashboard in Formo typically includes DAU, WAU, and MAU as headline numbers, a 30-day DAU trend line, a new-versus-returning breakdown, the DAU/MAU ratio itself, and active users broken down by referrer and by country. Beyond that headline view, three things do most of the interpretive work:

  • Lifecycle stages. Every wallet is automatically classified into a lifecycle stage, New, Returning, Power User, At-Risk, Churned, or Resurrected, based on activity recency and frequency. Formo's own default marks a power user as active 5 or more days in the last 30.

  • Segmentation beyond the default. Combine conditions directly, for example, high-value active users as wallets that connected in the last 7 days, completed a transaction in the last 7 days, and hold a net worth above $10,000.

  • Retention charts. A weekly retention chart, set to a starting event of connect and a returning event of connect, shows a pattern worth watching for: an initial drop followed by stabilization and consistent later-period activity.

One honest note on definitions: Formo's default active-user definition is wallet connected OR transaction completed, more permissive than the stricter "meaningful onchain action only" standard argued for earlier in this guide. That default is built for fast setup. Once you know which action represents value for your product, override it with your own qualifying event rather than relying on the default.

Kairos Swap used Formo to get visibility they didn't have before, an estimated 40+ engineering hours a month of build work replaced with a working dashboard in under 10 minutes.

"Formo gave us valuable insight into our existing users, where they're finding us, how active they are across DeFi, and social connections where we can reach them for feedback." Vince, CTO at Kairos Swap

Final Takeaways

Counting distinct qualifying wallets over a defined window is the easy part, and disclosing exactly what counts as qualifying is what makes the number trustworthy. What you do with it afterward matters more: tying it to a retention decision, a funnel fix, or an emissions call, rather than reporting it in isolation.

Frequently Asked Questions

What counts as an active user in DeFi?

Usually a unique wallet address that completes a qualifying action, a swap, deposit, borrow, or vote, within a defined window. Exclude failed transactions, pure transfers, and read-only calls. Document your qualifying-action definition alongside any figure you report, since two protocols' "DAU" can mean different things.

How do you calculate DAU, WAU, and MAU in DeFi?

Count distinct qualifying wallets in the relevant window: 24 hours for DAU, a trailing 7 days for WAU, a trailing 30 days for MAU. Calculate WAU and MAU as true distinct counts rather than a sum of daily numbers, which double-counts repeat wallets.

What's the difference between a visitor, a session, a wallet, and a user?

A visitor is a persistent, anonymous identity, tracked regardless of whether a wallet connects, and one visitor can generate multiple sessions across multiple days. A session is a bounded period of activity tracked separately from the visitor identity. A wallet is a unique address that connected. A user implies a real person, which a wallet alone doesn't confirm, since one person can run multiple wallets and one address can represent activity from several people acting through a shared contract.

Can crypto DAU and active-wallet metrics be manipulated?

Yes. Active-wallet counts can be distorted by Sybil wallets, bots, incentive farming, and overly broad definitions of activity. Solana's daily DEX-active address count included millions of wallets with under $10 in lifetime volume, and Celo's stablecoin-transfer spike was mostly fractional-cent claims from a UBI protocol. Pair DAU, WAU, and MAU with retention, transaction value, and cohort data rather than trusting the raw count alone.

What is a good DAU/MAU ratio for a DeFi app?

There's no verified DeFi-specific benchmark. The commonly cited 20% figure comes from a 2014 Sequoia Capital tweet about general consumer software. Track your own ratio's trend over time rather than an external target.

What should teams do after calculating DAU, WAU, and MAU?

Feed the numbers into retention and cohort analysis, and pair them with TVL and fee revenue to diagnose whether growth is organic or incentive-driven. Use them to inform emissions decisions, and watch for sudden unexplained changes as an early warning sign of an exploit. The raw number by itself rarely drives a decision.

Why shouldn't I calculate WAU by adding up 7 days of DAU?

Summing daily actives double-counts every wallet active more than once in the week. If the same 500 wallets show up every day, adding seven days of DAU gives you 3,500, but the real WAU is 500, since it's a distinct count of wallets active at any point in the window rather than a sum of smaller windows. Always calculate WAU and MAU as true distinct counts across the full window.

How does multi-chain deployment affect DAU, WAU, and MAU?

Decide explicitly whether to report per-chain numbers or a deduplicated total across chains, and disclose which one you're using. DefiLlama defines Active Addresses as unique addresses interacting directly with a protocol, excluding transactions routed through aggregators or other middleman contracts, but analytics providers can differ in how deployments and chains get aggregated. Confirm the methodology before comparing protocol-level figures across dashboards.

Which should a DeFi app track: DAU, WAU, or MAU?

Track the interval that best matches your product's natural usage cadence, while keeping the other two for context. High-frequency trading and gaming products may learn more from DAU, while lending, staking, and governance products often have meaningful weekly or monthly activity instead. A low DAU/MAU ratio isn't automatically unhealthy if users don't need to interact daily. Compare each metric against retention and your own historical baseline rather than a single number in isolation.

Check out our related articles

About the Author

About the Author
About the Author
Yos Riady

Founder

Founder

Yos is the founder of Formo, where he helps DeFi teams make analytics and attribution simple. Prior to Formo, Yos was a staff software engineer and tech lead at Chainlink Labs. He helped scale Chainlink into the industry-standard oracle for leading DeFi protocols. A long-time builder in crypto with experience across smart contracts, data engineering, and security.

Yos is the founder of Formo, where he helps DeFi teams make analytics and attribution simple. Prior to Formo, Yos was a staff software engineer and tech lead at Chainlink Labs. He helped scale Chainlink into the industry-standard oracle for leading DeFi protocols. A long-time builder in crypto with experience across smart contracts, data engineering, and security.

Table of Contents

Measure what matters onchain

Formo makes analytics and attribution simple for DeFi apps.

Measure what matters onchain

Formo makes analytics and attribution simple for DeFi apps.

Measure what matters onchain

Formo makes analytics and attribution simple for DeFi apps.