Juniper is an autonomous agent that watches pump.fun in real time, tracking token volume, bonding-curve migrations (the jump to PumpSwap), and surfacing statistically favorable windows to trade.
π οΈ Built with grok.me β this repo is the scaffold: structure, docs, and interfaces. The hardcore signal logic, model tuning, and live execution engine are being built and iterated on inside grok.me. Think of this repo as Juniper's skeleton; grok.me is where the muscle gets attached.
Pump.fun is noisy β hundreds of tokens launch daily, most die in the first hour, and the few that "migrate" to PumpSwap tend to do so after a recognizable volume ramp. Juniper exists to cut through that noise:
| Module | Job |
|---|---|
juniper_volume_pulse.py |
Streams real-time trade volume per token, computes rolling velocity (SOL/min), and flags abnormal spikes |
juniper_migration_radar.py |
Watches bonding-curve completion %, predicts time-to-migration, and fires alerts when a token crosses the PumpSwap migration threshold |
juniper_timing_oracle.py |
Aggregates historical volume/migration data into a heatmap of best trading windows (hour-of-day, day-of-week) |
juniper_agent.py |
The orchestrator β wires the three modules together into a single polling/streaming loop and dispatches alerts |
juniper_config.py |
Central config: RPC endpoints, polling intervals, thresholds, alert channels |
βββββββββββββββββββββββββ
β pump.fun API β
β + Solana RPC/WS feed β
βββββββββββββ¬ββββββββββββββ
β
βββββββββββββΌββββββββββββββ
β juniper_agent.py β
β (orchestration loop) β
βββββ¬ββββββββββββ¬βββββββββββ
ββββββββββββββββ ββββββββββββββββ
βΌ βΌ
βββββββββββββββββββββββββββ βββββββββββββββββββββββββββββββ
β juniper_volume_pulse.py β β juniper_migration_radar.py β
β - rolling volume windows β β - bonding curve % tracking β
β - spike detection β β - migration ETA estimation β
ββββββββββββββ¬ββββββββββββββ βββββββββββββββββ¬ββββββββββββββββ
β β
βββββββββββββββββββββββ¬ββββββββββββββββββββββββ
βΌ
βββββββββββββββββββββββββββββ
β juniper_timing_oracle.py β
β - historical aggregation β
β - best-hour / best-day heat β
βββββββββββββββββ¬ββββββββββββββββ
βΌ
alerts / logs / dashboard
juniper/
βββ README.md β you are here
βββ GROKME_BUILD_NOTES.md β what's scaffolded here vs. built in grok.me
βββ juniper_agent.py β main entrypoint / orchestrator
βββ src/
β βββ juniper_volume_pulse.py β volume tracking engine
β βββ juniper_migration_radar.py β migration detection engine
β βββ juniper_timing_oracle.py β best-time-to-trade analytics
β βββ juniper_config.py β config + constants
β βββ juniper_alerts.py β alert dispatch (console/webhook/discord)
βββ data/
β βββ .gitkeep
βββ .github/workflows/juniper_ci.yml
βββ requirements.txt
βββ .env.example
βββ .gitignore
βββ LICENSE
git clone https://github.com/YOUR_USERNAME/juniper.git
cd juniper
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env # already pre-filled with sane public defaults
python juniper_agent.pyJuniper will start polling pump.fun for new token launches, streaming volume data, and logging migration candidates to data/juniper_migrations.log.
All tunables live in src/juniper_config.py:
POLL_INTERVAL_SECONDSβ how often Juniper checks for new dataVOLUME_SPIKE_MULTIPLIERβ how far above rolling average counts as a "spike"MIGRATION_THRESHOLD_PCTβ bonding curve completion % that triggers a migration alertTIMING_WINDOW_DAYSβ lookback window (in days) for the best-time-to-trade heatmap
- Repo scaffold + module boundaries (this repo)
- Live pump.fun WebSocket ingestion (in progress on grok.me)
- Migration prediction model v1 (in progress on grok.me)
- Best-time-to-trade heatmap dashboard
- Discord/Telegram alert bot
- Backtesting harness against historical migrations
Juniper is a research/tooling project for tracking public on-chain data. It is not financial advice, does not execute trades on its own, and pump.fun tokens are extremely high-risk, high-volatility assets. Nothing here guarantees profitability. DYOR.
MIT β see LICENSE.
πΏ Juniper β scaffolded here, sharpened on grok.me.
