MCPcopy Index your code
hub / github.com/Ackee-Blockchain/trident

github.com/Ackee-Blockchain/trident @0.12.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release 0.12.0 ↗ · + Follow
1,017 symbols 2,301 edges 138 files 168 documented · 17%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

  <img alt="Trident Github" src="https://abchprod.wpengine.com/wp-content/uploads/2025/09/Trident-Github-Updated.png?raw=true" width="auto">

Trident

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.

 <img src="https://img.shields.io/badge/website-usetrident.xyz-blue?colorA=f6f8fa&colorB=0000FF&style=flat" alt="Website">

 <img src="https://img.shields.io/badge/docs-ackee.xyz-blue?colorA=f6f8fa&colorB=0000FF&style=flat" alt="Documentation">

 <img src="https://img.shields.io/discord/867746290678104064?colorA=f6f8fa&colorB=0000FF&style=flat" alt="Chat">

 <img src="https://img.shields.io/crates/v/trident-cli?colorA=f6f8fa&colorB=f6f8fa&style=flat" alt="Version">

  <img src="https://img.shields.io/npm/l/@coinbase/onchainkit?colorA=f6f8fa&colorB=f6f8fa&style=flat" alt="MIT License">

  <img src="https://img.shields.io/github/actions/workflow/status/Ackee-Blockchain/trident/lint.yml?label=Lint&colorA=f6f8fa&style=flat" alt="Lint">

  <img src="https://img.shields.io/github/actions/workflow/status/Ackee-Blockchain/trident/fuzz.yml?label=Test%20Fuzz%20Tests&colorA=f6f8fa&style=flat" alt="Test Escrow and Turnstile">

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.

Extension points exported contracts — how you extend this code

FlowExecutor (Interface)
Trait for executing fuzzing flows in the Trident framework This trait defines the interface for fuzzing executors that
crates/fuzz/src/trident/flow_executor.rs

Core symbols most depended-on inside this repo

random_from_range
called by 166
crates/fuzz/src/trident/random.rs
insert
called by 85
crates/fuzz/src/address_storage.rs
get
called by 64
crates/fuzz/src/address_storage.rs
process_transaction
called by 50
crates/fuzz/src/trident/client.rs
concat
called by 46
crates/metrics/src/transactions/transaction_error.rs
is_empty
called by 34
crates/fuzz/src/address_storage.rs
airdrop
called by 23
crates/fuzz/src/trident/client.rs
len
called by 22
crates/fuzz/src/address_storage.rs

Shape

Method 429
Class 279
Function 273
Enum 35
Interface 1

Languages

Rust87%
TypeScript13%

Modules by API surface

documentation/docs/js/asciinema-player.min.js135 symbols
crates/client/tests/fuzz_template/types.rs46 symbols
examples/trident-benchmark/maze_4/trident-tests/fuzz_0/types.rs29 symbols
examples/trident-benchmark/maze_3/trident-tests/fuzz_0/types.rs29 symbols
examples/trident-benchmark/maze_2/trident-tests/fuzz_0/types.rs29 symbols
examples/trident-benchmark/maze_1/trident-tests/fuzz_0/types.rs29 symbols
examples/trident-benchmark/maze_0/trident-tests/fuzz_0/types.rs29 symbols
crates/client/src/utils.rs25 symbols
crates/client/src/coverage/mod.rs24 symbols
crates/client/src/coverage/tests.rs21 symbols
examples/token/trident-tests/fuzz_0/test_fuzz.rs20 symbols
crates/fuzz/src/trident/client.rs20 symbols

For agents

$ claude mcp add trident \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact