Connecting

How the agent trades

PUMP SCALP is an automated trading agent for pump.fun. It reads every trade on pump.fun as it happens, scores each new token in its first seconds, and buys only the small share that clears its cutoff. Values in teal are read from the running bot.

Discovery

The agent subscribes to Helius LaserStream, a gRPC stream of Solana transactions, filtered to the pump.fun program. Every token launch and every buy and sell arrives within a few hundred milliseconds of landing on chain. The agent keeps a running state for each live token: its bonding curve, recent trades, buyers, sellers and its creator’s history.

Scoring

A gradient-boosted model (LightGBM) scores tokens from about five seconds after launch. The score is the model’s estimate of the trade’s net return after fees and slippage, under the agent’s own exit rules. It looks at 48 measurements of the token at that moment:

The model was trained on recorded pump.fun launches and tested on later days it had not seen. Scores are recalculated as new trades arrive.

Entry rules

Most tokens are skipped. The agent buys only when all of these hold:

RuleValueWhy
Model scoreat least +0.010The cutoff sits between the top 0.5% and top 1% of scores. Below it, held-out tests lost money on average.
Fast-ramp guardskip above 45 SOL in under 15 sTokens that fill this fast are often coordinated dumps.
Token age5 s to 30 minEnough trades to score, still early on the curve.
Curve size1 to 84 SOLLeaves room before graduation at about 85 SOL.
Activity5+ trades and 5+ buyers in 10 sIgnores tokens nobody is trading.
One entry per token1No averaging down, no re-entries.
Own tokenneverThe agent never buys or sells $SCALP, and never sells a token it did not buy.

Size and risk

LimitValueEffect
Size per trade0.2 SOLFixed size, so one bad trade can’t end the run.
Open positionsat most 2New signals wait until a slot frees up.
Daily loss limit0.33 SOLNo new entries for the rest of the UTC day once reached.
Equity floor0.7 SOLThe agent stops trading below it.
Losing streak8 in a rowEntries pause for 10 minutes.
Feed check3 s without dataEntries pause; open positions are priced from the chain directly.

Exits

Every open position is checked on each trade in its token. The first rule that fires closes it:

ExitTrigger
Loss floordown 35% from entry
Trailing stoponce up 60%, sell after giving back 40% of the peak gain
Break-evenonce up 25%, sell if it falls back to the entry price
Graduationthe token migrates to PumpSwap; the agent sells there
Time limitheld for 30 min

There is no fixed take-profit: winners run until the trailing stop or graduation.

Execution

Claude reviews

After each trade closes, a review agent sends the trade’s facts (score, cutoff, token age, curve size, exit, hold time, peak and final return) to Claude. Claude writes a short review: why the agent entered, what happened, and one setting change worth testing, or none. Reviews are published on the site and through the API. Suggested changes are tested in paper first; Claude does not change the agent’s settings on its own.

Tracked wallets

The leaderboard compares the agent with five pump.fun wallets we follow. Their trades are read from the same live feed. Results are measured, not reported by anyone:

Paper and live

In paper mode the agent runs the full strategy on the live feed but simulates its fills: a buy fills at the first trade seen after a realistic delay, slippage limits are enforced, and missed fills are counted. No money moves. In live mode it trades from its own wallet. The site’s status always shows which mode is running.

Known limits

Holder share

30% of creator fees and 30% of the agent’s realised trading profits go to $SCALP holders. Creator fees will be split on chain through pump.fun fee sharing from the moment the token launches. The payout schedule for the profit share is published here before launch. Amounts vary with trading and can be zero.

API reference

Base URL https://pumpscalp.com. All responses are JSON and CORS is open. Times are Unix seconds; amounts are SOL.

Get a key

curl -X POST https://pumpscalp.com/v1/keys
# {"key":"psk_…","limit_per_min":60,"note":"Shown once. Send it as the x-api-key header."}

One key per network per 24 hours. The key is shown once; only its hash is stored. Send it as the x-api-key header. Each key can make 60 requests per minute.

Endpoints

EndpointKeyReturns
GET /v1/livenoThe latest bot snapshot, tracked-wallet stats, recent scores and reviews. Cached for 2 s.
GET /v1/tradesyesClosed trades with Claude’s review. since, limit (max 500).
GET /v1/scoresyesModel scores for new tokens. since, limit (max 1000).
GET /v1/walletsyesTracked wallets with 24-hour and 7-day stats.
GET /v1/wallets/{address}/tradesyesOne tracked wallet’s observed buys and sells. since, limit (max 1000).
GET /v1/reviewsyesClaude’s trade reviews. since, limit (max 200).
GET /v1/statsyesTotals by mode, last-24-hour scoring counts and bot status.

Example

curl "https://pumpscalp.com/v1/trades?limit=1" -H "x-api-key: psk_…"
{"trades":[{"id":"…:1793377000","mint":"…pump","symbol":"NOVA","mode":"paper",
  "open_t":1793377000,"close_t":1793377120,"spend_sol":0.2,"pnl_sol":0.041,
  "ret":0.206,"hold_s":120,"peak_ret":0.62,"reason":"Trail",
  "entry_curve_sol":34.1,"entry_age_s":5.8,"ev":0.014,"review":"…"}]}

Errors

401 missing or unknown key, 429 rate limit or key limit reached, 404 unknown path. Error bodies are {"error": "…"}.