Tweet-Price Correlation
Analyze how crypto founder tweets correlate with token price movements. Interactive candlestick charts with tweet markers, impact statistics, and CSV export.
Data from tweet-price-charts by rohunvora.
Dashboard
Open dashboard/price-correlation.html in your browser or visit xactions.app/price-correlation.
Features
- Asset selector — switch between 15 tracked tokens ($PUMP, $HYPE, $ASTER, $LAUNCHCOIN, $JUP, $MON, $USELESS, $ZORA, $META, $WIF, $XPL, $FARTCOIN, $WLD, $ZEC, $GORK)
- TradingView candlestick chart — real OHLCV price data with 15m/1h/1D timeframes
- Tweet markers — hover for tweet text, engagement stats, 1h/24h price impact
- Data table — sortable, searchable, CSV export of all tweet events
- About view — tweet-day vs no-tweet-day comparison, impact scatter plot, summary stats
Tracked Assets
| Token | Founder | Network | Tweets |
|---|---|---|---|
| $PUMP | @a1lon9 | Solana | 109 |
| $HYPE | @chameleon_jeff | Hyperliquid | — |
| $ASTER | @cz_binance | BSC | — |
| $LAUNCHCOIN | @pasternak | Solana | — |
| $JUP | @weremeow | Solana | — |
| $MON | @keoneHD | Monad | — |
| $USELESS | @theunipcs | Solana | — |
| $ZORA | @js_horne | Base | — |
| $META | @metaproph3t | Solana | — |
| $WIF | @blknoiz06 | Solana | — |
| $XPL | @pauliepunt | BSC | — |
| $FARTCOIN | @DipWheeler | Solana | — |
| $WLD | @sama | Ethereum | — |
| $ZEC | @mert | Zcash | — |
| $GORK | @elonmusk | Solana | — |
Deep Linking
Link directly to an asset with a URL hash:
price-correlation.html#pump
price-correlation.html#hype
price-correlation.html#gork
Data Format
All data lives in dashboard/data/tweet-price/. Structure:
dashboard/data/tweet-price/
├── assets.json # Master asset list
├── pump/
│ ├── tweet_events.json # Tweet events with price impact
│ ├── prices_1d.json # Daily OHLCV candles
│ ├── prices_1h.json # Hourly OHLCV candles
│ ├── prices_15m.json # 15-minute candles (some assets)
│ └── stats.json # Pre-computed statistics
├── hype/
│ └── ...
└── (13 more assets)
Tweet Event Schema
{
"tweet_id": "1944804295611650538",
"asset_id": "pump",
"asset_name": "PUMP",
"founder": "a1lon9",
"timestamp": 1752512451,
"timestamp_iso": "2025-07-14T13:00:51Z",
"text": "the ticker is $PUMP",
"likes": 4052,
"retweets": 335,
"replies": 1668,
"impressions": 557030,
"price_at_tweet": 0.00580901,
"price_1h": 0.00580901,
"price_24h": 0.00565352,
"change_1h_pct": 0.0,
"change_24h_pct": -2.68,
"market_cap_at_tweet": 5808947550.65
}
Candle Schema
{
"t": 1752523200,
"o": 0.00556425,
"h": 0.00597475,
"l": 0.00537395,
"c": 0.00552439,
"v": 1344653.89
}
Fields: t (unix timestamp), o (open), h (high), l (low), c (close), v (volume).
Stats Schema
{
"summary": {
"total_tweets": 109,
"tweets_with_price": 109,
"date_range": { "start": "2025-07-14", "end": "2026-01-15" },
"total_days_analyzed": 186
},
"daily_comparison": {
"tweet_day_count": 72,
"tweet_day_avg_return": 1.52,
"tweet_day_win_rate": 54.2,
"no_tweet_day_count": 113,
"no_tweet_day_avg_return": -1.06,
"no_tweet_day_win_rate": 39.8
}
}
Browser Script
Run scripts/tweetPriceCorrelation.js in your browser DevTools console on any X/Twitter profile page. It:
- Scrapes tweets from the current timeline
- Fetches prices from CoinGecko or GeckoTerminal
- Aligns each tweet to the nearest price candle
- Computes 1h and 24h price impact
- Exports JSON + CSV results
// Configure before running:
const CONFIG = {
TOKEN_ID: 'solana', // CoinGecko token ID
NETWORK: '', // GeckoTerminal network (alternative)
POOL_ADDRESS: '', // GeckoTerminal pool (alternative)
WINDOWS: [1, 24], // Impact windows in hours
MAX_TWEETS: 200,
};
Node.js Module
import { analyzeTweetPriceCorrelation } from 'xactions/analytics';
const result = await analyzeTweetPriceCorrelation({
tweets: [{ timestamp: 1700000000000, text: 'GM' }],
tokenId: 'solana',
windows: [1, 24],
});
console.log(result.aligned); // Tweets with price data attached
console.log(result.stats); // Correlation statistics
Functions
| Function | Description |
|---|---|
fetchCoinGeckoPrices(tokenId, from, to) |
Fetch hourly prices from CoinGecko |
fetchGeckoTerminalPrices(network, pool, from, to) |
Fetch OHLCV from GeckoTerminal |
alignTweetsWithPrices(tweets, prices, windows) |
Align tweets to nearest price point |
computeCorrelationStats(aligned) |
Compute aggregate statistics |
analyzeTweetPriceCorrelation(options) |
Full pipeline: fetch + align + stats |
API Endpoint
POST /api/analytics/price-correlation
Request body:
{
"tweets": [
{ "timestamp": 1700000000000, "text": "GM" }
],
"tokenId": "solana",
"windows": [1, 24]
}
Or for DEX tokens:
{
"tweets": [...],
"network": "solana",
"poolAddress": "0x...",
"windows": [1, 24]
}
Response:
{
"aligned": [...],
"stats": { "totalTweets": 109, "avgChange24h": 1.52, "winRate": 54.2 },
"meta": { "token": "solana", "priceSource": "coingecko", "pricePoints": 4444 }
}