Solana · Anchor · native · pinocchio

Audit-ready findings for Solana programs, in minutes

Point Vaultline at a repo and get a triaged finding list, a score and a draft audit report. Detection is deterministic. AI only labels and explains.

Features and Benefits

Deterministic Detection

No LLM in the detection path. Every finding traces back to an engine, a rule and a file:line. The model can only label an existing finding or write report text.

Anchor-Aware Filter

Suppresses what constraints already enforce, and keeps the reason.

Canary-Checked Engines

Not flagged on a known-bad program means failed, never clean.

Crash-Safe, Benchmarked, Private

One engine crashing never fails the scan. Detector changes are measured for precision and recall. --private never sends code to an LLM unless you allow it.

How It Works

Step-01

Ingest

Clone a git URL, local path or zip. Detect the framework and program crates.

1
Step-02

Model & Scan

Extract instructions, accounts, constraints and CPI sites, then run the engines.

2
Step-03

Merge & Filter

Map rules to bug classes, dedupe by stable fingerprint, suppress mitigated findings.

3
Step-04

Verify & Report

Label each finding, score it, and export JSON, SARIF, Markdown and HTML.

4

See It In Action

$ scanner scan https://github.com/you/my-program
ingest   anchor · 2 program crates
engines  fender ok · canary flagged
filter   9 findings → 4 kept, 5 suppressed (with reasons)

[high]   SOL-SIGNER  programs/vault/src/lib.rs:42
[medium] SOL-ARITH   programs/vault/src/math.rs:17

report → report.md · report.html · findings.sarif

Coverage & Roadmap

Now Core classesSigner, owner, type cosplay, reinit, CPI, bump, PDA sharing, close, sysvar, arithmetic, dependencies.
Next Custom detectorsStale-after-CPI, remaining_accounts, init_if_needed, realloc.
Then Modern risksToken-2022 extensions, oracle staleness, lamport mutation.
Later Web dashboardProjects, scan pages and a GitHub Action.

FAQ

Does AI find the bugs?

No. Detection is plain, deterministic code. The LLM can only label an existing finding real, false alarm or needs human, and write report text.

Are suppressed findings deleted?

Never. They are kept with a reason and shown in a collapsed section of the report.

Is my code sent anywhere?

Only to the configured LLM for verification. With --private nothing is sent unless you explicitly enable it.

Which frameworks are supported?

Anchor, native solana-program and pinocchio program crates.

Can I trust a "clean" result?

Findings are leads for a human auditor, not a guarantee. Engines that fail their canary check are reported as failed, never clean.

Ready to scan your program?

Get a triaged list and a draft report before your next review.

Vaultline · internal audit toolingFindings are leads for a human auditor, not a guarantee.
🔒

Whitelisted teams only

Scanning is currently open to whitelisted teams only. Public access is coming soon.