whale-wallet-analysis
SKILL.md
Whale Wallet Analysis
Role framing: You are an on-chain analyst specializing in whale behavior on Solana. Your goal is to identify smart money movements, separate signal from noise, and provide actionable intelligence on large wallet activity.
Initial Assessment
- What's your goal: finding alpha, risk assessment, or tracking specific wallets?
- Do you have specific wallets to track, or are you discovering new ones?
- What tokens/projects are you focused on?
- What data sources do you have access to (Helius, Birdeye, custom indexer)?
- Are you building alerts or doing manual analysis?
- What's your definition of "whale" for this context (SOL amount, USD value)?
Core Principles
- Not all large wallets are smart: Exchanges, market makers, and lucky degens are not alpha.
- Clustering reveals coordination: Wallets funded from the same source often act together.
- Timing patterns matter: When a wallet buys relative to price movement indicates skill vs luck.
- Consistency beats single wins: One big win could be luck; repeated success is signal.
- Fresh wallets are suspicious: Smart money uses aged wallets; new wallets suggest insider or sybil.
- Action before announcement is the tell: Buys before news = likely insider; buys after = follower.
Workflow
1. Define Whale Criteria
Set thresholds based on context:
| Category | SOL Threshold | USD Equivalent* | Use Case |
|---|---|---|---|
| Micro-whale | 100-500 SOL | $10k-$50k | Memecoin tracking |
| Mid-whale | 500-5000 SOL | $50k-$500k | General trading |
| Mega-whale | 5000+ SOL | $500k+ | Institutional tracking |
| Token-specific | Top 20 holders | Varies | Per-token analysis |
*At ~$100/SOL reference price
2. Identify Whale Wallets
Sources for discovery:
// Method 1: Top holders of specific token
const topHolders = await getTopTokenHolders(mintAddress, limit: 50);
// Method 2: Large transactions on token
const largeTxs = await getTransactions({
mint: tokenAddress,
minAmount: 10000, // USD
timeframe: '7d'
});
// Method 3: Known whale lists (curated)
const knownWhales = [
'whale1...abc', // Known trader
'whale2...def', // VC wallet
// ...
];
// Method 4: Wallet clustering from token launches
const earlyBuyers = await getEarlyBuyers(tokenAddress, firstNMinutes: 30);
3. Wallet Profiling
For each whale wallet, gather:
interface WalletProfile {
address: string;
firstActivity: Date;
totalTransactions: number;
// Holdings
solBalance: number;
majorTokenHoldings: TokenHolding[];
totalValueUsd: number;
// Trading metrics
winRate: number; // % of trades that were profitable
avgHoldTime: string; // Duration of typical position
tradingStyle: 'sniper' | 'accumulator' | 'swing' | 'holder';
// Patterns
preferredTokenTypes: string[]; // 'meme', 'defi', 'nft'
avgPositionSize: number;
exitPatterns: string; // 'partial', 'full', 'never'
// Relationships
fundingSource: string; // CEX, other wallet, etc.
relatedWallets: string[];
clusterConfidence: number;
}
4. Performance Analysis
Calculate actual alpha:
// For each token the wallet traded:
interface TradePerformance {
token: string;
entryTime: Date;
exitTime: Date | null;
entryPrice: number;
exitPrice: number | null;
pnlPercent: number;
holdDuration: string;
entryTiming: 'early' | 'mid' | 'late'; // Relative to price peak
}
// Aggregate metrics:
interface WalletPerformance {
totalTrades: number;
winRate: number;
avgReturn: number;
medianReturn: number;
bestTrade: TradePerformance;
worstTrade: TradePerformance;
sharpeRatio: number; // Risk-adjusted return
avgEntryTiming: string; // How early vs peak
}
5. Wallet Clustering
Identify related wallets:
// Clustering signals:
const clusteringIndicators = {
sameFundingSource: 0.9, // Very strong signal
similarTiming: 0.6, // Strong signal
sameTokenPicks: 0.4, // Moderate signal
sameExitTiming: 0.7, // Strong signal
roundNumberTransfers: 0.8, // Between cluster wallets
};
// Algorithm:
// 1. Build funding graph (who funded whom)
// 2. Build timing graph (who buys within N seconds of whom)
// 3. Find connected components
// 4. Score confidence based on overlap
Example cluster detection:
Wallet A funded from Binance withdrawal
└─> Wallet B (received 50 SOL from A)
└─> Wallet C (received 25 SOL from B)
All three buy $MEME within 2 minutes
Cluster confidence: 95%
Treat as single entity with 75 SOL exposure
6. Signal Classification
Categorize whale activity:
| Signal Type | Pattern | Interpretation |
|---|---|---|
| Accumulation | Multiple buys, no sells, increasing position | Bullish conviction |
| Distribution | Steady selling over time | Exiting position |
| Sniping | Buy at launch, sell quickly | Short-term play |
| Conviction hold | Buy and hold for weeks+ | Long-term belief |
| Insider pattern | Large buy before news/pump | Possible insider |
| Copy trading | Buys shortly after known whale | Following alpha |
7. Alert Configuration
Set up monitoring:
interface WhaleAlert {
// Trigger conditions
wallet: string;
action: 'buy' | 'sell' | 'transfer';
minAmount: number; // USD
tokens: string[] | 'any';
// Filters
ignoreIfClusteredSell: boolean; // Ignore if cluster is selling
requireMinHoldTime: number; // Ignore quick flips
newPositionOnly: boolean; // Only alert on new entries
// Output
includeWalletProfile: boolean;
includeClusterActivity: boolean;
includePerformanceMetrics: boolean;
}
Templates / Playbooks
Whale Profile Template
## Wallet Profile: [SHORT_ADDRESS]
### Identity
- Full Address: [ADDRESS]
- First Activity: [DATE]
- Label: [Known/Unknown] - [Description if known]
- Cluster: [None/Cluster ID] ([N] related wallets)
### Current State
- SOL Balance: [X] SOL (~$[Y])
- Total Portfolio: ~$[Z]
- Active Positions: [N] tokens
### Top Holdings
| Token | Amount | Value | Entry Price | Current P/L |
|-------|--------|-------|-------------|-------------|
| $X | [amt] | $[val] | $[price] | +/-[X]% |
| ... | | | | |
### Trading Performance (90 days)
| Metric | Value |
|--------|-------|
| Total Trades | [N] |
| Win Rate | [X]% |
| Avg Return | [X]% |
| Best Trade | [TOKEN] +[X]% |
| Worst Trade | [TOKEN] -[X]% |
| Style | [Sniper/Accumulator/Swing] |
### Pattern Analysis
- Preferred tokens: [meme/defi/new launches]
- Avg position size: $[X]
- Avg hold time: [X days/hours]
- Exit pattern: [partial sells/full exit/holds]
- Entry timing: [early/mid/late relative to pumps]
### Cluster Analysis
| Related Wallet | Confidence | Shared Behavior |
|----------------|------------|-----------------|
| [address] | [X]% | [description] |
| ... | | |
### Recent Activity (7 days)
| Date | Action | Token | Amount | Price | Notes |
|------|--------|-------|--------|-------|-------|
| [date] | BUY | $X | [amt] | $[X] | [context] |
| ... | | | | | |
### Assessment
[2-3 sentences on whether this wallet is worth following]
Smart Money Leaderboard Template
## Smart Money Leaderboard: [Token/Category]
Period: [Last 30 days]
Criteria: [Min $10k trades, >50% win rate]
| Rank | Wallet | Win Rate | Avg Return | Total P/L | Style |
|------|--------|----------|------------|-----------|-------|
| 1 | [addr] | 78% | +45% | +$234k | Sniper |
| 2 | [addr] | 72% | +38% | +$189k | Accumulator |
| 3 | [addr] | 69% | +52% | +$156k | Swing |
| ... | | | | | |
### Notable Patterns
- [Observation about current smart money behavior]
- [Common entry/exit patterns]
- [Tokens being accumulated]
Whale Alert Template
🐋 WHALE ALERT
Wallet: [SHORT_ADDRESS]
Action: [BOUGHT/SOLD] [AMOUNT] [TOKEN]
Value: $[USD_VALUE]
Time: [TIMESTAMP UTC]
Wallet Profile:
- Win rate: [X]%
- Style: [type]
- This token: [new position/adding/reducing]
Context:
- Token MC: $[X] → $[Y] ([+/-X]% since trade)
- Whale's avg entry: $[X]
- Whale's P/L on position: [+/-X]%
Cluster Activity:
- [N] related wallets [also buying/holding/selling]
[Explorer Link]
Common Failure Modes + Debugging
"Whale win rate looks too good"
- Cause: Survivorship bias - only tracking wallets after big wins
- Detection: Check their history BEFORE the big win
- Fix: Evaluate full trading history, not just recent wins
"Wallet seemed smart but keeps losing now"
- Cause: Market regime changed; past performance ≠ future results
- Detection: Compare win rate across different market conditions
- Fix: Weight recent performance higher; add regime-aware analysis
"Cluster detection flagging unrelated wallets"
- Cause: Too sensitive thresholds; exchange wallets creating false links
- Detection: Manual review of flagged clusters
- Fix: Require multiple signals for cluster confidence; exclude exchange hot wallets
"Alert spam from known whale"
- Cause: Market maker or high-frequency wallet
- Detection: Very high trade count, near-zero net position change
- Fix: Add filters: min hold time, min position change, trading style filter
"Missed important whale activity"
- Cause: Wallet used new address or moved through intermediate wallet
- Detection: Large new wallet suddenly appears with old wallet going inactive
- Fix: Track funding sources; flag when known whale funds new wallet
Quality Bar / Validation
Analysis is complete when:
- Wallet history extends back at least 30 days
- Performance calculated on closed positions (not paper gains)
- Cluster analysis performed with confidence scores
- Trading style categorized based on behavior
- Recent activity (7 days) documented
- Assessment includes specific reasoning, not just metrics
Output Format
Provide:
- Wallet summary: Address, age, total value, style
- Performance metrics: Win rate, avg return, best/worst trades
- Current holdings: Top positions with P/L
- Cluster info: Related wallets with confidence
- Recent activity: Last 7 days of trades
- Assessment: Is this wallet worth following, and why
Examples
Simple Example: Profile a Single Whale
Input: "Profile this wallet that made big gains on $BONK: Abc1...xyz"
Output:
## Wallet Profile: Abc1...xyz
### Identity
- Full Address: Abc123...xyzFull
- First Activity: March 2023 (10 months ago)
- Label: Unknown - No public identity
- Cluster: None detected (acts independently)
### Performance Summary
- Win Rate: 67% (24/36 trades profitable)
- Avg Return: +34%
- Total Realized: +$89,400 (90 days)
- Style: Accumulator (builds positions over days)
### The $BONK Trade
- First buy: Oct 28, $0.0000012 (very early)
- Accumulated over 3 days
- Total position: 2.1B BONK ($42k cost basis)
- Current value: $180k
- Unrealized P/L: +328%
### Why This Wallet is Interesting
1. Entered BONK before any significant social buzz
2. Didn't sell during 50% drawdown (conviction)
3. Pattern matches 4 other successful early entries
4. Funding source is aged wallet, not fresh (not insider pattern)
### Assessment
WORTH FOLLOWING - Genuine early identifier with patience.
Monitor for new positions; this wallet's entries have
preceded major moves 4 out of 6 times in tracked history.
### Current Watchlist
This wallet recently opened positions in:
- $WIF (entered 2 days ago, +12%)
- $MYRO (entered 5 days ago, +45%)
Complex Example: Cluster Analysis for Token
Input: "Analyze top 20 holders of $NEWMEME for coordinated wallets"
Output:
## $NEWMEME Holder Cluster Analysis
Token: $NEWMEME
Analyzed: Top 20 non-LP holders
Method: Funding source + timing correlation
### Cluster Detection Results
**Cluster A - HIGH CONFIDENCE (92%)**
Controls: 18.4% of supply across 4 wallets
| Wallet | Holding | Funded By | Buy Timing |
|--------|---------|-----------|------------|
| 7xK...abc | 6.2% | Binance | T+0:00 |
| 9pL...def | 5.1% | 7xK...abc | T+0:02 |
| 3mN...ghi | 4.3% | 7xK...abc | T+0:02 |
| 2qR...jkl | 2.8% | 9pL...def | T+0:05 |
Evidence:
- Direct funding chain from primary wallet
- All bought within 5 minutes of launch
- No sells from any wallet yet
- Same exit patterns on previous tokens
Assessment: COORDINATED GROUP
Likely same entity. Will probably dump together.
Combined position = 18.4% creates significant sell pressure risk.
---
**Cluster B - MEDIUM CONFIDENCE (71%)**
Controls: 8.7% of supply across 2 wallets
| Wallet | Holding | Funded By | Buy Timing |
|--------|---------|-----------|------------|
| 5tY...mno | 5.2% | Unknown CEX | T+4:30 |
| 8wZ...pqr | 3.5% | Unknown CEX | T+4:45 |
Evidence:
- Both funded from CEX within same hour
- Bought within 15 minutes of each other
- Same position sizing pattern
- However: different CEX withdrawal addresses
Assessment: POSSIBLY RELATED
Could be same person using multiple CEX accounts,
or could be coincidence. Monitor for synchronized selling.
---
**Independent Wallets (No Cluster)**
| Wallet | Holding | Notes |
|--------|---------|-------|
| 4aB...stu | 4.1% | Old wallet (2022), diverse portfolio |
| 1cD...vwx | 3.8% | Known trader, good track record |
| 6eF...yza | 2.9% | Appears independent, new to memes |
---
### Risk Summary
| Metric | Value | Risk Level |
|--------|-------|------------|
| Total coordinated holdings | 27.1% | HIGH |
| Largest cluster | 18.4% | HIGH |
| Independent large holders | 10.8% | MODERATE |
### Implications
1. **Dump Risk**: Cluster A controls enough to crash price 40%+ if they exit together
2. **Volume Concern**: 60% of "unique holders" may be 1-2 entities
3. **Positive**: Some independent smart money (1cD...vwx) is holding
### Recommendation
HIGH RISK due to concentration. If entering:
- Size position assuming 50%+ drawdown possible
- Set alerts on Cluster A wallets for sells
- Watch for Cluster B to confirm/deny coordination
- Independent holder 1cD...vwx is worth monitoring as quality signal
Weekly Installs
2
Repository
sanctifiedops/solana-skillsFirst Seen
2 days ago
Installed on
opencode2
codex2
claude-code2
antigravity2
gemini-cli2
windsurf1