Step 1 — Collection score
Each card adds weight to your collection. NOTHING adds nothing. A full set of every valuable card is 100% collection potential.
| Tier | Cards | Weight |
|---|---|---|
| Mythic | DOGE | 100 |
| Epic | PEPE | 40 |
| Gold | CHAD, SHIB, TROLL, TRIPLE T, NPC | 12 each |
| Silver | LOL GUY, WOJAK | 5 each |
| None | NOTHING | 0 |
| Max collection score (all valuable cards) | 210 | |
collection_potential = your_card_score ÷ 210
Step 2 — Holder score
Your token share and collection potential multiply together. Supply share is linear: 2% of supply earns exactly double 1% when collections match.
holder_score = supply_share × collection_potential
supply_share is a decimal (0.02 = 2% of total supply).
Step 3 — Daily payout
Half of that day's fees go to holders. Every top-50 wallet gets a slice proportional to its holder score. The pool is always fully distributed.
daily_payout = (holder_score ÷ Σ all top-50 scores) × daily_fees × 0.5
Example: one whale holds 5% supply with a full collection (score 0.05 × 1.0 = 0.05). Forty-nine wallets each hold 1% with a modest collection (~8% potential, score 0.01 × 0.08 = 0.0008). The whale captures most of the holder pool because they lead on both axes.
Python calculator
Runnable script: caseopening/scripts/daily_payout.py
"""Daily $PUMPCASE holder payout calculator (top 50 wallets)."""
CARD_WEIGHTS = {
"doge": 100,
"pepe": 40,
"chad": 12,
"shib": 12,
"troll": 12,
"triple-t": 12,
"npc": 12,
"lol-guy": 5,
"wojak": 5,
"nothing": 0,
}
MAX_COLLECTION_SCORE = sum(
w for cid, w in CARD_WEIGHTS.items() if cid != "nothing"
)
def collection_potential(owned_card_ids: list[str]) -> float:
score = sum(CARD_WEIGHTS.get(cid, 0) for cid in owned_card_ids)
return score / MAX_COLLECTION_SCORE
def holder_score(supply_share: float, owned_card_ids: list[str]) -> float:
"""supply_share is fraction of total supply (0.02 = 2%)."""
return supply_share * collection_potential(owned_card_ids)
def daily_payouts(daily_fees: float, holders: list[dict]) -> list[dict]:
"""
holders: [{"wallet": str, "supply_share": float, "cards": [card_ids]}, ...]
Top 50 wallets by $PUMPCASE balance. Returns payouts sorted largest first.
"""
holder_pool = daily_fees * 0.5
scored = [(h, holder_score(h["supply_share"], h["cards"])) for h in holders]
total_score = sum(s for _, s in scored)
if total_score == 0:
return []
results = []
for h, score in scored:
share = score / total_score
results.append({
**h,
"collection_potential": collection_potential(h["cards"]),
"holder_score": score,
"share_of_pool": share,
"payout_usd": holder_pool * share,
})
return sorted(results, key=lambda x: x["payout_usd"], reverse=True)
if __name__ == "__main__":
fees_today = 10_000.0
full_set = [cid for cid in CARD_WEIGHTS if cid != "nothing"]
modest_set = ["shib", "lol-guy"] # 17 / 210 ≈ 8.1% potential
holders = [
{"wallet": "Whale…ABC", "supply_share": 0.05, "cards": full_set},
]
for i in range(49):
holders.append({
"wallet": f"Holder{i + 1:02d}…",
"supply_share": 0.01,
"cards": modest_set,
})
pool = fees_today * 0.5
print(f"Daily fees: ${fees_today:,.0f}")
print(f"Holder pool (50%): ${pool:,.0f}\n")
for row in daily_payouts(fees_today, holders)[:6]:
print(
f"{row['wallet']:14} "
f"supply {row['supply_share'] * 100:4.1f}% "
f"collection {row['collection_potential'] * 100:5.1f}% "
f"→ ${row['payout_usd']:8,.2f} ({row['share_of_pool'] * 100:.1f}% of pool)"
)
print("…")
Run: py caseopening/scripts/daily_payout.py