Concepts · Validator Runtime
CatGeyser + CatBot.
Catscope's MEV runtime is built on two pillars: CatGeyser, the state management solution, and CatBot, the runtime for hosting MEV bots directly in validators.
The problem we're solving
| The problem | Catscope's solution |
|---|---|
| MEV trading needs fast, real-time data — but JSON RPC and default Geyser plugins are too slow and drop messages under load. | Bots run directly inside validators, receiving filtered state through shared memory. No polling, no dropped messages. |
| Premium validator infrastructure is expensive and the ops burden (Rust, networking, security) is high. | A marketplace where traders rent validator guest spots, paying only for what they use. Validators monetize spare capacity. |
CatGeyser — state management
CatGeyser is the layer that powers low-latency state delivery. It is a specialized Geyser plugin installed on participating validators.
What CatGeyser does
- Extracts data from validators. Parses Solana's raw transaction data, account updates, and slot changes in real time.
- Applies filters for relevant data. Instead of flooding your bot with everything, CatGeyser filters for specific programs, instructions, or accounts your strategy cares about (e.g. Orca, Raydium).
- Syncs targeted data to CatBot. The filtered stream is delivered to the runtime layer over shared memory — ultra-low latency, no network hop.
Why it matters
Traditional Solana data pipelines — JSON RPC, default Geyser plugins — are slow and inefficient for MEV. They drop messages, require constant polling, and deliver unfocused data. CatGeyser fixes this by focusing on the relevant slice and delivering it the moment it's available.
CatBot — bot runtime
CatBot is the execution layer. It hosts your MEV strategy directly inside validator infrastructure, with immediate access to CatGeyser's data stream.
What CatBot does
- Hosts WASM bots in validators. Traders deploy their bots as WebAssembly modules; CatBot hosts them in a guest runtime inside the validator.
- Multi-language. Any WASM-compatible language works — Rust, Go, anything else that targets
wasm32-wasip2. - Triggers bot actions. CatBot calls into your bot's handlers (
on_load,mid_on_account,evaluate) whenever relevant state changes. Guest-exported functions likeAccountGetreturn latest account data and slot info on demand. - Logs & feedback. CatBot streams your bot's stdout and stderr back to your client, so you have real-time observability for tuning and debugging.
Why it matters
Running your bot externally means polling, network latency, and contention with everyone else on the same RPC. CatBot puts your code on the same machine that proposes the next block. Decision and execution happen before the rest of the market has the data.
How they work together
- Data management via CatGeyser. Solana state is continuously parsed and filtered. Relevant updates (token transfers, DEX swaps, liquidations) are streamed to CatBot in real time.
- Bot hosting via CatBot. You deploy your WASM bot. It reacts to the CatGeyser stream and executes your strategy.
- Unified runtime. Catscope manages the interaction between the two — data on one side, execution on the other, seamless in between.
Side-by-side
| Feature | CatGeyser | CatBot |
|---|---|---|
| Focus | Targeted, low-latency Solana state updates | Hosting and executing MEV bots in validators |
| Function | Parses, filters, streams account/slot updates | Runs bot actions; provides real-time feedback |
| Efficiency win | No polling; only the data you asked for | No external infra; no networking complexity |