Balance Range | Number of Addresses | Cumulative Balance | Share_of_Total (%) | |
---|---|---|---|---|
1 | (10M+) Mega Whale | 10 | 13533633355.105696 | 99.70584041168 |
2 | (1M-10M) | 6 | 21219030.795531 | 0.156326186965 |
3 | (100K-1M) | 34 | 15723328.501642 | 0.115837901116 |
4 | (10K-100K) | 72 | 2728919.770107 | 0.020104670487 |
5 | (1K-10K) | 58 | 243821.511985 | 0.001796297278 |
6 | (100-1K) | 39 | 12391.438589 | 0.000091290991 |
7 | (<100) Tiny | 19 | 439.984627 | 0.000003241483 |
10Blockchain3) Distribution Analysis: Whales vs. Retail (Ethereum)
Updated 2025-02-25
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
›
⌄
-- 1) Récupérer la balance max de chaque adresse sur COOK
WITH cook_balances AS (
SELECT
user_address,
MAX(balance) / 1e18 AS max_balance
FROM ethereum.core.fact_token_balances
WHERE contract_address = LOWER('0x9F0C013016E8656bC256f948CD4B79ab25c7b94D')
GROUP BY user_address
),
-- 2) Binner les adresses selon leur balance
binned AS (
SELECT
CASE
WHEN max_balance < 100 THEN '(<100) Tiny'
WHEN max_balance < 1e3 THEN '(100-1K)'
WHEN max_balance < 1e4 THEN '(1K-10K)'
WHEN max_balance < 1e5 THEN '(10K-100K)'
WHEN max_balance < 1e6 THEN '(100K-1M)'
WHEN max_balance < 1e7 THEN '(1M-10M)'
ELSE '(10M+) Mega Whale'
END AS balance_range,
COUNT(*) AS holders_count,
SUM(max_balance) AS sum_of_balances
FROM cook_balances
GROUP BY 1
),
-- 3) Calculer la somme totale pour pouvoir en déduire un pourcentage
stats AS (
SELECT SUM(sum_of_balances) AS total_supply
FROM binned
)
-- 4) Résultat final : on ajoute la part relative
SELECT
Last run: 2 months ago
7
336B
3s