The ingestion layer is the system’s entry point to the chain. Every trade, token creation, and graduation event is decoded into a strongly-typed struct the moment it lands — nothing is polled, nothing is batched at the network level. TheDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/alphaleaks60-maker/solvedocs2/llms.txt
Use this file to discover all available pages before exploring further.
EventProcessor then fans each event out simultaneously to every downstream service that needs it, so no single service can delay another. This zero-wait dispatch model is what keeps signal latency low even when dozens of events arrive per second.
Event types
Every piece of activity on Pump.fun produces one of three event types. The pipeline processes all three:| Event type | Trigger | Key fields |
|---|---|---|
trade | Any buy or sell on a bonding curve | mint, wallet, solAmount, tokenAmount, isBuy, virtual reserves |
create | A new token is launched | mint, name, symbol, uri, bondingCurve, creator |
complete | A token graduates to Raydium | mint, bondingCurve |
Event routing
TheEventProcessor is the fan-out hub. Every decoded event is dispatched simultaneously to the services that need it — nothing waits for anything else.
- On create
- On trade
- On complete
When a
create event arrives, three services are notified in parallel:CurveManagerinitialises the in-memory bonding curve state for the new token, ready to receive trade updates immediately.TradeWriterpersists the token record to the database so it is available for historical queries.GenesisWatcheropens a 60-second observation window for the token, tracking its earliest buyer behaviour.
CurveManager
TheCurveManager maintains a live state object for every active token, updated with each incoming trade. This in-memory state is the source of truth for real-time price and market data — reading it never requires a database query.
Each state object tracks:
Reserve data
Real and virtual SOL and token reserves, updated on every trade. Used to compute the current price at any moment.
Activity counters
Total buy and sell counts, unique buyer count, and cumulative SOL volume since launch.
Timeline
First buyer wallet and timestamp. Graduation status and the timestamp at which graduation occurred.
Cache mirror
State is mirrored to the cache layer in real time so the live trader’s exit monitor can read current prices for open positions without touching the database.
When a token crosses 85 SOL in reserves,
CurveManager emits a graduation event. This triggers wallet discovery and promotion to enhanced price tracking automatically.Trade batching
Rather than writing each trade to the database individually,TradeWriter accumulates events in memory and flushes them in batches:
CurveManager state, not from the database, so batching has no effect on signal speed.
Velocity tracking
VelocityTracker maintains rolling buy counts updated on every trade event. These values are attached to every signal payload and are key features in both the ML models and the rule-based scorer.
| Metric | Window | Description |
|---|---|---|
buysLast60s | 60 seconds | Number of distinct buys in the last 60 seconds |
buysLast300s | 300 seconds | Number of distinct buys in the last 5 minutes |
solLast60s | 60 seconds | SOL volume bought in the last 60 seconds |