Address Metrics - Tracking Adoption and Engagement
Learning Objectives
Calculate active address metrics using daily, weekly, and monthly active address definitions with appropriate methodology
Analyze account creation patterns distinguishing genuine growth from artificial inflation
Build cohort retention analysis to measure user stickiness and engagement over time
Interpret distribution metrics including Gini coefficient, whale concentration, and exchange holdings
Recognize the distinction between addresses and users, accounts and adoption
"XRPL has 5 million accounts!"
Impressive? Let's investigate:
- How many are active? (~200,000-300,000 monthly)
- How many are one-time creations? (~60-70%)
- How many are controlled by the same entities? (Unknown, but significant)
- How many are exchanges with millions of users each? (Major portion)
The fundamental problem: One address does not equal one user.
ADDRESS-USER MISMATCH:
One user can have multiple addresses:
├── Cold storage wallet
├── Hot wallet for trading
├── Exchange account (exchange's address)
├── Hardware wallet backup
└── Old wallets from previous devices
One address can represent multiple users:
├── Exchange cold wallet (millions of users)
├── Custodial service
├── Payment processor
├── DEX aggregator
└── Institutional omnibus accounts
RESULT:
├── Address count > User count (individual wallets)
├── Address count < User count (custodial services)
├── True user count: Unknowable from on-chain data
This lesson teaches you to extract meaningful adoption signals despite this limitation.
Understanding XRPL's account model:
XRPL ACCOUNT CREATION:
REQUIREMENTS:
├── Minimum reserve: 10 XRP (current, was higher)
├── First transaction must be funded by existing account
├── Account address derived from public key
└── Account exists forever once created
CREATION TRANSACTION:
├── Payment of ≥10 XRP to new address creates account
├── Address appears in ledger as new AccountRoot
├── Requires base reserve (10 XRP) + owner reserve (2 XRP per object)
└── Reserve is "locked," not "spent"
ACCOUNT DELETION:
├── Accounts can be deleted (since 2020)
├── Recovers most of reserve (10 XRP returned, minus fee)
├── Requires: Account has no owned objects
├── Rarely used in practice
└── Deletion doesn't reduce "accounts ever created" count
Account reserve creates adoption friction:
RESERVE IMPACT ON ADOPTION:
CURRENT RESERVE: 10 XRP base + 2 XRP per object
├── At $0.50: $5.00 minimum to create account
├── At $1.00: $10.00 minimum
├── At $2.00: $20.00 minimum
└── Creates real barrier for experimentation
COMPARED TO OTHER NETWORKS:
├── Ethereum: Gas for first tx only (~$1-50)
├── Solana: ~0.00089 SOL (~$0.10)
├── Bitcoin: No account concept
└── XRPL reserve is relatively high
IMPACT ON METRICS:
├── Fewer casual/experimental accounts
├── Higher commitment per account created
├── Account creation rate sensitive to XRP price
├── "Accounts" represent more serious intent than other chains
HISTORICAL RESERVE:
├── Originally 200 XRP (!)
├── Reduced to 20 XRP (2021)
├── Reduced to 10 XRP (2021)
├── Validator voting can adjust further
The critical distinction:
ACCOUNT METRICS HIERARCHY:
TOTAL ACCOUNTS (Vanity Metric):
├── Every account ever created
├── Minus: Deleted accounts (small number)
├── Includes: Abandoned, dust, spam accounts
├── Current: ~5-6 million
├── Always increases
└── MISLEADING for adoption measurement
FUNDED ACCOUNTS:
├── Accounts with balance above reserve
├── More meaningful than total
├── Still includes inactive accounts
├── Current: ~2-3 million
└── BETTER but still imperfect
ACTIVE ACCOUNTS:
├── Accounts with transactions in defined period
├── Various definitions: 1 day, 7 days, 30 days
├── Measures actual participation
├── Current MAA: ~200,000-300,000
└── MEANINGFUL for adoption measurement
ENGAGED ACCOUNTS:
├── Active with multiple transactions
├── Recurring activity pattern
├── Power users of the network
├── Current: ~50,000-100,000
└── BEST for core user base measurement
Different timeframes serve different purposes:
ACTIVE ADDRESS DEFINITIONS:
DAILY ACTIVE ADDRESSES (DAA):
├── Unique addresses transacting in 24 hours
├── Most volatile metric
├── Affected by daily patterns
├── Use: Real-time monitoring
├── Typical XRPL range: 30,000-60,000
WEEKLY ACTIVE ADDRESSES (WAA):
├── Unique addresses transacting in 7 days
├── Smooths daily variation
├── Better trend indicator
├── Use: Short-term trend analysis
├── Typical XRPL range: 80,000-150,000
MONTHLY ACTIVE ADDRESSES (MAA):
├── Unique addresses transacting in 30 days
├── Most stable metric
├── Industry standard for comparison
├── Use: Adoption measurement
├── Typical XRPL range: 150,000-300,000
WHICH TO USE:
├── DAA: Operational monitoring
├── WAA: Trend identification
├── MAA: Adoption assessment, comparison
├── All: Complete picture
Methodology for accurate calculation:
# Conceptual active address calculation
def calculate_active_addresses(start_date, end_date):
"""
Calculate unique active addresses in period.
Note: This is conceptual - actual implementation requires
ledger data access and proper transaction filtering.
"""
active_addresses = set()
# Iterate through ledgers in date range
for ledger in get_ledgers_in_range(start_date, end_date):
for tx in ledger.transactions:
if tx.result == 'tesSUCCESS':
# Add sender
active_addresses.add(tx.Account)
# Add destination for Payments
if tx.TransactionType == 'Payment':
active_addresses.add(tx.Destination)
# Add other relevant addresses based on tx type
# (DEX counterparties, etc.)
return len(active_addresses)
# Refinements:
# - Filter by transaction type (count only certain activities?)
# - Filter by value (minimum transaction size?)
# - Separate by role (sender vs receiver?)
Not all "active" addresses represent genuine users:
ACTIVE ADDRESS FILTERING:
EXCLUDE (Typically):
├── Known exchange hot wallets (artificial activity)
├── Known bot addresses (automated, not users)
├── Addresses with >1000 transactions/day (bots)
├── Addresses only receiving dust (<0.01 XRP)
└── Known Ripple operational addresses
INCLUDE:
├── Addresses initiating transactions
├── Addresses receiving meaningful amounts
├── Exchange deposit addresses (represent users)
├── DEX participants
└── NFT buyers/sellers
GRAY AREA:
├── Arbitrage bot operators (real users, automated activity)
├── Market makers (real services, high volume)
├── Payment processors (one address, many users)
└── Document your inclusion/exclusion choices
Engagement depth measurement:
DAU/MAU RATIO:
FORMULA:
DAU/MAU Ratio = Daily Active Addresses / Monthly Active Addresses
INTERPRETATION:
├── Ratio of 1.0 = All monthly users active daily (impossible)
├── Ratio of 0.5 = Half of monthly users active each day (very engaged)
├── Ratio of 0.3 = 30% daily engagement (healthy)
├── Ratio of 0.1 = 10% daily engagement (casual usage)
TYPICAL RANGES:
├── Social apps: 0.3-0.5
├── Productivity apps: 0.2-0.4
├── Crypto networks: 0.1-0.3
├── XRPL typically: 0.15-0.25
WHAT IT REVEALS:
├── Higher ratio = More engaged, habitual users
├── Lower ratio = More casual, sporadic users
├── Stable ratio = Consistent engagement pattern
├── Falling ratio = Usage becoming less frequent
New account patterns reveal adoption:
NEW ACCOUNT METRICS:
DAILY NEW ACCOUNTS:
├── AccountRoot objects created per day
├── Identifiable by first transaction to new address
├── Typical XRPL: 5,000-15,000/day
├── Varies significantly with market conditions
NEW ACCOUNT RATE (NAR):
├── New accounts / Existing accounts (daily)
├── Measures growth velocity
├── Typical: 0.1-0.3% daily (during growth)
NEW ACCOUNT FUNDING:
├── Average funding amount for new accounts
├── Above reserve = Intent to use
├── Near reserve = Minimum viable
├── High funding = Serious user/institution
Not all new accounts represent new users:
NEW ACCOUNT QUALITY SIGNALS:
GENUINE ADOPTION SIGNALS:
├── Consistent daily creation rate
├── Funding above minimum reserve
├── Activity after creation (not just funding)
├── Diversity of funding sources
├── Geographic/time distribution
ARTIFICIAL INFLATION SIGNALS:
├── Spike in creation (thousands in hours)
├── Minimum reserve funding only
├── No activity after creation
├── Single funding source
├── Automated timing patterns
INVESTIGATION APPROACH:
├── Check funding source addresses
├── Measure post-creation activity rate
├── Compare funding amounts distribution
├── Look for automated patterns
EXAMPLE:
├── Day 1: 8,000 new accounts, avg funding 50 XRP, 40% active next week
├── Day 2: 50,000 new accounts, avg funding 10 XRP, 5% active next week
├── Day 2 was likely artificial (airdrop farming, spam, etc.)
What new users do first matters:
FIRST TRANSACTION PATTERNS:
HEALTHY PATTERNS:
├── Payment to known service (exchange, application)
├── TrustSet (preparing to receive tokens)
├── DEX order (intending to trade)
├── NFT purchase (specific intent)
CONCERNING PATTERNS:
├── No transaction after funding
├── Immediate transfer back to funding source
├── Only dust transactions
├── Account deletion soon after creation
ANALYSIS APPROACH:
├── Segment new accounts by first action
├── Track 7-day activity rates by segment
├── Compare segments over time
├── Identify which patterns correlate with retention
Track users over time by when they joined:
COHORT RETENTION FRAMEWORK:
COHORT DEFINITION:
├── Group accounts by creation week/month
├── Track their activity in subsequent periods
├── Compare cohorts to each other
EXAMPLE COHORT TABLE:
Week 1 Week 2 Week 3 Week 4 Week 8
January cohort: 100% 45% 35% 30% 20%
February cohort: 100% 50% 42% 35% 25%
March cohort: 100% 55% 48% 40% 30%
READING THE TABLE:
├── January cohort: 45% still active after 1 week
├── February cohort improved: 50% after 1 week
├── March cohort best: 55% retention week 1
├── Trend: Retention improving over time
COHORT SIZE MATTERS:
├── Small cohorts = Noisy data
├── Need 1000+ accounts per cohort minimum
├── Larger cohorts = More stable metrics
Practical retention calculation:
RETENTION CALCULATION:
PERIOD RETENTION:
Retention(Week N) = Active in Week N / Active in Week 0
EXAMPLE:
├── Cohort created: 10,000 accounts in January
├── Active in January (Week 0): 10,000 (100%)
├── Active in February (Week 4): 3,500 (35%)
├── Active in March (Week 8): 2,000 (20%)
├── Active in June (Week 20): 1,200 (12%)
ACTIVITY DEFINITION:
├── "Active" = At least 1 transaction
├── Or: At least 1 initiated transaction (stricter)
├── Or: At least N XRP transacted (value threshold)
├── Document your definition
CHURN RATE:
Churn = 1 - Retention
├── 35% retention = 65% churn
├── Month-over-month churn shows decay rate
What retention curves reveal:
RETENTION CURVE SHAPES:
HEALTHY CURVE (Flattening):
Week: 0 1 2 4 8 12
Retention: 100% 50% 40% 35% 32% 30%
├── Initial drop, then stabilizes
├── Core user base established
├── Long-term users found
CONCERNING CURVE (Continuous Decline):
Week: 0 1 2 4 8 12
Retention: 100% 50% 35% 20% 10% 5%
├── Never stabilizes
├── No core user base
├── Product/market fit issues
EXCELLENT CURVE (Quick Stabilization):
Week: 0 1 2 4 8 12
Retention: 100% 60% 55% 52% 50% 50%
├── Fast stabilization
├── Strong product/market fit
├── Sticky use case
TYPICAL CRYPTO:
├── 30-50% retention at 1 week
├── 15-25% retention at 1 month
├── 10-15% long-term retention
├── XRPL likely in this range
Advanced retention considerations:
RETENTION REFINEMENTS:
SEGMENT BY USER TYPE:
├── Traders (DEX users)
├── Holders (infrequent but return)
├── Developers (technical transactions)
├── NFT users
├── Each segment has different retention patterns
ACTIVITY INTENSITY:
├── Light users: 1-2 transactions/month
├── Regular users: Weekly transactions
├── Power users: Daily transactions
├── Track transitions between tiers
REACTIVATION:
├── Dormant users who return
├── What triggers reactivation?
├── Price movements often reactivate
├── New features may reactivate
Measuring how XRP is distributed:
DISTRIBUTION METRICS:
TOP N ANALYSIS:
├── Top 100 addresses: ~45-50% of supply
├── Top 1,000 addresses: ~70-75% of supply
├── Top 10,000 addresses: ~85-90% of supply
├── Remaining millions: ~10-15% of supply
IMPORTANT CONTEXT:
├── Includes Ripple escrow (~40%+ of total)
├── Includes exchange wallets (millions of users)
├── Includes lost/burned XRP
├── "Concentration" partly structural
EXCLUDING KNOWN ENTITIES:
├── Remove Ripple/escrow addresses
├── Remove labeled exchange addresses
├── Remaining concentration: Still high
├── But more representative of retail/institutional
Quantifying inequality:
GINI COEFFICIENT:
DEFINITION:
├── Measure of inequality (0 to 1)
├── 0 = Perfect equality (everyone equal)
├── 1 = Perfect inequality (one owns everything)
CALCULATION:
├── Plot cumulative distribution
├── Calculate area between perfect equality and actual
├── Gini = Area / 0.5
CRYPTO GINI RANGES:
├── Bitcoin: ~0.85-0.90 (very concentrated)
├── Ethereum: ~0.80-0.85
├── XRP: ~0.90+ (very concentrated)
├── Note: All crypto is highly concentrated
INTERPRETATION:
├── High Gini isn't necessarily bad
├── Early-stage assets always concentrated
├── Exchange holdings inflate concentration
├── Trend matters more than absolute value
├── Decreasing Gini = Distribution happening
Understanding who holds XRP:
HOLDER SEGMENTATION:
BY BALANCE SIZE:
├── Dust (<10 XRP): Often abandoned, spam accounts
├── Small (10-1,000 XRP): Retail, experimental
├── Medium (1,000-100,000 XRP): Serious retail
├── Large (100,000-10M XRP): HNW, small institutions
├── Whale (>10M XRP): Institutions, early holders
BY HOLDING PATTERN:
├── Active holders: Transaction history, still use
├── Dormant holders: No activity 6+ months
├── Lost holders: No activity 3+ years, likely lost
├── Exchange attributed: Exchange wallet, many users
BALANCE DISTRIBUTION TREND:
├── Are small holders increasing?
├── Is median balance changing?
├── Are whales accumulating or distributing?
├── Healthy: Gradual shift toward broader distribution
Where XRP is held matters:
CUSTODY ANALYSIS:
EXCHANGE HOLDINGS (Estimated):
├── Identifiable exchange wallets: ~20-25% of supply
├── Actual could be higher (unlabeled wallets)
├── Represents: Trading liquidity, custodial users
├── Higher exchange holdings = More trading-oriented
SELF-CUSTODY INDICATORS:
├── Non-exchange, non-Ripple holdings
├── Growing self-custody = Long-term holders
├── Decreasing = Possible selling preparation
TRACKING METHODS:
├── Label known exchange addresses
├── Monitor exchange inflows/outflows
├── Large outflows = Self-custody increasing
├── Large inflows = Selling pressure potential
INTERPRETATION CAUTION:
├── Exchange holdings ≠ sell pressure
├── Self-custody ≠ holding forever
├── Trends matter more than levels
├── Cross-reference with other indicators
Essential metrics to track:
ADDRESS METRICS DASHBOARD:
DAILY TRACKING:
├── DAA (with trend vs 7-day avg)
├── New accounts created
├── Large account movements (>1M XRP)
WEEKLY TRACKING:
├── WAA (with trend vs 4-week avg)
├── DAA/WAA ratio
├── New account quality (funding amounts, first actions)
├── Retention: This week's new accounts vs last week's activity
MONTHLY TRACKING:
├── MAA (with trend vs 3-month avg)
├── DAU/MAU ratio
├── Full cohort retention update
├── Distribution changes
├── Exchange flow summary
QUARTERLY TRACKING:
├── Gini coefficient trend
├── Holder segment evolution
├── Long-term retention (6+ month cohorts)
├── Comprehensive distribution analysis
How to gather address data:
DATA COLLECTION METHODS:
FOR ACTIVE ADDRESSES:
├── Direct ledger query (most accurate, most work)
├── Block explorer APIs (convenient, may have limits)
├── Third-party analytics (easiest, verify methodology)
└── Cross-reference sources
FOR NEW ACCOUNTS:
├── Track Payment transactions creating new addresses
├── Block explorers often show this directly
├── New accounts = addresses appearing for first time
FOR DISTRIBUTION:
├── Snapshot account balances from ledger state
├── Rich lists from explorers (XRPScan, Bithomp)
├── Note: Point-in-time, changes constantly
├── Calculate own Gini if explorer doesn't provide
FOR RETENTION:
├── Requires historical data storage
├── Track cohort addresses over time
├── Most labor-intensive metric
├── May need to build own tracking system
✅ Active address metrics meaningfully track network participation better than total accounts
✅ Cohort retention analysis reveals user quality and engagement patterns
✅ Distribution metrics quantify concentration and can track trends over time
✅ Address-user distinction is fundamental to honest analysis
⚠️ True user count is unknowable from on-chain data
⚠️ Exchange wallet attribution is incomplete and changing
⚠️ Optimal activity thresholds for "active" definition vary by use case
⚠️ Retention benchmarks for crypto are not well established
📌 Using total account count as adoption metric
📌 Comparing active addresses across chains without methodology normalization
📌 Ignoring exchange holdings when analyzing distribution
📌 Treating short-term retention changes as significant trends
Address metrics are the closest we can get to understanding the user base behind the transactions, but they're imperfect proxies. One address doesn't equal one user; one exchange wallet might represent millions. The value lies in tracking trends over time with consistent methodology, not in absolute numbers. If MAA grows 20% while methodology stays constant, that's meaningful adoption growth—even if you don't know the exact user count.
Assignment: Conduct comprehensive address analysis for XRPL, building cohort retention tracking and distribution analysis.
Requirements:
Part 1: Active Address Analysis (30%)
- Calculate DAA, WAA, MAA for current period
- Calculate DAU/MAU ratio
- Compare to 3-month and 12-month historical averages
- Document methodology and data sources
- Analyze any significant patterns or anomalies
Part 2: New Account Analysis (25%)
- Track new account creation for 30 days
- Analyze funding patterns (average amounts, distribution)
- Measure first-transaction types
- Estimate "quality" rate (accounts that remain active)
- Compare to historical new account patterns
Part 3: Retention Analysis (25%)
- Build cohort retention table for last 3-4 months
- Calculate retention at Week 1, Week 2, Week 4
- Compare cohort retention across months
- Identify any trends or anomalies
- Provide interpretation of retention health
Part 4: Distribution Analysis (20%)
Document top holder concentration (Top 100, 1000, 10000)
Identify known entity holdings (Ripple, exchanges)
Calculate or obtain Gini coefficient
Analyze holder segmentation by balance size
Compare to 6-month or 12-month historical (if available)
Active address calculation accuracy (20%)
New account analysis depth (20%)
Retention methodology rigor (25%)
Distribution analysis completeness (20%)
Documentation and interpretation (15%)
Time investment: 4-5 hours
Value: Address metrics provide the adoption perspective that transaction metrics can't. This analysis becomes your framework for understanding who uses XRPL.
1. Active Address Definitions:
Why is Monthly Active Addresses (MAA) generally preferred over Daily Active Addresses (DAA) for measuring adoption?
A) MAA is larger and therefore more impressive for reports
B) MAA smooths daily volatility and captures users who don't transact daily
C) DAA includes bots while MAA excludes them
D) MAA is the only metric that can be calculated from public data
Correct Answer: B
Explanation: MAA captures users whose activity patterns don't require daily transactions (many legitimate users transact weekly or monthly). DAA is noisy and misses casual but genuine users. MAA smooths these variations while still measuring actual participation. A is superficial reasoning. C is incorrect—neither inherently excludes bots. D is factually wrong—all metrics are calculable from public data.
2. Retention Interpretation:
A new cohort shows 45% retention at Week 1 and 40% retention at Week 4. An older cohort showed 35% retention at Week 1 and 20% at Week 4. What does this comparison suggest?
A) The network is declining because retention percentages are below 50%
B) The newer cohort has better retention, suggesting improved product-market fit or user quality
C) The metrics are incomparable because cohorts are different sizes
D) No conclusion can be drawn from two cohorts alone
Correct Answer: B
Explanation: The newer cohort retained more users at both Week 1 (45% vs 35%) and Week 4 (40% vs 20%), suggesting improvement in user quality or product-market fit. Higher retention at comparable timeframes indicates healthier engagement. A applies arbitrary threshold. C misses that retention is a percentage, already normalized. D is overly conservative—clear improvement is visible.
3. Distribution Analysis:
You observe that the top 100 XRP addresses hold 50% of supply. What additional information is MOST important before concluding the network is "too concentrated"?
A) The current XRP price
B) How these holdings compare to Bitcoin and Ethereum
C) What proportion of these addresses are known entities (Ripple escrow, exchanges)
D) The total number of XRP transactions per day
Correct Answer: C
Explanation: Concentration metrics are misleading without entity attribution. If 40% of that 50% is Ripple escrow (structural) and another 5% is exchange cold wallets (representing millions of users), the "concentration" has different meaning than 50% held by 100 anonymous whales. A is irrelevant to concentration. B provides context but doesn't explain the concentration. D measures activity, not distribution.
4. Account Creation:
New account creation spikes from 8,000/day to 40,000/day for one week. What investigation should you prioritize?
A) Celebrate the growth and report it as adoption success
B) Check funding amounts, funding sources, and post-creation activity rates
C) Assume it's spam and ignore it in your analysis
D) Wait one year to see if the accounts are still active
Correct Answer: B
Explanation: Spikes require investigation before interpretation. Checking funding patterns (minimum reserve vs larger amounts), funding sources (diverse vs single source), and post-creation activity (genuine use vs abandon) distinguishes real adoption from artificial inflation. A assumes quality without evidence. C assumes spam without evidence. D is impractical for timely analysis.
5. DAU/MAU Ratio:
XRPL shows DAU/MAU ratio of 0.18 while a competing smart contract platform shows 0.35. What is the MOST appropriate interpretation?
A) The competitor is definitively healthier with more engaged users
B) XRPL is failing because engagement is below industry standards
C) Different use cases may have different natural engagement patterns—payments may not require daily activity
D) The metrics are not comparable because the networks are different sizes
Correct Answer: C
Explanation: Usage frequency differs by application. A smart contract platform with DeFi may naturally have daily users (yield farming, trading). A payment network may have legitimate users who transact weekly or monthly. Lower DAU/MAU doesn't indicate failure if the use case doesn't require daily engagement. A and B ignore use-case context. D is incorrect—ratios are already normalized.
- Glassnode Academy: Active address methodology
- CoinMetrics: Address activity metrics documentation
- Amplitude/Mixpanel blog: Cohort retention methodology (app-focused but principles apply)
- a16z crypto: Network effect metrics
- Rich lists: XRPScan, Bithomp
- Academic papers on cryptocurrency wealth distribution
For Next Lesson:
Lesson 8 examines DEX Metrics—measuring trading activity, liquidity depth, and market health on XRPL's native decentralized exchange.
End of Lesson 7
Total words: ~6,800
Estimated completion time: 55 minutes reading + 4-5 hours for deliverable
Key Takeaways
Accounts ≠ Users
: One user can have multiple addresses; one address (exchange) can represent millions of users. Never equate account count with user count.
Active > Total
: Monthly Active Addresses (MAA) measures actual participation. Total accounts is a vanity metric inflated by abandoned and spam accounts.
Retention reveals quality
: A network with high new account creation but poor retention isn't growing—it's churning. Cohort retention analysis separates sustainable growth from temporary spikes.
Distribution context matters
: XRP is highly concentrated, but so is all crypto. Ripple/escrow holdings and exchange wallets explain much concentration. Track trends, not absolute levels.
DAU/MAU measures engagement depth
: A ratio of 0.2 means 20% of monthly users are active daily. Higher ratios indicate more habitual, sticky usage. ---