| name | whale-tracking |
| description | Monitor whale trades on Polymarket and crypto chains (Solana, ETH, Polygon, ARB, Base, OP) |
| emoji | 🐋 |
| gates | {"envs":{"anyOf":["POLY_API_KEY","BIRDEYE_API_KEY","ALCHEMY_API_KEY"]}} |
Whale Tracking - Complete API Reference
Monitor large trades and positions on Polymarket and crypto chains to identify market-moving activity.
Supported Platforms
Prediction Markets
- Polymarket - WebSocket real-time trade monitoring
Crypto Chains
| Chain | Provider | Features |
|---|
| Solana | Birdeye WebSocket | Token transfers, swaps, NFTs |
| Ethereum | Alchemy WebSocket | ERC-20, ETH transfers |
| Polygon | Alchemy WebSocket | MATIC, tokens |
| Arbitrum | Alchemy WebSocket | L2 activity |
| Base | Alchemy WebSocket | Coinbase L2 |
| Optimism | Alchemy WebSocket | OP ecosystem |
Chat Commands
Polymarket Whale Tracking
/whale start # Start whale monitoring
/whale stop # Stop monitoring
/whale track <address> # Follow specific wallet
/whale untrack <address> # Stop following wallet
/whale top 10 # Top 10 traders by volume
/whale top 10 --period 7d # Top 10 in last 7 days
/whale activity <market> # Whale activity for market
/whale activity "trump" # Search by keyword
/whale recent 20 # Last 20 whale trades
/whale recent 20 --min-size 10000 # Min $10k trades
Crypto Whale Tracking
/crypto-whale start # Start crypto whale tracking
/crypto-whale stop # Stop tracking
/crypto-whale watch solana <address> # Watch Solana wallet
/crypto-whale watch eth <address> # Watch Ethereum wallet
/crypto-whale unwatch <address> # Stop watching
/crypto-whale top solana 10 # Top 10 Solana whales
/crypto-whale top eth 10 # Top 10 ETH whales
/crypto-whale recent solana 20 # Recent Solana whale txs
/crypto-whale recent eth 20 # Recent ETH whale txs
/crypto-whale thresholds # View current thresholds
/crypto-whale threshold solana 50000 # Set Solana threshold to $50k
TypeScript API Reference
Polymarket Whale Tracker
import { createWhaleTracker, isWhaleAddress, getMarketWhaleActivity } from 'clodds/feeds/polymarket/whale-tracker';
const tracker = createWhaleTracker({
minTradeSize: 10000,
minPositionSize: 50000,
enableRealtime: true,
});
tracker.on('trade', (trade) => {
console.log(`🐋 Whale ${trade.side} $${trade.usdValue.toLocaleString()}`);
console.log(` Market: ${trade.marketQuestion}`);
console.log(` Address: ${trade.address}`);
console.log(` Price: ${trade.price}`);
});
tracker.on('positionOpened', (position) => {
console.log(`📈 New whale position`);
console.log(` Address: ${position.address}`);
console.();
.();
});
tracker.(, {
.();
.();
});
tracker.();
tracker.();
tracker.();
tracked = tracker.();
tracker.();
Check Whale Status
const isWhale = await isWhaleAddress('0x1234...', 100000);
const activity = await getMarketWhaleActivity('market-slug');
console.log(`Total whale volume: $${activity.totalVolume.toLocaleString()}`);
console.log(`Whale trades: ${activity.tradeCount}`);
console.log(`Net whale sentiment: ${activity.sentiment}`);
console.log(`Top whales:`);
for (const whale of activity.topWhales) {
console.log(` ${whale.address}: $${whale.volume.toLocaleString()}`);
}
Top Traders
const topTraders = await tracker.getTopTraders({
period: '7d',
limit: 10,
minVolume: 50000,
minWinRate: 0.5,
});
for (const trader of topTraders) {
console.log(`${trader.rank}. ${trader.address}`);
console.log(` Volume: $${trader.volume.toLocaleString()}`);
console.log(` Win rate: ${(trader.winRate * 100).toFixed(1)}%`);
console.log(` P&L: $${trader.pnl.toLocaleString()}`);
}
Crypto Whale Tracker
import { createCryptoWhaleTracker } from 'clodds/feeds/crypto/whale-tracker';
const cryptoTracker = createCryptoWhaleTracker({
chains: ['solana', 'ethereum', 'polygon', 'arbitrum', 'base', 'optimism'],
thresholds: {
solana: 10000,
ethereum: 50000,
polygon: 5000,
arbitrum: 10000,
base: 10000,
optimism: 10000,
},
birdeyeApiKey: process.env.BIRDEYE_API_KEY,
alchemyApiKey: process.env.ALCHEMY_API_KEY,
});
cryptoTracker.on('transaction', (tx) => {
console.log(`🐋 ${tx.chain.toUpperCase()}`);
console.log();
.();
.();
.();
.();
.();
});
cryptoTracker.(, {
.();
});
cryptoTracker.();
cryptoTracker.(, );
cryptoTracker.(, );
cryptoTracker.(, );
recent = cryptoTracker.(, {
: ,
: ,
});
topSolana = cryptoTracker.(, );
topEth = cryptoTracker.(, );
cryptoTracker.();
Alert Configuration
Polymarket Alerts
tracker.setAlertConfig({
minTradeSize: 25000,
alertChannels: ['telegram', 'discord'],
soundEnabled: true,
markets: ['politics', 'crypto'],
});
Crypto Alerts
cryptoTracker.setAlertConfig({
solana: {
minValue: 50000,
tokens: ['SOL', 'JUP', 'BONK'],
},
ethereum: {
minValue: 100000,
tokens: ['ETH', 'USDC', 'PEPE'],
},
});
Data Export
await tracker.exportTrades({
format: 'csv',
path: './whale-trades.csv',
period: '30d',
});
await tracker.exportTopTraders({
format: 'json',
path: './top-traders.json',
limit: 100,
});
Best Practices
- Set reasonable thresholds - Start with $10k for active markets
- Focus on specific markets - Filter by category to reduce noise
- Track known smart money - Follow wallets with proven track records
- Combine with copy trading - Use whale data to inform copy decisions
- Monitor sentiment shifts - Watch for net whale direction changes
- Check position sizes - Large positions signal conviction