Scan every hot pool. Every minute.
Sweeps the Meteora DLMM universe and ranks pools by fee momentum, turnover, and volume trend. Copycat symbols get deduped; pools that were hot but died get caught by the 30-minute check.
DLMM Bot scans hot Solana Meteora pools, vets the token, opens one-sided SOL liquidity below price, and exits by fixed rules — deploy one Railway service, then finish setup in the dashboard wizard.
Sweeps the Meteora DLMM universe and ranks pools by fee momentum, turnover, and volume trend. Copycat symbols get deduped; pools that were hot but died get caught by the 30-minute check.
Mint and freeze authority revoked. Holder concentration and insider clusters under limits. Creator has never rugged — one strike is a permanent blacklist. RugCheck as a veto, never an approval. APIs down? The gate fails closed.
No tokens bought up front. A bid-ask ladder of SOL goes under the market — heavier at the bottom — sized by Kelly from your own trade history, capped hard, and refused entirely when the edge reads negative.
Marks value against the chain, accrues and claims fees when it pays, locks a slice of big winners while the rest keeps earning, and watches TVL, holders, and RugCheck for anything that smells like a rug in progress.
Six exit priorities, checked top-down every poll — safety first, profit last. Every close is measured from the wallet, not the chart, and lands in SQLite where the dashboard, the circuit breaker, and Kelly sizing all read the same number.
One-sided SOL, bid-ask, below price. Heavier bins deeper down. Nothing is bought until price comes to you.
Price dips — the ladder buys, every trade pays. Each bin the price crosses converts at your level and earns swap fees both ways.
Fees bank to SOL. Exits are mechanical. If the dip keeps going, the exit ladder cuts it. No bag-holding, ever.
Six exit priorities, in strict order. If P0 says run, nothing below it gets a vote.
Pool dead, price crash, TVL drain, RugCheck flip, or a watched holder dumping — close immediately at high slippage, blacklist the token.
close nowPosition value down 25% against entry — cut it, cooldown the token. Capital preservation outranks the thesis.
cutFees decayed for consecutive polls, or max age reached — the position is dead weight; recycle capital to the queue.
recyclePrice traveled up through the range and stayed there — take profit, bank a slice, optionally arm follow mode for the next dip.
take profitUnclaimed fees crossed the threshold — claim and convert to SOL. Fees are the product; they get banked, not re-risked.
bank feesPrice fell under the ladder and stayed past the grace window — cut it. A wick gets tolerance; a trend gets an exit.
cutEvery sizing decision comes from your own measured ledger — and several systems exist only to say no.
Position size estimated from your own closed trades, halved for estimation error, hard-capped per position. Reads negative edge? Entries stop.
Measured daily loss beyond your set percent of the wallet — no new entries for 24 hours. Losses are measured from the wallet, not the chart.
Several hard stops inside one window means the market is the problem, not the picks — entries pause for a cool-down.
SOL itself dumping shrinks every new position — or pauses entries entirely. The bot doesn't buy dips in a falling market at full size.
Live isn't suggested until paper mode strings together seven consecutive profitable days — measured the same way live PnL is.
Real funds move only when the config file and the environment both say live. One flag is never enough. Paper needs no wallet at all.
Every entry, skip, exit, and SOL flow — with the reason logged. Nothing the bot does is a mystery.
Entries, exits, claims, skips, and SOL flows — green in/win, blue deployed, red only for losses.
Toggle and tune vetting from Settings: age, insiders, holders, RugCheck, honeypot checks, more.
The full strategy explained inside the dashboard — what every exit means, what every knob does.
Create a keypair or import Phantom in the dash. Encrypted on your volume; unlock when you go live.
One-click cloud for most people; PM2 + auto-deploy if you already have a box. Same bot either way.
One button (or npm run halt) closes everything and idles. You're always in charge.
Conservative / Balanced / Aggressive presets, local saves, and a community gallery — share from the dashboard.
Safety exits, stops, circuit breaker, watchdog — the calls you'd want at 3am reach your phone.
Positions live in SQLite; live mode reconciles against the chain on boot. The chain is always the truth.
Rules cut losses early and bank fees — they don't make a rug profitable. The bot ships in paper mode, needs no wallet to learn, and won't suggest live until the paper ledger earns it. When you do go live: burner wallet, small size, and watch it.
Easy path on Railway. Advanced path for local / VPS / PM2 — same bot either way.