methodology

how the score is calculated, what gets excluded, and what we cannot see. the math is honest. the conclusions are mean. both are intentional.

the score

peggy replays every memecoin you sold on Solana and computes how much SOL you'd have if you'd never sold. two numbers come out.

diamond cope

would-be value if you'd just held everything you sold until today.

diamond_cope_sol = Σ max(0, current_price_usd - avg_sell_price_usd) × tokens_sold
                / current_sol_usd

summed across every scored position. for most memecoin traders this is 0 SOL — almost all memecoins go to zero, so holding them until now means holding nothing.

peak cope

would-be value if you'd sold every position at its all-time high.

peak_cope_sol = Σ max(0, ATH_price_usd - avg_sell_price_usd) × tokens_sold
              / current_sol_usd

this is the more useful number in a market where everything dies. it captures the actual potential you fumbled at some moment in history.

worst single sell

across every individual sell transaction, the one with the highest (ATH_price − sell_price) × tokens_sold. one transaction. one moment. one number to share.

tier

tiers are assigned by peak cope. ranges, in SOL:

we tier on peak cope (not diamond) because diamond cope tends to 0 for serious memecoin traders. peak captures the real fumble.

the depth selector

we rank your positions by total USD sold (descending) and let you pick how many of the top positions to fully score. bigger sells = bigger potential fumbles, so top N always captures your worst cope. tail positions are typically dust.

data sources

solana tracker
wallet PnL · individual trades · per-token ATH · current price · current liquidity

prices are converted USD ↔ SOL using the current SOL/USD rate. per-trade time-accurate conversion is a phase-2 problem.

what gets excluded

never sold
no PnL to compute, no cope possible
dust
positions below $1 invested or $1 sold
no ATH data
solana tracker has no recorded peak for this token
sold at/above ATH
either an honest top-sell, or our data missed the real peak. either way, no cope to extract.

what we don't catch (yet)

spl ↔ spl swaps
we only score sells where the trader received SOL
airdrop sells
no cost basis from a buy → no usable peak cope math
pre-indexing ATHs
peaks that happened before solana tracker started indexing the token are invisible

limitations

this is an entertainment product. the math is honest, but:

  1. ATHs are noisy on memecoins. a $5M mcap "ATH" on $200 of volume can still inflate your peak cope. we filter dust positions but the ATH itself is not liquidity-floor-checked yet.
  2. aggregate cope uses the average sell price across all of a token's sells. the single-sell card uses per-trade data.
  3. SOL/USD conversion uses the current rate, not the trade-time rate. trades from a year ago at higher SOL prices are slightly under-valued in SOL terms.

if you find a bug, post the wallet and we'll look at it.

cache

receipts are cached for 24 hours after scoring. share urls (peggy.cash/r/<wallet>) read straight from the cache — instant for repeat visitors.

why

because the number hurts. and the number that hurts is the one people share. that's the whole thing.