A private sandbox where an AI security agent fuzzes Solana programs without leaking exploits to MEV bots.
Smart contracts are live and public. The moment you submit a candidate exploit transaction, the race is already lost.
Every transaction is visible in the public mempool before it executes. There is no private staging area.
MEV bots scan pending txs continuously. If your exploit looks profitable, they copy and front-run it before your tx lands.
Testing on a local validator misses real mainnet conditions — oracle prices, account states, CPI targets.
Researchers confirm the bug but lose the funds to a bot. The vulnerability gets exploited anyway, unfixed.
A Private Ephemeral Rollup is a high-speed validator no external node can watch. Move the program's state into one for a fuzz session — run thousands of adversarial transactions inside — then commit the final state back once the developer has been warned.
No test files. No hints. The agent reads the program interface and works it out.
Ingests the program's Interface Definition Language. No test files or human hints required.
Identifies accounts named owner that are neither signers nor has_one-verified, but referenced by sibling PDA seeds. High-precision, low false-positive.
Sets up mint, vault, and victim with a real deposit inside the private sandbox. Realistic conditions, not toy data.
Builds a concrete attack: passes victim as owner, signs with an attacker keypair. Submits it. Confirms or refutes the candidate.
Only reports if the adversarial tx lands AND post-state shows funds moved. Includes on-chain evidence tx hash and a concrete fix recommendation.
The agent autonomously rediscovered the planted bug. This is the actual report it emitted.
Prerequisites: Node 20+, pnpm, Rust, Solana CLI, Anchor via avm.
| Area | Today | Vision |
|---|---|---|
| Targets | ✓ done Vault-shaped Anchor programs | Any Solana program |
| Bug classes | ✓ done Missing signer / has_one | Overflow, oracle manip, CPI abuse, account confusion… |
| Exploit synthesis | ✓ done Hardcoded for withdraw shape | LLM-driven, IDL-walking |
| Sandbox | ~ partial Surfpool end-to-end ✓. MagicBlock provisions cleanly; router lifecycle has gaps | MagicBlock end-to-end |
| Narrative | ✓ done Templates with on-chain evidence | LLM-generated, business-impact-aware |
| Identity | planned Not started | NFT badge per confirmed bug (Metaplex + SNS) |
Clone the repo, run one command, watch the agent find a real vulnerability in 5 seconds. Program also deployed on devnet at CbdZT6…ZooC.