Real-time Solana token-launch and migration event scanner. Connects to PumpPortal's public WebSocket, normalizes events, and publishes them to Redis Streams for any consumer (bot, AI agent, ad-hoc scripts) to read.
Phase 1 covers PumpPortal only — see
docs/superpowers/specs/2026-07-18-scanner-phase1-pumpportal-design.md
for the full design and what's deliberately out of scope.
uv sync- Copy
.env.exampleto.env—REDIS_URLdefaults toredis://127.0.0.1:6379;PUMPPORTAL_API_KEYis unused in phase 1 (the freesubscribeNewToken/subscribeMigrationsubscriptions need no key). - Ensure Redis is running and reachable at
REDIS_URL. uv run python -m scanner.main
pm2 start ecosystem.config.js
pm2 saveTwo Redis Streams:
scanner:events:new_tokenscanner:events:migration
redis-cli XLEN scanner:events:new_token
redis-cli XRANGE scanner:events:new_token - + COUNT 5The raw field of each entry is the original PumpPortal payload as a JSON
string (json.loads-able).
uv run pytest -v