SOLARD
A local-first Solana terminal and multi-wallet CLI/SDK for memecoin traders and AI agents. Direct venue transactions — pump.fun curve and PumpSwap AMM instructions built by hand, no Jupiter, no middleman clipping your fills. Keys live encrypted in a local SQLite database, and every line that touches them is on GitHub. You pay network fees and tips. Nothing else, to no one.
The middleman, removed.
- keys never leave your machine
- your own RPC endpoint + rate limits
- every line auditable on GitHub
- no account, no server, no custody
- $1,000 per $100k of volume
- keys or approvals on their servers
- shared infra + rate limits
- closed source
One terminal, the whole pipeline.
rpc, helius Sender fast lane, or jito — with --simulate-only on every trade.→02multi-wallet groupsImport wallets encrypted at rest under SOLARD_MASTER_KEY, organize them into weighted groups, then solard buy --group snipers --sender jito submits the whole group as Jito bundles, five transactions per bundle.→03live pump terminalA web console over a supervised worker fleet: Helius logs + LaserStream and PumpPortal streams, bonding-curve snapshots, holder snapshots, SMA indicators, a reconciler, and a live doctor that tells you which feed is lying.→04token launchingsolard launch pump — metadata via pump frontend or Pinata, vanity mint grinding, coordinated buyer groups, ALT prep, and submit modes from after-deploy-processed to fast-spam.→05scripts & workflowsStrategies stay outside the kernel: register plain TypeScript in solard.config.ts and solard run it. Venue-agnostic workflows ship in the box — snipe, claim→trade→send, wait-launch-trade-group.→06built for agentsThree integration surfaces for AI agents: the typed SDK from any Bun process, the CLI as tool calls, and a local HTTP API guarded by a web token. Agent registry, watchlists, creator-fee claiming.→Safe by default. Live buy, sell, and launch routes reject live=true until you explicitly flip the gate — the console can't spend real SOL because you clicked the wrong button at 4am.
Streams in, SQLite in the middle, everything reads local.
Independent stream workers write normalized events into one local database. The console, the CLI, and your scripts all read the same tables — no worker talks to another, and if one dies, bgrun's staleness detection and the reconciler know before you do. Every hop is traced with measure-fn.
plus metadata-repair with a circuit breaker, and a live doctor endpoint that probes every feed and reports which one is stale.
The holder-snapshot worker samples largest accounts continuously; the terminal draws every holder as one line. Vertical is share of supply, horizontal is time. Whales flatten near the cap, accumulators climb, distributors bleed out, fresh wallets appear mid-chart. Concentration is visible before it moves the price.
Your edge, as plain TypeScript.
No DSL, no sandbox, no approval process. Scripts import the SDK; the kernel never imports scripts. Register them once, then run them with wallet, group, and sender flags — simulate first, go live when the numbers agree.
import { defineSolardConfig } from "solard/runner"; export default defineSolardConfig({ scripts: { snipe: "./scripts/snipe.ts", "claim-trade-send": { path: "./scripts/claim-trade-send.ts", description: "claim creator fees → buy → deliver", }, }, });
$ solard import <private_key> dev $ solard group create snipers && solard group add-many snipers w1,w2,w3 $ solard buy <token_ca> --group snipers --sol 0.5 --sender jito --simulate-only $ solard run snipe --name "EXACT NAME" --group snipers --sol 0.05 --sender jito $ solard launch pump --creator dev --image ./logo.png --description "..." \ --buyer-group snipers --submit-mode spam-after-market-ready --live
Everything is documented.
Three commands to run it.
Bun, your Helius RPC key, your machine. Every line of what executes your trades is on GitHub.