On-Chain Limit Order Bots for Solana Tokens
Learn how limit order bots simulate price triggers off oracles and use keeper execution to fill orders that Solana AMMs cannot handle natively.
Solana's dominant trading venues — Raydium, Orca, Meteora — are automated market makers. They price assets along a bonding curve and settle every swap atomically, which is elegant for liquidity provisioning but leaves a gaping hole for traders who want to say "buy 10 SOL worth of TOKEN at $0.0042 and not a cent more." There is no native order book to rest that instruction on. A limit order bot fills that gap by simulating the order off-chain and triggering execution the moment an oracle or on-chain price crosses the target.
How the Oracle-Plus-Keeper Model Works
The architecture has two moving parts: a watcher and a keeper.
The watcher subscribes to real-time price data — typically a Pyth or Switchboard push feed, or a custom aggregator that samples the AMM's own sqrt-price slot. On Solana, the fastest path is a Geyser plugin stream that delivers account-change notifications with sub-slot latency. The moment the aggregated mid-price satisfies a stored condition (price <= limitPrice for a buy, price >= limitPrice for a sell), the watcher flags the order as eligible.
The keeper then builds and fires the execution transaction. Because Solana has no mempool in the Ethereum sense — transactions land in a single leader's queue and are confirmed within roughly 400 ms — timing strategy is different from EVM chains. The keeper targets the current slot leader, attaches a priority fee sized to the expected competition for that block, and optionally routes through Jito bundles so the transaction lands atomically with any dependent MEV protection. Getting the fee wrong in either direction is expensive: too low and you miss the fill while price moves away, too high and you erode PnL on every order.
Slippage Simulation and Anti-Rug Guards
Simulating a limit order is not just checking a number. Before committing to execution, a production bot runs a local swap simulation — essentially replaying the AMM's math against the current pool reserves — to verify that the actual fill price after slippage will still satisfy the limit condition. This catches cases where a large queue of pending swaps has already shifted the pool against you but the oracle hasn't updated yet.
Anti-rug guards layer on top of this simulation:
- Liquidity depth check: if the pool's total liquidity has dropped below a threshold since the order was placed, abort execution and flag the order for review.
- Token mint authority check: re-verify at execution time that the mint authority is burned or renounced, since a fresh mint would invalidate the trade thesis.
- Price impact cap: if the simulated impact exceeds a configured maximum (e.g., 2 %), downsize the order or skip rather than take a bad fill.
- Kill-switch: a global circuit breaker that halts all order execution if the bot's realized PnL or drawdown crosses a hard limit within a rolling window.
Our Solana sniper bot case study shows how similar pre-flight checks dramatically reduced failed fills on new token launches, where rug risk is highest in the first few minutes of trading.
Execution Edges: Bundles, Priority Fees, and Keeper Incentives
On a busy Solana cluster, raw transaction broadcast is unreliable at best. Production limit order bots use a layered submission strategy: first attempt direct RPC broadcast to minimize latency, then fall back to Jito block engine submission if the slot is competitive. Jito bundles are especially useful when the keeper needs to guarantee that its fill and a downstream swap (e.g., selling the received token into a stablecoin) land in the same block without interference.
If you are building a keeper network rather than a single bot, incentive design matters. Keepers need to be compensated for the gas they spend monitoring and executing, which typically means either a per-fill fee charged to the order placer or a small capture of the positive slippage when the actual fill beats the limit price. Transparent fee accounting — logged on-chain — is what separates professional keeper infrastructure from hobby scripts.
For teams that need this same discipline on perpetuals markets, the mechanics overlap significantly with the funding-rate and inventory-skew management covered in our cross-venue arbitrage work, where keeper latency and priority fee strategy determine whether an edge is real or theoretical.
If your stack is growing to the point where you need custom trading-bot services — whether that means a keeper network, a CLOB integration on a venue like Phoenix, or a hybrid AMM-plus-limit-order system — the implementation details above are exactly the kind of problem we solve day-to-day.
Ready to build a limit order system that actually executes when and where you intend? Start a project with TierZero and let's scope the architecture together.
Need a bot like this built?
We design, build and run trading bots on Solana, Hyperliquid and Polymarket.
Start a projectMore from the blog
Public vs Paid RPC: How to Run a Fair Benchmark
A fair comparison of public and paid RPC endpoints must account for quotas, workload, freshness and support guarantees.
Read articleRPC Benchmark Percentiles Explained: p50, p95 and p99
Why averages hide the latency spikes that break trading bots, wallets and production blockchain applications.
Read articleHyperliquid REST vs WebSocket Benchmark: What to Measure
A benchmark plan for Hyperliquid market data that separates request latency from streaming freshness and recovery.
Read article