DEV Community

Apollo
Apollo

Posted on

I Sniped a Solana Token in 400ms — Here's the Full Tech Stack

I Sniped a Solana Token in 400ms — Here's the Full Tech Stack

When Solana's latest meme token dropped last week, I executed a snipe in 400ms flat. Here's the exact technical breakdown of how I built this sniper bot using Jito MEV bundles, Jupiter routing, and Helius RPC—with real code snippets and hard numbers.

1. The Core Challenge: Solana’s Speed Problem

Solana’s 400ms block time means you’re racing against:

  • ~100ms for RPC round trips
  • ~50ms for transaction simulation
  • ~200ms for Jito bundle inclusion

If your stack isn’t optimized end-to-end, you’ll get frontrun.

2. The Stack That Won

A. Helius RPC (The Speed Foundation)

Helius’s optimized endpoints shaved 60ms off standard RPC calls. Key config:

const heliusConnection = new Connection(
  "https://mainnet.helius-rpc.com/?api-key=YOUR_KEY",
  {
    commitment: "confirmed",
    wsEndpoint: "wss://mainnet.helius-rpc.com/?api-key=YOUR_KEY",
  }
);
Enter fullscreen mode Exit fullscreen mode

Pro Tip: Prefetch token metadata with getMultipleAccountsInfo to avoid runtime delays.

B. Jito MEV Bundles (Skip the Mempool)

Jito bundles let you submit transactions directly to leaders. My flow:

  1. Simulate with @jito-labs/searcher:
const { simulateBundle } = require("@jito-labs/searcher");
const simResult = await simulateBundle(connection, [tx], latestBlockhash);
if (simResult.err) throw new Error("Sim failed");
Enter fullscreen mode Exit fullscreen mode
  1. Bundle & Send (cost: ~0.01 SOL in tips):
const { sendBundle } = require("@jito-labs/searcher");
await sendBundle(
  [tx],
  0.01 * LAMPORTS_PER_SOL, // Tip
  jitoAuthKeypair
);
Enter fullscreen mode Exit fullscreen mode

Key Insight: Bundles cut latency from 200ms+ (mempool) to 50ms (direct inclusion).

C. Jupiter Routing (Optimal Swaps)

Jupiter’s API finds the best route before the token is tradable. My snipe logic:

  1. Pre-fetch routes for expected liquidity pools:
const quote = await (
  await fetch(`https://quote-api.jup.ag/v6/quote?inputMint=SOL&outputMint=${newTokenMint}`)
).json();
Enter fullscreen mode Exit fullscreen mode
  1. Lock in the route and prepare swap TX:
const { swapTransaction } = await (
  await fetch(`https://quote-api.jup.ag/v6/swap`, {
    method: "POST",
    body: JSON.stringify({ quoteResponse: quote, userPublicKey: wallet.publicKey }),
  })
).json();
Enter fullscreen mode Exit fullscreen mode

Gotcha: Always check platformFee—some new tokens silently deduct 1-2%.

3. The 400ms Breakdown

Here’s where the time went:

  • 0-50ms: Helius RPC fetches blockhash + account info
  • 50-150ms: Jupiter API fetches routes
  • 150-250ms: Transaction simulation
  • 250-400ms: Jito bundle submission + on-chain confirmation

4. Lessons Learned the Hard Way

  • RPC Failures: Helius can still throttle. Always have a backup (QuickNode or private RPC).
  • Bundle Rejection: Jito drops bundles if the tip is too low. Start with 0.02 SOL for hot snipes.
  • False Positives: Simulated success ≠ real success. Check for ProgramError: InvalidAccountData in failed txs.

5. Final Thoughts

Winning the snipe race isn’t just about raw speed—it’s about eliminating every millisecond of waste. By combining:

  • Helius for low-latency data
  • Jito for bypassing the mempool
  • Jupiter for optimal routing

I consistently land snipes in under 500ms. Next stop: sub-300ms.

(Want the full bot code? Drop a comment—I’ll open-source if there’s demand.)


🚀 Try It Yourself & Get Airdropped

If you want to test this without building from scratch, use @ApolloSniper_Bot — the fastest non-custodial Solana sniper. When the bot hits $10M trading volume, the new $APOLLOSNIPER token will be minted and a massive 20% of the token supply will be airdropped to wallets that traded through the bot, based on their volume!

Join the revolution today.

Top comments (0)