Practical overview
When it fits
Use Crucible when you can define the actions and invariants for a Solana program and want coverage-guided exploration of instruction sequences or state transitions.
Who it is for
- Solana program developers writing fuzz harnesses and invariants.
- Teams seeking to explore instruction-sequence and state-dependent behavior beyond fixed unit or integration tests.
Documented uses
- Generate and mutate sequences of Solana program actions and their typed parameters.
- Simulate transactions locally while using coverage feedback to guide exploration.
- Check program properties and state invariants across generated action sequences.
- Triage crashes by minimizing and replaying findings, and produce LCOV reports when programs have debug symbols.
Requirements & limits
The project is available as a public source repository and documents installation from source with Cargo. It is licensed under MIT.
- Crucible is a developer CLI and fuzzing framework, not a hosted testing service.
- Typed bindings can be generated from standard Anchor, Codama or Shank IDL; the README also documents raw calls when no IDL is available.
- Stateless mode starts each iteration from a post-setup snapshot; stateful mode retains a coverage-indexed pool of live states and uses more memory as that pool grows.
- Crash minimization and replay are included; LCOV reporting requires debug symbols, and viewing reports uses genhtml.
- Runtime depends on the target program, tracing mode, state-pool growth and worker count.
Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.
Install Crucible and start a fuzz harness
Install the CLI from source, initialize a harness directory, and run a named fuzz test.
Before you start
- Rust and Cargo, for the documented Cargo installation.
- A Solana program and test harness to fuzz; the project describes defining actions and invariants.
Steps
Clone the Crucible repository and change into its directory.
Install the CLI with the command below.
cargo install --path crates/crucible-fuzz-cliInitialize a harness with
crucible init; the default location isfuzz//.Run a named test with
crucible run --release.
Expected outcome
The documented workflow installs the CLI, creates a harness directory, and starts the selected release-mode fuzz test.
Guide limitations
- The README does not specify all harness-writing steps in this quick start; consult its getting-started and harness documentation.
- Performance depends on the target program, tracing mode, state-pool growth and worker count.
Sources & review
Source record details
- Source availability
- Active
- Sources checked
- 17 October 2026
- Original website title
- asymmetric-research/crucible · Official homepage title · retained in its source language

