Skip to main content
[ DOCS · FAQ ]

FAQ

Answers to the questions we get most often.

Does Riptide Run My Actual On-Chain Program?

Yes. Riptide loads compiled SBF/BPF bytecode and runs the program logic under LiteSVM, using committed local artifacts and adapter declarations.

What Does LiteSVM Model?

LiteSVM is an in-process SVM. It removes RPC, gossip, vote, PoH, and full consensus overhead so economic scenarios can run quickly and deterministically. When validator-level behavior matters, use the validator parity path as a diagnostic rather than treating LiteSVM as a full cluster model.

Which Protocol Classes Are Supported Today?

Riptide ships a generic adapter path for custom Solana programs, init scaffolds for lending, perps, AMMs, liquid staking, stablecoins, and custom programs, plus versioned semantic overlays in the shipped protocol fixtures: lending.v1, perps-margin.v1, amm.v1, lst.v1, and stablecoin.v1. Those semantics are adapter metadata and invariant surfaces; most non-lending programs still run through the generic SBF/IDL runtime rather than a dedicated protocol primitive.

Why Does riptide run Say No .riptide/ Directory Was Found?

riptide run discovers scenarios under .riptide/scenarios/ in the current directory. For shipped examples, run from a Riptide checkout or release bundle root. For your own repo, run riptide init first to create the thin .riptide/ bootstrap, then invoke /riptide-config to finish the adapter, inline personas, optional harness, and scenario tree.

What Do I Actually Configure Today?

For a new program, you commit:

  • An adapter TOML — program bytes, IDL, accounts, optional decoders, instructions, observations, inline personas, oracle bindings, invariants.
  • An optional harness crate — pre-tick setup for account bytes, SPL mints and vaults, PDAs, external accounts, and sibling programs.
  • A run config with scenario parameters — seed or seeds, ticks, agents, persona slugs, shocks.
  • For replays only: initial-state.json, trajectory.json, oracle-trajectory.json, and an optional replay-scoped adapter override when the recorded program shape differs from the one your repo currently builds.

Adapters can also carry a [semantics] block that maps raw fields to roles, derived values, collection observations, semantic oracle bindings, and expression invariants. Shipped protocol fixtures cover the current versioned classes; custom adapters can still rely on raw fields, generic layout decoders, harness setup, and adapter invariants when no semantic class fits.

Will Riptide Understand My Protocol's Economic Concepts?

Partially, today. The shipped protocol fixtures declare versioned semantic classes for lending, perps margin, AMMs, liquid staking, and stablecoins, including named roles, derived observations, collection observations, semantic oracle bindings where relevant, and expression-driven invariants. Product-specific concepts that do not fit those classes still need explicit adapter fields, raw layout decoders, harness setup, or custom invariants.

Does A Run Depend On An LLM?

No. The engine is deterministic and runs committed artifacts. Optional local skills can help author TOML or reports, but the simulation run does not depend on a model call.

What Does riptide studio Do?

riptide studio starts a localhost-only browser UI for local Riptide workspaces. It can bootstrap the thin .riptide/ scaffold, show adapters, campaigns, reports, evidence artifacts, and dashboards, queue allowlisted local jobs, and hand setup tasks to a detected local coding agent through Agent chat.

Studio is not a hosted service, not a generic terminal, and not a replacement for reviewing files. It does not push, publish, or expose non-loopback access by default. See Studio.

How Is This Different From Fuzzing?

Fuzzing mutates low-level inputs to find crashes and unexpected behavior. Riptide runs actor-driven economic scenarios against shared program state and checks protocol invariants.

How Does Guided Sim Support Compare With Trident?

Riptide guided sims cover a similar manually guided setup class when the project supplies Riptide.toml, cached external accounts or local programs, Rust flows, and project-owned services. It is not automatic Trident parity: Riptide does not infer every flow, does not add protocol-specific oracle or orderbook layouts to core, and guided-run coverage output is still unavailable.

Can I Rerun A Replay After CI Fails?

Yes. Use the pack's rerun.sh or the recorded command, then compare the canonical hash in manifest.json.

What Makes The Artifact Trustworthy?

Same bytecode, committed inputs, run config, and seed should produce the same canonical hash. Packs use repo-relative paths and include manifest.json, summary.md, trace.md, rerun.sh, path indexes, and simulation boundaries.

Does Riptide Replace An Audit?

No. Riptide produces simulation evidence, not a broad review result. It helps teams and reviewers reproduce economic failure modes before launch and in CI, but it does not certify a program as safe or replace human security review.

Can I Use A Public Package Or Hosted Installer?

Yes for Linux and macOS. Use curl -fsSL https://riptide.run/install | sh. Windows x64 packaging exists in the release tooling, but no Windows asset is published for v0.9.1; use WSL or the repository build path until one is attached.