# The SolanaTestForge Manual

`solanatestforge` is a test framework for Solana programs. It forks live network state, runs static security checks against an Anchor IDL, and stress-tests instruction handlers with random inputs. It does this without deploying anything, without spending SOL, and without requiring an Anchor project on disk.

This manual is the canonical reference. It is organised in three parts.

**Foundations** explains what the framework is, why it exists, and how the moving pieces fit together. Read this part first if you have never run `solforge` before.

**Reference** lists every command, every option, every check, and every configuration key. The information here is intentionally dense; nothing is summarised. When the CLI surprises you, the answer lives in this part.

**Recipes** walks through worked examples — wiring `solforge` into a CI pipeline, reproducing a mainnet incident locally, authoring a custom security rule. Each recipe assumes familiarity with the corresponding reference chapter.

A glossary of recurring terms appears at the back of the manual.

## A note on scope

The framework targets Anchor programs first, vanilla Solana programs second. Native programs without an IDL will work for the `fork` and `fuzz` commands; the `security` command requires an IDL because static rules are written against IDL shapes.

Mainnet operations are read-only. The framework will refuse to sign or submit mainnet transactions; this is enforced at the loader level and is not configurable.

## Conventions

Throughout this manual, command-line examples are introduced with `$`. File paths use forward slashes. Network identifiers (`devnet`, `mainnet`) are lowercase. Where the manual refers to "the framework" it means the runtime that executes a command; where it says `solforge` it refers specifically to the binary on `$PATH`.

When two parts of the manual could plausibly own the same fact, the reference chapter is the source of truth. Foundational chapters paraphrase; recipes illustrate; reference dictates.

## Versioning

This manual tracks `solanatestforge@0.1.x`. Behaviour described here is correct for that line. Forward-incompatible changes will be flagged at the top of the affected chapter.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://solanatestforge.gitbook.io/solanatestforge-docs/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
