{"repo":"asymmetric-research/crucible","free":true,"listed":false,"github":"https://github.com/asymmetric-research/crucible","clone":"git clone https://github.com/asymmetric-research/crucible.git","description":"High-performance Solana Program Fuzzer written in Rust with LibAFL/LiteSVM backend with sBPF edge coverage and state coverage","language":"Rust","stars":57,"topics":["anchor","fuzzing","rust","smart-contract","smart-contracts","solana","solana-fuzzing"],"license":null,"category":"blockchain-web3","readme_excerpt":"Coverage-guided fuzzing framework for Solana smart contracts Built on LibAFL and LiteSVM for fast, local transaction simulation with edge-level coverage tracking. --- Many serious Solana bugs are not caused by a single malformed input. They come from valid sequences of valid instructions that leave a program in an invalid state, and unit and integration tests rarely reach them. A five-instruction \"phantom stake\" bug sat in Solana's native Stake program for years: delegation weight that kept counting after the SOL backing it had been withdrawn. Crucible is a Solana fuzzing tool that looks for this kind of bug by mutating instruction sequences and their typed parameters under coverage-guided feedback. It rediscovered the phantom stake bug from scratch in seconds. Crucible enables property-based testing and stateful invariant checking for Solana programs through randomly generated action sequences. Define your program's actions, write invariants, and let the fuzzer find violations. See how it works. Performance Upperbound throughput on small/medium programs with MacBook Pro M3: Mode 1 core 12 cores 12 cores, no tracing ----------- ----------- ------------ ---------------------- Stateless 1,200/s 9,600/s 22,000/s Stateful 8,200/s 67,000/s 130,000/s Features - Works on any compiled Solana program. Coverage comes from sBPF edge tracing on the LiteSVM execution trace, so no source-side instrumentation or program rebuild is required. Standard Anchor/Codama/Shank IDL is sufficient to ","default_branch":null,"files":null,"tree":[],"storefront":"/r/asymmetric-research","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/asymmetric-research/crucible/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}