Changelog
Every wave. Public.
Roadmap as a promise, not a wish list. Every shipped feature, dated and linked.
v0.9.0
2026-05-17Wave 8 — Sniper expansion + Copy Trading Phase 2 (PRs #41–#42)
Sniper expansion framework
- › SniperConfig schema: enableRaydium / enableMoonshot / enableSellSniper toggles
- › Raydium V4 AMM listener framework (parser stub, pending mainnet verification)
- › Moonshot listener framework (parser stub)
- › Sell Sniper framework — auto-sell on Pump.fun → Raydium migration (event stub)
- › All four sniper sources hot-loaded into the existing engine
Copy Trading Phase 2 (live)
- › /copy command: list / create / cancel leader follows
- › Polling worker (10s tick, reentrancy-guarded, dedupes shared leaders)
- › DEX-agnostic token-balance-diff parser — works on Jupiter, Raydium, Pump.fun, Orca
- › BUY mirror: config.buySizeSol per leader buy, capped by maxBuySol
- › SELL mirror: same fraction as leader, applied to user's on-chain balance
- › Auto-TP/SL (Wave 7) attaches on mirrored buys; PnL pin cards (Wave 5) fire on full-close mirrored sells
- › Text parser: FOLLOW <leader> <buy_sol> [max <max_sol>] [no-sell] [as <label>]
v0.8.0
2026-05-17Wave 7 — Security hardening (PRs #38–#39)
Withdrawal password
- › /security → 🔐 Manage password — set / change / disable
- › scrypt-hashed (node built-in, no extra dep); ≥6 chars, no whitespace
- › Every /withdraw confirm requires the password (if enabled)
- › Bot best-effort deletes the user's raw-password message after parsing
2FA via TOTP
- › RFC 6238 TOTP — works with Google Authenticator, Authy, 1Password
- › /security → 📱 Manage 2FA — set up via secret + otpauth:// URI
- › First successful 6-digit code confirms enrollment
- › Withdraw gate chains: password → TOTP → execute
- › Disable requires a current code (no bypass)
v0.7.0
2026-05-17Wave 6 — Auto-trading & AFK Mode (PRs #33–#36)
Auto Buy
- › /settings → 🤖 Auto Buy: configurable SOL amount auto-buys any pasted CA
- › Skips the token card — instant Jupiter swap from active Hydra Head
- › Default OFF; toggle blocked until an amount is set
Auto Sell — CA Mode
- › /settings → 💸 Auto Sell: configurable %% auto-sells held tokens on CA paste
- › Takes precedence over Auto Buy when user has a balance for the pasted token
- › Operates on raw on-chain balance — airdropped tokens included
Auto Sell — Order Mode (auto TP/SL)
- › /settings → 🎯 Auto TP/SL: default TP% + SL% attached to every new BUY
- › Existing 8s TP/SL polling worker auto-sells on threshold hit
- › Per-position TP/SL set manually takes precedence — never overwritten
AFK Mode
- › New /afk command: master view + toggle for all auto-trade modes
- › One tap to flip Auto Buy + Auto Sell ON together (with configured values)
- › setMyCommands updated (14 commands total)
v0.6.0
2026-05-17Wave 5 — UX density match (PRs #25–#31)
Bulk position management
- › /positions: 💥 Sell All — preview → confirm → liquidate every open position
- › /positions: 🧹 Burn Dust — auto-sell positions valued under 0.01 SOL
- › Sequential per-position execution with isolated failure handling + summary
Wallet flexibility
- › /wallet: 🪄 Generate New — mint additional Hydra Heads on demand (was /start-only)
- › /wallet: 📥 Import Key — paste base58 (Phantom / Solflare) or JSON-array (Solana CLI)
- › /wallet: ✏️ Edit Key — replace the private key in an existing slot, preserving the label
- › /wallet: 🔄 Consolidate SOL — sweep all heads into one chosen destination
- › Bot best-effort deletes messages containing raw private keys
Trading-preset customization
- › /settings: 🛒 Buy Presets — user-editable SOL amounts (up to 6, range 0.001–100)
- › /settings: 💸 Sell Presets — user-editable percentages (up to 6, range 1–100)
- › Token card + /positions sell buttons render from the user's presets
- › Reset button clears overrides + falls back to bot defaults
PnL portfolio history
- › Stylized "Position Closed" card auto-sent on every 100% sell
- › Card pinned in chat — Telegram's pin list becomes a portfolio history log
- › Card shows entry/exit SOL, realized PnL (SOL + %), 🏆 / 🪦 trophy, Solscan tx link
DCA orders
- › /dca command: list + create + cancel time-sliced BUY/SELL
- › Optional USD price-band — slice skipped (but schedule continues) when out of band
- › Bounds: 2–100 slices, 60s–7d intervals; integrated into the existing 8s worker
- › New DcaOrder schema + migration; reuses existing Jupiter execution
v0.5.0
2026-05-17Visual identity overhaul
Wave 1 — Cyber-mythological hero
- › Three-line headline with staggered reveal animation
- › Cursor-tracked spotlight + slow-rotating conic mesh background
- › Geist Mono kicker typography + Instrument Serif editorial accents
- › New SolPriceTicker component (Jupiter Price API, 30s refresh)
- › CountUpStat component with intersection-observer triggered animation
- › Scroll-aware fixed nav (hides on scroll-down, reveals on scroll-up)
Wave 2 — Interactive tools
- › /tools hub with two free utilities
- › /tools/fee-calculator — slider-driven real-cost comparison across 6 bots
- › /tools/sniper-simulator — dry-run your filter chain with 6-step verdict trace
Wave 3 — Section depth
- › /manifesto — founder-voice positioning piece
- › /changelog — public release history (this page)
- › Testimonial section structure on home
- › "Built different" comparison strip on home
v0.4.0
2026-05-17Wave 3 Sniper + main menu overhaul
Sniper engine (PR #14–#17)
- › SniperConfig schema + manual migration (one row per user)
- › /snipe command with status card + Pause/Activate, Dry-run toggle, Edit params, Refresh buttons
- › Text-based edit flow: key=value pairs in one message
- › Helius WS subscriber on pump.fun program ID, mint extraction from parsed tx
- › Filter chain (6 checks) + executor (dry-run + live modes)
- › Auto-attaches TP/SL on successful snipe
- › 11 vitest tests covering every filter branch
Main menu (PR #18)
- › 16-button inline keyboard inspired by SolTradingBot density
- › New /profile, /referral, /cashback commands
- › setMyCommands updated to 12 commands for Telegram autocomplete
v0.3.0
2026-05-17Marketing site + bot polish
Marketing site
- › New product pages: /pricing, /security, /how-it-works
- › Comparison hub at /compare + 5 head-to-head pages
- › Blog with 5 SEO articles (Pump.fun sniping, burners, strategies, limit vs TP/SL, MEV)
- › OG image generated 1200×630 PNG via sharp
- › llms.txt for LLM crawlers
Bot
- › /security command (encryption + threat model)
- › setMyCommands for Telegram autocomplete
- › README split into Live features vs Roadmap
v0.2.0
2026-05-17Automation + UX completion
Wave 2
- › TP/SL polling worker (8s tick, auto-sells on threshold + DMs user)
- › Full /limit orders — BUY/SELL at trigger price, text-parser creation
- › /history command (last 20 trades with Solscan links)
- › Custom buy amounts via session.awaitingInput flow
- › Smaller buy presets (0.01, 0.05 SOL added)
- › /admin command + admin error reporter
- › GitHub Actions CI (typecheck + tests + Astro build)
v0.1.0
2026-05-17Initial production release
MVP
- › Multi-wallet management ("Hydra Heads") with AES-256-GCM encryption
- › Active-wallet switcher (session-persistent)
- › Manual buy/sell via Jupiter v6
- › Token cards with auto-detect from chat
- › Position tracking with live PnL (Jupiter price API)
- › Withdraw flow with preset amounts + custom + max
- › Settings inline editor (slippage + priority fee)
- › Telegram bot deployed to Railway, Astro site scaffolded
- › Cloudflare DNS zone for moonhydra.com
Fixes
- › Prisma init migration P3009 crash loop (auto-recovery + clean SQL after stderr-capture corruption)
🐉
Ready to summon your first Hydra Head?
It takes 30 seconds. No KYC. No deposits. Generate a burner wallet, fund it with SOL, paste a contract address.
Open in Telegram