The first and only manually-guided fuzzing framework for Solana programs written in Rust, processing up to 12,000 tx/s.
Granted by the Solana Foundation, securing Kamino.
- Executes thousands of transactions per second to stress your program at Solana speed.
- Models state changes and flows that unit tests miss.
- Surfaces edge cases, overflows, and missing constraints early in development.
- Built and maintained by Ackee Blockchain Security, trusted auditors of Lido, Safe, and Axelar.
- Supported by the Solana Foundation.
- Manually-guided fuzzer – Define custom strategies to explore tricky code paths.
- Stateful fuzzing – Inputs are generated based on critical account state changes.
- Anchor-like macros – Write fuzz tests with familiar, clean syntax.
- TridentSVM client – Execution using Anza’s Solana SVM API.
- Property-based testing – Compare account states before and after execution.
- Flow-based sequence control – Combine multiple instructions into realistic transaction patterns.
- Regression testing – Compare fuzzing results between program versions.
Install via Cargo:
cargo install trident-cliWrite your first fuzz test:
#[init]
fn start(&mut self) {
// Build Initialize Transaction
let mut tx = InitializeTransaction::build(&mut self.trident, &mut self.fuzz_accounts);
// Execute Initialize Transaction
self.trident
.execute_transaction(&mut tx, Some("Initialize"));
}
#[flow]
fn flow1(&mut self) {
// Build MoveEast Transaction
let mut tx = MoveEastTransaction::build(&mut self.trident, &mut self.fuzz_accounts);
// Execute MoveEast Transaction
self.trident.execute_transaction(&mut tx, Some("MoveEast"));
}
#[flow]
fn flow2(&mut self) {
// Build MoveSouth Transaction
let mut tx = MoveSouthTransaction::build(&mut self.trident, &mut self.fuzz_accounts);
// Execute MoveSouth Transaction
self.trident.execute_transaction(&mut tx, Some("MoveSouth"));
}Run it:
trident fuzz run <fuzz_test>For full examples and guides, see the documentation.
Latest release: 0.11.1
cargo install trident-cli- Audit preparation – Run fuzz campaigns before submitting your code for review.
- Continuous security – Integrate Trident into CI for ongoing regression testing.
- Research & prototyping – Generate complex attack sequences programmatically.
Check out the following places for more Trident-related content:
- Follow on Twitter/X for updates
- Join the discussions on our Trident discord channel
| Solana Foundation | Marinade |
|---|---|
Thank you for your interest in contributing to Trident! Please see the CONTRIBUTING.md to learn how.
This project is licensed under the MIT license.