Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/0xW1re/solvedocs/llms.txt

Use this file to discover all available pages before exploring further.

The wallet intelligence system is the backbone of Alpha Leak’s edge. A raw buy event on Pump.fun is noise. That same event, attached to a wallet with a 40% graduation rate, a 0.8 capture efficiency, and a consistent history of top-10 entries, is a different thing entirely. Building and maintaining that context for every wallet the system encounters is what the scoring pipeline exists to do.

Wallet discovery

Wallets enter the tracking system through one of three paths.

Graduation-based discovery

When a token graduates (crosses 85 SOL), WalletDiscovery processes all buyers of that token. Wallets that bought early and held are promoted to is_active = true status.

Signal-based discovery

Any wallet that triggers a signal — because it trades alongside a known tracked wallet — is added to the wallets table for future enrichment.

Manual seeding

Wallets can be added directly to the tracked_wallets Redis set for immediate attention, bypassing the discovery process entirely.

Enrichment on arrival

The WalletEnrichment service continuously processes newly discovered wallets, fetching historical Birdeye data to bootstrap their feature profiles without waiting for live trades.
A wallet that was active before the pipeline started can arrive in the system with a complete historical record — WalletEnrichment retroactively fills in its profile from Birdeye data.

The alpha score

The alpha score (0–100) is a single number summarising a wallet’s historical edge. It is designed to reward the behaviours that actually predict future token success.
alpha_score =
  graduation_score   × 0.20   +  // Share of bought tokens that graduated
  win_score          × 0.20   +  // Share of positions closed in profit
  capture_score      × 0.15   +  // Ratio of realised to peak return
  consistency_score  × 0.15   +  // Inverse of return standard deviation
  rank_score         × 0.10   +  // How early the wallet typically enters
  recency_score      × 0.10   +  // Exponential decay for inactive wallets
  discovery_score    × 0.10      // Average peak multiple of tokens bought
Confidence scales from 0 to 1 based on trade count, reaching full confidence at 50 tokens. A wallet with 10 trades and a score of 80 is treated differently from one with 200 trades and a score of 80. Bot penalty — wallets classified as bots are hard-capped at a score of 30, regardless of their apparent metrics. Bots can accumulate impressive-looking stats through volume alone, but their behaviour is not meaningful for signal purposes.

Point-in-time correctness

The alpha score has an important property: it is computed at the time of scoring, using only data available up to that point. When the ML model records wallet_score_at_entry, it captures the score as it was when the signal fired, not the wallet’s current score. This prevents lookahead bias in model training and ensures that historical backtests reflect what was actually knowable at the time. A wallet that became good after a given trade cannot inflate the signal score for that trade retroactively.

Alpha decay

Not all smart-money signals age equally. Some wallets move markets — when they buy, price moves within seconds. Others have a longer information half-life where their signal remains valid for minutes or more. The AlphaDecayTracker computes a per-wallet decay curve: the average return achievable if you had bought at 8 fixed delays after the wallet’s signal.
Delay bucketMeaning
1sNear-instant follow
5sFast automation required
10sTight bot execution
30sModerate-latency execution
60sManual or alert-based trading feasible
120s2-minute window still holds edge
300s5-minute window
600s10-minute window
From this curve, two values are derived:
  • Alpha half-life — the delay at which expected return drops to 50% of the instant return.
  • Optimal follow delay — the delay that maximises expected return (buying instantly is not always optimal).
Wallets with sub-5-second half-lives are useful only for bot execution — they are effectively unmatchable manually. Wallets with half-lives above 60 seconds are far more actionable for alert-based systems.

Bot detection

The BotDetector runs every 30 minutes and classifies wallets across three behavioral patterns.

High-frequency bot

Bought 20+ distinct tokens within a 2-hour window. Characteristic of broad sniping bots that buy every new token regardless of quality.

Micro-buyer bot

Bought 10+ tokens in 6 hours with an average position below 0.05 SOL and very low size variance (stddev < 0.02 SOL). Matches bots testing wallets or accumulating many tiny positions.

Quick-flipper bot

Executed buy-to-sell within 60 seconds on 3 or more tokens in 6 hours. Common in pump-and-dump participants and short-term snipers.

Downstream effects

Detected bots are written to the wallets table with their bot_type, added to the known_bots Redis set, and capped at a maximum alpha score of 30. The is_bot field feeds directly into the ML model.

Copy-trade graph

The copy-trade detection system maps the directional relationship between wallet pairs. When wallet A consistently buys a token 15 seconds before wallet B, across dozens of tokens, it is likely that B is following A through an alert system or automation. The system resolves which wallet is the originator and which is the follower. Signals from followers are treated with lower confidence than signals from originators — a follower’s buy means someone already paid a higher price.
ClassificationLatency profileImplication
bot_copySub-second followingFully automated copy, signal already stale
alert_copy5–30 secondsAlert-driven, slight staleness
manual_copy30–120 secondsHuman acting on notification, more latency tolerance
The three classifications represent meaningfully different latencies and therefore different implications for signal freshness. An originator’s signal in any copy-trade pair carries more weight than the same token appearing as a follower action.

Build docs developers (and LLMs) love