The algo trading IDE for Solana memecoins.
Write, test, and deploy trading algorithms directly in the browser. The AI assistant has native access to your live dashboard state, real-time order-book data, and full codebase — propose a strategy change, see the diff, commit to your fork, and watch it run. No backend, no signup, keys stay local.
| Feature | Details |
|---|---|
| In-browser IDE | Monaco editor with the full codebase bundled — write, edit, and deploy algo logic without leaving the tab |
| AI assistant | Embedded chat (Anthropic, OpenAI, Groq, OpenRouter, Mistral, Ollama, …) with live dashboard state + full codebase context. Proposes diffs, applies them, commits to your fork |
| Live knob control via chat | LLM emits ```config ``` blocks — click "Apply to knobs" and scalper parameters update instantly, no redeploy |
| Local workspace (instant HMR) | Connect a local folder via File System Access API; chat edits write directly to disk and Vite HMR reloads in < 100 ms |
| GitHub | Fork in two clicks. Live file tree, diff preview, commit and push — built into the IDE |
| Bounce zone engine | Algo-detected swing-low support levels drawn on the chart automatically. Optional LLM vision analysis (BETA) sends an offscreen chart screenshot to your AI key for visual confirmation |
| Nursery | Four-tab token watcher tracking hundreds of coins around the clock — New Launches, Not So New, A Little Old, Older (zombie revival scoring) |
| Chart | Live OHLC for any pump.fun mint. 1 s / 5 s / 1 m / 5 m / 15 m. Viewport lazy-loading — panning left fetches older history on demand, giving an infinite-scroll feel back to token creation |
| Order-book tape | Real-time buy/sell print stream with size and market cap |
| Real trading | PumpPortal Lightning API — pre-bond (bonding curve) and post-bond (Pump AMM / Raydium) with automatic pool fallback |
| Paper trading | Run any algo on the live feed without spending SOL — validate before deploying capital |
| Performance tab | Unified trade history — real + paper, ROI %, entry/exit MC, exit reason, Solscan / Pump.fun links |
All state (keys, settings, chat history) lives in your browser's localStorage. Nothing is sent to any server this project operates.
Latest release: v1.1 — 2026-05-04 — bounce zone engine, 5 s charts, lazy candle loading, live knob chat control, local workspace HMR, and more.
Public engineering changelog (same content, formatted for handoff): enrich.fun/solclaw/changelog
git clone https://github.com/<your-username>/solclaw.git
cd solclaw
npm install
npm run devOpen http://localhost:5173 — landing page at /, IDE at /app.
| Script | What it does |
|---|---|
npm run dev |
Dev server + local proxies for LLM / pump.fun APIs |
npm run build |
Production build → dist/ (bundled workspace regenerated automatically) |
npm run preview |
Preview the production build locally |
Open Setup (key icon in the nav) and add:
- PumpPortal API key — pumpportal.fun/trading-api/setup. Keep ≥ 0.02 SOL in the linked wallet for the order book and real trades to work.
- LLM key — any supported provider. The app auto-detects from the key prefix (
sk-ant-→ Anthropic,sk-or-v1-→ OpenRouter,gsk_→ Groq, etc.). - GitHub PAT —
public_reposcope. Connects the IDE to your fork — live file tree, AI-proposed diffs, commit and push without leaving the app. Fork in two clicks via Fork & connect.
This repo ships a vercel.json configured for the /solclaw base path (matching enrich.fun/solclaw).
- Import
Enrichfun/solclawat vercel.com/new. - Vercel picks up
vercel.jsonautomatically — build command, output dir, and env vars are pre-configured. - Add your domain under Settings → Domains.
Remove the env block and redirects from vercel.json, then add a single catch-all rewrite:
{
"rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}Build will output to dist/ and the site runs at your domain root.
Set VITE_BASE_PATH to your repo or sub-path name at build time:
VITE_BASE_PATH=solclaw npm run build # outputs to dist/solclaw/Add your host's SPA fallback to serve index.html for all routes under that path.
Copy .env.example → .env.local (never commit .env.local). All optional — paste keys inside the app instead.
| Variable | Purpose |
|---|---|
VITE_BASE_PATH |
Sub-path prefix (e.g. solclaw). Leave empty to deploy at /. |
VITE_PUMPPORTAL_API_KEY |
Default PumpPortal key (in-app Setup overrides). |
VITE_SOLANA_RPC_URL |
Custom RPC for balance / supply helpers. |
VITE_GITHUB_UPSTREAM_OWNER |
Upstream GitHub owner for Setup → Fork & connect. |
VITE_GITHUB_UPSTREAM_REPO |
Upstream repo name (pair with owner above). |
VITE_GITHUB_REPO_URL |
Full URL shown as the "View source" link on the landing page. |
VITE_DISABLE_LLM_PROXY |
Set 1 to call LLM APIs directly (skips localhost proxy). |
VITE_CHAT_SIMULATE |
Set true for fake streaming — UI testing, no API calls. |
| Provider | Key prefix | Notes |
|---|---|---|
| Anthropic | sk-ant-… |
Claude 3.5 / 3 Sonnet, Haiku, Opus |
| OpenAI | sk-proj-… / sk-svcacct-… |
GPT-4o, o1, etc. |
| Groq | gsk_… |
Fast inference, Llama / Mixtral |
| OpenRouter | sk-or-v1-… |
200+ models behind one key |
| Mistral | — | mistral-large, codestral |
| DeepSeek | — | deepseek-chat / reasoner |
| xAI (Grok) | — | |
| Google AI Studio | AIza… |
Gemini 1.5 / 2.0 |
| Together AI | — | Open-source model hosting |
| Perplexity | — | |
| Ollama (local) | No key | Point to http://localhost:11434 |
src/
├── components/
│ ├── LandingPage.tsx # Marketing page (/)
│ ├── TradingWorkspace.tsx # IDE shell (/app)
│ ├── AppTopChrome.tsx # Horizontal nav + setup progress chip
│ ├── DashboardSidebar.tsx # Scalper controls, bounce zones, live knobs
│ ├── DashboardViewport.tsx # Persistent chart mount + tab switcher
│ ├── CaChartPanel.tsx # OHLC chart, scalper trigger, bounce line draw
│ ├── PerformancePanel.tsx # Unified real + paper trade history
│ ├── NurseryPanel.tsx # Four-tab token watcher UI
│ ├── PumpOrderBook.tsx # Live buy/sell tape
│ ├── ChatPanel.tsx # AI assistant (SSE, diff/Apply, config blocks)
│ ├── SetupPanel.tsx # Keys, wallet, LLM, local workspace
│ ├── WorkspacePanel.tsx # Monaco IDE + GitHub file ops
│ └── Tooltip.tsx # Portal-rendered hover tooltips
├── context/
│ └── AppContext.tsx # All global state (localStorage-backed)
├── lib/
│ ├── nurseryEngine.ts # Token watcher — PumpPortal WS + pump.fun REST + DexScreener
│ ├── pumpPortalRealtime.ts # Shared WebSocket to PumpPortal
│ ├── scalperPaperEngine.ts # Paper trading state machine (nearing/armed/in_trade)
│ ├── scalperPaperConfig.ts # Default scalper knob values
│ ├── pumpPortalLightningTrade.ts # Real trade execution + pool fallback (bonding/AMM/Raydium)
│ ├── chartBounceZones.ts # Algo bounce zone detection (ZigZag + psychological levels)
│ ├── visionBounceDetect.ts # LLM vision bounce detection (offscreen chart → base64 → API)
│ ├── pumpCandles.ts # Candle fetch, 5 s resampling, cache, lazy-load merge
│ ├── solanaTxSolDelta.ts # On-chain SOL delta for exact PnL (exponential backoff RPC)
│ ├── localWorkspace.ts # File System Access API — local folder write + IndexedDB persist
│ ├── parseChatEdits.ts # Parse fenced code blocks + config patches from LLM responses
│ ├── buildChatContext.ts # Live dashboard state → LLM context markdown
│ ├── composerSystemPrompt.ts # System prompt (config blocks, file edits, local workspace)
│ ├── streamAnthropic.ts # Anthropic SSE streaming
│ ├── githubApi.ts # GitHub REST helpers
│ ├── llmBackends.ts # Provider configs + key inference
│ └── siteUrls.ts # Base path + route helpers
└── types.ts
Contributor and IDE-agent guide: AGENTS.md
- All keys stay in your browser. PumpPortal key, LLM key, GitHub PAT, and wallet data are stored in
localStorageonly — never sent to any server this project operates. - Trading wallet private key (optional, for Lightning trades) is browser-only. Use a dedicated low-balance signer wallet — never your main wallet.
- Do not commit
.env.local—.gitignoreblocks it automatically. - No telemetry. Open the network tab and verify.
PRs and issues welcome.
npm run build # must pass with zero errors (includes tsc --noEmit)If you move or rename files, update src/lib/projectKnowledge.ts so the in-app assistant stays accurate. Full contributor workflow in AGENTS.md.
MIT — free to fork, modify, and deploy.
