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.

Phase 1 establishes the ground truth about every wallet the system observes. It answers one question: given everything this wallet has ever done on Pump.fun, how good are they? The four services in Phase 1 — PeakTracker, PnlCalculator, FeatureComputer, and WalletScorer — work together to produce the wallet alpha scores that feed every downstream model and strategy.

Services overview

FeatureComputer

Runs every 30 minutes. Computes a comprehensive behavioural feature set for up to 5,000 active wallets and writes results to wallet_features.

WalletScorer

Runs every 30 minutes. Combines features into a 7-component alpha score (0–100) for every wallet with at least 10 traded tokens.

PnlCalculator

Pairs buy and sell events per wallet per token using FIFO matching to compute realised P&L, hold times, and win/loss classification.

PeakTracker

Retrospectively measures 1h, 4h, and 24h price peaks after each signal. Produces the ground truth labels used to train the ML models.

OutcomeTracker

Closes the feedback loop for signal quality. Checks every signal against actual on-chain outcomes at 1h, 4h, and 24h intervals. Feeds PeakTracker, model training, and ModelMonitor.

FeatureComputer

The FeatureComputer runs every 30 minutes and processes up to 5,000 wallets that have been active in the last 35 minutes, or that have never had features computed and have bought at least 3 tokens. For each eligible wallet, it computes a comprehensive behavioural feature set from the pumpfun_trades table and writes it into wallet_features. Entry behaviour
FeatureDescription
avg_seconds_after_creationAverage time between token launch and this wallet’s first buy
pct_buys_under_60sShare of buys within the first 60 seconds of a token’s life
pct_buys_under_300sShare of buys within the first 300 seconds
pct_top10_entriesHow often this wallet is among the first 10 buyers
Position sizing
FeatureDescription
avg_sol_per_buyMean buy size in SOL
median_sol_per_buyMedian buy size (less sensitive to outliers)
sol_size_stddevVariance in buy sizing
max_single_buyLargest single buy ever recorded
Hold behaviour
FeatureDescription
avg_hold_time_secondsAverage time between buy and sell
pct_quick_flipsShare of positions exited within 5 minutes
pct_diamond_handsShare of positions held longer than 24 hours
Activity and diversity
FeatureDescription
active_days_30dNumber of distinct days active in the last 30 days
tokens_tradedTotal unique tokens bought
unique_creators_tradedBreadth of creators the wallet engages with
pct_repeat_creator_buysLoyalty to specific creators (can indicate insider relationships)
Returns — computed by PnlCalculator and PeakTracker
FeatureDescription
graduation_rateShare of tokens bought that eventually graduated
win_rateShare of positions closed in profit
sol_weighted_returnReturn weighted by SOL position size
avg_realized_multipleAverage realised multiple across all positions
avg_peak_multipleAverage peak multiple reached
capture_efficiencyRatio of realised return to peak available return
profit_factorGross profit divided by gross loss
return_stddevStandard deviation of returns across positions

Point-in-time correctness

Features are computed with point-in-time correctness — they reflect only what was known at the time of observation, not retroactively adjusted data. 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.
Point-in-time correctness prevents lookahead bias in model training and ensures that historical backtests reflect what was actually knowable at the time a decision would have been made.

WalletScorer

The WalletScorer runs every 30 minutes on wallets whose features have been updated since their last scoring. It requires at least 10 traded tokens to produce a valid score. It computes an alpha score (0–100) from seven independently weighted components:
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
ComponentWeightDescription
Graduation rate20%Share of tokens bought that eventually graduated to Raydium. Normalised against a 50% ceiling.
Win rate20%Share of positions closed in profit.
Capture efficiency15%How much of the available peak return the wallet actually captured. A wallet that consistently sells near the top scores highly.
Return consistency15%Inverse of return standard deviation. High variance hurts the score.
Buy rank10%How early the wallet typically enters relative to other buyers. Earlier entry scores higher.
Recency10%Exponential decay: wallets inactive for 14 or more days lose score progressively.
Discovery10%Average peak multiple of tokens bought. Rewards wallets that find tokens before the crowd.
Confidence scales from 0 to 1 based on trade count, reaching full confidence at 50 traded tokens. A wallet with 10 trades and a score of 80 is weighted differently from one with 200 trades and the same score.
Wallets classified as bots are hard-capped at a maximum alpha score of 30, regardless of their apparent metrics. Bots can accumulate impressive-looking statistics through volume, but their behaviour is not meaningful for signal purposes.

PeakTracker

The PeakTracker retrospectively measures the price peaks reached by tokens after a signal was emitted. It runs continuously and updates signals with:
FieldDescription
peak_multiple_1hHighest price multiple within 1 hour of the signal
peak_multiple_4hHighest price multiple within 4 hours
peak_multiple_24hHighest price multiple within 24 hours
reached_2x_1hBinary: whether the token reached 2× within 1 hour
reached_3x_30mBinary: whether the token reached 3× within 30 minutes
These binary labels are the ground truth targets the ML models train against in Phase 3.

PnlCalculator

The PnlCalculator pairs buy and sell events per wallet per token to compute realised P&L. It uses a FIFO matching approach and records:
  • Realised multiple per position
  • Hold time in seconds
  • Whether the position was a win or a loss
These outputs feed directly into FeatureComputer for the returns feature group and into WalletScorer for win rate and profit factor computation.

OutcomeTracker

The OutcomeTracker closes the feedback loop between signals and actual on-chain outcomes. Every signal gets checked against the token’s price at 1h, 4h, and 24h intervals after the signal fired. This data feeds the PeakTracker (which records peak multiples), model training (which uses the outcomes as binary labels), and the ModelMonitor (which compares predicted vs actual hit rates to detect drift).

Build docs developers (and LLMs) love