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:
- Order flow: trade counts, buy and sell volume over the last 3, 10, 30 and 120 seconds, average buy size, the largest recent sell.
- Curve: SOL in the bonding curve, its peak so far, drawdown from the peak and how fast it is filling.
- Holders: unique buyers, concentration in the top ten wallets and in wallets that bought in the launch block.
- Creator: how many tokens the creator wallet launched before, how many graduated, and whether the creator has sold.
- Context: launch tool and metadata host, fee tier and hour of day.
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:
| Rule | Value | Why |
|---|---|---|
| Model score | at least +0.010 | The cutoff sits between the top 0.5% and top 1% of scores. Below it, held-out tests lost money on average. |
| Fast-ramp guard | skip above 45 SOL in under 15 s | Tokens that fill this fast are often coordinated dumps. |
| Token age | 5 s to 30 min | Enough trades to score, still early on the curve. |
| Curve size | 1 to 84 SOL | Leaves room before graduation at about 85 SOL. |
| Activity | 5+ trades and 5+ buyers in 10 s | Ignores tokens nobody is trading. |
| One entry per token | 1 | No averaging down, no re-entries. |
| Own token | never | The agent never buys or sells $SCALP, and never sells a token it did not buy. |
Size and risk
| Limit | Value | Effect |
|---|---|---|
| Size per trade | 0.2 SOL | Fixed size, so one bad trade can’t end the run. |
| Open positions | at most 2 | New signals wait until a slot frees up. |
| Daily loss limit | 0.33 SOL | No new entries for the rest of the UTC day once reached. |
| Equity floor | 0.7 SOL | The agent stops trading below it. |
| Losing streak | 8 in a row | Entries pause for 10 minutes. |
| Feed check | 3 s without data | Entries 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:
| Exit | Trigger |
|---|---|
| Loss floor | down 35% from entry |
| Trailing stop | once up 60%, sell after giving back 40% of the peak gain |
| Break-even | once up 25%, sell if it falls back to the entry price |
| Graduation | the token migrates to PumpSwap; the agent sells there |
| Time limit | held for 30 min |
There is no fixed take-profit: winners run until the trailing stop or graduation.
Execution
- Routing: transactions go through Helius Sender on its staked-connection route, from a machine about 5 ms from the Helius endpoint.
- MEV protection: every transaction carries Jito’s “don’t front” marker, so block builders that honour it won’t place it behind a sandwich.
- Slippage: buys allow 4%; if the price has moved further the buy is skipped. Sells start at 8% and widen on each retry; loss-floor and time exits start at 20%. Nothing goes above 40%.
- Retries: a sell that misses its limit is retried with wider slippage until it fills.
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:
- Realised P&L: for each token, SOL received from sells minus SOL spent on buys, counted once the wallet’s last trade in that token is a sell. Open positions don’t count until closed.
- Win rate: share of closed tokens with positive realised P&L.
- Typical entry, hold and size: medians of token age at the first buy, time from first buy to last sell, and buy size.
- Window: the last 24 hours, or since tracking began if that is more recent. Amounts use the trade’s SOL value; fees paid outside the trade are not included.
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
- The model looks for strong early momentum. That happens mostly in US evening and night hours, so daytime can pass with no trades.
- In held-out tests the top-scoring tokens were profitable on average and the rest were not. Live results can differ, and past results don’t predict future ones.
- A small share of high-scoring tokens are coordinated dumps that fall faster than any exit can react.
- Paper fills are an estimate. Live fills can be worse.
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
| Endpoint | Key | Returns |
|---|---|---|
GET /v1/live | no | The latest bot snapshot, tracked-wallet stats, recent scores and reviews. Cached for 2 s. |
GET /v1/trades | yes | Closed trades with Claude’s review. since, limit (max 500). |
GET /v1/scores | yes | Model scores for new tokens. since, limit (max 1000). |
GET /v1/wallets | yes | Tracked wallets with 24-hour and 7-day stats. |
GET /v1/wallets/{address}/trades | yes | One tracked wallet’s observed buys and sells. since, limit (max 1000). |
GET /v1/reviews | yes | Claude’s trade reviews. since, limit (max 200). |
GET /v1/stats | yes | Totals 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": "…"}.