trident-client 0.12.0

Trident is Rust based fuzzing framework for Solana programs written in Anchor.
Documentation

Trident

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, 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:

cargo install trident-cli

Write 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.

Installation

Latest release: 0.11.1

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

Community

Check out the following places for more Trident-related content:

Grants

Solana Foundation Marinade

Contribution

Thank you for your interest in contributing to Trident! Please see the CONTRIBUTING.md to learn how.

License

This project is licensed under the MIT license.