Calculating Token Emission and Distribution
Calculating emission and distribution is a technical document that converts strategic tokenomics decisions into concrete numbers: how many tokens will be in circulation each month, when unlocks occur, what circulating supply to expect by listing.
Distribution Structure
Standard structure for utility/governance token:
Total Supply: 1,000,000,000 (1B tokens)
Team: 150,000,000 (15%) → 12M cliff + 36M linear vesting
Investors (Seed): 100,000,000 (10%) → 6M cliff + 24M linear vesting
Investors (A): 80,000,000 (8%) → 3M cliff + 18M linear vesting
Public Sale / IDO: 50,000,000 (5%) → 10-20% TGE unlock + 6-12M vesting
Ecosystem Fund: 300,000,000 (30%) → 48M linear release
Treasury: 200,000,000 (20%) → DAO controlled, multi-year
Liquidity: 80,000,000 (8%) → 100% TGE for initial liquidity
Advisors: 40,000,000 (4%) → 6M cliff + 18M linear
Calculating Vesting Schedules
import pandas as pd
from datetime import datetime, timedelta
def calculate_vesting(
amount: float,
cliff_months: int,
vesting_months: int,
tge_percent: float = 0,
tge_date: datetime = None
) -> pd.DataFrame:
records = []
tge = tge_date or datetime.now()
# TGE unlock
if tge_percent > 0:
records.append({
"month": 0,
"date": tge,
"unlocked": amount * tge_percent / 100,
"cumulative_percent": tge_percent
})
# After cliff — linear vesting
monthly_unlock = amount * (1 - tge_percent / 100) / vesting_months
for month in range(1, cliff_months + vesting_months + 1):
date = tge + timedelta(days=30 * month)
if month <= cliff_months:
unlocked = 0 # cliff period
else:
unlocked = monthly_unlock
cumulative = (tge_percent +
(1 - tge_percent/100) * 100 *
max(0, month - cliff_months) / vesting_months)
records.append({
"month": month,
"date": date,
"unlocked": unlocked,
"cumulative_percent": min(100, cumulative)
})
return pd.DataFrame(records)
# Example calculation
team_vesting = calculate_vesting(
amount=150_000_000,
cliff_months=12,
vesting_months=36,
tge_percent=0,
tge_date=datetime(2024, 6, 1)
)
Circulating Supply Projection
Key chart for investors — cumulative circulating supply:
| Month | Team | Investors | Ecosystem | Public | Liquidity | TOTAL (millions) |
|---|---|---|---|---|---|---|
| TGE (M0) | 0 | 0 | 0 | 5M | 80M | 85M (8.5%) |
| M3 | 0 | 13.3M | 6.25M | 7.5M | 80M | 107M |
| M6 | 0 | 26.7M | 12.5M | 10M | 80M | 129M |
| M12 | 0 | 53.3M | 25M | 15M | 80M | 173M |
| M18 | 25M | 80M | 37.5M | 20M | 80M | 243M |
| M36 | 125M | 180M | 75M | 50M | 80M | 510M |
| M48 | 150M | 180M | 150M | 50M | 80M | 610M |
Investors look at: how much supply hits the market immediately (TGE unlock), when is the first major unlock (dump potential), how long supply grows (inflation).
Signals for Model Revision
- TGE circulating supply > 20% of total supply — significant selling pressure at listing
- Team + insiders > 40% — centralization risk and confidence issues
- Too fast ecosystem release — no incentive to hold token long-term
- Ecosystem released "at team discretion" without governance — centralized risk
Calculating emission and distribution: 1-2 weeks. Includes Excel/Python model with monthly breakdown, unlock schedule visualization, and selling pressure analysis.







