The Meteora Sniper Bot is a Rust application that watches the Yellowstone gRPC Geyser feed for new Meteora liquidity pools and immediately submits buy transactions across multiple RPC providers. The bot automates the first purchase of WSOL pairs by building and dispatching transactions in parallel, giving you the best chance to win the race to the new pool.
- Subscribes to a Yellowstone gRPC endpoint for real-time Meteora pool creation events.
- Filters pools to only react to WSOL pairs, with an optional token mint allow-list.
- Builds swap transactions with configurable compute limits, priorities, and tips.
- Sends the transaction concurrently to Solana RPC, Jito, Bloxroute, and Nextblock endpoints (or any mix you configure).
- Uses a single Solana keypair that is stored locally in
config.yaml.
- Rust: Install Rust toolchain
1.84.0(matchingrust-toolchain.toml). You can install it via rustup. - Solana Keypair: A funded Solana keypair encoded as a base58 string (use
solana-keygen grind --outfile key.jsonfollowed bysolana-keygen pubkey key.jsonorsolana-keygen recoverandsolana-keygen pubkeyto export the base58 string). - Access to RPC Providers: URLs or API tokens for the Solana RPC providers you want to use (Jito, Bloxroute, Nextblock, etc.).
- Yellowstone gRPC Access: A valid gRPC endpoint URL and
X-Tokenfor the Yellowstone feed you intend to consume.
The bot reads config.yaml in the project root at startup. Begin by copying the example file:
cp config.example.yaml config.yamlEdit config.yaml to match your environment:
| Field | Description |
|---|---|
rpc |
Map of named RPC destinations. Each entry should define a url, optional auth token, and rpc_type (solanarpc, jito, bloxroute, or nextblock). The bot will attempt to send the buy transaction to every configured RPC in parallel. |
geyser_url |
Yellowstone gRPC endpoint that serves account and transaction updates. |
geyser_x_token |
Authentication token to pass as the x-token header when connecting to the geyser service. Leave blank if not required. |
private_key |
Base58-encoded private key string for the Solana account that will sign the buy transaction. |
compute_unit_price / compute_unit_limit |
Compute budget instructions that will be inserted before the swap. Set to 0 to omit. |
tip |
Amount of SOL to tip when submitting through Jito, Bloxroute, or Nextblock. (Ignored for standard Solana RPCs.) |
buy_amount |
Amount of SOL (in whole SOL) to swap for the target token. |
min_amount_out |
Minimum amount of the target token expected from the swap (denominated in token base units). |
buy_token_mint |
Optional mint address to restrict the bot to a single target token. Leave blank to snipe every new WSOL pair. |
Note: Any RPC that requires bearer authentication (e.g. Bloxroute or Nextblock) should have its
authfield set to the API key or token the provider expects.
-
Ensure
config.yamlis populated with working credentials and funding. -
Set any desired logging level via
RUST_LOG. For example, to enable informational logs:export RUST_LOG=info -
Start the bot with Cargo:
cargo run --release
The application will:
- Connect to the Yellowstone gRPC stream.
- Listen for Meteora pool creation instructions that involve WSOL and match your optional mint filter.
- Build the swap transaction using your keypair and configuration values.
- Dispatch the transaction to every configured RPC sender concurrently.
-
Monitor the logs for confirmation messages such as
bench complete!and RPC latencies.
- Keep your
config.yamloutside of version control and protect it carefully—the file contains your private key. - Run the bot on a low-latency server close to your chosen RPC providers and the Yellowstone endpoint for best results.
- Regularly top up the signing account so that compute fees, tips, and swap amounts can be paid without interruption.
- Consider using a process supervisor (systemd, Docker, etc.) to keep the bot running and automatically restart it on crashes or network blips.
- Connection errors to Yellowstone: Double-check
geyser_urlandgeyser_x_token. Some providers require TLS; the sample configuration uses HTTPS. - Transaction failures: Inspect the logs for RPC-specific errors. You may need to adjust
compute_unit_price,tip, ormin_amount_outto match network conditions. - Missing swap attempts: Ensure
buy_token_mintis blank unless you intend to target a single mint, and verify that the new pool pairs WSOL on the B side (as required by the current logic).
This project does not currently specify a license. Verify the terms with the repository owner before using it in production.