Contract Interaction Tier | CONTRACT_COUNT | AVG_INTERACTIONS_PER_CONTRACT | |
---|---|---|---|
1 | Single-Use Contracts | 4513 | 1 |
2 | Barely Used (2-9) | 3962 | 3.42 |
3 | Low Activity (10-99) | 734 | 25.72 |
4 | Moderately Used (100-999) | 173 | 388.52 |
5 | Active Contracts (1k - 10k) | 113 | 3307.02 |
6 | High Activity (10k - 100k) | 43 | 34643.07 |
7 | Very High Activity (100k - 1M) | 4 | 351036.25 |
Kruys-Collinseastern-scarlet
Updated 2025-02-20
99
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
›
⌄
WITH contract_interactions AS (
SELECT
contract_address,
COUNT(*) AS interaction_count
FROM (
SELECT from_address AS contract_address
FROM monad.testnet.fact_transactions tx
JOIN monad.testnet.dim_contracts c ON tx.from_address = c.address
WHERE block_timestamp >= '2025-02-19'
UNION ALL
SELECT to_address AS contract_address
FROM monad.testnet.fact_transactions tx
JOIN monad.testnet.dim_contracts c ON tx.to_address = c.address
WHERE block_timestamp >= '2025-02-19'
) combined
GROUP BY contract_address
)
SELECT
CASE
WHEN interaction_count = 1 THEN 'Single-Use Contracts'
WHEN interaction_count BETWEEN 2 AND 9 THEN 'Barely Used (2-9)'
WHEN interaction_count BETWEEN 10 AND 99 THEN 'Low Activity (10-99)'
WHEN interaction_count BETWEEN 100 AND 999 THEN 'Moderately Used (100-999)'
WHEN interaction_count BETWEEN 1000 AND 9999 THEN 'Active Contracts (1k - 10k)'
WHEN interaction_count BETWEEN 10000 AND 99999 THEN 'High Activity (10k - 100k)'
WHEN interaction_count BETWEEN 100000 AND 999999 THEN 'Very High Activity (100k - 1M)'
ELSE 'Hyper-Active Contracts'
END AS "Contract Interaction Tier",
COUNT(*) AS contract_count,
ROUND(AVG(interaction_count), 2) AS avg_interactions_per_contract
FROM contract_interactions
GROUP BY "Contract Interaction Tier"
ORDER BY MIN(interaction_count);
Last run: 23 days ago
7
275B
2s