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.
## Why Trident?
- 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](https://ackee.xyz)**, trusted auditors of Lido, Safe, and Axelar.
- Supported by the **Solana Foundation**.
## Features & benefits
- **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.
## Quick start
Install via Cargo:
```shell
cargo install trident-cli
```
Write your first fuzz test:
```rust
#[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:
```shell
trident fuzz run
```
For full examples and guides, see the [documentation](https://ackee.xyz/trident/docs/latest/trident-examples/trident-examples/).
## Installation
Latest release: **0.11.1**
```shell
cargo install trident-cli
```
## Use cases
- **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.
## Documentation
- [Getting Started](https://ackee.xyz/trident/docs/latest/#getting-started)
- [Advanced Customization](https://ackee.xyz/trident/docs/latest/trident-advanced/)
- [Examples & Pipelines](https://ackee.xyz/trident/docs/latest/trident-examples/trident-examples/)
- [API & Macro Reference](https://ackee.xyz/trident/docs/latest/trident-api-macro/)
## Community
Check out the following places for more Trident-related content:
- Follow on [Twitter/X](https://twitter.com/TridentSolana) for updates
- Join the discussions on our Trident [discord channel](https://discord.gg/wyBW9Q23aJ)
## Grants
Solana Foundation | Marinade
:-------------------------:|:-------------------------:
[](https://ackee.xyz/blog/introducing-trident-the-first-open-source-fuzzer-for-solana-programs/) | [](https://solana.com/news/riptide-hackathon-winners-solana)
## Contribution
Thank you for your interest in contributing to Trident! Please see the [CONTRIBUTING.md](https://github.com/Ackee-Blockchain/trident/blob/master/CONTRIBUTING.md) to learn how.
## License
This project is licensed under the [MIT license](https://github.com/Ackee-Blockchain/trident/blob/master/LICENSE).